(Microsoft PowerPoint - 05-model

Transkrypt

(Microsoft PowerPoint - 05-model
Ogólne problemy
Modelowanie konceptualne
• Jak modelować dane niezależnie od
przyszłej implementacji (modelowanie E/R)
• Jak zaprojektować dobry schemat
(normalizacja)
Tadeusz Pankowski
www.put.poznan.pl/~tadeusz.pankowski
(c) T. Pankowski, Modelowanie
konceptualne
(c) T. Pankowski, Modelowanie
konceptualne
1
Plan
Cel modelu ER
1. Cel modelowania konceptualnego i modelu ER
2. Etapy modelowania konceptualnego
3. Model ER (jednostka-związek, związków encji)
•
Model ER służy do nieformalnego przedstawienia modelu
dziedziny przedmiotowej.
•
Jednostki i typy jednostek
Związki i typy związków
•
•
•
2
•
Związki binarne: 1:1, 1:N, N:N
Związki wieloczłonowe i ich właściwości
Związki rekurencyjne
Model ma postać graficzną zwaną diagramem ER (entityrelationship diagram) diagramem jednostka-związek
(diagram ERD).
Istnieje procedura (pół)automatycznej transformacji
diagramu ERD do konkretnej implementacji, na przykład
do relacyjnej bazy danych.
Związki z uczestnictwem jednostek zależnych od czasu
(zdarzeń)
(c) T. Pankowski, Modelowanie
konceptualne
3
(c) T. Pankowski, Modelowanie
konceptualne
4
Trójpoziomowa architektura
ANSI/SPARC
POZIOM
ZEWNĘTRZNY
Obraz
zewnętrzny 1
Obraz
. . . zewnętrzny n
odwzorowanie
zewnętrzny/globalny
POZIOM
KONCEPTUALNY
Model konceptualny
SCHEMAT GLOBALNY
(diagram ER + ...)
odwzorowanie
globalny/wewnętrzny
POZIOM
WEWNĘTRZNY
SCHEMAT WEWNĘTRZNY
Transformacja modelu
konceptualnego do
schematu (globalnego)
bazy danych
Fizyczna
baza danych
(c) T. Pankowski, Modelowanie
konceptualne
5
Model ER – EntityEntity-Relationship
Model ER – EntityEntity-Relationship
Model zaproponowany w:
P.P. Chen, The Entity-Relationship Data Model: toward a unified view of
data, ACM Transactions on Database Systems, Vol. 1, 1976.
Model danych dla poziomu konceptualnego, określany jako:
• model jednostka-związek
• model związków encji
• model obiektowo-związkowy
Opisuje dziedzinę przedmiotową za pomocą pojęć:
• jednostka (ang. entities) (po polsku także: obiekt,
encja),
• atrybutów (ang. attributes),
• związków (ang. relationships).
„Entities and relationships are a natural
way to organize physical things
as well as information.”
Peter Chen
(c) T. Pankowski, Modelowanie
konceptualne
7
(c) T. Pankowski, Modelowanie
konceptualne
8
Budowa aplikacji z wykorzystaniem
SZBD
Projektowanie bazy danych
• Co powinniśmy osiągnąć?
• Modelowanie wymagań (pojęciowe, za pomocą
diagramów)
• Porozumienie dotyczące struktury bazy danych
przed podjęciem decyzji o konkretnej
implementacji
• Decydujemy, jakie jednostki (encje, obiekty) powinny być
uwzględnione w aplikacji i jak powinny być powiązane
• Projektowanie i implementacja schematu
• Uwzględnić takie problemy jak:
• decyzje o zbiorze tabel i atrybutów
• definicja tabel w SZBD
• wprowadzenie danych
• jakie jednostki modelować
• jak jednostki są nawzajem powiązane
• jakie ograniczenia istnieją w modelowanej
dziedzinie
• jak uzyskać dobry projekt
• Pisanie programów aplikacyjnych korzystających z SZBD
• wiele funkcji realizuje SZBD
(c) T. Pankowski, Modelowanie
konceptualne
(c) T. Pankowski, Modelowanie
konceptualne
9
Formalizmy definiowanie bazy danych
10
Diagramy ER
1. Języki modelowania obiektowego
(ODL):
•
•
•
•
ODL (Object Definition Language) (?)
UML (Unified Modeling Language)
CWM (Common Warehouse Metamodel)
Wzorce projektowe (Design Patterns)
Jednostki
Towar
Atrybuty
Adres
Związki między jednostkami
Sprzedaż
2. Model Entity/Relationship (ER):
• Najbardziej naturalny, modelowanie
semantyczne
(c) T. Pankowski, Modelowanie
konceptualne
11
(c) T. Pankowski, Modelowanie
konceptualne
12
Klucze w diagramach ER
Nazwa
• Każdy typ jednostki musi mieć klucz
Każdy towar ma
dokładnie jednego
producenta
Kategoria
CenaSprz
1
Produkuje
1..N
Kategoria
Każdy klient
kupił co
najmniej
jeden towar
Cena
Towar
0..N
1
2
3
4
1..N
Produkuje
1
Nazwisko
NrPESEL
Towar
1
2
3
4
Krotność związków
Firma
a
• jeden-do-jeden:
1
1
1
2
a
b
3
b
c
c
• jeden-do-wielu:
Towar
1..N
Osoba
13
Związek jako relacja binarna
• Matematyczna definicja relacji:
• jeśli A, B są zbiorami, to relacja R jest
podzbiorem iloczynu kartezjańskiego A x B
• Towar ={1,2,3,4}, Firma ={a,b,c},
Produkuje = {(1,a), (2,a), (3,b), (4,c)}
- Produkuje jest podzbiorem Towar x Firma:
CenaHurt
Zatrudnia
Adres
(c) T. Pankowski, Modelowanie
konceptualne
0..1
Każda firma
produkuje co
najmniej jeden towar
Kupuje
Każdy towar
może mieć zero
lub dowolnie
wielu klientów
Firma
1..N
Towar
Nazwa
Nazwa
1
1..N
Firma
• wiele-do-wielu:
a
1..N
1..N
1
2
3
4
a
b
c
1
a
2
b
b
3
c
c
15
(c) T. Pankowski, Modelowanie
konceptualne
16
Uczestnictwo w związkach:
obowiązkowe i opcjonalne
• jeden-do-jeden:
1
0..1
Związki wieloczłonowe
1
a
2
Towar
b
3
4
0..N
0..N
Dostawca
Dostawa
c
1
• jeden-do-wielu:
1
0..N
Magazyn
1
2
3
4
a
b
c
d
1
a
2
b
3
• wiele-do-wielu:
0..N
0..N
1
a
2
c
4
b
3
c
d
4
(c) T. Pankowski, Modelowanie
konceptualne
y
17
Za
Załłożenia o dziedzinie przedmiotowej
Przyjmuje się, że odwzorowywana dziedzina przedmiotowa
(świat rzeczywisty) jest systemem w którym:
• istnieją identyfikowalne jednostki,
• jednostki scharakteryzowane są przez atrybuty i wartości
atrybutów,
• jednostki pozostają w związkach pomiędzy sobą i w
związkach tych pełnią określone role,
• związki mogą mieć atrybuty o określonych wartościach,
• jednostki klasyfikowane są w klasy (zbiory) jednostek,
• związki klasyfikowane są w klasy (zbiory) związków.
(c) T. Pankowski, Modelowanie
konceptualne
x
19
18
Jednostki, encje (entities)
Jednostka – reprezentuje przedmioty (byty, zjawiska, zdarzenia)
świata rzeczywistego, które mogą być:
• materialne – np. osoba, samochód, książka,
• pojęciowe – np. zawód, adres, wycieczka, program, wydział.
Każda jednostka posiada zbiór atrybutów (nazw cech), na przykład:
Nazwisko, Wiek, Adres, charakteryzujące jej typ oraz wartości tych
atrybutów, które charakteryzują jego indywidualne cechy.
Każda jednostka ma wyróżniony jeden atrybut, którego wartość
pozwala na jednoznaczną identyfikację jednostki w klasie jednostek
tego samego typu. Atrybut ten nazywamy atrybutem kluczowym
(kluczem) lub identyfikującym (identyfikatorem).
(c) T. Pankowski, Modelowanie
konceptualne
20
Typy jednostkowy
jednostkowy (entity sets)
Typy jednostkowe
jednostkowe – notacja graficzna
Typ jednostkowy - opisuje własności, jakie musi posiadać jednostka.
Pojęcie podobne do klasy w podejściu obiektowym.
Typ jednostkowy definiuje:
• zbiór atrybutów, które muszą posiadać jednostki tego typu,
• dla każdego atrybutu zbiór wartości zwany dziedziną atrybutu –
każdy atrybut przyjmuje wartości tylko ze swojej dziedziny, np.
dziedziną dla atrybutu Wiek typu Pracownik może być zbiór liczb
całkowitych z przedziału (18, 70); określa też, czy atrybut może
przyjmować wyróżnioną wartość pustą (zerową) oznaczaną przez
NULL;
• który z atrybutów jest atrybutem kluczowym – atrybut taki nie
może przyjmować wartości NULL.
(c) T. Pankowski, Modelowanie
konceptualne
E
...
OSOBA
NrEwid
Nazwisko
DataUr
Zawód
(c) T. Pankowski, Modelowanie
konceptualne
22
Decyzje projektowe
• Na etapie projektowania należy podjąć decyzje, co będziemy
uważali za niezależną jednostkę, a co za wartość atrybutu.
Decyzje takie są często oczywiste, ale niekiedy wymagana jest
głębsza analizy.
• W następującym przykładzie jest rzeczą dość oczywistą, że
Dostawca nie powinien być traktowany jako atrybut typu
jednostkowego TOWAR.
Typ jednostkowy o postaci:
A1
Przykład:
21
Typy jednostkowe
jednostkowe – reprezentacja w
modelu relacyjnym
K
• Typy jednostkowy oznaczamy za pomocą prostokątów.
Wewnątrz prostokąta umieszczamy nazwę typu. Atrybuty
oznaczamy za pomocą elipsy, wewnątrz której piszemy nazwę
atrybutu.
• Krawędzie łączące prostokąty z elipsami oznaczają, że typ
jednostkowy przedstawiony ze pomocą prostokąta posiada
atrybut o nazwie zawartej w elipsie. Podkreślenie atrybutu
oznacza, że jest to atrybut kluczowy (identyfikujący).
An
Przykład – rozróżnienie między jednostkami a wartościami atrybutów:
TOWAR
Reprezentowany jest za pomocą relacji (tabeli):
RE(K, A1, ..., An),
gdzie K jest kluczem głównym w tabeli RE.
NrTow
Nazwa
Cena
Dostawca
Dostawca nie jest atrybutem towaru!
Jest to niezależna jednostka, z którą
powiązany jest towar.
23
24
Decyzje projektowe (c.d.)
Związki (Relationships)
2.
Adres jako jednostka
Adres może być traktowany jako niezależna jednostka
o atrybutach:
Miejscowość, Ulica, Nr Domu, Nr Lokalu.
• Związek reprezentuje fakt istnienia powiązania między dwiema
lub większą liczbą jednostek. O każdej takiej jednostce mówimy,
że uczestniczy w związku.
• Jeśli w związku uczestniczą dwie jednostki, to nazywamy go
związkiem binarnym. W związku n-członowym uczestniczy n,
n >= 2, jednostek.
• Jednostki w związku mogą być tego samego lub różnych typów.
• Związek, podobnie jak jednostka, może posiadać atrybuty.
• W przeciwieństwie do jednostki związek nie posiada
niezależnego identyfikatora. Jest on natomiast jednoznacznie
identyfikowany przez zbiór identyfikatorów uczestniczącym w
nim jednostek.
3.
Można podać przykłady systemów, gdzie przyjęcie każdej z tych
dwu alternatyw jest uzasadnione.
Uwaga: związki nie mogą uczestniczyć w związkach, w związkach
uczestniczą tylko jednostki!
Traktowanie adresu.
1. Adres jako atrybut
Adres może być traktowany jako atrybut (na przykład typu
jednostkowego Osoba), wówczas jego wartością jest tekst, np:
"Poznań, ul. Kwiatowa 5 m. 12".
(c) T. Pankowski, Modelowanie
konceptualne
25
Związki binarne 1:N i N:1
Typy związków (relationship sets)
Typ związku - opisuje własności, jakie przysługują związkom danego typu.
Typ związku (związkowy) definiuje:
• nazwę typu,
• zbiór atrybutów, jakie muszą posiadać związki tego typu,
• nazwy typów jednostek uczestniczących w związkach danego typu;
• uczestnictwo jednostek poszczególnych typów - określone przez:
• role (opcjonalnie), jaką jednostki pełnią w związkach,
• krotność – tj. typ odwzorowania w dany zbiór jednostek (x:0..1, x:1,
x:0..N, x:1..N) ze zbioru jednostek (krotek jednostek) określony przez
przeciwną stronę typu związku; inaczej: w ilu związkach z jednostką
danego typu mogą pozostawać jednostki (krotki jednostek)
zdefiniowane przez przeciwną stronę typu związkowego;
• przynależność – obowiązkowa (w definicji krotności nie występuje zero,
x:1, x:1..N) lub opcjonalna (w definicji krotności występuje zero, x:0..1,
x:0..N) jednostek w związkach.
(c) T. Pankowski, Modelowanie
konceptualne
26
27
t1
t1 d 1
d1
t2
t2 d 1
d2
t3
t3 d 2
d3
N
TOWAR
1
TOW_DOS
DOSTAWCA
W typie związkowym TOW_DOS:
• jeden towar ma jednego dostawcę (etykieta 1 przy typie DOSTAWCA),
• każdy towar musi wystąpić w jakimś związku, tzn. musi mieć dostawcę
(podwójna linia łącząca TOWAR i TOW_DOS oznaczająca 1..N)
• jeden dostawca może dostarczać wiele towarów (etykieta N przy TOWAR)
• mogą istnieć dostawcy nie występujący w żadnych związkach, tzn. nie
dostarczający żadnego towaru (pojedyncza linia między DOSTAWCA i
TOW_DOS, oznaczająca 0..1).
Reprezentacja relacyjna związków binarnych
1:N (N:1)
Reprezentacja relacyjna związków
binarnych 1:N (N:1) – przykład
Binarny typ związkowy 1:N (N:1)
K1
E1
N
1
R
K2
IdTow
E2
A1
B1
...
...
C1
An
Cp
N
Nazwa
t2
t3
N
k1
t3 k 1
k2
t3 k 2
k3
N
VAT
Nazwa
Adres
30
Reprezentacja relacyjna związków binarnych
N:N
t1 k 1
TOW_KLI
DOSTAWCA
Towar(IdTow, Nazwa, Cena, VAT, DataOstDost, Stan, IdDcy)
Dostawca(IdDcy, Nazwa, Adres)
W tabeli Towar kluczem głównym jest IdTow, a kluczem obcym jest IdDcy
W tabeli Dostawca kluczem głównym jest IdDcy
Binarny typ związkowy N:N
K1
E1
KLIENT
W typie związkowym TOW_KLI reprezentowana jest następująca informacja:
• jeden towar może być kupowany przez wielu klientów (N przy KLIENT),
• mogą istnieć towary nie występujące w żadnych związkach, tzn. nie były
jeszcze sprzedawane (pojedyncza linia między TOWAR i TOW_KLI, 0..N).
• jeden klient może kupować wiele towarów (N przy TOWAR, 0..N)
• mogą istnieć klienci nie występujący w żadnych związkach, tzn. nie
kupili jeszcze żadnego towaru (pojedyncza linia między KLIENT i
TOW_KLI, w definicji krotności występuje 0).
N
N
R
A1
...
TOWAR
1
Typy związkowe 1 : N reprezentujemy za pomocą dwóch tabel:
1. Pierwsza tabela reprezentuje typ jednostkowy po stronie z etykietą "N" oraz jego
powiązanie z typem jednostkowym po stronie „1” (tj. atrybuty typu związkowego i
klucz typu jednostkowego po stronie z etykietą "1"),
2. Druga tabela odpowiada typowi jednostkowemu po stronie z etykietą "1"
Związki binarne N:N
t1
Cena
IdDcy
Stan
TOW_DOS
TOWAR
Bm
Binarny typ związkowy 1:N w diagramie ER, reprezentujemy w modelu
relacyjnym za pomocą dwóch relacji (tabel):
1. RE2(K2, B1, ..., Bm) – reprezentacja typu jednostkowego po stronie „1”
2. RE1(K1, A1, ..., An, C1, ..., Cp, K2) – reprezentacja typu jednostkowego po
stronie „N” oraz informacji zawartej w typie związkowym R.
3. K1 i K2 są kluczami głównymi w tabelach odpowiednio RE1 i RE2,
4. K2 jest kluczem obcym w tabeli RE1 i wyznacza zależność referencyjną do
RE2.
DataOstDost
An
K2
E2
B1
C1
Cp
...
Bm
Binarny typ związkowy N:N w diagramie ER, reprezentujemy w modelu
relacyjnym za pomocą trzech relacji (tabel):
1. RE1(K1, A1, ..., An), RE2(K2, B1, ..., Bm) – reprezentują typy jednostkowe.
2. RR(K1, K2 C1, ..., Cp,) – reprezentuje typ związkowy R.
3. K1 i K2 są kluczami głównymi w tabelach odpowiednio RE1 i RE2,
4. Para (K1, K2) jest kluczem głównym w tabeli RR, a K1 i K2 są kluczami
obcymi w tabeli RR wyznaczającymi zależności referencyjną odpowiednio
do RE1 i RE2.
Reprezentacja relacyjna związków
binarnych N:N – przykład
IdTow
TOWAR
DataOstSprz
N
IdKli
Ilość
N
TOW_KLI
Związki binarne N:N – Potrzeba
wprowadzenia dodatkowej jednostki
IdTow
KLIENT
DataSprz
N
Nazwa
Cena
VAT
Nazwa
Typy związkowe typu N : N reprezentujemy za pomocą trzech tabel:
1. Dwie tabele reprezentujące typy jednostkowe,
2. Jedna tabela reprezentująca typ związkowy: klucz tej tabeli składa się z kluczy
typów jednostkowych uczestniczących w typie związkowym, tabela zawiera atrybutu
typu związkowego.
Towar(IdTow, Nazwa, Cena, VAT)
Klient(IdKli, Nazwa, Adres)
TowKli(IdTow, IdKli, DataOstSprz, Ilość)
W tabeli TowKli kluczem głównym jest para (IdTow, IdKli), a każda ze
składowych pary jest a kluczem obcym definiującym zależność referencyjną
odpowiednio do tabeli Towar i Klient.
Nazwa
N
Sprzedaż
TOWAR
Adres
IdKli
Ilość
Cena
KLIENT
VAT
Nazwa
Adres
Gdyby reprezentować jak poprzednio:
Towar(IdTow, Nazwa, Cena, VAT)
Klient(IdKli, Nazwa, Adres)
Sprzedaż(IdTow, IdKli, DataSprz, Ilość)
Problem:
Ta sama para (IdTow, IdKli) nie może się powtórzyć, bo jest to klucz główny!
A towar o tym samym IdTow może być wielokrotnie sprzedawany temu
samemu klientowi.
33
Związki binarne N:N – Potrzeba
wprowadzenia dodatkowej jednostki
IdTow
Rekurencyjne typy związkowe
IdKli
1
1. Związkami rekurencyjnymi nazywamy takie związki, w których co
najmniej dwa człony należą do tej samej klasy jednostek.
2. W przypadku rekurencyjnych typów związkowych niezbędne jest
jawne określanie ról (w ogólnym przypadku jawne pisanie ról nie jest
konieczne).
3. MAŁŻEŃSTWO jest przykładem związku rekurencyjnego, gdzie
jednostki z klasy OSOBA pełnią rolę męża lub żony.
1
TOWAR
Nazwa
34
KLIENT
Cena
VAT
Nazwa
0..N
IdSprz
Adres
Ilość
SPRZEDAŻ
DataSprz
Reprezentacja relacyjna:
Towar(IdTow, Nazwa, Cena, VAT)
Klient(IdKli, Nazwa, Adres)
Sprzedaż(IdSprz, DataSprz, Ilość, IdTow, IdKli)
Rozwiązanie:
Uwzględniamy dodatkową jednostkę reprezentującą np. zdarzenie w
systemie rzeczywistym. Dążymy do sytuacji, gdy wśród wszystkich
jednostek uczestniczących w związku co najwyżej jeden ma etykietę „N”.
35
1
OSOBA
1
żona
mąż
MAŁŻEŃSTWO
DataŚlubu
(c) T. Pankowski, Modelowanie
konceptualne
36
Reprezentacja relacyjna rekurencyjnych typów
związkowych
Rekurencyjne typy związkowe
1. Innym typowym przykładem związków rekurencyjnych jest hierarchia
typu:
CzęśćGłówna – CzęśćSkładowa,
gdzie część (główna) składa się z wielu części (składowych), które z
kolei składają się z innych części itd.
2. Schematowi temu odpowiada również:
• budowa drzewa genealogicznego,
• zależności typu podwładny - przełożony itp.
Na poniższym diagramie, BUDOWA jest rekurencyjnym typem
związkowym tworzonych przez części główne i składowe:
N
CZĘŚĆ
1
CzGłówna
CzSkładowa
BUDOWA
(c) T. Pankowski, Modelowanie
konceptualne
N
BUDOWA
Związki rekurencyjne typu 1 : N możemy reprezentujemy za pomocą jednej
tabeli o następującym schemacie:
Część(IdCz, IdCzGł)
gdzie IdCz jest kluczem głównym, a IdCzGł jest kluczem obcym
wskazującym na część główną (rodzica w drzewie zależności).
(c) T. Pankowski, Modelowanie
konceptualne
Reprezentacja relacyjna rekurencyjnych typów
związkowych - przykład
IdCz
IdCzGł
a
NULL
b
a
Związki wieloczłonowe
c
d
c
38
Oprócz związków binarnych w modelu ER mogą występować związki
o dowolnej liczbie członów. Poniższy przykład zawiera trójczłonowy typ
związkowy:
a
b
1
CzGłówna
CzSkładowa
37
Część
CZĘŚĆ
IdPrz
PRZEDMIOT
a
Data
IdUcz
Ocena
EGZAMIN
UCZEŃ
e
d
c
e
d
Ta metoda reprezentacji graficznej dobrze nadaje się w ogólnym przypadku do
reprezentacji struktur drzewiastych.
NAUCZYCIEL
IdNau
(c) T. Pankowski, Modelowanie
konceptualne
40
Związki wieloczłonowe (c.d.)
IdPrz
Data
IdUcz
Ocena
EGZAMIN
PRZEDMIOT
Związki wieloczłonowe (c.d.)
IdPrz
UCZEŃ
(c) T. Pankowski, Modelowanie
konceptualne
PRZEDMIOT
N
EGZAMIN
N
IdPrz
PRZEDMIOT
UCZEŃ
1.
2.
3.
42
Data
N
IdUcz
Ocena
EGZAMIN
N
UCZEŃ
1
1
NAUCZYCIEL
(c) T. Pankowski, Modelowanie
konceptualne
Reprezentacja relacyjna związków
wieloczłonowych
IdUcz
Ocena
IdNau
Odpowiadamy na następujące pytania:
1. Z iloma różnymi jednostkami typu En związany jest jeden układ
jednostek typów (E1, ..., En - 1)?
• z nie więcej niż z jedną – z więcej niż z jedną
2. Czy każda jednostka typu En musi być związana z jakimś układem
jednostek z klas (E1, ..., En - 1)?
• może nie być z żadnym – musi być z co najmniej z jednym
3. Jakie atrybuty posiada typ związkowy?
41
Związki wieloczłonowe (c.d.)
Data
UCZEŃ
NAUCZYCIEL
Przy analizie związków n-członowych, n > 1, R analizujemy powiązania
(zależności funkcyjne) o postaci:
E1, ..., En - 1 →En
gdzie po prawej stronie występuje pojedynczy typ jednostkowy, a po lewej
stronie wszystkie pozostałe. Mamy zatem n takich zależności.
IdUcz
Ocena
EGZAMIN
PRZEDMIOT
IdNau
NAUCZYCIEL
IdPrz
Data
NAUCZYCIEL
IdNau
PRZEDMIOT, NAUCZYCIEL → UCZEŃ
Z iloma różnymi uczniami związana jest para (przedmiot, nauczyciel) w typie EGZAMIN?
Inaczej, Czy nauczyciel z danego przedmiotu może egzaminować więcej uczniów niż jednego?
(TAK, może wielu – etykieta „N" przy typie UCZEŃ)
PRZEDMIOT, UCZEŃ → NAUCZYCIEL
Z iloma różnymi nauczycielami związana jest para (przedmiot, uczeń) w typie EGZAMIN?
Inaczej, czy uczeń z danego przedmiotu może zdawać egzamin u więcej niż u jednego nauczyciela?
(NIE, co najwyżej u jednego – etykieta „1" przy klasie jednostek NAUCZYCIEL)
NAUCZYCIEL, UCZEŃ → PRZEDMIOT
Z iloma różnymi przedmiotami związana jest para (nauczyciel, uczeń) w typie EGZAMIN?
Inaczej, czy uczeń u danego nauczyciela może zdawać egzamin z więcej niż z jednego przedmiotu?
(TAK – etykieta „N" przy klasie jednostek PRZEDMIOT)
(c) T. Pankowski, Modelowanie
konceptualne
43
IdNau
Do reprezentacji powyższego diagramu ER stosujemy n + 1 tabel (jedną dla
każdego typu jednostkowego i jedną dla typu związkowego):
Przedmiot(IdPrz, ...)
Uczeń(IdUcz, ...)
Nauczyciel(IdNau, ...)
Egzamin(IdPrz, IdUcz, IdNau, Data, Ocena),
Kluczem głównym Egzamin jest: IdPrz, IdUcz, IdNau, każdy z atrybutów
należących do klucza głównego jest jednocześnie kluczem obcym.
W relacji Egzamin spełniona musi być ponadto zależność funkcyjna:
IdPrz, IdUcz → IdNau
44
Jednostki z atrybutem czasowym (zdarzenia)
NAUCZYCIEL
IdPrz
PRZEDMIOT
IdNau
IdUcz
1
1
1
UCZEŃ
N
IdEgz
EGZAMIN
Typy słabych jednostek
Data
Ocena
W poprzednim przykładzie egzamin identyfikowany jest przez trójkę IdPrz,
IdUcz, IdNau nie można więc pamiętać informacji o kilkakrotnym zdawaniu tego
samego egzaminu (wartość klucza musiałaby się powtarzać, co jest
niedopuszczalne).
Aby modelować taką sytuację tworzymy jednostkę (encję) EGAZMIN
posiadającą własny atrybut kluczowy (identyfikator). Jednostka ta staje się
uczestnikiem związku czteroczłonowego (jak na rysunku). Etykietowanie
wskazuje, że omawiany typ związkowy można reprezentować za pomocą
czterech tabel: Przedmiot, Nauczyciel, Uczeń (jak poprzednio) oraz
Egzamin(IdEgz, IdPrz, IdUcz, IdNau, Data, Ocena).
(Tracimy zależność funkcyjną Przedmiot, Uczeń Nauczyciel!)
45
Typy słabych jednostek (c.d.)
• Omówione dotychczas jednostki określamy jako jednostki regularne
(ang. regular entities). Ich istnienie jest niezależna od istnienia lub
braku innych jednostek.
• Jednostkami słabymi (ang. weak entities), nazywamy takie jednostki,
których istnienie zależy od istnienia innych jednostek. Na przykład:
istnienie jednostki typu DZIECKO w bazie danych instytucji ma sens
tylko wtedy, gdy istnieje jednostka typu PRACOWNIK będąca rodzicem
dziecka. Mówimy wówczas, że jednostka regularna PRACOWNIK jest
właścicielem jednostki słabej DZIECKO.
• Słabe jednostki nie mają własnego atrybutu kluczowego.
Identyfikowanie ich odbywa się poprzez kombinację wyróżnionego
atrybutu (tzw. klucza częściowego) z atrybutami kluczowymi ich
właścicieli, tzn. takiej jednostki (lub grupy jednostek), od której
uzależnione jest istnienie jednostki słabej.
(c) T. Pankowski, Modelowanie
konceptualne
46
Typy słabych jednostek - przykład
.. .
IdPrac
• Związki między słabą jednostką a jednostkami jej właścicieli nazywamy
związkami identyfikującymi.
• W notacji graficznej typ słabej jednostki oraz typy związków
identyfikujących rysujemy podwójną linią. Klucz częściowy słabej
jednostki podkreślamy linią przerywaną.
• Typ słabych jednostek ma zawsze całkowite uczestnictwo w związkach
identyfikujących, co wyraża egzystencjalną zależność od
identyfikujących właścicieli.
PRACOWNIK
1
PR_DZ
N
DZIECKO
ImięDz
.. .
Konsekwencją
traktowania na dziecka
jako słabej jednostki
jest to, że usunięcie z
bazy danych
pracownika, powoduje
jednoczesne usunięcie
związanego z nim
dziecka. Dziecko nie
może bowiem istnieć
niezależnie, bez
powiązania z
jednostkami typu
PRACOWNIK.
key(DZIECKO) = (IdPrac, ImięDz)
(c) T. Pankowski, Modelowanie
konceptualne
47
(c) T. Pankowski, Modelowanie
konceptualne
48
Przekształcanie związków
wieloczłonowych w związki binarne
Typy słabych jednostek - przykład
Tabelaryczna reprezentacja typów
słabych jednostek:
Zależność egzystencjalna między typem
POZYCJA_FAK (typ słabych jednostek
oznaczających pozycje faktury), a typem
FAKTURA:
IdPrz
Klucz główny tabeli reprezentującej
słabe jednostki składa się z klucza
lokalnego (częściowego) i z klucza
głównego właściciela jednostki.
NrFak
FAKTURA
NrPoz
(c) T. Pankowski, Modelowanie
konceptualne
49
Związki wieloczłonowe a binarne
IdPrz
Data
N
PRZEDMIOT
IdUcz
Ocena
N
EGZAMIN
UCZEŃ
EGZAMIN jest związkiem
trójczłonowym o kluczu:
(IdPrz, IdUcz, IdNau)
1
IdNau
NAUCZYCIEL
EGZAMIN jest jednostką
z własnym kluczem i
występuje po stronie N w
związku 4-członowym
NAUCZYCIEL
IdPrz
PRZEDMIOT
IdEgz
EGZAMIN
UCZEŃ
Data
Ocena
IdUcz
1
PRZEDMIOT
IdUcz
1
P_N_U_E
N
IdPrz
IdNau
1
1
P_E
U_E
N
1
UCZEŃ
EGZAMIN jest jednostką
z własnym kluczem i
występuje po stronie N w
trzech związkach binarnych
N
EGZAMIN
IdEgz
N
N_E
1
NAUCZYCIEL
IdNau
UCZEŃ
N
N
IdEgz
Pozostałe zasady są takie jak przy
odwzorowywaniu związków i jednostek
regularnych.
POZYCJA_FAK
1
EGZAMIN
Kluczem głównym jest: NrFak, NrPoz,
przy czym NrFak jest kluczem obcym
(odwołującym się do tabeli Faktura).
N
U_E
N
Pozycja_fak(NrPoz, NrFak, ...)
POZ_FAK
P_E
PRZEDMIOT
Na przykład:
1
IdUcz
1
N_E
1
NAUCZYCIEL
IdNau
Egzamin(IdEgz, IdPrz, IdUcz, IdNau, Data, Ocena),
zależność funkcyjna:
IdPrz, IdUcz → IdNau
(c) T. Pankowski, Modelowanie
konceptualne
50

Podobne dokumenty