Projektowanie baz danych
Etapy procesu projektowania
BD
Określenie celów, jakim ma służyć baza danych
(w kontakcie z decydentem z firmy zamawiającej
projekt).
Sprecyzowanie zakresu dostępnych danych,
kategorii użytkowników oraz funkcji
realizowanych poprzez aplikacje. Ewentualny
podział projektu na perspektywy użytkowników (w
kontakcie z pracownikami firmy zamawiającej).
Modelowanie bazy danych
Modelowanie BD
konceptualne
(bez odniesienia do SZBD) –
zapisanie informacji o projekcie w standardowej
notacji ER (diagramy Chena lub UML)
niezależnej od docelowego SZBD.
logiczne
(dla SZBD konkretnego typu, np.
relacyjnego lub obiektowego) – podział danych
na struktury dostępne w SZBD.
fizyczne
(dla konkretnego SZBD) – zdefiniowanie
dziedzin, relacji, indeksów, perspektyw,
użytkowników z uprawnieniami itp.
Diagramy Chena – zbiór encji
Zbiór jednorodnych elementów, o
skończonej, regularnej strukturze, które
można wyróżnić w zagadnieniu
rzeczywistym.
SAMOCHÓD
POLISA
WYPADEK
OSOBA
Diagramy Chena – atrybuty
Cecha encji (mają ją wszystkie encje z
zadanego zbioru); encja ma ustaloną
liczbę atrybutów, a w systemie nie
zapisujemy innych cech encji niż
atrybuty.
nrRej
marka
rokPr
SAMOCHÓD
nr
data
rodzaj
limit
POLISA
Diagramy Chena – dziedziny
dla atrybutu określamy typ jego wartości
oraz ewentualne ograniczenia nałożone
na te wartości (zakres, format itp.)
Diagramy Chena – rodzaje
atrybutów
Proste
(atomowe) lub
złożone
ze składowych
(np. adres: miasto, ulica, dom, nr);
Jednokrotne
(każda encja ma przypisaną tylko
jedną wartość) lub
wielokrotne
(encja może
mieć do k wartości danego atrybutu);
Wyliczane
(wartość „wirtualna” – wyliczana na
podstawie pozostałych atrybutów tej encji).
telefon
wiek
adres
nr
dom
ulica
złożony
wielokrotny
wyliczany
Diagramy Chena – klucze
Klucz
– minimalny podzbiór atrybutów encji pozwalający
jednoznacznie wyznaczyć encję;
Klucz kandydujący
– dowolny klucz zbioru encji;
Klucz główny
– wybrany jeden klucz spośród
kandydujących;
Klucze alternatywne
– klucze kandydujące oprócz
głównego;
Atrybuty główne
– atrybuty klucza (głównego?).
nr
data
rodzaj
l
imit
POLISA
Na diagramie
atrybuty
główne
oznaczamy
przez
podkreślenie
nazwy.
Diagramy Chena – związki
Związek określamy pomiędzy zbiorami encji.
Funkcyjny
(1-n)
Wieloznaczny
(n-m)
Jednoznaczny
(1-1)
SAMOCH.
OSOBA
ma
n-1
PROTOK.
WYPADEK
z
1-1
SAMOCH.
WYPADEK
ud
n-m
Diagramy Chena – atrybuty
związku
Związek może mieć atrybuty
Inny sposób przedstawienia powyższego
SAMOCH.
OSOBA
ma
n-1
dataZak
cena
SAMOCH.
OSOBA
AKT_WŁAS
jest
ma
data
cena
Diagramy Chena –
wymuszanie związku
Związek łączący zbiory encji E i F oznacza, że
każda encja ze zbioru E
może
wystąpić w
związku z encją ze zbioru F. Na diagramie
możemy zaznaczyć, że każda encja z E
musi
być
w związku z przynajmniej jedną encją z F.
Poniżej zapisaliśmy, że samochód
musi
mieć
właściciela.
OSOBA
SAMOCH.
ma
Diagramy Chena – związki k-
arne
Możliwe są związki pomiędzy >2 zbiorami encji.
Takie związki wymagają ostrożności przy
określaniu jednoznaczności (wstawianiu
strzałek) i uwzględnianiu braku niektórych encji.
PROTOKÓŁ
LIKWIDATOR
WYPADEK
dot.
KLASA
NAUCZYCIEL
PRZEDMIOT
ucz.
Diagramy Chena – związki
rekurencyjne
Związek pomiędzy encjami tego samego
zbioru. Definiując taki związek określamy
rolę każdej z encji w związku.
OSOBA
nabyła
kupiła
sprzedała
Diagramy Chena –słabe zbiory
encji
Zbiór encji E (powiązany z pewnym nadrzędnym
zbiorem encji F związkiem funkcyjnym Z), którego
elementy są rozróżnialne tylko lokalnie (w grupie
encji e
IN
E będących w związku z konkretną encją
nadrzędną f
IN
F), a globalnie mogą być identyczne.
Taki zbiór encji E nie posiada samodzielnego klucza.
Może mieć atrybuty kluczowe tworzące klucz
„lokalny”, które w połączeniu z kluczem F, tworzą
jego klucz „globalny”. Słaby zbiór encji
musi
być
powiązany z pewnym nadrzędnym zbiorem encji
związkiem funkcyjnym lub jednoznacznym.
Diagramy Chena –słabe zbiory
encji
POLISA_WST
AGENT
SAMOCHÓD
wystawił
dotyczy
nrWst
nrId
nrRej
Diagramy Chena –słabe zbiory
encji
GRUPA_JĘZ
KLASA
NAUCZYCIEL
ma
uczyJęz
nr
nazwa
nrId
lUcz
nazwisko
jestWych
Diagramy Chena – związki
hierarchiczne (IS A)
Występuje, gdy zbiór encji E stanowi
podklasę zbioru encji F, czyli encje E
mają wszystkie atrybuty encji F i
wchodzą we wszystkie związki, w jakie
wchodzą encje F. Dodatkowo encje E
mogą mieć własne atrybuty i wchodzić w
dodatkowe związki.
Diagramy Chena – związki
hierarchiczne (IS A)
OSOBA
SPRAWCA
WYPADEK
isa
spowodował
procWiny
stan
Diagramy Chena – związki
hierarchiczne (IS A)
Zbiór encji nadrzędnych F można rozbić
na „podklasy” E1, E2,…, Ek. Możemy
wówczas wskazać, czy każda encja ze
zbioru F
musi
wystąpić w przynajmniej
jednej podklasie (
Mandatory
, przeciwnie
Optional
) i czy może wystąpić w więcej
niż jednej podklasie (
And
, przeciwnie
Or
)
Diagramy Chena – związki
hierarchiczne (IS A)
OSOBA
SPRAWCA
WYPADEK
isa
spowodował
procWiny
stan
isa
NIE_WYKR
ZE_SPR
Optional
Mandatory, Or
Diagramy Chena – dodatkowe
więzy integralności
Warunki, których nie da się przedstawić
na diagramie zapisujemy w
komentarzach do projektu
przedstawionego w postaci diagramu
Typowe błędy - związki
FAN TRAP – zgubienie związku
funkcyjnego A:1-n:B przez zastosowanie
A:n-1:C i C:1-m:B;
CHASM TRAP – zgubienie związku
funkcyjnego A:1-n:B przez zastosowanie
związków A:1-n:C:1-n:B
Typowe błędy – encje i
atrybuty
Stosowanie związku 1-1 może być
zastąpione połączeniem encji w jedną;
Umieszczenie wśród atrybutów encji
atrybutów kluczowych innych encji
służących do zaznaczenia istnienia
związku;
Użytkownicy i perspektywy
Metoda syntezy – stworzenie odrębnych
modeli konceptualnych dla różnych
użytkowników i połączenie ich w jeden
model bazy.
Metoda wydzielania perspektyw – tworzymy
jeden model globalny i wydzielamy w nim
obszary danych dostępnych dla
poszczególnych użytkowników.
Weryfikacja transakcji
Dla każdej transakcji użytkownika: na diagram nanosimy
ścieżki biegnące po liniach związków łączących dane
potrzebne do wykonania transakcji. W ten sposób
sprawdzamy, czy realizacja transakcji jest możliwa,
wykrywamy miejsca krytyczne w diagramie itp.
KLUB
MECZ
ZAWODNIK
gs
gś
gra
w
zawodnicy
grający w
meczu;
kontrola, czy
są z
właściwych
klubów;
Większy przykład
Podsumowanie procesu
tworzenia modelu
konceptualnego
1.
określ zbiory encji;
2.
określ związki pomiędzy zbiorami encji i ich
rodzaj;
3.
określ atrybuty encji i związków (uwaga na
atrybuty redundantne);
4.
wyznacz dziedziny atrybutów i ich ograniczenia;
5.
wyznacz klucze kandydujące i wybierz klucze
główne;
6.
określ więzy ogólne;
Podsumowanie – cd.
7.
zweryfikuj projekt sprawdzając, czy warto
zastosować specjalizację/generalizację lub
agregację/kompozycję;
8.
zweryfikuj związki 1-1 i usuń ewentualne
związki redundantne;
9.
nanieś na diagram ścieżki związane z
transakcjami użytkownika i sprawdź, czy
realizacja transakcji jest możliwa;
10.
zweryfikuj model z klientem.
UML – unified modeling
language