Bazy Danych 3 - ERD ZUT

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 31

Bazy danych

Wykład 3: Model związków encji.

dr inż. Magdalena Krakowiak


makrakowiak@wi.zut.edu.pl
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 muszą 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ę lub 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


Modelowanie relacji
Modelowanie relacji wymaga określenia zależności
pomiędzy typami encji – obiekt „rodzic” to obiekt,
od którego zależy obiekt „dziecko.”

Klucz główny „rodzica” jest dziedziczony i stanowi


dodatkowy atrybut „dziecka” – klucz obcy FK (ang.
Foreign key).

Klucz obcy to atrybut, który wskazuje na „rodzica” (obiekt,


od którego zależy dany obiekt).

Bazy danych – Model związków encji


Modelowanie relacji

W przypadku złożoności relacji (1:1) i (1:N) obiekty


pozostają względem siebie w zależności, którą należy
ustalić.

W przypadku złożoności relacji (M:N) obiekty są


równorzędne i nie ma pomiędzy nimi zależności. Wówczas
należy utworzyć nowy obiekt, który wejdzie w 2 relacje
(1:N) z tymi obiektami równorzędnymi.

Bazy danych – Model związków encji


Reprezentacja graficzna ERD
◼ typ encji – prostokąt z nazwą w środku nazwa
typu
(podwójna ramka oznacza słaby
typ encji)

◼ typ relacji – romb z nazwą w środku nazwa


typu

◼ połączenie obiektów – linia ciągła

◼ relacja identyfikująca - strzałka

Bazy danych – Model związków encji


Reprezentacja graficzna ERD
◼ złożoność relacji – oznaczenia na połączeniu
obiektów

1 N
pacjent ma wizyta

M N
pacjent ma badanie

Bazy danych – Model związków encji


Reprezentacja graficzna ERD
◼ atrybut typu encji – owal z nazwą w środku
(nazwa klucza głównego
z podkreśleniem)

imię specjalizacja
nazwisko

data
identyfikator lekarz zatrudnienia

Bazy danych – Model związków encji


Transformacja relacji (M:N)
M doty-
N
specjalizacja czy lekarz

1
doty-
specjalizacja czy
N specjalizacja
lekarza

1 ma N
lekarz

Bazy danych – Model związków encji


Przykładowy diagram związków encji
M N
doty-
specjalizacja czy lekarz
1

ma

1 N
ma
pacjent wizyta
1

ma

N
1 N

w
choroba diagnoza

Bazy danych – Model związków encji


Koniec

Dziękuję za uwagę!

Bazy danych – Model związków encji

You might also like