Podstawowe zasady przejścia z diagramu klas do schematu relacyjnej bazy danych

klucz obcy FK odwołuje się do wartości klucza głównego z innej tabeli).

Zasada:

związek 1: 1 -jednakowe klucze główne lub usunięcie związku poprzez połączenie tabel

związek 1: N -klucz główny tabeli po stronie 1(tabela nadrzędna) jest kluczem obcym w tabeli po stronie wiele(tabela podrzędna)

związek N:M -wprowadzenie nowej tabeli realizującej dwa związki 1 do wielu (1:N; M:1),

liczebność 0 -dopuszczenie wartości NULL

Z FK ustala się opcje związane z usunięciem rekordu nadrzędnego (z tabeli po stronie 1).Możliwe rozwiązania: próba usunięcia rekordu z tabeli nadrzędnej, który posiada rekordy podrzędne kończy się:

NO ACTION -błędem

CASCADE -usunięciem wszystkich rekordów podrzędnych

SET NULL -przestawienie wartości kluczy obcych w rekordach podrzędnych na nieokreślone

SET DEFAULT -przestawienie wartości kluczy obcych w rekordach podrzędnych na wartość domyślną

0x08 graphic
W diagramie klas mamy związek generalizacji - specjalizacji

I Wariant

Umieszczenie na poziomie generalizacji pól wszystkich jej specjalizacji oraz dodatkowego pola opisującego rodzaj aktualnego obiektu

  • 1 tablica wszystkie atrybuty + dodatkowy określający typ klasy

  • zaleta: łatwość implementacji, szybkość dostępu do danych

  • wada: duże zużycie pamięci (dużo pustych pól)

0x01 graphic

II Wariant

Umieszczenie wszystkich pół i metod generalizacji na poziomie specjalizacji

  • pozbycie się klasy bazowej, umieszczenie atrybutów w tablicach odpowiadającym klasom pochodnym

  • stosowana gdy mniej atrybutów klasy bazowej niż w klasach pochodnych

  • zaleta: szybkość dostępu do danych, mniejsze zużycie pamięci

0x01 graphic

III Wariant

Zastąpienie związku generalizacji-specjalizacji asocjacją

  • Tablice odpowiadające klasom, związek generalizacji zamieniony na powiązanie między tablicami

  • zaleta: mniejsze zużycie pamięci

0x08 graphic

Przykład.

0x01 graphic

Realizacja w relacyjnej bazie danych:

I Wariant

KlientPracownik(id, nazwisko, imie, adres, typOsoba, nazwa, NIP, stanowisko, stazPracy)

II Wariant

OsobaKlient(idKlient, nazwisko, imie, adres, Nip, nazwa)

OsobaPracownik(idPracownik, nazwisko, imie, adres, stanowisko, stazPracy)

III Wariant

Osoba(idOsoba, nazwisko, imie, adres)

Pracownik(idPracownika, idOsoba, stanowisko, stazPracy)

Klient(idKlienta, idOsoba, nazwa, NIP)

Materiał przygotowany przez Annę Michalczyk

A

a

B

b

C

c

B

b

A

a

C

c

0..1

0..1