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

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

Pierwsza postać normalna

Pierwsza postać normalna

Relacyjny model danych

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

Przykłady normalizacji

Normalizacja baz danych

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

Projektowanie Systemów Informacyjnych

Normalizacja. Pojęcie klucza. Cel normalizacji

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

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

Cel normalizacji. Tadeusz Pankowski

Normalizacja relacji

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

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

Normalizacja relacyjnych baz danych. Sebastian Ernst

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

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

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

Pojęcie zależności funkcyjnej

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

Modelowanie danych, projektowanie systemu informatycznego

Technologia informacyjna

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

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

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

Transformacja modelu ER do modelu relacyjnego

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

Technologie baz danych

Bazy Danych. Model Relacyjny. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Bazy Danych. Modele danych. Krzysztof Regulski WIMiIP, KISiM,

Technologie baz danych

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

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

Systemy baz danych. Notatki z wykładu

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

Projektowanie baz danych

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

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

Wykład 2. Relacyjny model danych

Bazy danych i usługi sieciowe

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

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

Bazy Danych i Usługi Sieciowe

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD

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

Baza danych. Modele danych

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

Projektowanie baz danych

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

Związki pomiędzy tabelami

1 Wstęp do modelu relacyjnego

Bazy danych. Andrzej Łachwa, UJ, /15

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Bazy danych 3. Normalizacja baz danych

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

Modelowanie konceptualne model EER

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Modelowanie danych. Model związków-encji

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

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

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Bazy danych. Algebra relacji

Diagramu Związków Encji - CELE. Diagram Związków Encji - CHARAKTERYSTYKA. Diagram Związków Encji - Podstawowe bloki składowe i reguły konstrukcji

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

Bazy Danych 2008 Część 1 Egzamin Pisemny

Normalizacja schematów logicznych relacji

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

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

1 Przygotował: mgr inż. Maciej Lasota

Baza danych. Baza danych to:

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

1 Projektowanie systemu informatycznego

Zależności funkcyjne

Bazy danych i usługi sieciowe

Utwórz klucz podstawowy relacji na podstawie unikalnego identyfikatora encji. podstawie kluczy podstawowych wiązanych relacji.

Projektowanie bazy danych przykład

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

Model relacyjny. Wykład II

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Transformacja modelu EER do postaci relacyjnego modelu danych. Zbyszko Królikowski

Bazy danych. Zasady konstrukcji baz danych

TRANSFORMACJA MODELU ER DO MODELU RELACYJNEGO

Zasady transformacji modelu DOZ do projektu tabel bazy danych

KARTA PRZEDMIOTU. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI Ogólne umiejętności posługiwania się komputerem

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Normalizacja baz danych

PODSTAWOWE POJĘCIA BAZ DANYCH

Autor: Joanna Karwowska

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

Projekt małej Bazy Danych.

WPROWADZENIE DO BAZ DANYCH

Bazy danych w sterowaniu

Projektowanie BAZY DANYCH

MS Access Projektowanie c.d. i kwerendy

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Literatura. Bazy danych s.1-1

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

FUNKCJE SZBD. ZSE - Systemy baz danych 1

Transkrypt:

Bazy Danych Projektowanie. Normalizacja. Krzysztof Regulski WIMiIP, KISiM, regulski@agh.edu.pl B5, pok. 408

Etapy projektowania baz danych: 1. Specyfikacja wymagańużytkownika-określenie zjawisk, dostępności i użyteczności danych, ich formatu i sposobów obliczeń, cele, zakres i kontekst systemu 2. Projektowanie konceptualne- projektowanie schematu E R bazy. Użycie modelu E R wpływa również na realizację pozostałych faz. 3. Specyfikacja wymagańfunkcjonalnych-dokładny opis wymagańklienta i wszystkich przyszłych użytkowników systemu 4. Projektowanie logiczne i fizyczne 5. Implementacja KISIM, WIMiIP, AGH 2

Projektowanie bazy danych: Projektowanie logicznej struktury bazy:» Etap I:określenie encji i zdefiniowanie atrybutów opisujących encje przyporządkowanie encji do zjawisk standaryzacja nazw i formatów identyfikacja źródełdanych» Etap II: określenie związków między encjami identyfikacja typu związków (relacji) (1-1, 1-M, N-M)» Etap III: normalizacja relacji obniżenie redundancji i wyeliminowanie anomalii (usuwania, wstawiania i aktualizacji) KISIM, WIMiIP, AGH 3

Wybór schematu relacji: Projekt bazy danych polega na znalezieniu właściwych schematów relacji tworzących bazę danych Niewłaściwy projekt(niewłaściwe schematy) mogą prowadzić do» Redundancji (powtarzania informacji).» Niemożliwości reprezentowania pewnych informacji.» Anomalii związanych z operowaniem danymi (głównie modyfikacją danych) Cele:» Unikanie redundancji danych» Zapewnienie reprezentowania związków między danymi» Zachowanie warunków integralności (umożliwienie kontroli warunków integralności podczas modyfikacji danych). KISIM, WIMiIP, AGH 4

Modelowanie konceptualne: Model pojęciowy (konceptualny, podstawowy): Zapis wymagańw postaci sformalizowanej, abstrahujący od problemów implementacyjnych ( co a nie jak ) Zawiera» modele graficzne» tekstowe (ale też sformalizowane) uzupełnienia modeli graficznych Jest ważny, ponieważ:» reprezentuje istotę wymagań» nie zależy od zmiennych możliwości implementacji» jest dobrąpodstawądo projektowania systemów mających funkcjonować przez wiele lat KISIM, WIMiIP, AGH 5

