Normalizacja. Pojęcie klucza. Cel normalizacji

Podobne dokumenty
Cel normalizacji. Tadeusz Pankowski

Pojęcie zależności funkcyjnej

Systemy baz danych. Notatki z wykładu

PLAN WYKŁADU BAZY DANYCH ZALEŻNOŚCI FUNKCYJNE

Normalizacja relacyjnych baz danych. Sebastian Ernst

Tadeusz Pankowski Definicja. Definicja

Technologie baz danych

Bazy danych 3. Normalizacja baz danych

Jak wiernie odzwierciedlić świat i zachować występujące w nim zależności? Jak implementacja fizyczna zmienia model logiczny?

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Bazy Danych i Usługi Sieciowe

Zależności funkcyjne

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Bazy danych 2. Zależności funkcyjne Normalizacja baz danych

Pożyczkobiorcy. Anomalia modyfikacji: Anomalia usuwania: Konta_pożyczkowe. Anomalia wstawiania: Przykłady anomalii. Pożyczki.

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

KaŜdemu atrybutowi A przyporządkowana jest dziedzina Dom(A), czyli zbiór dopuszczalnych wartości.

Bazy danych. Andrzej Łachwa, UJ, /15

Normalizacja baz danych

BAZY DANYCH. Anomalie. Rozkład relacji i normalizacja. Wady redundancji

Bazy danych i usługi sieciowe

Bazy danych 3. Normalizacja baz danych (c.d.)

PODSTAWY BAZ DANYCH 2009/ / Notatki do wykładu "Podstawy baz danych"

Projektowanie Systemów Informacyjnych

Zależności funkcyjne pierwotne i wtórne

Projektowanie relacyjnych baz danych

Bazy danych Teoria projektowania relacyjnych baz danych. Wykła. Wykład dla studentów matematyki

Pierwsza postać normalna

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Wykład II Encja, atrybuty, klucze Związki encji. Opracowano na podstawie: Podstawowy Wykład z Systemów Baz Danych, J.D.Ullman, J.

Relacyjny model baz danych, model związków encji, normalizacje

Zależności funkcyjne c.d.

Normalizacja relacji

Bazy danych. Algebra relacji

BAZY DANYCH model relacyjny. Opracował: dr inż. Piotr Suchomski

Normalizacja schematów logicznych relacji

Pierwsza postać normalna

Relacyjne bazy danych. Normalizacja i problem nadmierności danych.

Relacyjne Bazy Danych Andrzej M. Borzyszkowski. Projekt bazy danych normalizacja. PJATK/ Gdańsk. Dwie metodologie. Formalne zasady projektowe

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

BAZY DANYCH NORMALIZACJA BAZ DANYCH. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

1 Przygotował: mgr inż. Maciej Lasota

Wykład 2. Relacyjny model danych

Relacyjny model danych

1 Wstęp do modelu relacyjnego

Bazy danych 3. Zależności funkcyjne Normalizacja relacyjnych baz danych

Plan wykładu. Problemy w bazie danych. Problemy w bazie danych BAZY DANYCH. Problemy w bazie danych Przykład sprowadzenia nieznormalizowanej SQL

Autor: Joanna Karwowska

Związki pomiędzy tabelami

Technologia informacyjna

BAZY DANYCH NORMALIZACJA BAZ DANYCH. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Bazy danych. Andrzej Łachwa, UJ, /15

Technologia Informacyjna

Model relacyjny. Wykład II

Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych.

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

Haszowanie (adresowanie rozpraszające, mieszające)

BAZA DANYCH. Informatyka. ZESPÓŁ SZKÓŁ ELEKTRYCZNYCH Prowadzący: inż. Marek Genge

Baza danych. Baza danych to:

PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

Transformacja modelu ER do modelu relacyjnego

BAZY DANYCH model związków encji. Opracował: dr inż. Piotr Suchomski

Przykłady normalizacji

- Przedmiot kończy się egzaminem - Egzamin ma formę testu teoretycznego

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

Bazy Danych. Projektowanie. Normalizacja. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Bazy danych 6. Przykłady

Model relacyjny bazy danych

Postać normalna Boyce-Codd (BCNF)

Normalizacja baz danych

Księgarnia PWN: Michael J. Hernandez Bazy danych dla zwykłych śmiertelników

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

Normalizacja schematów relacji

Literatura. Bazy danych s.1-1

Konstruowanie Baz Danych Wprowadzenie do projektowania. Normalizacja

PLAN WYKŁADU BAZY DANYCH GŁÓWNE ETAPY PROJEKTOWANIA BAZY MODELOWANIE LOGICZNE

2017/2018 WGGiOS AGH. LibreOffice Base

Zadanie 1. Suma silni (11 pkt)

Modelowanie konceptualne model EER

