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

Podobne dokumenty
Bazy danych 3. Normalizacja baz danych

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

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

Normalizacja. Pojęcie klucza. Cel normalizacji

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

Cel normalizacji. Tadeusz Pankowski

Bazy danych. Andrzej Łachwa, UJ, /15

Pojęcie zależności funkcyjnej

Technologie baz danych

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

Systemy baz danych. Notatki z wykładu

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

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.

Zależności funkcyjne pierwotne i wtórne

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

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

Normalizacja relacyjnych baz danych. Sebastian Ernst

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

Bazy danych i usługi sieciowe

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

Projektowanie baz danych

Projektowanie Systemów Informacyjnych

Projektowanie relacyjnych baz danych

Pierwsza postać normalna

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

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

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

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

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

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

Wykład 2. Relacyjny model danych

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

Bazy danych. Andrzej Łachwa, UJ, /15

Normalizacja baz danych

1 Przygotował: mgr inż. Maciej Lasota

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

Tadeusz Pankowski Definicja. Definicja

domykanie relacji, relacja równoważności, rozkłady zbiorów

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Technologia informacyjna

Autor: Joanna Karwowska

Normalizacja schematów logicznych relacji

Pierwsza postać normalna

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

Bazy danych TERMINOLOGIA

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

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

Bazy Danych i Usługi Sieciowe

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

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

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

Bazy danych 6. Przykłady

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

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

Relacyjny model danych

Zadanie 1. Suma silni (11 pkt)

1 Wstęp do modelu relacyjnego

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

Andrzej Wiśniewski Logika II. Wykłady 10b i 11. Semantyka relacyjna dla normalnych modalnych rachunków zdań

Związki pomiędzy tabelami

Bazy danych. Algebra relacji

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

Np. Olsztyn leży nad Łyną - zdanie prawdziwe, wartość logiczna 1 4 jest większe od 5 - zdanie fałszywe, wartość logiczna 0

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

Normalizacja baz danych

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

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

Matematyczne Podstawy Kognitywistyki

Baza danych. Baza danych to:

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

Postać normalna Boyce-Codd (BCNF)

Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe. P. F. Góra

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Systemy baz danych. mgr inż. Sylwia Glińska

Zależności funkcyjne c.d.

Konsekwencja logiczna

Model relacyjny bazy danych

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a);

Układy równań liniowych

Bazy danych Algebra relacji Wykład dla studentów matematyki

LOGIKA I TEORIA ZBIORÓW

Baza danych. Modele danych

Zaawansowane metody numeryczne Komputerowa analiza zagadnień różniczkowych 4. Równania różniczkowe zwyczajne podstawy teoretyczne

RACHUNEK ZDAŃ 7. Dla każdej tautologii w formie implikacji, której poprzednik również jest tautologią, następnik także jest tautologią.

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

Układy liniowo niezależne

Andrzej Wiśniewski Logika II. Materiały do wykładu dla studentów kognitywistyki

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

Normalizacja relacji

Model relacyjny. Wykład II

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

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

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 9. Koniunkcyjne postacie normalne i rezolucja w KRZ

Algebra Boole a i jej zastosowania

Grupy. Permutacje 1. (G2) istnieje element jednostkowy (lub neutralny), tzn. taki element e G, że dla dowolnego a G zachodzi.

Transkrypt:

Bazy danych 2. Zależności funkcyjne Normalizacja baz danych P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2012/13

Zależności funkcyjne Definicja: Mówimy, że atrybut B jest zależny funkcyjnie od atrybutów A 1,..., A n, co zapisujemy A 1, A 2,..., A n B, wtedy, gdy dwie krotki zgodne w atrybutach A 1,..., A n musza być zgodne w atrybucie B. Zależności funkcyjne sa matematycznym modelem więzów jednoznaczności w modelu relacyjnym baz danych. Zależności funkcyjne należa do schematu bazy. Nie można o nich wnioskować jedynie na podstawie instancji (faktycznych wystapień) tabel. Copyright c 2010-12 P. F. Góra 2 2

