Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałTytus Skarbek Został zmieniony 11 lat temu
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 AB, BC, zatem AC). 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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.