Projektowanie bazy danych
Projektowanie bazy danych
Projektowanie bazy danych
Projektowanie bazy danych
Wyspecyfikowanie i analiza wymagań przyszłego
użytkownika.
Opracowanie modelu
koncepcyjnego
(konceptualnego).
Uzyskanie modelu
logicznego
(implementacyjnego).
Uzyskanie modelu
fizycznego
.
Charakterystyka modeli
Charakterystyka modeli
Charakterystyka modeli
Charakterystyka modeli
Model koncepcyjny
opisuje model za pomocą
pojęć, z których korzystają użytkownicy.
Opis jest całkowicie niezależny od rozważań na
temat pamięci, efektywności i innych
szczegółów implementacyjnych.
Model implementacyjny
operuje pojęciami
zrozumiałymi dla użytkowników, ale bliżej
związanymi z konkretną strukturą (logiczną)
danych w pamięci komputera.
Model fizyczny
opisuje dane w kategoriach
sposobu ich przechowywania w pamięci
komputera i nie jest zrozumiały dla
użytkowników.
Model koncepcyjny
Model koncepcyjny
Model koncepcyjny
Model koncepcyjny
1.
Powinien jednoznacznie określać wymagania
użytkowników.
2.
Powinien być czytelny dla użytkownika
końcowego.
3.
Powinien abstrahować od szczegółów
implementacyjnych.
Model koncepcyjny buduje się z
wykorzystaniem
diagramu modelowania związków encji (ang.
Entity Relationship Diagram; ERD)
.
Składniki diagramu ERD
Składniki diagramu ERD
Składniki diagramu ERD
Składniki diagramu ERD
1. Encji
(obiektów)
2. Atrybutów
3. Związków
Graficzny element koncepcyjnego modelu
danych, który służy do przedstawienia
struktury danych projektowanego systemu.
Złożony z:
Encje
Encje
Encje
Encje
Coś, co istnieje, jest odróżnialne, o czym
informację trzeba znać lub przechowywać.
Może oznaczać zarówno obiekt rzeczywisty,
jak i pojęcie abstrakcyjne.
Encje o tych samych własnościach tworzą
typy
(zbiory) encji. Typ encji jest
kategorią
, a encja
jest
instancją
(wystąpieniem) typu. Przykłady:
Klient, Produkt, Rachunek.
Encje zwykle służą do definiowania logicznego
grupowania danych. Posiadają własności (cechy,
atrybuty).
Atrybut
Atrybut
Atrybut
Atrybut
Atrybut
jest to własność encji danego typu,
reprezentowana przez pewną wartość, np.
nazwa, waga, cena. Encje różnych typów mają
różne atrybuty.
Dla każdej instancji encji każdy atrybut
powinien przyjmować
pojedynczą
atomową
wartość (ale w trakcie projektowania mogą
pojawić się atrybuty złożone).
Należy pomijać atrybuty
wyliczane
, tzn. takie,
które da się obliczyć na podstawie innych
atrybutów, np. wiek na podstawie daty
urodzenia.
Atrybut
Atrybut
–
–
klucz główny
klucz główny
Atrybut
Atrybut
–
–
klucz główny
klucz główny
Klucz
– taki atrybut lub grupa atrybutów danej
encji, których wartości identyfikują każdą
instancję encji. Jedna encja może mieć wiele
takich kluczy. Jeden klucz jest
główny
, pozostałe
alternatywne
.
Klucz główny oznacza się symbolem PK
i / lub
podkreśleniem.
Klucz alternatywny określa się za pomocą
jednoznacznych
indeksów.
Związki
Związki
Związki
Związki
Związek
określa relację między encjami
wchodzącymi
w skład związku (ich powiązanie w świecie
rzeczywistym).
Z (E
1
, E
2
, . . ., E
n
)
1.
Liczebność
Reguły definiowania związków:
2.
Uczestnictwo
Zbiór powiązań łączących encje należące do
określonych typów stanowi określony
typ
związku
.
Związki
Związki
–
–
liczebność
liczebność
Związki
Związki
–
–
liczebność
liczebność
Liczebność (stopień)
dotyczy liczby instancji
biorących udział w związku.
1.
1 : 1 („jeden do jeden” – jedno-jednoznaczny).
Typy związków:
2.
1 : N („jeden do wielu” – związek jednoznaczny).
a)
identyfikujący
– do identyfikacji egzemplarza po
stronie N potrzebny jest egzemplarz po stronie 1;
encja po stronie N nazywana jest wtedy słabą
(wartość klucza obcego wchodzi w skład klucza
głównego encji słabej).
b)
nieidentyfikujący
– do zidentyfikowania encji po
stronie N nie jest potrzebny egzemplarz po stronie
1.
=>
Związki
Związki
–
–
liczebność (2)
liczebność (2)
Związki
Związki
–
–
liczebność (2)
liczebność (2)
3. (I)
N : M („wiele do wielu”
– związek
niejednoznaczny
).
Dla niejednoznacznego związku
binarnego
(o
liczbie argumentów = 2):
Z (E
1
, E
2
)
wprowadzamy:
nową encję
E
0
i
2
związki jednoznaczne
Z (E
0
, E
1
),
Z (E
0
, E
2
)
łączące nową encję ze starymi.
Klucz
encji E
0
jest sumą kluczy encji
E
1
i
E
2
.
Związki
Związki
–
–
liczebność (3)
liczebność (3)
Związki
Związki
–
–
liczebność (3)
liczebność (3)
3. (II)
N : M („wiele do wielu”
– związek
niejednoznaczny
).
Dla związku niejednoznacznego
o liczbie
argumentów większej niż 2:
Z (E
1
, . . . E
n
), n > 2
wprowadzamy:
nową encję
E
0
i
n
jednoznacznych związków binarnych
Z
(E
0
, E
i
)
łączących nową encję ze starymi.
Klucz
encji E
0
jest sumą kluczy encji
E
1
, . . . E
n
.
Encja
E
0
– encja asocjacyjna, słaba, zależna.
n
i
,
1
Związki
Związki
–
–
uczestnictwo
uczestnictwo
Związki
Związki
–
–
uczestnictwo
uczestnictwo
Uczestnictwo (opcjonalność)
dotyczy udziału encji
w związku.
Uczestnictwo encji jest
opcjonalne
,
jeżeli
przynajmniej jedna jej instancja nie bierze udziału
w związku.
Uczestnictwo
opcjonalne
zaznacza się kółkiem.
Domyślnym uczestnictwem jest uczestnictwo
wymagane
.
W niektórych podejściach uczestnictwo modeluje się za
pomocą liczebności minimalnej i maksymalnej:
(1, M) lub (0, 1).
ERD
ERD
–
–
notacje
notacje
ERD
ERD
–
–
notacje
notacje
Modelowanie związków encji cechuje się brakiem
jednolitego standardu. Dostępne są różnorodne
notacje:
1. Chen
(1976) – pierwsza notacja zaproponowana
dla diagramów związków encji.
2.
Martin
3. IDEF1X
(dostępna w ErWin, MS Visio)
4.
Bachman
ERD
ERD
–
–
notacja Chena
notacja Chena
ERD
ERD
–
–
notacja Chena
notacja Chena
Konwencja notacyjna:
1. Encja
– prostokąt
2. Atrybut
– koło
3. Związek
– romb
Wykłady
Wykładowca
prowadzi
IdW
Nazwisko
Kod
N
1
ERD
ERD
–
–
notacja IDEF1X
notacja IDEF1X
ERD
ERD
–
–
notacja IDEF1X
notacja IDEF1X
Konwencja notacyjna:
1. Encja
– prostokąt
2. Związek identyfikujący
– linia ciągła
3. Związek nieidentyfikujący
– linia przerywana
4. Strona „wiele” związku
– czarne kółko
5. Związek opcjonalny
– romb przy encji po stronie
„jeden”
ERD
ERD
–
–
przykłady
przykłady
ERD
ERD
–
–
przykłady
przykłady
Pracownik
Zespol
należy
N
1
Tematy
wykonuje
N
M
Kwota
„wronie (kurze) łapki”
związek 1 : N
ERD
ERD
–
–
przykłady (2)
przykłady (2)
ERD
ERD
–
–
przykłady (2)
przykłady (2)
Student
Kierunek
studiuje
N
1
Przedmiot
zalicza
N
M
Ocena
ERD
ERD
–
–
przykłady (3)
przykłady (3)
ERD
ERD
–
–
przykłady (3)
przykłady (3)
Pacjent
Oddział
leży
N
1
Lekarstwo
zażywa
N
M
Dawka
Atrybuty złożone
Atrybuty złożone
Atrybuty złożone
Atrybuty złożone
Atrybut jest
złożony
, gdy jego wartość dla
jednej instancji encji jest złożeniem kilku
bardziej elementarnych wartości, np. atrybut
Adres encji Osoba składa się z nazwy
miejscowości, kodu pocztowego, nazwy ulicy,
numeru domu i numeru mieszkania.
W definicji encji umieszczamy tylko atrybuty
elementarne.
Atrybuty elementarne można w nieformalny
sposób grupować przez stosowanie
jednakowego przedrostka w ich nazwach,
np. Adres_Miasto, Adres_Kod, Adres_Ulica
itp.
Atrybuty wielowartościowe
Atrybuty wielowartościowe
Atrybuty wielowartościowe
Atrybuty wielowartościowe
Pracownik
Języki
Imiona
Atrybut jest
wielowartościowy
, gdy posiada
wiele wartości dla jednej instancji encji.
Przekształcenie do modelu
Przekształcenie do modelu
logicznego
logicznego
Przekształcenie do modelu
Przekształcenie do modelu
logicznego
logicznego
1.
Utwórz schemat relacji dla każdego typu encji;
do schematu wchodzą atrybuty
pojedyncze, kluczem relacji jest klucz
encji.
2.
Utwórz dodatkowy schemat relacji dla
każdego atrybutu wielowartościowego;
wchodzi do niego atrybut
wielowartościowy i klucz encji.
Przekształcenie do modelu
Przekształcenie do modelu
logicznego
logicznego
Przekształcenie do modelu
Przekształcenie do modelu
logicznego
logicznego
3.
Utwórz schemat relacji dla każdego typu
związku; do schematu wchodzą klucze
encji, które należą do związku oraz atrybuty
związku.
4.
Scal schematy o identycznych kluczach.
1 : N – klucz encji wchodzącej przez
krawędź N
N : M – złożenie kluczy wszystkich encji
należących do związku
1 : 1 – dowolny z kluczy
Kluczem relacji jest dla
związku:
Przekształcenie do modelu
Przekształcenie do modelu
logicznego
logicznego
Przekształcenie do modelu
Przekształcenie do modelu
logicznego
logicznego
1.
Krok 1: relacje dla typów encji
3.
Krok 3: relacje dla typów związków
Pracownik (nrp, nazwisko)
Zespol (nrz, nazwaZ)
Temat (nrt, nazwaT)
2.
Krok 2: relacje dla atrybutów
wielowartościowych
Jezyki (nrp, jezyk)
należy (nrp, nrz)
wykonuje (nrp, nrt, kwota)
Przekształcenie do modelu
Przekształcenie do modelu
logicznego
logicznego
Przekształcenie do modelu
Przekształcenie do modelu
logicznego
logicznego
4.
Krok 4: scalenie schematów
Zespol (nrz, nazwaZ)
Temat (nrt, nazwaT)
wykonuje (nrp, nrt, kwota)
Pracownik (nrp,
nazwisko)
należy (nrp, nrz)
Pracownik (nrp, nazwisko,
nrz
)
Związek 1 : 1
Związek 1 : 1
Związek 1 : 1
Związek 1 : 1
Szkoła
Dyrektor
ma
1
1
Szkoła ma jednego dyrektora, dyrektor może
kierować tylko jedną szkołą.
Szkoła (nrs, ...)
Dyrektor (nr_dyr, ...)
Ze względu na alternatywne klucze schematu ma
możliwe są 2 sposoby scalenia schematów:
ma (nrs, nr_dyr)
Szkoła (nrs, ...)
Dyrektor (nr_dyr, ...,
nrs
)
Szkoła (nrs, ...,
nr_dyr
)
Dyrektor (nr_dyr, ...)
Wiele związków między dwoma
Wiele związków między dwoma
obiektami
obiektami
Wiele związków między dwoma
Wiele związków między dwoma
obiektami
obiektami
Szkoła
Nauczyciel
rządzi
1
1
Nauczyciel uczy w szkole, nauczyciel kieruje szkołą.
uczy
N
1
=>
Wiele związków między dwoma
Wiele związków między dwoma
obiektami
obiektami
Wiele związków między dwoma
Wiele związków między dwoma
obiektami
obiektami
Szkoła (nrs, ...,
nrN
) Nauczyciel (nrN,
...,
nrs
)
Po scaleniu
schematów:
Szkoła (nrs, ...)
Nauczyciel (nrN, ...)
uczy (nrN, nrs)
rządzi (nrN, nrs)
Związki hierarchiczne
Związki hierarchiczne
Związki hierarchiczne
Związki hierarchiczne
Nauczyciel
kieruje
1
Każdy nauczyciel, poza dyrektorem, ma przełożonego.
N
Nauczyciel (nrN, ...,
nrN_nadrz
)
Nauczyciel (nrN, ...)
kieruje (nrN, nrN_nadrz)
Po scaleniu:
Modelowanie czasu
Modelowanie czasu
Modelowanie czasu
Modelowanie czasu
Uwzględnienie zmian danych w czasie –
dodatkowa encja „
temporalna
”, której zadaniem
jest reprezentowanie zmian w czasie dotyczących:
wartości atrybutów
związków z inną encją
N : 1
Modelowanie czasu
Modelowanie czasu
Modelowanie czasu
Modelowanie czasu
zmiany w czasie dotyczące wartości
atrybutów,
np. wysokości zarobków i stanowiska
Modelowanie czasu
Modelowanie czasu
Modelowanie czasu
Modelowanie czasu
zmiany w czasie dotyczące związków z inną
encją,
np. zmiany działu (departamentu)
FAQ
FAQ
FAQ
FAQ
Czy dana rzecz lub cecha, nazwana za pomocą
rzeczownika, jest atrybutem encji, czy
samodzielną encją ?
Ten element traktujemy jako nową encję, gdy
sam jest opisany dodatkowymi informacjami.
Ćwiczenia
Ćwiczenia
Ćwiczenia
Ćwiczenia
Klient składa zamówienie na towary. Klient
opisany jest przez: IDK, nazwiskoK, adresK.
Klient może złożyć wiele zamówień, każde
zamówienie jest składane tylko przez 1
klienta. Zamówienie jest opisane przez IDZ
i datęZ. Zamówienie może obejmować wiele
towarów, a każdy towar może znaleźć się w
wielu zamówieniach. Towar jest
charakteryzowany przez: IDT, nazwęT i
opisT. Dany towar na danym zamówieniu
występuje w określonej ilości.
Zamowienie(IDK, nazwiskoK, adresK, IDZ,
dataZ, IDT, nazwaT, opisT, iloscTwZ)
Zadania
Zadania
Zadania
Zadania
Z1. Dana jest następująca rzeczywistość: pewna firma lotnicza
(która nie występuje jako obiekt w bazie danych) prowadzi
ewidencję samolotów, które posiadają unikalny numer
identyfikacyjny, i dla których podaje się rok ich produkcji. Dla
każdego typu samolotu charakteryzującego się unikalną nazwą
typu definiuje się zasięg i liczbę miejsc. Z każdym samolotem
związanych jest kilku pilotów. Pilot może pilotować tylko jeden
samolot. Pilot identyfikowany jest przez numer PESEL
i posiada dane personalne. Firma lotnicza prowadzi loty na
różnych trasach (bez międzylądowań), identyfikowanych
nazwami miast będących początkiem i końcem trasy. Dla
każdej trasy podaje się jej długość w kilometrach. Każda
trasa może być obsługiwana przez samoloty różnych typów. W
bazie danych należy zapamiętać czas, jaki potrzebują samoloty
poszczególnych typów na przelot danej trasy.
Zaprojektować diagram ER dla zbioru powyższych faktów, a
następnie utworzyć schemat relacyjnej bazy danych metodą
bezpośredniej transformacji diagramu ER w zbiór schematów
relacji.
Zadania (2)
Zadania (2)
Zadania (2)
Zadania (2)
Z2. Dana jest następująca rzeczywistość: w miastach znajdują
się kina identyfikowane numerem i noszące swoje nazwy. W
bazie danych mają się znaleźć nazwy i liczby mieszkańców
miast. Każde kino ma kierownika o określonym
nazwisku. Kierownik odpowiada za pracę tylko jednego kina.
Baza danych powinna również zawierać informację o
dochodach, jakie w poszczególnych kinach przyniosły projekcje
poszczególnych filmów.
Zaprojektować diagram ER dla zbioru powyższych faktów, a
następnie utworzyć schemat relacyjnej bazy danych metodą
bezpośredniej transformacji diagramu ER w zbiór schematów
relacji.
Zadania (3)
Zadania (3)
Zadania (3)
Zadania (3)
Z3. W bazie danych tworzonej dla spółdzielni lekarskiej
powinny znaleźć się informacje o wizytach pacjentów u
poszczególnych lekarzy obejmujące datę wizyty, rozpoznaną
jednostkę chorobową (może być ich kilka) oraz zaordynowane
medykamenty wraz z dawkami (jak często i ile). Dla pacjenta
przechować: nazwisko, imię i adres, dla lekarza: numer, imię
i nazwisko, dla lekarstwa: kod i nazwę, dla jednostki
chorobowej: identyfikator i krótki opis.
Zaprojektować diagram ER dla zbioru powyższych faktów, a
następnie utworzyć schemat relacyjnej bazy danych metodą
bezpośredniej transformacji diagramu ER w zbiór schematów
relacji.
Zadania (4)
Zadania (4)
Zadania (4)
Zadania (4)
Z4. Dana jest następująca rzeczywistość: klienci składają w
hurtowni zamówienia na towary. Każdy klient ma identyfikator,
nazwisko i adres. Zamówienia dotyczą towarów, które są
opisane przez identyfikator i nazwę. Pojedyncze zamówienie
składane jest przez jednego klienta, ale może obejmować wiele
towarów. Na zamówieniu wyszczególniona jest data jego
złożenia i ilość poszczególnych towarów.
Zaprojektować diagram ER dla zbioru powyższych faktów, a
następnie utworzyć schemat relacyjnej bazy danych metodą
bezpośredniej transformacji diagramu ER w zbiór schematów
relacji.
Zadania (5)
Zadania (5)
Zadania (5)
Zadania (5)
Z5. Dana jest następująca rzeczywistość: przedsiębiorstwa
będące klientami pewnej firmy informatycznej opisane są
przez identyfikator, nazwę, adres i numer telefonu. Ich
obsługą zajmują się pracownicy o określonym numerze i
nazwisku, zatrudnieni na określonym stanowisku i należący do
jednego z zespołów, którym przydzielono numer i nazwę.
Ponadto każdy pracownik charakteryzuje się pewnym
zestawem umiejętności (lista zagadnień, w których się
specjalizuje). Z danym klientem może współpracować wielu
pracowników. Dany pracownik może obsługiwać wielu
klientów. Istotne jest, aby zapamiętać liczbę godzin, które
pracownik poświęcił klientowi w określonym dniu.
Zaprojektować diagram ER dla zbioru powyższych faktów, a
następnie utworzyć schemat relacyjnej bazy danych metodą
bezpośredniej transformacji diagramu ER w zbiór schematów
relacji.