Bazy Danych i Usługi Sieciowe

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Dazy Banych. Michał Rusnarczyk

Normalizacja Projektowanie Diagramy encji. Bazy Danych i Systemy informacyjne Wykład 7. Piotr Syga

Projektowanie baz danych

Normalizacja tabel POSTACIE NORMALNE TABEL

Normalizacja schematu bazy danych. Radosław Fijołek Paweł Romanowski Paweł Trzos

Bazy danych Wykład zerowy. P. F. Góra

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

Bazy danych wykład trzeci. trzeci Modelowanie schematu bazy danych 1 / 40

S y s t e m y. B a z D a n y c h

Autor: Joanna Karwowska

Plan wykładu: Relacyjny model danych: opis modelu, podstawowe pojęcia, ograniczenia, więzy.

Model relacyjny. Wykład II

Baza danych. Modele danych

TRANSFORMACJA MODELU ER DO MODELU RELACYJNEGO

Bazy danych 2. Algebra relacji Zależności funkcyjne

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Transkrypt:

Plan Normalizacja Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski 1. Cel normalizacji. 2. Klucze schematów relacyjnych atrybuty kluczowe i niekluczowe. 3. 2PN druga postać normalna. 4. 3PN trzecia postać normalna. 5. PNBC postać normalna Boyce a-codda 6. Podsumowanie T. Pankowski, Normalizacja 1 T. Pankowski, Normalizacja 2 Cel normalizacji 1. Normalizacja jest jednym z etapów projektowania schematu relacyjnej bazy danych. 2. Celem projektowania schematów relacyjnych jest wyeliminowanie redundancji i anomalii. 3. Redundancja oznacza wielokrotne pamiętanie tych samych danych. Redundancja jest najczęściej niepożądane i szkodliwa, choć niekiedy może być uzasadniona. 4. Anomalie (wady): anomalia dołączania nie można dołączyć krotki, gdyż obok jednego rodzaju danych muszą być w niej umieszczone inne dane, których jeszcze nie znamy anomalia aktualizacji dane zmieniane są w jednym miejscu, ale w innych pozostają w poprzedniej postaci (związek z redundancją) anomalia usuwania usunięcie krotki powoduje niepożądaną usunięcie istotnych danych innego rodzaju Pojęcie klucza a) od klucza K muszą być funkcyjnie zależne wszystkie atrybuty relacji, b) K musi być minimalny, tzn. żaden jego właściwy podzbiór nie może mieć właściwości identyfikowalności, c) każdy zbiór K o właściwościach a) i b) nazywany jest często kluczem kandydującym, spośród takich kluczy wybieramy klucz główny (ang. primary key). T. Pankowski, Normalizacja 3 T. Pankowski, Normalizacja 4

Właściwości klucza głównegog 1. Minimalna liczba atrybutów 2. Żaden z atrybutów nie może przyjmować wartości pustej (NULL) Przykład: W relacji (tabeli) Osoba(, Imię, DataUr, Pesel, Nip, ), kluczami kandydującymi są: {, Imię, DataUr} {Pesel}, (11 znaków, np. 81031654323) {Nip}, (13 znaków, np. 782-234-12-78) Jako klucz główny można wybrać Pesel (krótsza wartość niż Nip). Lepiej utworzyć dodatkowy atrybut o jednoznacznych wartościach lokalnie (np. w danej firmie) IdOs. Ostatecznie więc: Osoba(IdOs,, Imię, DataUr, Pesel, Nip, ) Atrybuty kluczowe i niekluczowe 1. Atrybuty należące do któregoś z kluczy (kandydujących) nazywamy atrybutami kluczowymi. 2. Atrybuty, które nie należą do żadnego klucza nazywamy atrybutami niekluczowymi. 3. Atrybuty należące do klucza głównego są często podkreślane. 4. Podstawą normalizacji jest analiza zależności funkcyjnych między atrybutami kluczowymi a niekluczowymi, a także zależności między atrybutami niekluczowymi. Wynik tej analizy uwzględnia się w procesie normalizacji. T. Pankowski, Normalizacja 5 T. Pankowski, Normalizacja 6 Druga Postać Normalna 2PN Wady relacji nie będącej b w 2PN Schemat relacyjny, który nie jest w 2PN Egzamin(,,,, ) Egzamin(,,,, ) Klucz główny: {, } Atrybuty kluczowe:, Atrybuty niekluczowe:,, i zależą funkcyjnie od (tj. od części klucz głównego) zależy funkcyjnie od całego klucza głównego. Taka niejednorodność jest źródłem wielu anomalii. T. Pankowski, Normalizacja 7 Anomalia dołączania nie można dołączyć informacji o studencie dopóki nie zda co najmniej jednego egzaminu (atrybut kluczowy nie może być NULL-em). Redundancja pewne informacje ( i ) pamiętane są wielokrotnie, problemy z wprowadzaniem i modyfikacją danych. Anomalia usuwania usunięcie informacji o zdanym egzaminie (np. Nowaka) powoduje usunięcie wszystkich informacji o studencie (jeśli to był jedyny jego egzamin). T. Pankowski, Normalizacja 8

