Podstawowe zasady przejścia z diagramu klas do schematu relacyjnej bazy danych
Klasa UML staje się tabelą, (obiekt to rekord w tabeli)
Atrybut klasy staje się kolumną w tabeli, polem (bez względu na widoczność)
Typ atrybutu staje się typem kolumny (zgodnie z tabelą przekształceń)
Operacje wykonane po stronie aplikacji lub serwera (tabele nie posiadają zachowań) -
Asocjacja: -określić atrybut (pole) realizujące powiązanie (para klucz główny(PK)-obcy(FK),
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ą
Agregacja: jak asocjacja, reguła integralności SET NULL
Kompozycja (agregacja pełna) - klucz główny tabeli z klasy całość staje się częścią klucza głównego w tabeli z klasy część, reguła integralności CASCADE
Generalizacja - brak dziedziczenia, możliwe rozwiązania:
|
I Wariant Umieszczenie na poziomie generalizacji pól wszystkich jej specjalizacji oraz dodatkowego pola opisującego rodzaj aktualnego obiektu
|
|
|
II Wariant Umieszczenie wszystkich pół i metod generalizacji na poziomie specjalizacji
|
|
|
III Wariant Zastąpienie związku generalizacji-specjalizacji asocjacją
|
|
Przykład.
|
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