Wymagania: Spełnienie wymagań użytkownika jest naszym celem działania Wymagania muszą więc być dokładnie znane Poprawne i kompletne sformułowanie wymagańna ogółnie jest proste Należy odróżniaćfunkcjesystemu od mechanizmów, czyli sposobów implementacji funkcji Modelować dane niezależnie od przyszłej implementacji - modelowanie E/R Tworząc model pojęciowy nie można formułować zastrzeżeń co do realizowalności wymagań Zaprojektować dobry schemat - normalizacja KISIM, WIMiIP, AGH 6

Cel modelowania E-R: Model E-Rsłuży do nieformalnego przedstawienia projektu bazy danych. Projekt ma postać graficzną zwaną diagramem E-R(entityrelationshipdiagram), diagramem jednostka-związeklub diagramem związków encji Istnieje procedura (pół)automatycznejtransformacji diagramu E-Rdo konkretnej implementacji, na przykład do relacyjnej bazy danych. KISIM, WIMiIP, AGH 7

Encja (zbiory encji): Encja (entity)- model rzeczy, osób, zjawisk, pojęć itp., o których chcemy przechowywać informacje, które mają tożsamość(są rozróżnialne) Np. konkretna osoba, firma, zdarzenie zbiór encji Zbiór encji (entityset) zbiór (klasa) obiektów, które sątego samego typu (mająwspólne własności), inaczej: zbiór wystąpień(instancji) tej klasy student 12345 Jan 12346 Ewa 12347 Adam Pies Lis Słoń krotka Np. zbiór osób, zbiór firm, zbiór określonych zdarzeń W diagramach E-R zbiory encji oznaczane są prostokątami: student KISIM, WIMiIP, AGH 8

Atrybuty: Zbiór encji (i każda z nich) jest opisywany przez zestaw atrybutów, które odpowiadająwłasnościom posiadanym przez wszystkie obiekty reprezentowane przez ten zbiór. Np.: student = (nr_albumu, imie, nazwisko) Dziedzina atrybutu zbór dopuszczalnych wartości, jakie może przyjmowaćdany atrybut na danym zbiorze encji. Dziedzina uzupełniona jest o wartośćnulloznaczającą, że encja nie posiada wartości atrybutu lub jest on nieznany. Atrybuty:» proste vs. pochodne (mogąbyćobliczone na podstawie innych informacji w bazie),» proste vs. złożone. KISIM, WIMiIP, AGH 9

Atrybuty proste vs. złożone (przykład): W diagramach atrybuty oznaczane są elipsami: Atrybuty złożone elipsami z podwójną linią: Atrybuty pochodne elipsami z przerywanej linii: nazwa nazwa nazwa KISIM, WIMiIP, AGH 10

Zbiory związków: Związek(relationship) reprezentuje relacjępomiędzy pewnymi encjami (obiektami). Np.: Jan Kowalski encja: pracownik pracuje w B3 Betatrex encja: oddzial W diagramach E-R zbiory związków oznaczane są rombami KISIM, WIMiIP, AGH 11

Zbiór związków (przykład): student ma oceny KISIM, WIMiIP, AGH 12

Diagramy E-R symbole podstawowe: Prostokąty zbiory encji Elipsy atrybuty Elipsy linia podwójna atrybuty złożone Elipsy linia przerywana atrybuty pochodne Romby zbiory związków Linie łączązbiory encji ze zbiorami związków oraz atrybuty ze zbiorami encji i związków KISIM, WIMiIP, AGH 13

Stopień zbioru związków: Stopieńzbioru związków(degreeof a relationshipset) określony jest przez liczbę zbiorów encji, które pozostają w danym związku. Związek dwóch zbiorów encji nazywany jest binarnym(stopień = 2). Większośćzwiązków obserwowanych w świecie rzeczywistym to związki binarne. W związku może uczestniczyćpewna, większa od 2 ilośćzbiorów encji związek n-arny(stopień= n) mówimy wtedy o związku wieloargumentowym lub wieloczłonowym.» Np. zbiory encji: przedmiot, prowadzacy oraz student mogą być połączone związkiem o stopniu = 3. prowadzacy ma zajęcia student przedmiot KISIM, WIMiIP, AGH 14

Stopień przyporządkowania (krotność związków): Stopieńprzyporządkowaniazbiorów encji do związku (relacji) określony jest przez ilośćencji z każdego zbioru, które sąze sobąw tym związku powiązane. Rodzaje związków binarnych ze względu na stopień przyporządkowania: jeden do jeden jeden do wielu wiele do wielu W diagramie E-R rodzaje związków są oznaczane w następujący sposób: lub: (grot strzałki) oznacza stopień przyporządkowania jeden (brak grotu) wielu KISIM, WIMiIP, AGH 15

Stopień uczestnictwa: Jeżeli każda encja zbioru musibraćudziałw związku, wówczas jest on całkowity (uczestnictwo obowiązkowe); w przeciwnym razie częściowy (uczestnictwo opcjonalne). W diagramie E-Rlinie podwójnełączązbiory encji ze zbiorami związków w przypadku całkowitości. Występowanie encji pewnego zbioru (istnienie obiektu w rzeczywistości) może zależećod występowania encji (obiektu) innego zbioru. Jeżeli występowanie encji x zależy od y (is existence dependent on), to:» y jest encją nadrzędną(dominującą) (dominant entity)» x jest encją podrzędną(subordinate entity) Np. jeśli encja dominująca studentzostanie usunięta z bazy, to wszystkie wystąpienia związanych z nią encji oceny także muszą zostać usunięte. KISIM, WIMiIP, AGH 16

