PROJEKT DANYCH METODĄ MODELOWANIA ZWIĄZKÓW ENCJI

advertisement
PROJEKT DANYCH METODĄ MODELOWANIA ZWIĄZKÓW ENCJI
materiały do laboratorium Baz Danych dla AiR
Do projektowania struktury bazy danych wykorzystuje się metodę Modelowania Związków
Encji Jest to powszechnie stosowana metoda inżynierii informacji autorstwa Chen'a (I976r), służąca
do konstruowania wysokiej jakości modeli danych.
–
–
–
Metoda Modelowania Związków Encji obejmuje identyfikowanie:
rzeczy ważnych w świecie rzeczywistym, za pomocą obiektów (encji),
sposobów jakimi te obiekty są powiązane tzw. związków
własności tych obiektów i własności powiązań tj. ich atrybutów.
Obiekt (encja) to rzecz istotna, rzeczywista bądź wyobrażona, o której informacje muszą być
znane lub przechowywane. Informacje te to np. wartości atrybutów obiektu oraz zależności, w jakich
pozostaje dany obiekt z innymi obiektami. Graficzną reprezentacją obiektów jest prostokąt
z umieszczoną w środku jego nazwą.
NAZWA
Związek jest nazwanym, istotnym powiązaniem, jakie istnieje między dwoma lub więcej
obiektami. W szczególnym przypadku może być powiązaniem tego samego obiektu z samym sobą
(związek rekurencyjny). Związek jest przedstawiany za pomocą rombu z przypisaną mu nazwą
etykiety.
NAZWA
Każdy związek ma przypisaną liczebność (liczbę wystąpień). Mogą istnieć związki 1:1,
związki M:N, oraz związki 1:N.
Atrybut jest to odwzorowanie typu obiektu lub typu związku w zbiór wartości. Atrybuty
możemy podzielić na:
– atrybuty pojedyncze,
– atrybuty wielowartościowe.
Atrybuty są reprezentowane przez elipsy przyłączone do odpowiedniego obiektu bądź związku.
NAZWA
1
Za pomocą tych symboli tworzy się logiczny model danych (Entity Relationship Diagrams),
przedstawiający informację przetwarzaną w modelowanym wycinku rzeczywistości, abstrahując od
ograniczeń narzuconych przez implementację.
Aby przekształcić model logiczny utworzony metodą Modelowania Związków Encji w schemat
relacyjnej bazy danych (czyli zbiór schematów relacji) należy zastosować następujący algorytm:
1. Utworzyć schemat relacji dla każdego typu obiektu
Do schematu wchodzą wszystkie atrybuty pojedyncze opisujące ten obiekt. Trzeba wyróżnić
atrybuty w tym atrybuty kluczowe, identyfikujące w sposób jednoznaczny wystąpienie danego
obiektu. Klucz obiektu jest kluczem schematu.
2. Utworzyć dodatkowy schemat relacji dla każdego atrybutu wielowartościowego
Do schematu tego wchodzi klucz obiektu oraz atrybut wielowartościowy. Kluczem jest cały
schemat relacji.
3. Utworzyć schemat relacji dla każdego typu związku
Do schematu tego wchodzą atrybuty własne związku oraz klucze obiektów wchodzących w związek.
– jeśli związek jest typu 1: N, to kluczem relacji jest atrybut kluczowy tego obiektu, który
wchodzi przez krawędź N,
– jeśli związek jest typu M:N, to kluczem staje się złożenie kluczy obu encji.
– jeśli związek jest typu 1:1, to kluczem jest dowolny z kluczy obiektów wchodzących
w związek.
4. Dokonać optymalizacji schematów, które powstają dla związków 1:N i 1:1, scalić schematy
o identycznych kluczach
2
Przykład wykorzystania metody Modelowania Związków Encji.
Zaprojektować schemat bazy danych dla przychodni lekarskiej. W przychodni tej jeden pacjent jest
leczony przez jednego lekarza ale jeden lekarz może leczyć kilku pacjentów. Różnym pacjentom
przepisywane są różnego typu lekarstwa. W bazie danych należy przechowywać następujące
informacje:
– o lekarzu – nr_lekarski, PESEL, Nazwisko, Imię
– o pacjencie – PESEL, Imię, Nazwisko, choroba(Nazwa i Typ), na którą choruje oraz
zestaw przepisanych mu lekarstw do danej choroby (Nazwa i dawka).
Na podstawie warunków zadania określone zostały cztery obiekty – Lekarz, Pacjent, Choroby i
Lekarstwa.
PESELP
nr_lekarza
N
1
Leczy
Pacjent
Lekarz
M
Leczy
się
K
Lekarstwa
nr_lekarstwa
Między tymi obiektami zachodzą następujące związki:
– lekarz leczy Npacjenta w związku 1:N (jeden lekarz leczy N pacjentów, dany pacjent
dawka
leczony jest przez 1-go lekarza)
nr_choroby
– pacjent leczy się na kilka chorób, wykorzystując
do tego kilka typów lekarstw – obiekty te
Choroby
więc związane są jednym związkiem Leczy się M:N:K (kilku pacjentów może chorować
na tę samą chorobę, jeden pacjent może chorować na kilka chorób M:N; jeden pacjent
może pobierać kilka lekarstw, dane lekarstwo może być aplikowane kilku pacjentom K:M;
i wreszcie dane lekarstwo może być stosowane do kilku chorób, a do jednej choroby może
być stosowanych kilka lekarstw N:K)
– dla zachowania czytelności rysunku, do obiektów dołączono po jednym, kluczowym
atrybucie oraz do związku Leczy się dołączono atrybut dawka, określający jaką dawkę
lekarstwa powinien zażywać dany pacjent chorujący na daną chorobę.
Tworząc, na podstawie diagramu, schemat bazy danych otrzymujemy następujące relacje:
– dla obiektów:
Lekarz (nr_lekarza, nazwisko, imię, PESELL)
Pacjent(PESELP, nazwisko, imię)
Choroby(nr_choroby, nazwa, typ)
Lekarstwa(nr_lekarstwa, nazwa)
3
–
dla związków
Leczy(nr_lekarza, PESELL)
Leczy_się(PESELP, nr_choroby, nr_lekarstwa, dawka)
Klucze schematów zostały podkreślone.
Kolejnym krokiem jest przeprowadzenie optymalizacji, polegającej na scaleniu schematów o tych
samych kluczach. W omawianym przykładzie są to: Pacjent i Leczy. W efekcie otrzymujemy schemat
bazy danych o postaci:
Lekarz (nr_lekarza, nazwisko, imię, PESELL)
Pacjent(PESELP, nazwisko, imię, nr_lekarza)
Choroby(nr_choroby, nazwa)
Lekarstwa(nr_lekarstwa, nazwa)
Leczy_się(PESELP, nr_choroby, nr_lekarstwa, dawka)
4
Download