X Y X Y Z x y z 1 x y z 2 jeżeli sa zgodne tutaj...... to musza być zgodne tutaj Na przykład spodziewamy się, że w osobowej bazie danych obowiazuje zależność funkcyjna PESEL Nazwisko. Jeżeli dwie krotki maja taki sam numer PESEL, musza odnosić się do osób majacych to samo Nazwisko. Copyright c 2010-12 P. F. Góra 2 3

Jeżeli zachodzi A 1, A 2,..., A n B 1 A 1, A 2,..., A n B 2... A 1, A 2,..., A n B m piszemy w skrócie A 1, A 2,..., A n B 1, B 2,..., B m Copyright c 2010-12 P. F. Góra 2 4

Zależności trywialne Zależność funkcyjna A 1, A 2,..., A n B nazywam trywialna, jeśli atrybut B jest równy któremuś atrybutowi A 1,2,...,n. Jeśli przyjmiemy skrótowy zapis zależności z wieloczłonowa prawa strona, zależność jest Trywialna, jeśli zbiór złożony z atrybutów B jest podzbiorem zbioru złożonego z atrybutów A Nietrywialna, jeśli co najmniej jeden B nie jest A Całkowicie nietrywialna, jeśli żadnen B nie jest A. Copyright c 2010-12 P. F. Góra 2 5

Reguły wnioskowania (aksjomaty Armstronga) zwrotność: Jeżeli {B 1, B 2,..., B m } {A 1, A 2,..., A n }, to A 1, A 2,..., A n B 1, B 2,..., B m. rozszerzenie: Jeżeli A 1, A 2,..., A n B 1, B 2,..., B m, to A 1, A 2,..., A n, C 1, C 2,..., C k B 1, B 2,..., B m, C 1, C 2,..., C k dla dowolnych C 1, C 2,..., C k. przechodniość: Jeżeli A 1, A 2,..., A n B 1, B 2,..., B m oraz B 1, B 2,..., B m C 1, C 2,..., C k, to A 1, A 2,..., A n C 1, C 2,..., C k. Copyright c 2010-12 P. F. Góra 2 6

Dodatkowe reguły wnioskowania Można udowodnić, że poniższe reguły wniokowania wynikaja wprost z aksjomatów Armstronga: Relacja zwrotna: X X Rozszerzanie: jeżeli X Y, wtedy X, Z Y Sumowanie: jeżeli X Y oraz X Z, wtedy X Y, Z Rozkład: jeżeli X Y oraz Z Y, to X Z Przechodniość: jeżeli X Y oraz Y Z, to X Z Pseudoprzechodniość: jeżeli X Y oraz Y, Z W, to X, Z W. Copyright c 2010-12 P. F. Góra 2 7

Domknięcia Niech {A 1, A 2,..., A n } będzie pewnym zbiorem atrybutów, S niech będzie zbiorem zależności funkcyjnych. Domknięciem zbioru {A 1, A 2,..., A n } nad S nazywamy taki zbiór atrybutów B, że jeśli jego elementy spełniaja wszystkie zależności funkcyjne z S, to spełniaja także zależność A 1, A 2,..., A n B, a zatem zależność A 1, A 2,..., A n B wynika z S. Domknięcie oznaczam cl{a 1, A 2,..., A n }. Mówiac niezbyt ściśle, domknięcie to zbiór wszystkich atrybutów determinowanych, w sensie zależności funkcyjnych, przez atrybuty zbioru wyjściowego. Copyright c 2010-12 P. F. Góra 2 8

Algorytm obliczania domknięcia 1. Na poczatku X oznacza zbiór {A 1, A 2,..., A n }. 2. Znajdujemy wszystkie zależności funkcyjne postaci B 1, B 2,..., B m C, gdzie B i należa do X, a C nie należy. Dołaczamy C do X. 3. Powtarzamy krok 2 tak długo, jak długo do X można dołaczyć jakiś nowy atrybut. Ponieważ X może się tylko rozszerzać, zaś zbiór atrybutów jest skończony, po skończonej liczbie kroków nastapi moment, w którym do X nie da się niczego dołaczyć. 4. W tym momencie X = cl{a 1, A 2,..., A n }. Copyright c 2010-12 P. F. Góra 2 9

