Projektowanie struktury logicznej (schematu) relacyjnych baz danych

Slides:



Advertisements
Podobne prezentacje
Teoretyczne podstawy tworzenia systemów relacyjnych baz danych
Advertisements

Projektowanie baz danych
Modelowanie logiczne (dla relacyjnych SZBD)
Grażyna Mirkowska PJWSTK 15 listopad 2000
S – student, P – przedmiot, W – wykładowca
Relacyjny model danych
Wprowadzenie do systemów baz danych
Relacyjny model danych
Bazy danych 7. Postaci normalne P. F. Góra semestr letni 2004/05
WPROWADZENIE DO BAZ DANYCH
MS Access 2000 Normalizacja Paweł Górczyński 2005.
Projektowanie Aplikacji Komputerowych
08: ERD – podencje, łuki i pułapki
POWTÓRZENIE Normalizacja: Pojęcia: redundancja danych;
Normalizacja : Głównym celem projektowania bazy przeznaczonej dla systemu relacyjnego jest właściwa reprezentacja danych, związków i więzów. W identyfikowaniu.
Projektowanie relacyjnych baz danych
Modele baz danych - spojrzenie na poziom fizyczny
Bazy Danych Wykład 1 S. Kozielski.
Relacyjny model danych
Język SQL (Structured Query Language) DDL (Data Definition Language)
Wykład 3 Analiza i projektowanie strukturalne
Teoria relacyjnych baz danych
Bazy Danych II prowadzący: mgr inż. Leszek Siwik
Zależności funkcyjne.
DIAGRAMY ER 2 (ENTITY-RELATIONSHIP DIAGRAMS 2) Ćwiczenia 2.
Diagramy ER (Entity-relationship diagrams)
Modelowanie model związków encji
Zadanie programowania liniowego PL dla ograniczeń mniejszościowych
Systemy baz danych Wykład 1
Budowanie tabel i relacji
Informatyka Relacyjne bazy danych.
Andrzej Macioł Bazy danych – model relacyjny – cz. 1 Andrzej Macioł
II. Matematyczne podstawy MK
Wybrane zagadnienia relacyjnych baz danych
Relacyjne bazy danych Tworzenie bazy danych Marzena Nowakowska Katedra Informatyki Stosowanej, WZiMK, PŚk p C dostęp do materiałów:
Model relacyjny.
Bazy danych 1 Literatura: Paul Benon-Davies – Systemy baz danych
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Bazy danych - podstawowe pojęcia
Normalizacja.
Projektowanie relacyjnych baz danych – postacie normalne
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Projektowanie bazy danych
Algorytmika.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 1: Wprowadzenie do baz danych.
Łódź 2008 Banki danych WYKŁAD 2 dr Łukasz Murowaniecki T-109.
Wykład I Podstawy relacyjnych baz danych Powtórzenie wiadomości
Michał Krawczykowski kl. IIIB
Podstawowe informacje
Definiowanie kluczy w tabelach RBD
Model obiektowy bazy danych
Slajd 1© J.Rumiński Jacek Rumiński  Bazy danych Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: , fax: ,
PROJEKTOWANIE KONCEPTUALNE BAZY DANYCH
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Projektowanie relacyjnych baz danych – diagramy związków encji
Diagramy przepływu danych
Projektowanie bazy danych z użyciem diagramów UML Obiektowe projektowanie relacyjnej bazy danych Paweł Jarecki.
Projektowanie postaci formularza:
Modelowanie model związków encji
Bazy Danych Wprowadzenie
1 W wykładzie 2 zaprezentowana jest podstawowa metoda tworzenia schematu relacyjnej bazy danych. Jest ona dwustopniowa. W pierwszej fazie projektujemy.
Temat: Tworzenie bazy danych
Transformacja modelu EER do modelu relacyjnego
Nieprawidłowo zaprojektowana tabela
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Projektowanie struktury logicznej (schematu) relacyjnych baz danych Wykład S. Kozielski

