Wykład 2

Transkrypt

Wykład 2
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
Stępień
Stępień
Stępień
Stępień
Stępień
NrStu
12345
12346
12347
12348
12348
NazwStu Ocena TypO
Ącki
5
zal
Ęcki
4
zal
Łącki
3
zal
Łęcki
4
zal
Łęcki
2
egz
Kowalski
12345 Ącki
3
zal
Stępień
Nowak
12346 Ęcki
12345 Ącki
4
2
zal
egz
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