Archyno

Diagramy entít a vzťahov

Obraz vecí, ktoré systém ukladá, a toho, ako spolu súvisia. Starý, malý a stále najrýchlejší spôsob, ako zistiť, že dvaja ľudia myslia slovom "objednávka" niečo iné.

9 min čítaniaER - crow's foot1 z 3

Krátka odpoveď

  • Konceptuálny model pomenúva len entity a vzťahy; logický pridáva atribúty, kľúče a rozložené mnoho k mnohým; fyzický typy a indexy pre jeden stroj.
  • Primárny kľúč identifikuje riadok vo vlastnej tabuľke; cudzí kľúč drží primárny kľúč inej tabuľky a je to on, čo vzťah naozaj implementuje.
  • ER diagram nemá operácie a jeho vzťahy sa mapujú na cudzie kľúče. Diagram tried modeluje správanie a vie vyjadriť to, čo schéma nedokáže.
  • Vraňa noha je de facto štandard a kreslí ju takmer každý moderný nástroj. Chenova notácia hovorí to isté a zaberie viac miesta.
Diagram entít a vzťahov so štyrmi entitami. Customer má primárny kľúč customer_id; Order má kľúč order_id a cudzí kľúč customer_id; OrderLine má kľúč order_line_id s cudzími kľúčmi order_id a product_id; Product má kľúč product_id. Jeden zákazník zadáva nula alebo viac objednávok, jedna objednávka obsahuje jednu alebo viac položiek a jeden produkt sa objaví na nula alebo viacerých položkách.
Štyri entity a tri vzťahy. Každá čiara sa dá prečítať nahlas v oboch smeroch a robiť to je najrýchlejšia technika revízie, aká existuje.

01Čo ukazuje#

ER diagram popisuje veci, ktoré systém ukladá, a spojenia medzi nimi. Tri zložky, a viac nie:

PrvokNotáciaČo znamená
Entitapomenovaný boxDruh veci, ktorý sa oplatí ukladať. Podstatné meno v jednotnom čísle - Customer, nie Customers - lebo box predstavuje typ a každý riadok je jedným z nich.
Atribútriadok vnútri boxuFakt o entite. V notácii vranej nohy žijú vnútri boxu; v staršej Chenovej notácii z neho visia v ovaloch.
VzťahSpojenie, s kardinalitou nakreslenou na každom konci. Symboly hovoria, koľko entít na tom konci sa môže zúčastniť.

Hodnota je takmer celá v tej tretej. Entity vo svojej doméne vymenuje každý; spor sa začne pri otázke „môže objednávka existovať bez zákazníka?“ - a ER diagram túto otázku núti zodpovedať symbolom namiesto toho, aby zostala pohodlne vágna v dokumente.

02Kľúče sú tá časť, na ktorej záleží#

Atribúty sú ľahké. Kľúče sú miesto, kde si ER model zaslúži svoje miesto, lebo kľúč je tvrdenie o identite - a práve v identite sa skrývajú doménové nedorozumenia.

PrvokNotáciaČo znamená
Primárny kľúč (PK)označený PK, uvedený prvýAtribút alebo množina atribútov, ktorá identifikuje jeden riadok. Každá entita má práve jeden.
Cudzí kľúč (FK)označený FKAtribút držiaci kľúč inej entity. Každej čiare vzťahu zodpovedá niekde cudzí kľúč, a to na strane „veľa“.
Prirodzený kľúčatribút zo skutočného svetaISBN, IBAN, e-mailová adresa. Zmysluplný - a rukojemník toho, že si vonkajší svet veci rozmyslí.
Náhradný kľúčgenerované idČíslo alebo UUID bez významu. Stabilný z konštrukcie, a práve preto vo väčšine systémov predvolená voľba.
Zložený kľúčdva a viac atribútovIdentita, ktorá potrebuje viac než jeden stĺpec. Bežná na väzobných entitách, kde dvojica cudzích kľúčov je tou identitou.

03Kardinalita, v krátkosti#

