Diagram E/R (Entity-Relationship) to graficzne narzędzie do modelowania struktury danych przed implementacją bazy danych. Pozwala komunikować projekt zarówno z programistami, jak i z klientem.
Do czego służy diagram E/R?
Oryginalna notacja zaproponowana przez Petera Chena. Rzadko stosowana w narzędziach, ale fundamentalna do nauki.
| Symbol | Kształt | Znaczenie |
|---|---|---|
| Prostokąt | ▭ (rectangle) | Encja (klasa obiektów) |
| Elipsa | ⬭ (ellipse) | Atrybut encji lub związku |
| Romb | ◇ (diamond) | Związek (relacja) między encjami |
| Podwójny prostokąt | ▭▭ (double rectangle) | Encja słaba (weak entity) |
| Podwójna elipsa | ⬭⬭ (double ellipse) | Atrybut wielowartościowy |
| Elipsa przerywana | ⬭… (dashed ellipse) | Atrybut pochodny |
| Podkreślenie atrybutu | atrybut | Klucz główny |
Diagramy klas UML są często używane do modelowania baz danych. Prostokąt dzieli się na trzy sekcje:
Liczebność zapisuje się przy końcach linii: 1, 0..1, 1..*, *
Najpopularniejsza notacja w narzędziach takich jak MySQL Workbench, ERwin, DBeaver. Używa symboli przy końcach linii do oznaczenia liczebności i opcjonalności.
| Symbol końca linii | Znaczenie | Opis |
|---|---|---|
| | | Dokładnie jeden (one) | Pionowa kreska — obowiązkowe, max 1 |
| o | Zero lub jeden (zero-or-one) | Kółko — opcjonalne |
| < | Wiele (many) | "Kurza łapka" — crow's foot |
| |< | Jeden lub wiele (one-or-many) | Kreska + łapka |
| o< | Zero lub wiele (zero-or-many) | Kółko + łapka |
klienci ——|—— <o zamowienia| Element | Definicja | Przykład |
|---|---|---|
| Encja | Klasa obiektów o tych samych właściwościach, istotna dla systemu | Klient, Produkt, Zamówienie |
| Atrybut prosty | Niepodzielna właściwość encji | imie, cena, data_urodzenia |
| Atrybut złożony | Atrybut składający się z pod-atrybutów | adres = (ulica, miasto, kod_pocztowy) |
| Atrybut wielowartościowy | Może mieć wiele wartości dla jednej encji | numery_telefonow, hobby |
| Atrybut pochodny | Obliczany na podstawie innych atrybutów | wiek (z data_urodzenia), wartosc_zamowienia (suma pozycji) |
| Związek | Powiązanie semantyczne między dwoma lub więcej encjami | "składa" (Klient składa Zamówienie) |
Dopasuj opis do odpowiedniej notacji/symbolu:
W notacji Chena, którym symbolem reprezentuje się atrybut pochodny (np. wiek obliczany z daty urodzenia)?
Dla encji "Pracownik" z opisem: "Pracownik ma numer identyfikacyjny, imię i nazwisko, adres (ulica, miasto, kod pocztowy), może mieć wiele numerów telefonów, a jego staż pracy jest obliczany z daty zatrudnienia."
Zaznacz wszystkie prawdziwe stwierdzenia: