opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
1
1
Relacyjne Bazy Danych
Relacyjne Bazy Danych
Wykład III
Wykład III
Modelowanie danych
Modelowanie danych
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
2
2
Streszczenie wykładu III
Streszczenie wykładu III
Wykład III składa się z trzech części. W pierwszej są przedstawione dwie
Wykład III składa się z trzech części. W pierwszej są przedstawione dwie
kolejne konwencje notacyjne dla diagramów związków encji. Jako
kolejne konwencje notacyjne dla diagramów związków encji. Jako
uzupełnienie jest pokazana notacja dla modelowania perspektyw i
uzupełnienie jest pokazana notacja dla modelowania perspektyw i
hierarchii encji.
hierarchii encji.
W drugiej części są rozważone dwa problemy często występujące w
W drugiej części są rozważone dwa problemy często występujące w
zastosowaniach: modelowanie hierarchii danych oraz modelowanie
zastosowaniach: modelowanie hierarchii danych oraz modelowanie
zmienności danych w czasie.
zmienności danych w czasie.
W trzeciej części jest przedstawione obiektowo - relacyjne rozszerzenie
W trzeciej części jest przedstawione obiektowo - relacyjne rozszerzenie
modelu danych w MS Visio, oraz notacyjny język ODL (Object Definition
modelu danych w MS Visio, oraz notacyjny język ODL (Object Definition
Language).
Language).
Przykłady diagramów, tak jak na poprzednim wykładzie, są tworzone przy
Przykłady diagramów, tak jak na poprzednim wykładzie, są tworzone przy
pomocy programu Microsoft Visio v. 2000.
pomocy programu Microsoft Visio v. 2000.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
3
3
Część I
Część I
Konwencje notacyjne dla
Konwencje notacyjne dla
diagramów związków encji
diagramów związków encji
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
4
4
Alternatywne notacje modelowania danych
Alternatywne notacje modelowania danych
Za chwilę zostaną przedstawione dwie kolejne konwencje notacyjne dla
Za chwilę zostaną przedstawione dwie kolejne konwencje notacyjne dla
diagramów związków encji. Ilustruje to fakt, że w praktyce modelowania
diagramów związków encji. Ilustruje to fakt, że w praktyce modelowania
danych są używane rozmaite notacje i nie ma jednego, jedynie słusznego
danych są używane rozmaite notacje i nie ma jednego, jedynie słusznego
standardu. Wszystkie one obejmują te same pojęcia:
standardu. Wszystkie one obejmują te same pojęcia:
encja
encja
–
–
atrybut
atrybut
-
-
związek
związek
. Wybór notacji jest naprawdę drugorzędny i jest często
. Wybór notacji jest naprawdę drugorzędny i jest często
determinowany przez rodzaj narzędzia CASE, którego używa zespół
determinowany przez rodzaj narzędzia CASE, którego używa zespół
projektowy.
projektowy.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
5
5
Notacja modelowania danych IDEF1X
Notacja modelowania danych IDEF1X
Najpierw przedstawimy notację modelowania
Najpierw przedstawimy notację modelowania
IDEF1X
IDEF1X
. Jest ona dostępna w MS
. Jest ona dostępna w MS
Visio: "Database -> Options ->Document -> Zakładka General -> Symbol set
Visio: "Database -> Options ->Document -> Zakładka General -> Symbol set
= IDEF1X" (zamiast domyślnego "Relational")
= IDEF1X" (zamiast domyślnego "Relational")
Konwencje notacyjne IDEF1X:
Konwencje notacyjne IDEF1X:
Związek identyfikujący – linia ciągła
Związek identyfikujący – linia ciągła
Związek nieidentyfikujący – linia przerywana
Związek nieidentyfikujący – linia przerywana
Strona wiele związku – czarne kółko
Strona wiele związku – czarne kółko
Związek opcjonalny – romb przy encji po stronie jeden
Związek opcjonalny – romb przy encji po stronie jeden
Indeks - IE
Indeks - IE
Prostokąt z zaokrąglonymi narożami - encja zależna (słaba)
Prostokąt z zaokrąglonymi narożami - encja zależna (słaba)
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
6
6
Notacja IDEF1X - notacja ErWin’a
Notacja IDEF1X - notacja ErWin’a
Notacja
Notacja
IDEF1X
IDEF1X
jest stosowana w Erwinie - narzędziu CASE używanym
jest stosowana w Erwinie - narzędziu CASE używanym
dawniej w PJWSTK. Erwin modeluje też związki wieloznaczne:
dawniej w PJWSTK. Erwin modeluje też związki wieloznaczne:
Jeden
Jeden
student
student
uczęszcza na zajecia z wielu
uczęszcza na zajecia z wielu
przedmiotów
przedmiotów
. Na zajecia z
. Na zajecia z
jednego
jednego
przedmiotu
przedmiotu
uczęszcza wielu
uczęszcza wielu
studentów
studentów
.
.
Należy pamiętać, że przedstawiony powyżej schemat, to tylko model związku,
Należy pamiętać, że przedstawiony powyżej schemat, to tylko model związku,
a nie rozwiązanie problemu, które, niezależnie od notacji sprowadza się do
a nie rozwiązanie problemu, które, niezależnie od notacji sprowadza się do
rozłożenia związku niejednoznacznego na sumę związków jednoznacznych.
rozłożenia związku niejednoznacznego na sumę związków jednoznacznych.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
7
7
Notacja modelowania danych Chena
Notacja modelowania danych Chena
Druga z prezentowanych notacji to notacja zaproponowana przez Chena w 1976,
Druga z prezentowanych notacji to notacja zaproponowana przez Chena w 1976,
jako pierwsza dla diagramów związków encji. Jest ona bardziej uniwersalna od
jako pierwsza dla diagramów związków encji. Jest ona bardziej uniwersalna od
poprzednich, bo umożliwia reprezentację związków wieloargumentowych i
poprzednich, bo umożliwia reprezentację związków wieloargumentowych i
wieloznacznych.
wieloznacznych.
Konwencje notacyjne notacji Chena:
Konwencje notacyjne notacji Chena:
Encja
Encja
– prostokąt,
– prostokąt,
Atrybut
Atrybut
– koło,
– koło,
Związek
Związek
– romb
– romb
Powyższy diagram modeluje zależności: Dla każdej grupy studenckiej prowadzone są
Powyższy diagram modeluje zależności: Dla każdej grupy studenckiej prowadzone są
zajęcia z różnych przedmiotów przez różnych wykładowców.
zajęcia z różnych przedmiotów przez różnych wykładowców.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
8
8
Konwencje notacyjne notacji Chena
Konwencje notacyjne notacji Chena
W MS Visio
W MS Visio
o tworzeniu modelu w notacji Chena decydujemy już na etapie
o tworzeniu modelu w notacji Chena decydujemy już na etapie
otwierania nowego pliku
otwierania nowego pliku
: "File -> New -> Database -> Chen ERD" (
: "File -> New -> Database -> Chen ERD" (
Notacje
Notacje
„Relational” i „IDEF1X:
„Relational” i „IDEF1X:
"File -> New -> Database -> Database Model
"File -> New -> Database -> Database Model
Diagram")
Diagram")
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
9
9
Rozszerzenia zasadniczego modelu w MS Visio
Rozszerzenia zasadniczego modelu w MS Visio
Modelowanie perspektyw (view)
Modelowanie perspektyw (view)
Perspektywa jest widokiem na dane w bazie danych dostosowanym do punktu
Perspektywa jest widokiem na dane w bazie danych dostosowanym do punktu
widzenia i potrzeb końcowego użytkownika bazy danych. Przy generowaniu do
widzenia i potrzeb końcowego użytkownika bazy danych. Przy generowaniu do
MS Access perspektywy przechodzą na kwerendy wybierające.
MS Access perspektywy przechodzą na kwerendy wybierające.
Pierwszy przykład pokazuje perspektywę złożoną z nazwiska studenta (atrybut
Pierwszy przykład pokazuje perspektywę złożoną z nazwiska studenta (atrybut
encji
encji Student
) i numeru jego grupy studenckiej (atrybut encji
) i numeru jego grupy studenckiej (atrybut encji
Grupa
Grupa
). Przy
). Przy
definiowaniu perspektywy trzeba podać warunek złączenia encji wchodzących
definiowaniu perspektywy trzeba podać warunek złączenia encji wchodzących
w skład definicji perspektywy. W pokazanym przykładzie jest to równość
w skład definicji perspektywy. W pokazanym przykładzie jest to równość
wartości atrybutów
wartości atrybutów
Nr_grupy
Nr_grupy
po obu stronach związku, czyli w obu encjach
po obu stronach związku, czyli w obu encjach
wchodzących w skład perspektywy.
wchodzących w skład perspektywy.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
10
10
Rozszerzenia zasadniczego modelu w MS Visio
Rozszerzenia zasadniczego modelu w MS Visio
Modelowanie perspektyw (view)
Modelowanie perspektyw (view)
Drugi przykład pokazuje perspektywę
Drugi przykład pokazuje perspektywę
Ucza_Studentow
Ucza_Studentow
, łączącą wykładowców oraz tych
, łączącą wykładowców oraz tych
studentów, z którymi wykładowcy prowadzą zajęcia. Posiada ona dwa atrybuty:
studentów, z którymi wykładowcy prowadzą zajęcia. Posiada ona dwa atrybuty:
Wykladowca
Wykladowca
(Nazwisko i Imię wykładowcy) z encji
(Nazwisko i Imię wykładowcy) z encji
Wykładowca,
Wykładowca,
oraz
oraz
Student
Student
(Nazwisko
(Nazwisko
i Imię studenta) z encji
i Imię studenta) z encji
Student
Student
.
.
Zauważmy, że encje
Zauważmy, że encje
Wykladowca
Wykladowca
i
i
Student
Student
, z których pochodzą atrybuty perspektywy,
, z których pochodzą atrybuty perspektywy,
nie są bezpośrednio połączone związkiem. Przy definiowaniu warunków złączeń encji (w
nie są bezpośrednio połączone związkiem. Przy definiowaniu warunków złączeń encji (w
zakładce „Join Criteria”) trzeba podać całą sekwencję warunków złączeń, zaczynając od
zakładce „Join Criteria”) trzeba podać całą sekwencję warunków złączeń, zaczynając od
encji
encji
Wykladowca
Wykladowca
, przejść przez encje
, przejść przez encje
Zajecia
Zajecia
i
i
Grupa
Grupa
, dochodząc na koniec do encji
, dochodząc na koniec do encji
Student
Student
. Przykład ten pokazuje, że w definicji perspektywy może występować więcej
. Przykład ten pokazuje, że w definicji perspektywy może występować więcej
encji niż tylko te, z których pochodzą atrybuty perspektywy.
encji niż tylko te, z których pochodzą atrybuty perspektywy.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
11
11
Część II
Część II
Modelowanie hierarchii danych
Modelowanie hierarchii danych
oraz modelowanie zmienności
oraz modelowanie zmienności
danych w czasie
danych w czasie
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
12
12
Hierarchia encji, związek kategorii
Hierarchia encji, związek kategorii
Pozostał nam do omówienia jeszcze jeden, często występujący związek między
Pozostał nam do omówienia jeszcze jeden, często występujący związek między
wieloma encjami. Mianowicie, przypadek gdy jedna encja jest wyróżniona
wieloma encjami. Mianowicie, przypadek gdy jedna encja jest wyróżniona
jako nadrzędna (nadencja); pozostałe jako jej podencje (encje podrzędne).
jako nadrzędna (nadencja); pozostałe jako jej podencje (encje podrzędne).
Związek tego rodzaju nazywa się związkiem kategorii lub hierarchią encji.
Związek tego rodzaju nazywa się związkiem kategorii lub hierarchią encji.
Umożliwia on reprezentowanie dziedziczenia właściwości od encji ogólnej –
Umożliwia on reprezentowanie dziedziczenia właściwości od encji ogólnej –
nadencji, do encji szczegółowych - podencji. W przykładzie encja
nadencji, do encji szczegółowych - podencji. W przykładzie encja
Osoba
Osoba
jest
jest
nadencją, a encje
nadencją, a encje
Student
Student
,
,
Wykladowca
Wykladowca
i
i
Aministracja
Aministracja
podencjami.
podencjami.
Osoba może być studentem, pracownikiem dydaktycznym (wykładowcą) lub
Osoba może być studentem, pracownikiem dydaktycznym (wykładowcą) lub
pracownikiem administracji szkolnej. Cechy wspólne osób grupuje się w
pracownikiem administracji szkolnej. Cechy wspólne osób grupuje się w
encji
encji
Osoba
Osoba
; cechy charakterystyczne dla odpowiedniej grupy osób w
; cechy charakterystyczne dla odpowiedniej grupy osób w
jednej z podencji.
jednej z podencji.
Należy zwrócić uwagę na fakt, że w tym ujęciu Osoba może być jednocześnie
Należy zwrócić uwagę na fakt, że w tym ujęciu Osoba może być jednocześnie
studentem i/lub wykładowcą i/lub pracownikiem administracji, a przyjęte
studentem i/lub wykładowcą i/lub pracownikiem administracji, a przyjęte
rozwiązanie pozwala na zapisanie bez powtórzeń wszystkich jej atrubutów.
rozwiązanie pozwala na zapisanie bez powtórzeń wszystkich jej atrubutów.
Niedogodnościa tego rozwiązania jest konieczność korzystania ze złączeń encji
Niedogodnościa tego rozwiązania jest konieczność korzystania ze złączeń encji
przy wydobywaniu informacji dotyczących osób, wraz z danymi
przy wydobywaniu informacji dotyczących osób, wraz z danymi
wynikającymi z ich przynależności do poszczególnych podkategorii
wynikającymi z ich przynależności do poszczególnych podkategorii
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
13
13
Hierarchia encji, związek kategorii - przykład
Hierarchia encji, związek kategorii - przykład
Wśród atrybutów nadencji mógłby pojawić się atrybut, nazywany
Wśród atrybutów nadencji mógłby pojawić się atrybut, nazywany
wyróżnikiem
wyróżnikiem
kategorii
kategorii
, decydujący o zaliczeniu osoby do jednej z podencji. W naszym
, decydujący o zaliczeniu osoby do jednej z podencji. W naszym
przykładzie taki atrybut nie występuje. Na diagramie kategoria została
przykładzie taki atrybut nie występuje. Na diagramie kategoria została
określona jako
określona jako
pełna
pełna
(
(
complete
complete
) tzn. każda osoba trafia do jednej z trzech
) tzn. każda osoba trafia do jednej z trzech
podencji.
podencji.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
14
14
Hierarchia encji – narzędzia tworzenia
Hierarchia encji – narzędzia tworzenia
prezentacji
prezentacji
Dla tworzenia modelu diagramu związków encji z użyciem rozdzielenia kategorii i
Dla tworzenia modelu diagramu związków encji z użyciem rozdzielenia kategorii i
podkategorii MS Visio przewiduje specjalne narzedzia:
podkategorii MS Visio przewiduje specjalne narzedzia:
Ikona „Category” stanowiąca obiekt pośredni pomiędzy nadencją a podencjami
Ikona „Category” stanowiąca obiekt pośredni pomiędzy nadencją a podencjami
Ikona „Parent to category” – łącznik pomiędzy nadencją a ikoną „Category”
Ikona „Parent to category” – łącznik pomiędzy nadencją a ikoną „Category”
Ikona „Category to child” – łącznik pomiędzy ikoną „Category” a podencjami
Ikona „Category to child” – łącznik pomiędzy ikoną „Category” a podencjami
Od nadencji do symbolu kategorii
Symbol kategorii
Od symbolu kategorii do podencji
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
15
15
Hierarchia encji – implementacja w MS Access
Hierarchia encji – implementacja w MS Access
Związek kategorii można zastąpić zbiorem związków jedno - jednoznacznych między
Związek kategorii można zastąpić zbiorem związków jedno - jednoznacznych między
nadencją i podencjami. Na wykładzie 2 omówiliśmy trzy sposoby reprezentowania
nadencją i podencjami. Na wykładzie 2 omówiliśmy trzy sposoby reprezentowania
związków jedno - jednoznacznych w bazie danych, które mogą być zastosowane do
związków jedno - jednoznacznych w bazie danych, które mogą być zastosowane do
reprezentowania hierarchii:
reprezentowania hierarchii:
Osobne table dla nadencji i podencji z rozdzieleniem atrybutów,
Osobne table dla nadencji i podencji z rozdzieleniem atrybutów,
osobne tabele dla podencji zawierające komplet atrybutów,
osobne tabele dla podencji zawierające komplet atrybutów,
jedna wspólna tabela zawierająca komplet atrybutów.
jedna wspólna tabela zawierająca komplet atrybutów.
Przy generowaniu do bazy danych MS Access realizowana jest metoda 1 tzn.
Przy generowaniu do bazy danych MS Access realizowana jest metoda 1 tzn.
tworzone są osobne tabele dla nadencji i każdej podencji, co widać na powyższym
tworzone są osobne tabele dla nadencji i każdej podencji, co widać na powyższym
przykładzie.
przykładzie.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
16
16
Modelowanie hierarchicznej struktury danych
Modelowanie hierarchicznej struktury danych
Jednym z powtarzających się wzorców modelowania danych są ich hierarchie.
Jednym z powtarzających się wzorców modelowania danych są ich hierarchie.
Rozważmy na przykład hierarchiczną strukturę organizacyjną firmy. Model
Rozważmy na przykład hierarchiczną strukturę organizacyjną firmy. Model
powyższy, aczkolwiek formalnie poprawny, ma dwie istotne wady:
powyższy, aczkolwiek formalnie poprawny, ma dwie istotne wady:
Jest bardzo rozbudowany; dla struktur bardziej skomplikowanych, o
Jest bardzo rozbudowany; dla struktur bardziej skomplikowanych, o
większej ilości „pięter” (np. dokumentacja techniczna, struktury
większej ilości „pięter” (np. dokumentacja techniczna, struktury
podległości w wojsku) wymusza tworzenie dużej liczby encji (tabel).
podległości w wojsku) wymusza tworzenie dużej liczby encji (tabel).
Jest całkowicie pozbawiony elastyczności; jakakolwiek zmiana struktury
Jest całkowicie pozbawiony elastyczności; jakakolwiek zmiana struktury
firmy, wymusza zmianę koncepcji(!) opisującej ją bazy danych.
firmy, wymusza zmianę koncepcji(!) opisującej ją bazy danych.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
17
17
Modelowanie hierarchicznej struktury danych
Modelowanie hierarchicznej struktury danych
Alternatywną reprezentację stanowi model, w którym wszystkie jednostki
Alternatywną reprezentację stanowi model, w którym wszystkie jednostki
organizacyjne są modelowane za pomocą jednej encji. Powiązanie do encji
organizacyjne są modelowane za pomocą jednej encji. Powiązanie do encji
nadrzędnej realizowane jest przez pętlę wokół encji jednostki organizacyjnej
nadrzędnej realizowane jest przez pętlę wokół encji jednostki organizacyjnej
(związek rekurencyjny).
(związek rekurencyjny).
Model ten jest krótszy i bardziej elastyczny np. w sytuacji zmiany struktury
Model ten jest krótszy i bardziej elastyczny np. w sytuacji zmiany struktury
organizacyjnej firmy. Zwróćmy uwagę, że związek rekurencyjny dla hierarchii musi
organizacyjnej firmy. Zwróćmy uwagę, że związek rekurencyjny dla hierarchii musi
być opcjonalny, aby móc zakończyć przechodzenie hierararchii na najwyższej
być opcjonalny, aby móc zakończyć przechodzenie hierararchii na najwyższej
jednostce organizacyjnej nazywanej korzeniem hierarchii.
jednostce organizacyjnej nazywanej korzeniem hierarchii.
W encji jednostki organizacyjnej występuje atrybut
W encji jednostki organizacyjnej występuje atrybut
Typ
Typ
, którego wartością jest typ
, którego wartością jest typ
jednostki organizacyjnej np. „Oddział", „Zaklad” etc. Zbiór takich wartości jest
jednostki organizacyjnej np. „Oddział", „Zaklad” etc. Zbiór takich wartości jest
mało-liczny i rzadko ulega modyfikacji. Aby ułatwić kontrolę poprawności
mało-liczny i rzadko ulega modyfikacji. Aby ułatwić kontrolę poprawności
wprowadzanych przez użytkownika wartości tego atrybutu, wprowadza się osobną
wprowadzanych przez użytkownika wartości tego atrybutu, wprowadza się osobną
encję, nazywaną
encję, nazywaną
encją słownikową
encją słownikową
. Na poniższym diagramie jest to encja
. Na poniższym diagramie jest to encja
Typ
Typ
.
.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
18
18
Modelowanie zjawisk zmiennych w czasie
Modelowanie zjawisk zmiennych w czasie
Problemem, przed którym często staje projektant schematu bazy danych jest
Problemem, przed którym często staje projektant schematu bazy danych jest
uwzględnienie w modelu danych zmian wartości atrybutów w czasie.
uwzględnienie w modelu danych zmian wartości atrybutów w czasie.
Interesuje nas nie tylko, ile wykładowca zarabia obecnie, jakie zajmuje
Interesuje nas nie tylko, ile wykładowca zarabia obecnie, jakie zajmuje
stanowisko, w której aktualnie pracuje katedrze, ale również ile zarabiał w
stanowisko, w której aktualnie pracuje katedrze, ale również ile zarabiał w
zeszłym roku, jak przebiegała jego kariera, w jakich katedrach pracował od
zeszłym roku, jak przebiegała jego kariera, w jakich katedrach pracował od
początku zatrudnienia.
początku zatrudnienia.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
19
19
Modelowanie zjawisk zmiennych w czasie
Modelowanie zjawisk zmiennych w czasie
Stosowana metoda jest podobna jak przy wprowadzaniu encji asocjacyjnych –
Stosowana metoda jest podobna jak przy wprowadzaniu encji asocjacyjnych –
dodajemy encję "temporalną", której zadaniem jest reprezentowanie zmian w
dodajemy encję "temporalną", której zadaniem jest reprezentowanie zmian w
czasie – dotyczących albo wartości atrybutów, albo związków z inną encją.
czasie – dotyczących albo wartości atrybutów, albo związków z inną encją.
Najpierw rozwiążemy problem wprowadzenia historii zmian w wartościach
Najpierw rozwiążemy problem wprowadzenia historii zmian w wartościach
atrybutów, tzn. problem uwzględnienia historii zarobków (atrybut
atrybutów, tzn. problem uwzględnienia historii zarobków (atrybut
Zarobki
Zarobki
) i
) i
piastowanych stanowisk (atrybut
piastowanych stanowisk (atrybut
Stanowisko
Stanowisko
). W tym celu wprowadzimy nowe
). W tym celu wprowadzimy nowe
encje zależne: „
encje zależne: „
Zarobki_historia
Zarobki_historia
„ – do reprezentowania zmian zarobków,
„ – do reprezentowania zmian zarobków,
oraz"
oraz"
Stanowiska_historia
Stanowiska_historia
" – do reprezentowania zmian w piastowanych
" – do reprezentowania zmian w piastowanych
stanowiskach. Wprowadzimy także do obu nowych encji atrybut „
stanowiskach. Wprowadzimy także do obu nowych encji atrybut „
Data_od"
Data_od"
reprezentujący czas, w którym zaszło odpowiednie zdarzenie (rozpoczął się nowy
reprezentujący czas, w którym zaszło odpowiednie zdarzenie (rozpoczął się nowy
stan). Atrybut ten umieszczamy w kluczu głównym.
stan). Atrybut ten umieszczamy w kluczu głównym.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
20
20
Modelowanie zjawisk zmiennych w czasie
Modelowanie zjawisk zmiennych w czasie
Teraz rozwiążemy problem wprowadzenia historii przypisania pracowników do
Teraz rozwiążemy problem wprowadzenia historii przypisania pracowników do
katedr w uczelni (związek między encjami
katedr w uczelni (związek między encjami
Wykladowca
Wykladowca
i
i
Katedra
Katedra
). W tym celu
). W tym celu
wprowadzimy nową encję zależną „
wprowadzimy nową encję zależną „
Zatrudnienie_historia"
Zatrudnienie_historia"
której rolą jest
której rolą jest
reprezentowanie zmian przypisań wykładowcy do katedry. Wprowadzimy także
reprezentowanie zmian przypisań wykładowcy do katedry. Wprowadzimy także
do nowej encji atrybut „
do nowej encji atrybut „
Data_od
Data_od
" reprezentujący czas, w którym zaszło
" reprezentujący czas, w którym zaszło
przypisanie katedry. Atrybut ten umieszczamy w kluczu głównym.
przypisanie katedry. Atrybut ten umieszczamy w kluczu głównym.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
21
21
Modelowanie zjawisk zmiennych w czasie
Modelowanie zjawisk zmiennych w czasie
Opisaliśmy w ten sposób zmiany w czasie wartości atrybutów i
Opisaliśmy w ten sposób zmiany w czasie wartości atrybutów i
związków. Zachodzi pytanie, czy jest sens mówić o zmienności
związków. Zachodzi pytanie, czy jest sens mówić o zmienności
instancji encji? Zmiany wartości atrybutów w istniejących
instancji encji? Zmiany wartości atrybutów w istniejących
instancjach encji moglibyśmy reprezentować tak jak poprzednio, z
instancjach encji moglibyśmy reprezentować tak jak poprzednio, z
wyjątkiem być może zmian wartości klucza głównego
wyjątkiem być może zmian wartości klucza głównego
(oznaczających zmianę "tożsamości" instancji encji). Taką zmianę
(oznaczających zmianę "tożsamości" instancji encji). Taką zmianę
moglibyśmy interpretować jako zastąpienie jednej instancji przez
moglibyśmy interpretować jako zastąpienie jednej instancji przez
inną (usunięcie i wstawienie) – być może z przeniesieniem
inną (usunięcie i wstawienie) – być może z przeniesieniem
wartości pewnych atrybutów.
wartości pewnych atrybutów.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
22
22
Modelowanie zjawisk zmiennych w czasie
Modelowanie zjawisk zmiennych w czasie
W szczególnym przypadku może tu chodzić tylko o usunięcie instancji
W szczególnym przypadku może tu chodzić tylko o usunięcie instancji
encji – ale z pozostawieniem jej w historii instancji encji. Faktycznie w
encji – ale z pozostawieniem jej w historii instancji encji. Faktycznie w
bazie danych pracowników (wykładowców) pozostawia się zwykle o nich
bazie danych pracowników (wykładowców) pozostawia się zwykle o nich
informacje, mimo że przestają być pracownikami. Oto możliwe
informacje, mimo że przestają być pracownikami. Oto możliwe
rozwiązanie tego problemu, polegające na wprowadzeniu atrybutu
rozwiązanie tego problemu, polegające na wprowadzeniu atrybutu
"
"
Status
Status
", którego wartość powinna pozwolić rozstrzygnąć, czy dana
", którego wartość powinna pozwolić rozstrzygnąć, czy dana
osoba jest aktualnie pracownikiem firmy.
osoba jest aktualnie pracownikiem firmy.
Inne rozwiązanie problemu mogłoby polegać na przeniesieniu informacji
Inne rozwiązanie problemu mogłoby polegać na przeniesieniu informacji
o usuwanych obiektach do osobnych encji stanowiących pewnego
o usuwanych obiektach do osobnych encji stanowiących pewnego
rodzaju historyczne archiwum bazy danych. Szczególnie przy dużych
rodzaju historyczne archiwum bazy danych. Szczególnie przy dużych
rozmiarach zbiorów instancji encji takie rozwiązanie jest wskazane, ze
rozmiarach zbiorów instancji encji takie rozwiązanie jest wskazane, ze
względu na efektywność operacji wyszukiwiania w bazie danych.
względu na efektywność operacji wyszukiwiania w bazie danych.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
23
23
Część III
Część III
Model obiektowo - relacyjny
Model obiektowo - relacyjny
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
24
24
Model obiektowo - relacyjny w MS Visio
Model obiektowo - relacyjny w MS Visio
W obiektowej bazie danych obiekty są instancjami typów
W obiektowej bazie danych obiekty są instancjami typów
obiektowych (klas) z metodami i z dziedziczeniem. Obiekty są
obiektowych (klas) z metodami i z dziedziczeniem. Obiekty są
gromadzone w tabelach obiektowych.
gromadzone w tabelach obiektowych.
Tabela obiektowa
Tabela obiektowa
- tabela, której elementami są obiekty ustalonego
- tabela, której elementami są obiekty ustalonego
typu obiektowego (klasy). Przejście od tabeli relacyjnej do
typu obiektowego (klasy). Przejście od tabeli relacyjnej do
obiektowej odbywa się zgodnie z zasadą:
obiektowej odbywa się zgodnie z zasadą:
wiersz
wiersz
->
->
obiekt
obiekt
. W
. W
wyniku transformacji wiersz tabeli relacyjnej uzyskuje metody oraz
wyniku transformacji wiersz tabeli relacyjnej uzyskuje metody oraz
tożsamość obiektową i staje się obiektem.
tożsamość obiektową i staje się obiektem.
Wartością atrybutu może być wartość złożona jak np. lista wartości,
Wartością atrybutu może być wartość złożona jak np. lista wartości,
zbiór wartości, rekord, referencja do innego obiektu.
zbiór wartości, rekord, referencja do innego obiektu.
W MS Visio dostęp do narzędzi modelowania obiektowo - relacyjnego
W MS Visio dostęp do narzędzi modelowania obiektowo - relacyjnego
uzyskujemy przez włączenie szablonu (stencil)
uzyskujemy przez włączenie szablonu (stencil)
Database ->
Database ->
Object Relational
Object Relational
.
.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
25
25
Model obiektowo - relacyjny w MS Visio
Model obiektowo - relacyjny w MS Visio
Tabela
Tabela
Osoby
Osoby
zawiera zbiór obiektów typu
zawiera zbiór obiektów typu
Typ_osoby
Typ_osoby
.
.
Wprowadzamy dwa typy obiektowe:
Wprowadzamy dwa typy obiektowe:
Typ_adresowy
Typ_adresowy
i
i
Typ_osoby.
Typ_osoby.
Każdy obiekt typu
Każdy obiekt typu
Typ_osoby
Typ_osoby
ma:
ma:
trzy atrybuty typu atomowego (nie - złożonego):
trzy atrybuty typu atomowego (nie - złożonego):
Imie
Imie
,
,
Nazwisko
Nazwisko
oraz
oraz
Data_ur
Data_ur
oraz
oraz
dwa atrybuty typu złożonego:
dwa atrybuty typu złożonego:
adres
adres
– typu
– typu
Typ_adresowy
Typ_adresowy
kierownik
kierownik
– referencja do obiektu typu
– referencja do obiektu typu
Typ_osoby
Typ_osoby
.
.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
26
26
Modelowanie zbiorów wartości
Modelowanie zbiorów wartości
Kolekcja jest modelem zbioru wartości. Oprócz przynależności elementu do
Kolekcja jest modelem zbioru wartości. Oprócz przynależności elementu do
zbioru, rozważa się dodatkowe właściwości: ustawienie elementów zbioru w
zbioru, rozważa się dodatkowe właściwości: ustawienie elementów zbioru w
ciąg oraz wielokrotne wystąpienia tego samego elementu zbioru. Oto
ciąg oraz wielokrotne wystąpienia tego samego elementu zbioru. Oto
rodzaje kolekcji:
rodzaje kolekcji:
zbiór
zbiór
-
-
Set
Set
– nieuporządkowana kolekcja wartości bez powtórzeń.
– nieuporządkowana kolekcja wartości bez powtórzeń.
Np.
Np.
{4,8,9,3}.
{4,8,9,3}.
Lista, kolejka
Lista, kolejka
-
-
List
List
- uporządkowana kolekcja wartości z powtórzeniami.
- uporządkowana kolekcja wartości z powtórzeniami.
Np.
Np.
{1,2,1,5,6,7}.
{1,2,1,5,6,7}.
wielozbiór -
wielozbiór -
MultiSet
MultiSet
- nieuporządkowana kolekcja wartości z powtórzeniami
- nieuporządkowana kolekcja wartości z powtórzeniami
(wielozbiór).
(wielozbiór).
Np.
Np.
{4,8,4,8,8,9}.
{4,8,4,8,8,9}.
W modelu obiektowo-relacyjnym przy pomocy kolekcji można w prosty sposób
W modelu obiektowo-relacyjnym przy pomocy kolekcji można w prosty sposób
modelować pewne zjawiska, z którymi spotkaliśmy się już uprzednio, takie
modelować pewne zjawiska, z którymi spotkaliśmy się już uprzednio, takie
jak: atrybuty typów nieatomowych, oraz atrybuty, których wartości są
jak: atrybuty typów nieatomowych, oraz atrybuty, których wartości są
zmienne w czasie. Można również modelować związki zmienne w czasie,
zmienne w czasie. Można również modelować związki zmienne w czasie,
ale pod warunkiem zastosowania typów referencyjnych i więzów spójności
ale pod warunkiem zastosowania typów referencyjnych i więzów spójności
ograniczających zakres referencji. Sposoby te zostaną omówione na
ograniczających zakres referencji. Sposoby te zostaną omówione na
wykładzie „Systemy baz danych” przy przedstawianiu obiektowo-
wykładzie „Systemy baz danych” przy przedstawianiu obiektowo-
relacyjnych baz danych.
relacyjnych baz danych.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
27
27
Przykłady kolekcji osób: Grupa, Kolejka,
Przykłady kolekcji osób: Grupa, Kolejka,
Zapisy
Zapisy
Kolejne typy obiektowe modelujące odpowiednio zbiór(set), kolejkę (List),
Kolejne typy obiektowe modelujące odpowiednio zbiór(set), kolejkę (List),
wielozbiór (MultiSet)
wielozbiór (MultiSet)
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
28
28
Kolekcja w modelu relacyjnym - grupa
Kolekcja w modelu relacyjnym - grupa
W ramach pojedynczej grupy osoby nie są uporządkowane i nie powtarzają się
W ramach pojedynczej grupy osoby nie są uporządkowane i nie powtarzają się
(
(
Id_osoby
Id_osoby
i
i
Id_grupy
Id_grupy
tworzą klucz główny). Dla podanego przykładu grupę
tworzą klucz główny). Dla podanego przykładu grupę
możemy interpretować jako np. koło naukowe studentów PJWSTK – studenci
możemy interpretować jako np. koło naukowe studentów PJWSTK – studenci
mogą należeć do wielu kół, kolejność tej przynależności nie jest istotna.
mogą należeć do wielu kół, kolejność tej przynależności nie jest istotna.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
29
29
Kolekcja w modelu relacyjnym - kolejka
Kolekcja w modelu relacyjnym - kolejka
W ramach kolejki osoby są uporządkowane (przez wartość atrybutu
W ramach kolejki osoby są uporządkowane (przez wartość atrybutu
Pozycja
Pozycja
).
).
W jednej kolejce ta sama osoba może wystąpić wielokrotnie. Gdybyśmy chcieli
W jednej kolejce ta sama osoba może wystąpić wielokrotnie. Gdybyśmy chcieli
zapewnić, że w kolejce każda osoba może się pojawić co najwyżej jeden raz,
zapewnić, że w kolejce każda osoba może się pojawić co najwyżej jeden raz,
należałoby określić jednoznaczny indeks na parze atrybutów:
należałoby określić jednoznaczny indeks na parze atrybutów:
Id_kolejki
Id_kolejki
i
i
Id_osoby
Id_osoby
.
.
Tutaj przykładem kolejki może być harmonogram referatów wygłaszanych na
Tutaj przykładem kolejki może być harmonogram referatów wygłaszanych na
seminariach katedr.
seminariach katedr.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
30
30
Kolekcja w modelu relacyjnym - zapisy
Kolekcja w modelu relacyjnym - zapisy
(wielozbiór)
(wielozbiór)
W ramach pojedynczego zestawu zapisów (wielozbioru) jedna osoba może
W ramach pojedynczego zestawu zapisów (wielozbioru) jedna osoba może
mieć więcej niż jedno wystąpienie. Uzyskujemy to przez wprowadzenie
mieć więcej niż jedno wystąpienie. Uzyskujemy to przez wprowadzenie
atrybutu "
atrybutu "
Wystąpienie"
Wystąpienie"
do klucza głównego encji
do klucza głównego encji
Wpis
Wpis
. Kolejność wpisów jest
. Kolejność wpisów jest
nieistotna.
nieistotna.
W zastosowaniach, w encji
W zastosowaniach, w encji
Wpis
Wpis
znalazłaby się prawdopodobnie dodatkowa
znalazłaby się prawdopodobnie dodatkowa
informacja reprezentująca treść wpisu. Gdybyśmy nie potrzebowali takiej
informacja reprezentująca treść wpisu. Gdybyśmy nie potrzebowali takiej
informacji moglibyśmy model zapisów (wielozbioru) uprościć przesuwając
informacji moglibyśmy model zapisów (wielozbioru) uprościć przesuwając
atrybut
atrybut
Wystąpienie
Wystąpienie
do części niekluczowej encji
do części niekluczowej encji
Wpis
Wpis
- interpretując go jako
- interpretując go jako
liczbę wystąpień osoby identyfikowanej przez wartość atrybutu
liczbę wystąpień osoby identyfikowanej przez wartość atrybutu
Id_osoby
Id_osoby
.
.
Przykładem wielozbioru może być lista cytowań prac naukowych.
Przykładem wielozbioru może być lista cytowań prac naukowych.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
31
31
ODL (
ODL (
Object Definition Language
Object Definition Language
) - język
) - język
modelowania obiektowo-relacyjnego
modelowania obiektowo-relacyjnego
Składnia języka ODL jest wzorowana na składni języka C++. Podstawowym
Składnia języka ODL jest wzorowana na składni języka C++. Podstawowym
pojęciem jest
pojęciem jest
obiekt
obiekt
. Zakłada się, że każdy obiekt posiada jednoznaczny
. Zakłada się, że każdy obiekt posiada jednoznaczny
identyfikator (OID), który odróżnia go od innych obiektów. Obiekty o
identyfikator (OID), który odróżnia go od innych obiektów. Obiekty o
podobnych cechach są grupowane w klasy, modelowane przez interfejsy.
podobnych cechach są grupowane w klasy, modelowane przez interfejsy.
Specyfikując schemat klasy obiektów w języku ODL, opisujemy trzy rodzaje
Specyfikując schemat klasy obiektów w języku ODL, opisujemy trzy rodzaje
właściwości obiektów:
właściwości obiektów:
Atrybuty
Atrybuty
- przyjmują wartości typów pierwotnych takich jak
- przyjmują wartości typów pierwotnych takich jak
całkowity lub tekstowy, albo typów złożonych powstających z
całkowity lub tekstowy, albo typów złożonych powstających z
pierwotnych;
pierwotnych;
Związki
Związki
- referencje do obiektów pewnej klasy, albo kolekcje (zbiory)
- referencje do obiektów pewnej klasy, albo kolekcje (zbiory)
takich referencji;
takich referencji;
Metody
Metody
- funkcje operujące na obiektach danej klasy.
- funkcje operujące na obiektach danej klasy.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
32
32
Przykład deklaracji klasy obiektów w ODL
Przykład deklaracji klasy obiektów w ODL
interface Film{
interface Film{
attribute string
attribute string
Tytuł
Tytuł
;
;
attribute integer
attribute integer
Rok_produkcji
Rok_produkcji
;
;
attribute integer
attribute integer
Czas_trwania
Czas_trwania
;
;
attribute enum
attribute enum
Taśma
Taśma
{kolor, czarno-biała} typTaśmy;
{kolor, czarno-biała} typTaśmy;
};
};
Atrybut
Atrybut
typTaśmy
typTaśmy
jest wartością typu wyliczeniowego
jest wartością typu wyliczeniowego
Taśma
Taśma
o dwóch
o dwóch
wartościach {kolor, czarno-biała}.
wartościach {kolor, czarno-biała}.
Obiekty klasy
Obiekty klasy
Film
Film
to krotki (czyli układy wartości) np. (“Przeminęło z
to krotki (czyli układy wartości) np. (“Przeminęło z
Wiatrem”, 1939, 231, kolor).
Wiatrem”, 1939, 231, kolor).
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
33
33
Przykład określenia klasy z atrybutem typu
Przykład określenia klasy z atrybutem typu
złożonego
złożonego
interface Gwiazda{
interface Gwiazda{
attribute string
attribute string
Nazwisko
Nazwisko
;
;
attribute Struct
attribute Struct
Adr
Adr
{string Ulica, string Miasto} Adres;
{string Ulica, string Miasto} Adres;
};
};
Atrybut
Atrybut
Adres
Adres
jest rekordem tj. wartością typu złożonego
jest rekordem tj. wartością typu złożonego
Struct
Struct
o
o
nazwie
nazwie
Adr
Adr
. Składa się z dwóch pól:
. Składa się z dwóch pól:
ulica
ulica
oraz
oraz
miasto
miasto
. Oba pola są
. Oba pola są
typu tekstowego.
typu tekstowego.
Rekord w języku ODL definiuje się poprzez podanie słowa kluczowego
Rekord w języku ODL definiuje się poprzez podanie słowa kluczowego
Struct
Struct
oraz listy nazw pól i ich typów ujętej w nawiasy klamrowe.
oraz listy nazw pól i ich typów ujętej w nawiasy klamrowe.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
34
34
Specyfikacja związku między obiektami klas
Specyfikacja związku między obiektami klas
interface Film{
interface Film{
attribute string
attribute string
Tytuł
Tytuł
;
;
attribute integer
attribute integer
Rok_produkcji
Rok_produkcji
;
;
attribute integer
attribute integer
Czas_trwania
Czas_trwania
;
;
attribute enum
attribute enum
Taśma
Taśma
{kolor, czarno-biała} typTaśmy;
{kolor, czarno-biała} typTaśmy;
relationship Set<Gwiazda> obsada;
relationship Set<Gwiazda> obsada;
};
};
W każdym obiekcie klasy
W każdym obiekcie klasy
Film
Film
występuje atrybut
występuje atrybut
obsada
obsada
, którego
, którego
wartością jest zbiór referencji do obiektów klasy
wartością jest zbiór referencji do obiektów klasy
Gwiazda
Gwiazda
(na
(na
podstawie obiektu klasy
podstawie obiektu klasy
Film
Film
można uzyskać listę gwiazd
można uzyskać listę gwiazd
występujących w tym filmie) - wskazuje na to słowo kluczowe
występujących w tym filmie) - wskazuje na to słowo kluczowe
Set
Set
,
,
które poprzedza napis <Gwiazda>.
które poprzedza napis <Gwiazda>.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
35
35
Deklaracja typu
Deklaracja typu
W języku ODL typ, który jest zbiorem elementów typu T, definiuje się
W języku ODL typ, który jest zbiorem elementów typu T, definiuje się
poprzez podanie słowa kluczowego
poprzez podanie słowa kluczowego
Set
Set
oraz nazwy typu T w
oraz nazwy typu T w
nawiasach kątowych.
nawiasach kątowych.
Oprócz zbioru
Oprócz zbioru
Set<T>
Set<T>
,
,
w ODL mamy do dyspozycji także inne
w ODL mamy do dyspozycji także inne
rodzaje kolekcji:
rodzaje kolekcji:
wielozbiór
wielozbiór
Bag<T>
Bag<T>
,
,
listę
listę
List<T>
List<T>
,
,
wektor (tablicę)
wektor (tablicę)
Array<T,n>
Array<T,n>
długości n.
długości n.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
36
36
Specyfikacja związku odwrotnego
Specyfikacja związku odwrotnego
Obok informacji kto występuje w danym filmie, równie ważne jest to,
Obok informacji kto występuje w danym filmie, równie ważne jest to,
w jakich filmach występuje dana gwiazda filmowa. Tę informację
w jakich filmach występuje dana gwiazda filmowa. Tę informację
można uzyskać zamieszczając w definicji klasy
można uzyskać zamieszczając w definicji klasy
Gwiazda
Gwiazda
specyfikację związku:
specyfikację związku:
relationship Set<Film> wystepuje_W;
relationship Set<Film> wystepuje_W;
W ten sposób nie można jednak opisać istotnego związku między
W ten sposób nie można jednak opisać istotnego związku między
filmami i gwiazdami:
filmami i gwiazdami:
jeśli gwiazda
jeśli gwiazda
S
S
należy do obsady filmu
należy do obsady filmu
M
M
, to film
, to film
M
M
należy do zbioru
należy do zbioru
filmów, w których występuje gwiazda
filmów, w których występuje gwiazda
S.
S.
Ten rodzaj związku między dwiema klasami możemy określić w ODL
Ten rodzaj związku między dwiema klasami możemy określić w ODL
przez dodanie do deklaracji związku słowa kluczowego
przez dodanie do deklaracji związku słowa kluczowego
inverse
inverse
etykietowanego nazwą drugiego związku - razem z nazwą klasy,
etykietowanego nazwą drugiego związku - razem z nazwą klasy,
gdzie ten związek jest zdefiniowany.
gdzie ten związek jest zdefiniowany.
interface Gwiazda{
interface Gwiazda{
attribute string nazwisko;
attribute string nazwisko;
attribute Struct Adr {string ulica, string miasto} adres;
attribute Struct Adr {string ulica, string miasto} adres;
relationship Set<Film> wystepuje_W inverse Filmy::obsada
relationship Set<Film> wystepuje_W inverse Filmy::obsada
};
};
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
37
37
Liczebność związku
Liczebność związku
Związek między klasami
Związek między klasami
Film
Film
i
i
Gwiazda
Gwiazda
jest
jest
wieloznaczny
wieloznaczny
.
.
Odpowiada to użyciu w definicji obu klas słowa kluczowego
Odpowiada to użyciu w definicji obu klas słowa kluczowego
Set
Set
.
.
Gdy
Gdy
Set
Set
będzie użyte tylko raz - mamy do czynienia ze związkiem
będzie użyte tylko raz - mamy do czynienia ze związkiem
jednoznacznym
jednoznacznym
. Gdy ani razu - ze związkiem
. Gdy ani razu - ze związkiem
jedno –
jedno –
jednoznacznym
jednoznacznym
.
.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
38
38
Przykład definicji związku jednoznacznego
Przykład definicji związku jednoznacznego
Załóżmy, że w każdym filmie wyróżniamy jednego aktora lub aktorkę,
Załóżmy, że w każdym filmie wyróżniamy jednego aktora lub aktorkę,
jako
jako
supergwiazdę
supergwiazdę
tego filmu. Jeden aktor lub aktorka mogą być
tego filmu. Jeden aktor lub aktorka mogą być
supergwiazdami w wielu filmach. Jest to przykład związku
supergwiazdami w wielu filmach. Jest to przykład związku
jednoznacznego między klasami
jednoznacznego między klasami
Film
Film
i
i
Gwiazda
Gwiazda
.
.
interface Film{
interface Film{
attribute string tytuł;
attribute string tytuł;
attribute integer rok;
attribute integer rok;
attribute integer długość;
attribute integer długość;
attribute enum Taśma {kolor, czarno-biała} TypTaśmy;
attribute enum Taśma {kolor, czarno-biała} TypTaśmy;
relationship Set<Gwiazda> obsada inverse Gwiazda::wystepuje
relationship Set<Gwiazda> obsada inverse Gwiazda::wystepuje
_W;
_W;
relationship Gwiazda supergwiazda inverse Gwiazda::wybitne;
relationship Gwiazda supergwiazda inverse Gwiazda::wybitne;
};
};
interface Gwiazda{
interface Gwiazda{
attribute string nazwisko;
attribute string nazwisko;
attribute Struct Adr {string ulica, string miasto} adres;
attribute Struct Adr {string ulica, string miasto} adres;
relationship Set<Film> wystepuje_W inverse Film::obsada;
relationship Set<Film> wystepuje_W inverse Film::obsada;
relationship Set<Film> wybitne inverse Film::supergwiazda;
relationship Set<Film> wybitne inverse Film::supergwiazda;
};
};
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
39
39
Specyfikacja metody
Specyfikacja metody
Wśród właściwości klasy może wystąpić specyfikacja metody dla
Wśród właściwości klasy może wystąpić specyfikacja metody dla
obiektów tej klasy. Na przykład metoda obliczająca wiek
obiektów tej klasy. Na przykład metoda obliczająca wiek
pracownika w oparciu o atrybuty określone w interfejsie
pracownika w oparciu o atrybuty określone w interfejsie
Pracownik
Pracownik
.
.
interface Pracownik{
interface Pracownik{
attribute string nazwisko;
attribute string nazwisko;
attribute TypPłci Enum{mężczyzna, kobieta} Płeć;
attribute TypPłci Enum{mężczyzna, kobieta} Płeć;
attribute Date dataUrodzenia;
attribute Date dataUrodzenia;
short Wiek();
short Wiek();
};
};
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
40
40
Specyfikacja dziedziczenia
Specyfikacja dziedziczenia
Klasa może dziedziczyć wszystkie właściwości innej klasy. Na przykład
Klasa może dziedziczyć wszystkie właściwości innej klasy. Na przykład
klasa
klasa
Profesor
Profesor
dziedziczy właściwości klasy
dziedziczy właściwości klasy
Pracownik
Pracownik
. Inaczej
. Inaczej
mówiąc, każdy obiekt określony przez interfejs
mówiąc, każdy obiekt określony przez interfejs
Profesor
Profesor
oprócz
oprócz
swoich własnych atrybutów posiada wszystkie właściwości
swoich własnych atrybutów posiada wszystkie właściwości
określone w interfejsie
określone w interfejsie
Pracownik,
Pracownik,
ponadto posiada własny atrybut
ponadto posiada własny atrybut
StopieńNaukowy
StopieńNaukowy
:
:
interface Profesor : Pracownik {
interface Profesor : Pracownik {
attribute string StopieńNaukowy;
attribute string StopieńNaukowy;
};
};
Dziedzina modelowania obiektowego jest tematem innego wykładu
Dziedzina modelowania obiektowego jest tematem innego wykładu
„Projektowanie systemów informacyjnych” i tam zostanie
„Projektowanie systemów informacyjnych” i tam zostanie
dogłębnie przedstawiona.
dogłębnie przedstawiona.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
41
41
Słownik
Słownik
notacja Chena
notacja Chena
- notacja dla diagramów związków encji, w której
- notacja dla diagramów związków encji, w której
encja jest rysowana jako prostokąt, atrybut jako kółko, związek
encja jest rysowana jako prostokąt, atrybut jako kółko, związek
jako romb. Umożliwia graficzną reprezentację diagramów ze
jako romb. Umożliwia graficzną reprezentację diagramów ze
związkami wieloznacznymi i związkami wielo-argumentowymi.
związkami wieloznacznymi i związkami wielo-argumentowymi.
hierarchia encji
hierarchia encji
- ustawienie zbioru encji w hierarchię; w hierarchii
- ustawienie zbioru encji w hierarchię; w hierarchii
encja podrzędna (podencja) stanowi rozszerzenie właściwości encji
encja podrzędna (podencja) stanowi rozszerzenie właściwości encji
nadrzędnej (nadencji) – poprzez związek jednojednoznaczny.
nadrzędnej (nadencji) – poprzez związek jednojednoznaczny.
związek kategorii
związek kategorii
- związek encji nadrzędnej ze zbiorem encji
- związek encji nadrzędnej ze zbiorem encji
podrzędnych rozszerzających jej właściwości. Kategoria może być
podrzędnych rozszerzających jej właściwości. Kategoria może być
pełna, gdy zbiór instancji encji podrzędnych jest równy zbiorowi
pełna, gdy zbiór instancji encji podrzędnych jest równy zbiorowi
instancji nadrzędnej; w przeciwnym razie niepełna.
instancji nadrzędnej; w przeciwnym razie niepełna.
dane hierarchiczne
dane hierarchiczne
- dane powiązane ze sobą hierarchicznymi
- dane powiązane ze sobą hierarchicznymi
powiązaniami takimi jak struktura organizacyjna firmy.
powiązaniami takimi jak struktura organizacyjna firmy.
czas
czas
- aspekt danych uwzględniający ich zmienność w czasie.
- aspekt danych uwzględniający ich zmienność w czasie.
Dotyczy zmienności wartości atrybutów, instancji encji i instancji
Dotyczy zmienności wartości atrybutów, instancji encji i instancji
związków.
związków.
model
model
obiektowo-relacyjny
obiektowo-relacyjny
- model danych, w którym oprócz
- model danych, w którym oprócz
"płaskiej" struktury danych relacyjnego modelu danych – tabeli,
"płaskiej" struktury danych relacyjnego modelu danych – tabeli,
używa się złożonych struktur danych definiowanych przez typy
używa się złożonych struktur danych definiowanych przez typy
obiektowe bądź klasy jak w obiektowych jezykach programowania.
obiektowe bądź klasy jak w obiektowych jezykach programowania.
opr. Lech Banachowski, Krzysztof Matejewski
opr. Lech Banachowski, Krzysztof Matejewski
42
42
Słownik c.d.
Słownik c.d.
tabela
tabela
obiektowa
obiektowa
- tabela, której elementami są obiekty ustalonego
- tabela, której elementami są obiekty ustalonego
typu obiektowego (klasy). Przejście od tabeli relacyjnej do
typu obiektowego (klasy). Przejście od tabeli relacyjnej do
obiektowej odbywa się zgodnie z zasadą:
obiektowej odbywa się zgodnie z zasadą:
wiersz
wiersz
->
->
obiekt
obiekt
tzn.
tzn.
wiersz tabeli relacyjnej uzyskuje metody i tożsamość obiektową i
wiersz tabeli relacyjnej uzyskuje metody i tożsamość obiektową i
staje się obiektem
staje się obiektem
typ obiektowy
typ obiektowy
- definicja klasy obiektów, wzorzec dla obiektów
- definicja klasy obiektów, wzorzec dla obiektów
obejmujący takie konstrukcje jak atrybuty typów złożonych i
obejmujący takie konstrukcje jak atrybuty typów złożonych i
metody.
metody.
kolekcja
kolekcja
- model zbioru wartości. Oprócz przynależności elementu do
- model zbioru wartości. Oprócz przynależności elementu do
zbioru rozważa się dodatkowe właściwości: ustawienie elementów
zbioru rozważa się dodatkowe właściwości: ustawienie elementów
zbioru w ciąg, wielokrotne wystąpienia tego samego elementu
zbioru w ciąg, wielokrotne wystąpienia tego samego elementu
zbioru.
zbioru.
ODL
ODL
- język modelowania obiektowo-relacyjnego.
- język modelowania obiektowo-relacyjnego.
związek odwrotny
związek odwrotny
- związek reprezentujący odwrotną relację na
- związek reprezentujący odwrotną relację na
zbiorach obiektów do danego związku.
zbiorach obiektów do danego związku.
opr. Lech Banachowski, Krzysztof Matejews
opr. Lech Banachowski, Krzysztof Matejews
ki
ki
43
43
Koniec wykładu III
Koniec wykładu III
Do zobaczenia na wykładzie IV
Do zobaczenia na wykładzie IV