Druga Postać Normalna 2PN Pełna zależność funkcyjna Sprowadzanie do 2PN Egzamin(,,,, ) Definicja 2PN Wniosek: schemat relacyjny, w którym każdy klucz jest jednoelementowy jest w 2PN 9 Jest to rozkład bez straty danych, gdyż jest sterowany zależnością funkcyjną:, (Patrz twierdzenie o rozkładalności!) T. Pankowski, Normalizacja 10 Sprowadzanie do 2PN - algorytm Sprowadzanie do 2PN - przykład Wejście: - schemat relacyjny. Wyjście: Zbiór schematów relacyjnych w 2PN równoważny R. Kroki: 1. Ω = {R = (U,F)}, Γ = 2. Czy Ω jest pusty? Tak koniec algorytmu, każdy schemat relacyjny w Γ jest w 2PN. Nie przejdź do (3) 3. Weź dowolny schemat R = (U,F) z Ω. 4. Czy istnieje niepełna zależność funkcyjna X A F (naruszenie warunku 2PN!). Tak przejdź do (5) Nie usuń R z Ω i dołącz do Γ 5. Rozłóż R na dwie projekcje: R 1 =(X +, F 1 ) i R 2 = ((U X + ) X, F 2 ), X + U - zbiór wszystkich atrybutów zależnych od X, F 1 zawiera wszystkie te ZF ze zbioru F +, których atrybuty zawarte są w X +. Podobnie dla F 2. 6. Przejdź do (2). X A F niepełna zależność funkcyjna R 1 =(X +, F 1 ) i R 2 = ((U X + ) X, F 2 ), X = {}, X + = {,, } T. Pankowski, Normalizacja 12

Sprowadzanie do 2PN - uwagi Wady relacji w 2PN brak 3PN Schemat relacyjny, którego każdy klucz jest jednoelementowy jest w 2PN. Proces sprowadzania do 2PN nie jest jednoznaczny dla jednego schematu może istnieć wiele równoważnych informacyjnie układów projekcji tego schematu w 2PN. Spośród równoważnych układów schematów relacyjnych w 2PN w zasadzie wybieramy ten, który ma najmniejszą liczbę elementów. Student jest w 2PN (klucz 1-elementowy), ale występuje redundancja (kolumna Województwo) i anomalie. Przyczyna - zależność funkcyjna od atrybutu niekluczowego: Miasto Województwo T. Pankowski, Normalizacja 13 T. Pankowski, Normalizacja 14 Wady relacji w 2PN brak 3PN Tranzytywne zależno ności funkcyjne Zależności funkcyjne:,,, Wykonawca jest w 2PN (klucz 1-elementowy), ale występuje redundancja (kolumna ) i anomalie. Przyczyna - zależność funkcyjna od atrybutu niekluczowego: Np. Nie można wprowadzić danych o koszcie projektu dopóki nie zostanie określony co najmniej jeden jego wykonawca. K X A Uwaga: Jeśli A jest tranzytywnie zależny od K, to oczywiście A jest zależny od K również w zwykłym sensie. Tutaj podkreślamy jedynie, że istnieje wówczas pośredniczący zbiór X. T. Pankowski, Normalizacja 15 T. Pankowski, Normalizacja 16

Definicja 3PN Sprowadzanie do 3PN Wykonawca(,,,, ) Właściwość: Schemat relacyjny R = (U,F) jest w 3PN, w.i t.w. gdy dla każdej zależności X A F + zachodzi jeden z poniższych warunków: A X (zależność trywialna), albo X jest nadkluczem (zawiera klucz), albo A jest atrybutem kluczowym. Jest to rozkład bez straty danych, gdyż jest sterowany zależnością funkcyjną: (Patrz twierdzenie o rozkładalności!) T. Pankowski, Normalizacja 17 T. Pankowski, Normalizacja 18 Sprowadzanie do 3PN - algorytm Wejście: - schemat relacyjny. Wyjście: Zbiór schematów relacyjnych w 3PN równoważny R. Kroki: 1. Ω = {R = (U,F)}, Γ = 2. Czy Ω jest pusty? Tak koniec algorytmu, każdy schemat relacyjny w Γ jest w 3PN. Nie przejdź do (3) 3. Weź dowolny schemat R = (U,F) z Ω. 4. Czy istnieje tranzytywna zależność funkcyjna X A F (naruszenie warunku 3PN!). Tak przejdź do (5) Nie usuń R z Ω i dołącz do Γ 5. Rozłóż R na dwie projekcje: R 1 =(X +, F 1 ) i R 2 = ((U X + ) X, F 2 ), X + U - zbiór wszystkich atrybutów zależnych od X, F 1 zawiera wszystkie te ZF ze zbioru F +, których atrybuty zawarte są w X +. Podobnie dla F 2. 6. Przejdź do (2). Sprowadzanie do 3PN - przykład Wykonawca(,,,, ) X A F tranzytywna zależność funkcyjna R 1 =(X +, F 1 ) i R 2 = ((U X + ) X, F 2 ), X =, X + = {, } T. Pankowski, Normalizacja 20

