Plan wykładu Bazy danych Wykład 2: Diagramy zwizków encji (ERD) Diagramy zwizków encji elementy ERD licznoci zwizków podklasy klucze zbiory słabych encji Małgorzata Krtowska Katedra Oprogramowania e-mail: mmac@ii.pb.bialystok.pl SQL - zapytanie proste, łczenie tabel 2 Proces modelowania i implementacji bazy danych Elementy ERD Diagram zwizków encji - Entity-Relationship Diagram E/R (ERD) Analiza informacji, które bd zawarte w bazie danych System zarzdzania relacyjn baz danych Zbiory encji Encja - rozrónialny obiekt Zbiór encji (typ encji) - zbiór podobnych encji Zbiór encji (typ encji) Diagram E/R Schemat bazy danych (Model relacyjny) Wykładowca Krtowska Małgorzata Oniko Agnieszka Sosnowski Zenon... Encje (Instancje danego typu encji) 3 4
Elementy ERD Elementy diagramu E/R Atrybuty - informacje opisujce encj Imi Nazwisko PRACOWNIK Id Zwizki - powizania pomidzy dwiema lub wiksz liczb encji (zbiorów encji) Jakie mog istnie powizania pomidzy nastpujcymi encjami: Szkoły Rodzice Dzieci Powizania bezporednie dziecko-szkoła rodzic - dziecko Powizania porednie: rodzic - szkoła Encja1 Nazwa zwizku Encja2 5 6 Przykład Baza danych filmów Liczebno zwizków encji Wystpuje Posiada N:N 1:N 1:1 7 8
Liczebno zwizków encji Zwizki wieloargumentowe N:N Wystpuje 1:N Posiada 1:1 Kieruje Prezesi Reprezentacja w postaci trzech wartoci: (studio, aktor, film) 9 10 Role w zwizkach Atrybuty zwizku Przykład, które podpisało kontrakt z aktorem moe podpisa kontrakt z innym studiem po to, by umoliwi aktorowi udział w filmie. Reprezentacja zwizku: (studio1, studio2, aktor, film) Gdzie umieci wynagrodzenie aktora? wynagrodzenie producenta aktora Role studia: producent filmu właciciel aktora 11 12
Przesunicie atrybutu do zbioru encji wynagrodzenie Przekształcanie w zwizki binarne Zwizek kontrakty: (studio1, studio2, film, aktor) Gae producenta aktora 13 stworzenie dodatkowego zbioru encji, którego elementy traktuje si tak samo jak krotki zbioru zwizków dla zwizku wieloargumentowego (łczcy zbiór encji) stworzenie zwizków wiele do jeden ze zbioru łczcego do poszczególnych zbiorów encji wchodzcych w skład pierwotnego zwizku wieloargumentowego 14 Podklasy w ERD Podklasy i dziedziczenie w ERD Podklasa = specjalny przypadek = mniej encji = wicej własnoci Przykład: Kreskówki i kryminały to podklasy filmów do aktorów dubbinguje Kreskówki isa isa Kryminały bro 15 Zakładajc, e C jest podklas klasy D na diagramach E/R naley: wprowadzi pomidzy zbiorami encji C i D specjalny typ zwizku isa ( an A is a B ) - wierzchołek trójkta wskazuje klas nadrzdn wszystkie atrybuty i zwizki, które odnosz si wyłcznie do encji C s doczepione do prostokta oznaczajcego C atrybuty i zwizki, które opisuj zarówno C jak i D s doczepione do prostokta oznaczajcego D. Dziedziczenie w ERD: encje mona oglda jako złoone ze składowych, które nale do rónych zbiorów encji, stanowicych czci hierarchii isa składowe te s powizane w cało zwizkiem isa encja ma te wszystkie atrybuty, które nale do którejkolwiek składowej oraz wchodzi we wszystkie zwizki, w które s włczone jej składowe 16
Klucze Integralno referencyjna Klucze - atrybuty lub zbiory atrybutów, które jednoznacznie identyfikuj encj wewntrz zbioru encji. W zbiorze encji nie mog wystpowa dwie encje, które miałyby identyczne wartoci atrybutów tworzcych klucz. Atrybuty, które wchodz w skład klucza na diagramach ER s podkrelone. W hierarchii isa, tylko zbiór encji z klasy nadrzdnej (korze drzewa) moe zawiera klucz, który jednoznacznie identyfikuje encje równie w podklasach. Kady zbiór encji musi mie zdefiniowany klucz. 17 Wizy integralnoci referencyjnej narzucaj wymaganie, aby warto, któr wskazuje encja faktycznie znajdowała si w bazie. E R Interpretacja: strzałka o zaokrglonym grocie: zwizek jest typu wiele do jeden ze zbioru E do F i w zbiorze F musi istnie encja odpowiadajca encji ze zbioru E E Interpretacja: strzałka o zaokrglonym grocie: zwizek jest typu wiele do jeden ze zbiru E do F i w zbiorze F musi istnie co najwyej jedna encja odpowiadajca encji ze zbioru E. R F F 18 Inne e wizów Wizy domenowe - wymagania, aby warto atrybutu naleała do okrelonego zbioru wartoci specyficznych lub znajdowała si w okrelonym zakresie Wizy zasadnicze - arbitralnie narzucone warunki, których spełnienie musi by bezwzgldnie przestrzegane w definiowanej bazie danych Zbiory słabych encji Zbiory słabych encji - zbiory encji, dla których niektóre lub wszystkie atrybuty klucza wybiera si z innego zbioru encji. Przykład: Mamy dwa zbiory encji: Piłkarze (, wiek) oraz Druyny (). Jak mona zdefiniowa klucz dla zbioru encji Piłkarze? wiek Piłkarze gra Druyny Wystpuje <100 zbiór słabych encji - prostokt o podwójnych krawdziach 19 zwizki łczce ten zbiór z innymi to zwizki wiele do jeden - romby o podwójnych krawdziach 20
Wymagania dla zbiorów słabych encji Zasady projektowania Jeeli E jest zbiorem słabych encji, wów zbiór encji F, który dostarcza atrybutów klucza do E, musi pozostawa z E w pewnym zwizku R oraz Zwizek R musi by binarny, typu wiele do jeden z E do F Atrybuty wchodzce w skład klucza E a pochodzce z F musz by czci klucza w F Jeeli zbiór F jest zbiorem słabym, to kluczowe atrybuty z F przekazywane do E mog pochodzi z pewnego innego zbioru encji, z którym F jest powizany poprzez zwizek typu wiele do jednego. Uogólniajc: jeeli zbiór encji jest oznaczony podwójn ramk, to musi by słaby. Jego klucz składa si z tych jego własnych atrybutów, które s podkrelone oraz atrybutów klucza tych zbiorów encji, z którymi zbiór słaby jest połczony przez zwizki typu wiele do jeden, a które oznaczono podwójnymi krawdziami. unikanie redundancji - unikanie powtórze danych prostota - unikanie wprowadzania do projektu wicej elementów ni naprawd potrzeba dobór właciwych elementów definiowanie zbioru encji - jeeli z elementem wie si kilka atrybutów definiowanie elementu jako atrybutu - z elementem wie si tylko jego limitowanie zbiorów słabych encji - tworzenie identyfikatorów jako kluczy w zbiorach encji, jeeli to ma uzasadnienie. 21 22 Złczenia tabel SELECT [ALL DISTINCT] wyraenie [[AS] alias],... FROM tabela_1, tabela_2,..., tabela_n WHERE warunki_łczcy_tabele minimalna liczba łczcych warunków = liczba tabel -1 23