Role: Zbiory encji pozostające w związku niekoniecznie muszą być różne, wówczas encje takie występująw różnych rolach, a związek taki nazywamy związkiem rekurencyjnym. W diagramie E-Rrole oznaczane sąprzez etykiety przy liniach łączących symbol encji (prostokąt) i związku (romb). Oznaczanie ról nie jest obowiązkowe, stosuje sięje dla podkreślenia semantyki związku. prowadzacy asystenci profesor hierarchia KISIM, WIMiIP, AGH 17

Zbiory encji czy atrybuty Decyzje projektowe: Wybór jest zależny od rodzaju modelowanego przedsięwzięcia (fragmentu rzeczywistości) oraz od znaczenia poszczególnych atrybutów. Zbiory encji czy zbiory związków Możliwa wskazówka: związek wyznacza pewnąakcję(zdarzenie), która zachodzi (zaszła) pomiędzy encjami (obiektami). Związki binarne czy związki o wyższym stopniu Związek o stopniu większym niż 2 zawsze może być zastąpiony przez pewną liczbę związków binarnych. Jednak związki n-arne mogą lepiej oddawać semantykę relacji (jawne określenie, że chodzi o związek więcej niż 2 obiektów). Przykład: 1. Adres jako atrybut Adres może byćtraktowany jako atrybut (na przykład encji student), wówczas jego wartością jest tekst, np: "Poznań, ul. Kwiatowa 5 m. 12". 2. Adres jako jednostka Adres może byćtraktowany jako niezależna jednostka o atrybutach: Miejscowość, Ulica, Nr Domu, Nr Lokalu. KISIM, WIMiIP, AGH 18

Ograniczenia - warunki integralności W ramach projektowania baz danych specyfikuje siępewne ograniczenia ilościowe i zależności pomiędzy encjami lub związkami, które mają zachodzić zawsze. Ograniczenia te i zależności określająwarunki integralnościrozważnej bazy i są następnie sprawdzane i dotrzymywane. Do najistotniejszych warunków ogólnych, specyfikowalnych w modelu E-R należą:» stopień przyporządkowania zbiorów encji do związku,» zależność występowania encji z różnych zbiorów,» całkowitość vs. częściowość udziału zbioru encji w zbiorze związków. KISIM, WIMiIP, AGH 19

Klucze w zbiorze encji: Nadkluczem(super key) jest każdy zbiór atrybutów, którego wartości jednoznacznie identyfikująencjęw zbiorze encji (częściowa zależnośćfunkcjonalna). Kluczem kandydującym(candidatekey) nazywany jest nadklucz o minimalnej liczbie atrybutów w zbiorze encji (pełna zależnośćfunkcjonalna). W danym zbiorze może występowaćkilka kluczy kandydujących, jeden z nich (dowolnie wybrany) nazywany jest kluczem głównym(primary key). W diagramie E-Rklucze główne sąoznaczane przez podkreślenie etykiety atrybutu. KISIM, WIMiIP, AGH 20

Klucze w zbiorze związków: Jeżeli zbiór związków posiada atrybuty o odpowiednich własnościach, na podstawie tych atrybutów można zdefiniowaćdla niego (jednoznacznie identyfikujące) klucze główne tak, jak dla zbiorów encji. Złożeniekluczy głównych zbiorów encji biorących udziałw związku tworzy nadklucz dla zbioru związków. Sposób zdefiniowania klucza głównegozależy od stopnia związku oraz stopnia przyporządkowania poszczególnych zbiorów encji.» Dla binarnego związku jeden do jedenkażdy z kluczy głównych (encji) może być kluczem głównym.» Dla binarnego związku wielu do wielupara kluczy głównych encji jest kluczem głównym. KISIM, WIMiIP, AGH 21

Zbiory słabe encji: Zbiór encji, który nie posiada klucza głównego (nie ma odpowiednich atrybutów), jest nazywany zbiorem słabym encji(weakentityset) w przeciwieństwie do zbioru silnego -(strong entity set). Informacyjnośćzbioru słabych encji jest uwarunkowana istnieniem innego silnego zbioru encji, który pozostaje ze słabym w związku jeden do wielu. Encje tego zbioru silnego dominująrównieżnad encjami słabego w sensie zależności występowania. W zbiorze słabych encji występować musi wówczas klucz częściowy (partialkey), który pozwala na rozróżnienie (częściowe) jego encji względem dominującego zbioru silnego. Kluczem głównym zbioru słabego encji jest kompozycja klucza głównego dominującego zbioru silnego encji i klucza częściowego zbioru słabego. KISIM, WIMiIP, AGH 22

Zbiory słabe encji: W diagramie E-R klucze częścioweoznaczane sąprzez podkreślenieetykiety atrybutu liniąprzerywaną. Związki między słabąjednostkąa jednostkami jej właścicieli nazywamy związkami identyfikującymi. W notacji graficznej zbiory słabe encji oraz zbiory związków identyfikujących rysujemy podwójnąlinią. student ma oceny imie nazwisko przedmiot data ocena nr_albumu KISIM, WIMiIP, AGH 23

