Bazy danych

Transkrypt

Bazy danych
2010-11-22
PLAN WYKŁADU
Zależności funkcyjne
Anomalie danych
 Normalizacja
 Postacie normalne
 Zależności niefunkcyjne
 Zależności złączenia


BAZY DANYCH
Wykład 5
dr inż. Agnieszka Bołtuć
ZALEŻNOŚCI FUNKCYJNE


Niech R będzie zmienną relacyjną, X i Y zaś dowolnymi
podzbiorami zbioru atrybutów R. Mówimy, że Y jest
funkcyjnie zależny od X:
X
Y
wtedy i tylko wtedy, gdy dla każdej dopuszczalnej
legalnie wartość R każda wartość X z R jest
stowarzyszona z dokładnie jedną wartością Y.
Element danych Y jest funkcyjnie zależny od elementu
danych X, jeżeli dla każdej wartości X istnieje jedna,
jednoznacznie określona wartość Y. Element X
nazywamy elementem determinującym, zaś element
danych Y – elementem zależnym (determinowanym).
ZALEŻNOŚCI FUNKCYJNE

IdPrac
NazwiskoPrac

Nazwisko

(Firma, Towar)

(Dzień, Godzina, Sala)
Prowadzący, Grupa)
Adres
Cena
(Przedmiot,
1
2010-11-22
ZALEŻNOŚCI FUNKCYJNE



Zależność jest trywialna wtedy i tylko wtedy, gdy
prawa strona jest podzbiorem lewej strony.
X
Y, Y  X,
Zależność jest prosta, gdy prawa strona jest
pojedynczym atrybutem
X
Ai ,
Zależność jest przechodnia (tranzytywna) jeśli
X
Y oraz Y
Z to X
Z.
REGUŁY WNIOSKOWANIA AMSTRONGA
Niech A, B i C będą dowolnymi podzbiorami zbioru
atrybutów relacji R, gdzie zapis AB oznacza sumę A i
B. Wówczas zachodzą związki:
 zwrotność: jeżeli B A to A
B
 dołączenie: jeżeli A
B to AC BC
 przechodniość: jeżeli A
B i B C to A C.
DOMKNIĘCIE ZBIORU ZALEŻNOŚCI

Pewne zależności funkcyjne implikują inne,
(Firma, Towar)
(Cena, Waga)
(Firma, Towar)
Cena
(Firma, Towar)
Waga
Domknięcie S+ zbioru zależności
to zbiór wszystkich zależności funkcyjnych
implikowanych danym zbiorem S zależności
funkcyjnych.
REGUŁY WNIOSKOWANIA AMSTRONGA
Reguły dodatkowe wyprowadzone na podstawie
trzech głównych reguł:
 samookreślenie: A
A
 rozkład: jeżeli A
BC to A B i A C
 suma: jeżeli A
B i A C to A BC
 złożenie: jeżeli A
B i C D to AC BD
Reguły te są zupełne i znaczące.
2
2010-11-22
NIEREDUKOWALNE ZBIORY ZALEŻNOŚCI
CELE NORMALIZACJI
Zbiór zależności funkcyjnych S jest nieredukowalny
wtedy i tylko wtedy, gdy ma trzy własności:

usunięcie redundancji,

usunięcie anomalii przy usuwaniu (efektu
ubocznego usunięcia),

usunięcie anomalii przy modyfikacji usuwaniu
(efektu ubocznej modyfikacji),

usunięcie anomalii przy wstawianiu (efektu
ubocznego wstawiania).
element zależny (prawa strona) każdej zależności
funkcyjnej w S ma tylko jeden atrybut,
 element determinujący (lewa strona) każdej
zależności funkcyjnej w S jest nieredukowalny, nie
można pominąć żadnego atrybutu z elementu
determinującego bez wpływu na S+ - taka
zależność jest lewostronnie nieredukowalna,
 nie można usunąć żadnej zależności funkcyjnej z S
bez zmiany domknięcia S+.

PRZYKŁAD - PRZEDMIOTY
PRZYKŁADY ANOMALII
Przedmiot
IdPrac
NamePrac
IdStud
NameStud
Ocena
Rodzaj
Oceny
Bazy danych
12
Boltuc
23123
Kowalski
5
Lab
Bazy danych
12
Boltuc
23123
Kowalski
4
Wyk
Bazy danych
12
Boltuc
23456
Iksinski
3
Lab
Bazy danych
12
Boltuc
23678
Nowak
3
Lab
Bazy danych
12
Boltuc
23678
Nowak
4
Wyk
Metody optymalizacji
12
Boltuc
23123
Kowalski
4.5
Lab
Metody optymalizacji
12
Boltuc
23123
Kowalski
2
Lab
Programowanie w Javie
4
Korniłowicz
23190
Podolski
3
Wyk

Anomalie przy usuwaniu– usuwając studenta
występującego w tabeli tylko raz powoduje utratę
danych o przedmiocie i wykładowcy,

Anomalie przy modyfikacji – chcąc zmienić
wykładowcę danego przedmiotu zmieniamy nie
tylko jego nazwisko, ale i numer,

Anomalie przy wstawianiu – nie można dodać
nowego studenta dopóki nie będzie posiadał co
najmniej jednego zaliczenia.
3
2010-11-22
NORMALIZACJA
CECHY NORMALIZACJI
Własność zachowania atrybutów - żaden atrybut
nie zostanie zagubiony w trakcie procesu
normalizacji.
 Własność zachowania informacji - dekompozycja
relacji nie prowadzi do utraty informacji, tj. łącząc
zdekomponowane relacje możemy odtworzyć
oryginalną relację.
 Własność zachowania zależności - wszystkie
zależności funkcyjne są reprezentowane w
pojedynczych schematach relacji.

Jest procesem identyfikowania logicznych związków
między elementami danych i projektowania bazy
danych, która będzie reprezentować takie związki, ale
bez występowania anomalii.
Proces normalizacji relacji można traktować jako
proces, podczas którego schematy relacji
posiadające pewne niepożądane cechy są
dekomponowane na mniejsze schematy relacji o
pożądanych własnościach
ETAPY NORMALIZACJI





Zbieranie zbioru danych,
Przekształcenie zbioru danych w tabele w pierwszej
postaci normalnej,
Przekształcenie tabeli z pierwszej postaci normalnej w
drugą postać normalną,
Przekształcenie tabeli z drugiej postaci normalnej w
trzecią postać normalną,
Jeśli nadal występują anomalie dokonaj:
Przekształcenie tabeli z trzeciej postaci normalnej
w postać normalną Boyce’a-Codda,
Przekształcenie tabeli z trzeciej postaci normalnej
w czwartą postać normalną,
Przekształcenie tabeli z czwartej postaci
normalnej w piątą postać normalną.
DEKOMPOZYCJA ODWRACALNA

Proces przekształcenia nieznormalizowanego
zbioru danych w pełni znormalizowana bazę
danych nazywamy procesem dekompozycji
odwracalnej,

Polega to na podziale w każdym kroku struktury
danych na coraz więcej tabel bez straty
podstawowych związków zachodzących pomiędzy
elementami danych.
4
2010-11-22
ROZKŁAD STRATNY I BEZSTRATNY
Firma
Status
Miasto
A
prywatna
Białystok
B
prywatna
Warszawa
ROZKŁAD BEZSTRATNY


Firma
Status
Firma
Miasto
A
prywatna
A
Białystok
B
prywatna
B
Warszawa
Firma
Status
Status
Miasto
A
prywatna
prywatna
Białystok
B
prywatna
prywatna
Warszawa
PIERWSZA POSTAĆ NORMALNA 1NF

Relacja występuje w pierwszej postaci normalnej
1NF wtedy i tylko wtedy, gdy wszystkie jej dziedziny
zawierają wyłącznie wartości skalarne (atrybuty
maja atomowe wartości).

Relacja występuje w pierwszej postaci normalnej
1NF wtedy i tylko wtedy, gdy każdy atrybut
niekluczowy jest funkcyjnie zależny od klucza
głównego.
Proces rozkładu jest procesem rzutowania,
Operatorem ponownego składania jest złączenie
naturalne względem atrybutów o tej samej nazwie.
Twierdzenie Heatha
Niech R będzie relacją, zaś A, B i C zbiorami
atrybutów. Jeśli R spełnia zależność funkcyjną
A B, wówczas relacja R jest równa złączeniu swoich
rzutów (A, B) i (A, C).
1NF

Niektóre atrybuty posiadają wiele wartości,
np. IdStud, NameStud, Ocena i RodzajOceny
powtarzaja się względem Przedmiotu,

Wymienione atrybuty nie są funkcyjnie zależne od
klucza głównego (Przedmiot),

Atrybuty IdPrac i NamePrac są funkcyjnie zależne,

Należy utworzyć dwie tabele dla funkcyjnie
zależnych i niezależnych atrybutów.
5
2010-11-22
1NF - PROPOZYCJA PODZIAŁU
DRUGA POSTAĆ NORMALNA 2NF
Oceny
Przedmiot
IdStud
NameStud
Ocena
Rodzaj
Oceny
Bazy danych
23123
Kowalski
5
Lab
Bazy danych
23123
Kowalski
4
Wyk
Bazy danych
23456
Iksinski
3
Lab
Bazy danych
23678
Nowak
3
Lab
Bazy danych
23678
Nowak
4
Wyk
Metody optymalizacji
23123
Kowalski
4.5
Lab
Metody optymalizacji
23123
Kowalski
2
Lab
Programowanie w Javie
23190
Podolski
3
Wyk
Przedmioty
Przedmiot
IdPrac
NamePrac
Bazy danych
12
Boltuc
Metody optymalizacji
12
Boltuc
Programowanie w Javie
4
Kornilowicz
2NF




Należy zbadać tabele, które mają klucze złożone i
usuwać zależności od części klucza,
Tabela Oceny ma klucz złożony (Przedmiot, IdStud
i RodzajOceny),
Potrzebujemy całego klucza aby zidentyfikować
ocenę, ale Przedmiot nie ma wpływu na NameStud,
które jest definiowane przez IdStud,
Rozdzielamy determinujące i zależne elementy na
dwie tabele.

Relacja występuje w drugiej postaci normalnej 2NF
wtedy i tylko wtedy, gdy jest w 1NF oraz każdy
niekluczowy atrybut jest w pełni funkcyjnie zależny
od klucza głównego (całego a nie jego części).

Relacja ma druga postać normalna wtedy i tylko
wtedy, gdy jest juz w 1NF oraz każdy niekluczowy
atrybut jest nieredukowalnie zależny od klucza
głównego (przy założeniu, ze istnieje jeden klucz
kandydujący będący kluczem głównym).
2NF – PRZYKŁAD PODZIAŁU
Oceny
Przedmiot
IdStud
Ocena
Rodzaj
Oceny
Bazy danych
23123
5
Lab
Bazy danych
23123
4
Wyk
Bazy danych
23456
3
Lab
Bazy danych
23678
3
Lab
Bazy danych
23678
4
Wyk
Metody optymalizacji
23123
4.5
Lab
Metody optymalizacji
23123
2
Lab
Programowanie w Javie
23190
3
Wyk
Studenci
Przedmioty
Przedmiot
IdPrac
NamePrac
Bazy danych
12
Boltuc
Metody optymalizacji
12
Boltuc
Programowanie w Javie
4
Kornilowicz
IdStud
NameStud
23123
Kowalski
23456
Iksinski
23678
Nowak
23190
Podolski
6
2010-11-22
TRZECIA POSTAĆ NORMALNA 3NF
3NF
Należy usuwać zależności przechodnie między
danymi,
 Dla każdej pary niekluczowych elementów każdej
tablicy zadajemy pytanie czy wartość pola A zależy
od wartości pola B lub odwrotnie, jeśli tak to
powiązane elementy przenoszone są do innej
tabeli,
 IdPrac determinuje NamePrac, stąd NamePrac nie
jest przechodnio zależny od Przedmiotu.


Relacja występuje w trzeciej postaci normalnej 3NF,
wtedy i tylko wtedy, gdy jest w 2NF oraz każdy
niekluczowy atrybut jest bezpośrednio zależny (a
nie przechodnio zależny) od klucza głównego.
3NF – PRZYKŁAD PODZIAŁU
Oceny
POSTAĆ NORMALNA BOYCE’A-CODDA BCNF
Studenci
Przedmiot
IdStud
Ocena
Rodzaj
Oceny
IdStud
NameStud
Bazy danych
23123
5
Lab
23123
Kowalski
Bazy danych
23123
4
Wyk
23456
Iksinski
Bazy danych
23456
3
Lab
23678
Nowak
23190
Podolski
Bazy danych
23678
3
Lab
Bazy danych
23678
4
Wyk
Metody optymalizacji
23123
4.5
Lab
Metody optymalizacji
23123
2
Lab
Programowanie w Javie
23190
3
Wyk

Postać normalna Boyce’a-Codda jest silniejsza postacią
normalną niż 3NF i ma na celu wyeliminowanie anomalii
powstających w sytuacji istnienia kilku kluczy
kandydujących w pewnym zbiorze wymagań
dotyczących danych.

Relacja znajduje się w postaci BCNF wtedy i tylko
wtedy, gdy jedynymi elementami determinującymi są
klucze kandydujące.

Relacja ma postać BCNF wtedy i tylko wtedy, gdy
elementem determinującym każdej nietrywialnej,
lewostronnie nieredukowalnej zależności funkcyjnej jest
klucz kandydujący.
Wykładowcy
Przedmioty
Przedmiot
IdPrac
IdPrac
NamePrac
Bazy danych
12
12
Boltuc
Metody optymalizacji
12
4
Kornilowicz
Programowanie w Javie
4
7
2010-11-22
BCNF – PRZYKŁAD PODZIAŁU
BCNF


Schemat w 3NF dla zagadnienia ścieżek
edukacyjnych
IdStud
Ścieżka
23123
Informatyka stosowana
23456
Informatyka teoretyczna
IdStud
Ścieżka
IdPrac
23123
Inżynieria oprogramowania
23123
Informatyka stosowana
12
23456
Grafika komputerowa
23456
Informatyka teoretyczna
2
23190
Informatyka w medycynie
23123
Inżynieria oprogramowania
4
23456
Grafika komputerowa
5
23190
Informatyka w medycynie
8
IdPrac
Ścieżka
12
Informatyka stosowana
2
Informatyka teoretyczna
4
Inżynieria oprogramowania
5
Grafika komputerowa
8
Informatyka w medycynie
Anomalie: aktualizacji, wstawiania, usuwania –
spowodowane nakładającymi się kluczami
kandydującymi.
ZALEŻNOŚCI NIEFUNKCYJNE (WIELOWARTOŚCIOWE)
Element danych B jest niefunkcyjnie zależny od
elementu danych A, jeżeli dla każdej wartości
elementu danych A istnieje ograniczony zbiór
wartości elementu danych B.
 Odwzorowanie nie jest funkcyjne, gdyż jest jeden
do wielu.
 Niech R będzie relacja, zaś A,B i C będa dowolnymi
podzbiorami zbioru atrybutów R. Mówimy, ze B jest
wielowartościowo zależne od A A B wtedy i tylko
wtedy, gdy zbiór wartości B odpowiadający danej
parze (A,C) w R zależy od wartości A i jest
niezależny od wartości C.
 Przykład: IdPrac
Język, Przedmiot Podręcznik
CZWARTA POSTAĆ NORMALNA 4NF


Relacja jest w 4NF jeżeli jest w postaci BCNF i
wszystkie zależności wielowartościowe są
zależnościami funkcyjnymi wychodzącymi z kluczy
kandydujących.
8
2010-11-22
4NF – PRZYKŁAD PODZIAŁU
IdPrac
Umiejętność
Język
12
programowanie
ang
12
programowanie
niem
12
projektowanie
ang
4
programowanie
fr
4
projektowanie
niem
8
programowanie
ang
IdPrac
Umiejętność
IdPrac
Język
12
programowanie
12
ang
12
programowanie
12
niem
12
projektowanie
12
ang
4
programowanie
4
fr
4
projektowanie
4
niem
8
programowanie
8
ang
PIĄTA POSTAĆ NORMALNA 5NF


Relacja jest w 5NF jeżeli jest w postaci 4NF i nie
posiada już anomalii, które można by usunąć przy
pomocy rzutowania.
ZALEŻNOŚĆ ZŁĄCZENIA
Niech R będzie relacją, zaś A,B,..., Z będą
dowolnymi podzbiorami zbioru atrybutów R. Mówimy,
że R spełnia zależność łączenia:
*(A, B, ..., Z)
wtedy i tylko wtedy, gdy R jest równe złączeniu
swoich rzutów na A,B, ..., Z,

Zależnościami złączenia nazywamy powiązane
między sobą zależności wielowartościowe,


Przykłady: *(dealer, marka, rodzaj_pojazdu).
5NF - PRZYKŁAD
Dealer
Marka
Rodzaj_samochodu
A
Ford
osobowy
A
Fiat
dostawczy
B
Ford
dostawczy
B
Fiat
osobowy
Relacja jest w 5NF jeżeli jest w postaci 4NF i nie
istnieje jej rozkład odwracalny na zbiór mniejszych
tabel.
9
2010-11-22
W YKŁAD PRZYGOTOWANO NA PODSTAWIE
P. Beynon-Davies, Systemy baz danych, WNT,
2003,
 C. J. Date, Wprowadzenie do systemów baz
danych, WNT, Warszawa, 2000,
 http://wazniak.mimuw.edu.pl/index.php?title=Bazy_
danych.

10