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

Podobne dokumenty
Bazy danych 3. Normalizacja baz danych

Bazy Danych i Usługi Sieciowe

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

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

Bazy danych i usługi sieciowe

Pojęcie zależności funkcyjnej

Normalizacja. Pojęcie klucza. Cel normalizacji

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

Normalizacja relacyjnych baz danych. Sebastian Ernst

Systemy baz danych. Notatki z wykładu

Zależności funkcyjne

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

Bazy danych. Andrzej Łachwa, UJ, /15

Technologie baz danych

Projektowanie relacyjnych baz danych

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

Cel normalizacji. Tadeusz Pankowski

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

Normalizacja baz danych

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

Technologia informacyjna

Projektowanie baz danych

Projektowanie Systemów Informacyjnych

Pierwsza postać normalna

Bazy danych. Andrzej Łachwa, UJ, /15

Pierwsza postać normalna

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

Normalizacja baz danych

Zależności funkcyjne pierwotne i wtórne

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

Bazy Danych i Usługi Sieciowe

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

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

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

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

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

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

1 Przygotował: mgr inż. Maciej Lasota

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

Związki pomiędzy tabelami

WYKŁAD 1. Wprowadzenie do problematyki baz danych

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

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

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

Wykład 2. Relacyjny model danych

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

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

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

Postać normalna Boyce-Codd (BCNF)

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

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

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

Autor: Joanna Karwowska

Normalizacja tabel POSTACIE NORMALNE TABEL

Normalizacja schematów logicznych relacji

Tadeusz Pankowski Definicja. Definicja

Baza danych. Baza danych to:

Konstruowanie Baz Danych Wprowadzenie do projektowania. Normalizacja

Zależności funkcyjne c.d.

Dedukcyjne bazy danych i rekursja

Projektowanie bazy danych przykład

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

Zadanie 1. Suma silni (11 pkt)

Relacyjny model danych

Projekt małej Bazy Danych.

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

Dedukcyjne bazy danych i rekursja

Bazy danych. Bazy danych. wykład kursowy. Adam Kolany. Państwowa Wyższa Szkoła Zawodowa 2007/2008

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

Przykłady normalizacji

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

Krzysztof Kadowski. PL-E3579, PL-EA0312,

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

Program nauczania. Systemy baz danych. technik informatyk

Technologia Informacyjna

Bazy danych wykład trzeci. trzeci Przekształcenie modelu ER na model relacyjny 1 / 19

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

Model relacyjny bazy danych

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

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

Plan wykładu. Problemy w bazie danych. Problemy w bazie danych BAZY DANYCH

Podstawowe zagadnienia z zakresu baz danych

Normalizacja relacji

Teoretyczne podstawy informatyki

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

Rozwiązania, seria 5.

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

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

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

Tworzenie projektu bazy danych z kreatorem odnośników - Filmoteka. Projekt tabel dla bazy Filmoteka

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

Literatura. Bazy danych s.1-1

MS Access Projektowanie c.d. i kwerendy

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

Bazy danych w sterowaniu

Zasady transformacji modelu DOZ do projektu tabel bazy danych

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

Bazy danych 6. Przykłady

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

Teoretyczne podstawy informatyki

Transkrypt:

Bazy danych Teoria projektowania relacyjnych baz danych. Wykład dla studentów matematyki 2 kwietnia 2017

Ogólne wprowadzenie No przecież do tego służa reguły, rozumiesz? Żebyś się dobrze zastanowił, zanim je złamiesz. Terry Pratchett, Złodziej czasu

Zależności funkcyjne Notacja: X Y, gdzie X i Y sa zbiorami atrybutów z relacji R, nazywamy zależnościa funkcyjna. Mówimy, że X Y zachodzi w R, jeśli każde dwa wiersze majace te same wartości atrybutów z X musza mieć te same wartości atrybutów z Y. Formalnie ( f : X Y )( (x,..., y) R(X,..., Y )) y = f (x) choć funkcja ta nie jest oczywiście znana (a czasem nie jest łatwa do obliczenia).

Rozbicie Zależność funkcyjna X A 1 A 2... A n można zastapić zbiorem zależności X A 1, X A 2,..., X A n Przykład: A BC można zastapić przez A B i A C. Uwaga: Nie wolno rozbijać lewych stron!

Przykłady zależności Dla relacji Zwierzaki(imie,gatunek,waga,wiek) zakłada się, że: imie gatunek Jeśli prawda jest, że Żadne dwa wykłady nie odbywaja się o tej samej godzinie w tej samej sali, to mamy zależność funkcyjna godzina sala wykład

Zależności trywialne Zależność X Y nazywamy trywialna, jeśli Y X. Zależności trywialne zachodza zawsze i nie dostarczaja żadnej informacji.