PNBC - Postać Normalna Boyce a-codda DEFINICJA Mówimy, że schemat relacyjny jest w PNBC, jeśli dla każdej nietrywialnej zależności X A należącej do F, X jest nadkluczem. nietrywialna oznacza, że A nie należy do X, nadklucz oznacza, że X zawiera klucz (jest superkluczem). Uwaga: Każdy schemat relacyjny w PNBC musi być w 3PN. T. Pankowski, Normalizacja 21 Sprowadzanie do PNBC - algorytm Wejście: - schemat relacyjny. Wyjście: Zbiór schematów relacyjnych w PNBC równoważny R. Kroki: 1. Ω = {R = (U,F)}, Γ = 2. Czy Ω jest pusty? Tak koniec algorytmu, każdy schemat relacyjny w Γ jest w PNBC. Nie przejdź do (3) 3. Weź dowolny schemat R = (U,F) z Ω. 4. Czy istnieje nietrywialna zależność funkcyjna X A F, taka że X + U (X nie jest wtedy nadkluczem, naruszenie warunku PNBC!). Tak przejdź do (5) Nie usuń R z Ω i dołącz do Γ 5. Rozłóż R na dwie projekcje: R 1 =(X +, F 1 ) i R 2 = ((U X + ) X, F 2 ), X + U - zbiór wszystkich atrybutów zależnych od X, F 1 zawiera wszystkie te ZF ze zbioru F +, których atrybuty zawarte są w X +. Podobnie dla F 2. 6. Przejdź do (2). Graficzna interpretacja dekompozycji do PNBC X A F, X + U R 1 =(X +, F 1 ) i R 2 = ((U X + ) X, F 2 ), R 1 Właściwości PNBC Schemat relacyjny w PNBC jest w 3PN Uwzględnia zależności również atrybutów kluczowych (w 2PN i w 3PN rozpatruje się tylko zależności, w których po prawej stronie występują jedynie atrybuty niekluczowe). Uwzględnienie zależności atrybutów kluczowych może niekiedy okazać się niekorzystne może prowadzić do zbytniego rozdrobnienia schematów relacyjnych. Ilustruje to następny przykład, gdzie mamy utratę zależności funkcyjnych. U-X + X X + -X R 2 R T. Pankowski, Normalizacja 23 T. Pankowski, Normalizacja 24

PNBC a 3PN Konsekwencje utraty zależno ności funkcyjnych {Miasto, Ulica} Kod Kod Miasto Klucze: {Miasto, Ulica} {Ulica, Kod} Relacja Kody jest w 3PN, gdyż w zależności Kod Miasto, Miasto jest atrybutem kluczowym. Zależność Kod Miasto narusza jednak warunek PNBC, {Kod} + = {Kod, Miasto}. Po sprowadzeniu do PNBC otrzymujemy: Kody1 = ({Miasto, Kod}, Kod Miasto) Kody2 = ({Ulica, Kod}, ) Problem: Tracimy zależność {Miasto, Ulica} Kod. Rozkład ze stratą zależności. T. Pankowski, Normalizacja 25 W następujących tabelach nie jesteśmy w stanie bezpośrednio wymusić zależności: Miasto,Ulica Kod Dopiero po złączeniu Kody1 i Kody2 według atrybutu Kod widzimy, że zależność Miasto,Ulica Kod nie jest spełniona : Mimo, że żadna ZF nie została naruszona w poszczególnych relacjach, to jednak Miasto,Ulica Kod została naruszona w bazie danych jako całości. T. Pankowski, Normalizacja 26 Podsumowanie 1. Decyzja o tym, czy pozostawić schemat w 3PN, czy sprowadzać go do PNBC musi być starannie przemyślana. 2. Praktyka pokazuje, że 3PN jest najczęściej najlepszym rozwiązaniem. 3. Czasem okazuje się, że korzystne jest pozostawienie relacji w niższej postaci normalnej (w 2PN lub nawet tylko w 1PN). Niekiedy wykonuje się wręcz proces denormalizacji. Przykładem są analityczne bazy danych (hurtownie danych). 4. Wybór konkretnej postaci normalnej powinien być jednak dokonany w sposób świadomy, z uwzględnieniem wszystkich tego konsekwencji. T. Pankowski, Normalizacja 27