| Cecha | Encja silna | Encja słaba |
|---|---|---|
| Klucz własny | Tak (pełny PK) | Nie (tylko klucz częściowy) |
| Notacja Chena | Pojedynczy prostokąt ▭ | Podwójny prostokąt ▭▭ |
| Notacja IE | Zwykły prostokąt | Prostokąt (związek identyfikujący) |
| Przykład | Zamówienie (nr_zamowienia) | Pozycja_zamówienia (nr_pozycji w ramach zamówienia) |
| Typ związku | Niezależna | Związek identyfikujący (podwójny romb w Chenie) |
| Typ atrybutu | Opis | Przykład | Implementacja SQL |
|---|---|---|---|
| Prosty (Simple) | Niepodzielna, jednorodna wartość | imie, cena, pesel | Jedna kolumna: imie VARCHAR(50) |
| Złożony (Composite) | Składa się z pod-atrybutów | adres = ulica + miasto + kod | Wiele kolumn: ulica, miasto, kod_pocztowy |
| Wielowartościowy (Multi-valued) | Może mieć wiele wartości dla jednej encji | numery_telefonow, hobby | Osobna tabela: telefony(id_klienta FK, numer) |
| Pochodny (Derived) | Obliczany z innych atrybutów — nie przechowywany | wiek (z data_urodzenia), wartosc_zamowienia | Kolumna wirtualna lub obliczana na bieżąco |
| Notacja | Sposób oznaczenia PK |
|---|---|
| Chen | Podkreślenie nazwy atrybutu: id_pracownika |
| IE (crow's foot) | Symbol kluczyka 🔑 lub sekcja PK w prostokącie |
| UML | Stereotyp «PK» lub podkreślenie w sekcji atrybutów |
| Atrybut | Typ SQL | Uzasadnienie |
|---|---|---|
| id (klucz główny) | INT AUTO_INCREMENT | Liczba całkowita, automatyczna numeracja |
| imie, nazwisko | VARCHAR(50–100) | Tekst o zmiennej długości |
| opis, uwagi | TEXT | Długi tekst bez limitu |
| cena, pensja | DECIMAL(10,2) | Precyzyjna liczba dziesiętna (finanse) |
| wiek, ilosc | TINYINT / SMALLINT / INT | Liczba całkowita (dobierz rozmiar) |
| data_urodzenia, data | DATE | Tylko data (YYYY-MM-DD) |
| data_rejestracji (z godziną) | DATETIME / TIMESTAMP | Data i godzina |
| aktywny, czy_platny | BOOLEAN / TINYINT(1) | Wartość logiczna (0/1) |
| plec | ENUM('M','K') lub CHAR(1) | Ograniczony zestaw wartości |
| kod_pocztowy | CHAR(6) | Stała długość: 00-000 |
Dla encji "Pracownik" sklasyfikuj każdy atrybut:
Dobierz odpowiedni typ danych SQL dla każdego atrybutu encji Produkt:
Dla każdej encji wybierz najlepszy kandydat na klucz główny:
Encja Student: nr_albumu, imie, nazwisko, email, data_urodzenia
Encja Ksiazka: tytul, autor, isbn, rok_wydania, liczba_stron