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