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