Projektowanie struktury (logicznej) baz danych Modelowanie związków encji – elementy diagramów encja niezależny byt, jednoznacznie identyfikowalny związek łączy encje atrybut opisuje encje i  związki

Przykłady diagramów związków encji (1) zalicza studiuje przedmiot kierunek student N M 1

Przykłady diagramów związków encji (2) pracownik temat N M N należy wykonuje 1 zespół

Przykłady diagramów związków encji (3) zażywa leży lekarstwo oddział chory N M 1

związek wystąpienie – Grabski studiuje informatykę typ - studiuje encja wystąpienie - Grabski typ - student atrybut-odwzorowanie typ związku zbiór wartości typ encji zbiór wartości

student integer char(20) char(50) student album nazwisko adres

student 1 przedmiot kierunek wydział M N album nazwisko adres jęz_ob id_p prowadzący nazwa studiuje zalicza podlega kierunek wydział sem ocena id_k id_w dziekan M N

Algorytm tworzenia schematów relacji na podstawie diagramu związków encji 1) Utwórz schemat relacji dla każdego typu encji. Do schematu tego wchodzą wszystkie atrybuty proste (pojedyncze) opisujące encję. Kluczem schematu jest klucz encji.   2) Utwórz dodatkowy schemat relacji dla każdego atrybutu wielowartościowego. Do schematu tego wchodzi klucz encji i dany atrybut wielowartościowy. Kluczem schematu jest cały schemat. 3) Utwórz schemat relacji dla każdego typu związku. Do schematu tego wchodzą klucze encji powiązanych związkiem oraz atrybuty własne związku. Klucz schematu jest wyznaczany następująco:  dla krotności 1:N – klucz encji wchodzącej do związku przez krawędź N, dla krotności M:N – złożenie kluczy obu encji, dla krotności 1:1 – dowolny z kluczy obu encji,  4) Scal schematy o identycznych kluczach (optymalizacja struktury).

Schematy relacji utworzone dla diagramu opisującego studentów student (album, nazwisko, adres) kierunek (id_k, nazwa) wydział (id_w, nazwa, dziekan) przedmiot (id_p, nazwa, prowadzący) języki (album, język_obcy) studiuje (album, id_k, sem) podlega (id_k, id_w) zalicza (album, id_p, ocena)

Schematy relacji po optymalizacji studenci (album, nazwisko, adres, id_k, sem) kierunki (id_k, nazwa, id_w) wydziały (id_w, nazwa, dziekan) przedmioty (id_p, nazwa, prowadzący) języki (album, język_obcy) zaliczenia (album, id_p, ocena)

Inna forma zapisu diagramów (narzędzia CASE) studiuje student album nazwisko adres kierunek id_k nazwa

Problem atrybutów wielowartościowych N student album nazwisko adres nazwa język_obcy stopień zna M student (album, nazwisko, adres) język_obcy (nazwa) zna (album, nazwa, stopień)   Relacja (tablica) język_obcy – pełni rolę słownika

Problem związków 1 : 1 student (album, nazwisko, adres) czytelnik jest staż nr_karty student (album, nazwisko, adres) czytelnik (nr_karty, staż) jest (album, nr_karty) - problem wyboru klucza  

student (album, nazwisko, adres) czytelnik (nr_karty, staż) jest (album, nr_karty) - problem wyboru klucza  Możliwe rozwiązania:  1) Klucz: nr_karty Wtedy schemat: studenci (album, nazwisko, adres), czytelnik (nr_karty, staż, album) 2) Klucz: album Wtedy schemat: studenci (album, nazwisko, adres, nr_karty), 3) album i nr_karty – klucze równoważne Wtedy schemat: studenci (album, nazwisko, adres, nr_karty, staż)

Związek identyfikujący

Encja słaba: - nie jest w pełni identyfikowalna przez swoje atrybuty - posiada tylko klucz częściowy - jest identyfikowana przez klucz częściowy + klucz encji właścicielskiej Związek identyfikujący - wiąże encję słabą z encją właścicielską Uzupełnienie algorytmu tworzenia schematów relacji na podstawie diagramu związków encji: w przypadku encji słabej dołącz do klucza schematu tworzonej relacji klucz encji właścicielskiej dziecko (nrp, imię, data_ur) ma (nrp, imię)

