Modelowanie konceptualne model EER adeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski Model EER rozszerzenie modelu ER 1. 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 SUDEN są bardziej szczegółowe niż jednostki typu OSOBA (chociaż mogą reprezentować te same obiekty świata rzeczywistego. 2. W tym rozdziale omówimy propozycję rozszerzenia modelu ER zaproponowane przez Elmasri'ergo i Navathe - model EER (ang. Expanded Entity-Relationship. konceptualne - EER 1 konceptualne - EER 2 Model EER założenia o dziedzinie przedmiotowej 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 (! Diagramy EER 1. 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ę. konceptualne - EER 3 konceptualne - EER 4
Nadtypy,, podtypy, specjalizacja 1. W modelu EER uwzględnia się fakt, że typyjednostkowemogą 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 S 1,, S n dla zadanego typu nazywamy specjalizacją. Pojęciem tym określamy także wynik procesu specjalizacji, tj. zbiór {S 1,, S n }. 3. Specjalizację zapisujemy w postaci: /{S 1,, S n }, przy czym suma elementów podtypów musi być zawarta w zbiorze elementów typu: S 1 S n. 4. Między typem i jego nadtypem zachodzi relacja : S i konceptualne - EER 5 Specjalizacja - przykład Na przykład, jeśli OSOBA / {PRACOWNIK, SUDEN, KOBIEA, MĘŻCZYZNA}, to SUDEN OSOBA. Nazwa pochodzi ze zwrotu "is a" w języku angielskim wyrażającym rozważaną zależność, np: SUDEN is a PERSON konceptualne - EER 6 Specjalizacja - rodzaje Rodzaje specjalizacji Niech dana będzie specjalizacja: /{S 1,, S n }, Specjalizacja może być: 1. Całkowita lub częściowa zależnie od tego czy każda jednostka typu należy do jednego z podtypów, czy też są jednostki typu nie należące do żadnego z podtypów (częściowa: całkowita: S 1 S n = ; częściowa: S 1 S n 2. Roz lub nieroz zależnie od tego czy podtypy są parami rozłączne, czy nie: roz: S i S j =, dla każdej pary różnych typów S i S j ; nieroz: gdy warunek rozłączności nie jest spełniony. Niech dana będzie specjalizacja: /{S 1,, S n }, Specjalizacja może być zatem jednego z czterech rodzajów: 1. Całkowita roz. 2. Całkowita nieroz. 3. Częściowa roz. 4. Częściowa nieroz. konceptualne - EER 7 konceptualne - EER 8
Specjalizacja całkowita rozłą Specjalizacja całkowita nierozłą OSOBA Całkowitość specjalizacji: podwójna linia łącząca nadtyp z trójkątem OSOBA Całkowitość specjalizacji: podwójna linia łącząca nadtyp z trójkątem Rozłączność specjalizacji: podwójny trójkąt Nierozłączność specjalizacji: pojedynczy trójkąt KOBIEA MĘŻCZYZNA KOBIEA MĘŻCZYZNA EMERY Specjalizacja całkowita roz: KOBIEA MĘŻCZYZNA = OSOBA KOBIEA MĘŻCZYZNA = Specjalizacja całkowita nieroz: KOBIEA MĘŻCZYZNA EMERY = OSOBA MĘŻCZYZNA EMERY konceptualne - EER 9 konceptualne - EER 10 Specjalizacja częś ęściowa rozłą Specjalizacja częś ęściowa nierozłą PRACOWNIK Częściowość specjalizacji: pojedyncza linia łącząca nadtyp z trójkątem PRACOWNIK Częściowość specjalizacji: pojedyncza linia łącząca nadtyp z trójkątem Rozłączność specjalizacji: podwójny trójkąt Nierozłączność specjalizacji: pojedynczy trójkąt LEKARZ PIELĘGNIARKA LEKARZ NIEPEŁNOZARUDNIONY Specjalizacja całkowita roz: LEKARZ PIELĘGNIARKA PRACOWNIK LEKARZ PIELĘGNIARKA = Specjalizacja całkowita roz: LEKARZ NIEPEŁNOZARUDNIONY PRACOWNIK LEKARZ NIEPEŁNOZARUDNIONY konceptualne - EER 11 konceptualne - EER 12
Dziedziczenie atrybutów w i uczestnictwa w związkach zkach Dziedziczenie atrybutów 1. 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. 2. 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. 3. 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. konceptualne - EER 13 Specjalizacja IdPr LEKARZ Nazwisko PRACOWNIK... PIELĘGNIARKA Dziedziczenie atrybutów (w tym klucza głównego. Oprócz atrybutów odziedziczonych, LEKARZ ma atrybut specyficzny. konceptualne - EER 14 Dziedziczenia a uczestnictwo w typach związkowych zkowych Przykład CAD konstrukcja złożonaz ona PUBLIKACJA PUB_AU AUOR D A a b C f e ARYKUŁ KSIĄŻKA REFERA REF_KONF KONFERENCJA B c d Jednostki typu REFERA uczestniczą zarówno w związkach typu PUB_AU, jak i w związkach typu REF_KONF. 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. konceptualne - EER 16
Przykład CAD konstrukcja złożonaz ona Relacyjna reprezentacja specjalizacji KONSRUKCJA Konstr_skł a, b, c, d, e, f, A, B, C, D KONSR_PROSA KONSR_ZŁOŻONA a, b, c, d, e, f A, B, C, D SRUK Konstr_gł 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. SPRĘŻYNA ŁOŻYSKO PRZEKŁADNIA a, c b, d e, f konceptualne - EER 17 konceptualne - EER 18 Klucz wariant A Wariant A Dla każdej z klas uczestniczącej w specjalizacji tworzymy oddzielny schemat relacyjny. Schematy te moją następującą postać: (, S1 S1(, Sn 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 (NAURAL JOIN odpowiadających im relacji z relacją odpowiadającą nadtypowi. konceptualne - EER 19 wariant B Wariant B worzymy schematy relacyjne dla każdego podtypu w specjalizacji, a nie tworzymy żadnego schematu relacyjnego dla nadtypu : Schematy te moją następującą postać: S1 S1(,, Sn Sn(,, 1. Wariant ten może być stosowany tylko dla specjalizacji całkowitych (rozłącznych lub nie 2. Aby uzyskać informacje o jednostkach typu należy najpierw wykonać operację otwartej sumy mnogościowej (OUER UNION na wszystkich relacjach odpowiadających podtypom, a następnie dla wyniku zastosować projekcję na zbiór atrybutów zdefiniowany dla klasy. 20
wariant C wariant D Wariant C worzymy tylko jeden schemat relacyjny odpowiadający nadtypowi i obejmujący informacje z wszystkich podtypów. Schemat ten ma postać: (,,,, Idypu S1 Sn 1. Wariant ten może być stosowany tylko dla specjalizacji rozłącznych (całkowitych lub częściowych 2. Wyróżniony atrybut Idypu przyjmuje wartości w zbiorze identyfikatorów podtypów specjalizacji. Każda krotka relacji zawiera informacje o pewnej jednostce, a informacje o tym, jakiego jest podtypu przekazuje wartość atrybutu Idypu. ak budowane relacje mogą zawierać bardzo wiele wartości zerowych. 3. Uzyskanie informacji o obiektach żądanego podtypu wymaga realizacji operacji projekcji na odpowiedni zbiór atrybutów. 21 Wariant D worzymy tylko jeden schemat relacyjny odpowiadający nadtypowi i obejmujący informacje z wszystkich podtypów. Dla każdej podklasy S tworzymy kolumnę binarną Flaga S : (,,,, Flaga S1, Flaga Sn S1 Sn 1. Wyróżniony atrybut Flaga S przyjmuje 1, jeśli obiekt odpowiadający rozważanej krotce należy do klasy S i 0 w przeciwnym razie. 2. W ten sposób możemy dokonywać transformacji dla specjalizacji nierozłącznych. 3. Wadą tego wariantu jest jednak to, że podobnie jak w wariancie C, tabele w bazie danych mogą zawierać dużo wartości pustych. 4. Zalety: tylko jedna tabela, pewne operacje (suma, przekrój podklas można efektywnie wykonywać na wartościach flag. 22 Specjalizacja jako związek zek 0..1 Podklasa Nadklasa S 1 1 Specjal K 0..1 Podklasa S n 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 RIGGER w SQL ( K K 1 (S 1 S n K Specjalizacja jako związek zek 0..N 1..1 yp 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 Przykład: 0..1 Monitory Sprzęt 1 komp. Specjal NrId 0..1 Drukarki NrId NrId Przykład: Sprzęt komp. NrId 0..N 1..1 yp Słownik nazw typów Nazwa 23 24