Diagramy entit a vztahů
Obraz věcí, které systém ukládá, a toho, jak spolu souvisejí. Starý, malý a stále nejrychlejší způsob, jak zjistit, že dva lidé myslí slovem "objednávka" něco jiného.
9 min čteníER - crow's foot1 z 3
Krátká odpověď
- Konceptuální model pojmenovává jen entity a vztahy; logický přidává atributy, klíče a rozložené mnoho k mnoha; fyzický typy a indexy pro jeden stroj.
- Primární klíč identifikuje řádek ve vlastní tabulce; cizí klíč drží primární klíč jiné tabulky a je to on, co vztah opravdu implementuje.
- ER diagram nemá operace a jeho vztahy se mapují na cizí klíče. Diagram tříd modeluje chování a umí vyjádřit to, co schéma nedokáže.
- Vraní noha je de facto standard a kreslí ji téměř každý moderní nástroj. Chenova notace říká totéž a zabere víc místa.
01Co ukazuje#
ER diagram popisuje věci, které systém ukládá, a spojení mezi nimi. Tři složky, a víc ne:
| Prvek | Notace | Co znamená |
|---|---|---|
| Entita | pojmenovaný box | Druh věci, který se vyplatí ukládat. Podstatné jméno v jednotném čísle - Customer, ne Customers - protože box představuje typ a každý řádek je jedním z nich. |
| Atribut | řádek uvnitř boxu | Fakt o entitě. V notaci vraní nohy žijí uvnitř boxu; ve starší Chenově notaci z něj visí v oválech. |
| Vztah | Spojení, s kardinalitou nakreslenou na každém konci. Symboly říkají, kolik entit na tom konci se může zúčastnit. |
Hodnota je téměř celá v té třetí. Entity ve své doméně vyjmenuje každý; spor začne u otázky „může objednávka existovat bez zákazníka?“ - a ER diagram tuhle otázku nutí zodpovědět symbolem místo toho, aby zůstala pohodlně vágní v dokumentu.
02Klíče jsou ta část, na které záleží#
Atributy jsou snadné. Klíče jsou místo, kde si ER model zaslouží své místo, protože klíč je tvrzení o identitě - a právě v identitě se skrývají doménová nedorozumění.
| Prvek | Notace | Co znamená |
|---|---|---|
| Primární klíč (PK) | označený PK, uvedený první | Atribut nebo množina atributů, která identifikuje jeden řádek. Každá entita má právě jeden. |
| Cizí klíč (FK) | označený FK | Atribut držící klíč jiné entity. Každé čáře vztahu odpovídá někde cizí klíč, a to na straně „mnoho“. |
| Přirozený klíč | atribut ze skutečného světa | ISBN, IBAN, e-mailová adresa. Smysluplný - a rukojmí toho, že si vnější svět věci rozmyslí. |
| Náhradní klíč | generované id | Číslo nebo UUID bez významu. Stabilní z konstrukce, a právě proto ve většině systémů výchozí volba. |
| Složený klíč | dva a více atributů | Identita, která potřebuje víc než jeden sloupec. Běžná u vazebních entit, kde dvojice cizích klíčů je tou identitou. |
03Kardinalita, ve zkratce#
Každý konec vztahu nese dva symboly: vnější říká kolik a vnitřní zda je to nepovinné. Čárka je jeden, vraní noha je mnoho a kroužek je nula.
| Prvek | Notace | Co znamená |
|---|---|---|
| Právě jeden | Čárka, čárka. Povinné a jednotlivé na obou koncích. | |
| Nula nebo jeden | Kroužek a pak čárka. Nepovinné a jednotlivé. | |
| Jeden nebo více | Čárka a pak vraní noha. Povinné a vícenásobné. | |
| Nula nebo více | Kroužek a pak vraní noha. V praxi nejčastější konec. |
Symbol se čte na konci nejblíž k entitě, kterou omezuje, což je opak toho, co většina lidí hádá.
Právě tenhle poslední bod nachytá téměř každého a má vlastní článek - notace vraní nohy - o tom, který konec je který, o identifikujících versus neidentifikujících vztazích a o tom, jak vyřešit vztah M:N.
04Konceptuální, logický, fyzický#
Většina zmatených ER diagramů jsou dvě úrovně v jednom kabátě. Rozhodnout, kterou kreslíte, urovná tucet malých sporů dřív, než začnou.
| Prvek | Notace | Co znamená |
|---|---|---|
| Konceptuální | jen boxy a čáry | Entity a vztahy vlastními slovy byznysu. Žádné klíče, žádné typy, často ani atributy. Vejde se na jednu stránku a je to ten, který reviduje stakeholder. |
| Logický | atributy a klíče, bez typů | Normalizovaný, oklíčovaný a nezávislý na konkrétní databázi. Vztahy M:N vyřešené. Tohle je návrh. |
| Fyzický | tabulky, sloupce, typy | Pojmenované tak, jak pojmenovává věci databáze, s typy, indexy a s takovou denormalizací, jakou si zátěž opravdu vyžaduje. |
Ne vždy potřebujete všechny tři. Malá služba může jít rovnou na logický. Co nikdy nefunguje, je ukázat konceptuální diagram vývojáři, který potřebuje fyzický - nebo fyzický byznysovému stakeholderovi, který chtěl ověřit, zda zákazník může mít dvě adresy.
05ER diagram, nebo diagram tříd?#
Vypadají podobně a znamenají něco jiného. Diagram tříd popisuje typy v programu: chování, dědění, viditelnost, navigovatelnost. ER diagram popisuje data v klidu: klíče, kardinalitu a referenční integritu. Překryv je skutečný a rozdíl také.
| Prvek | Notace | Co znamená |
|---|---|---|
| Operace | jen diagram tříd | Entity nemají metody. Řádky nic nedělají. |
| Klíče | jen ER | Diagram tříd má identitu objektu zdarma; databázi je třeba říct, co je identita. |
| Dědění | diagram tříd nativně | ER to modeluje jako strukturu nadtyp-podtyp a fyzický model si musí vybrat jedno ze tří rozvržení tabulek, jak to implementovat. |
| Vztah M:N | nakreslitelný v obou | Diagram tříd ho může nechat jako jednu čáru navždy. Logický ER model ho musí vyřešit vazební entitou, protože databáze ho jinak uložit neumí. |
Sáhněte po něm, když
- Předmětem je to, co se ukládá, a v publiku je i DBA
- Potřebujete přesně rozhodnout nepovinnost a kardinalitu
- Výstupem je schéma, migrace nebo množina omezení
- Byznysový stakeholder má potvrdit doménový slovník
Sáhněte po něčem jiném, když
- Předmětem je chování nebo hierarchie typů - použijte diagram tříd
- Dokumentujete payloady API, ne úložiště
- Úložiště nemá schéma a tvar se opravdu liší dokument od dokumentu
- Jsou to tři tabulky a DDL je kratší než diagram
06Časté chyby#
- Entity v množném čísle.
Customerje entita;customersje tabulka. Jejich míchání dělá věty o vztazích nečitelnými. - Nevyřešený vztah M:N v logickém modelu. Žádná databáze ho neuloží. Vyřešte ho a vazební entitu pojmenujte podle toho, co znamená -
Enrolment, neStudentCourse. - Každý vztah nepovinný. Model, ve kterém není nic povinné, nekóduje žádná pravidla a omezení pak skončí rozsypaná po aplikačním kódu.
- Atributy, které jsou ve skutečnosti entity. Pokud „adresa“ potřebuje pět podpolí a může se vyskytnout dvakrát, je to entita.
- Modelování reportovacích tabulek. Denormalizovaný čtecí model patří do fyzického modelu s poznámkou proč, ne do logického, kde si ho někdo splete s doménou.
Po jednom řádku na každé
- 01Entity, atributy, vztahy - a hodnota je ve vztazích.
- 02Klíč je tvrzení o identitě; upřednostněte náhradní klíče a přirozený omezte.
- 03Kardinalita se čte na konci nejblíž k entitě, kterou omezuje.
- 04Konceptuální, logický a fyzický odpovídají na jiné otázky jiným lidem.
- 05Diagram tříd popisuje typy v programu; ER diagram popisuje data v klidu.
- 06Přečtěte každou čáru nahlas v obou směrech - nejlevnější revize, jaká existuje.
07Časté dotazy#
Co je diagram entit a vztahů?
Obraz věcí, které systém ukládá, a toho, jak spolu souvisejí: entity jako rámečky, jejich atributy uvnitř a čáry mezi nimi nesoucí kardinalitu. Je to standardní způsob, jak se dohodnout na datovém modelu dřív, než vznikne jakákoli tabulka.
Jaký je rozdíl mezi konceptuálním, logickým a fyzickým datovým modelem?
Konceptuální model pojmenovává entity a vztahy a nic víc, je tedy sdíleným slovníkem. Logický model přidává atributy, klíče a rozložené vztahy typu mnoho k mnoha, přičemž zůstává nezávislý na databázi. Fyzický model přidává typy, indexy a cokoli, co vyžaduje jeden konkrétní stroj.
Jaký je rozdíl mezi primárním a cizím klíčem?
Primární klíč jednoznačně identifikuje řádek uvnitř vlastní tabulky. Cizí klíč je sloupec, který drží hodnotu primárního klíče jiné tabulky, a právě on v relační databázi skutečně implementuje vztah.
Čím se ER diagram liší od UML diagramu tříd?
ER diagram modeluje uložená data, takže nemá operace a jeho vztahy se mapují na cizí klíče. Diagram tříd modeluje typy s chováním a umí vyjádřit věci, které relační schéma nedokáže, například rozhraní a polymorfismus. Oba často popisují tutéž doménu, aniž by si odpovídaly prvek po prvku.
Jakou notaci použít pro ER diagramy?
Vraní noha je de facto standard a je to to, co kreslí téměř každý moderní nástroj. Chenova notace, která dává vztahy do kosočtverců, je stále běžná v učebnicích. To, co lze vyjádřit, je v podstatě stejné v obou, a vraní noha je kompaktnější.
V této sérii
- 01ER diagramy
- 02Notace vraní nohy
- 03Návrh schématu
Související články
Přehled notace
Praxe modelování
Diagramy struktury
Diagramy struktury
Diagramy struktury
Praxe modelování