Wykład 4

Transkrypt

Wykład 4
Normalizacja
Diagramy zależności
dr Lidia Stępień
1
Czy poniższy schemat jest
poprawny?
NazwaModułu
NrPrac
Bazy danych
234
Bazy danych
234
Bazy danych
234
Bazy danych
234
Bazy danych
234
Algorytmy i
struktury danych
166
Algorytmy i
struktury danych
622
Systemy operacyjne 345
NazwPrac NrStu
Nowak
12345
Nowak
12346
Nowak
12347
Nowak
12348
Nowak
12348
NazwStu Ocena TypO
Ącki
5
zal
Ęcki
4
zal
Łącki
3
zal
Łęcki
4
zal
Łęcki
2
egz
Kowalski 12345 Ącki
3
zal
Nowak
Koral
4
2
zal
egz
12346 Ęcki
12345 Ącki
2
WADY
Redundacja
– Anomalie:
● przy wstawianiu
● przy modyfikacji
● przy usuwaniu
–
3
Etapy normalizacji
●
●
Zbierz zbiór danych.
Przekształć nieznormalizowany zbiór danych w tabele
w 1PN.
●
Przekształć tabele z 1PN w 2PN.
●
Przekształć tabele z 2PN w 3PN.
Jeśli w tabelach w 3 PN zidentyfikujesz jeszcze
anomalie, to:
●
Przekształć tabele z 3PN w 4PN.
●
Przekształć tabele z 4PN w 5PN.
4
Związek zależności lub
determinowania
●
●
Związek logiczny między elementami danych.
Mówimy, że dwa elementy danych A i B są w
związku
zależności
lub
w
związku
determinowania,
jeżeli
pewne
wartości
elementu danych B zawsze występują z
pewnymi wartościami elementu A.
5
Kierunek zależności
●
●
Zależność (determinowanie) między elementami
danych wskazuje kierunek w związku.
Jeżeli element danych A jest determinującym
elementem danych, a B zależnym elementem
danych, to kierunek związku jest od A do B, a nie
odwrotnie.
AB
6
Typy zależności (determinowania)
●
funkcyjna (jednowartościowa)
Mówimy, że element danych B jest funkcyjnie
zależny od elementu danych A, jeżeli dla każdej
wartości A istnieje jedna, jednoznacznie
określona wartość B.
●
niefunkcyjna (wielowartościowa)
Mówimy, że element danych B jest niefunkcyjnie
zależny od elementu danych A, jeżeli dla każdej
wartości A istnieje ograniczony zbiór wartości B.
7
Zależność funkcyjna
●
●
●
AB
A jest elementem determinującym.
B jest elementem zależnym.
Przykład
NrPracownika  NazwiskoPracownika
PESEL  Nazwisko
8
Postacie normalne
●
Relacja jest w 1PN wtw każdy atrybut niekluczowy
jest funkcyjnie zależny od klucza głównego.
●
Relacja jest w 2PN wtw jest w 1PN i każdy atrybut
niekluczowy jest w pełni funkcyjnie zależny od
klucza głównego.
●
Relacja jest w 3PN wtw jest w 2PN i każdy atrybut
niekluczowy jest bezpośrednio zależny od klucza
głównego.
9
Proces normalizacji
●
●
●
Jest odwracalny.
Wymaga podania pełnego zbioru danych.
Dla dużego zbioru jest:
bardzo czasochłonny,
– trudny do zastosowania,
– Podatny na błędy popełnione przez
człowieka.
–
10
Tabela nieznormalizowana
NazwaModułu
NrPrac
Bazy danych
234
Bazy danych
234
Bazy danych
234
Bazy danych
234
Bazy danych
234
Algorytmy i
struktury danych
166
Algorytmy i
struktury danych
622
Systemy operacyjne 345
NazwPrac NrStu
Nowak
12345
Nowak
12346
Nowak
12347
Nowak
12348
Nowak
12348
NazwStu Ocena TypO
Ącki
5
zal
Ęcki
4
zal
Łącki
3
zal
Łęcki
4
zal
Łęcki
2
egz
Kowalski 12345 Ącki
3
zal
Nowak
Koral
4
2
zal
egz
12346 Ęcki
12345 Ącki
T1(NazwaModułu, NrPrac, NazwPrac, NrStu, NazwStu, Ocena, TypO);
11
1PN
Tabelę T1 dzielimy na dwie tabele:
●
z zależnymi atrybutami T1 i
●
niezależnymi.
T1(NazwaModułu, NrPrac, NazwPrac);
T2(NazwaModułu, NrStudenta, NazwStu, Ocena, Typoceny);
12
2PN
Tabelę T2 dzielimy na dwie tabele:
● z atrybutami w pełni zależnymi i
● atrybutami zależnymi od części klucza głównego.
T1(NazwaModułu, NrPrac, NazwPrac);
T2(NazwaModułu, NrStudenta, Ocena, Typoceny);
T3(NrStudenta, NazwStu);
13
3PN
Tabelę T1 dzielimy na dwie tabele:
● z atrybutami bezpośrednio zależnymi i
● atrybutami przechodnio zależnymi.
T1(NazwaModułu, NrPrac);
T4(NrPrac, NazwPrac);
T2(NazwaModułu, NrStudenta, Ocena, Typoceny);
T3(NrStudenta, NazwStu);
14
Przysięga normalizacji
1.Bez powtórzeń.
2.Pola zależą od klucza głównego.
3.Od całego klucza.
4.I niczego innego, tylko klucza.
15
Diagramy zależności
●
●
●
Pozwalają na przyrostowe projektowanie bazy
danych.
Używają elementów graficznych: owali i strzałek
reprezentujących zarówno zależności funkcyjne,
jak i niefunkcyjne (wielowartościowe).
Akomodacja diagramu zależności dostarcza
schematu bazy danych.
16
Reprezentacja zależności
●
funkcyjnej
●
wielowartościowej (niefunkcyjnej)
17
Zależności
●
Przechodnia
18
Zależności
●
Złożona
19
Akomodacja
●
Każdy funkcyjnie determinujący element
staje się kluczem głównym tabeli.
●
Wszystkie bezpośrednio zależne od niego
elementy danych stają się niegłównymi
atrybutami (kolumnami).
20
Rysowanie ramek
21
4 postać normalna (4PN)
12
10
8
Kolumna 1
Kolumna 2
Kolumna 3
6
4
2
0
Wiersz 1
Wiersz 2
Wiersz 3
Wiersz 4
22
Akomodacja zależności
niefunkcyjnych
Każdy niefunkcyjny determinujący element
staje się częścią klucza głównego tabeli.
Język (NrPrac, Język)
Język
23
5 postać normalna (5PN)
24
PRZYKŁADY
Dany jest schemat relacji
R = { Makler, Biuro, Akcjonariusz, Kapitał, Akcje, Dywidenda}
ze zbiorem zależności funkcyjnych:
Kapitał ® Dywidenda
Akcjonariusz ® Makler
Akcjonariusz, Kapitał ® Akcje
Makler ® Biuro
Czy zachodzi zależność funkcyjna:
Akcjonariusz, Dywidenda ® Biuro?
Ponieważ mamy zależność:
Akcjonariusz ® Makler
oraz
Makler ® Biuro
Przechodnio mamy zatem do czynienia z zależnością
Akcjonariusz ® Biuro
A zatem istnieje zależność
Akcjonariusz, Dywidenda ® Biuro
W której postaci normalnej jest podany
schemat?
Ponieważ w schemacie R
każda z wymienionych
zależności jest funkcyjna,
to schemat R jest w 1PN.
Znajdź klucz główny (podstawowy)
●
●
Klucz to minimalny zbiór atrybutów, których
wartości jednoznacznie determinują wartość
każdego innego atrybutu.
Aby wyznaczyć klucz główny:
sprawdzamy, których atrybutów nie ma po prawej
stronie żadnej z zależności funkcyjnych;
sprawdzamy, czy wartości tych atrybutów
jednoznacznie determinują wartość każdego
innego atrybutu.
W której postaci normalnej jest
podany schemat?
Ponieważ
Makler ® Biuro
a
Akcjonariusz ® Makler
jest zależnością przechodnią
Akcjonariusz ® Makler ® Biuro
to schemat R nie jest w 3PN.
W której postaci normalnej jest
podany schemat?
Ponieważ
Akcjonariusz ® Makler
a kluczem głównym jest
Akcjonariusz, Kapitał
czyli
Makler zależy funkcyjne tylko od części klucza głównego
to schemat R nie jest w 2PN.
Przekształć schemat R do 3PN
Metoda eliminowania „złych” zależności polega
na wprowadzeniu dla zależności (częściowej
lub przechodniej) osobnej relacji i usunięciu
atrybutu
stojącego
po
prawej
stronie
zależności z oryginalnego schematu.
tej
Przekształć schemat R do 3PN
W schemacie R występują trzy „złe” zależności:
Kapitał ® Dywidenda
zależność częściowa
Akcjonariusz ® Makler
zależność częściowa
Makler ® Biuro
zależność przechodnia
Kapitał ® Dywidenda
Ze schematu
R = { Makler, Biuro, Akcjonariusz, Kapitał, Akcje, Dywidenda}
usuwamy atrybut Dywidenda i wprowadzamy dla zależności
częściowej osobną relację.
R = { Makler, Biuro, Akcjonariusz, Kapitał, Akcje}
R1 = { Kapitał, Dywidenda}
Makler ® Biuro
Ze schematu
R = {Makler, Biuro, Akcjonariusz, Kapitał, Akcje}
usuwamy atrybut Biuro i wprowadzamy dla zależności
przechodniej osobną relację.
R = {Makler, Akcjonariusz, Kapitał, Akcje}
R2 = {Makler, Biuro}
Akcjonariusz ® Makler
Ze schematu
R = { Makler, Akcjonariusz, Kapitał, Akcje}
usuwamy atrybut Makler i wprowadzamy dla zależności
częściowej osobną relację.
R = {Akcjonariusz, Kapitał, Akcje}
R3 = { Akcjonariusz, Makler}
Schemat bazy danych w 3PN
R = {Akcjonariusz, Kapitał, Akcje}
R1 = {Kapitał, Dywidenda}
R2 = {Makler, Biuro}
R3 = {Akcjonariusz, Makler}

Podobne dokumenty