PROJEKTOWANIE BAZ DANYCH
PROJEKTOWANIE BAZ DANYCH
-
-
PODSTAWY
PODSTAWY
STUDIUM PODYPLOMOWE
STUDIUM PODYPLOMOWE
KOLEGIUM NAUK SPO
KOLEGIUM NAUK SPO
Ł
Ł
ECZNYCH I ADMINISTRACJI PW
ECZNYCH I ADMINISTRACJI PW
Dr inż. Krzysztof Urbaniak
2
2
Baza danych
Baza danych
zbi
zbi
ó
ó
r wzajemnie
r wzajemnie
powi
powi
ą
ą
zanych
zanych
ze sob
ze sob
ą
ą
i
i
zintegrowanych
zintegrowanych
danych z dotycz
danych z dotycz
cych
cych
pewnej dziedziny
pewnej dziedziny
Potocznie (b
Potocznie (b
łę
łę
dnie) u
dnie) u
ż
ż
ywany w znaczeniach:
ywany w znaczeniach:
–
–
system bazy danych
system bazy danych
–
–
system zarz
system zarz
ą
ą
dzania baz
dzania baz
ą
ą
danych
danych
–
–
model bazy danych
model bazy danych
3
3
Integralno
Integralno
ść
ść
stopie
stopie
ń
ń
dok
dok
ł
ł
adno
adno
ś
ś
ci odwzorowania
ci odwzorowania
rzeczywisto
rzeczywisto
ś
ś
ci
ci
zapewnia,
zapewnia,
ż
ż
e baza danych daje poprawne
e baza danych daje poprawne
odpowiedzi na pytania
odpowiedzi na pytania
Wi
Wi
ę
ę
zy (
zy (
warunki
warunki
)
)
integralno
integralno
ś
ś
ci
ci
–
–
regu
regu
ł
ł
y
y
poprawno
poprawno
ś
ś
ciowe wynikaj
ciowe wynikaj
ą
ą
ce z
ce z
rzeczywisto
rzeczywisto
ś
ś
ci
ci
–
–
pozwalaj
pozwalaj
ą
ą
zachowa
zachowa
ć
ć
poprawno
poprawno
ść
ść
i
i
sp
sp
ó
ó
jno
jno
ść
ść
danych
danych
4
4
Rodzaje operacji na
Rodzaje operacji na
bazach danych
bazach danych
zapyta
zapyta
ń
ń
-
-
wyszukuj
wyszukuj
ą
ą
informacji
informacji
(czytaj
(czytaj
ą
ą
dane) w bazie danych
dane) w bazie danych
aktualizuj
aktualizuj
ą
ą
ce
ce
-
-
dokonuj
dokonuj
ą
ą
zmian w
zmian w
bazie danych
bazie danych
5
5
System bazy danych
System bazy danych
model danych
model danych
system zarz
system zarz
ą
ą
dzania baz
dzania baz
ą
ą
danych
danych
baza danych
baza danych
6
6
Modele danych
Modele danych
(rodzaje baz danych)
(rodzaje baz danych)
hierarchiczny
hierarchiczny
sieciowy
sieciowy
relacyjny
relacyjny
obiektowy
obiektowy
7
7
Relacyjny model
Relacyjny model
bazy danych
bazy danych
przedstawiony w 1970
przedstawiony w 1970
roku
roku
przez E. F.
przez E. F.
Codda
Codda
zapisuje
zapisuje
dane w dwuwymiarowej
dane w dwuwymiarowej
tablicy
tablicy
baz
baz
ę
ę
danych stanowi wiele tablic
danych stanowi wiele tablic
mi
mi
ę
ę
dzy kt
dzy kt
ó
ó
rymi zachodz
rymi zachodz
ą
ą
zwi
zwi
ą
ą
zki
zki
8
8
Cechy relacji (tabeli)
Cechy relacji (tabeli)
ka
ka
ż
ż
da relacja (tabela) w bazie danych ma
da relacja (tabela) w bazie danych ma
jednoznaczn
jednoznaczn
ą
ą
nazw
nazw
ę
ę
ka
ka
ż
ż
da kolumna w tabeli ma jednoznaczn
da kolumna w tabeli ma jednoznaczn
ą
ą
nazw
nazw
ę
ę
w ramach tej tabeli
w ramach tej tabeli
wszystkie warto
wszystkie warto
ś
ś
ci w kolumnie musz
ci w kolumnie musz
ą
ą
by
by
ć
ć
tego
tego
samego typu
samego typu
kolejno
kolejno
ść
ść
kolumn nie jest istotna
kolumn nie jest istotna
ka
ka
ż
ż
dy wiersz w tabeli musi si
dy wiersz w tabeli musi si
ę
ę
r
r
ó
ó
ż
ż
ni
ni
ć
ć
kolejno
kolejno
ść
ść
wierszy nie jest istotna
wierszy nie jest istotna
ka
ka
ż
ż
de pole zawiera pojedyncz
de pole zawiera pojedyncz
ą
ą
warto
warto
ść
ść
(atomow
(atomow
ą
ą
)
)
9
9
Klucz g
Klucz g
ł
ł
ó
ó
wny
wny
jeden lub wi
jeden lub wi
ę
ę
cej atrybut
cej atrybut
ó
ó
w tabeli, kt
w tabeli, kt
ó
ó
rych
rych
warto
warto
ś
ś
ci jednoznacznie identyfikuj
ci jednoznacznie identyfikuj
ą
ą
ka
ka
ż
ż
dy
dy
rekord
rekord
warto
warto
ść
ść
klucza g
klucza g
ł
ł
ó
ó
wnego musi by
wnego musi by
ć
ć
okre
okre
ś
ś
lona w
lona w
ka
ka
ż
ż
dym wierszu, nie mo
dym wierszu, nie mo
ż
ż
e przyjmowa
e przyjmowa
ć
ć
warto
warto
ś
ś
ci
ci
„
„
null
null
”
”
(nieznana warto
(nieznana warto
ść
ść
)
)
warto
warto
ś
ś
ci klucza nie mog
ci klucza nie mog
ą
ą
si
si
ę
ę
powtarza
powtarza
ć
ć
mo
mo
ż
ż
e by
e by
ć
ć
wybrany z wielu kluczy kandyduj
wybrany z wielu kluczy kandyduj
ą
ą
cych
cych
10
10
Klucz sztuczny
Klucz sztuczny
tworzony sztucznie atrybut, kt
tworzony sztucznie atrybut, kt
ó
ó
ry
ry
spe
spe
ł
ł
nia warunki dla klucza g
nia warunki dla klucza g
ł
ł
ó
ó
wnego
wnego
wykorzystywany, gdy naturalny
wykorzystywany, gdy naturalny
identyfikator nie ma cech klucza
identyfikator nie ma cech klucza
g
g
ł
ł
ó
ó
wnego lub musia
wnego lub musia
ł
ł
by si
by si
ę
ę
sk
sk
ł
ł
ada
ada
ć
ć
ze
ze
zbyt wielu atrybut
zbyt wielu atrybut
ó
ó
w
w
bywa wymuszony przez specyfikacj
bywa wymuszony przez specyfikacj
ę
ę
wymaga
wymaga
ń
ń
(staje si
(staje si
ę
ę
naturalnym)
naturalnym)
11
11
Klucz obcy
Klucz obcy
atrybut (lub grupa atrybut
atrybut (lub grupa atrybut
ó
ó
w) odpowiadaj
w) odpowiadaj
ą
ą
cy
cy
kluczowi g
kluczowi g
ł
ł
ó
ó
wnemu w innej tabeli
wnemu w innej tabeli
s
s
ł
ł
u
u
ż
ż
y do reprezentowania powi
y do reprezentowania powi
ą
ą
za
za
ń
ń
mi
mi
ę
ę
dzy
dzy
tabelami
tabelami
wprowadzany po stronie N zwi
wprowadzany po stronie N zwi
ą
ą
zku 1
zku 1
-
-
N
N
powinien spe
powinien spe
ł
ł
nia
nia
ć
ć
warunki integralno
warunki integralno
ś
ś
ci
ci
referencyjnej
referencyjnej
-
-
musi mie
musi mie
ć
ć
warto
warto
ść
ść
wyst
wyst
ę
ę
puj
puj
ą
ą
c
c
ą
ą
w kluczy g
w kluczy g
ł
ł
ó
ó
wnym, z kt
wnym, z kt
ó
ó
rym jest powi
rym jest powi
ą
ą
zany (lub
zany (lub
warto
warto
ść
ść
„
„
null
null
”
”
)
)
12
12
Wi
Wi
ę
ę
zy integralno
zy integralno
ś
ś
ci
ci
okre
okre
ś
ś
laj
laj
ą
ą
jak post
jak post
ę
ę
powa
powa
ć
ć
przy
przy
usuwaniu powi
usuwaniu powi
ą
ą
zanych rekord
zanych rekord
ó
ó
w
w
Rodzaje:
Rodzaje:
ograniczone usuwanie
ograniczone usuwanie
kaskadowe usuwanie
kaskadowe usuwanie
wstawianie
wstawianie
null
null
w miejsce klucza
w miejsce klucza
obcego przy usuwaniu
obcego przy usuwaniu
13
13
Etapy modelowania baz
Etapy modelowania baz
danych
danych
modelowanie koncepcyjne
modelowanie koncepcyjne
modelowanie logiczne
modelowanie logiczne
modelowanie fizyczne
modelowanie fizyczne
14
14
Koncepcyjne modelowanie
Koncepcyjne modelowanie
bazy danych
bazy danych
•
•
opisuje zale
opisuje zale
ż
ż
no
no
ś
ś
ci mi
ci mi
ę
ę
dzy danymi w
dzy danymi w
systemie informacyjnym
systemie informacyjnym
•
•
powinno by
powinno by
ć
ć
w postaci graficznej (np.
w postaci graficznej (np.
ERD)
ERD)
•
•
powinno posiada
powinno posiada
ć
ć
semantyk
semantyk
ę
ę
•
•
niezale
niezale
ż
ż
ne od SZBD
ne od SZBD
•
•
ł
ł
atwe w u
atwe w u
ż
ż
yciu i nauce
yciu i nauce
15
15
Logiczny model bazy
Logiczny model bazy
danych
danych
Powstaje w wyniku przekszta
Powstaje w wyniku przekszta
ł
ł
cenia modelu
cenia modelu
koncepcyjnego wg zasad modelu danych
koncepcyjnego wg zasad modelu danych
-
-
dla modelu relacyjnego przekszta
dla modelu relacyjnego przekszta
ł
ł
ca ERD do
ca ERD do
postaci tabel i ich atrybut
postaci tabel i ich atrybut
ó
ó
w pod kontem
w pod kontem
konkretnego systemu zarz
konkretnego systemu zarz
ą
ą
dzania baz
dzania baz
ą
ą
danych
danych
Spe
Spe
ł
ł
nia warunki normalizacji baz danych
nia warunki normalizacji baz danych
Mo
Mo
ż
ż
e by
e by
ć
ć
zapisany w formie pisemnej lub w
zapisany w formie pisemnej lub w
formie opisu podstawowych struktur w
formie opisu podstawowych struktur w
systemie zarz
systemie zarz
ą
ą
dzania baz
dzania baz
ą
ą
danych
danych
16
16
Fizyczny model bazy
Fizyczny model bazy
danych
danych
wyra
wyra
ż
ż
a model danych za pomoc
a model danych za pomoc
ą
ą
struktur danych i mechanizm
struktur danych i mechanizm
ó
ó
w
w
dost
dost
ę
ę
pu w konkretnym systemie
pu w konkretnym systemie
zarz
zarz
ą
ą
dzania baz
dzania baz
ą
ą
danych
danych
17
17
Normalizacja danych
Normalizacja danych
pozwala wyeliminowa
pozwala wyeliminowa
ć
ć
redundancj
redundancj
ę
ę
danych, a
danych, a
przez to ich niesp
przez to ich niesp
ó
ó
jno
jno
ść
ść
lub anomalie
lub anomalie
realizowana jest poprzez osi
realizowana jest poprzez osi
ą
ą
ganie kolejnych tzw.
ganie kolejnych tzw.
postaci normalnych:
postaci normalnych:
–
–
pierwsza posta
pierwsza posta
ć
ć
normalna
normalna
–
–
druga posta
druga posta
ć
ć
normalna
normalna
–
–
trzecia posta
trzecia posta
ć
ć
normalna
normalna
–
–
posta
posta
ć
ć
normalna
normalna
Boyce
Boyce
’
’
a
a
-
-
Codda
Codda
–
–
czwarta posta
czwarta posta
ć
ć
normalna
normalna
–
–
pi
pi
ą
ą
ta posta
ta posta
ć
ć
normalna
normalna
18
18
Pierwsza posta
Pierwsza posta
ć
ć
normalna
normalna
wszystkie dane s
wszystkie dane s
ą
ą
atomowe, np. adres
atomowe, np. adres
jest rozbity na atrybuty: ulica,
jest rozbity na atrybuty: ulica,
nr_domu, nr_mieszkania,
nr_domu, nr_mieszkania,
kod_pocztowy, miasto
kod_pocztowy, miasto
zdefiniowano klucz podstawowy
zdefiniowano klucz podstawowy
wszystkie atrybuty zale
wszystkie atrybuty zale
żą
żą
od klucza
od klucza
brak powtarzaj
brak powtarzaj
ą
ą
cych si
cych si
ę
ę
grup
grup
danych
danych
19
19
Druga posta
Druga posta
ć
ć
normalna
normalna
spe
spe
ł
ł
nia warunki pierwszej postaci
nia warunki pierwszej postaci
normalnej
normalnej
ka
ka
ż
ż
dy atrybut niekluczowy jest zale
dy atrybut niekluczowy jest zale
ż
ż
ny
ny
od ca
od ca
ł
ł
ego klucza a nie od jego cz
ego klucza a nie od jego cz
ęś
ęś
ci
ci
20
20
Trzecia posta
Trzecia posta
ć
ć
normalna
normalna
spe
spe
ł
ł
nia warunki drugiej postaci
nia warunki drugiej postaci
normalnej
normalnej
nie ma w tabeli atrybut
nie ma w tabeli atrybut
ó
ó
w zale
w zale
ż
ż
nych
nych
od atrybut
od atrybut
ó
ó
w nie nale
w nie nale
żą
żą
cych do klucza
cych do klucza
21
21
Denormalizacja
Denormalizacja
celowe odst
celowe odst
ę
ę
pstwo od normalizacji ze
pstwo od normalizacji ze
wzgl
wzgl
ę
ę
du na przyspieszenie procesu
du na przyspieszenie procesu
przetwarzania danych
przetwarzania danych
22
22
Przekszta
Przekszta
ł
ł
cenie ERD w
cenie ERD w
schemat relacyjny
schemat relacyjny
upraszczamy zwi
upraszczamy zwi
ą
ą
zki wiele
zki wiele
-
-
do
do
-
-
wielu
wielu
encja
encja
tabela (nazwy relacji w
tabela (nazwy relacji w
l.mn
l.mn
.)
.)
identyfikatory encji
identyfikatory encji
→
→
klucz g
klucz g
ł
ł
ó
ó
wny
wny
atrybut encji
atrybut encji
atrybut relacji
atrybut relacji
wprowadzamy klucz obcy do relacji
wprowadzamy klucz obcy do relacji
odpowiadaj
odpowiadaj
ą
ą
cej stronie wiele
cej stronie wiele
23
23
Indeksowanie bazy
Indeksowanie bazy
danych
danych
Indeks
Indeks
zawiera informacje o fizycznym miejscu
zawiera informacje o fizycznym miejscu
rekordu w tabeli i miejscu na kt
rekordu w tabeli i miejscu na kt
ó
ó
rym si
rym si
ę
ę
rekord
rekord
znajduje w wyniku uporz
znajduje w wyniku uporz
ą
ą
dkowania rekord
dkowania rekord
ó
ó
w
w
wg indeksu
wg indeksu
poprawi
poprawi
a
a
efektywno
efektywno
ś
ś
ci bazy danych, wspomaga
ci bazy danych, wspomaga
szybko
szybko
ść
ść
przetwarzania danych, u
przetwarzania danych, u
ł
ł
atwia
atwia
wyszukiwanie danych
wyszukiwanie danych
powi
powi
ę
ę
ksza fizycznie baz
ksza fizycznie baz
ę
ę
danych, spowalnia
danych, spowalnia
dodawanie, kasowanie i aktualizacj
dodawanie, kasowanie i aktualizacj
ę
ę
danych ze
danych ze
wzgl
wzgl
ę
ę
du na konieczno
du na konieczno
ść
ść
aktualizacji
aktualizacji
indeksu
indeksu
24
24
Notacja Martina
Notacja Martina
dok
dok
ł
ł
adnie jeden
adnie jeden
jeden lub zero
jeden lub zero
wiele
wiele
zero lub wiele
zero lub wiele
jeden lub wiele
jeden lub wiele
25
25
R
R
ó
ó
ż
ż
ne notacje
ne notacje
1
N
1:1
0:N