Powyżej przedstawiony algorytm jest poprawny i intuicyjnie prosty, ale nie jest efektywny może być algorytmem kwadratowym (w czasie) w najgorszym przypadku. Znacznie rozsadniej jest tak uporzadkować zależności funkcyjne, aby każda była używana ( odpalana ) dokładnie w tym momencie, w którym wszystkie atrybuty jej lewej strony znajda się w kandydacie X. Dla dużych baz (i tabel) domknięć nie oblicza się ręcznie! software, który to robi. Istnieje specjalny Copyright c 2010-12 P. F. Góra 2 10

Przykład Rozważmy zbiór atrybutów {A, B, C, D, E, F }. Załóżmy, że w tym zbiorze zachodza zależności A, B C, B, C A, D, D E, C, F B. Obliczmy cl{a, B}. X = {A, B}. Wszystkie atrybuty poprzednika zależności A, B C sa w X, więc do X dołaczamy C. X = {A, B, C}. Lewa strona zależności B, C A, D jest w X, A jest już w X, więc do X dołaczamy D. X = {A, B, C, D}. Na mocy zależności D E, dołaczamy do X atrybut E. X = {A, B, C, D, E}. Zleżności C, F B nie możemy wykorzystać, ponieważ F X i nie ma jak dołożyć F do X. Ostatecznie cl{a, B} = {A, B, C, D, E}. Copyright c 2010-12 P. F. Góra 2 11

Bazy zależności funkcyjnych Każdy zbiór zależności funkcyjnych pewnego zbioru atrybutów, z którego można wyprowadzić wszystkie inne zależności funkcyjne zachodzace pomiędzy elementami tego zbioru, nazywam baza zbioru zależności funkcyjnych. Jeśli żaden podzbiór bazy nie jest baza (nie umożliwia wyprowadzenia wszystkich relacji), bazę tę nazywam baza minimalna. Copyright c 2010-12 P. F. Góra 2 12

Przykład Mam atrybuty A, B, C i zależności A B, A C, B A, B C, C A, C B. Można teraz wyprowadzić zależności nietrywialne A, B C, A, C B, B, C A (oraz zależności trywialne). Baza minimalna jest zbiór {A B, B A, B C, C B}. Inna baza minimalna jest A B, B C, C A. Copyright c 2010-12 P. F. Góra 2 13

Po co jemy tę żabę? Copyright c 2010-12 P. F. Góra 2 14

Klucze Mówimy, że zbiór atrybutów {A 1, A 2,..., A n } tworzy klucz pewnej tabeli, jeśli wszystkie pozostałe atrybuty z tej tabeli sa funkcyjnie zależne od wskazanego zbioru. Dwie różne krotki nie moga mieć tych samych kluczy (jeśli maja takie same klucze, musza mieć równe także pozostałe atrybuty, a zatem nie sa różne). Jeżeli przyjmujemy, że tabele sa zbiorami krotek w zabiorze każdy element występuje co najwyżej raz widzimy, że klucz jednoznacznie identyfikuje krotkę. Copyright c 2010-12 P. F. Góra 2 15

Klucz o tej własności, że żaden jego podziór właściwy nie jest kluczem, nazywamy kluczem minimalnym. Terminologia alternatywna: W niej to, co powyżej nazwaliśmy kluczem minimalnym, nazywa się po prostu kluczem, natomiast każdy nadzbiór klucza nazywamy nadkluczem. Copyright c 2010-12 P. F. Góra 2 16

Zauważmy, że zbiór cl{a 1, A 2,..., A n } zawiera wszystkie atrybuty pewnej tabeli wtedy i tylko wtedy, gdy {A 1, A 2,..., A n } jest (nad)kluczem tej tabeli. Sprawdzenie, czy dany zbiór elementów stanowi klucz tabeli, sprowadza się do sprawdzenia, czy wszystkie atrybuty tabeli należa do domknięcia klucza kandydujacego, czy jakiś właściwy podzbiór klucza kandydujacego także nie ma tej właściwości. Obliczanie domknięć nad zadanym zbiorem zależności funkcyjnych jest formalnym narzędziem służacym do identyfikowania kluczy tabel. Copyright c 2010-12 P. F. Góra 2 17

