RBD W03

background image

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

background image

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.

background image

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

background image

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.

background image

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)

background image

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.

background image

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.

background image

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")

background image

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.

background image

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.

background image

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

background image

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

background image

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.

background image

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

background image

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.

background image

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.

background image

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

.

.

background image

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.

background image

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.

background image

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.

background image

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.

background image

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.

background image

opr. Lech Banachowski, Krzysztof Matejewski

opr. Lech Banachowski, Krzysztof Matejewski

23

23

Część III

Część III

Model obiektowo - relacyjny

Model obiektowo - relacyjny

background image

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

.

.

background image

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

.

.

background image

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.

background image

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)

background image

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.

background image

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.

background image

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.

background image

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.

background image

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).

background image

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.

background image

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>.

background image

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.

background image

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

                };

                };

background image

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

.

.

background image

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;

 };

 };

background image

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();

   };

   };

background image

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.

background image

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.

background image

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.

background image

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


Document Outline


Wyszukiwarka

Podobne podstrony:
RBD W03
RBD W02
RBD W04
RBD W02
W03 Orbitale wodoru
Antropologia kulturowa W03
inf2 w03
Biochemia W03  10 2000
Elektronika W03
VBA2, pjwstk PJLinka.pl, RBD
Darmowa Wyszukiwarka - styl RBD, Chomikowa Pomoc, Wyszukiwarki chomikowe
Los peces en el Rio, Teksty i tłumaczenia piosenek RBD

więcej podobnych podstron