🎯 Cele lekcji

📐

1. Czym jest diagram E/R?

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.

Historia: Model E/R zaproponował Peter Chen w 1976 roku w artykule "The Entity-Relationship Model — Toward a Unified View of Data". Notacja Chena stała się podstawą dla wszystkich późniejszych notacji diagramów baz danych.

Do czego służy diagram E/R?

🔷

2. Notacja Chena

Oryginalna notacja zaproponowana przez Petera Chena. Rzadko stosowana w narzędziach, ale fundamentalna do nauki.

SymbolKształtZnaczenie
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 atrybutuatrybutKlucz główny
W notacji Chena encje łączone są z rombem (związkiem) liniami, a przy każdej linii zapisuje się liczebność (1, N, M). Atrybuty encji są połączone liniami z prostokątem encji.
📦

3. Notacja UML i notacja IE (crow's foot)

Notacja UML (Unified Modeling Language)

Diagramy klas UML są często używane do modelowania baz danych. Prostokąt dzieli się na trzy sekcje:

NazwaEncji
+ id: INT
+ nazwa: VARCHAR
+ metoda()

Liczebność zapisuje się przy końcach linii: 1, 0..1, 1..*, *

Notacja IE (Information Engineering) — crow's foot

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 liniiZnaczenieOpis
|Dokładnie jeden (one)Pionowa kreska — obowiązkowe, max 1
oZero 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
Przykład crow's foot: Relacja "Klient zamawia Zamówienia" (1:N, klient obowiązkowy):
klienci ——|—— <o zamowienia
(jeden klient, zero lub wiele zamówień)
🧩

4. Bloki składowe diagramu E/R

ElementDefinicjaPrzykład
EncjaKlasa obiektów o tych samych właściwościach, istotna dla systemuKlient, Produkt, Zamówienie
Atrybut prostyNiepodzielna właściwość encjiimie, cena, data_urodzenia
Atrybut złożonyAtrybut składający się z pod-atrybutówadres = (ulica, miasto, kod_pocztowy)
Atrybut wielowartościowyMoże mieć wiele wartości dla jednej encjinumery_telefonow, hobby
Atrybut pochodnyObliczany na podstawie innych atrybutówwiek (z data_urodzenia), wartosc_zamowienia (suma pozycji)
ZwiązekPowiązanie semantyczne między dwoma lub więcej encjami"składa" (Klient składa Zamówienie)
Encja słaba (weak entity) — encja, która nie ma własnego klucza głównego i może być identyfikowana tylko w kontekście encji silnej (właściciela). Przykład: pozycja_zamowienia istnieje tylko w kontekście zamowienia.
✏️

Zadania interaktywne

Zadanie 1Dopasuj symbol do notacji i znaczenia

Dopasuj opis do odpowiedniej notacji/symbolu:

Romb (◇) w notacji Chena oznacza
Prostokąt (▭) w notacji Chena oznacza
Symbol "kurza łapka" (<) w notacji IE oznacza
Podwójny prostokąt (▭▭) w notacji Chena oznacza
Zadanie 2Quiz: symbole notacji Chena

W notacji Chena, którym symbolem reprezentuje się atrybut pochodny (np. wiek obliczany z daty urodzenia)?

  • Prostokąt (▭)
  • Romb (◇)
  • Elipsa przerywana (⬭…)
  • Podwójna elipsa (⬭⬭)
Zadanie 3Identyfikacja bloków składowych

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:

📌 Zapamiętaj