Diagramy E-R tabele Opis bazy danych za pomocądiagramu E-R może byćprzekształcony w opis w postaci kolekcji tabel. Istnienie kluczy głównych pozwala na jednoznaczne wyrażenie zbiorów encji i zbiorów związków w formie tabel. Zasady ogólne» Każdemu zbiorowi encji odpowiada tabela (tabela przyjmuje nazwę zbioru encji).» Każdemu zbiorowi związków (jeżeli ten posiada atrybuty) odpowiada tabela (tabela przyjmuje nazwę zbioru związków).» Kolumny tabel reprezentująatrybuty opisujące odpowiednio encje lub związki.» Wiersze tabel odpowiadają encjom lub związkom Zbiór silny encji jest reprezentowany bezpośrednio Dla zbioru słabego encjitabela musi zawieraćdodatkowo atrybuty stanowiące klucz główny tabeli nadrzędnej. KISIM, WIMiIP, AGH 24

Diagramy E-R tabele (przykład) student ma oceny imie nazwisko przedmiot data ocena nr_albumu KISIM, WIMiIP, AGH 25

Diagramy E-R tabele Jeżeli zbiór związkównie ma własnego klucza głównego, wówczas tabela musi dodatkowo zawieraćodpowiedniądo własności kombinacjękluczy głównych swoich zbiorów encji.» Np. Związek wielu do wielujest reprezentowany przy pomocy tabeli o dodatkowych kolumnach odpowiadających kluczom głównym zbiorów encji biorących udział w związku. student ma zajęcia przedmiot KISIM, WIMiIP, AGH 26

Student lubi piwo L.p. Imię Nazwisko Marka piwa Nazwa piwa Gatunek Alkohol [%] 1. Stefan śeromski Okocim Palone lager 7 2. Stefan śeromski śywiec Porter porter bałtycki 9,5 3. Stefan śeromski Cornelius ALE ALE ale 5,8 4. Eliza Orzeszkowa Ciechan Miodowe 5,7 5. Eliza Orzeszkowa Redd's Cranberry 4,5 6. Adam Mickiewicz Okocim Porter porter bałtycki 8,3 7. Friedrich Nietzsche Paulaner Hefe-Weissbier Naturtrüb pszeniczne 5,5 8. Friedrich Nietzsche Ciechan Pszeniczne pszeniczne 5,6 9. Tadeusz Konwicki śywiec śywiec Beer 5,6 10. Rafał Wojaczek śywiec śywiec Beer 5,6 11. Wisława Szymborska śywiec śywiec Beer 5,6 12. Johann Goethe śywiec śywiec Beer 5,6 13. James Joyce Carlsberg Carlsberg lager 5 14. Francis Fitzgerald Haineken Haineken Lager Beer lager 5 15. Maria Skłodowska-Curie śywiec Desperados 6 16. Zofia Nałkowska ŁomŜa Miodowe 5,7 17. Fiodor Dostojewski Tyskie Gronie 5,6 18. Fryderyk Chopin Tyskie Gronie 6,6 19. Stefan Batory Tyskie Gronie 7,6 KISIM, WIMiIP, AGH 27

Student lubi piwo STUDENT PIWO L.p. Imię Nazwisko Marka piwa Nazwa piwa Gatunek Alkohol [%] 1. Stefan śeromski Okocim Palone lager 7 2. Stefan śeromski śywiec Porter porter bałtycki 9,5 3. Stefan śeromski Cornelius ALE ALE ale 5,8 4. Eliza Orzeszkowa Ciechan Miodowe 5,7 5. Eliza Orzeszkowa Redd's Cranberry 4,5 6. Adam Mickiewicz Okocim Porter porter bałtycki 8,3 7. Friedrich Nietzsche Paulaner Hefe-Weissbier Naturtrüb pszeniczne 5,5 8. Friedrich Nietzsche Ciechan Pszeniczne pszeniczne 5,6 9. Tadeusz Konwicki śywiec śywiec Beer 5,6 10. Rafał Wojaczek śywiec śywiec Beer 5,6 11. Wisława Szymborska śywiec śywiec Beer 5,6 12. Johann Goethe śywiec śywiec Beer 5,6 13. James Joyce Carlsberg Carlsberg lager 5 14. Francis Fitzgerald Haineken Haineken Lager Beer lager 5 15. Maria Skłodowska-Curie śywiec Desperados 6 16. Zofia Nałkowska ŁomŜa Miodowe 5,7 17. Fiodor Dostojewski Tyskie Gronie 5,6 18. Fryderyk Chopin Tyskie Gronie 6,6 19. Stefan Batory Tyskie Gronie 7,6 KISIM, WIMiIP, AGH 28