Klucze Definicja Zbiór atrybutów N relacji R(A 1, A 2,..., A n ) nazywamy jej nadkluczem, jeśli zachodzi zależność funkcyjna Definicja N A 1 A 2... A n Zbiór atrybutów K relacji R(A 1, A 2,..., A n ) nazywamy jej kluczem, jeśli jest on nadkluczem i żaden jego podzbiór nie jest nadkluczem. Inaczej: klucze relacji to jej minimalne nadklucze.

Przykłady Niech w relacji Zwierzaki zachodzi imie gatunek wiek waga {imie,gatunek} jest nadkluczem w relacji Zwierzaki Nie jest jednak kluczem, bo {imie} też jest nadkluczem {imie} jest kluczem. jeśli jest to jedyna zależność, to nie ma innych kluczy.

Skad się biora klucze? Sa wyznaczane z zależności funkcyjnych, lub ustala się je arbitralnie (tzw. klucze sztuczne), dodajac do relacji R nowy atrybut KS jako klucz. Oznacza to nałożenie dodatkowej zależności funkcyjnej KS A 1 A 2... A n gdzie A 1, A 2,..., A n sa atrybutami relacji R

Wyprowadzanie zależności Pewne zależności można wyprowadzić z innych. Przykład: jeśli zachodzi A B i zachodzi to musi zachodzić B C A C Można to sprawdzić z definicji, sa jednak inne sposoby.

Domknięcie zbioru atrybutów Definicja Domknięciem zbioru atrybutów Y (względem danego zbioru zależności) nazywamy taki zbiór atrybutów Y +, że 1 Y Y + 2 Dla dowolnej zależności U W, jeśli U Y +, to W Y + Jeśli U V +, to zachodzi zależność funkcyjna V U Klucz to taki minimalny zbiór atrybutów, że jego domknięcie jest zbiorem wszystkich atrybutów relacji.

Przykład Policzymy domknięcie atrybutu A z naszego przykładu 1 Krok bazowy: A + := A 2 Indukcja: ponieważ A B i A A +, to A + := A + B = AB 3 Indukcja: ponieważ B C i B A +, to A + := A + C = ABC Wniosek: ponieważ C A +, więc zachodzi A C.

Inny przykład Dla zbioru zależności AB C, BC AD, D E, CF B domknięciem {A, B} + jest {A, B, C, D, E}, ponieważ AB C C {A, B} + BC AD D {A, B} + D E E {A, B} +

Domknięcie zbioru zależności Definicja Domknięcie zbioru zależności Z (oznaczane Z + ) jest to zbiór wszystkich zależności, które można wyprowadzić z Z. Równoważność zbiorów zależności Dwa zbiory zależności Z 1 i Z 2 sa równoważne, jeśli ich domkniecia sa równe: Z 1 Z 2 wtw Z + 1 = Z + 2.

Domknięcie zbioru zależności Minimalny zbiór zależności Jest to taki zbiór zależności, który nie jest równoważny żadnemu swojemu podzbiorowi, oraz jeśli z lewej strony którejś zależności usuniemy którykolwiek atrybut, to otrzymany zbiór zależności nie będzie równoważny wyjściowemu. Uwaga: minimalny zbiór zależności dla danego wyjściowego zbioru zależności nie jest wyznaczony jednoznacznie.

Reguły wnioskowania Armstronga Zwrotność Y X X Y Rozszerzanie X Y XZ YZ Przechodniość X Y, Y Z X Z

Projektowanie schematu Jeden z celów to unikanie redundancji (nadmiarowości). Redundancja oznacza, że niektóre informacje sa zapisane w bazie danych wielokrotnie. Prowadzi to do anomalii podczas modyfikacji i usuwania Anomalia modyfikacji: informacja zostaje uaktualniona tylko w niektórych miejscach Przykład: zmiana adresu studenta na nowy w źle zaprojektowanej bazie danych. Anomalia usuwania: wraz z usunięciem ostatniego wiersza szczegółowego znika informacja ogólna Gdyby informacje o adresie studenta trzymać przy przedmiotach, na które jest zarejestrowany, to po zakończeniu sesji (a przed nowa rejestracja) adres ten by zniknał

Przykład złego projektu Relacja Zwierzaki(gatunek,imie,waga,kontynent) z zależnościami imie gatunek waga kontynent gatunek kontynent Przykładowa zawartość: gatunek imie waga kontynent Papuga Kropka 3,50??? Papuga Lulu 5,35 Ameryka Papuga Hipek 3,50??? Lis Fufu 6,35 Europa Krokodyl Czako 75,00 Afryka Występuje redundancja, ponieważ wartości dla??? można łatwo wskazać na podstawie zależności.