Pierwsza postać normalna Tabela jest w pierwszej postaci normalnej (1PN), jeżeli 1. Tabela posiada klucz. 2. Wszystkie składowe krotek sa atomowe. Można powiedzieć, że pierwsza postać normalna jest warunkiem tego, żeby w ogóle można było mówić o sytemie relacyjnym. Warunek posiadania klucza jest równoważny temu, że tabela jest zbiorem krotek. Copyright c 2010-12 P. F. Góra 2 18

Atomowość danych Atomowość danych oznacza, że składowych krotek nie można podzielić. Warunek atomowości uniemożliwia to, żeby składowymi krotek były złożone struktury danych, takie jak tablice, listy itp. W zasadzie wymóg atomowości nakazuje dzielić też atrybuty, które można podzielić, na części logicznie niepodzielne. Na przykład zamiast atrybutu Imię i Nazwisko, powinniśmy mieć dwa atrybuty: Imię, Nazwisko. Można sobie jednak wyobrazić sytuacje, w których taki podział byłby niepotrzebny lub niewskazany. O ile zatem pierwsza postać normalna z cała pewnościa wyklucza złożone struktury danych, o tyle interpretacja pojęcia można podzielić może niekiedy zależeć od natury samych danych, które reprezentować ma konstruowana przez nas baza danych. Rozważmy na przykład nazwy osobowe z Chin czy Korei. Copyright c 2010-12 P. F. Góra 2 19

Anomalie baz danych Redundancja ta sama informacja jest niepotrzebnie przechowywana w kilku krotkach. Anomalia modyfikacji informacja zostanie zmodyfikowana w pewnych krotkach, a w innych nie. Która informacja jest wówczas prawdziwa? Anomalia usuwania usuwanie części informacji powoduje utratę innej informacji, której nie chcielibyśmy stracić. Anomalia dołaczania wprowadzenie pewnej informacji jest możliwe tylko wtedy, gdy jednocześnie wprowadzamy jakaś inna informację, która może być obecnie niedostępna. Celem normalizacji baz danych jest unikanie powyższych anomalii. Copyright c 2010-12 P. F. Góra 2 20

Bezstratne złaczenie Normalizację baz danych (powyżej 1PN) przeprowadza się dzielac tabele wertykalnie na tabele potomne. Tabele te jednak musza pozwalać na pełne odtworzenie wyjściowej informacji po dokonaniu złaczenia. Niedopuszczalne jest także, aby złaczenia kreowały informację fałszywa. Dekompozycję tabeli R na tabele R 1, R 2,..., R n nazywamy dekompozycja bezstratnego złaczenia (ze względu na pewien zbiór zależności funkcyjnych), jeśli naturalne złaczenie R 1, R 2,..., R n jest równe tabeli R. Copyright c 2010-12 P. F. Góra 2 21

Dekompozycja tabeli R na dwie tabele R 1, R 2 jest dekompozycja bezstratnego złaczenia, jeśli spełniony jest jeden z dwu warunków (symbol oznacza zależność funkcyjna): lub (R 1 R 2 ) (R 1 \R 2 ) (R 1 R 2 ) (R 2 \R 1 ) Innymi słowy, wspólna część atrybutów R 1, R 2 musi zawierać klucz kandydujacy R 1 lub R 2. Copyright c 2010-12 P. F. Góra 2 22

Przykład negatywny Przypuśćmy, że w pewnej tabeli przechowujemy informację na temat studentów zapisujacych się na kurs baz danych. Przykładowa instancja tabeli mogłaby wygladać tak: T 0 NrStudenta NrKursu DataZapisu Sala Prowadzacy 1010057 K202 01.10.2012 A1 Góra 1010132 K203 01.10.2012 A2 Łachwa 1015678 K202 01.10.2012 A2 Łachwa 1020159 K204 04.10.2012 A1 Góra 1026789 K205 11.10.2012 C2 Oramus Copyright c 2010-12 P. F. Góra 2 23

