Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Bazy danych 7. Postaci normalne P. F. Góra semestr letni 2004/05

Podobne prezentacje


Prezentacja na temat: "Bazy danych 7. Postaci normalne P. F. Góra semestr letni 2004/05"— Zapis prezentacji:

1 Bazy danych 7. Postaci normalne P. F. Góra semestr letni 2004/05
semestr letni 2004/05

2 Cel normalizacji – unikanie anomalii
Rodzaje anomalii Redundancja Anomalie modyfikacji Anomalie usuwania Te same dane niepotrzebnie powtarzają się w kilku krotkach Wartość tej samej danej zostanie zmodyfikowana w jednej krotce, w innej zaś nie. Która wartość jest wówczas poprawna? Utrata części danych, gdy dla pewnego atrybutu zacznie obowiązywać wartość pusta (null) Odwrotność: anomalie dołączania Bazy danych - wykład 7

3 Pierwsza postać normalna:
Tabele zawierają wyłącznie dane atomowe. Każda tabela ma klucz. Zakaz duplikowania wierszy. Tabela jest zbiorem wierszy. Bazy danych - wykład 7

4 Problem: Jednemu numerowi zamówienia odpowiada zbiór identyfikatorów części
Bazy danych - wykład 7

5 Tabela w 1PN — „podzielone” niektóre wiersze.
Bazy danych - wykład 7

6 Jest w 1PN — podzielone niektóre kolumny
Nie jest w 1PN Jest w 1PN — podzielone niektóre kolumny Bazy danych - wykład 7

7 Druga postać normalna:
Tabela jest w 1PN. Każdy atrybut niekluczowy zależy funkcyjnie od pełnego klucza. Od pełnego klucza, a nie tylko od podzbioru właściwego klucza. Każda tabela, której wszystkie klucze są jednokolumnowe, jest w 2PN. Kontynuujemy konsumpcję płazów  Bazy danych - wykład 7

8 Redundancja: adres Seagate w czterech (sic!) krotkach.
Nie jest w 2PN: nazwa dostawcy  adres, id dostawcy; nazwa części  id części Anomalie: Redundancja: adres Seagate w czterech (sic!) krotkach. Anomalia modyfikacji: Jeśli Seagate zmieni siedzibę, czy na pewno poprawimy to we wszystkich miejscach? Anomalia usuwania: Jeśli usuniemy zamówienie nr 002, stracimy informacjęo siedzibie Toshiby. Anomalia dołączania: Nie da się dołączyć nowej firmy, dopóki nie złożymy w niej zamówienia. Bazy danych - wykład 7

9 Czy to aby na pewno jest w 2PN?!
Sprowadzenie do 2PN: podział tabeli Czy to aby na pewno jest w 2PN?! Bazy danych - wykład 7

10 Trzecia postać normalna:
Tabela jest w 2PN. Jeśli A1A2…An  B, to albo {A1,A2,…,An} jest nadkluczem, albo B jest elementem pewnego klucza. Dotyczy tylko zależności nietrywialnych! Bazy danych - wykład 7

11 Trzecia postać normalna jest postacią najczęściej występującą w praktyce.
Istnieją specjalne algorytmy i specjalne narzędzia CASE do „przeprojektowywania” bazy do 3PN. W specjalistycznych zastosowaniach (np. hurtownie danych) niekiedy korzystnie jest pozostawić bazę w 2PN lub nawet 1PN. Bazy danych - wykład 7

12 Przykład: Tabela z trzema atrybutami i zależnościami kino  miasto
Często mówi się, żę 3PN wyklucza zależności przechodnie (typu AB, BC, zatem AC). Jeśli jednak C jest elementem klucza (być może obejmującego jakieś atrybuty A), to dalej jest 3PN. Przykład: Tabela z trzema atrybutami i zależnościami kino  miasto tytuł miasto  kino Kluczem jest {tytuł, miasto}. Innym kluczem jest {kino, tytuł}. Tabela jest w 3PN: chociaż samo kino nie jest nadkluczem, miasto jest elementem klucza. Bo każde kino jest w jakimś mieście. Bo dystrybutor ogranicza rozpowszechnianie do jednego kina w danym mieście. Zwanego „kluczem kandydującym”. Bazy danych - wykład 7

