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

Podobne dokumenty