Student lubi piwo STUDENT PIWO GATUNEK PIWO L.p. Imię Nazwisko Marka piwa Nazwa piwa Gatunek Alkohol [%] 1. Stefan śeromski Okocim Palone lager 7 2. Stefan śeromski śywiec Porter porter bałtycki 9,5 3. Stefan śeromski Cornelius ALE ALE ale 5,8 4. Eliza Orzeszkowa Ciechan Miodowe 5,7 5. Eliza Orzeszkowa Redd's Cranberry 4,5 6. Adam Mickiewicz Okocim Porter porter bałtycki 8,3 7. Friedrich Nietzsche Paulaner Hefe-Weissbier Naturtrüb pszeniczne 5,5 8. Friedrich Nietzsche Ciechan Pszeniczne pszeniczne 5,6 9. Tadeusz Konwicki śywiec śywiec Beer 5,6 10. Rafał Wojaczek śywiec śywiec Beer 5,6 11. Wisława Szymborska śywiec śywiec Beer 5,6 12. Johann Goethe śywiec śywiec Beer 5,6 13. James Joyce Carlsberg Carlsberg lager 5 14. Francis Fitzgerald Haineken Haineken Lager Beer lager 5 15. Maria Skłodowska-Curie śywiec Desperados 6 16. Zofia Nałkowska ŁomŜa Miodowe 5,7 17. Fiodor Dostojewski Tyskie Gronie 5,6 18. Fryderyk Chopin Tyskie Gronie 6,6 19. Stefan Batory Tyskie Gronie 7,6 KISIM, WIMiIP, AGH 29

Student lubi piwo STUDENT PIWO GATUNEK PIWO L.p. Imię Nazwisko Marka piwa Nazwa piwa Gatunek Alkohol [%] 1. Stefan śeromski Okocim Palone lager 7 2. Stefan śeromski śywiec Porter porter bałtycki 9,5 3. Stefan śeromski Cornelius ALE ALE ale 5,8 4. Eliza Orzeszkowa Ciechan Miodowe 5,7 5. Eliza Orzeszkowa Redd's Cranberry 4,5 6. Adam Mickiewicz Okocim Porter porter bałtycki 8,3 7. Friedrich Nietzsche Paulaner Hefe-Weissbier Naturtrüb pszeniczne 5,5 8. Friedrich Nietzsche Ciechan Pszeniczne pszeniczne 5,6 9. Tadeusz Konwicki śywiec śywiec Beer 5,6 10. Rafał Wojaczek śywiec śywiec Beer 5,6 11. Wisława Szymborska śywiec śywiec Beer 5,6 12. Johann Goethe śywiec śywiec Beer 5,6 13. James Joyce Carlsberg Carlsberg lager 5 14. Francis Fitzgerald Haineken Haineken Lager Beer lager 5 15. Maria Skłodowska-Curie śywiec Desperados 6 16. Zofia Nałkowska ŁomŜa Miodowe 5,7 17. Fiodor Dostojewski Tyskie Gronie 5,6 18. Fryderyk Chopin Tyskie Gronie 6,6 19. Stefan Batory Tyskie Gronie 7,6 KISIM, WIMiIP, AGH 30

Student lubi piwo STUDENT PIWO GATUNEK L.p. Imię Nazwisko Marka piwa Nazwa piwa Alkohol [%] Gatunek ID_studenta nazwisko nazwa_piwa alk.% gatunek imie marka_piwa KISIM, WIMiIP, AGH 31

Student lubi piwo KISIM, WIMiIP, AGH 32

Student lubi piwo STUDENT PIWO GATUNEK L.p. Imię Nazwisko Marka piwa Nazwa piwa Gatunek Alkohol [%] 1. Stefan śeromski Okocim Palone lager 7 2. Stefan śeromski śywiec Porter porter bałtycki 9,5 3. Stefan śeromski Cornelius ALE ALE ale 5,8 4. Eliza Orzeszkowa Ciechan Miodowe 5,7 5. Eliza Orzeszkowa Redd's Cranberry 4,5 6. Adam Mickiewicz Okocim Porter porter bałtycki 8,3 7. Friedrich Nietzsche Paulaner Hefe-Weissbier Naturtrüb pszeniczne 5,5 8. Friedrich Nietzsche Ciechan Pszeniczne pszeniczne 5,6 9. Tadeusz Konwicki śywiec śywiec Beer 5,6 10. Rafał Wojaczek śywiec śywiec Beer 5,6 11. Wisława Szymborska śywiec śywiec Beer 5,6 12. Johann Goethe śywiec śywiec Beer 5,6 13. James Joyce Carlsberg Carlsberg lager 5 14. Francis Fitzgerald Haineken Haineken Lager Beer lager 5 15. Maria Skłodowska-Curie śywiec Desperados 6 16. Zofia Nałkowska ŁomŜa Miodowe 5,7 17. Fiodor Dostojewski Tyskie Gronie 5,6 18. Fryderyk Chopin Tyskie Gronie 6,6 19. Stefan Batory Tyskie Gronie 7,6 KISIM, WIMiIP, AGH 33

Student lubi piwo KISIM, WIMiIP, AGH 34

starsza wersja KISIM, WIMiIP, AGH 35

Normalizacja. KISIM, WIMiIP, AGH 36

Przykład wad bazy danych: Rozważmy schemat relacji:» pracownik_oddzialu = <nazwa_oddzialu, numer_oddzialu, adres_oddzialu, pesel, imie, nazwisko, stanowisko, wynagrodzenie> Redundancja:» Dane nazwa_oddzialu, numer_oddzialu, adres_oddzialu są pamiętane dla każdego pracownika» Marnowanie miejsca (przestrzeni potrzebnej dla przechowywania danych)» Komplikacje (aktualizacja, błąd, usuwanie ) Brak możliwości reprezentowania pewnych informacji» Nie można reprezentowaćinformacji o oddziałach, których powołanie dopiero jest planowane i nie zatrudniły jeszcze pracowników» Rozwiązaniem mogło by byćzastosowanie wartości NULL, ale takie rozwiązanie także stwarza pewne problemy» Nie możemy zaprezentowaćw prosty sposób wszystkich pracowników z danego miasta, ponieważmiejscowośćnie jest wyodrębnionym atrybutem KISIM, WIMiIP, AGH 37

