Modelowanie konceptualne – model EER

Transkrypt

Modelowanie konceptualne – model EER
Model EER – rozszerzenie modelu ER
Modelowanie konceptualne –
model EER
1.
2.
Tadeusz Pankowski
Liczne rozszerzenia modelu ER mają przede wszystkim na celu
uwzględnienie zależności między jednostkami typu "bardziej ogólny –
bardziej szczegółowy", tak jak na przykład jednostki typu STUDENT
są bardziej szczegółowe niż jednostki typu OSOBA (chociaż mogą
reprezentować te same obiekty świata rzeczywistego).
W tym rozdziale omówimy propozycję rozszerzenia modelu ER
zaproponowane przez Elmasri'ergo i Navathe - model EER (ang.
Expanded Entity-Relationship).
www.put.poznan.pl/~tadeusz.pankowski
(c) T. Pankowski, Modelowanie
konceptualne - EER
(c) T. Pankowski, Modelowanie
konceptualne - EER
1
Model EER – założenia o dziedzinie
przedmiotowej
2
Diagramy EER
1.
¾
Do założeń o odwzorowywanej dziedzinie przedmiotowej
wymienionych w przypadku modelu ER, dołączymy następujące:
ƒ
typy jednostkowe tworzą hierarchię o postaci grafu acyklicznego
zwaną hierarchią specjalizacji/generalizacji lub hierarchią
dziedziczenia
ƒ
ƒ
każdy typ jednostkowy dziedziczy wszystkie atrybutu od swoich
nadtypów oraz może posiadać własne atrybuty specyficzne;
każdy nadtyp zawiera wszystkie jednostki swgo podtypu,
typy związkowe nie tworzą hierarchii (!)
(c) T. Pankowski, Modelowanie
konceptualne - EER
3
Diagram EER – diagram semantyczny będący rozszerzeniem diagramu
ER.
2. Obejmuje trzy rodzaje wierzchołków (z modelu ER):
• prostokąty - etykietowane nazwami typów jednostkowych,
• romby - etykietowane nazwami typów związkowych,
• elipsy - etykietowane nazwami atrybutów (atrybuty kluczowe są
podkreślone).
oraz krawędzie, których etykiety charakteryzują typy związkowe.
3. Specyficzne elementy EER – hiperkrawędzie reprezentujące
specjalizację, tj. linie rozgałęzione o jednym początku i kilku końcach.
• początek hiperkrawędzi wskazuje nadtyp (nadklasę), a końce –
podtypy (podklasy) specjalizacji (dziedziczenie)
• dodatkowe elementy graficzne charakteryzują specjalizację.
(c) T. Pankowski, Modelowanie
konceptualne - EER
4
Nadtypy, podtypy, specjalizacja
1.
Specjalizacja - przykład
W modelu EER uwzględnia się fakt, że typy jednostkowe mogą
pozostawać względem siebie w zależnościach hierarchicznych:
nadtyp → typ → podtyp
przy czym jeden typ może mieć zarówno wiele nadtypów, jak i wiele
podtypów.
2.
Proces definiowania podtypów S1, ..., Sn dla zadanego typu T
nazywamy specjalizacją. Pojęciem tym określamy także wynik procesu
specjalizacji, tj. zbiór {S1, ..., Sn}.
3.
Specjalizację zapisujemy w postaci:
T/{S1, ..., Sn},
przy czym suma elementów podtypów musi być zawarta w zbiorze
elementów typu:
Na przykład, jeśli
OSOBA / {PRACOWNIK, STUDENT, KOBIETA, MĘŻCZYZNA},
to
STUDENT ISA OSOBA.
Nazwa ISA pochodzi ze zwrotu "is a" w języku angielskim
wyrażającym rozważaną zależność,
np:
STUDENT is a PERSON
S1 ∪ ... ∪ Sn ⊆ T.
Między typem i jego nadtypem zachodzi relacja ISA: Si ISA T
4.
(c) T. Pankowski, Modelowanie
konceptualne - EER
(c) T. Pankowski, Modelowanie
konceptualne - EER
5
Specjalizacja - rodzaje
Rodzaje specjalizacji
Niech dana będzie specjalizacja:
Niech dana będzie specjalizacja:
T/{S1, ..., Sn},
T/{S1, ..., Sn},
Specjalizacja może być:
1.
2.
Całkowita lub częściowa – zależnie od tego czy każda jednostka typu
T należy do jednego z podtypów, czy też są jednostki typu T nie
należące do żadnego z podtypów (częściowa):
Specjalizacja może być zatem jednego z czterech rodzajów:
1.
Całkowita rozłączna.
•
całkowita: S1 ∪ ... ∪ Sn = T;
2.
Całkowita nierozłączna.
•
częściowa: S1 ∪ ... ∪ Sn ⊂ T
3.
Częściowa rozłączna.
4.
Częściowa nierozłączna.
Rozłączna lub nierozłączna – zależnie od tego czy podtypy są parami
rozłączne, czy nie:
• rozłączna: Si ∩ Sj = ∅, dla każdej pary różnych typów Si i Sj ;
•
6
nierozłączna: gdy warunek rozłączności nie jest spełniony.
(c) T. Pankowski, Modelowanie
konceptualne - EER
7
(c) T. Pankowski, Modelowanie
konceptualne - EER
8
Specjalizacja całkowita rozłączna
Specjalizacja całkowita nierozłączna
Całkowitość specjalizacji:
podwójna linia łącząca nadtyp z trójkątem
OSOBA
OSOBA
Rozłączność specjalizacji:
podwójny trójkąt
ISA
KOBIETA
KOBIETA
Specjalizacja całkowita rozłączna:
KOBIETA ∪ MĘŻCZYZNA = OSOBA
KOBIETA ∩ MĘŻCZYZNA = ∅
10
Specjalizacja częściowa nierozłączna
Częściowość specjalizacji:
pojedyncza linia łącząca nadtyp z trójkątem
PRACOWNIK
Rozłączność specjalizacji:
podwójny trójkąt
ISA
PIELĘGNIARKA
LEKARZ
Specjalizacja całkowita rozłączna:
LEKARZ ∪ PIELĘGNIARKA ⊂ PRACOWNIK
LEKARZ ∩ PIELĘGNIARKA = ∅
(c) T. Pankowski, Modelowanie
konceptualne - EER
EMERYT
(c) T. Pankowski, Modelowanie
konceptualne - EER
9
Specjalizacja częściowa rozłączna
LEKARZ
MĘŻCZYZNA
Specjalizacja całkowita nierozłączna:
KOBIETA ∪ MĘŻCZYZNA ∪ EMERYT = OSOBA
MĘŻCZYZNA ∩ EMERYT ≠ ∅
(c) T. Pankowski, Modelowanie
konceptualne - EER
ISA
Nierozłączność specjalizacji:
pojedynczy trójkąt
ISA
MĘŻCZYZNA
PRACOWNIK
Całkowitość specjalizacji:
podwójna linia łącząca nadtyp z trójkątem
Częściowość specjalizacji:
pojedyncza linia łącząca nadtyp z trójkątem
Nierozłączność specjalizacji:
pojedynczy trójkąt
NIEPEŁNOZATRUDNIONY
Specjalizacja całkowita rozłączna:
LEKARZ ∪ NIEPEŁNOZATRUDNIONY ⊂ PRACOWNIK
LEKARZ ∩ NIEPEŁNOZATRUDNIONY ≠ ∅
11
(c) T. Pankowski, Modelowanie
konceptualne - EER
12
Dziedziczenie atrybutów i
uczestnictwa w związkach
Dziedziczenie atrybutów
IdPr
1.
2.
3.
Każda jednostka w podtypie posiada wszystkie te atrybuty,
które posiada w nadtypie. Cechę tę nazywamy dziedziczeniem
atrybutów (attribute inheritance). Może ponadto posiadać
dodatkowe atrybuty specyficzne.
Jednostka w podtypie reprezentuje ten sam obiekt dziedziny
przedmiotowej co jednostka w nadtypie, stąd też musi
posiadać te same wartości atrybutów co odpowiadający mu
element nadklasy.
Jednostka dziedziczy także właściwość uczestniczenia w tych
typach związkowych, w których uczestniczy nadtyp, ale może
także uczestniczyć w typach związkowych specyficznych dla
swego podtypu.
(c) T. Pankowski, Modelowanie
konceptualne - EER
Nazwisko
...
PRACOWNIK
ISA
LEKARZ
PIELĘGNIARKA
Specjalizacja
Dziedziczenie atrybutów (w tym klucza głównego). Oprócz
atrybutów odziedziczonych, LEKARZ ma atrybut specyficzny.
(c) T. Pankowski, Modelowanie
konceptualne - EER
13
Dziedziczenia a uczestnictwo w typach
związkowych
14
Przykład CAD – konstrukcja złożona
D
PUBLIKACJA
PUB_AUT
AUTOR
C
f
A
e
ISA
a
ARTYKUŁ
KSIĄŻKA
REFERAT
REF_KONF
KONFERENCJA
b
B
d
c
Jednostki typu REFERAT uczestniczą zarówno w związkach typu
PUB_AUT, jak i w związkach typu REF_KONF.
(c) T. Pankowski, Modelowanie
konceptualne - EER
15
konstrukcja (złożona) D składa się z dwóch konstrukcji: A i C.
A składa się z dwóch elementów prostych a i b.
C zawiera f i e oraz konstrukcję złożoną B.
B zawiera c i d.
(c) T. Pankowski, Modelowanie
konceptualne - EER
16
Przykład CAD – konstrukcja złożona
KONSTRUKCJA
Konstr_skł
Relacyjna reprezentacja specjalizacji
• W przypadku transformacji specjalizacji w zbiór schematów
relacyjnych możemy zastosować jeden z czterech wariantów.
• Nie wszystkie z nich mogą być jednak stosowane w każdym
przypadku.
• Dalej charakteryzujemy te warianty i podajemy warunki, w jakich
mogą mieć one zastosowanie.
STRUK
a, b, c, d, e, f, A, B, C, D
Konstr_gł
KONSTR_PROSTA
KONSTR_ZŁOŻONA
a, b, c, d, e, f
SPRĘŻYNA
A, B, C, D
ŁOŻYSKO
a, c
b, d
PRZEKŁADNIA
e, f
(c) T. Pankowski, Modelowanie
konceptualne - EER
(c) T. Pankowski, Modelowanie
konceptualne - EER
17
18
Relacyjna reprezentacja specjalizacji –
wariant B
Relacyjna reprezentacja specjalizacji –
wariant A
Wariant B
KT
Wariant A
Klucz
KT
A1, ..., An
T
Dla każdej z klas uczestniczącej w
specjalizacji tworzymy oddzielny
schemat relacyjny.
A1, ..., An
T
Schematy te moją następującą postać:
Schematy te moją następującą postać:
B1, ..., Bm
T → T(KT, A1, ..., An)
B1, ..., Bm
ISA
C1, ..., Cp
...
ISA
C1, ..., Cp
T →∅
S1 → S1(KT, B1, ..., Bm)
S1 → S1(KT, A1, ..., An, B1, ..., Bm)
...
...
S1
Sn → Sn(KT, C1, ..., Cp)
S1
Tworzymy schematy relacyjne dla każdego
podtypu w specjalizacji, a nie tworzymy
żadnego schematu relacyjnego dla nadtypu T:
Sn
1. Wariant ten może być stosowany dla każdego rodzaju specjalizacji.
2. Uzyskanie pełnych informacji o obiektach z podtypów wymaga
wykonania operacji złączenia (NATURAL JOIN) odpowiadających im
relacji z relacją odpowiadającą nadtypowi.
(c) T. Pankowski, Modelowanie
konceptualne - EER
19
...
Sn
Sn → Sn(KT, A1, ..., An, C1, ..., Cp)
1. Wariant ten może być stosowany tylko dla specjalizacji całkowitych
(rozłącznych lub nie)
2. Aby uzyskać informacje o jednostkach typu T należy najpierw
wykonać operację otwartej sumy mnogościowej (OUTER UNION) na
wszystkich relacjach odpowiadających podtypom, a następnie dla
wyniku zastosować projekcję na zbiór atrybutów zdefiniowany dla
klasy T.
20
Relacyjna reprezentacja specjalizacji –
wariant C
KT
Relacyjna reprezentacja specjalizacji –
wariant D
KT
Wariant C
A1, ..., An
T
Wariant D
A1, ..., An
Tworzymy tylko jeden schemat relacyjny
odpowiadający nadtypowi T i obejmujący
informacje z wszystkich podtypów.
Tworzymy tylko jeden schemat relacyjny
odpowiadający nadtypowi T i obejmujący
informacje z wszystkich podtypów. Dla każdej
podklasy S tworzymy kolumnę binarną FlagaS:
T
Schemat ten ma postać:
B1, ..., Bm
C1, ..., Cp
ISA
B1, ..., Bm
T → T(KT, A1, ..., An, B1, ..., Bm, C1, ..., Cp, IdTypu)
C1, ..., Cp
ISA
S1 → ∅
S1 → ∅
...
...
S1
1.
Sn
3.
1.
2.
3.
4.
21
Nadklasa
T
K
1
Specjal
...
Podklasa
S1
22
T
K
...
K
Wariant A (reprezentacja relacyjna):
1. n+1 – tabel,
2. zależności referencyjne z podklas do nadklasy, FOREIGN KEY w SQL
3. jeśli specjalizacja ma być całkowita, to klucz z nadklasy musi wystąpić co
najmniej w jednej podklasie, odpowiedni TRIGGER w SQL ()
0..1
Przykład:
Sprzęt
komp.
NrId
...
1
Specjal
Monitory
Drukarki
(S1 ∪ ... ∪ Sn)
0..N
1..1
Typ
Słownik
nazw typów
Nazwa
...
Wariant C (reprezentacja relacyjna):
1. 1 tabela,
2. zależności referencyjne z do słownika nazw typów, FOREIGN KEY w SQL
3. duża liczba pustych wartości
NrId
...
Przykład:
Sprzęt
komp.
...
0..1
Sn → ∅
Specjalizacja jako związek
1
Podklasa
Sn
...
K
...
...
0..1
Sn
Wyróżniony atrybut FlagaS przyjmuje 1, jeśli obiekt odpowiadający
rozważanej krotce należy do klasy S i 0 w przeciwnym razie.
W ten sposób możemy dokonywać transformacji dla specjalizacji nierozłącznych.
Wadą tego wariantu jest jednak to, że podobnie jak w wariancie C, tabele w
bazie danych mogą zawierać dużo wartości pustych.
Zalety: tylko jedna tabela, pewne operacje (suma, przekrój podklas) można
efektywnie wykonywać na wartościach flag.
Specjalizacja jako związek
0..1
...
S1
Sn → ∅
Wariant ten może być stosowany tylko dla specjalizacji rozłącznych (całkowitych
lub częściowych)
Wyróżniony atrybut IdTypu przyjmuje wartości w zbiorze identyfikatorów
podtypów specjalizacji. Każda krotka relacji T zawiera informacje o pewnej
jednostce, a informacje o tym, jakiego jest podtypu przekazuje wartość atrybutu
IdTypu. Tak budowane relacje mogą zawierać bardzo wiele wartości zerowych.
Uzyskanie informacji o obiektach żądanego podtypu wymaga realizacji operacji
projekcji na odpowiedni zbiór atrybutów.
2.
T → T(KT, A1, ..., An, B1, ..., Bm, C1, ..., Cp, FlagaS1,
FlagaSn)
NrId
...
NrId
23
0..N
Typ
1..1
Słownik
nazw typów
Nazwa
...
24