Model relacyjny wprowadził Edgar F. Codd w 1970 roku. Opiera się na teorii zbiorów i algebrze relacyjnej.
| Cecha | Opis |
|---|---|
| Dane w tabelach | Wszystkie dane przechowywane w tabelach (relacjach) złożonych z wierszy i kolumn |
| Unikalność wierszy | Każdy wiersz jest unikalny — identyfikowany przez klucz główny |
| Atomowość wartości | Każda komórka zawiera tylko jedną, niepodzielną wartość |
| Niezależność kolejności | Kolejność wierszy i kolumn nie ma znaczenia semantycznego |
| Integralność encji | Klucz główny nie może mieć wartości NULL |
| Integralność referencyjna | Klucz obcy musi wskazywać na istniejący klucz główny lub być NULL |
| Niezależność danych | Struktura logiczna jest niezależna od fizycznego przechowywania |
Każdy rekord w tabeli A odpowiada dokładnie jednemu rekordowi w tabeli B.
Jeden rekord w tabeli A może mieć wiele powiązanych rekordów w tabeli B. Najczęstszy typ!
Wiele rekordów z tabeli A może być powiązanych z wieloma rekordami tabeli B. Wymaga tabeli pośredniej!
Gdy rekord rodzica jest usuwany lub zmieniany, SZBD może podjąć różne akcje wobec powiązanych rekordów:
| Akcja | Opis |
|---|---|
CASCADE | Automatycznie usuwa/aktualizuje powiązane rekordy |
SET NULL | Ustawia klucz obcy na NULL |
RESTRICT | Blokuje operację gdy istnieją powiązane rekordy (domyślnie) |
SET DEFAULT | Ustawia wartość domyślną |
NO ACTION | Jak RESTRICT (sprawdza po wykonaniu transakcji) |
CREATE TABLE zamowienia ( id_zamowienia INT AUTO_INCREMENT PRIMARY KEY, id_klienta INT NOT NULL, data DATE, FOREIGN KEY (id_klienta) REFERENCES klienci(id_klienta) ON DELETE CASCADE ON UPDATE CASCADE );
Określ typ relacji (1:1 / 1:N / M:N):
Masz tabelę zamowienia z kluczem obcym do tabeli klienci. Chcesz, aby po usunięciu klienta wszystkie jego zamówienia zostały automatycznie usunięte. Którą akcję zastosujesz?
Zdefiniuj relację M:N między tabelami produkty i zamowienia. Tabela pośrednia powinna nazywać się pozycje_zamowien i zawierać ilość oraz cenę jednostkową. Wpisz nazwy kolumn: