podstawy baz danych
Transkrypt
podstawy baz danych
PODSTAWY BAZ DANYCH Wykład 2 2. Pojęcie Relacyjnej Bazy Danych 2005/2006 Wykład "Podstawy baz danych" 1 Pojęcie krotki - definicja Definicja. Niech dany będzie skończony zbiór U := { A1, A2, ..., An }, którego elementy nazywać będziemy atrybutami. Niech każdemu atrybutowi Ai ∈U przyporządkowany będzie zbiór wartości DOM(Ai) zwany dziedziną atrybutu Ai, (domeną). Niech KROTKA(U ) := X DOM ( A ) i =1..n i Elementy tego zbioru nazywać będziemy krotkami. 2005/2006 Wykład "Podstawy baz danych" 2 Pojęcie relacji - definicja Uwaga. Zbiór KROTKA(U) może być zbiorem nieskończonym (gdy jeden ze zbiorów DOM(Ai) jest zbiorem nieskończonym). Definicja. Relacją typu U nazywamy dowolny skończony podzbiór zbioru KROTKA(U). Zbiór wszystkich relacji typu U oznaczać będziemy przez REL(U). 2005/2006 Wykład "Podstawy baz danych" 3 Pojęcie krotki i relacji - oznaczenia Relację typu U oznaczać będziemy przez R(U), S(U), T(U), .. Jeżeli z kontekstu wynikać będzie jednoznacznie o jaki zbiór atrybutów chodzi, pisać będziemy R, S, T, ... Krotki typu U oznaczać będziemy r(U), s(U), t(U).... Jeżeli z kontekstu wynikać będzie jednoznacznie typ krotki, pisać będziemy r, s, t, .... 2005/2006 Wykład "Podstawy baz danych" 4 Pojęcie krotki i relacji - oznaczenia Podzbiory zbioru atrybutów U oznaczać będziemy dużymi literami X, Y, Z, .... Do oznaczenia sumy dwóch zbiorów X, Y ⊆ U stosować będziemy zapis XY zamiast X∪Y. Dla zbioru atrybutów { A, B } zamiast pisać R({A, B}), stosować będziemy zapis R(A,B). 2005/2006 Wykład "Podstawy baz danych" 5 Pojęcie krotki i relacji - przykład Przykład. Relacja typu U:={ I, N, P, O } U:={nr_Indeksu, Nazwisko_studenta, nr_Przedmiotu, Ocena} 2005/2006 I N P O 10 Nowak a 3 10 Nowak b 4 11 Norek a 3 12 Burek a 3 Wykład "Podstawy baz danych" 6 Operacje na relacjach - Operacje mnogościowe Na relacjach definiuje się pewne operacje relacyjne i mnogościowe. Definicja. Sumą, różnicą, przekrojem i dopełnieniem relacji R(U) nazywamy odpowiednio zbiory (a) { t∈KROTKA(U) | t∈R(U) ∨ t∈S(U) }; (b) { t∈KROTKA(U) | t∈R(U) ∧ t∉S(U) }; (c) { t∈KROTKA(U) | t∈R(U) ∧ t∈S(U) }; (d) KROTKA(U)-R(U) , przy czym zbiór KROTKA(U) musi być zbiorem skończonym, gdyż w przeciwnym wypadku byłaby sprzeczność z definicją relacji. 2005/2006 Wykład "Podstawy baz danych" 7 Operacje na relacjach - Operacje mnogościowe Zbiory te będziemy oznaczać odpowiednio przez R(U)∪S(U), R(U)∩S(U), R(U)-S(U), -R(U). Zauważmy, że definicje te dotyczą relacji tego samego typu. 2005/2006 Wykład "Podstawy baz danych" 8 Złączenie krotek - definicja Definicja. Niech U będzie zbiorem atrybutów i X, Y ⊂ U, r ∈ KROTKA(X), s ∈ KROTKA(Y), Z := X ∪ Y. Krotkę t ∈ KROTKA(Z) nazywamy złączeniem krotki >< r i s, co oznaczamy t = r s, gdy t[X] = r i t[Y ] = s, gdzie t[X] i t[Y ] oznacza obcięcie krotki t do atrybutów X i Y. 2005/2006 Wykład "Podstawy baz danych" 9 Złączenie krotek - przykład Niech U:={I, N, P, O } i X :={ I, N } i Y:={I, P, O } oraz Z := X ∪ Y ={ I, N, P, O }. Jeżeli r = { 10, Nowak } i s = { 10, a, 3 } to krotka t typu Z postaci t = { 10, Nowak, a, 3 } jest złączeniem krotek r i s. 2005/2006 Wykład "Podstawy baz danych" 10 Projekcja - definicja Definicja. Dla danej relacji R(U) oraz zbioru X⊂U zbiór R[X]: ={ t ∈ KROTKA(X) | ( ∃ r ∈ R(U) ( t = r[X] ) }. nazywamy projekcją R na X. Stwierdzenie. Jeżeli dana jest relacja R(U) i X⊂U to R[X] = { t ∈ KROTKA(X) | ( ∃ s ∈ KROTKA(U-X) ) (t 2005/2006 >< Wykład "Podstawy baz danych" s ∈ R ) }. 11 Pojęcie krotki i relacji - przykład Przykład. Relacja typu U:={ I, N, P, O } U:={nr_Indeksu, Nazwisko_studenta, nr_Przedmiotu, Ocena} 2005/2006 I N P O 10 Nowak a 3 10 Nowak b 4 11 Norek a 3 12 Burek a 3 Wykład "Podstawy baz danych" 12 Projekcja - przykład Przykład. Relacja R typu U:={ I, N, P, O } R[IN] I 10 11 12 2005/2006 R[IPO] I 10 10 11 12 N Nowak Norek Burek Wykład "Podstawy baz danych" P a b a a O 3 4 3 3 13 Złączenie relacji - definicja Definicja. Dla danych relacji R(X) i S(Y) relację T:={ t∈KROTKA(X∪Y) | ( t[X]∈R ) ∧ ( t[Y]∈S ) } typu X∪Y nazywamy złączeniem relacji i oznaczamy przez R >< S. Stwierdzenie. Jeżeli dane są relacje R(X) i S(Y) to R >< S ={ t∈KROTKA(X∪Y) |(∃ r∈R ) ( ∃ s∈S ) (t=r 2005/2006 Wykład "Podstawy baz danych" >< s ) }. 14 Złączenie relacji - przykład Przykład. R(X), X={ I, N } i S(Y), Y={ I, P, O } U = X∪Y = { I, N, P, O } R(X) I 10 11 12 2005/2006 S(Y) N Nowak Norek Burek I 10 10 11 12 Wykład "Podstawy baz danych" P a b a a O 3 4 3 3 15 Złączenie relacji - przykład Relacja R >< S typu U:={ I, N, P, O } I N P O 10 Nowak a 3 10 Nowak b 4 11 Norek a 3 12 Burek a 3 2005/2006 Wykład "Podstawy baz danych" 16 Złączenie relacji - przykład Przykład. R(X), X={ I, N } i S(Y), Y={ P, O } U = X∪Y = { I, N, P, O } R(X) I 10 11 12 2005/2006 S(Y) N Nowak Norek Burek P a b a a Wykład "Podstawy baz danych" O 3 4 3 3 17 Zależności funkcyjne - definicja Definicja. Niech U będzie zbiorem atrybutów i X, Y ⊂ U. Mówimy, że istnieje zależność funkcyjna między zbiorami X i Y, co oznaczamy X→Y, gdy w każdej relacji R(U) ⊂ KROTKA(U) istnieje pewna funkcja R[X]→ R[Y], (przy różnych relacjach R(U) funkcje te mogą być różne). 2005/2006 Wykład "Podstawy baz danych" 18 Zależności funkcyjne - oznaczenia Gdy X = {A1, A2..., An } i Y = { B1, B2..., Bm }, gdzie Ai, Bi oznaczają pojedyncze atrybuty z U, to będziemy również używać oznaczenia A1A2...An→B1B2...Bm. 2005/2006 Wykład "Podstawy baz danych" 19 Zależności funkcyjne - definicja Definicja. Dla danej relacji R(U), X, Y ⊂ U, mówimy, że w R(U) spełniona jest zależność funkcyjna X→Y, gdy (∗) (∀ r1, r2∈R(U) ) [ ( r1[X]=r2[X] )⇒( r1[Y]=r2[Y] ) ]. 2005/2006 Wykład "Podstawy baz danych" 20 Zależności funkcyjne - przykład Przykład. Niech U:={nr_Indeksu, Nazwisko_studenta, nr_Przedmiotu, Ocena} i relacja R(U) będzie określona następująco: I 1 1 2 3 2005/2006 N A A B C P 101 102 101 101 Wykład "Podstawy baz danych" O 3 4 3 3 21 Zależności funkcyjne - przykład W relacji R(U) spełnione są następujące zależności funkcyjne: I→N , IP→O. Zauważmy, że dla zbiorów { P } i { O } warunek z (∗) jest również spełniony, ale między tymi zbiorami nie istnieje zależność funkcyjna. Istotnie, po dodaniu krotki ( 3, C, 102, 3 ) warunek z (∗) nie będzie spełniony. 2005/2006 Wykład "Podstawy baz danych" 22 Aksjomaty Armstronga - przykład Przykład. Niech U:={Przedmiot, nr_Indeksu, Ocena, nr_Egzaminatora, Godzina_egzaminu, Sala}. Na tym zbiorze atrybutów można określić np. następujący zbiór zależności funkcyjnych: F:={ P→GS, GS→P, PI→O, GI→PS, PGS→E }. Zamiast zależności funkcyjnej P→GS można wprowadzić dwie zależności P→G i P→S. Poza tym np. z zależności P→GS i PGS→E wynika zależność P→E. 2005/2006 Wykład "Podstawy baz danych" 23 Aksjomaty Armstronga- domknięcie zbioru F Definicja. Niech U będzie zbiorem atrybutów i niech F ⊂ { X → Y | ( X ⊂ U ) ∧ ( Y ⊂ U ) }. Przez F+ oznaczmy najmniejszy (ze względu na relację zawierania) zbiór zależności funkcyjnych, który zawiera zbiór F i dla dowolnych X, Y, Z ⊂ U spełnia następujące aksjomaty: 2005/2006 Wykład "Podstawy baz danych" 24 Aksjomaty Armstronga F1. ( Y ⊂ X ) ⇒ [ (X → Y ) ∈ F+ ], (zwrotność); F2. [ (X → Y ) ∈ F+ ] ⇒ [ (XZ → YZ ) ∈ F+ ], (poszerzalność); F3. [ (X → Y ) ∈ F+ ∧ (Y → Z ) ∈ F+] ⇒ [ (X → Z ) ∈ F+ ], (przechodniość). Zbiór F+ nazywamy najmniejszym domknięciem zbioru F. 2005/2006 Wykład "Podstawy baz danych" 25 Aksjomaty Armstronga Uwaga. Armstrong (1974) wykazał, że zbiór F+ można otrzymać ze zbioru F używając tylko reguł wnioskowania F1, F2 i F3. Definicja. Niech U będzie zbiorem atrybutów i niech F będzie zbiorem zależności funkcyjnych. Dla zbioru K ⊂ U będącego poprzednikiem pewnej zależności z F zbiór K+:= {A ⊂ U | istnieje K → A } nazywamy domknięciem zbioru K względem zbioru F. 2005/2006 Wykład "Podstawy baz danych" 26 Aksjomaty Armstronga Algorytm wyznaczania zbioru K+ . K+:= K; REPEAT oldK+:= K+; FOR EACH zależność funkcyjna Y → Z z F DO IF Y ⊆ K+ THEN K+ := K+ ∪ Z ; UNTIL ( K+= oldK+ ); 2005/2006 Wykład "Podstawy baz danych" 27 Aksjomaty Armstronga Przykład. Niech U:={ A, B, C, D } i F:={ A→BC, C→D, AC→B }. Dla zbioru K:={ A } wyznaczyć zbiór K+. Rozwiązanie. K+:= { A }; Poczatek pętli REPEAT oldK+:= { A }; K+:= { A, B, C }; oldK+:= { A, B, C }; K+:= { A, B, C, D }; oldK+:= { A, B, C, D }; Koniec pętli REPEAT 2005/2006 {pętla FOR … } {pętla FOR … } {pętla FOR … } Wykład "Podstawy baz danych" 28 Aksjomaty Armstronga Stwierdzenie. (wynikające z aksjomatów Armstronga). F4. [ (X → Y ) ∈ F+ ∧ (YW → Z ) ∈ F+] ⇒ [ (XW → Z ) ∈ F+ ], F5. [ (X → Y ) ∈ F+ ∧ (X → Z ) ∈ F+] ⇒ [ (X → YZ ) ∈ F+ ], F6. [ (X → YZ ) ∈ F+ ] ⇒ [ (X → Y ) ∈ F+ ∧ (X → Z ) ∈ F+ ]. 2005/2006 Wykład "Podstawy baz danych" 29 Schemat relacyjny i jego związek z relacją - definicja Definicja. Niech dla danego zbioru atrybutów U F będzie zbiorem zależności funkcyjnych określonych na U. Parę uporządkowaną R := ( U, F ) nazywamy schematem relacyjnym o zbiorze atrybutów U i ze zbiorem zależności F. 2005/2006 Wykład "Podstawy baz danych" 30 Schemat relacyjny i jego związek z relacją - definicja Definicja. Mówimy, że relacja R jest przypadkiem schematu relacyjnego R := ( U, F ), (lub, że jej schematem jest R ), gdy R jest relacją typu U i spełniona jest w niej każda zależność funkcyjna (X→Y) ∈ F. Zbiór wszystkich relacji R o schemacie R oznaczać będziemy przez INST(R). 2005/2006 Wykład "Podstawy baz danych" 31 Schemat relacyjny - projekcja Definicja. Dla danego schematu relacyjnego R := ( U,F ) i X⊂U schemat relacyjny ( X, G ) nazywamy projekcją schematu R na zbiór X, co oznaczamy przez R[X], gdy G+ = { (Y → Z ) ∈ F+ | Y ∪ Z ⊂ X }+, tzn. G jest podzbiorem zbioru tych zależności ze zbioru F+, w których występują tylko atrybuty ze zbioru X. 2005/2006 Wykład "Podstawy baz danych" 32 Schemat relacyjny - złączenie Definicja. Dla schematów relacyjnych R := ( X, F ) i S := ( Y, G ) schemat ( Z, H ) nazywamy złączeniem schematów R i S, co oznaczamy przez R >< S, gdy Z=X∪Y 2005/2006 i H = F ∪ G. Wykład "Podstawy baz danych" 33 Rozkładalność schematów relacyjnych Definicja. Mówimy, że schemat relacyjny R := ( U, F ) jest rozkładalny bez straty danych na dwa schematy R[X] i R[Y], gdy a) X ∪ Y = U, b) (∀ R∈INST(R ) ) ( R = R[X] >< R[Y] ). 2005/2006 Wykład "Podstawy baz danych" 34 Rozkładalność schematów relacyjnych Twierdzenie. Schemat relacyjny R := ( U, F ) jest rozkładalny bez straty danych na schematy R[XY] i R[XZ], X ∪ Y ∪ Z = U, Y ∩ Z = ∅ wtedy i tylko wtedy, gdy ( X → Y ) ∈ F+ lub ( X → Z ) ∈ F+ tzn., gdy dla każdej relacji R o schemacie R:=(U,F) mamy (R=R[XY] ><R[XZ] )⇔[(X→Y)∈F+∨(X→Z )∈F+] 2005/2006 Wykład "Podstawy baz danych" 35