Dwa związki między dwiema encjami nrp dyplomant album nazwisko adres N recenzuje 1 pracownik prowadzi pracownik (nrp, nazwisko) dyplomant (album, nazwisko, adres) prowadzi (nrp, album) recenzuje (nrp, album) po modyfikacji nazw i scaleniu:   pracownicy (nrp, nazwisko) dyplomanci (album, nazwisko, adres, nrp_prowadz, nrp_rec)

Powiązanie encji samej z sobą zwierzchnik nrp N pracownik kieruje-podlega 1 nazwisko podwładny pracownik (nrp, nazwisko) kieruje_podlega (nrp, nrp)     zwierzchnik podwładny po modyfikacji nazw i scaleniu: pracownicy (nrp, nazwisko, nrp_zwierzchnika)

Projektowanie struktury b. d. poprzez normalizację schematu bazy danych Punkt wyjścia: zbiór atrybutów A1, A2, A3, . . . , An , których wartości chcemy przechowywać w bazie. Początkowy cała b.d. jest widziana jako jedna relacja o schemacie R = {A1, A2, A3, . . . , An }. Następnie schemat R dzielony jest na zbiór schematów relacji w procesie normalizacji. R  { R1, R2, R3, . . . , Rk } Schematy tworzone w procesie normalizacji powinny spełniać warunki kolejnych postaci normalnych.

pracownik adres dziecko Grabski Zabrze, ul. Wolności 123 Adam Jaworek Gliwice, ul. Zwycięstwa 33 Kasia, Ania, Krzyś

Definicja 1PN Schemat relacji (relacja) jest w 1 PN (postaci normalnej), jeśli dziedziny atrybutów tworzących schemat zawierają jedynie wartości atomowe, tzn. nie są zbiorami, ciągami czy listami wartości.

Relacja w 1PN pracownik adres dziecko Grabski Zabrze, ul. Wolności 123 Adam Jaworek Gliwice, ul. Zwycięstwa 33 Kasia Ania Krzyś

Problemy związane z redundancją aktualizacja danych redundancyjnych – niebezpieczeństwo utraty spójności bazy, anomalia usuwania (klucz główny oraz jego składowe nie mogą być puste). anomalia wstawiania

Relacja w 1PN pracownik adres dziecko Grabski Zabrze, ul. Wolności 123 Adam Jaworek Gliwice, ul. Zwycięstwa 33 Kasia Ania Krzyś

Zależność funkcyjna X, Y – atrybuty, dom(X), dom(Y) – dziedziny atrybutów Atrybut Y jest funkcyjnie zależny od X, jeśli istnieje odwzorowanie f: dom(X)  dom (Y) które każdej wartości z dziedziny X przyporządkowuje nie więcej niż jedną wartość z dziedziny Y.   Zapis uproszczony: X  Y

Przykłady zależności funkcyjnych   pracownik  adres pracownik, dziecko  adres

Rola klucza w tworzeniu zależności funkcyjnych   K – klucz, A – atrybut niekluczowy Z definicji klucza wynika, że zawsze zachodzi: K  A

Częściowa zależność funkcyjna Założenie: zachodzi zależność funkcyjna: X  A Jeśli dodatkowo spełniona jest zależność X’  A, gdzie X’  X, to wtedy zależność X  A nazywamy zależnością częściową.  

Przykład Zachodzi zależność: pracownik, dziecko  adres ponadto zachodzi też zależność : pracownik  adres więc zależność : jest zależnością częściową

Definicja 2PN Schemat relacji (relacja) jest w 2PN, jeżeli jest w 1 PN i żaden atrybut niekluczowy nie jest częściowo zależny od klucza (od żadnego z kandydujących kluczy relacji).  

