PLAN WYKŁADU Modelowanie logiczne Transformacja ERD w model relacyjny Odwzorowanie encji Odwzorowanie związków Odwzorowanie specjalizacji i generalizacji BAZY DANYCH Wykład 7 dr inż. Agnieszka Bołtuć GŁÓWNE ETAPY PROJEKTOWANIA BAZY DANYCH świat rzeczywisty zbieranie i analiza wymagań MODELOWANIE LOGICZNE Schemat koncepcyjny jest przekształcany z wyskopoziomowego modelu danych w implementacyjny model danych, analiza funkcjonalna projekt koncepcyjny (pojęciowy) niezależne od SZBD Ten krok nazywany jest też projektowaniem logicznym lub odwzorowaniem modelu danych, projekt aplikacji projekt logiczny zależne od SZBD Wynikiem modelowania logicznego jest schemat bazy zgodny z modelem implementacyjnym wykorzystywanym w danych SZBD. implementacja transakcji projekt fizyczny 1
ERD - FIRMA TRANSFORMACJA ERD DO MODELU RELACYJNEGO encje > tabele własności > kolumny związki > klucze obce lub tabele hierarchia encji > jedna lub wiele tabel ODWZOROWANIE ENCJI ODWZOROWANIE ENCJI Encja Relacja Prosty atrybut encji Atrybut relacji Typ danych atrybutu encji Typ danych atrybutu relacji dla konkretnego SZBD Identyfikator encji Klucz główny relacji Obowiązkowość atrybutu encji Ograniczenie atrybutu relacji NOT NULL Inne ograniczenia atrybutów encji Ograniczenia atrybutów relacji PRACOWNICY Imię, DrugieImię NULL, Nazwisko NOT NULL, DataUrodzenia NOT NULL, Płeć NULL, Pensja DZIAŁY Nazwa NULL PROJEKTY Nazwa NULL, Lokalizacja NOT NULL 2
ODWZOROWANIE SŁABYCH ENCJI Słaba encja Relacja Proste atrybuty encji Atrybuty relacji Identyfikator encji właścicielskiej Klucz obcy relacji Klucz główny relacji Kombinacja identyfikatora encji właścicielskiej i identyfikatora częściowego encji słabej (jeśli taki istnieje) Jeśli istnieje słaba encja E1 której właścicielem jest inna słaba encja E2, to najpierw odwzorowana powinna być encja właścicielska E2 ODWZOROWANIE SŁABYCH ENCJI CZŁONKOWIE_RODZINY PESEL, Imię, DataUrodzenia, Płeć, StopieńPokrewieństwa, PRIMARY KEY (PESEL, Imię) PESEL REFERENCES pracownicy(pesel) ON DELETE CASCADE, ON UPDATE CASCADE ODWZOROWANIE ZWIĄZKÓW ZWIĄZEK BINARNY 1:1 Związek binarny 1:1 transformuje się do klucza obcego we wskazanej tabeli. Związek unarny 1:1 oraz 1:N transformuje się do klucza obcego w tej samej tabeli. Związek binarny 1:M transformuje się do klucza obcego w tabeli po stronie "wiele". Związek binarny M:N transformuje się do tabeli. Związek unarny M:N transformuje się do tabeli. Wybieramy jedną z relacji i dołączamy do zbioru jej atrybutów klucz obcy wskazujący na klucz główny drugiej relacji (najlepiej jeśli relacja do której dołączamy klucz obcy jest po stronie wymaganej jeśli chodzi o udział w związku lub jeśli związek jest obustronnie opcjonalny to transformuje się do klucza obcego w tabeli o mniejszym rozmiarze), Ograniczenie integralnościowe jest definiowane dla atrybutu klucza obcego. Klucz ten nie może przyjmować wartości pustych jeśli związek był wymagany, może jeśli związek był opcjonalny. 3
ZWIĄZEK BINARNY 1:1 ZWIĄZEK BINARNY 1:1 PRACOWNICY Imię, DrugieImię NULL, Nazwisko NOT NULL, DataUrodzenia NOT NULL, Płeć NULL, Pensja DZIAŁY Nazwa NULL, Data_przejecia_kier, PESEL_kier NOT NULL REFERENCES pracownicy(pesel) Inne możliwości: Umieszczenie klucza obcego w relacji która w związku jest po stronie opcjonalnej klucz posiadałby wiele wartości pustych, Scalenie dwóch encji w jedną relację tylko jeśli związek po obu stronach był wymagany, Odwzorowanie związku ZARZĄDZA Umieszczenie kluczy obcych w obu tabelach utrudnienia w utrzymywaniu spójności. ZWIĄZEK BINARNY 1:N ZWIĄZEK BINARNY 1:N Klucz obcy dodawany do relacji po stronie liczności N, Ograniczenia referencyjne definiowane dla klucza obcego, Jeśli po stronie liczności N związek był obowiązkowy to klucz obcy ma ograniczenie NOT NULL, jeśli opcjonalny to NULL, Opcjonalność lub obowiązkowość związku po stronie o liczności 1 nie jest odwzorowywana w modelu relacyjnym. PRACOWNICY Imię, DrugieImię NULL, Nazwisko NOT NULL, DataUrodzenia NOT NULL, Płeć NULL, Pensja, NrDziału NOT NULL REFERENCES działy (numer) DZIAŁY Nazwa NULL, Odwzorowanie związku PRACUJE_W 4
ZWIĄZEK BINARNY 1:N PROJEKTY Nazwa NULL, Lokalizacja NOT NULL, NrDziału NOT NULL REFERENCES działy(numer) DZIAŁY Nazwa NULL ZWIĄZEK BINARNY M:N Reprezentowany przez nową relację, Nazwa powstaje przez połączenie nazw encji uczestniczących w związku, Wprowadzamy klucze obce wskazujące na klucze główne obu relacji reprezentujących encje biorące udział w związku, Wprowadzone klucze obce tworzą klucz główny relacji. Odwzorowanie związku KONTROLUJE ZWIĄZEK BINARNY M:N PRACOWNICYPROJEKTY NrProj REFERENCES projekty(numer), PESELPr REFERENCES pracownicy (PESEL), Godziny, PRIMARY KEY (NrProj,PESELPr) ZWIĄZEK UNARNY Dotyczy rekursywnego powiązania różnych instancji tej samej encji, Związek unarny 1:1 lub 1:N obustronnie opcjonalny transformuje się do klucza obcego w tej samej tabeli, Związek unarny M:N obustronnie opcjonalny jest transformowany do tabeli. 5
ZWIĄZEK UNARNY 1:N PRACOWNICY ZWIĄZEK UNARNY M:N Nazwa Id_leku LEKI Id_leku PRIMARY KEY, Nazwa NOT NULL Imię, DrugieImię NULL, Nazwisko NOT NULL, DataUrodzenia NOT NULL, Płeć NULL, Pensja, NrDziału NOT NULL REFERENCES działy (numer), PESELSzefa NULL REFERENCES Pracownicy (PESEL) zastępnik M Lek Zastępuje zastępowany N ZASTĘPNIKI Id_leku REFERENCES leki(id_leku), Id_zastęnika REFERENCES leki (id_leku), PRIMARY KEY (Id_leku, id_zastepnika) ZWIĄZEK TERNARNY (I INNE N-SKŁADNIKOWE) ZWIĄZEK TERNARNY Związki ternarne i inne n-składnikowe (gdzie n>2) odwzorowuje się w nową relację, Jako klucze obce do relacji wprowadzamy klucze główne relacji powstałych przez transformacje encji uczestniczących w związku, Klucze obce zazwyczaj tworzą klucz główny tabeli. DOSTAWCY NazwaD PRIMARY KEY, CZĘŚCI NazwaC PRIMARY KEY, DOSTARCZA NazwaC REFERENCES części (nazwac), NazwaP REFERENCES projekty (nazwap), NazwaD REFERENCES dostawcy (nazwad), Ilość, PRIMARY KEY (nazwad, nazwac, nazwap) PROJEKTY NazwaP PRIMARY KEY, 6
ODWZOROWANIE ATRYBUTÓW WIELOWARTOŚCIOWYCH Dla każdego atrybutu wielowartościowego należy stworzyć relację, która będzie zawierała atrybuty odpowiadające wielowartościowemu oraz klucz obcy wskazujący na odwzorowywaną encję, Klucz główny nowej relacji stanowi kombinacja atrybutu odwzorowywanego oraz klucza obcego, Jeśli atrybut wielowartościowy jest zarazem złożonym to do relacji wprowadzamy tylko atrybuty proste i analizujemy atrybuty proste w celu wyznaczenia klucza głównego. ODWZOROWANIE ATRYBUTÓW WIELOWARTOŚCIOWYCH LOKALIZACJE_DZIAŁÓW NumerD, Lokalizacja, PRIMARY KEY (NumerD, Lokalizacja) BAZA FIRMA Pracownicy Imię Dimię Nazwisko PESEL DataUr Adres Płeć Pensja PESELSzefa Nrdziału Działy Nazwa Numer PESELSzefa DataRozpKier Lokalizacje_działów NumerD Lokalizacja Projekty Nazwa Numer Lokalizacja NumerD PracownicyProjekty PESEL Nr_proj Godziny ODWZOROWANIE SPECJALIZACJI Każdą specjalizację z m podencjami (S1,S2,,Sm) oraz nadencją C z atrybutami (k,c1,c2, cn) odwzorowujemy w relacje stosując kilka możliwych metod: do jednej relacji: z jednym atrybutem typu i z wieloma atrybutami typów, do wielu relacji: wyłącznie dla podencji, dla nadencji i podencji. Członkowie_Rodziny PESEL Imię Płeć DataUr Stopień_pokrewieństwa 7
JEDNA RELACJA Z JEDNYM ATRYBUTEM TYPU JEDNA RELACJA Z JEDNYM ATRYBUTEM TYPU Tworzona jest jedna relacja reprezentująca jednocześnie nadecję i podencje, Encja nadklasy będzie miała wartości puste we wszystkich lokalnych atrybutach podencji, Nie jest zalecana, gdy podencje mają wiele atrybutów lokalnych, gdy niewiele atrybutów lokalnych to lepsza niż pozostałe, Stosowana szczególnie do rozłącznych podencji, Polega na dołączeniu pojedynczego atrybutu określającego typ, PESEL Nazwisko Adres Pracownik d Naukowy Techniczny Stopień Uprawnienia PRACOWNIK Nazwisko, Stopień, Uprawnienia, Typ_pracownika JEDNA RELACJA Z WIELOMA ATRYBUTAMI TYPÓW Tworzona jest jedna relacja reprezentująca jednocześnie nadecję i podencje, Stworzona z myślą o odwzorowywaniu częściowo pokrywających się podencji, Dołączamy m logicznych pól typów, po jednej dla każdej podencji, które przechowują wartości {tak, nie},gdzie wartośc tak oznacza że dana krotka jest egzemplarzem podencji. JEDNA RELACJA Z WIELOMA ATRYBUTAMI TYPÓW PRACOWNIK Nazwisko, Stopień, Uprawnienia, Jest_naukowym, Jest_technicznym 8
WIELE RELACJI DLA NADENCJI I PODENCJI WIELE RELACJI DLA NADENCJI I PODENCJI Tworzona jest relacja dla nadencji i jej atrybutów oraz po jednej relacji dla każdej podencji, Każda relacja stworzona z podencji zawiera atrybuty lokalne oraz klucz główny nadencji, który staje się kluczem głównym podencji, Może być stosowana bez względu na ograniczenia czy więzy. PRACOWNIK Nazwisko, PESEL_n REFERENCES naukowy(pesel), PESEL_t REFERENCES techniczny(pesel) NAUKOWY Stopień TECHNICZNY Uprawnienia WIELE RELACJI WYŁĄCZNIE DLA PODENCJI WIELE RELACJI WYŁĄCZNIE DLA PODENCJI Tworzone są relacje po jednej dla wszystskich podencji, Każda relacja stworzona z podencji zawiera atrybuty wspólne oraz lokalne i klucz główny nadencji, który staje się kluczem głównym każdej podencji, Sprawdza się gdy podencje są całkowite każda nadencja należy przynajmniej do jednej z jej podencji oraz gdy spełniony jest warunek rozłączności. NAUKOWY Nazwisko, Stopień TECHNICZNY Nazwisko, Uprawnienia 9
PODSUMOWANIE ODWZOROWANIA WYKŁAD PRZYGOTOWANO NA PODSTAWIE Model ER Encja Związek 1:1 i 1:N Związek M:N Związek n-składnikowy Atrybut prosty Atrybut złożony Atrybut wielowartościowy Zbiór wartości Atrybut klucza Specjalizacja (nadencje, podencje) Model relacyjny Relacja Klucz obcy Relacja z dwoma kluczami obcymi Relacja z n kluczami obcymi Atrybut Zbiór atrybutów prostych Relacja i klucz obcy Dziedzina Klucz główny Jedna relacja lub wiele relacji R. Elmasri, S. B. Navathe, Wprowadzenie do systemów baz danych, Helion, 2005, C. J. Date, Wprowadzenie do systemów baz danych, WNT, Warszawa, 2000, http://wazniak.mimuw.edu.pl/index.php?title=bazy_ danych. 10