kluczem ocenił

Transkrypt

kluczem ocenił
Postacie normalne
Plan wykładu
•
•
•
•
•
•
Zależności funkcyjne
Cel normalizacji
Pierwsza postać normalna
Druga postać normalna
Trzecia postać normalna
Postać normalna Boyca - Codda
Pojęcie zależności funkcyjnej
Definicja 1:
Niech U będzie skończonym zbiorem atrybutów relacji R.
Zależnością funkcyjną nazywamy każdy zapis postaci:
X Y
gdzie:
X ,Y  U
Mówimy wówczas, że Y zależy funkcyjnie od X lub
że X determinuje funkcyjnie Y
Spełnienie zależności funkcyjnej
Definicja 2:
Niech dana będzie relacja R(U) i niech: X , Y  U
Mówimy, że w R spełniona jest zależność funkcyjna:
X Y
co zapisujemy:
R X Y
jeśli dla każdych dwóch krotek:
r1, r 2  R
zachodzi:
r1[ X ]  r 2[ X ]  r1[Y ]  r 2[Y ]
Spełnienie zależności funkcyjnej przykład
Egzamin
NrStud
Nazwisko
Przedmiot
Ocena
10
10
11
12
Kowalski
Kowalski
Nowak
Wróbel
Algebra
Analiza
Algebra
Algebra
3
4
3
3
Egza min  NrStud  Nazwisko
Czy zachodzi zależność odwrotna?
Egzamin  NrStud, Przedmiot  Nazwisko
Egzamin  Przedmiot  Ocena (?)
Domknięcie zbioru atrybutów
względem zależności funkcyjnych
Zbiór:
X   { A U : X  A}
nazywamy domknięciem zbioru X względem zbioru
zależności funkcyjnych.
Twierdzenie:
X Y Y  X 
Wyznaczanie domknięcia przykład
Dany niech będzie zbiór zależności F
F = {A->B, B->C, C->A}
Obliczamy domknięcie atrybutu A
względem zbioru F.
1) A+ = {A}
2) Na podstawie A->B mamy A+ = {AB}
3) Na podstawie B->C mamy A+ = {ABC}
Wyznaczanie domknięcia przykład
Dany niech będzie zbiór zależności F:
F = {AB->C, C->A, BC->D, ACD->B,
D->EG, BE->C, CG->BD, CE->AG}
Obliczamy domknięcie atrybutów BD względem
zbioru F.
1) BD+ = {BD}
2) Na podstawie D->EG mamy BD + = {BDEG}
3) Na podstawie BE->C mamy BD + = {BCDEG}
4) Na podstawie CE->AG mamy BD + = {ABCDEG}
Cele normalizacji
• Normalizacja jest jednym z etapów
projektowania.
• Eliminowanie redundancji i anomalii.
• Redundancja danych występuje wtedy, gdy te
same dane są zapisane w bazie wiele razy.
• Mogą występować następujące anomalie:
– Anomalia dołączania: Nie można dołączyć danych, bo
nie istnieją inne dane z nimi związane;
– Anomalia aktualizacji: Dane zmieniają się w jednym
miejscu, ale pozostają nieaktualne w drugim;
– Anomalia usuwania: Usunięcie krotki z danymi
powoduje usunięcie danych innego rodzaju.
Pojęcie klucza
Dany niech będzie schemat relacyjny:
R = (U, F).
Zbiór atrybutów K  U nazywamy kluczem schematu R
wtedy i tylko wtedy, gdy spełnione są następujące warunki:
K U  F
X  U  F   ( X  K )
1) Jednoznaczna identyfikalność
2) Minimalność
Z warunku 1) wynika, że:
K U
Właściwości klucza
• Klucz posiada minimalną liczbę atrybutów.
• Atrybuty relacji należące do klucza nazywamy
atrybutami kluczowymi.
• Atrybuty relacji nie należące do klucza
nazywamy atrybutami niekluczowymi.
• Żaden atrybut należący do klucza nie może
przyjmować wartości NULL.
• Przy normalizacji badane są zależności
funkcyjne pomiędzy atrybutami kluczowymi a
niekluczowymi oraz zależności pomiędzy
atrybutami niekluczowymi.
Pierwsza postać normalna 1PN
Relacja jest w pierwszej postaci
normalnej, jeśli wartości atrybutów
poszczególnych krotek są wartościami
atomowymi.
Przykład relacji nie będącej w 2PN
Egzamin
NrStud
Nazwisko
Wydział
Przedmiot
Ocena
10
Kowalski
PPT
Algebra
3
10
Kowalski
PPT
Analiza
4
11
Nowak
IZ
Algebra
3
12
Wróbel
Chemiczny
Algebra
3
Zależności funkcyjne:
NrStud  Nazwisko,Wydzial
Atrybuty kluczowe: {NrStud, Przedmiot}
NrStud, Przedmiot  Ocena
Atrybuty niekluczowe: {Nazwisko,
Wydział, Ocena}
Klucz: {NrStud, Przedmiot}
Atrybut Ocena zależy od całego klucza
Atrybuty: Nazwisko, Wydział zależą od
części klucza. To jest źródłem anomalii
Anomalie występujące w
przypadku braku 2PN
Egzamin
NrStud
Nazwisko
Wydział
Przedmiot
Ocena
10
Kowalski
PPT
Algebra
3
10
Kowalski
PPT
Analiza
4
11
Nowak
IZ
Algebra
3
12
Wróbel
Chemiczny
Algebra
3
13
Przybylski
Chemiczny
NULL
NULL
Anomalia dołączania:
Dodanie studenta, który jeszcze nie zdał żadnego egzaminu jest niemożliwe,
gdyż atrybut kluczowy Przedmiot przyjąłby wtedy wartość NULL.
Anomalie występujące w
przypadku braku 2PN
Egzamin
NrStud
Nazwisko
Wydział
Przedmiot
Ocena
10
Kowalski
PPT
Algebra
3
10
Kowalski
PPT
Analiza
4
11
Nowak
IZ
Algebra
3
12
Wróbel
Chemiczny
Algebra
3
Anomalia usuwania:
Usunięcie krotki o zdanym egzaminie Nowaka powoduje usunięcie wszystkich
danych związanych z Nowakiem (jeśli to był jego jedyny egzamin)
Anomalie występujące w
przypadku braku 2PN
Egzamin
NrStud
Nazwisko
Wydział
Przedmiot
Ocena
10
Kowalski
PPT
Algebra
3
10
Kowalski
PPT
Analiza
4
11
Nowak
IZ
Algebra
3
12
Wróbel
Chemiczny
Algebra
3
Redundancja danych:
Pewne dane zapisane są w bazie kilka razy. Jeśli więc Kowalski zmieni
wydział, wówczas trzeba to zmienić w kilku miejscach.
Druga postać normalna (2PN)
• Definicja pełnej zależności funkcyjnej. Niech X i Y
będą rozłącznymi zbiorami atrybutów. Mówimy, że Y jest
w pełni funkcyjnie zależny od X lub że istnieje pełna
zależność funkcyjna z X do Y, jeśli Y jest zależnie
funkcyjny od X i nie jest zależny od żadnego właściwego
podzbioru X.
• Definicja 2PN. Schemat relacyjny R=(U,F) jest w 2PN
jeśli każdy niekluczowy atrybut jest w pełni funkcyjnie
zależny od każdego klucza tego schematu.
• W związku z tym schemat relacyjny, którego klucz jest
jednoargumentowy jest w 2PN.
Sprowadzenie do 2PN - algorytm
Dany niech będzie schemat relacyjny: R = (U, F)
X  A F
Jeśli istnieje niepełna zależność funkcyjna:
Schemat R jest podzielony na dwa schematy:
R1  ( X  , F 1) i R2  ((U  X  )  X , F 2)
X  U - zbiór wszystkich atrybutów zależnych od X
F1 zawiera wszystkie te ZF ze zbioru F+, których atrybuty
zawarte są w X+. Podobnie jest dla F2.
Jeśli R1 i R2 nie są w 2PN, algorytm jest powtarzany.
Sprowadzenie do 2PN
Egzamin
NrStud
Nazwisko
Wydział
Przedmiot
Ocena
10
Kowalski
PPT
Algebra
3
10
Kowalski
PPT
Analiza
4
11
Nowak
IZ
Algebra
3
12
Wróbel
Chemiczny
Algebra
3
Niepełna zależność funkcyjna od klucza:
NrStud  Nazwisko
Zgodnie z algorytmem:
bo
NrStud, Przedmiot  Nazwisko
R1  ( X  , F 1) i R2  ((U  X  )  X , F 2)
Mamy: X ={NrStud}, X+ = {NrStud, Nazwisko, Wydział}
Sprowadzenie do 2PN
Z relacji Egzamin powstają dwie : Ocena i Student
Ocena
Student
NrStud
Przedmiot Ocena
NrStud
Nazwisko
Wydzial
10
Algebra
3
10
Kowalski
PPT
10
Analiza
4
11
Nowak
IZ
11
Algebra
3
12
Wróbel
Chemiczny
12
Algebra
3
Każda z tych relacji jest w 2PN.
Wnioski – 2PN
• Jeśli klucz jest jednoargumentowy, to
schemat jest w 2PN.
• Proces sprowadzania do 2PN nie jest
jednoznaczny – dla jednego schematu
może istnieć wiele równoważnych projekcji
w 2PN.
Anomalie występujące w
przypadku braku 3PN
Wykonawca
IdWykon
Nazwa
IdProj
Koszt
10
IBM
20
200000
11
Intel
20
200000
12
Mac
21
400000
13
SAP
22
500000
Zależności funkcyjne:
IdWykon Nazwa, IdProj, Koszt
IdProj  Koszt
Anomalie występujące w
przypadku braku 3PN
Wykonawca
IdWykon
Nazwa
IdProj
Koszt
10
IBM
20
200000
11
Intel
20
200000
12
Mac
21
400000
13
SAP
22
500000
Relacja jest w 2PN, bo występuje klucz jednoargumentowy, ale
występuje redundancja i anomalia. Przyczyną jest zależność:
IdProj  Koszt
Anomalie występujące w
przypadku braku 3PN
Wykonawca
IdWykon
Nazwa
IdProj
Koszt
10
IBM
20
200000
11
Intel
20
200000
12
Mac
21
400000
13
SAP
22
500000
NULL
NULL
23
700000
Anomalia dołączania:
Aby wprowadzić dane projektu, należałoby mieć wykonawcę tego
projektu.
Tranzytywne zależności funkcyjne
Definicja. Atrybut A jest tranzytywnie zależny od klucza K w
schemacie relacyjnym R = (U, F), jeśli istnieje zbiór atrybutów X
nie będący kluczem i taki, że:

A X i X  A  F
Oczywiście z zależności tranzytywnej wynika zależność „zwykła”.
Tak więc atrybut A jest zależny od K także w „zwykłym sensie”.
Należność tranzytywną można zobrazować w sposób następujący:
K XA
Definicja 3PN
Schemat relacyjny R=(U,F) jest w 3PN
jeśli jest w 2PN i żaden niekluczowy
atrybut nie jest tranzytywnie zależny od
żadnego klucza relacji.
Sprowadzenie do 3PN - algorytm
Dany niech będzie schemat relacyjny: R = (U, F)
Jeśli istnieje tranzytywna zależność funkcyjna: X  A  F
Schemat R jest podzielony na dwa schematy:
R1  ( X  , F 1) i R2  ((U  X  )  X , F 2)
X  U - zbiór wszystkich atrybutów zależnych od X
F1 zawiera wszystkie te ZF ze zbioru F+, których atrybuty
zawarte są w X+. Podobnie jest dla F2.
Jeśli R1 i R2 nie są w 3PN, algorytm jest powtarzany.
Sprowadzenie do 3PN
Wykonawca
IdWykon
Nazwa
IdProj
Koszt
10
IBM
20
200000
11
Intel
20
200000
12
Mac
21
400000
13
SAP
22
500000
W wyniku działania algorytmu mamy:
X = IdProj, X+ = {IdProj, Koszt}
Sprowadzenie do 3PN
Z relacji Wykonawca powstają dwie : Projekt i Wykonanie
Projekt
Wykonanie
IdProj
Koszt
IdWykon
Nazwa
IdProj
20
200000
10
IBM
20
21
400000
11
Intel
20
22
500000
12
Mac
21
13
SAP
22
Każda z tych relacji jest w 3PN
PNBC – Postać Normalna Boyce’a Codda
Definicja. Mówimy, że schemat relacyjny R = (U, F) jest
w PNBC, jeśli dla każdej nietrywialnej zależności X->A
należącej do F, X jest nadkluczem.
1) Nietrywialna oznacza, że A nie należy do X
2) Nadklucz oznacza, że X zawiera klucz
Sprowadzenie do PNBC - algorytm
Dany niech będzie schemat relacyjny: R = (U, F)
Jeśli istnieje nietrywialna zależność funkcyjna: X  A  F
taka, że X nie jest nadkluczem,
wówczas schemat R jest podzielony na dwa schematy:
R1  ( X  , F 1) i R2  ((U  X  )  X , F 2)
X  U - zbiór wszystkich atrybutów zależnych od X
F1 zawiera wszystkie te ZF ze zbioru F+, których atrybuty
zawarte są w X+. Podobnie jest dla F2.
Jeśli R1 i R2 nie są w PNBC, algorytm jest powtarzany.
PNBC - Przykład
Kody
Ulica
Miasto
Kod
Kołłątaja
Poznań
80-288
Rydla
Kraków
12-333
Rydla
Poznań
80-900
Słoweńska
Warszawa
22-111
Zależności funkcyjne:
Klucze:
Miasto, Ulica  Kod
{Miasto, Ulica}
Kod  Miasto
{Ulica, Kod}
PNBC - Przykład
Kody
Ulica
Miasto
Kod
Kołłątaja
Poznań
80-288
Rydla
Kraków
12-333
Rydla
Poznań
80-900
Słoweńska
Warszawa
22-111
Rozpatrzmy klucz: {Miasto, Ulica}
Występuje 3PN. Nie zachodzi PNBC, gdyż:
Kod  Miasto
Zależność jest nietrywialna, a atrybut Kod nie jest nadkluczem.
Sprowadzenie do PNBC
Z relacji Wykonawca powstają dwie : Kod1 i Kod2
Kod1
Kod2
Miasto
Kod
Ulica
Kod
Poznań
80-288
Kołłątaja
80-288
Kraków
12-333
Rydla
12-333
Poznań
80-900
Rydla
80-900
Warszawa
22-111
Słoweńska
22-111
Podsumowanie
• Decyzja czy pozostawić relację w 3PN czy
w PNBC powinna być przemyślana.
• Praktyka pokazuje, ze 3PN jest
najlepszym rozwiązaniem
• Projektowanie obiektowe z reguły od razu
daje w rezultacie postać 3PN
• W niektórych przypadkach korzystniejsze
jest pozostawienie relacji w niższych
postaciach (1PN lub 2PN).
Dziękuję

Podobne dokumenty