Symbole diagramu ERD
Diagramy związków encji korzystają z trzech rodzin symboli. Kurzą stopkę rysują narzędzia bazodanowe, notacji Chena uczy się na zajęciach, a UML to diagramy klas zastosowane do danych. We wszystkich trzech tabela lub encja to prostokąt, a relacja to linia między prostokątami. Różnią się zapisem liczebności, czyli tego, ile wierszy po jednej stronie odpowiada wierszowi po drugiej. Kurza stopka zaznacza ją na końcach linii. Dlatego każdą linię czyta się dwa razy, raz w stronę każdej tabeli. Każdy symbol poniżej jest pokazany razem ze sposobem czytania i narysowany przez ErdDocs w tej samej notacji, której użyje dla twojego własnego schematu w narzędziu poniżej.
Co oznaczają zakończenia linii w notacji kurzej stopki?
W kurzej stopce wszystko dzieje się na końcach linii. Każdy koniec ma do dwóch znaków. Znak bliższy tabeli oznacza maksimum, a zewnętrzny minimum.
| Symbol | Nazwa | Jak czytać | Przykład |
|---|---|---|---|
| Dokładnie jeden | Kreska + kreska: co najmniej jeden, co najwyżej jeden | zamówienie należy do dokładnie jednego klienta | |
| Zero lub jeden | Kółko + kreska: opcjonalnie, co najwyżej jeden | klient ma co najwyżej jedną kartę lojalnościową | |
| Jeden lub wiele | Kreska + stopka: co najmniej jeden | zamówienie ma co najmniej jedną pozycję | |
| Zero lub wiele | Kółko + stopka: dowolnie wiele, także żaden | klient ma zero lub wiele zamówień |
Jak przeczytać całą linię
Linię relacji czyta się dwa razy, w stronę każdej tabeli. Klasyczny przykład sklepu:
Pełne zasady czytania, w tym znaczenie znaków, gdy schemat jest znany tylko w połowie, są na stronie o notacji kurzej stopki. To, które połączenie wybrać, zależy od liczebności.
Chen, kurza stopka i UML
| Pojęcie | Chen | Kurza stopka | UML |
|---|---|---|---|
| Encja / tabela | Prostokąt | Prostokąt z listą kolumn w środku | Blok klasy |
| Atrybut | Owal połączony z encją | Wiersz w tabeli | Pole w bloku klasy |
| Relacja | Romb między encjami | Linia ze znakami liczebności na końcach | Linia asocjacji |
| Liczebność | Litery 1, N, M przy rombie | Kreska, kółko i stopka na końcach | Krotności 1, 0..1, 1..*, * |
| Klucz główny | Podkreślona nazwa atrybutu | Znacznik klucza w wierszu kolumny | Stereotyp lub właściwość |
Prosta zasada. Dopóki schemat jest tylko pomysłem, pasuje Chen. Gdy diagram żyje obok kodu aplikacji, pasuje UML. Kiedy baza danych już istnieje, potrzebna jest kurza stopka. Właśnie ją ErdDocs rysuje prosto z wklejonego schematu.
Symbol, którego nie ma w podręcznikach: linia przerywana
W prawdziwych zrzutach często brakuje kluczy obcych. Aplikacje w Rails, Django i Laravel pilnują relacji w kodzie, a baza nie deklaruje nic. W takim przypadku ErdDocs dodaje własny symbol. Linia ciągła to relacja zadeklarowana w bazie. Linia przerywana to relacja wywnioskowana z nazwy kolumny, na przykład user_id → users. Pierwszą gwarantuje ograniczenie w bazie, a druga jest uzasadnionym domysłem.
Symbole na prawdziwym schemacie
Wklej swój SQL do narzędzia poniżej. Znajdzie klucze obce i ograniczenia unikalności, a na ich podstawie zaznaczy stronę „wiele” każdej linii.
Najczęstsze pytania
Co oznaczają symbole kurzej stopki?
Na każdym końcu linii są do dwóch znaków. Znak bliższy tabeli pokazuje maksimum. Kreska znaczy „co najwyżej jeden”, a trójpalczasta stopka „wiele”. Znak zewnętrzny pokazuje minimum. Kreska znaczy „co najmniej jeden”, a kółko „może być zero”. Kółko ze stopką czyta się więc jako „zero lub wiele”, a dwie kreski jako „dokładnie jeden”.
Którą notację wybrać – Chena czy kurzą stopkę?
Notacja Chena nadaje się do nauki i projektowania koncepcyjnego. Relacja jest w niej osobnym elementem, rombem, co ułatwia wykład. Kurza stopka nadaje się do prawdziwych baz. Każda tabela to w niej prostokąt z kolumnami w środku, i tak schemat naprawdę wygląda.
Jak oznacza się relację wiele do wielu?
Stopką na obu końcach. W schemacie fizycznym wiele do wielu realizuje się przez tabelę pośrednią, na przykład order_items między orders i products. Dlatego narzędzia rysujące prawdziwe bazy pokazują dwie relacje jeden do wielu. Zbiegają się one na tej tabeli.
Dlaczego narzędzia bazodanowe nie rysują rombów i owali Chena?
Bo w fizycznej bazie to, co Chen rysuje osobno, sprowadza się do tabel i kolumn. Owal atrybutu to wiersz w prostokącie tabeli. Romb relacji to albo kolumna klucza obcego, albo tabela pośrednia. Rysowanie ich jako osobnych kształtów podwoiłoby rozmiar diagramu, a nie pokazałoby niczego nowego.
Zobacz też
- Diagram ERD: encje, relacje i moment, w którym model koncepcyjny zamienia się w tabele.
- Notacja kurzej stopki: zasady czytania z omówionymi przykładami.
- Liczebność w diagramach ERD: jak prawdziwa baza danych decyduje, jakie znaki dostaje linia.
- Przykłady diagramów ERD: czternaście kompletnych schematów, każdy z diagramem i słownikiem.