Normalizacja Dotychczas formalnie zdefiniowano pięć (poziomów) postaci normalnych, choć tylko trzy pierwsze sa powszechnie używane podczas projektowania baz danych. Postacie normalne sa ponumerowane kolejno, ale istnieje postać pośrednia BCNF między 3 i 4 poziomem. Postaci o wyższych numerach obejmuja w definicji warunki dla niższych postaci, dlatego relacja w drugiej postaci normalnej jest automatycznie w pierwszej postaci normalnej. Odwrotne wynikanie nie zachodzi; druga postać normalna otrzymujemy z pierwszej po nałożeniu dodatkowego warunku. Proces normalizacji polega na dekompozycji tabel aż do otrzymania najwłaściwszej postaci.

Pierwsza postać normalna (1NF) Warunkiem pierwszej postaci normalnej jest to, by każdy atrybut w relacji przyjmował tylko wartości niepodzielne. Przez wartości niepodzielne rozumiemy takie pojedyncze wartości, jak używane w atrybutach numer klienta czy nazwisko klienta. Relacja w pierwszej postaci normalnej nie może zawierać atrybutu, w którym można upakować kilka wartości, np. odddzielajac je przecinkami. Daty można traktować jako wartości niepodzielne lub tworzyć oddzielne atrybuty dla dnia, miesiaca i roku.

Druga postać normalna (2NF) Aby stwierdzić, czy relacja w pierwszej postaci normalnej jest także w drugiej, należy określić klucze relacji. Każdej wartości klucza powinien jednoznacznie odpowiadać pojedynczy wiersz w tabeli. Na przykład dla relacji Zamówienie_klienta kluczem może być numer_zamówienia. Warunkiem na druga postać normalna jest to, aby każdy niekluczowy atrybut zależał funkcyjnie od całego klucza. Niedozwolone sa więc tzw. zależności częściowe.

Trzecia postać normalna (3NF) Dla sprawdzenia, czy relacja będaca w drugiej postaci normalnej jest także w trzeciej, bada się zależności między atrybutami niekluczowymi. Atrybuty niekluczowe powinny zależeć funkcyjnie wyłacznie od klucza i niczego więcej. Wykluczamy w ten sposób zależności przechodnie od kluczy.

Postać normalna Boyce-Codda (BCNF) Bardziej restrykcyjna niż trzecia jest postać normalna Boyce-Codda. Relacja R jest w tej postaci, jeśli jest w 1NF oraz dla każdej nietrywialnej zależności X Y zachodzacej w R, lewa strona zależności X jest nadkluczem. W odróżnieniu od 3NF sprowadzenie do BCNF nie gwarantuje zachowania zależności funkcyjnych przy rozkładzie, dlatego jest ona rzadziej wykorzystywana w aplikacjach komercyjnych.

Inna definicja 3NF 3NF Relacja jest w 3NF jeśli jest w 1NF oraz dla każdej nietrywialnej zależności X Y : lewa strona zależności X jest nadkluczem lub prawa strona zależności Y zawiera tylko atrybuty z kluczy (kluczy może być kilka).

Dekompozycja do BCNF 1 Dla relacji R wybierz ze zbioru zależności F zależność X Y naruszajac a BCNF (jeśli nie ma takiej, to relacja jest już w BCNF). 2 Oblicz X + Będzie zawierać tylko część atrybutów R, bo inaczej X byłoby nadkluczem. 3 Zastap R dwoma relacjami o schematach R 1 = X + R 2 = R (X + X) 4 Zrzutuj zbiór zależności F na nowe relacje. 5 Powtarzaj dopóki relacje nie będa w BCNF.

Ekologia : zachowanie zależności Czasem zależności powoduja kłopoty przy przejściu do BCNF. Weźmy tabelę Gdzie(adres,miasto,kod-pocztowy) i dwie zależności adres miasto kod-pocztowy kod-pocztowy miasto Mamy dwa klucze: {adres,miasto} oraz {adres,kod-pocztowy}. Ale zależność kod-pocztowy miasto narusza postać BCNF. Czyli musimy dokonać dekompozycji na dwie tabele Gdzie1(adres,kod-pocztowy) Gdzie2(miasto,kod-pocztowy)

Zachowanie zależności Popatrzmy jednak na poniższy przykład Gdzie2 adres kod Banacha 2 01-234 Banacha 2 01-235 Gdzie1 miasto kod Warszawa 01-234 Warszawa 01-235 Pozornie wszystko jest w porzadku (żadna zależność nie jest naruszona), po złaczeniu będzie już inaczej Gdzie adres miasto kod Banacha 2 Warszawa 01-234 Banacha 2 Warszawa 01-235 Naruszona jest zależność adres miasto kod-pocztowy.

