Bazy danych
Transkrypt
Bazy danych
2010-11-22 PLAN WYKŁADU Projektowanie bazy danych Diagramy związków encji Encje Własności Związki Podtypy Przykłady diagramów BAZY DANYCH Wykład 6 dr inż. Agnieszka Bołtuć GŁÓWNE ETAPY PROJEKTOWANIA BAZY ZADANIE - FIRMA DANYCH świat rzeczywisty zbieranie i analiza wymagań analiza funkcjonalna projekt koncepcyjny (pojęciowy) projekt logiczny projekt aplikacji implementacja transakcji projekt fizyczny niezależne od SZBD zależne od SZBD Baza danych ma umożliwiać zarządzanie danymi pracowników, działów i projektów. Wymagania: firma jest podzielona na działy, z których każdy ma unikatową nazwę, numer i kierownika (pracownika); należy pamiętać od kiedy kierownik kieruje działem; działy mogą być rozproszone, dział realizuje wiele projektów, identyfikowanych unikatową nazwą, numerem oraz z jednym miejscem realizacji, pracownik powinien być opisany następującymi danymi: nazwisko, PESEL, adres, pensja, płeć, data urodzenia, 1 2010-11-22 ZADANIE - FIRMA MODELOWANIE POJĘCIOWE (KONCEPCYJNE) Pracownik pracuje w jednym dziale, ale realizuje wiele projektów, Należy zapamiętać liczbę godzin pracy nad danym projektem w ciągu tygodnia, Pracownik musi mieć przypisanego zwierzchnika, Przechowujemy także informacje o rodzinie pracownika (sprawy socjalne): imię, płeć, data urodzenia, stopień pokrewieństwa. SCHEMATY POJĘCIOWE ELEMENTY MODELU Pojęciowy model danych może być reprezentowany przy użyciu dwóch konstrukcji diagramów związków encji ERD (ang. entityrelationship diagrams), stosowane są różne notacje m.in. Chena, Martina (kruczej stopki), Barkera (Oracle) diagramów UML (ang. Unified Modeling Language). zadaniem modelowania koncepcyjnego jest odzwierciedlenie obiektów świata rzeczywistego w inne abstrakcyjne obiekty, które w pewnym dalszym momencie da się reprezentować w systemie informatycznym, schemat koncepcyjny jest zwięzłym opisem zgłoszonych przez końcowych użytkowników wymagań, elementy stosowanego tu wysokopoziomowego modelu danych nie obejmują opisu szczegółów implementacji. ENCJI – NIEFORMALNE DEFINICJE Pojęcie Nieformalna definicja Przykłady ENCJA rozróżnialny obiekt Pracownik, Część, Dostawca, Wydział, Osoba WŁASNOŚĆ część informacji opisująca encję Numer_dostawcy, Dział_pracownika, Wzrost_osoby ZWIĄZEK encja służąca do połączenia dwóch lub więcej encji Dostawa (DostawcaCzęść) Zatrudnienie (Pracownik-Wydział) PODTYP Encja typu Y jest podtypem encji typu X wtedy i tylko wtedy, gdy każdy Y jest też X Pracownik jest podtypem Osoby 2 2010-11-22 ENCJA Encja jest abstrakcją złożoności pewnej dziedziny, Jest to pewien aspekt świata rzeczywistego, który możemy odróżnić od innych aspektów tego świata i jest on na tyle istotny, że chcemy przechowywać o nim informacje, Encja może być obiektem fizycznym (wydział, mieszkanie), zdarzeniem (kupno, kontrola) lub pojęciem takim jak transakcja lub zamówienie, a także obiektem o charakterze koncepcyjnym (stan magazynu, znajomość obsługi komputera), Przy identyfikowaniu encji stosuje się zasadę: CECHY ENCJI Każda encja posiada właściwości zwane atrybutami, Każda encja posiada unikatowy identyfikator i nazwę, Konkretny obiekt świata rzeczywistego jest reprezentowany jako wystąpienie encji (instancja encji), Obiekt rzeczywisty może być reprezentowany w modelu przez co najwyżej jedną encję. Jeśli trzeba przechowywać informacje na temat wielu własności jakiejś rzeczy, to taka rzecz jest prawdopodobnie encją, ENCJE SŁABE Jest to taka encja, której istnienie zależy od innej encji w tym sensie, że nie może ona istnieć, jeżeli ta inna encja też nie istnieje, nie zawierają atrybutów klucza, Inne encje związane ze słabymi encjami nazywamy identyfikującymi lub właścicielskimi, np. krewni osoby to słaba encja, gdyż nie mogą istnieć jeśli nie istnieje osoba, jeśli z bazy usuniemy osobę to powinniśmy usunąć także jej krewnych. ZAPIS ENCJI Osoba Krewny osoby Osoba encja encja słaba notacja Martina (kruczej stopki) notacja Chena Imię Nazwisko Adres Wiek … encja notacja Barker (Oracle) 3 2010-11-22 PRZYKŁAD ENCJI I INSTANCJI ENCJI W ŁASNOŚCI/ATRYBUTY Encja jest scharakteryzowana pewną liczbą właściwości, Wszystkie encje danego typu mają wspólne własności pewnych rodzajów, Każdy rodzaj własności czerpie wartości z pewnego zbioru wartości. Rodzaje własności: 1 encja Osoba Imię Nazwisko Stanowisko Wiek … Agnieszka Bogdan manager 33 … 2 Tomasz Kruk referent 25 … instancje encji 3 Anna Opacka portier 44 … W ŁASNOŚCI PROSTE (ATOMOWE) I ZŁOŻONE Atrybut prosty jest niepodzielny, proste, złożone kluczowe, jedno- lub wielowartościowe, brakujące (puste), podstawowe, pochodne. ATRYBUTY JEDNO- I WIELOWARTOŚCIOWE Atrybuty jednowartościowe reprezentują pojedynczą wartość dla danej encji, np. imię, nazwisko, wiek, stanowisko np. wiek, nazwisko Atrybut złożony można podzielić na mniejsze podgrupy reprezentujące prostsze atrybuty, wykorzystuje się go w sytuacjach, gdy do danych złożonych odwołuje się jako do pojedynczego elementu, Atrybuty wielowartościowe posiadają cały zbiór wartości dla tej samej encji, mogą mieć przypisane ograniczenia akceptujące wartości dla danej encji, np. kolor, tytuł naukowy, języki obce np. adres 4 2010-11-22 POZOSTAŁE ATRYBUTY ATRYBUT KLUCZA podstawowe i pochodne – atrybuty pochodne to takie, których wartość jest wywodzona z wartości atrybutu zwanego stałym lub innych encji, Każda encja posiada atrybut (lub zbiór atrybutów) będących unikalnym identyfikatorem encji. Wartości atrybutu klucza można wykorzystywać do unikalnego identyfikowania poszczególnych encji, wyróżniamy identyfikatory naturalne (PESEL, etc.) i sztuczne (nr w katalogu, etc.) Przykłady: np. data urodzenia – podstawowy, wiek – pochodny brakujące (puste) – mogą istnieć przypadki w których encja nie ma żadnej wartości atrybutu lub ta wartość jest nieznana, Osoba W ŁASNOŚCI NOTACJA encja własność Osoba # Id *Imię *Nazwisko *Adres *Wiek … encja PESEL, NIP, nr dowodu, id, nr_pracownika, nr_wydziału nr_rejestracyjny PRZYMIARKA DO PROJEKTU KONCEPCYJNEGO DataKierowania Lokalizacja Lokalizacja własności DziałKontr Projekt Kierownik Dział notacja Barker (Oracle) Nazwa Nazwisko Nazwa Numer Numer DataUrodzenia własność wielowartościowa Pokrewieństwo PESEL Stopień własność kluczowa Adres PracujeNad Przełożony Płeć ImięNazwisko miasto Wiek ulica własność złożona Pensja Adres Pracownik Pracownik własność pochodna notacja Martin (kruczej stopki) notacja Chena CzłonekR Imię DataUrodzenia PESEL Płeć Dział 5 2010-11-22 ZWIĄZKI - DEFINICJA ZWIĄZKI Związek R między encjami E1, E2,..., En definiuje zbiór powiązań między instancjami tych encji. Związek R jest matematyczną relacją składającą się z instancji związku ri, gdzie ri wiąże n instancji encji (e1,e2,..., en) i każda instancja ej, 1≤j≤n jest wystąpieniem encji Ej. Pracuje_na Pracownik Wydział Jest powiązaniem pomiędzy encjami, Encje objęte danym związkiem są jego uczestnikami, Liczba uczestników w związku to jego stopień (liczebność), Rodzaje związków: binarne, ternarne (ze względu na stopień związku ) unarne, r1 p1 p2 d1 p3 jeden r3 p4 d2 r5 d3 ZWIĄZEK UNARNY do jeden, jeden do wiele, wiele do wiele, lub opcjonalne. wymagane ZWIĄZEK BINARNY wiążą instancje z instancją tej samej encji (najczęściej reprezentują powiązania rekursywne). Dla związków unarnych należy określić rolę jaką gra każda instancja encji w związku. Związkiem binarnym nazywamy związek drugiego stopnia, łączącym instancje dwóch encji, najbardziej popularny, Pracownik p1 p p1 p2 r1 r1 s p s p d1 d2 p3 s r2 p4 r3 p4 Mieszkanie p2 r2 p3 Posiada Kierownictwo Pracownik r3 d3 p r4 6 2010-11-22 ZWIĄZEK TERNARNY W SPÓŁCZYNNIKI LICZNOŚCI (TYP ASOCJACJI) Związkiem ternarnym (trojskładniowym) nazywamy związek trzeciego stopnia, łączącym instancje trzech encji, Projekt Dostawca Dostarcza d1 określa ile wystąpień jednej encji może być powiązanych z iloma wystąpieniami innej encji związek typu 1:1 - każda instancja bierze udział w co najwyżej jednej instancji związku p1 Pracownik r1 Kieruje Dział d2 p2 p1 r1 r2 d1 p2 p3 Część d2 r3 p3 r2 p4 c1 r3 d3 c2 c3 W dowolnym punkcie czasu jeden pracownik może kierować jednym działem i jeden dział może mieć jednego kierownika. c4 W SPÓŁCZYNNIKI LICZNOŚCI (TYP ASOCJACJI) związek typu 1:N - instancja jednej encji bierze udział w co najwyżej jednej instancji związku, instancja drugiej w dowolnej liczbie instancji związku Pracownik Pracuje_w Dział W SPÓŁCZYNNIKI LICZNOŚCI (TYP ASOCJACJI) związek typu M:N - instancje obu encji biorą udział w dowolnej liczbie instancji związku Pracownik Pracuje_nad p1 r1 d1 p2 p1 r1 d1 p2 p3 Projektem p3 r2 d2 r2 d2 d3 p4 r3 p4 r3 r4 r4 W dowolnym punkcie czasu jeden pracownik pracuje w jednym dziale a jeden dział może zatrudniać wielu pracowników. W dowolnym punkcie czasu jeden pracownik może realizować wiele projektów a jeden projekt skupia wielu pracowników. 7 2010-11-22 OGRANICZENIA UDZIAŁU W ZWIĄZKU ZWIĄZKI NOTACJA pełny udział (udział całkowity, totalna przynależność) – oznacza, że każda instancja encji musi brać udział w jakiejś instancji związku (związek jest wymagany) E1 związek 1:1 związek E1 związek identyfikujący Pracownik Pracuje_w Pracownik Kieruje E2 związek wymagany/opcjonalny Dział udział częściowy (częściowa przynależność) oznacza, że mogą istnieć instancje encji nie biorące udziału w żadnej instancji związku (związek jest opcjonalny) E2 E1 E1 R E2 E2 związek 1:N związek wymagany E1 E1 1 R N E2 E2 liczność związku związek identyfikujący Notacja Chena Notacja Oracle Dział KONTYNUACJA PROJEKTU PODTYPY Encje o wspólnych zbiorach atrybutów, można generalizować używając encji nadtypu (encji generalizacji, encji nadklasy, nadencji), Wyróżniamy tu pojęcia podtypu (podklasy) i nadtypu (nadklasy), Każda encja należąca do podklasy reprezentuje ten sam byt świata rzeczywistego co encja z nadklasy, więc encja z podklasy jest tym samym co encja z nadklasy tylko w dokładnie sprecyzowanej roli, Pracownik Programista Źródło: R. Elmasri, S. B. Navathe, Wprowadzenie do systemów baz danych Programista_aplikacji Programista_systemowy 8 2010-11-22 PODTYPY PODTYPY encja podklasy dziedziczy wszystkie atrybuty oraz związki encji nadklasy, encje podtypu nie posiadają własnego identyfikatora, identyfikator nadtypu jest wspólny dla wszystkich jego podtypów, podklasa z jej lokalnymi atrybutami i związkami może być traktowana jak prawidłowa encja dopiero w połączeniu ze wszystkimi atrybutami i związkami z nadklasy, każde wystąpienie podencji jest wystąpieniem nadencji. ZWIĄZKI A PODTYPY Pracownik atrybuty wspólne Programista atrybuty specyficzne nadencja #PESEL *Imię *Nazwisko *Adres podencja *Język_prog GENERALIZACJA, SPECJALIZACJA związki wspólne – zachodzące pomiędzy nadencją a inną encją, związki specyficzne – zachodzące pomiędzy podencją a inną encją, Pracownik Dział #PESEL *Imię *Nazwisko *Adres #nazwa *Lokalizacja Programista *Język_progr Aplikacja #nazwa *Licencja Specjalizacja jest procesem definiowania zbioru podklas jednej encji zwanej nadklasą specjalizacji, pozwala na tworzenie dodatkowych, specyficznych atrybutów dla każdej podklasy oraz dodatkowych, specyficznych związków pomiędzy podklasami a innymi encjami, Generalizacja to proces definiowania uogólnionej encji na bazie danych wyspecjalizowanych encji. 9 2010-11-22 PRZYKŁAD 2 - BANK PODTYPY NOTACJA Imię Pracownik PESEL Nazwisko #PESEL *Imię *Nazwisko *Adres Pracownik ograniczenie rozłączności Kontraktowy d *Nr_kontraktu Godzinowy *Liczba_godzin *Stawka Kontraktowy Godzinowy Liczba_godzin Nr_kontraktu Notacja Oracle Stawka Źródło: R. Elmasri, S. B. Navathe, Wprowadzenie do systemów baz danych PRZYKŁAD 3 - BAZA DANYCH MAŁEGO LOTNISKA W YKŁAD PRZYGOTOWANO NA PODSTAWIE R. Elmasri, S. B. Navathe, Wprowadzenie do systemów baz danych, Helion, 2005, P. Beynon-Davies, Systemy baz danych, WNT, 2003, C. J. Date, Wprowadzenie do systemów baz danych, WNT, Warszawa, 2000, http://wazniak.mimuw.edu.pl/index.php?title=Bazy_ danych. Źródło: R. Elmasri, S. B. Navathe, Wprowadzenie do systemów baz danych 10