Rodzaje anomalii: Anomalia dołączania- wadą jest to, że musimy wpisywać wszystko albo nic,» np. planuje siępowołanie nowego oddziału, nie możemy jednak zapisaćw bazie miejscowości, adresu i nazwy zakupionego budynku, dopóki nowy oddział nie zatrudni pracowników Anomalia aktualizacji-np. oddziałfirmy zostałprzeniesiony, przez co musimy aktualizowaćjego adres dla każdego pracownika, a przez przypadek omijamy Jana Kowalskiego Anomalia usuwania zamknięto oddziałfirmy, w związku z czym usunięto z bazy wszystkie rekordy zawierające jego nazwę, tym samym usunięto wszystkie dane dotyczące pracowników KISIM, WIMiIP, AGH 38

Dekompozycja: Można zdekomponować schemat relacji pracownik_oddzialu:» oddzial = <nazwa_oddzialu, numer_oddzialu, miejscowosc_oddzialu, adres_oddzialu>» pracownik = <numer_oddzialu, pesel, imie, nazwisko, stanowisko, wynagrodzenie> Wszystkie atrybutyoryginalnego schematu (R) musząsiępojawićw dekompozycji (R 1, R 2 ): R = R 1 R 2 W przypadku gdy relacja nie posiada właściwej postaci należy dokonać dekompozycji relacji R na <R 1, R 2,..., R n > Proces dochodzenia do właściwej postaci określa sięmianem normalizacji KISIM, WIMiIP, AGH 39

Postacie normalne: Pierwsza (1PN) Druga (2PN) Trzecia (3PN) Boyce a-codd a(pnbc) Czwarta (4PN) Piąta (5PN) KISIM, WIMiIP, AGH 40

Pierwsza postać normalna Relacja jest w pierwszej postaci normalnej, jeśli każda wartość atrybutu w każdej krotce tej relacji jest wartością elementarną, czyli nierozkładalną. Relacja jest w pierwszej postaci normalnej, jeśli nie ma powtarzających się grup. KISIM, WIMiIP, AGH 41

Przykład: KISIM, WIMiIP, AGH 42

Zależności funkcyjne i wielowartościowe: Zależnośćfunkcyjnaoznacza, że znając wartośćjednego atrybutu, zawsze możemy określićwartośćinnego. Symbolem stosowanym w teorii relacji jest strzałka umieszczona pomiędzy dwoma atrybutami, na przykład: X Y (X określa Y) przykład:gdy znamy numer PESEL naszego pracownika, możemy określićjego nazwisko Zależnośćwielowartościowaoznacza, że znając wartośćjednego atrybutu, możemy zawsze określićwartości zbioru innego atrybutu. W teorii relacji używa sięsymbolu zależności wielowartościowej w postaci podwójnej strzałki, na przykład: X Y (X określa wiele Y) przykład:znając numer oddziału możemy określićnazwiska wszystkich zatrudnionych pracowników KISIM, WIMiIP, AGH 43

Teoria postaci normalnych relacji: Formalnie zależnośćdanychmożna zdefiniowaćnastępująco. Schemat relacji oznaczamy przez R<A 1...A N >, gdzie A 1...A N są atrybutami relacji. Niech X i Y będąpodzbiorami zbioru atrybutów. X {A 1...A N }, Y {A 1...A N }. Zależność danych zapisujemy w postaci: X Y i mówimy, że podzbiór atrybutów Y zależy funkcyjnieod podzbioru atrybutów X, jeżeli nie jest możliwe, by relacja R zawierała dwie krotki mające składowe zgodne (tzn. identyczne dla wszystkich atrybutów ze zbioru X) i jednocześnie co najmniej jednąniezgodnąskładowądla atrybutów ze zbioru Y. KISIM, WIMiIP, AGH 44

Klucz: Kluczem relacjinazywamy taki zbiór atrybutów tej relacji, których kombinacje wartości jednoznacznie identyfikują każdą krotkętej relacji a żaden podzbiór tego zbioru nie posiada tej własności. W kluczu nie może zawierać się wartość NULL. Klucz jest kluczem prostym, jeżeli powyżej opisany zbiór jest jednoelementowy -w przeciwnym razie mówimy o kluczu złożonym. W ogólności, w relacji można wyróżnićwiele kluczy, które nazywamy kluczami potencjalnymi. Wybrany klucz spośród kluczy potencjalnych nazywamy kluczem głównym. KISIM, WIMiIP, AGH 45

Druga i trzecia postać normalna: Relacja jest w drugiejpostaci normalnej, jeśli jest w 1PN oraz każdy atrybut tej relacji nie wchodzącyw skład żadnego klucza potencjalnego jest w pełni funkcyjniezależnyod wszystkich kluczy potencjalnych tej relacji. Relacja jest w 2PNjeżeli każdy atrybut nie wchodzący w skład klucza zależy od klucza a nie od jego części. Relacja będąca w pierwszej postaci normalnej, jest równocześnie w drugiejpostaci normalnej, jeśli wszystkie jej klucze potencjalne są kluczami prostymi. Dana relacja jest w trzeciejpostaci normalnej, jeśli jest ona w drugiej postaci normalnej i każdy jej atrybut nie wchodzący w skład żadnego klucza potencjalnego nie jest przechodnio funkcyjnie zależny od żadnego klucza potencjalnego tej relacji. KISIM, WIMiIP, AGH 46

