Projektowanie baz danych

Transkrypt

Projektowanie baz danych
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
OSOBA
POLISA
WYPADEK
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
nr
marka
data
rodzaj
SAMOCHÓD
rokPr
POLISA
limit
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).
adres
ulica dom
złożony
telefon
nr
wielokrotny
wiek
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?).
Na diagramie
atrybuty główne
oznaczamy przez
podkreślenie
nazwy.
nr
data
rodzaj
POLISA
limit
Diagramy Chena – związki
Związek określamy pomiędzy zbiorami encji.
 Funkcyjny (1-n)
SAMOCH.

OSOBA
Wieloznaczny (n-m)
SAMOCH.

ma
n-1
ud
n-m
WYPADEK
Jednoznaczny (1-1)
PROTOK.
z
1-1
WYPADEK
Diagramy Chena – atrybuty związku

Związek może mieć atrybuty
SAMOCH.
ma
n-1
dataZak

OSOBA
cena
Inny sposób przedstawienia powyższego
SAMOCH.
data
ma
OSOBA
AKT_WŁAS
cena
jest
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
ma
SAMOCH.
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ÓŁ
WYPADEK
dot.
LIKWIDATOR
KLASA
PRZEDMIOT
ucz.
NAUCZYCIEL
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.
kupiła
OSOBA
nabył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
wystawił
AGENT
nrWst
dotyczy
nrId
SAMOCHÓD
nrRej
Diagramy Chena –słabe zbiory encji
nr
GRUPA_JĘZ
KLASA
ma
lUcz
jestWych
nazwa
uczyJęz
NAUCZYCIEL
nazwisko
nrId
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
isa
WYPADEK
spowodował
procWiny
SPRAWCA
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)
WYPADEK
OSOBA
Mandatory, Or
Optional
isa
isa
ZE_SPR
SPRAWCA
NIE_WYKR
spowodował
procWiny
stan
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
gs
MECZ
gś
w
ZAWODNIK
gra
zawodnicy
grający w
meczu;
kontrola, czy są
z właściwych
klubów;
Większy przykład
Podsumowanie procesu tworzenia
modelu konceptualnego
1.
2.
3.
4.
5.
6.
określ zbiory encji;
określ związki pomiędzy zbiorami encji i ich rodzaj;
określ atrybuty encji i związków (uwaga na atrybuty
redundantne);
wyznacz dziedziny atrybutów i ich ograniczenia;
wyznacz klucze kandydujące i wybierz klucze
główne;
określ więzy ogólne;
Podsumowanie – cd.
1.
2.
3.
4.
zweryfikuj projekt sprawdzając, czy warto zastosować
specjalizację/generalizację lub
agregację/kompozycję;
zweryfikuj związki 1-1 i usuń ewentualne związki
redundantne;
nanieś na diagram ścieżki związane z transakcjami
użytkownika i sprawdź, czy realizacja transakcji jest
możliwa;
zweryfikuj model z klientem.
UML – unified modeling language