Rozbijamy tę tabele na dwie, dzielac je wzdłuż kolumny DataZapisu. T 1 NrStudenta NrKursu DataZapisu 1010057 K202 01.10.2012 1010132 K203 01.10.2012 1015678 K202 01.10.2012 1020159 K204 04.10.2012 1026789 K205 11.10.2012 T 2 DataZapisu Sala Prowadzacy 01.10.2012 A1 Góra 01.10.2012 A2 Łachwa 01.10.2012 A2 Łachwa 04.10.2012 A1 Góra 11.10.2012 C2 Oramus Copyright c 2010-12 P. F. Góra 2 24

Dokonujemy złaczenia tabel T 1 i T 2. Okazuje się, że dzielenie pierwotnej tabeli wzdłuż kolumny DataZapisu to był kiepski pomysł. Otrzymujemy T 1 T 2 T 0 NrStudenta NrKursu DataZapisu Sala Prowadzacy 1010057 K202 01.10.2012 A1 Góra 1010132 K203 01.10.2012 A1 Góra 1015678 K202 01.10.2012 A1 Góra itd Zaznaczone krotki nie występuja w pierwotnej tabeli. Na skutek podziału tabeli nie spełniajacego warunku bezstratnego złaczenia, utraciliśmy informację o tym, kto kogo uczy. Copyright c 2010-12 P. F. Góra 2 25

Druga postać normalna Tabela jest w drugiej postaci normalnej (2PN), jeżeli 1. Tabela jest 1PN. 2. Wszystkie atrybuty niekluczowe zależa funkcyjnie od pełnego klucza. Atrybuty niekluczowe maja zależeć od pełnego klucza, a nie od jego podzbioru właściwego (który nie musi być kluczem!). Wszystkie tabele 1PN, które maja klucze jednokolumnowe, sa automatycznie 2PN. Copyright c 2010-12 P. F. Góra 2 26

Przykład Załóżmy, że zależności funkcyjne pomiędzy pewnymi atrybutami maja postać A, B C, A D. Poniższa tabela (podkreślenia oznaczaja klucz) A B C D a 1 b 1 c 1 d 1 a 1 b 2 c 2 d 1 a 1 b 3 c 3 d 1 a 2 b 1 c 4 d 2 nie jest 2PN, gdyż atrybut D zależy tylko od atrybutu A, a więc od części klucza, nie od całego klucza. Copyright c 2010-12 P. F. Góra 2 27

Schemat tabeli ze strony 27 nie chroni przed wymienionymi wyżej anomaliami: Nie można wprowadzić informacji o tym, że a 3 d 3, nie wprowadzajac jednocześnie informacji, że (a 3, b ) c (anomalia dołaczania). Usunięcie informacji o tym, że a 2 d 2 wymaga jednoczesnego usunięcia informacji, iż (a 2, b 1 ) c 4 (anomalia usuwania). Wartość d 1 przechowywana jest niepotrzebnie w trzech różnych krotkach (redundancja). Copyright c 2010-12 P. F. Góra 2 28

Po rozbiciu powyższej tabeli na dwie tabele będace w 2PN, anomalie dołacza- nia i usuwania nie występuja, a wartość d 1 przechowywana jest tylko w jednej krotce. A B C a 1 b 1 c 1 a 1 b 2 c 2 a 1 b 3 c 3 a 2 b 1 c 4 A D a 1 d 1 a 2 d 2 Proszę pomyśleć, że w poczatkowym przykładzie d 1 mogłoby występować nie w 3, ale w 300 lub w 3000 krotek. Copyright c 2010-12 P. F. Góra 2 29

Trzecia postać normalna Tabela jest w trzeciej postaci normalnej (3PN), jeżeli 1. Tabela jest 2PN. 2. Dla wszystkich atrybutów tabeli zachodzi: Jeżeli A 1, A 2,..., A n A m, to albo {A 1, A 2,..., A n } jest nadkluczem, albo A m jest elementem innego klucza. Trzecia postać normalna jest postacia najczęściej występujac a w zastosowaniach praktycznych. Druga część warunku definicyjnego ( albo A m jest elementem innego klucza ) ma znaczenie tylko wówczas, gdy w tabeli występuja zależności cykliczne (lub częściowe zależności cykliczne). Copyright c 2010-12 P. F. Góra 2 30

