Bazy danych wykład trzeci Modelowanie schematu bazy danych Konrad Zdanowski Uniwersytet Kardynała Stefana Wyszyńskiego, Warszawa trzeci Modelowanie schematu bazy danych 1 / 40
Outline 1 Zalezności funkcyjne i klucze 2 Diagramy ER 3 Więzy w modelu ER 4 Słabe encje 5 Zasady projektowania trzeci Modelowanie schematu bazy danych 2 / 40
Outline 1 Zalezności funkcyjne i klucze 2 Diagramy ER Encje, zwiazki, atrybuty Krotności w zwiazkach Zwiazki wieloargumentowe i zwiazki binarne Podklasy encji 3 Więzy w modelu ER Integralność referencyjna Więzy stopni 4 Słabe encje 5 Zasady projektowania trzeci Modelowanie schematu bazy danych 3 / 40
Definicja 1 Niech R(A1,..., Ak) będzie relacja. Niech A, B1,..., Bm {A1,..., Ak}. Atrybut A zależy funkcyjnie od B1,..., Bm, co oznaczamy B1,..., Bm A, jeśli każde dwie krotke o tych samych wartościach atrybutów B1,..., Bm musza posiadać ta sama wartość atrybutu A. Jeśli każdy z C1,..., Cr zależy funkcyjnie od B1,..., Bm to piszemy także B1,..., Bm C1,..., Cr. trzeci Modelowanie schematu bazy danych 4 / 40
Definicja 2 Niech R(A1,..., Ak) będzie relacja. Niech B1,..., Bm {A1,..., Ak}. Zbiór atrybutów B1,..., Bm jest kluczem w R jeśli 1 każdy atrybut Ai zależy funkcyjnie od B1,..., Bm, 2 powyższej własności nie ma żaden właściwy podzbiór B1,..., Bm. Punkt 2 definicji klucza wymaga aby zbiór B1,..., Bm był minimalny. Dana relacja może posiadać wiele kluczy. trzeci Modelowanie schematu bazy danych 5 / 40
Fakt 3 Jeśli B1,..., Bm jest kluczem R to w R nie moga wystapić dwie różne krotki o tych samych wartościach B1,..., Bm. Bycie kluczem jest własnościa schematu relacji w bazie danych a nie własnościa konkretnej tabeli. trzeci Modelowanie schematu bazy danych 6 / 40
Przykład. Rozważmy tabelę SAMOCHODY: MARKA KOLOR NR. NADWOZIA Syrenka biały 1 Fiat 126p czerwony 2 Wołga czarny 3 Syrenka kremowy 5 Choć KOLOR jednoznacznie identyfikuje krotkę w tabeli to nie jest to klucz w tej tabeli. trzeci Modelowanie schematu bazy danych 7 / 40
Outline 1 Zalezności funkcyjne i klucze 2 Diagramy ER Encje, zwiazki, atrybuty Krotności w zwiazkach Zwiazki wieloargumentowe i zwiazki binarne Podklasy encji 3 Więzy w modelu ER Integralność referencyjna Więzy stopni 4 Słabe encje 5 Zasady projektowania trzeci Modelowanie schematu bazy danych 8 / 40
Outline 1 Zalezności funkcyjne i klucze 2 Diagramy ER Encje, zwiazki, atrybuty Krotności w zwiazkach Zwiazki wieloargumentowe i zwiazki binarne Podklasy encji 3 Więzy w modelu ER Integralność referencyjna Więzy stopni 4 Słabe encje 5 Zasady projektowania trzeci Modelowanie schematu bazy danych 9 / 40
Diagram ER przedstawia encje oraz zwiazki pomiędzy nimi. Każdy z tych obiektów może posiadać atrybuty. W diagramie ER encje oznaczane sa przez prostokaty, zwiazki przez romby, atrybuty przez elipsy. Krawędzie łacz ace encje i zwiazki oznaczaja rodzaj zwiazku. Atrybuty wchodzace w skład klucza oznaczamy przez podkreślenie. trzeci Modelowanie schematu bazy danych 10 / 40
Przykład. Encja Osoba oraz jej atrybuty. Klucz głowny składa się z jednego atrybutu id. adres nazwisko telefon imie Osoba id trzeci Modelowanie schematu bazy danych 11 / 40
Przykład. Zwiazek posiada. Zwiazki moga posiadać swoje własne atrybuty. osoba posiada samochod data_zakupu trzeci Modelowanie schematu bazy danych 12 / 40
Outline 1 Zalezności funkcyjne i klucze 2 Diagramy ER Encje, zwiazki, atrybuty Krotności w zwiazkach Zwiazki wieloargumentowe i zwiazki binarne Podklasy encji 3 Więzy w modelu ER Integralność referencyjna Więzy stopni 4 Słabe encje 5 Zasady projektowania trzeci Modelowanie schematu bazy danych 13 / 40
Definicja 4 Niech zwiazek R łaczy encje E i F. Jeśli każdy element z E wchodzi w zwiazek R z co najwyżej jednym elementem F, to R jest zwiazkiem wiele do jednego od E do F. Jeśli R jest zwiazkiem wiele do jednego od E do F i od F do E, to R jest zwiazkiem jeden do jednego. Jeśli nie zachodzi żaden z powyższych przypadków, to R jest zwiazkiem typu wiele do wiele. trzeci Modelowanie schematu bazy danych 14 / 40
Zwiazki wiele do jednego reprezentujemy przez strzałki. osoba posiada samochod trzeci Modelowanie schematu bazy danych 15 / 40
Jeśli ten sam zbiór encji bierze wielokrotnie udział w zwiazku to rysujemy tyle linii, ile razy ten zbiór występuje. Każde wystapienie ma przypisana inna rolę, opisana za pomoca etykiet. maz malzenstwo osoba zona trzeci Modelowanie schematu bazy danych 16 / 40
Oczywiście, gdybyśmy modelowali zwiazki według prawa Szariatu, to diagram ten wygladałby tak: maz malzenstwo osoba zona trzeci Modelowanie schematu bazy danych 17 / 40
Outline 1 Zalezności funkcyjne i klucze 2 Diagramy ER Encje, zwiazki, atrybuty Krotności w zwiazkach Zwiazki wieloargumentowe i zwiazki binarne Podklasy encji 3 Więzy w modelu ER Integralność referencyjna Więzy stopni 4 Słabe encje 5 Zasady projektowania trzeci Modelowanie schematu bazy danych 18 / 40
Każdy zwiazek wieloargumentowy możemy przekształcić na zbiór zwiazków dwuargumentowych. Aby to zrobić dodajemy jeden zbiór encji. trzeci Modelowanie schematu bazy danych 19 / 40
Przykład. Zamieniemy na zwiazki binarne wieloargumentowy zwiazek mecz. gospodarz sedzia mecz druzyna goscie wynik trzeci Modelowanie schematu bazy danych 20 / 40
gospodarz sedziuje mecz druzyna goscie sedzia wynik trzeci Modelowanie schematu bazy danych 21 / 40
Outline 1 Zalezności funkcyjne i klucze 2 Diagramy ER Encje, zwiazki, atrybuty Krotności w zwiazkach Zwiazki wieloargumentowe i zwiazki binarne Podklasy encji 3 Więzy w modelu ER Integralność referencyjna Więzy stopni 4 Słabe encje 5 Zasady projektowania trzeci Modelowanie schematu bazy danych 22 / 40
Jeśli pewne encje zawieraja atrybuty nie występujace we wszystkich elementach zbioru to możemy wyróżnić je jako podklasy danej encji. Encje takie łaczymy specjalnym zwiazkiem jest (ang. isa). Zwiazki takie maja strukturę drzewiasta z jednym korzeniem. Encja podrzędna ma wszystkie atrybutu i wchodzi we wszystkie zwiazki, w które wchodzi encja nadrzędna. Klucz encji nadrzednej jest kluczem encji podrzędnej. trzeci Modelowanie schematu bazy danych 23 / 40
Przykład. Podklasy filmy ISA kreskowki musicale trzeci Modelowanie schematu bazy danych 24 / 40
Outline 1 Zalezności funkcyjne i klucze 2 Diagramy ER Encje, zwiazki, atrybuty Krotności w zwiazkach Zwiazki wieloargumentowe i zwiazki binarne Podklasy encji 3 Więzy w modelu ER Integralność referencyjna Więzy stopni 4 Słabe encje 5 Zasady projektowania trzeci Modelowanie schematu bazy danych 25 / 40
Dlaczego wprowadzać więzy w modelu BD? Więzy sa jednym z elementów opisu modelowanego świata. Dobrze zdefiniowane więzy po implementacji modelu pozwalaja SZBD optymalizować wykonywanie zadań zwiazanych z BD. trzeci Modelowanie schematu bazy danych 26 / 40
Przykład. Jeśli tabele R i T posiadaja klucze to poniższe zapytanie można łatwo zooptymalizować. Aby to zrobić SZBD musi posiadać informacje o kluczach w schemacie BD. select Rnazwa, T nazwa from R, T where Rklucz = Tklucz ; trzeci Modelowanie schematu bazy danych 27 / 40
Przykład. Łatwo zooptymalizować także select R. klucz, sum(r. wiek ) from R group by R. klucz ; jako select R. klucz, R. wiek from R; trzeci Modelowanie schematu bazy danych 28 / 40
Outline 1 Zalezności funkcyjne i klucze 2 Diagramy ER Encje, zwiazki, atrybuty Krotności w zwiazkach Zwiazki wieloargumentowe i zwiazki binarne Podklasy encji 3 Więzy w modelu ER Integralność referencyjna Więzy stopni 4 Słabe encje 5 Zasady projektowania trzeci Modelowanie schematu bazy danych 29 / 40
Zależność wiele do jeden z E do F nie rozstrzyga, czy dla każdego elementu E istnieje element w F będacy z nim w relacji. Istnienie odpowiedniego elementu z F modelujemy przez więzy integralności referencyjnej. trzeci Modelowanie schematu bazy danych 30 / 40
Poznaliśmy już niektóre więzy w modelach BD. klucze typy zwiazków: wiele do jednego, jeden do jednego,... trzeci Modelowanie schematu bazy danych 31 / 40
Integralność referencyjna oznaczamy za pomoca zaokraglonej strzałki. prezes zarzadza firma trzeci Modelowanie schematu bazy danych 32 / 40
Outline 1 Zalezności funkcyjne i klucze 2 Diagramy ER Encje, zwiazki, atrybuty Krotności w zwiazkach Zwiazki wieloargumentowe i zwiazki binarne Podklasy encji 3 Więzy w modelu ER Integralność referencyjna Więzy stopni 4 Słabe encje 5 Zasady projektowania trzeci Modelowanie schematu bazy danych 33 / 40
Możemy ograniczyć stopień zwiazku R pomiędzy encjami E i F przez zaznaczenie z iloma maksymalnie elementami z F może wejść w zwiazek element z E. Oznaczamy to przez określenie liczności, n, nad linia do łacz ac a zwiazek z dana encja. Strzałka oznacza w tej konwencji ograniczenie 1 podczas gdy strzałka zaokraglona to ograniczenie = 1. trzeci Modelowanie schematu bazy danych 34 / 40
Outline 1 Zalezności funkcyjne i klucze 2 Diagramy ER Encje, zwiazki, atrybuty Krotności w zwiazkach Zwiazki wieloargumentowe i zwiazki binarne Podklasy encji 3 Więzy w modelu ER Integralność referencyjna Więzy stopni 4 Słabe encje 5 Zasady projektowania trzeci Modelowanie schematu bazy danych 35 / 40
Definicja 5 Słaba encja to encja, której część lub wszystkie atrybuty wchodzace w skład jej klucza sa atrybutami innych encji. trzeci Modelowanie schematu bazy danych 36 / 40
gatunek nalezy rodzaj nazwa nazwa Element słabej encji musi wchodzić w zwiazki z innymi encjami, z których bierze części składowe swojego klucza. Zwiazki te i encje nazywamy pomocniczymi. trzeci Modelowanie schematu bazy danych 37 / 40
Niech R będzie zwiazkiem pomocniczym od słabej encji E do encji pomocniczej F. R musi być zwiazkiem wiele do jednego od E do F (także jeden do jednego). Musi istnieć integralność referencyjna między E i F. Atrybuty klucza F wchodza w skład klucza E. Jeśli E łacz a z F inne zwiazki pomocnicze, to dla każdego tworzymy oddzielna kopię klucza E. Element słabej encji musi wchodzić w zwiazki z innymi encjami, z których bierze części składowe swojego klucza. trzeci Modelowanie schematu bazy danych 38 / 40
Outline 1 Zalezności funkcyjne i klucze 2 Diagramy ER Encje, zwiazki, atrybuty Krotności w zwiazkach Zwiazki wieloargumentowe i zwiazki binarne Podklasy encji 3 Więzy w modelu ER Integralność referencyjna Więzy stopni 4 Słabe encje 5 Zasady projektowania trzeci Modelowanie schematu bazy danych 39 / 40
Projektujac model ER powinniśmy kierować się zasadami: 1 Wierność encje i ich atrybuty powinny odpowiadać rzeczywistości. Zwiazki powinny mieć rzeczywisty sens. 2 Brak nadmiarowosci każda informacja powinna być przechowywana tylko w jednym miejscu. Nie należy powielać informacji. 3 Prostota nie należy wprowadzać zbędnych encji, atrybutów lub zwiazków. trzeci Modelowanie schematu bazy danych 40 / 40