Przykład dekompozycji do 2PN {pracownik, adres, dziecko} {pracownik, adres} {pracownik, dziecko} 1PN 2PN

Przykład innej relacji pracownik instytut wydział temat kwota Grabski Jaworek Bukowy Inf El AEiI BK 303 BW 202 150 200

Istniejące zależności funkcyjne: pracownik  instytut instytut  wydział pracownik  wydział pracownik, temat  kwota a ponadto pracownik, temat  instytut pracownik, temat  wydział

Przykład dekompozycji do 2PN { pracownik, instytut, wydział, temat, kwota } { pracownik, instytut, wydział } { pracownik, temat, kwota } 1PN 2PN

pracownik instytut wydział Grabski Jaworek Bukowy Inf El AEiI Istniejące zależności funkcyjne: pracownik  instytut instytut  wydział pracownik  wydział pracownik instytut wydział

Definicja zależności tranzytywnej K X A Tranzytywna zależność atrybutu A od klucza K poprzez X

Definicja 3PN Schemat relacji (relacja) jest w 3 PN, jeżeli jest w 1 PN i żaden z atrybutów niekluczowych nie jest tranzytywnie zależny od klucza (od żadnego z kandydujących kluczy relacji).

Przykład dekompozycji do 3PN { pracownik, instytut, wydział } { pracownik, instytut} { instytut, wydział } 2PN 3PN

Projektowanie schematu bazy danych metodą dekompozycji Dane wejściowe: Zbiór wszystkich atrybutów, traktowany jako schemat jednej relacji Zbiór zależności między atrybutami Cel: Uzyskanie zbioru schematów relacji w trzeciej lub czwartej postaci normalnej spełniających warunek odwracalności dekompozycji

Warunek odwracalności dekompozycji Dekompozycja schematu R na zbiór schematów { R1, R2, R3, . . . , Rk } jest odwracalna, jeśli dla każdej relacji r(R) zachodzi: R1 (r)  R2 (r)  …  Rk (r) = r

Twierdzenie o dekompozycji odwracalnej Dane: relacja r o schemacie R, tzn. r(R), K - klucz relacji, X, Y - atrybuty tej relacji. Jeśli w relacji r(R) istnieje tranzytywna zależność atrybutu Y od klucza K poprzez atrybut X, to dekompozycja schematu R na dwa schematy {XY, R-Y} jest dekompozycją odwracalną.

Przykład dekompozycji odwracalnej { pracownik, instytut, wydział } { pracownik, instytut} { instytut, wydział } 2PN 3PN

Przykład dekompozycji nieodwracalnej { pracownik, instytut, wydział } { pracownik, wydział } { instytut, wydział } 2PN 3PN

Zależność wielowartościowa (definicja uproszczona) W relacji r(R) jest spełniona wielowartościowa zależność X  Y jeśli z daną wartością atrybutu X jest związany dobrze określony zbiór wartości atrybutu Y Przykład: pracownik  dziecko student  język_obcy

Definicja 4PN Schemat relacji r(R) jest w 4PN, jeżeli jest w 1PN i każda zależność wielowartościowa X  Y, spełniona w r, jest zależnością trywialną, tzn. X  Y = R, lub X jest kluczem relacji r.

Twierdzenie Jeśli w relacji r(R) istnieje wielowartościowa zależność X  Y, to dekompozycja schematu R na dwa schematy {XY, R-Y} jest dekompozycją odwracalną.

Przykład Rozważmy relację o schemacie R = {pracownik, adres, dziecko}. W relacji tej spełniona jest zależność wielowartościowa pracownik  dziecko wobec czego dekompozycja schematu R na dwa schematy {pracownik, dziecko} i {pracownik, adres} jest dekompozycją odwracalną

Inny przykład R = {student, dyscyplina_sportowa, język_obcy} W relacji tej spełnione są zależności wielowartościowe: student  dyscyplina_sportowa student  język_obcy Wykorzystanie jednej z nich prowadzi do odwracalnej dekompozycji: {student, dyscyplina_sportowa} {student, język_obcy}