1
Modelowanie związków encji
2
Plan rozdziału
• Przykładowy opis miniświata
• Encje
• Związki
– stopień związku
– typ asocjacji
• Notacje diagramów ER
• Hierarchie encji
3
Etapy budowy systemu
informatycznego przedsiębiorstwa (1/4)
4
Etapy budowy systemu
informatycznego przedsiębiorstwa (2/4)
5
Etapy budowy systemu
informatycznego przedsiębiorstwa (3/4)
6
Etapy budowy systemu
informatycznego przedsiębiorstwa (4/4)
7
Fazy projektowania bazy danych
miniświat
zebranie
wymagań
zebranie
wymagań
analiza
funkcjonalna
analiza
funkcjonalna
projekt
pojęciowy
projekt
pojęciowy
projekt
logiczny
projekt
logiczny
projekt
fizyczny
projekt
fizyczny
projekt
aplikacji
projekt
aplikacji
implementacja
transakcji
implementacja
transakcji
niezależne od SZBD
zależne od SZBD
8
Przykład
Baza danych pewnego przedsiębiorstwa zawiera informacje o
pracownikach, departamentach i projektach. Faza zbierania wymagań
zaowocowała następującym opisem miniświata:
– Przedsiębiorstwo składa się z departamentów, każdy departament posiada
unikalną nazwę, unikalny numer oraz pracownika będącego kierownikiem.
Konieczne jest przechowywanie daty, od której dany pracownik zaczął kierować
departamentem. Każdy departament może posiadać wiele lokalizacji.
– Lokalizacja posiada nazwę i adres (miasto, kod, ulica, nr domu).
– Departamenty kontrolują wykonanie projektów. Każdy projekt posiada unikalną
nazwę, numer, oraz pojedynczą lokalizację.
– Każdy pracownik posiada imię, nazwisko, numer PESEL, adres, pensję, płeć,
oraz datę urodzenia. Każdy pracownik jest przypisany do jednego
departamentu, ale może jednocześnie pracować nad wieloma projektami
(niekoniecznie w ramach własnego departamentu). Dla każdego pracownika
chcemy pamiętać liczbę godzin, które pracownik przepracował nad każdym
projektem. Każdy pracownik posiada przełożonego (innego pracownika).
– Dla każdego pracownika zapamiętujemy informacje o członkach rodziny (na
potrzeby polisy ubezpieczeniowej). Należy pamiętać imię, płeć, datę urodzenia i
stopień pokrewieństwa każdego członka rodziny
9
Encja
• Cechy encji:
– każda encja posiada cechy zwane atrybutami,
– każda encja posiada unikalny identyfikator,
– obiekt rzeczywisty może być reprezentowany w modelu przez co
najwyżej jedną encję,
– reprezentacje konkretnych obiektów miniświata stanowią instancje
(wystąpienia) encji.
Encja (ang.
entity) to "rzecz" w modelowanym miniświecie, która
posiada niezależne istnienie i o której chcemy przechowywać
informacje. Encja może być obiektem materialnym, obiektem
niematerialnym, zdarzeniem lub faktem.
Encja (ang.
entity) to "rzecz" w modelowanym miniświecie, która
posiada niezależne istnienie i o której chcemy przechowywać
informacje. Encja może być obiektem materialnym, obiektem
niematerialnym, zdarzeniem lub faktem.
10
1012
Zielony
Spec.ds.logistyki
17.01.1974
5 200
...
1012
Zielony
Spec.ds.logistyki
17.01.1974
5 200
...
Co może reprezentować encja?
• Obiekt materialny:
– pracownik, książka, samochód, towar
• Obiekt niematerialny:
– faktura, projekt, konto, zamówienie, grupa pracowników
• Zdarzenie:
– choroba pracownika, przyznanie nagrody, kontrola
• Fakt:
– znajomość języka obcego, stan magazynowy produktu
Pracownik
id_pracownika
nazwisko
stanowisko
data_urodzenia
pensja
...
Pracownik
id_pracownika
nazwisko
stanowisko
data_urodzenia
pensja
...
encja
encja
1004
Czerwony
Z-ca dyrektora
8.02.1969
7 500
...
1004
Czerwony
Z-ca dyrektora
8.02.1969
7 500
...
1001
Niebieski
Dyrektor
12.05.1949
12 000
...
1001
Niebieski
Dyrektor
12.05.1949
12 000
...
instancje encji
11
Typy atrybutów
• Proste i złożone
– atrybut prosty/atomowy (ang.
simple
/
atomic
): atrybut niepodzielny,
np. imię, nazwisko, pensja, etat
– atrybut złożony (ang.
composite
): może być podzielony na atrybuty
proste, np. adres
• Jedno- i wielowartościowe
– atrybut jednowartościowy (ang.
single-valued
): w dowolnej chwili
atrybut posiada tylko jedną wartość, np. wiek, nazwisko
– atrybut wielowartościowy (ang.
multi-valued
): atrybut może
posiadać wiele wartości (możliwe ograniczenia), np. języki obce
• Oryginalne i wywiedzione
– atrybut oryginalny (ang.
stored
): wartość atrybutu zapisana w bd
– atrybut wywiedziony (ang.
derived
): wartość atrybutu została
wyliczona na podstawie innego atrybutu, np. wiek
12
Atrybuty kluczowe
• Przykłady unikalnych identyfikatorów encji
– identyfikatory proste naturalne: PESEL, NIP, ISBN
– identyfikatory proste sztuczne: ID_PRACOWNIKA, ID_ZAMOWIENIA
– identyfikatory złożone: NR_REJESTRACYJNY, INDEKS
Każda encja posiada atrybut (lub zbiór atrybutów) będących
unikalnym identyfikatorem encji. Wartości unikalnego
identyfikatora są unikalne w ramach wszystkich wystąpień encji.
Każda encja posiada atrybut (lub zbiór atrybutów) będących
unikalnym identyfikatorem encji. Wartości unikalnego
identyfikatora są unikalne w ramach wszystkich wystąpień encji.
13
Związki
• Definicje
– związek R między encjami E
1
, E
2
,..., E
n
definiuje zbiór asocjacji między
instancjami tych encji. Związek R jest matematyczną relacją
składającą się z instancji związku r
i
, gdzie r
i
wiąże n instancji encji
(e
1
,e
2
,..., e
n
) i każda instancja e
j
, 1
≤j≤n jest wystąpieniem encji E
j
.
– związek R między encjami E
1
, E
2
,..., E
n
jest podzbiorem iloczynu
kartezjańskiego E
1
× E
2
× ... × E
n
Pracownik
Departament
Pracuje W
p
1
p
2
p
3
p
4
d
1
d
2
d
3
r
1
r
2
r
3
r
4
14
Stopień związku (1/3)
• Stopień związku to liczba encji uczestniczących w związku
– związki unarne: wiążą jedną encję, najczęściej reprezentują
rekurencyjne powiązanie hierarchiczne między obiektami określonego
typu, przykłady takich związków to "jest przełożonym", "jest częścią",
"wchodzi w skład". Dla związków unarnych konieczne jest określenie
roli, jaką gra każda instancja encji w związku.
Pracownik
Jest przełożonym
p
1
p
2
p
3
p
5
r
1
r
2
p
4
szef
szef
podwładny
podwładny
podwładny
15
Stopień związku (2/3)
• Stopień związku to liczba encji uczestniczących w związku
– związki binarne: wiążą instancje dwóch encji, są to
najpopularniejsze i najczęściej spotykane rodzaje związków
Pracownik
Samochód
Posiada
p
1
p
2
p
3
p
4
s
1
s
2
s
3
r
1
r
2
r
3
16
Stopień związku (3/3)
• Stopień związku to liczba encji uczestniczących w związku
– związki ternarne: wiążą instancje trzech encji
UWAGA: związku ternarnego R(A,B,C) nie wolno mylić z trzema
związkami binarnymi R
1
(A,B) R
2
(A,C) R
3
(B,C)
Pracownik
Projekt
Pracuje Nad
p
1
p
2
p
3
t
1
t
2
t
3
r
1
r
2
r
3
Rola
l
1
l
2
l
3
17
Typ asocjacji związku (1/3)
• Typ asocjacji określa liczbę instancji związku w których
może brać udział instancja encji
– związki typu 1:1 każda instancja encji może brać udział w co
najwyżej jednej instancji związku
Pracownik
Departament
Jest Kierownikiem
p
1
p
2
p
3
p
4
d
1
d
2
d
3
r
1
r
2
r
3
Pracownik może być kierownikiem co najwyżej jednego
departamentu, departament ma co najwyżej jednego kierownika
Pracownik może być kierownikiem co najwyżej jednego
departamentu, departament ma co najwyżej jednego kierownika
18
Typ asocjacji związku (2/3)
• Typ asocjacji określa liczbę instancji związku w których
może brać udział instancja encji
– związki typu 1:N instancje jednej encji mogą brać udział w co
najwyżej jednej instancji związku, instancje drugiej encji mogą brać
udział w dowolnej liczbie instancji związku
Producent
Część
Produkuje
p
1
p
2
c
1
c
2
c
3
r
1
r
2
r
3
Producent może produkować wiele części, każda część jest
produkowana przez co najwyżej jednego producenta
Producent może produkować wiele części, każda część jest
produkowana przez co najwyżej jednego producenta
19
Typ asocjacji związku (3/3)
• Typ asocjacji określa liczbę instancji związku w których
może brać udział instancja encji
– związki typu N:M instancje każdej encji mogą brać udział w
dowolnej liczbie instancji związku
Dostawca
Towar
Dostarcza
d
1
d
2
t
1
t
2
t
3
r
1
r
2
r
3
Każdy dostawca może dostarczać wielu towarów, każdy
towar może być dostarczany przez wielu dostawców
Każdy dostawca może dostarczać wielu towarów, każdy
towar może być dostarczany przez wielu dostawców
t
4
20
Przynależność do związku
• Istnieją dwa rodzaje ograniczeń na przynależność
– totalna przynależność (ang.
total participation
) encji w związku
oznacza, że każda instancja encji musi brać udział w jakiejś instancji
związku (związek jest obligatoryjny),
– częściowa przynależność (ang.
partial participation
) encji w
związku oznacza, że mogą istnieć instancje encji nie biorące udziału w
żadnej instancji związku (związek jest opcjonalny)
Wykładowca
Przedmiot
Wykłada
w
1
w
2
w
3
w
4
p
1
p
2
p
3
r
1
r
2
r
3
21
Encje słabe
• Definicja
– encje słabe (ang. weak entities) nie posiadają własnego unikalnego
identyfikatora, lecz są identyfikowane poprzez związek z encją
nadrzędną (encją identyfikującą). Mówimy wówczas, że związek jest
częścią unikalnego identyfikatora encji słabej. Encja słaba posiada
częściowy unikalny identyfikator rozróżniający instancje należące do
tej samej encji identyfikującej
Pracownik
Dziecko
Posiada Dziecko
p
1
p
2
p
3
d
1
d
2
d
3
r
1
r
2
r
3
Anna
Jan
Anna
22
Notacja (1/3)
Pracownik
Dziecko
Pracuje Nad
Należy Do
nazwisko
PESEL
języki
adres
ulica
dom
kod
wiek
E
1
E
2
R
E
1
E
2
R
E
R
1
N
(min,max)
encja
encja słaba
związek
związek
identyfikujący
atrybut
unikalny
identyfikator
atrybut
wielowartościowy
atrybut
złożony
atrybut
wywiedziony
totalne
uczestnictwo
liczność
związku
ograniczenia
liczności
23
Notacja (Chen) (2/3)
Pracownik
Dziecko
Pracuje Nad
Należy Do
nazwisko
PESEL
języki
adres
ulica
dom
kod
wiek
E
1
E
2
R
E
1
E
2
E
R
(min,max)
encja
encja słaba
związek
związek
identyfikujący
atrybut
unikalny
identyfikator
atrybut
wielowartościowy
atrybut
złożony
atrybut
wywiedziony
uczestnictwo
liczność
związku
ograniczenia
liczności
24
Notacja (Oracle) (3/3)
Pracownik
# PESEL
* Nazwisko
° Data ur
encja
związek 1:1
związek identyfikujący
atrybut wymagany
unikalny identyfikator
atrybut opcjonalny
E
1
E
2
R
E
1
E
2
R
związek wymagany/opcjonalny
E
1
E
2
R
związek 1:N
E
1
E
2
R
25
Hierarchia encji (1/3)
• Nadklasy i podklasy
– podobne encje o wspólnym zbiorze atrybutów można generalizować
za pomocą encji nadklasy (ang.
superclass
), zwaną też encją
generalizacji,
– każda instancja encji podklasy jest jednocześnie wystąpieniem encji
nadklasy, encje podklas mogą być rozłączne lub nakładające się,
– encja podklasy dziedziczy wszystkie atrybuty oraz związki encji
nadklasy
1001
Niebieski
Dyrektor
nr dow: DD 12345
...
1001
Niebieski
Dyrektor
nr dow: DD 12345
...
encje
podklasy
1004
Brown
CFO
pass: AB 001122
...
1004
Brown
CFO
pass: AB 001122
...
Pracownik
id_pracownika
nazwisko
stanowisko
Pracownik
id_pracownika
nazwisko
stanowisko
Pracownik krajowy
nr_dowodu_osobistego
Pracownik zagraniczny
nr_paszportu
encja generalizacji
26
Hierarchia encji (2/3)
• Związki w hierarchii encji
– związki dotyczące encji nadklasy
– związki dotyczące encji podklasy
– związki wykluczające się
Departament
Stanowisko
Jednostka
Organizacyjna
Pracownik
Pracownik
kontraktowy
Pracownik
tymczasowy
Projekt
27
Hierarchia encji (3/3)
Pracownik
Pr.techniczny
Pr.administracyjny
Pr.inżynieryjny
D
encje podklasy są
rozłączne (D) lub
nakładają się (O)
czy każda instancja
encji nadklasy musi
być instancją którejś
z encji podklasy?
PESEL
Nazwisko
Data Ur.
Kategoria
Uprawnienia
28
Specjalizacja i generalizacja
• Specjalizacja
– definiowanie zbioru encji podklas na podstawie encji nadklasy
• Generalizacja
– definiowanie ogólnej encji nadklasy na podstawie istniejącego zbioru
encji, które automatycznie stają się encjami podklas
• Cechy specjalizacji/generalizacji
– definiowane przez predykat, atrybut lub użytkownika
– specjalizacja może być rozłączna lub nakładająca się
– specjalizacja może być pełna lub częściowa
29
Kategorie
• Kategoria
– kolekcja obiektów wystąpień różnych encji powiązanych w jeden typ
nadklasy (typ połączeniowy, ang.
union type
)
– kategoria może mieć charakter pełny lub częściowy
– w przypadku kategorii następuje selektywne dziedziczenie atrybutów
Osoba
Firma
Bank
Nazwisko
Nazwa
Nazwa
U
Właściciel
Samochód
30
Ograniczenia integralnościowe
• Dziedzina wartości
– typ i przedział wartości dla atrybutu: NAZWA VARCHAR2(100)
• Obligatoryjność
– wartość dla każdego wystąpienia encji: * NAZWISKO,
° IMIE
• Unikalność
– unikalna wartość dla każdego wystąpienia encji: # PESEL
• Zawężenie dziedziny wartości
– złożone reguły poprawności atrybutu: CHECK (PLEC IN ('K','M'))
• Dynamika wartości
– kolejność poprawnych wartości: kawaler
→żonaty→wdowiec
31
Podsumowanie
• Encje reprezentują obiekty modelowanego miniświata.
Atrybuty encji dzielimy na:
– proste (atomowe),
– złożone,
– wielowartościowe.
• Związki między encjami charakteryzują się:
– stopniem: związki unarne, binarne, ternarne,
– typem asocjacji: 1:1, 1:N, N:M,
– przynależnością: opcjonalna i obowiązkowa
• Istnieje wiele notacji dla diagramów ER: notacja
podstawowa, notacja Chena, notacje Oracle
• Hierarchie encji
– encje nadklasy i podklasy
– związki wykluczające się, związki nadklas i podklas
32
Pytania
• Zdefiniuj poniższe pojęcia:
– encja, atrybut, instancja związku, atrybut złożony, atrybut
wielowartościowy, atrybut wywiedziony, unikalny identyfikator encji,
stopień związku, typ asocjacji związku, przynależność do związku,
encja słaba, specjalizacja, generalizacja, kategoria
• Odpowiedz na poniższe pytania:
– jaka jest różnica między związkiem i instancją związku?
– kiedy konieczne jest użycie ról w związkach?
– jaka jest różnica między encją i encją słabą?
– jaka jest różnica między związkiem ternarnym i odpowiadającym mu
trzem związkom binarnym?
– jaki rodzaj związku (1:1, 1:N, N:M, opcjonalny/obligatoryjny) jest
logicznie niemożliwy do spełnienia?
33
Zadanie
Malarze malują obrazy, które są prezentowane podczas wystaw. Każdy malarz
posiada unikalny sztuczny identyfikator, imię, nazwisko, narodowość, datę
urodzenia i datę śmierci. Z każdym malarzem może być związana jedna lub więcej
not biograficznych. Każda nota biograficzna posiada swojego autora i określoną
treść. Każdy autor noty biograficznej (opisany przez imię i nazwisko) może
napisać co najwyżej jedną notę o danym malarzu, przy czym jeden autor może
napisać wiele not o różnych malarzach. Nie ma sensu przechowywać noty
biograficznej o malarzu który nie został wprowadzony do bazy danych. Każdy
obraz posiada swój unikalny sztuczny identyfikator, tytuł, oraz datę powstania.
Każdy obraz reprezentuje określony styl malarski. Dla stylu malarskiego należy
pamiętać jego nazwę (nazwa stylu jest unikalna), datę początku i datę końca
występowania danego stylu. Każdy obraz zaliczany jest do jednego i tylko
jednego stylu. Każdy styl posiada malarza, który jest sztandarowym
przedstawicielem tego stylu. Każdy malarz może być sztandarowym
reprezentantem co najwyżej jednego stylu. Obrazy są prezentowane podczas
wystaw. Każda wystawa ma unikalny sztuczny identyfikator, nazwę, datę
rozpoczęcia, datę zakończenia oraz adres. Adres składa się z nazwy obiektu
ekspozycyjnego, ulicy, numeru kodu i nazwy miasta. Każdy obraz może być
prezentowany w ramach wielu wystaw, na każdej wystawie prezentowanych jest
wiele obrazów. W trakcie każdej wystawy dany obraz może być prezentowany
jako własny lub wypożyczony.
34
Zadanie
Należy zbudować system informatyczny wspomagający pracę agencji
organizującej koncerty i festiwale muzyczne.
– Każdy koncert posiada datę, lokalizację (opis miejsca odbywania się koncertu), czas
trwania koncertu (wyrażony w minutach) oraz rodzaj (np. sala koncertowa, klub,
otwarty stadion)
– Każdy koncert odbywa się w określonym mieście. Dla każdego miasta należy pamiętać
nazwę miasta i nazwę kraju
– Koncert może się odbywać jako samodzielne wydarzenie albo może być częścią
większego festiwalu. W ramach festiwalu zawsze odbywa się co najmniej jeden koncert.
Każdy festiwal posiada swoją nazwę, lokalizację oraz rok odbycia. Każdy festiwal
odbywa się w dokładnie jednym mieście (nie ma festiwali które odbywają się
jednocześnie w wielu miastach)
– Na każdy koncert sprzedawane są bilety. Każdy bilet posiada unikalny numer w ramach
koncertu na który został wystawiony. Bilet poza numerem posiada cenę i rodzaj (np.
ulgowy, VIP)
– Koncerty są wykonywane przez wykonawców. Każdy wykonawca reprezentuje jakiś typ
muzyki (np. rock, pop, jazz). Wykonawcą może być solista lub zespół. Dla solisty należy
pamiętać jego nazwisko i datę urodzenia, dla zespołu należy pamiętać nazwę zespołu i
datę założenia zespołu.
– Każdy zespół musi się składać z jednego bądź wielu muzyków, przy czym każdy muzyk
może grać w dowolnej liczbie zespołów. Dla każdego muzyka należy zapamiętać jego
nazwisko, datę urodzenia i instrument na którym gra muzyk.