Model związków encji - Zachodniopomorski Uniwersytet
Transkrypt
Model związków encji - Zachodniopomorski Uniwersytet
Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Bazy danych Wykład 3: Model związków encji. dr inż. Magdalena Krakowiak [email protected] Co to jest model związków encji? Model związków encji jest semantycznym modelem danych przedstawionym po raz pierwszy w 1976 roku przez P.Chena. Daje projektantowi możliwość przedstawienie obiektów rzeczywistych i abstrakcyjnych miniświata oraz powiązań pomiędzy nimi w postaci diagramu związków encji ERD (ang. Entity Relationship Diagram). Miniświat przedstawiany jest na diagramie ERD w postaci: encji (ang. Entity) relacji (ang. Relationship). Bazy danych – Model związków encji Co to jest encja? Rzeczywisty lub abstrakcyjny obiekt świata rzeczywistego Osoba, miejsce, rzecz (obiekty rzeczywiste) lub pojęcie związane ze zjawiskami, cechami czy czynnościami (obiekty abstrakcyjne), które posiada intersujące cechy z punktu widzenia użytkownika i informacje o nich należy przechowywać Przykładowe encje miniświata „Przychodnia lekarska”: lekarz, badanie, wizyta, typ zabiegu, recepta Bazy danych – Model związków encji Właściwości encji Właściwości encji to cechy, które ją charakteryzują określane mianem atrybutu. Nazwy atrybutów w obrębie encji musza być unikalne. Przykładowe atrybuty encji „lekarz: imię nazwisko specjalizacja rok rozpoczęcia pracy adres zamieszkania. Bazy danych – Model związków encji Klasyfikacja atrybutów Rozróżnia się wiele rodzajów atrybutów, co wynika z faktu, że każdy atrybut można opisać trzema właściwościami: złożoność – Czy atrybut jest pojedynczy czy złożony? wielowartościowość – Czy atrybut jest jedno- czy wielowartościowy? zapisanie – Czy atrybut jest zapamiętany w bazie danych czy wyznaczany na podstawie wartości innych atrybutów? Bazy danych – Model związków encji Atrybuty pojedyncze i złożone Atrybut złożony, jak sugeruje nazwa, składa się z wielu części, które można traktować jako atrybuty podporządkowane. Przykład atrybutu złożonego: adres lekarza składający się z innych atrybutów takich jak ulica, miasto, nr domu, kod pocztowy Atrybut pojedynczy to taki, który nie składa się z innych atrybutów; stanowi niepodzielną cechę. Przykład atrybutu pojedynczego: imię lekarza Bazy danych – Model związków encji Atrybuty jedno- i wielowartościowe Atrybut jednowartościowy to taka cecha, która dla jednego konkretnego obiektu może przyjąć tylko jedną wartość. Przykład atrybutu jednowartościowego: rok rozpoczęcia pracy Atrybut wielowartościowy to taki, który dla jednego konkretnego obiektu może przyjąć wiele wartości. Przykład atrybutu wielowartościowego: adres lekarza (lekarz może mieć więcej niż jeden adres np. adres korespondencyjny, adres tymczasowy itp.) Bazy danych – Model związków encji Atrybuty zapamiętane i wyznaczone Atrybut zapamiętany to cecha obiektu trwale zarejestrowana w bazie danych. (Występuje w większości przypadków) Przykład atrybutu zapamiętanego: rok rozpoczęcia pracy Atrybut wyznaczony to taki, którego wartość jest wyliczana (wyznaczana) na podstawie wartości innego atrybutu. Przykład atrybutu wyznaczonego: staż pracy (liczba lat pracy wyliczona z różnicy pomiędzy rokiem bieżącym a rokiem rozpoczęcia pracy) Bazy danych – Model związków encji Modelowanie atrybutów W definicji encji umieszczamy: atrybuty, które są pojedyncze, jednowartościowe i zapamiętane atrybuty podporządkowane (składowe) atrybutów złożonych poprzedzone ewentualnym przedrostkiem informującym o przynależności do atrybutu (np. adr_ulica, adr_miasto itp.) Atrybuty wielowartościowe modelujemy jako nową encję. Atrybutów wyliczeniowych z reguły nie umieszczamy w definicji encji. Bazy danych – Model związków encji Typy encji Wszystkie obiekty (encje), które charakteryzują te same atrybuty łączone są w jeden typ encji. W ramach jednego typu encji obiekty mają te same właściwości, ale inne ich wartości tzn., że każda encja opisywana jest za pomocą tych samych atrybutów, które mogą przyjmować różne wartości dla różnych obiektów. Typ encji pozwala na jednoczesne sprawne zarządzanie wszystkimi jego obiektami. Np. Typ encji „lekarz” zarządza jednocześnie danymi wszystkich lekarzy. Bazy danych – Model związków encji Klucz główny W celu rozróżnienia poszczególnych encji w danym typie encji wprowadza się specjalny atrybut(y), który jednoznacznie zidentyfikuje obiekt w danym zbiorze. Taka cecha przyjmuje unikalne wartości dla każdego z obiektów i nie może być pozbawiona wartości (NOT NULL). W przypadku gdy jest to więcej niż jeden atrybut unikalność polega na braku powtórzenia kombinacji wartości tych atrybutów (pojedyncze wartości nie muszą być unikalne). Taki atrybut(y) nazwany jest kluczem głównym (ang. primary key). Przykład klucza głównego typu encji „lekarz” : nr identyfikacyjny lekarza Bazy danych – Model związków encji Atrybut lokalny Wszystkie atrybuty typu encji, które nie są kluczem głównym są atrybutami lokalnymi i domyślnie mogą przyjmować wartości powtarzające się czy puste. Przykład atrybutu lokalnego typu encji „lekarz” : specjalizacja Bazy danych – Model związków encji Atrybut jako nowa encja Nie zawsze cecha/właściwość jest modelowana jako atrybut danej encji. Niekiedy własność encji modelowana jest jako nowa encja. Taka sytuacja ma miejsce (jest wymagana), gdy wystąpi przynajmniej jeden z trzech warunków: potrzeba/chęć budowy słownika (dynamicznego zbioru danych) wartości danej cechy analizowana własność stanowi atrybut wielowartościowy analizowana własność sama opisana jest jeszcze dodatkowymi właściwościami Bazy danych – Model związków encji Słownik wartości danej cechy Słownik wartości danej cechy to dodatkowy typ encji stanowiący zbiór możliwych lub występujących wartości cechy. Nazwa słownika z reguły określa daną cechę (jest jej nazwą). Najczęściej słownik posiada dwa atrybuty: identyfikator – dodatkowy numer stanowiący klucz główny nazwa – wartość danej cechy wymagająca wpisu (NOT NULL) Przykład słownika wartości danej cechy (encji „lekarz”) : encja „specjalizacja” Bazy danych – Model związków encji Korzyści wynikające ze słownika Trzy główne aspekty przemawiają za modelowaniem słowników wartości: jednoznaczność – każdej wartości przypisujemy unikalny numer (identyfikator) łatwość wyszukiwania – zazwyczaj jeden operand numeryczny w operacjach relacji (wynika z jednoznaczności) zamiast budowy wzorców tekstów redukcja pamięci – zamiast pełnych nazw wartości (kilkanaście czy kilkadziesiąt bajtów) w podstawowej encji zapisujemy liczby (2, 4 lub 8 bajtów) Bazy danych – Model związków encji Kiedy nie tworzyć słowników? Pozbawione sensu jest modelowanie słowników, gdy: nie dotyczą wartości tekstowych (wartości numeryczne, daty, logiczne itp.) przewiduje się znikomą lub zerową powtarzalność wartości Bazy danych – Model związków encji Co to jest relacja i typ relacji? Relacja to zależność istniejąca pomiędzy dwoma lub kilkoma encjami. Dla dwu lub kilku typy encji może istnieć wiele encji, które pozostają względem siebie w tej samej relacji. Zbiór wszystkich zależności tej samej relacji nazywamy typem relacji. Liczba typów encji biorących udział w danym typie relacji nazywana jest stopniem typu relacji. Najczęściej stopień relacji wynosi 2. Rekursyjny typ relacji – przypadek, gdy jeden typ encji bierze wielokrotnie udział w danym typie relacji. W celu rozróżnienia encji tego samego typu nadaje się im nazwę odpowiadająca roli jaką pełnią w typie relacji. Bazy danych – Model związków encji Złożoność typu relacji Jedną z ważniejszych cech typu relacji jest jego złożoność, która wyraża ograniczenia związane z liczbą relacji, w których bierze udział dana encja. Ograniczenia te podawane są formie stosunku pomiędzy dwa typami encji za pomocą notacji (1;M;N). Wyróżnia się trzy rodzaje stosunków (przypadków złożoności): jeden do jednego (1:1) jeden do wielu (1:N) wiele do wielu (M:N) Bazy danych – Model związków encji Złożoność typu relacji (1:1) Pomiędzy dwoma typami encji istnieje złożoność (1:1) wtedy, gdy dwie encje (po jednej z każdego typu) mogą wystąpić w danym typie relacji tylko raz. Jest to najrzadziej spotykany stosunek pomiędzy typami encji. Przykład: Rekursyjny typ relacji określający związek małżeński pomiędzy pacjentami. W danym momencie czasowym jeden pacjent może mieć tylko jedną żonę, a pacjentka tylko jednego męża. pacjent (mąż) – pacjent (żona) (1:1) Bazy danych – Model związków encji Złożoność typu relacji (1:N) Pomiędzy dwoma typami encji istnieje złożoność (1:N) wtedy, gdy jedna encja z typu pierwszego może wejść w relację z wieloma encjami z typu drugiego, ale jedna encja z typu drugiego może wejść w relację tylko z jedną encją z typu pierwszego. Przykład: Typ relacji określający przeprowadzenie wizyty. Jeden lekarz może przeprowadzić wiele wizyt, ale jedna wizyta przeprowadzana jest tylko przez jednego lekarza. lekarz – wizyta (1:N) Bazy danych – Model związków encji Złożoność typu relacji (M:N) Pomiędzy dwoma typami encji istnieje złożoność (M:N) wtedy, gdy jedna encja z typu pierwszego może wejść w relację z wieloma encjami z typu drugiego i jedna encja z typu drugiego może wejść w relację z wieloma encjami z typu pierwszego. Przykład: Typ relacji określający wykonywanie badań. Jeden pacjent może mieć wykonanych wiele badań i jedno badanie może być wykonane wielu pacjentom. pacjent - badanie (M:N) Bazy danych – Model związków encji Atrybuty typu relacji Podobnie jak typy encji, typy relacji także mogą charakteryzować się atrybutami. Z założenia należą do nich atrybuty kluczowe typów encji biorących udział w typie relacji i stanowią atrybuty kluczowe typu relacji. Wynika to z potrzeby identyfikacji danej relacji. Ponadto typ relacji może posiadać także atrybuty lokalne. Przykład: Rekursyjny typ relacji określający związek małżeński pomiędzy pacjentami będzie miał dwa atrybuty kluczowe – identyfikatory pacjenta (żona i mąż) oraz może mieć atrybut lokalny np. data ślubu. Bazy danych – Model związków encji Słaby typ encji Słaby typ encji to taki typ, który w swoim kluczu głównym posiada atrybuty kluczowe innego typu encji. Zatem do identyfikacji encji słabego typu potrzebny jest identyfikator encji z typy powiązanego. Taki powiązany typ encji nazywany jest identyfikującym właścicielem, a relacja względem słabego typu – relacją identyfikującą. Przy pomocy słabych typów encji można określać wzajemne warunki istnienia, ponieważ encja słabego typu może istnieć tylko wtedy, gdy istnieje encja identyfikującego ją typu, znajdująca się względem niej w relacji. Bazy danych – Model związków encji Koniec Dziękuję za uwagę! Bazy danych – Model związków encji