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 

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 

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