Zależności przechodnie Jeżeli w tabeli nie występuja zależności cykliczne, powiada się, że 3PN zakazuje wsytępowania zależności przechodnich. Istotnie, przyjmijmy, że spełnione sa zależności funkcyjne A B, B C, A C; ostatnia z tych zależności wynika z dwu pierwszych na zasadzie przechodniości. Następujaca tabela A B C jest 2PN, ale nie jest 3PN, gdyż zachodzi zależność B C, zaś atrybut B nie jest nadkluczem. Sprowadzenie do 3PN oznacza rozbicie powyższej tabeli na dwie tabele: A B B C Copyright c 2010-12 P. F. Góra 2 31

Przykład Niech zależności funkcyjne będa takie, jak na poprzednim ekranie. Rozważmy następujac a instancję pierwszej tabeli: A B C a 1 b 1 c 1 a 2 b 1 c 1 a 3 b 1 c 1 a 4 b 2 c 2 Copyright c 2010-12 P. F. Góra 2 32

Występuja anomalie dołaczania (nie można wprowadzić a 5 b 3 bez jednoczesnego wprowadzenia b 3 c 3 ), usuwania (nie można usunać b 2 c 2 bez jednoczesnego usunięcia a 4 b 2 ) oraz redundancja (wielkość c 1 przechowywana jest w trzech krotkach). Po sprowadzeniu do 3PN A B a 1 b 1 a 2 b 1 a 3 b 1 a 4 b 2 B C b 1 c 1 b 2 c 2 anomalie te znikaja. Copyright c 2010-12 P. F. Góra 2 33

Cykliczne zależności funkcyjne Przykładem cyklicznych zależności funkcyjnych jest A B, B C, C A. W takiej sytuacji atrybuty A, B, C sa sobie równoważne określenie wartości jednego z nich, jednoznacznie ustala wartość dwu pozostałych. Każda z trzech tabel A B C A B C A B C jest 3PN, gdyż co prawda występuja zależności przechodnie, ale atrybuty niekluczowe sa elementami innych kluczy (de facto sa innymi kluczami). Copyright c 2010-12 P. F. Góra 2 34

Uwaga! Przy cyklicznych zależnościach funkcyjnych jak poprzednio, tabele rozbite w taki sposób: A B B C C A technicznie rzecz biorac także sa 3PN, a nie zawieraja zależności przechodnich. Jednak taki projekt nie zapobiega redundancji, przeciwnie, wymusza ja, gdyż każda wartość każdego z atrybutów A, B, C jest przechowywana dwa razy. Projekty z poprzedniej strony sa z tego względu zdecydowanie lepsze. Copyright c 2010-12 P. F. Góra 2 35

Procedura postępowania 1. Dany jest zbiór atrybutów, które chcemy reprezentować, i zbiór zależności funkcyjnych pomiędzy atrybutami. 2. Znajdujemy bazę minimalna zbioru zależności funkcyjnych. 3. Majac bazę minimalna, sumujemy zależności funkcyjne o takich samych lewych stronach i dla każdej wysumowanej zależności tworzymy tabelę z odpowiednia lewa strona zależności jako kluczem. Taki sposób postępowania prowadzi do projektu bazy, w której tabele sa 3PN. Copyright c 2010-12 P. F. Góra 2 36

Procedura szukania bazy minimalnej 1. Każdy atrybut musi występować z lewej lub z prawej strony jednej zależności funkcyjnej w zbiorze. 2. Jeśli jakaś zależność funkcyjna jest właczona do zbioru, nie wszystkie zależności funkcyjne potrzebne do jej wyprowadzenia moga występować w tym zbiorze. 3. Jeśli jakaś zależność funkcyjna zostaje wyłaczona ze zbioru, zależności funkcyjne potrzebne do jej wyprowadzenia musza zostać doń dołaczone. Jeżeli w zbiorze zależności funkcyjnych występuja (częściowe) cykle, może istnieć więcej niż jedna baza minimalna. Copyright c 2010-12 P. F. Góra 2 37