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}