13 Procedura postępowania:
Dany jest zbiór atrybutów, które chcemy reprezentować, i zbiór zależności funkcyjnych pomiędzy atrybutami. Znajdujemy bazę minimalną (bazy minimalne) zbioru zależności funkcyjnych. Eliminujemy symetryczne zależności funkcyjne. Dla (pewnej) bazy minimalnej sumujemy zależności funkcyjne o takich samych lewych stronach i dla każdej wysumowanej zależności tworzymy tabelę z odpowiednią lewą stroną zależności jako kluczem. Bazy danych - wykład 7

14 Procedura szukania bazy minimalnej:
Każdy atrybut musi występować z lewej lub z prawej strony jednej zależności funkcyjnej w zbiorze. Jeśli jakaś zależność funkcyjna jest włączona do zbioru, nie wszystkie zależności funkcyjne potrzebne do jej wyprowadzenia mogą występować w tym zbiorze. Jeśli jakaś zależność funkcyjna zostaje wyłączona ze bioru, zależności funkcyjne potrzebne do jej wyprowadzenia muszą zostać doń dołączone. Bazy danych - wykład 7

15 Jeśli mamy wiele atrybutów i wiele zależności, normalizacji „ręcznie” przeprowadzić się nie da. Powyższa procedura jest dostosowana do projektowania „od zera”. Jeśli mamy wstępny projekt w ODL lub w postaci diagramu E/R, projektowanie jest znacznie prostsze. Bazy danych - wykład 7

16 Przykład Firma transportowa posiada bazę danych, w której zachodzą następujące zależności funkcyjne: NrRejestracyjny Data  Kierowca NrRejestracyjny Data  Odbiorca Odbiorca  Odległość Kierowca  Stawka Odległość Stawka  Koszt Odbiorca Kierowca  Koszt NrRejestracyjny Data  Koszt Bazy danych - wykład 7

17 (NrRejestracyjny, Data, Kierowca, Odbiorca) (Kierowca, Stawka)
Tabele: (NrRejestracyjny, Data, Kierowca, Odbiorca) (Kierowca, Stawka) (Odbiorca, Odległość) (Odległość, Stawka, Koszt) Bazy danych - wykład 7

18 Postać normalna Boyce’a-Coda (BCNF, PNBC)
Tabela jest w BCNF wtedy i tylko wtedy, gdy dla każdej zależności nietrywialnej A1A2…An  B, zbiór {A1,A2,…,An} jest nadkluczem Bazy danych - wykład 7

19 Zależności wielowartościowe
Zależność wielowartościowa A1A2…An  B1…Bm zachodzi wówczas, gdy wybierając z tabeli te krotki, które mają ustalone wartości typu A, zbiór wartości atrybutów typu B nie zależy od żadnych innych atrybutów, których nie ma ani w A, ani w B. Inaczej: Dla każdej pary krotek (t,u), które mają takie same wartości atrybutów typu A, można znaleźć taką krotkę v, której składowe mają wartości równe: Wartościom atrybutów typu A w ktorkach t, u; Wartościom atrybutów typu B krotki t; Wartościom tych składowych krotki u, które nie są ani typu A, ani typu B. Zależności wielowartościowa nie jest sumą zależności funkcyjnych o takich samych lewych stronach! Bazy danych - wykład 7

20 Czwarta postać normalna:
Jeśli A1A2…An  B1B2…Bm jest nietrywialną zależnością wielowartościową, to {A1,A2,…,An} jest nadkluczem. Istotne zwłaszcza dla tabel pomostowych, opisujących związki wieloargumentowe Bazy danych - wykład 7


Pobierz ppt "Bazy danych 7. Postaci normalne P. F. Góra semestr letni 2004/05"

Podobne prezentacje


Reklamy Google