Zachowanie zależności Takie układy zależności nie sa rzadkie, popatrzmy na inny przykład zależności dla fikcyjnej sieci kin kino miasto film miasto kino Pierwsza z nich jest oczywista: każde kino znajduje się tylko w jednym mieście. Druga może wynikać z prowadzonej polityki wyświetlania, aby kina w tym samym mieście nie konkurowały ze soba filmami. Skutek jest taki sam jak poprzednio.

Czwarta postać normalna (4NF) W większości baz danych wystarcza dekompozycja do trzeciej postaci normalnej. Moga jednak czasem występować anomalie wstawiania, powodowane zależnościa wielowartościowa. Zależność wielowartościowa występuje, gdy dwa atrybuty lub zbiory atrybutów sa od siebie wzajemnie niezależne, natomiast sa powiazane z innymi atrybutami.

Czwarta postać normalna (4NF) Na przykład na seminariach korzysta się z kilku ksiażek. Każde seminarium ma tylko jedna nazwę, ale może mieć kilku prowadzacych. Każdy wiersz dla danego seminarium będzie zawierać losowo wybrana kombinację jakiejś ksiażki i jakiegoś prowadzacego. Zauważmy, że bez utraty informacji możemy w takich dwóch wierszach zamienić prowadzacych (lub ksiażki). Aby pozbyć się takiej zależności, należy dokonać dekompozycji na dwie osobne relacje: prowadzacy seminaria oraz teksty do seminariów.

Zależności wielowartościowe Tabela Aktorzy(nazwisko,ulica,miasto,film,rok) podaje adresy aktorów i filmy, w których grali. Każdy aktor mógł grać w wielu filmach i może mieć kilka adresów. Ale w pojedynczym wierszu możemy zapisać tylko jeden film i jeden adres. Trudno będzie wtedy znajdować wszystkie filmy aktorów mieszkajacych w Warszawie. W zasadzie powinniśmy zapisać wszystkie kombinacje adresów z filmami.

Definicja zależności wielowartościowej Zależność wielowartościowa Zależność wielowartościowa A 1... A k B 1... B l dla relacji R(A 1,..., A k, B 1,..., B l, C 1,..., C m ) oznacza, że jeśli dwie krotki sa zgodne na składowych A i, to można w nich zamienić składowe B i i otrzymane krotki będa także w relacji R. Inaczej mówiac, lewa strona każdej takiej zależności nie wyznacza pojedynczej wartości, lecz zbiór wartości, np. nazwisko ulica,miasto nazwisko film,rok

Reguły dla zależności wielowartościowych Promocja Każda zależność funkcyjna jest zależnościa wielowartościowa, czyli jeśli zachodzi X Y to zachodzi także X Y Niestety odwrotna implikacja nie jest prawdziwa!

Reguły dla zależności wielowartościowych Uzupełnianie Jeśli dla relacji R(X, Y, Z ) zachodzi X Y to zachodzi także X Z

Reguły dla zależności wielowartościowych Przechodniość Jeśli dla relacji R(X, Y, Z, V ) zachodza to zachodzi także X Y Y Z X Z

Reguły dla zależności wielowartościowych Podobnie jak dla zależności funkcyjnych, nie wolno rozbijać lewej strony zależności. Ale dla zależności wielowartościowych nie wolno również rozbijać prawej strony!

Czwarta postać normalna definicja Nietrywialna zależność wielowartościowa Zależność wielowartościowa X Y dla relacji R jest nietrywialna, jeśli 4NF Y X oraz X Y nie sa wszystkimi atrybutami R Relacja R jest w czwartej postaci normalnej (4NF), jeśli dla każdej nietrywialnej zależności X Y w R, X jest nadkluczem R.

Wnioski Jeśli relacja jest w 4NF, to jest też w BCNF. Odwrotne zawieranie nie zachodzi.

Rozkład do 4NF Podobnie jak dla BCNF, szukamy zależności X Y naruszajacej 4NF. Rozbijamy relację R(X, Y, Z ) na dwie relacje: R 2 (X, Y ) R 1 (X, Z ) Kończymy, gdy już nie ma takich zależności.

Przykład rozkładu do 4NF Zaczynamy od relacji i zależności Aktorzy(nazwisko,ulica,miasto,film,rok) nazwisko ulica,miasto nazwisko film,rok W skład klucza wchodza wszystkie kolumny tabeli. Obie zależności naruszaja więc 4NF (bo nie sa trywialne). Wybieramy do rozkładu pierwsza z nich.

Przykład rozkładu do 4NF Otrzymujemy dwie tabele Aktorzy1(nazwisko,ulica,miasto) Aktorzy2(nazwisko,film,rok) z tymi samymi zależnościami. Ponieważ obie zależności stały się trywialne, kończymy.