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. AB 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 ● ● ● AB 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}