(Microsoft PowerPoint - 05-model
Transkrypt
(Microsoft PowerPoint - 05-model
Ogólne problemy Modelowanie konceptualne • Jak modelować dane niezależnie od przyszłej implementacji (modelowanie E/R) • Jak zaprojektować dobry schemat (normalizacja) Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski (c) T. Pankowski, Modelowanie konceptualne (c) T. Pankowski, Modelowanie konceptualne 1 Plan Cel modelu ER 1. Cel modelowania konceptualnego i modelu ER 2. Etapy modelowania konceptualnego 3. Model ER (jednostka-związek, związków encji) • Model ER służy do nieformalnego przedstawienia modelu dziedziny przedmiotowej. • Jednostki i typy jednostek Związki i typy związków • • • 2 • Związki binarne: 1:1, 1:N, N:N Związki wieloczłonowe i ich właściwości Związki rekurencyjne Model ma postać graficzną zwaną diagramem ER (entityrelationship diagram) diagramem jednostka-związek (diagram ERD). Istnieje procedura (pół)automatycznej transformacji diagramu ERD do konkretnej implementacji, na przykład do relacyjnej bazy danych. Związki z uczestnictwem jednostek zależnych od czasu (zdarzeń) (c) T. Pankowski, Modelowanie konceptualne 3 (c) T. Pankowski, Modelowanie konceptualne 4 Trójpoziomowa architektura ANSI/SPARC POZIOM ZEWNĘTRZNY Obraz zewnętrzny 1 Obraz . . . zewnętrzny n odwzorowanie zewnętrzny/globalny POZIOM KONCEPTUALNY Model konceptualny SCHEMAT GLOBALNY (diagram ER + ...) odwzorowanie globalny/wewnętrzny POZIOM WEWNĘTRZNY SCHEMAT WEWNĘTRZNY Transformacja modelu konceptualnego do schematu (globalnego) bazy danych Fizyczna baza danych (c) T. Pankowski, Modelowanie konceptualne 5 Model ER – EntityEntity-Relationship Model ER – EntityEntity-Relationship Model zaproponowany w: P.P. Chen, The Entity-Relationship Data Model: toward a unified view of data, ACM Transactions on Database Systems, Vol. 1, 1976. Model danych dla poziomu konceptualnego, określany jako: • model jednostka-związek • model związków encji • model obiektowo-związkowy Opisuje dziedzinę przedmiotową za pomocą pojęć: • jednostka (ang. entities) (po polsku także: obiekt, encja), • atrybutów (ang. attributes), • związków (ang. relationships). „Entities and relationships are a natural way to organize physical things as well as information.” Peter Chen (c) T. Pankowski, Modelowanie konceptualne 7 (c) T. Pankowski, Modelowanie konceptualne 8 Budowa aplikacji z wykorzystaniem SZBD Projektowanie bazy danych • Co powinniśmy osiągnąć? • Modelowanie wymagań (pojęciowe, za pomocą diagramów) • Porozumienie dotyczące struktury bazy danych przed podjęciem decyzji o konkretnej implementacji • Decydujemy, jakie jednostki (encje, obiekty) powinny być uwzględnione w aplikacji i jak powinny być powiązane • Projektowanie i implementacja schematu • Uwzględnić takie problemy jak: • decyzje o zbiorze tabel i atrybutów • definicja tabel w SZBD • wprowadzenie danych • jakie jednostki modelować • jak jednostki są nawzajem powiązane • jakie ograniczenia istnieją w modelowanej dziedzinie • jak uzyskać dobry projekt • Pisanie programów aplikacyjnych korzystających z SZBD • wiele funkcji realizuje SZBD (c) T. Pankowski, Modelowanie konceptualne (c) T. Pankowski, Modelowanie konceptualne 9 Formalizmy definiowanie bazy danych 10 Diagramy ER 1. Języki modelowania obiektowego (ODL): • • • • ODL (Object Definition Language) (?) UML (Unified Modeling Language) CWM (Common Warehouse Metamodel) Wzorce projektowe (Design Patterns) Jednostki Towar Atrybuty Adres Związki między jednostkami Sprzedaż 2. Model Entity/Relationship (ER): • Najbardziej naturalny, modelowanie semantyczne (c) T. Pankowski, Modelowanie konceptualne 11 (c) T. Pankowski, Modelowanie konceptualne 12 Klucze w diagramach ER Nazwa • Każdy typ jednostki musi mieć klucz Każdy towar ma dokładnie jednego producenta Kategoria CenaSprz 1 Produkuje 1..N Kategoria Każdy klient kupił co najmniej jeden towar Cena Towar 0..N 1 2 3 4 1..N Produkuje 1 Nazwisko NrPESEL Towar 1 2 3 4 Krotność związków Firma a • jeden-do-jeden: 1 1 1 2 a b 3 b c c • jeden-do-wielu: Towar 1..N Osoba 13 Związek jako relacja binarna • Matematyczna definicja relacji: • jeśli A, B są zbiorami, to relacja R jest podzbiorem iloczynu kartezjańskiego A x B • Towar ={1,2,3,4}, Firma ={a,b,c}, Produkuje = {(1,a), (2,a), (3,b), (4,c)} - Produkuje jest podzbiorem Towar x Firma: CenaHurt Zatrudnia Adres (c) T. Pankowski, Modelowanie konceptualne 0..1 Każda firma produkuje co najmniej jeden towar Kupuje Każdy towar może mieć zero lub dowolnie wielu klientów Firma 1..N Towar Nazwa Nazwa 1 1..N Firma • wiele-do-wielu: a 1..N 1..N 1 2 3 4 a b c 1 a 2 b b 3 c c 15 (c) T. Pankowski, Modelowanie konceptualne 16 Uczestnictwo w związkach: obowiązkowe i opcjonalne • jeden-do-jeden: 1 0..1 Związki wieloczłonowe 1 a 2 Towar b 3 4 0..N 0..N Dostawca Dostawa c 1 • jeden-do-wielu: 1 0..N Magazyn 1 2 3 4 a b c d 1 a 2 b 3 • wiele-do-wielu: 0..N 0..N 1 a 2 c 4 b 3 c d 4 (c) T. Pankowski, Modelowanie konceptualne y 17 Za Załłożenia o dziedzinie przedmiotowej Przyjmuje się, że odwzorowywana dziedzina przedmiotowa (świat rzeczywisty) jest systemem w którym: • istnieją identyfikowalne jednostki, • jednostki scharakteryzowane są przez atrybuty i wartości atrybutów, • jednostki pozostają w związkach pomiędzy sobą i w związkach tych pełnią określone role, • związki mogą mieć atrybuty o określonych wartościach, • jednostki klasyfikowane są w klasy (zbiory) jednostek, • związki klasyfikowane są w klasy (zbiory) związków. (c) T. Pankowski, Modelowanie konceptualne x 19 18 Jednostki, encje (entities) Jednostka – reprezentuje przedmioty (byty, zjawiska, zdarzenia) świata rzeczywistego, które mogą być: • materialne – np. osoba, samochód, książka, • pojęciowe – np. zawód, adres, wycieczka, program, wydział. Każda jednostka posiada zbiór atrybutów (nazw cech), na przykład: Nazwisko, Wiek, Adres, charakteryzujące jej typ oraz wartości tych atrybutów, które charakteryzują jego indywidualne cechy. Każda jednostka ma wyróżniony jeden atrybut, którego wartość pozwala na jednoznaczną identyfikację jednostki w klasie jednostek tego samego typu. Atrybut ten nazywamy atrybutem kluczowym (kluczem) lub identyfikującym (identyfikatorem). (c) T. Pankowski, Modelowanie konceptualne 20 Typy jednostkowy jednostkowy (entity sets) Typy jednostkowe jednostkowe – notacja graficzna Typ jednostkowy - opisuje własności, jakie musi posiadać jednostka. Pojęcie podobne do klasy w podejściu obiektowym. Typ jednostkowy definiuje: • zbiór atrybutów, które muszą posiadać jednostki tego typu, • dla każdego atrybutu zbiór wartości zwany dziedziną atrybutu – każdy atrybut przyjmuje wartości tylko ze swojej dziedziny, np. dziedziną dla atrybutu Wiek typu Pracownik może być zbiór liczb całkowitych z przedziału (18, 70); określa też, czy atrybut może przyjmować wyróżnioną wartość pustą (zerową) oznaczaną przez NULL; • który z atrybutów jest atrybutem kluczowym – atrybut taki nie może przyjmować wartości NULL. (c) T. Pankowski, Modelowanie konceptualne E ... OSOBA NrEwid Nazwisko DataUr Zawód (c) T. Pankowski, Modelowanie konceptualne 22 Decyzje projektowe • Na etapie projektowania należy podjąć decyzje, co będziemy uważali za niezależną jednostkę, a co za wartość atrybutu. Decyzje takie są często oczywiste, ale niekiedy wymagana jest głębsza analizy. • W następującym przykładzie jest rzeczą dość oczywistą, że Dostawca nie powinien być traktowany jako atrybut typu jednostkowego TOWAR. Typ jednostkowy o postaci: A1 Przykład: 21 Typy jednostkowe jednostkowe – reprezentacja w modelu relacyjnym K • Typy jednostkowy oznaczamy za pomocą prostokątów. Wewnątrz prostokąta umieszczamy nazwę typu. Atrybuty oznaczamy za pomocą elipsy, wewnątrz której piszemy nazwę atrybutu. • Krawędzie łączące prostokąty z elipsami oznaczają, że typ jednostkowy przedstawiony ze pomocą prostokąta posiada atrybut o nazwie zawartej w elipsie. Podkreślenie atrybutu oznacza, że jest to atrybut kluczowy (identyfikujący). An Przykład – rozróżnienie między jednostkami a wartościami atrybutów: TOWAR Reprezentowany jest za pomocą relacji (tabeli): RE(K, A1, ..., An), gdzie K jest kluczem głównym w tabeli RE. NrTow Nazwa Cena Dostawca Dostawca nie jest atrybutem towaru! Jest to niezależna jednostka, z którą powiązany jest towar. 23 24 Decyzje projektowe (c.d.) Związki (Relationships) 2. Adres jako jednostka Adres może być traktowany jako niezależna jednostka o atrybutach: Miejscowość, Ulica, Nr Domu, Nr Lokalu. • Związek reprezentuje fakt istnienia powiązania między dwiema lub większą liczbą jednostek. O każdej takiej jednostce mówimy, że uczestniczy w związku. • Jeśli w związku uczestniczą dwie jednostki, to nazywamy go związkiem binarnym. W związku n-członowym uczestniczy n, n >= 2, jednostek. • Jednostki w związku mogą być tego samego lub różnych typów. • Związek, podobnie jak jednostka, może posiadać atrybuty. • W przeciwieństwie do jednostki związek nie posiada niezależnego identyfikatora. Jest on natomiast jednoznacznie identyfikowany przez zbiór identyfikatorów uczestniczącym w nim jednostek. 3. Można podać przykłady systemów, gdzie przyjęcie każdej z tych dwu alternatyw jest uzasadnione. Uwaga: związki nie mogą uczestniczyć w związkach, w związkach uczestniczą tylko jednostki! Traktowanie adresu. 1. Adres jako atrybut Adres może być traktowany jako atrybut (na przykład typu jednostkowego Osoba), wówczas jego wartością jest tekst, np: "Poznań, ul. Kwiatowa 5 m. 12". (c) T. Pankowski, Modelowanie konceptualne 25 Związki binarne 1:N i N:1 Typy związków (relationship sets) Typ związku - opisuje własności, jakie przysługują związkom danego typu. Typ związku (związkowy) definiuje: • nazwę typu, • zbiór atrybutów, jakie muszą posiadać związki tego typu, • nazwy typów jednostek uczestniczących w związkach danego typu; • uczestnictwo jednostek poszczególnych typów - określone przez: • role (opcjonalnie), jaką jednostki pełnią w związkach, • krotność – tj. typ odwzorowania w dany zbiór jednostek (x:0..1, x:1, x:0..N, x:1..N) ze zbioru jednostek (krotek jednostek) określony przez przeciwną stronę typu związku; inaczej: w ilu związkach z jednostką danego typu mogą pozostawać jednostki (krotki jednostek) zdefiniowane przez przeciwną stronę typu związkowego; • przynależność – obowiązkowa (w definicji krotności nie występuje zero, x:1, x:1..N) lub opcjonalna (w definicji krotności występuje zero, x:0..1, x:0..N) jednostek w związkach. (c) T. Pankowski, Modelowanie konceptualne 26 27 t1 t1 d 1 d1 t2 t2 d 1 d2 t3 t3 d 2 d3 N TOWAR 1 TOW_DOS DOSTAWCA W typie związkowym TOW_DOS: • jeden towar ma jednego dostawcę (etykieta 1 przy typie DOSTAWCA), • każdy towar musi wystąpić w jakimś związku, tzn. musi mieć dostawcę (podwójna linia łącząca TOWAR i TOW_DOS oznaczająca 1..N) • jeden dostawca może dostarczać wiele towarów (etykieta N przy TOWAR) • mogą istnieć dostawcy nie występujący w żadnych związkach, tzn. nie dostarczający żadnego towaru (pojedyncza linia między DOSTAWCA i TOW_DOS, oznaczająca 0..1). Reprezentacja relacyjna związków binarnych 1:N (N:1) Reprezentacja relacyjna związków binarnych 1:N (N:1) – przykład Binarny typ związkowy 1:N (N:1) K1 E1 N 1 R K2 IdTow E2 A1 B1 ... ... C1 An Cp N Nazwa t2 t3 N k1 t3 k 1 k2 t3 k 2 k3 N VAT Nazwa Adres 30 Reprezentacja relacyjna związków binarnych N:N t1 k 1 TOW_KLI DOSTAWCA Towar(IdTow, Nazwa, Cena, VAT, DataOstDost, Stan, IdDcy) Dostawca(IdDcy, Nazwa, Adres) W tabeli Towar kluczem głównym jest IdTow, a kluczem obcym jest IdDcy W tabeli Dostawca kluczem głównym jest IdDcy Binarny typ związkowy N:N K1 E1 KLIENT W typie związkowym TOW_KLI reprezentowana jest następująca informacja: • jeden towar może być kupowany przez wielu klientów (N przy KLIENT), • mogą istnieć towary nie występujące w żadnych związkach, tzn. nie były jeszcze sprzedawane (pojedyncza linia między TOWAR i TOW_KLI, 0..N). • jeden klient może kupować wiele towarów (N przy TOWAR, 0..N) • mogą istnieć klienci nie występujący w żadnych związkach, tzn. nie kupili jeszcze żadnego towaru (pojedyncza linia między KLIENT i TOW_KLI, w definicji krotności występuje 0). N N R A1 ... TOWAR 1 Typy związkowe 1 : N reprezentujemy za pomocą dwóch tabel: 1. Pierwsza tabela reprezentuje typ jednostkowy po stronie z etykietą "N" oraz jego powiązanie z typem jednostkowym po stronie „1” (tj. atrybuty typu związkowego i klucz typu jednostkowego po stronie z etykietą "1"), 2. Druga tabela odpowiada typowi jednostkowemu po stronie z etykietą "1" Związki binarne N:N t1 Cena IdDcy Stan TOW_DOS TOWAR Bm Binarny typ związkowy 1:N w diagramie ER, reprezentujemy w modelu relacyjnym za pomocą dwóch relacji (tabel): 1. RE2(K2, B1, ..., Bm) – reprezentacja typu jednostkowego po stronie „1” 2. RE1(K1, A1, ..., An, C1, ..., Cp, K2) – reprezentacja typu jednostkowego po stronie „N” oraz informacji zawartej w typie związkowym R. 3. K1 i K2 są kluczami głównymi w tabelach odpowiednio RE1 i RE2, 4. K2 jest kluczem obcym w tabeli RE1 i wyznacza zależność referencyjną do RE2. DataOstDost An K2 E2 B1 C1 Cp ... Bm Binarny typ związkowy N:N w diagramie ER, reprezentujemy w modelu relacyjnym za pomocą trzech relacji (tabel): 1. RE1(K1, A1, ..., An), RE2(K2, B1, ..., Bm) – reprezentują typy jednostkowe. 2. RR(K1, K2 C1, ..., Cp,) – reprezentuje typ związkowy R. 3. K1 i K2 są kluczami głównymi w tabelach odpowiednio RE1 i RE2, 4. Para (K1, K2) jest kluczem głównym w tabeli RR, a K1 i K2 są kluczami obcymi w tabeli RR wyznaczającymi zależności referencyjną odpowiednio do RE1 i RE2. Reprezentacja relacyjna związków binarnych N:N – przykład IdTow TOWAR DataOstSprz N IdKli Ilość N TOW_KLI Związki binarne N:N – Potrzeba wprowadzenia dodatkowej jednostki IdTow KLIENT DataSprz N Nazwa Cena VAT Nazwa Typy związkowe typu N : N reprezentujemy za pomocą trzech tabel: 1. Dwie tabele reprezentujące typy jednostkowe, 2. Jedna tabela reprezentująca typ związkowy: klucz tej tabeli składa się z kluczy typów jednostkowych uczestniczących w typie związkowym, tabela zawiera atrybutu typu związkowego. Towar(IdTow, Nazwa, Cena, VAT) Klient(IdKli, Nazwa, Adres) TowKli(IdTow, IdKli, DataOstSprz, Ilość) W tabeli TowKli kluczem głównym jest para (IdTow, IdKli), a każda ze składowych pary jest a kluczem obcym definiującym zależność referencyjną odpowiednio do tabeli Towar i Klient. Nazwa N Sprzedaż TOWAR Adres IdKli Ilość Cena KLIENT VAT Nazwa Adres Gdyby reprezentować jak poprzednio: Towar(IdTow, Nazwa, Cena, VAT) Klient(IdKli, Nazwa, Adres) Sprzedaż(IdTow, IdKli, DataSprz, Ilość) Problem: Ta sama para (IdTow, IdKli) nie może się powtórzyć, bo jest to klucz główny! A towar o tym samym IdTow może być wielokrotnie sprzedawany temu samemu klientowi. 33 Związki binarne N:N – Potrzeba wprowadzenia dodatkowej jednostki IdTow Rekurencyjne typy związkowe IdKli 1 1. Związkami rekurencyjnymi nazywamy takie związki, w których co najmniej dwa człony należą do tej samej klasy jednostek. 2. W przypadku rekurencyjnych typów związkowych niezbędne jest jawne określanie ról (w ogólnym przypadku jawne pisanie ról nie jest konieczne). 3. MAŁŻEŃSTWO jest przykładem związku rekurencyjnego, gdzie jednostki z klasy OSOBA pełnią rolę męża lub żony. 1 TOWAR Nazwa 34 KLIENT Cena VAT Nazwa 0..N IdSprz Adres Ilość SPRZEDAŻ DataSprz Reprezentacja relacyjna: Towar(IdTow, Nazwa, Cena, VAT) Klient(IdKli, Nazwa, Adres) Sprzedaż(IdSprz, DataSprz, Ilość, IdTow, IdKli) Rozwiązanie: Uwzględniamy dodatkową jednostkę reprezentującą np. zdarzenie w systemie rzeczywistym. Dążymy do sytuacji, gdy wśród wszystkich jednostek uczestniczących w związku co najwyżej jeden ma etykietę „N”. 35 1 OSOBA 1 żona mąż MAŁŻEŃSTWO DataŚlubu (c) T. Pankowski, Modelowanie konceptualne 36 Reprezentacja relacyjna rekurencyjnych typów związkowych Rekurencyjne typy związkowe 1. Innym typowym przykładem związków rekurencyjnych jest hierarchia typu: CzęśćGłówna – CzęśćSkładowa, gdzie część (główna) składa się z wielu części (składowych), które z kolei składają się z innych części itd. 2. Schematowi temu odpowiada również: • budowa drzewa genealogicznego, • zależności typu podwładny - przełożony itp. Na poniższym diagramie, BUDOWA jest rekurencyjnym typem związkowym tworzonych przez części główne i składowe: N CZĘŚĆ 1 CzGłówna CzSkładowa BUDOWA (c) T. Pankowski, Modelowanie konceptualne N BUDOWA Związki rekurencyjne typu 1 : N możemy reprezentujemy za pomocą jednej tabeli o następującym schemacie: Część(IdCz, IdCzGł) gdzie IdCz jest kluczem głównym, a IdCzGł jest kluczem obcym wskazującym na część główną (rodzica w drzewie zależności). (c) T. Pankowski, Modelowanie konceptualne Reprezentacja relacyjna rekurencyjnych typów związkowych - przykład IdCz IdCzGł a NULL b a Związki wieloczłonowe c d c 38 Oprócz związków binarnych w modelu ER mogą występować związki o dowolnej liczbie członów. Poniższy przykład zawiera trójczłonowy typ związkowy: a b 1 CzGłówna CzSkładowa 37 Część CZĘŚĆ IdPrz PRZEDMIOT a Data IdUcz Ocena EGZAMIN UCZEŃ e d c e d Ta metoda reprezentacji graficznej dobrze nadaje się w ogólnym przypadku do reprezentacji struktur drzewiastych. NAUCZYCIEL IdNau (c) T. Pankowski, Modelowanie konceptualne 40 Związki wieloczłonowe (c.d.) IdPrz Data IdUcz Ocena EGZAMIN PRZEDMIOT Związki wieloczłonowe (c.d.) IdPrz UCZEŃ (c) T. Pankowski, Modelowanie konceptualne PRZEDMIOT N EGZAMIN N IdPrz PRZEDMIOT UCZEŃ 1. 2. 3. 42 Data N IdUcz Ocena EGZAMIN N UCZEŃ 1 1 NAUCZYCIEL (c) T. Pankowski, Modelowanie konceptualne Reprezentacja relacyjna związków wieloczłonowych IdUcz Ocena IdNau Odpowiadamy na następujące pytania: 1. Z iloma różnymi jednostkami typu En związany jest jeden układ jednostek typów (E1, ..., En - 1)? • z nie więcej niż z jedną – z więcej niż z jedną 2. Czy każda jednostka typu En musi być związana z jakimś układem jednostek z klas (E1, ..., En - 1)? • może nie być z żadnym – musi być z co najmniej z jednym 3. Jakie atrybuty posiada typ związkowy? 41 Związki wieloczłonowe (c.d.) Data UCZEŃ NAUCZYCIEL Przy analizie związków n-członowych, n > 1, R analizujemy powiązania (zależności funkcyjne) o postaci: E1, ..., En - 1 →En gdzie po prawej stronie występuje pojedynczy typ jednostkowy, a po lewej stronie wszystkie pozostałe. Mamy zatem n takich zależności. IdUcz Ocena EGZAMIN PRZEDMIOT IdNau NAUCZYCIEL IdPrz Data NAUCZYCIEL IdNau PRZEDMIOT, NAUCZYCIEL → UCZEŃ Z iloma różnymi uczniami związana jest para (przedmiot, nauczyciel) w typie EGZAMIN? Inaczej, Czy nauczyciel z danego przedmiotu może egzaminować więcej uczniów niż jednego? (TAK, może wielu – etykieta „N" przy typie UCZEŃ) PRZEDMIOT, UCZEŃ → NAUCZYCIEL Z iloma różnymi nauczycielami związana jest para (przedmiot, uczeń) w typie EGZAMIN? Inaczej, czy uczeń z danego przedmiotu może zdawać egzamin u więcej niż u jednego nauczyciela? (NIE, co najwyżej u jednego – etykieta „1" przy klasie jednostek NAUCZYCIEL) NAUCZYCIEL, UCZEŃ → PRZEDMIOT Z iloma różnymi przedmiotami związana jest para (nauczyciel, uczeń) w typie EGZAMIN? Inaczej, czy uczeń u danego nauczyciela może zdawać egzamin z więcej niż z jednego przedmiotu? (TAK – etykieta „N" przy klasie jednostek PRZEDMIOT) (c) T. Pankowski, Modelowanie konceptualne 43 IdNau Do reprezentacji powyższego diagramu ER stosujemy n + 1 tabel (jedną dla każdego typu jednostkowego i jedną dla typu związkowego): Przedmiot(IdPrz, ...) Uczeń(IdUcz, ...) Nauczyciel(IdNau, ...) Egzamin(IdPrz, IdUcz, IdNau, Data, Ocena), Kluczem głównym Egzamin jest: IdPrz, IdUcz, IdNau, każdy z atrybutów należących do klucza głównego jest jednocześnie kluczem obcym. W relacji Egzamin spełniona musi być ponadto zależność funkcyjna: IdPrz, IdUcz → IdNau 44 Jednostki z atrybutem czasowym (zdarzenia) NAUCZYCIEL IdPrz PRZEDMIOT IdNau IdUcz 1 1 1 UCZEŃ N IdEgz EGZAMIN Typy słabych jednostek Data Ocena W poprzednim przykładzie egzamin identyfikowany jest przez trójkę IdPrz, IdUcz, IdNau nie można więc pamiętać informacji o kilkakrotnym zdawaniu tego samego egzaminu (wartość klucza musiałaby się powtarzać, co jest niedopuszczalne). Aby modelować taką sytuację tworzymy jednostkę (encję) EGAZMIN posiadającą własny atrybut kluczowy (identyfikator). Jednostka ta staje się uczestnikiem związku czteroczłonowego (jak na rysunku). Etykietowanie wskazuje, że omawiany typ związkowy można reprezentować za pomocą czterech tabel: Przedmiot, Nauczyciel, Uczeń (jak poprzednio) oraz Egzamin(IdEgz, IdPrz, IdUcz, IdNau, Data, Ocena). (Tracimy zależność funkcyjną Przedmiot, Uczeń Nauczyciel!) 45 Typy słabych jednostek (c.d.) • Omówione dotychczas jednostki określamy jako jednostki regularne (ang. regular entities). Ich istnienie jest niezależna od istnienia lub braku innych jednostek. • Jednostkami słabymi (ang. weak entities), nazywamy takie jednostki, których istnienie zależy od istnienia innych jednostek. Na przykład: istnienie jednostki typu DZIECKO w bazie danych instytucji ma sens tylko wtedy, gdy istnieje jednostka typu PRACOWNIK będąca rodzicem dziecka. Mówimy wówczas, że jednostka regularna PRACOWNIK jest właścicielem jednostki słabej DZIECKO. • Słabe jednostki nie mają własnego atrybutu kluczowego. Identyfikowanie ich odbywa się poprzez kombinację wyróżnionego atrybutu (tzw. klucza częściowego) z atrybutami kluczowymi ich właścicieli, tzn. takiej jednostki (lub grupy jednostek), od której uzależnione jest istnienie jednostki słabej. (c) T. Pankowski, Modelowanie konceptualne 46 Typy słabych jednostek - przykład .. . IdPrac • Związki między słabą jednostką a jednostkami jej właścicieli nazywamy związkami identyfikującymi. • W notacji graficznej typ słabej jednostki oraz typy związków identyfikujących rysujemy podwójną linią. Klucz częściowy słabej jednostki podkreślamy linią przerywaną. • Typ słabych jednostek ma zawsze całkowite uczestnictwo w związkach identyfikujących, co wyraża egzystencjalną zależność od identyfikujących właścicieli. PRACOWNIK 1 PR_DZ N DZIECKO ImięDz .. . Konsekwencją traktowania na dziecka jako słabej jednostki jest to, że usunięcie z bazy danych pracownika, powoduje jednoczesne usunięcie związanego z nim dziecka. Dziecko nie może bowiem istnieć niezależnie, bez powiązania z jednostkami typu PRACOWNIK. key(DZIECKO) = (IdPrac, ImięDz) (c) T. Pankowski, Modelowanie konceptualne 47 (c) T. Pankowski, Modelowanie konceptualne 48 Przekształcanie związków wieloczłonowych w związki binarne Typy słabych jednostek - przykład Tabelaryczna reprezentacja typów słabych jednostek: Zależność egzystencjalna między typem POZYCJA_FAK (typ słabych jednostek oznaczających pozycje faktury), a typem FAKTURA: IdPrz Klucz główny tabeli reprezentującej słabe jednostki składa się z klucza lokalnego (częściowego) i z klucza głównego właściciela jednostki. NrFak FAKTURA NrPoz (c) T. Pankowski, Modelowanie konceptualne 49 Związki wieloczłonowe a binarne IdPrz Data N PRZEDMIOT IdUcz Ocena N EGZAMIN UCZEŃ EGZAMIN jest związkiem trójczłonowym o kluczu: (IdPrz, IdUcz, IdNau) 1 IdNau NAUCZYCIEL EGZAMIN jest jednostką z własnym kluczem i występuje po stronie N w związku 4-członowym NAUCZYCIEL IdPrz PRZEDMIOT IdEgz EGZAMIN UCZEŃ Data Ocena IdUcz 1 PRZEDMIOT IdUcz 1 P_N_U_E N IdPrz IdNau 1 1 P_E U_E N 1 UCZEŃ EGZAMIN jest jednostką z własnym kluczem i występuje po stronie N w trzech związkach binarnych N EGZAMIN IdEgz N N_E 1 NAUCZYCIEL IdNau UCZEŃ N N IdEgz Pozostałe zasady są takie jak przy odwzorowywaniu związków i jednostek regularnych. POZYCJA_FAK 1 EGZAMIN Kluczem głównym jest: NrFak, NrPoz, przy czym NrFak jest kluczem obcym (odwołującym się do tabeli Faktura). N U_E N Pozycja_fak(NrPoz, NrFak, ...) POZ_FAK P_E PRZEDMIOT Na przykład: 1 IdUcz 1 N_E 1 NAUCZYCIEL IdNau Egzamin(IdEgz, IdPrz, IdUcz, IdNau, Data, Ocena), zależność funkcyjna: IdPrz, IdUcz → IdNau (c) T. Pankowski, Modelowanie konceptualne 50