Každý koniec vzťahu nesie dva symboly: vonkajší hovorí koľko a vnútorný či je to nepovinné. Čiarka je jeden, vrania noha je veľa a krúžok je nula.

PrvokNotáciaČo znamená
Práve jedenČiarka, čiarka. Povinné a jednotlivé na oboch koncoch.
Nula alebo jedenKrúžok a potom čiarka. Nepovinné a jednotlivé.
Jeden alebo viacČiarka a potom vrania noha. Povinné a viacnásobné.
Nula alebo viacKrúžok a potom vrania noha. V praxi najčastejší koniec.

Symbol sa číta na konci najbližšie k entite, ktorú obmedzuje, čo je opak toho, čo väčšina ľudí háda.

Práve tento posledný bod nachytá takmer každého a má vlastný článok - notácia vranej nohy - o tom, ktorý koniec je ktorý, o identifikujúcich verzus neidentifikujúcich vzťahoch a o tom, ako vyriešiť vzťah M:N.

04Konceptuálny, logický, fyzický#

Tá istá entita zákazníka na troch úrovniach. Konceptuálna: box s názvom Customer bez atribútov. Logická: Customer s primárnym kľúčom customer_id a atribútmi name a email. Fyzická: tabuľka customer so stĺpcami customer_id bigint, full_name text a email citext.
Jedna entita, tri úrovne. Konceptuálny model je pre biznis, logický pre návrhovú diskusiu a fyzický pre databázu.

Väčšina zmätených ER diagramov sú dve úrovne v jednom kabáte. Rozhodnúť, ktorú kreslíte, urovná tucet malých sporov skôr, než začnú.

PrvokNotáciaČo znamená
Konceptuálnylen boxy a čiaryEntity a vzťahy vlastnými slovami biznisu. Žiadne kľúče, žiadne typy, často ani atribúty. Zmestí sa na jednu stranu a je to ten, ktorý reviduje stakeholder.
Logickýatribúty a kľúče, bez typovNormalizovaný, okľúčovaný a nezávislý od konkrétnej databázy. Vzťahy M:N vyriešené. Toto je návrh.
Fyzickýtabuľky, stĺpce, typyPomenované tak, ako pomenúva veci databáza, s typmi, indexmi a s takou denormalizáciou, akú si záťaž naozaj vyžaduje.

Nie vždy potrebujete všetky tri. Malá služba môže ísť rovno na logický. Čo nikdy nefunguje, je ukázať konceptuálny diagram vývojárovi, ktorý potrebuje fyzický - alebo fyzický biznisovému stakeholderovi, ktorý chcel overiť, či zákazník môže mať dve adresy.

05ER diagram, alebo diagram tried?#

Vyzerajú podobne a znamenajú niečo iné. Diagram tried popisuje typy v programe: správanie, dedenie, viditeľnosť, navigovateľnosť. ER diagram popisuje dáta v pokoji: kľúče, kardinalitu a referenčnú integritu. Prekryv je skutočný a rozdiel takisto.

PrvokNotáciaČo znamená
Operácielen diagram triedEntity nemajú metódy. Riadky nič nerobia.
Kľúčelen ERDiagram tried má identitu objektu zadarmo; databáze treba povedať, čo je identita.
Dedeniediagram tried natívneER to modeluje ako štruktúru nadtyp-podtyp a fyzický model si musí vybrať jedno z troch rozložení tabuliek, ako to implementovať.
Vzťah M:Nnakresliteľný v obochDiagram tried ho môže nechať ako jednu čiaru navždy. Logický ER model ho musí vyriešiť väzobnou entitou, lebo databáza ho inak uložiť nevie.

Siahnite po ňom, keď

  • Predmetom je to, čo sa ukladá, a v publiku je aj DBA
  • Potrebujete presne rozhodnúť nepovinnosť a kardinalitu
  • Výstupom je schéma, migrácia alebo množina obmedzení
  • Biznisový stakeholder má potvrdiť doménový slovník

