podstawy baz danych
Transkrypt
podstawy baz danych
PODSTAWY BAZ DANYCH Wykład 3 2. Pojęcie Relacyjnej Bazy Danych 2005/2006 Wykład "Podstawy baz danych" 1 Rozkładalność schematów relacyjnych Przykład. Relacja EGZ(U), U := { I, N, P, O }, gdzie I N P O 10 f a 3 10 f b 4 11 g a 3 12 h a 3 jest przypadkiem schematu relacyjnego E := ( { I, N, P, O }, { I→N, IP→O } ). W zależności od wyboru zbioru zależności funkcyjnych jako podstawy rozkładu relację tą można rozłożyć bez straty danych na dwa sposoby: 2005/2006 Wykład "Podstawy baz danych" 2 Rozkładalność schematów relacyjnych E1: E3: I P O 10 a 3 g 10 b 4 h 11 a 3 12 a 3 I P N I N 10 f 11 12 E2: E4: I P O 10 a 3 10 a f 10 b 4 10 b f 11 a 3 11 a g 12 a 3 12 a h W obydwu przypadkach mamy: EGZ=E1 2005/2006 >< E2, EGZ=E3 >< E4. Wykład "Podstawy baz danych" 3 Rozkładalność schematów relacyjnych Definicja. Mówimy, że schemat relacyjny R := ( U, F ) jest rozkładalny bez straty zależności na dwa schematy R1 := ( X, G ), R2 := ( Y, H ), gdy a) X ∪ Y = U, b) F+ = ( G ∪ H )+. 2005/2006 Wykład "Podstawy baz danych" 4 Rozkładalność schematów relacyjnych Przykład. Dla schematu relacyjnego R := ( U, F ) U := { A, B, C, D }, F := { A→B, BC→D, D→B, D→C } rozważmy następujące schematy: R1 := ( { A, B }, { A → B } ), R2 := ( { B, C, D }, { BC→D, D→B, D →C } ), będące rozkładami schematu R bez straty zależności. Rozkład ten nie jest jednak rozkładem bez straty danych. 2005/2006 Wykład "Podstawy baz danych" 5 Rozkładalność schematów relacyjnych Istotnie, rozważmy relację R∈INST(R) postaci: R: A B C D a b c d a1 b c1 d1 a2 b c1 d1 Wówczas relacje: R1 := R[AB] i R2 := R[BCD] mają postać: 2005/2006 Wykład "Podstawy baz danych" 6 Rozkładalność schematów relacyjnych R1: i R≠R1 A B a a1 b b a2 b >< R2 R2: B C D b b c c1 d d1 (następny slajd). Zauważmy, że zależności B→A i B→CD nie należą do F+, tzn. nie są spełnione założenia twierdzenia o warunku koniecznym i dostatecznym rozkładalności bez straty danych. 2005/2006 Wykład "Podstawy baz danych" 7 Rozkładalność schematów relacyjnych R1 >< R2 A a a a1 a1 a2 a2 B b b b b b b C c c1 c c1 c c1 D d d1 d d1 d d1 R: 2005/2006 Wykład "Podstawy baz danych" A B C D a b c d a1 b c1 d1 a2 b c1 d1 8 Normalizacja schematów relacyjnych Definicja. Mówimy, że zbiór K⊂U jest kluczem dla schematu relacyjnego R := ( U, F ), gdy spełnia warunki: a) ( K → U ) ∈ F+, b) (∀ X ⊂U ) ( [ ( X→U )∈F+ ] ⇒ [ ∼ ( X ⊂ K ) ] ). Jeżeli zbiór K spełnia tylko warunek a) to nazywamy go nadkluczem. Elementy zbioru K nazywamy atrybutami kluczowymi. 2005/2006 Wykład "Podstawy baz danych" 9 Normalizacja schematów relacyjnych Przykład. Dla schematu relacyjnego E := ( { I, N, P, O }, { I→N, IP→O } ) warunek a) definicji spełniają zbiory { I, P }, { I, N, P }, { I, N, P, O }. Warunek b) spełnia zbiór { I, P } i ten zbiór jest kluczem schematu R. 2005/2006 Wykład "Podstawy baz danych" 10 Normalizacja schematów relacyjnych Uwaga. Schemat relacyjny może posiadać wiele kluczy (klucze kandydujące). Jeden z nich nazywamy kluczem głównym, (Primary key). Atrybuty nie należące do żadnego klucza nazywamy atrybutami niekluczowymi. 2005/2006 Wykład "Podstawy baz danych" 11 Normalizacja schematów relacyjnych - 1PN Definicja. Schemat relacyjny R := ( U, F ) jest w pierwszej postaci normalnej (1PN), gdy dla każdego A ∈ U zbiór DOM(A) składa się z wartości elementarnych (atomic value). 2005/2006 Wykład "Podstawy baz danych" 12 Normalizacja schematów relacyjnych - 2PN Definicja. Niech X, Y ⊂ U i X ∩ Y = ∅. Mówimy, że Y jest w pełni funkcyjnie zależny od X, gdy istnieje zależność funkcyjna X→Y i nie istnieje zależność z żadnego właściwego podzbioru zbioru X w Y. X→Y ∈ F+ X Y X1 X1→Y ∉ F+ 2005/2006 Wykład "Podstawy baz danych" 13 Normalizacja schematów relacyjnych - 2PN Definicja. Schemat relacyjny R := ( U, F ) jest w drugiej postaci normalnej (2PN), gdy każdy niekluczowy atrybut A∈U jest w pełni zależny od każdego klucza tego schematu. K1→A ∈ F+ K1 K1→A ∉ F+ 2005/2006 K2→A ∈ F+ A K2 K2→A ∉ F+ Wykład "Podstawy baz danych" 14 Normalizacja schematów relacyjnych - 2PN Przykład. Schemat relacyjny E = ( U, F ) gdzie U := { Indeks, Nazwisko, Kierunek, Adres, Przedmiot, Ocena }, F := { I→NAK, IP→O } z kluczem K := { I, P } nie jest w 2PN, bo np. niekluczowy atrybut N jest zależny funkcyjnie tylko od { I } ⊂ K. 2005/2006 Wykład "Podstawy baz danych" 15 Normalizacja schematów relacyjnych - 2PN Niech E będzie relacją o schemacie E = ( U, F ) określoną następująco: E: 2005/2006 I 10 10 11 12 10 N f f g h f A x x y x x K mat mat inf inf mat Wykład "Podstawy baz danych" P a b a a c O 3 4 3 3 5 16 Normalizacja schematów relacyjnych - 2PN W relacji tej można zauważyć następujące anomalia: • usuwania - np. przy unieważnieniu egzaminu studenta o indeksie 11 należy usunąć całą krotkę, co spowoduje utratę informacji o studencie. • aktualizacji - zmiana adresu studenta wymaga zmiany w kilku krotkach; • dołączania - nie można dołączyć studenta, który nie zdał żadnego egzaminu; 2005/2006 Wykład "Podstawy baz danych" 17 Normalizacja schematów relacyjnych - 2PN Dla każdej relacji E ∈ INST(E) mamy E = E[INKA] >< E[IPO] tzn. uzyskaliśmy dwa schematy relacyjne E1 := ( { I, N, K, A }, { I → NAK } ) i E2 := ( { I, P, O }, { IP → O } ) odpowiednio z kluczami { I } i { I, P }. Jest to rozkład bez straty danych. 2005/2006 Wykład "Podstawy baz danych" 18 Normalizacja schematów relacyjnych - 2PN Relację E można zastąpić dwiema relacjami: E2: I P O E1: I N A K 10 f x mat 10 a 3 11 g y inf 10 b 4 12 h x inf 11 a 3 12 a 3 10 c 5 Każdy z tych schematów jest w 2PN. Stwierdzenie. Jeżeli każdy klucz schematu jest zbiorem jednoelementowym to schemat jest w 2PN. 2005/2006 Wykład "Podstawy baz danych" 19 Normalizacja schematów relacyjnych - 3PN Definicja. Zbiór atrybutów Z jest tranzytywnie zależny od zbioru X, gdy a) X ∩ Z = ∅, b) ( ∃Y ⊂ U ) { ( Y ∩ X = ∅ ∧ Y ∩ Z=∅) ⇒ [(X→Y )∈F+∧(Y→X)∉F+ ∧ (Y→Z)∈F+] }. X (X→Y )∈F+ ∧ (Y→X)∉F+ 2005/2006 Z Y (Y→Z)∈F+ Wykład "Podstawy baz danych" 20 Normalizacja schematów relacyjnych - 3PN Definicja. Schemat relacyjny R := ( U, F ) jest w trzeciej postaci normalnej ( 3PN ), gdy jest w 2PN i każdy zbiór niekluczowych atrybutów Z⊂U nie jest tranzytywnie zależny od każdego zbioru atrybutów K będącego kluczem tego schematu. 2005/2006 Wykład "Podstawy baz danych" 21 Normalizacja schematów relacyjnych - 3PN Przykład. Rozważmy schemat relacyjny E := ( U, F ) U :={Wykonawca, Adres, Projekt, Data_zakończenia}, F := { W → APD, P → D } z kluczem K := { W } jest w 2PN. 2005/2006 Wykład "Podstawy baz danych" 22 Normalizacja schematów relacyjnych - 3PN Niech E będzie relacją o schemacie E := (U, F) U := { Wykonawca, Adres, Projekt, Data_zak } F := { W → AP, P → D } określoną następująco: E: W A 30 x 40 y 50 y 60 z 2005/2006 P a a b c Wykład "Podstawy baz danych" D 01/01/2000 01/01/2000 01/01/1999 01/01/2000 23 Normalizacja schematów relacyjnych - 3PN Ponieważ W → P ∧ P → D to W → D tzn. zbiór {D} jest tranzytywnie zależny od zbioru {W}. W relacji tej można zauważyć następujące anomalia: dołączania, aktualizacji i usuwania. Dla każdej relacji E ∈ INST(E) mamy E=E[WAP] >< E[PD] tzn. uzyskamy dwa schematy relacyjne będące w 3PN E1 := ( { W, A, P }, { W → A, W → P } ) i 2005/2006 E2 := ( { P, D }, { P → D } ). Wykład "Podstawy baz danych" 24 Normalizacja schematów relacyjnych - 3PN Jest to rozkład bez straty danych. Relację E można zastąpić dwiema relacjami: E1: 2005/2006 W 30 40 50 60 A x y y z P a a b c E2: Wykład "Podstawy baz danych" P D a 01/01/2000 b 01/01/1999 c 01/01/2000 25 Normalizacja schematów relacyjnych - 3PN Uwaga. W każdym schemacie będącym w 3PN między atrybutami niekluczowymi nie ma zależności funkcyjnych. Zadanie. Sprawdzić, czy schemat relacyjny E := ( { A, B, C }, { AB → C, C → A } ) jest w 3PN. 2005/2006 Wykład "Podstawy baz danych" 26 Normalizacja schematów relacyjnych - PNB-C Definicja. Schemat relacyjny R := ( U, F ) jest w postaci normalnej Boyce'a-Codda, (PNB-C), gdy z faktu ( X → Y ) ∈ F+, Y ⊂ U - X, wynika, że X jest nadkluczem tzn. ( X → U ) ∈ F+. 2005/2006 Wykład "Podstawy baz danych" 27 Normalizacja schematów relacyjnych - PNB-C Uwaga. Każdy schemat w PNB-C jest w 3PN. Przykład. Schemat relacyjny E := ( { Student, Przedmiot, Wykładowca }, { W → P, SP → W } ) z kluczem K := { S, P } nie jest w PNB-C, bo mimo, że W → P ∈ F+, to nie istnieje zależność W→U. 2005/2006 Wykład "Podstawy baz danych" 28 Normalizacja schematów relacyjnych - PNB-C Niech E będzie relacją o schemacie R := ( U, F ) określoną następująco: E: S P W 10 a x 11 a x 10 b y 11 b z W relacji E występują anomalia usuwania i dołączania. Nie można dołączyć wykładowcy i przedmiotu jeżeli brak chociaż jednego studenta uczęszczającego na wykład. Nie można również usunąć ostatniego studenta uczęszczającego na dany przedmiot. 2005/2006 Wykład "Podstawy baz danych" 29 Normalizacja schematów relacyjnych - PNB-C Schemat E można rozłożyć na dwa schematy relacyjne E1 := ( { W, P }, { W → P } ) i E2 := ( { W, S }, ∅ ), z których każdy jest w PNB-C. Wtedy relację E można przedstawić w postaci: E1: 2005/2006 W x y z P a b b E2: Wykład "Podstawy baz danych" W x x y z S 10 11 10 11 30 Normalizacja schematów relacyjnych - PNB-C Ponieważ E = E1 >< E2 , więc rozkład ten jest rozkładem bez straty danych, ale nie jest rozkładem bez straty zależności, bowiem { W→P, SP → W }+ ≠ { { W → P } ∪ ∅ }+. Nie jest możliwe dopisanie krotki (z,10) do relacji E2, bowiem wykładowca z prowadzi wykład z przedmiotu b, a student 10 uczęszcza na ten przedmiot do wykładowcy y. 2005/2006 Wykład "Podstawy baz danych" 31 Zależność wielowartościowa Definicja. Niech X,Y⊂U, Z:= U - XY. Mówimy, że istnieje zależność wielowartościowa między zbiorami X i Y, co oznaczamy przez X ─>>Y, gdy dla każdego zbioru KROTKA(U) istnieje pewna funkcja ω : KROTKA(X)→℘(KROTKA(YZ)), gdzie ℘(KROTKA(YZ)) oznacza zbiór wszystkich podzbiorów zbioru KROTKA(YZ), taka, że jeżeli do zbioru ω(KROTKA(X)) należą krotki ( y, z ) i (y′, z′ ), to należą również krotki ( y′, z ) i (y, z′ ). 2005/2006 Wykład "Podstawy baz danych" 32 Zależność wielowartościowa Definicja. Niech dana będzie relacja R(U), X, Y ⊂ U i Z:=U-XY. Mówimy, że w R spełniona jest zależność wielowartościowa X ─>> Y, gdy spełniony jest jeden z równoważnych warunków: a) ( ∀x ∈ R [ X ] ) ( ∀y, y ′ ∈ R [Y ] ) ( ∀z, z ′ ∈ R [ Z ] ) { [( x >< y >< z ∈ R )∧ (x >< y′ >< z′ ∈ R )] ⇒ [(x >< y′ >< z ∈ R)∧ (x >< y >< z′ ∈ R)] } b) R = R [ XY ] >< R [ XZ ]. 2005/2006 Wykład "Podstawy baz danych" 33 Zależność wielowartościowa X Y Z Uwaga. Każda zależność funkcyjna X → Y jest zależnością wielowartościową tzn. X ─>> Y . Uwaga. Zależności X ─>> U i X ─>> ∅ spełnione są w każdej relacji R(U). Nazywamy je trywialnymi zależnościami wielowartościowymi. 2005/2006 Wykład "Podstawy baz danych" 34 Zależność wielowartościowa Przykład. U := { Pracownik, Imię_Dziecka, Zarobki, Rok } E: P a a a a b b E1: D x y x y z z Z 1000 1000 1500 1500 1200 1600 P ─>> D P ─>> ZR P Z R x a 1000 1983 a y a 1500 1984 b z b 1200 1983 b 1600 1984 P D a E2: R 1983 1983 1984 1984 1983 1984 P ─>> D 2005/2006 P ─>> ZR Wykład "Podstawy baz danych" 35 Zależność wielowartościowa Definicja. Niech U będzie zbiorem atrybutów i M ⊂ { X ─>> Y | X ⊂ U ∧ Y ⊂ U }. Przez M + oznaczmy najmniejszy (ze względu na relację ⊂ ) zbiór zależności wielowartościowych takich, że M ⊂ M + i dla (∀ X, Y, Z ⊂U) ( X ∩Y = ∅∧ X ∩Z = ∅∧ Z ∩Y =∅) spełnione są następujące aksjomaty: 2005/2006 Wykład "Podstawy baz danych" 36 Zależność wielowartościowa M0. M1. M2. ( Y ⊂ X ) ⇒ ( X − >>Y )∈ M + , ( X − >>Y )∈M+ ⇒ ( X − >>U − XY )∈M+, ( X − >>Y )∈ M + ⇒ ( XZ− >>YZ)∈ M + , M3. [ ( X− >>Y)∈M M4. [( X − >> Y )∈ M M5. (zwrotność), (dopełnialność), (poszerzalność), ] ∧ (Y− >>Z) ∈M+ ⇒( X − >>Z ) ∈M+ ,(przechodniość), + + [( X − >>Y )∈M + ] ∧ (YZ− >> W ) ∈ M + ⇒ ( XZ − >> W ) ∈ M + , ] (pseudo-przechodniość), ∧ ( X − >> Z ) ∈ M + ⇒ ( X − >>YZ ) ∈ M + , (addytywność), M6. [ ( X− >>Y )∈M ∧( X− >>Z )∈M ]⇒( X− >>Y ∩Z )∈M , + + + (dekompozycja). 2005/2006 Wykład "Podstawy baz danych" 37 Zależność wielowartościowa Uwaga. Między zależnościami funkcyjnymi i wielowartościowymi zachodzą następujące związki: FM1. + + ( X → Y ) ∈ F ⇒ ( X − >> Y ) ∈ M , FM2. [( X − >> Z )∈ M + + ( ) ∧ Y − >> V ∈ M ∧ (V ⊂ Z ) ∧ (Y ∩ Z = ∅ )] ⇒ ( X → V )∈ F + . 2005/2006 Wykład "Podstawy baz danych" 38 Schemat relacyjny Definicja. Dla zbioru atrybutów U i zbiorów F i M, ( zakładamy, że zbiór M nie zawiera zależności funkcyjnych), parę R := ( U, F ∪ M ) nazywamy schematem relacyjnym i mówimy, że relacja R jest przypadkiem schematu relacyjnego R jeśli jest relacją typu U oraz każda zależność funkcyjna i wielowartościowa jest spełniona w R. 2005/2006 Wykład "Podstawy baz danych" 39 Zależność wielowartościowa - 4PN Definicja. Mówimy, że schemat relacyjny R := ( U, F ∪ M ) jest w czwartej postaci normalnej (4PN) gdy [ ( X − >> Y )∈ M + + ] ( ) ( ) ∧ Y ⊂ U − X ⇒ X →U ∈ F . Przykład. Dla schematu relacyjnego R := ( { P, D, Z, R }, {D → P, PR → Z, P →> D, }) i relacji E z przykładu ze slajdu 35 rozważmy dwa schematy R1 := ( { P, D }, {D → P }), R2 := ( { P, Z, R }, { PR → Z }). Wtedy relacje E1 i E2 z tego przykładu są w 4PN. 2005/2006 Wykład "Podstawy baz danych" 40 Schemat relacyjnej bazy danych Definicja. Schematem relacyjnej bazy danych nazywamy zbiór ℜ := { Ri := ( Ui , Fi ) | i = 1,2,..,n }. wszystkich schematów relacyjnych występujących w danej bazie danych 2005/2006 Wykład "Podstawy baz danych" 41 Algorytm tworzenia schematu relacyjnej bazy danych 1. Określamy jeden schemat relacyjnej bazy danych { R := ( U, F ) }, gdzie U jest zbiorem wszystkich atrybutów występujących w bazie danych, przy czym zbiór U dobieramy w taki sposób aby można było na zbiorze U określić zależności funkcyjne. 2. Rozkładając schemat relacyjny R na schematy Ri := ( Ui , Fi ), i = 1,2,..,n otrzymamy schemat bazy danych ℜ := { Ri := ( Ui , Fi ) | i = 1,2,..,n }. 2005/2006 Wykład "Podstawy baz danych" 42