Modelowanie danych ì Biologiczne Aplikacje Baz Danych dr inż. Anna Leśniewska alesniewska@cs.put.poznan.pl
Modelowanie ì ì Modelowanie - odwzorowanie rzeczywistych obiektów świata rzeczywistego w systemie informatycznym (bazie danych) Modele ì Konceptualne reprezentacja obiektów w uniwersalnym modelu niezależnym od modelu implementacyjnego ì Model związków encji ì Model UML ì Implementacyjne - modele wykorzystywane do implementacji modeli konceptualnych ì Modele danych (relacyjne, obiektowe, itp.)
analiza wymagań transformacja modeli pojęciowych do implementacyjnych implementowanie bazy danych i aplikacji Cykl projektowy systemu Analiza Projektowanie Implementacja Wdrożenie informatycznego modele konceptualne (pojęciowe) opisujące wymagania odnośnie: - danych - funkcjonalności aplikacji modele implementacyjne bazy danych i aplikacji Utrzymanie
Obiekty świata rzeczywistego ì Obiekty materialne: ì Samochody, budynki, sprzęt komputerowy ì Zasoby ludzkie (grupa pracowników) ì Obiekty niematerialne: ì Wiedza (znajomość technologii) ì Zdarzenia (otrzymanie nagrody, urlopu) ì Stany rzeczywistości (stan rachunku bankowego, polisa ubezpieczeniowa)
Modelowanie związków encji ì ì Entity-relationship model ER ì Obiekty świata rzeczywistego reprezentowane za pomocą encji (entities) ì Powiązania pomiędzy obiektami świata rzeczywistego reprezentowane za pomocą związków (relationships) pomiędzy encjami Notacja modelu ER ì Chen ì Barker (Oracle) ì inne
Encja ì Encja reprezentuje zbiór obiektów opisany tymi samymi cechami (atrybutami, własnościami) ì Informacje o tych obiektach będą przechowywane w bazie danych ì Konkretny obiekt świata rzeczywistego jest reprezentowany jako wystąpienie encji (instancja encji)
Modelowanie encji ì Firma zatrudnia pracowników. Chcemy znać dane personalne każdego pracownika (imię, nazwisko, adres zamieszkania i numer telefonu) Jan Kowalski ul. Długa 23 tel. 253-485 Tomasz Biały ul. Czereśniowa 75/19 tel. 845-520 Ewa Dalewska ul. Komarowa 5/2 tel. 486-005 PRACOWNIK imię nazwisko adres telefon
Własności encji ì Modelując encje należy przestrzegać następujących reguł ì każda encja posiada unikalną nazwę ì każda encja posiada zbiór cech (atrybutów) ì encje wchodzą w związki z innymi encjami (wyjątkiem są encje reprezentujące dane słownikowe i konfiguracyjne) ì dowolna rzecz lub obiekt może być reprezentowana tylko przez jedną encję ì nazwa encji powinna być rzeczownikiem w liczbie pojedynczej
PRACOWNIK imię nazwisko adres telefon PRACOWNIK imię=jan nazwisko=kowalski adres=dluga 23 telefon=123-567 ì Wystąpienie encji Własności encji Encja kryje w sobie wiele obiektów, czyli tzw. wystąpień encji Dowolna rzecz lub obiekt może być reprezentowany w modelu tylko przez jedną encję Każda encja musi posiadać unikalny identyfikator
Model związków encji Proces budowania modelu encji i związków zwykle realizuje się w trzech następujących krokach: Krok 1. Identyfikacja encji. Krok 2. Identyfikacja atrybutów encji. Krok 3. Identyfikacja związków między encjami.
Encja Encja to rzecz (obiekt materialny lub niematerialny, zdarzenie lub fakt), o której chcemy przechowywać informacje Reprezentuje zbiór obiektów opisany tymi samymi cechami (atrybutami, własnościami) Informacje o tych obiektach będą przechowywane w bazie danych Konkretny obiekt świata rzeczywistego jest reprezentowany jako wystąpienie encji (instancję encji)
Encja: Obiekty materialne pracownik, samochód, budynek, produkt, itp. SAMOCHÓD marka numer_fabryczny prędkość_maksymalna zużycie_paliwa
Encja: Obiekty niematerialne konto bankowe, zamówienie, grupa pracownicza, itp. grupa pracowników administracyjnych GRUPA PRACOWNICZA nazwa grupy liczba pracowników średnie wynagrodz. dzień wypłaty
choroba pracownika, przyznanie nagrody, itp. Byłem chory... Oto zwolnienie lekarskie. Encja: zdarzenia CHOROBA PRACOWNIKA data_rozpoczęcia data_zakończenia rodzaj_choroby Encje: fakty (stany rzeczywistości) znajomość języka obcego, stan magazynowy produktu, itp Znam biegle język angielski! ZNAJOMOŚĆ JĘZYKA OBCEGO nazwa_języka stopień_znajomości
Modelowanie danych model ER Proces budowania modelu encji i związków zwykle realizuje się w trzech następujących krokach: Krok 1. Identyfikacja encji. Krok 2. Identyfikacja atrybutów encji. Krok 3. Identyfikacja związków między encjami.
Atrybuty encji ì IDENTYFIKATOR ì Atrybut lub zbiór atrybutów jednoznacznie identyfikujący wystąpienie encji ì Zbiór atrybutów + związki ì IDENTYFIKATORY NATURALNE ì IDENTYFIKATORY SZTUCZNE ì Związki ì PESEL, NIP, nr dowodu, nr paszportu, ISBN, nr rejestracyjny ì Numer pozycji katalogowej, identyfikator pracownika
Atrybuty encji ì DESKRYPTORY (ATRYBUTY DESKRYPCYJNE) ì wszystkie inne atrybuty poza identyfikatorami ì reprezentują podstawowe cechy/własności encji ì cechy te będą przechowywane w bazie danych ì atrybuty z wartościami opcjonalnymi ì atrybuty z wartościami obowiązkowymi
Atrybuty encji ì NAZWA ì DZIEDZINA ì typ danych i maksymalny rozmiar ì DOZWOLONE/ NIEDOZWOLONE WARTOŚCI PUSTE ì ì zbiór dozwolonych wartości zakres dozwolonych wartości ograniczenia Integralnościowe ì UNIKALNOŚĆ WARTOŚCI
Własności atrybutów Zawężenie dziedziny wartości Nakłada ograniczenie, z jakiego przedziału wartości i jakiego typu wartości, mogą być przyjmowane przez dany atrybut - ograniczenie za pomocą złożonych wyrażeń i odwołań do innych atrybutów Notacja: nazwa_projektu - VARCHAR(25) wynagrodzenie - NUMBER(8,2) check( data_zakończenia > data_rozpoczęcia )
Własności atrybutów Obligatoryjność Nakłada ograniczenie, że dla wszystkich wystąpień encji wartości danego atrybutu muszą być określone. Notacja: (Obligatoryjność) (Opcjonalność) * Nazwisko o Drugie_imię
Własności atrybutów Unikalność Uniemożliwia nadanie tej samej wartości atrybutowi (lub kombinacji atrybutów) w dwóch lub większej liczbie wystąpień encji. Notacja: # nazwa_projektu
Własności atrybutów Dynamika wartości Nakłada ograniczenie na kolejność wartości przyjmowanych przez dany atrybut Przykład: kawaler żonaty wdowiec
Unikalny identyfikator encji Każda encja musi mieć zdefiniowany sposób identyfikacji pojedynczych wystąpień. Unikalny identyfikator może być atrybutem, kombinacją atrybutów, kombinacją związków lub kombinacją związków i atrybutów Naturalne atrybuty identyfikujące - na jeden lub kilka rzeczywistych atrybutów nakładamy ograniczenie unikalności. PROJEKT # symbol projektu nazwa projektu budżet data rozpoczęcia data zakończenia lub PROJEKT # symbol projektu # data rozpoczęcia nazwa projektu budżet data zakończenia Symbol projektu pozwala jednoznacznie zidentyfikować każdy projekt. Poszczególne projekty identyfikujemy za pomocą pary wartości
Sztuczny atrybut identyfikujący W przypadku gdy: Unikalny identyfikator encji c.d. liczba atrybutów zapewniających unikalność > 2, wartości atrybutu unikalnego mają duże rozmiary, często modyfikujemy wartości atrybutów unikalnych, do zbioru naturalnych atrybutów encji dodajemy sztuczny atrybut pełniący rolę unikalnego identyfikatora. PRACOWNIK # id_pracownika imię nazwisko adres telefon
Atrybuty złożone Atrybut jest nazywany złożonym, gdy jego wartość dla jednego wystąpienia encji jest złożeniem kilku bardziej elementarnych wartości. Ulica Miasto Kod pocztowy Is-part-of Is-part-of Is-part-of Is-part-of Adres DOSTAWCA... adres_ulica adres_miasto adres_kod... DOSTAWCA W definicji encji umieszczamy atrybuty elementarne
Atrybuty wielowartościowe Atrybut jest nazywany wielowartościowym, gdy posiada wiele wartości dla jednego wystąpienia encji PRACOWNIK # id_pracownika imiê nazwisko... TELEFON # numer_tel posiada Tomasz Bia³y nale y do ( lub telefon: 845-520 234-05-64 234-04-77 PRACOWNIK # id_pracownika imiê nazwisko... u ywa TELEFON u ywany przez # id_telefonu numer_tel fax_telefon Atrybuty wielowartościowe modelujemy za pomocą dodatkowej encji
Modelowanie danych Proces budowania modelu encji i związków zwykle realizuje się w trzech następujących krokach: Krok 1. Identyfikacja encji. Krok 2. Identyfikacja atrybutów encji. Krok 3. Identyfikacja związków między encjami.
Związki Powiązania w świecie rzeczywistym: Pracownicy firmy posiadają samochody różnych marek Ewa Dalewska posiada Nissan Jan Kowalski jest własnością Opel Tomasz Biały posiada jest własnością Pomiędzy dwoma rodzajami obiektów, pracownikami i samochodami, istnieją powiązania: dany pracownik może posiadać określony samochód, a jednocześnie dany samochód jest własnością określonego pracownika.
Związek i jego interpretacja PRACOWNIK posiada jest własnością SAMOCHÓD Nazwy związku, będące jego interpretacją, powinny być tak dobierane, aby możliwe było budowanie zdań w języku naturalnym Pracownik posiada samochód. Samochód jest własnością pracownika. Nazwa związku
Własności związków Ewa Dalewska posiada Nissan Jan Kowalski jest własnością Opel Tomasz Biały posiada jest własnością PRACOWNIK posiada jest własnością SAMOCHÓD
Własności związków Wiemy, że: Istnieją powiązania pomiędzy obiektami typu PRACOWNIK i SAMOCHÓD Chcemy wiedzieć: Ile samochodów może posiadać pracownik? Czy każdy pracownik musi posiadać samochód? Czy musimy znać właściciela każdego samochodu? Jakiej użyć notacji? Jak klasyfikować związki??
Własności związków Stopień związku ì ì ì ì unarny (binarny rekursywny) binarny ternarny n-arny Istnienie (klasa przynależności) ì opcjonalny Typ asocjacji (kardynalność) ì jeden do jeden (1:1) ì obowiązkowy ì ì jeden do wielu (1:M) wiele do wielu (M:N)
Stopień asocjacji związków Typ (stopień) asocjacji związków 1:N - powiązania o charakterze "jeden do wielu" Firma realizuje projekty zlecone przez różnych klientów. Dany projekt wykonywany jest dla jednego konkretnego klienta, a dany klient może zlecić wykonanie wielu projektów. Projekt Alfa wykonany dla zlecił wykonanie Klient X Projekt Beta wykonany dla zlecił wykonanie Klient Y Projekt Gamma wykonany dla zlecił wykonanie Klient Z
Związek jeden do wielu Notacja Barkera - kurza łapka PROJEKT wykonany dla zlecił wykonanie KLIENT Interpretacja związku: Każdy projekt może być wykonywany tylko dla jednego klienta. Każdy klient może zlecić wykonanie jednego lub wielu projektów.
Związek wiele do wielu (M:N) Typ asocjacji związków M:N - powiązania o charakterze "wiele do wielu" Kowalski Dalewska bierze udział w Projekt Alfa bierze udział w Koszlajda Długosz bierze udział w realizowany przez Projekt Beta Biały bierze udział w realizowany przez Projekty są realizowane przez pracowników. Każdy projekt jest realizowany przez jednego lub wielu pracowników. Każdy pracownik może brać udział w realizacji jednego lub wielu projektów
Związek wiele do wielu (M:N) PRACOWNIK bierze udział realizowany przez PROJEKT Interpretacja: Każdy pracownik może brać udział w jednym lub wielu projektach. Każdy projekt może być realizowany przez jednego lub wielu pracowników
Typ asocjacji związków - 1:1 - Powiązania o charakterze "jeden do jednego" Dalewska Długosz Związek jeden do jeden (1:1) Koszlajda Kowalski kieruje kierowany przez Dział Sprzedaży Biały kieruje kierowany przez Dział Księgowości Działy firmy kierowane są przez pracowników. Dany dział może być kierowany tylko przez jednego pracownika (kierownika działu), a dany pracownik może kierować nie więcej niż jednym działem
Związek jeden do jeden (1:1) PRACOWNIK kieruje kierowany przez DZIAŁ Interpretacja: Każdy pracownik może kierować jednym działem. Każdy dział może być kierowany przez jednego pracownika
Związek 1:1 cd. Związek Pracownik-Samochód stopień związku: binarny Pracownicy firmy posiadają samochody W celu udostępnienia miejsca parkingowego należy zarejestrować pracownika i jego samochód Każdy pracownik ma prawo parkować tylko jeden konkretny samochód Zarejestrowany w rejestrze parkingowym samochód na pewno jest własnością jednego pracownika typ asocjacji Pracownik (1) : Samochód (1) typ asocjacji Pracownik (1) : Samochód (1)
Opcjonalność/obligatoryjność związków Klasa przynależności - opcjonalność związków Ewa Dalewska posiada Nissan Jan Kowalski Tomasz Biały posiada jest własnością jest własnością jest własnością Opel Fiat Opcjonalność w świecie rzeczywistym: Nie każdy pracownik posiada samochód. Często nie wiemy czy pracownik posiada samochód.
Opcjonalność/obligatoryjność związków Klasa przynależności - jednostronna opcjonalność związków Każdy samochód (o którym chcemy przechowywać informacje) musi być własnością określonego pracownika PRACOWNIK posiada jest własnością SAMOCHÓD Interpretacja: Każdy pracownik może posiadać jeden lub więcej samochodów. Każdy samochód musi być własnością jednego pracownika.
Opcjonalność / obligatoryjność związków ENCJA 1 nazwa 1 nazwa 2 ENCJA 2 jeden opcjonalnie obowiązkowo wiele
Opcjonalność / obligatoryjność związków Dwustronna opcjonalność Każdy pracownik może (ale nie musi) posiadać stopień naukowy oraz istnieją stopnie naukowe, które nie muszą być zdobyte przez żadnego z pracowników firmy PRACOWNIK posiada zdobyty przez STOPIEŃ NAUKOWY Interpretacja: Każdy pracownik może posiadać jeden stopień naukowy. Każdy stopień naukowy może zostać zdobyty przez jednego lub wielu pracowników.
Opcjonalność / obligatoryjność związków Firma posiada samochody dostawcze. Dla każdego samochodu musimy znać dane dotyczące ostatniego przeglądu technicznego. Każdy przegląd techniczny, o którym przechowujemy informacje, musi dotyczyć jednego z samochodów firmy? SAMOCHÓD DOSTAWCZY posiada dotyczy PRZEGLĄD TECHNICZNY Interpretacja: Każdy samochód dostawczy musi posiadać jeden lub wiele przeglądów technicznych. Każdy przegląd techniczny musi dotyczyć jednego konkretnego samochodu.
Związki niedozwolone Dwustronna obligatoryjność związków M:N w praktyce nie występuje ENCJA A ENCJA B
Atrybuty związku Pracownik uczestniczy w przez Realizacja funkcja wynagrodzenie od do dotyczy podlega Projekt Jeśli związek posiada dodatkowe cechy ð należy wprowadzić dodatkową encję (Realizacja) Do encji tej dochodzą obowiązkowe związki typu wiele l interpretacja obowiązkowości związków l jeśli istnieje wystąpienie encji Realizacja, to musi ono dotyczyć jakiegoś projektu i pracownika l nie może istnieć realizacja bez pracownika i projektu
Encja słaba (weak entity) l nie posiada swojego identyfikatora Encja słaba l konkretne wystąpienie encji Realizacja może wystąpić wyłącznie w kontekście konkretnego pracownika i konkretnego projektu Pracownik uczestniczy w przez Realizacja funkcja wynagrodzenie od do dotyczy podlega Projekt
Identyfikator encji słabej Identyfikatorem encji słabej są wszystkie związki, w które wchodzi ta encja Pracownik uczestniczy w przez Realizacja funkcja wynagrodzenie od do dotyczy podlega Projekt oznaczenie związku wchodzącego w skład identyfikatora encji
Związki binarne Wiążą ze sobą dwa obiekty. Kowalski pracuje w Dalewska pracuje w Koszlajda pracuje w Długosz pracuje w Biały pracuje w zatrudnia zatrudnia Dział Sprzedaży Dział Księgowości
Związki binarne łączą dwie encje: PRACOWNIK pracuje w zatrudnia DZIAŁ lub łączą dwa wystąpienia jednej encji: PRACOWNIK jest podwładnym jest przełożonym
Związek binarny rekursywny (związek unarny) Modelowanie elementów złożonych Istnieją podzespoły elementarne, niedekomponowalne i podzespoły złożone. Podzespół złożony składa się z kolejnych podzespołów. Każdy z kolejnych podzespołów może być złożony z innych podzespołów. Poziom złożoności podzespołów nie może być dowolny. składa się z Obowiązkowa opcjonalność z obu stron Podzespół jest częścią Związek binarny rekursywny - powiązanie pomiędzy określonym wystąpieniem encji a innym wystąpieniem tej samej encji
Związki niedozwolone Encja A Jednostka Organizacyjna Encja A Encja A
Kierowca może otrzymać mandat za popełnione wykroczenie. Mandat jest wystawiany przez konkretnego policjanta. Kierowcy Jan Jankielicz Model związków encji (rozszerzony) - EER otrzymuje wystawia Policjanci Tomasz Kociak Hektor Miluś Egon Miller Zenobia Orka ukarane bez pasów bez świateł Wykroczenia
Związek ternarny cd. Kierowca wystawiony dla wystawiony przez Mandat otrzymuje wystawia wystawiony za Policjant ukarane Wykroczenie W omawianej notacji Barkera związek ternarny jest reprezentowany jako encja (Mandat) l do encji Mandat dochodzą związki obowiązkowe l jeśli wystawiono mandat to jest on dla konkretnej osoby, został wystawiony przez konkretnego policjanta i dotyczy konkretnego wykroczenia
Hierarchia encji Dziedziczenie atrybutów Firma zatrudnia pracowników krajowych i zagranicznych. Wszyscy pracownicy opisani są pewnymi wspólnymi atrybutami, ale zarówno pracownicy krajowi i zagraniczni posiadają atrybuty specyficzne. Jan Kowalski ul. Długa 23 nr dow.osob.: WL8034567 John Smith ul. Malinowa 14/7 państwo: Holandia nr paszportu: X485674345 pracownicy krajowi pracownicy zagraniczni
Hierarchia encji cd. generalizacja atrybuty wspólne atrybuty specyficzne PRACOWNIK imię nazwisko adres PRACOWNIK KRAJOWY nr_dowodu_osob PRACOWNIK ZAGRANICZNY państwo nr_paszportu specjalizacje Własności hierarchii encji: Specjalizacje dziedziczą wszystkie atrybuty generalizacji. Każde wystąpienie generalizacji jest zawsze wystąpieniem jednej ze specjalizacji.
Hierarchia encji dziedziczenie związków Każdy pracownik jest zatrudniony na określonym stanowisku w jednym z działów firmy. W odniesieniu do pracowników krajowych, chcemy wiedzieć, w jakich zakładach pracy byli poprzednio zatrudnieni. DZIAŁ zatrudnia zatrudniony w PRACOWNIK STANOWISKO obsadzone przez zatrudniony na Związki dziedziczone Własności hierarchii encji: Specjalizacje dziedziczą wszystkie związki generalizacji. PRACOWNIK KRAJOWY PRACOWNIK ZAGRANICZNY pracował w zatrudniał ZAKŁAD PRACY Związki: zatrudniony w i zatrudniony na, dotyczą pracowników krajowych i zagranicznych. Związek pracował w jest specyficzny dla pracowników krajowych.
Hierarchia encji dziedziczenie związków cd.
Hierarchia encji bez specyficznych atrybutów - łuk Chcemy przechowywać opis każdej dokonanej naprawy dotyczącej środków trwałych i elementów wyposażenia. Opis naprawy w obu przypadkach jest podobny NAPRAWA atrybuty NAPRAWA SRODKA TRWAŁ. dotyczy ŚRODEK TRWAŁY NAPRAWA WYPOSAŻENIA dotyczy ELEMENT WYPOSAŻENIA Klasyczna hierarchia encji
Związki wyłączne Encje NAPRAWA ŚRODKA TRWAŁEGO i NAPRAWA WYPOSAŻENIA nie posiadają specyficznych atrybutów. Specjalizacje posiadają wyłącznie specyficzne związki. Łuk: Hierachia encji bez specyficznych atrybutów - łuk NAPRAWA dotyczy ŚRODEK TRWAŁY dotyczy ELEMENT WYPOSAŻENIA Każde wystąpienie encji NAPRAWA musi być powiązane albo ze środkiem trwałym, albo z elementem wyposażenia.
Związki wyłączne przykład zastosowania
Problem atrybut czy encja? Czy dana rzecz lub cecha, nazwana z użyciem rzeczownika, jest atrybutem opisującym encję, czy jest samodzielną encją? Wyraźnie wyeksponowane obiekty, opisane zbiorem informacji, w naturalny sposób modelujemy jako encje.
Problem atrybut czy encja? Atrybut traktujemy jako nową encję: gdy sam jest opisany dodatkowymi informacjami; gdy chcemy pamiętać dynamiczny zbiór wartości tego atrybutu niezależnie od istnienia opisywanego obiektu; gdy stwierdzamy, że atrybut może dla jednego obiektu przyjmować wiele wartości (atrybut wielowartościowy)