Siahnite po niečom inom, keď

  • Predmetom je správanie alebo hierarchia typov - použite diagram tried
  • Dokumentujete payloady API, nie úložisko
  • Úložisko nemá schému a tvar sa naozaj líši dokument od dokumentu
  • Sú to tri tabuľky a DDL je kratšie než diagram

06Časté chyby#

  1. Entity v množnom čísle. Customer je entita; customers je tabuľka. Ich miešanie robí vety o vzťahoch nečitateľnými.
  2. Nevyriešený vzťah M:N v logickom modeli. Žiadna databáza ho neuloží. Vyriešte ho a väzobnú entitu pomenujte podľa toho, čo znamená - Enrolment, nie StudentCourse.
  3. Každý vzťah nepovinný. Model, v ktorom nie je nič povinné, nekóduje žiadne pravidlá a obmedzenia potom skončia rozsypané po aplikačnom kóde.
  4. Atribúty, ktoré sú v skutočnosti entity. Ak „adresa“ potrebuje päť podpolí a môže sa vyskytnúť dvakrát, je to entita.
  5. Modelovanie reportovacích tabuliek. Denormalizovaný čítací model patrí do fyzického modelu s poznámkou prečo, nie do logického, kde si ho niekto pomýli s doménou.

Po jednom riadku na každé

  1. 01Entity, atribúty, vzťahy - a hodnota je vo vzťahoch.
  2. 02Kľúč je tvrdenie o identite; uprednostnite náhradné kľúče a prirodzený obmedzte.
  3. 03Kardinalita sa číta na konci najbližšie k entite, ktorú obmedzuje.
  4. 04Konceptuálny, logický a fyzický odpovedajú na iné otázky iným ľuďom.
  5. 05Diagram tried popisuje typy v programe; ER diagram popisuje dáta v pokoji.
  6. 06Prečítajte každú čiaru nahlas v oboch smeroch - najlacnejšia revízia, aká existuje.

07Časté otázky#

Čo je diagram entít a vzťahov?

Obraz vecí, ktoré systém ukladá, a toho, ako spolu súvisia: entity ako rámčeky, ich atribúty vnútri a čiary medzi nimi nesúce kardinalitu. Je to štandardný spôsob, ako sa dohodnúť na dátovom modeli skôr, než vznikne akákoľvek tabuľka.

Aký je rozdiel medzi konceptuálnym, logickým a fyzickým dátovým modelom?

Konceptuálny model pomenúva entity a vzťahy a nič viac, je teda zdieľaným slovníkom. Logický model pridáva atribúty, kľúče a rozložené vzťahy typu mnoho k mnohým, pričom zostáva nezávislý od databázy. Fyzický model pridáva typy, indexy a čokoľvek, čo si vyžaduje jeden konkrétny stroj.

Aký je rozdiel medzi primárnym a cudzím kľúčom?

Primárny kľúč jednoznačne identifikuje riadok vnútri vlastnej tabuľky. Cudzí kľúč je stĺpec, ktorý drží hodnotu primárneho kľúča inej tabuľky, a práve on v relačnej databáze skutočne implementuje vzťah.

Čím sa ER diagram líši od UML diagramu tried?

ER diagram modeluje uložené dáta, takže nemá operácie a jeho vzťahy sa mapujú na cudzie kľúče. Diagram tried modeluje typy so správaním a vie vyjadriť veci, ktoré relačná schéma nedokáže, napríklad rozhrania a polymorfizmus. Oba často popisujú tú istú doménu bez toho, aby si zodpovedali prvok po prvku.

Akú notáciu použiť pre ER diagramy?

Vraňa noha je de facto štandard a je to to, čo kreslí takmer každý moderný nástroj. Chenova notácia, ktorá dáva vzťahy do kosoštvorcov, je stále bežná v učebniciach. To, čo sa dá vyjadriť, je v podstate rovnaké v oboch, a vraňa noha je kompaktnejšia.

V tejto sérii

Súvisiace články

Všetky články