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