Druga i trzecia postać normalna: Inaczej mówiąc, wszystkie niekluczowe kolumny są określane kluczem, całym kluczem i tylko kluczem, tak nam dopomóż Codd KISIM, WIMiIP, AGH 47

Przykład: Wartości atrybutów nie są elementarne KISIM, WIMiIP, AGH 48

Przykład (c.d.): Klucz potencjalny:<rodzaj_studiow, rok_studiow, rok_akademicki, przedmiot, forma, termin, student_nr_albumu> Zależności funkcyjne Powtarzające się grupy KISIM, WIMiIP, AGH 49

Klucz główny relacji protokoly: <id_przedmiot, termin, nr_albumu> KISIM, WIMiIP, AGH 50

Ta relacja nie jest w trzeciej postaci normalnej Pracownik PESEL KodPocztowy Miejscowość Województwo Jan Kowalski 12345678911 32-082 Bolechowice małopolskie Adam Kot 98977796666 30-150 Kraków małopolskie Ewa Lis 76281976372 32-082 Bolechowice małopolskie KISIM, WIMiIP, AGH 51

Zależność funkcjonalna przechodnia Niech X, Yi Zbędątrzema rozłącznymi podzbiorami atrybutów danej relacji Z jest przechodnio funkcjonalnie zależny od X, jeśli Z jest funkcjonalnie zależny od Yi Yjest funkcjonalnie zależny od Xnatomiast Xnie jest zależny od Yi Ynie jest zależny od Z KISIM, WIMiIP, AGH 52

Forma normalna Boyce-Codd a Jest uzupełnieniem trzeciej postaci normalnej i jest niezbędna w przypadku gdy atrybuty będące kandydatami na klucze są:» wielokrotne,»złożone,» nakładające się na siebie KISIM, WIMiIP, AGH 53

Forma normalna Boyce a-codd a Relacja jest w postaci Boyce-Codd a(bcpn)jeżeli dla każdej nietrywialnejzależności między podzbiorami relacji zbiór będący wyznacznikiem jest zbiorem identyfikującym tej relacji ZależnośćX Yjest trywialna jeżeli Y jest podzbiorem X Definicja BCPN zastępuje definicje, pierwszej, drugiej i trzeciej formy normalnej dodatkowo je poszerzając KISIM, WIMiIP, AGH 54

Forma normalna Boyce-Codd a IdStudenta 1 1 2 3 4 Seminarium metalurgia inżynieria wiedzy inżynieria wiedzy metalurgia informatyka Opiekun Kowalski Kozłowski Janowski Kowalski Zając opiekun może miećtylko jedno seminarium, więc kluczem w relacji może być: podzbiór IdStudenta + Seminarium lub IdStudenta + Opiekun Przy tej drugiej opcji nie spełniona jest III postaćnormalna, ponieważklucz IdStudenta+ Opiekunnie determinująseminarium, która zależy tylko i wyłącznie od opiekuna. Z tego powodu jako kandydata na klucz główny powinno sięwziąćpod uwagę IdStudenta + Seminarium zależnośćopiekun Seminariumjest funkcjonalna i nietrywialnaa Opiekunnie jest zbiorem identyfikującym KISIM, WIMiIP, AGH 55

Forma normalna Boyce-Codd a Załóżmy, że chcemy przydzielićnazwiska prowadzących do odpowiednich seminariów przed rozpoczęciem zapisów studentów na konkretny przedmiot. Nie możemy tego zrobić, ponieważnazwisko studenta jest częściąklucza głównego i z tego powodu, przy wstawianiu nowego wiersza tabeli trzeba wstawićnazwisko studenta (anomalia dołączania). Równieżmoże zaistniećanomalia w przypadku, gdy wystąpi potrzeba zmiany nazwiska prowadzącego przedmiot. Wtedy będzie trzeba wstawićnowe nazwisko do wielu wierszy jednocześnie. Aby zaradzićtym problemom należy sprowadzićtabelędo postaci Boyce-Codda. W tym celu zostanąutworzone 3 tabele: KISIM, WIMiIP, AGH 56

Forma normalna Boyce-Codd a IdStudenta Opiekun Seminarium Opiekun 1 Kowalski metalurgia Kowalski 1 Kozłowski inżynieria wiedzy Kozłowski 2 Janowski inżynieria wiedzy Janowski 3 Kowalski informatyka Zając 4 Zając IdStudenta Seminarium 1 metalurgia 1 inżynieria wiedzy 2 inżynieria wiedzy 3 metalurgia 4 informatyka KISIM, WIMiIP, AGH 57

Forma normalna Boyce-Codd a IdPracownika Zawód Wykształcenie Stawka 1 ślusarz podstawowe 5,20 1 tokarz zawodowe 5,30 2 ślusarz zawodowe 5,50 3 tokarz zawodowe 5,30 4 ślusarz podstawowe 5,20 kluczem w relacji jest podzbiór IdPracownika, Zawódlub IdPracownika, Wykształcenie zaleŝnośćzawód, Wykształcenie Stawkajest funkcjonalna i nietrywialna a Zawód, Wykształcenie nie jest zbiorem identyfikującym KISIM, WIMiIP, AGH 58

Podsumowanie: Normalizacja ma na celu takie przekształcenie relacji, by uniknąć redundancji i anomalii. Przekształcenie relacji do kolejnych postaci normalnych wiąże się najczęściej ze zmniejszeniem ilości pamięcipotrzebnej do przechowania informacji. Unikanie powtórzeń pozwala na łatwiejszą i szybszą aktualizację danych. Doprowadzenie bazy do wysokiej postaci normalizacji może spowolnić odczyt w dużych bazach ze względu na skomplikowany schemat danych. W większości przypadków po znormalizowaniu bazy danych przychodzi kolej na rozważenie możliwości wykonania odwrotnej operacji (denormalizacji), polegającej na połączeniu niektórych znormalizowanych tabel, a to z myśląo przyspieszeniu dostępu do pewnych danych. KISIM, WIMiIP, AGH 59

Czwarta forma normalna Relacja jest w czwartej formie normalnej (IV PN) wtedy i tylko wtedy, gdy jest w trzeciej postaci normalnej i nie zawiera nietrywialnej wielowartościowej zależności atrybutów KISIM, WIMiIP, AGH 60

Zależność wielowartościowa Podzbiór atrybutów Yjest wielowartościowo funkcjonalnie zależny od podzbioru Xw schemacie R, jeżeli dla dowolnej relacji rw schemacie Ri dla dowolnej pary krotek t 1 i t 2 z relacji r istnieje taka para krotek że: s 1 [X]=s 2 [X]=t 1 [X]=t 2 [X] i s 1 [Y]= t 1 [Y] i s 1 [R-X-Y]=t 2 [R-X-Y] i s 2 [Y]= t 2 [Y] i s 2 [R-X-Y]=t 1 [R-X-Y] KISIM, WIMiIP, AGH 61

Zależność wielowartościowa X Y R-X-Y krotka Nazwisko Imię dziecka Znajomość języków t 1 Kot Ania niemiecki t 2 Kot Jaś angielski s 1 Kot Ania angielski s 2 Kot Jaś niemiecki Słoń Ola niemiecki Słoń Ola angielski KISIM, WIMiIP, AGH 62

Zależność wielowartościowa t 1 [X]=t 2 [X]=s 1 [X]=s 2 [X]=(Kot) s 1 [Y]= t 1 [Y]=(Ania)i s 1 [R-X-Y]=t 2 [R-X-Y]=(angielski)i s 2 [Y]= t 2 [Y]=(Jaś)i s 2 [R-X-Y]=t 1 [R-X-Y]=(niemiecki) KISIM, WIMiIP, AGH 63

Piąta postać normalna Relacja jest w piątej formie normalnej (V PN) wtedy i tylko wtedy, gdy jest w czwartej postaci normalnej i nie istnieje jej rozkład odwracalny na zbiór mniejszych tabel. KISIM, WIMiIP, AGH 64

Klucz sztuczny Klucz stworzony wyłącznie dla potrzeb więzi w celu zastąpienia złożonego klucza głównego KISIM, WIMiIP, AGH 65

Klucz złożony... KISIM, WIMiIP, AGH 66

...zastąpiony kluczem sztucznym KISIM, WIMiIP, AGH 67

Klucz złożony... KISIM, WIMiIP, AGH 68

...zastąpiony kluczem sztucznym KISIM, WIMiIP, AGH 69

Klucz sztuczny Klucz sztuczny może byćwykorzystany do kodowania atrybutów tekstowych (w niektórych przypadkach także liczbowych) o powtarzających sięwartościach, dla których można utworzyć listę Użycie klucza sztucznego wymaga stworzenia dodatkowej tabeli (słownika) pozwalającego na rozkodowanie klucza KISIM, WIMiIP, AGH 70

Nr faktury od Za okres do Identyfikator nabywcy 21113332437 1.11.2007 30.11.2007 1 21218909871 1.12.2007 31.12.2007 1 21113332442 1.11.2007 30.11.2007 2 21218909900 1.12.2007 31.12.2007 2 KISIM, WIMiIP, AGH 71

Nr faktury od Za okres 21113332437 1.11.2007 30.11.2007 1 21218909871 1.12.2007 31.12.2007 1 21113332442 1.11.2007 30.11.2007 2 21218909900 1.12.2007 31.12.2007 2 do Identyfikator nabywcy wartość netto * stawka liczba jednostek * cena wartośćnetto + kwota VAT tego nie trzeba pamiętać KISIM, WIMiIP, AGH 72

to też jest powtarzająca się grupa danych, bo tabela może wyglądać tak: KISIM, WIMiIP, AGH 73

brak dobrego kandydata na klucz grupy i dlatego wprowadzamy klucz sztuczny i wykonujemy dekompozycję KISIM, WIMiIP, AGH 74

to teżjest powtarzająca sięgrupa danych, w której kluczem jest rodzaj usługi i dlatego trzeba tablicę zdekomponować: KISIM, WIMiIP, AGH 75

to nie sąpowtarzające sięgrupy danych, ale powtarzające siędane, które warto przechowywać w słownikach: KISIM, WIMiIP, AGH 76

można nie używaćsztucznych kluczy ale należy wówczas zadbaćo integralność poprzez zapewnienie kaskadowej aktualizacji: on update cascade on delete cascade KISIM, WIMiIP, AGH 77

KISIM, WIMiIP, AGH 78

KISIM, WIMiIP, AGH 79

KISIM, WIMiIP, AGH 80

Toad weak entity widok KISIM, WIMiIP, AGH 81