Bazy danych – wykład trzeci
Modelowanie schematu bazy danych
Konrad Zdanowski
Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
1 / 40
Outline
1
Zalezno´sci funkcyjne i klucze
2
3
4
5
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
2 / 40
Outline
1
Zalezno´sci funkcyjne i klucze
2
3
Integralno´s´c referencyjna
Wi ˛ezy stopni
4
5
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
3 / 40
Definicja 1
Niech R(A1, . . . , Ak ) b ˛edzie relacj ˛
a. Niech
A, B1, . . . , Bm ∈ {A1, . . . , Ak }.
Atrybut A
zale˙zy funkcyjnie
od B1, . . . , Bm, co oznaczamy
B1, . . . , Bm → A
, je´sli ka˙zde dwie krotke o tych samych warto´sciach
atrybutów B1, . . . , Bm musz ˛
a posiada´c t ˛
a sam ˛
a warto´s´c atrybutu A.
Je´sli ka˙zdy z C1, . . . , Cr zale˙zy funkcyjnie od B1, . . . , Bm to piszemy
tak˙ze B1, . . . , Bm → C1, . . . , Cr .
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
4 / 40
Definicja 2
Niech R(A1, . . . , Ak ) b ˛edzie relacj ˛
a. Niech B1, . . . , Bm ∈ {A1, . . . , Ak }.
Zbiór atrybutów B1, . . . , Bm jest
kluczem
w R je´sli
1
ka˙zdy atrybut Ai zale˙zy funkcyjnie od B1, . . . , Bm,
2
powy˙zszej własno´sci nie ma ˙zaden wła´sciwy podzbiór B1, . . . , Bm.
Punkt 2 definicji klucza wymaga aby zbiór B1, . . . , Bm był minimalny.
Dana relacja mo˙ze posiada´c wiele kluczy.
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
5 / 40
Fakt 3
Je´sli B1, . . . , Bm jest kluczem R to w R
nie mog ˛
a wyst ˛
api´c dwie ró˙zne
krotki o tych samych warto´sciach B1, . . . , Bm.
Bycie kluczem jest własno´sci ˛
a schematu relacji w bazie danych a nie
własno´sci ˛
a konkretnej tabeli.
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
6 / 40
Przykład. Rozwa˙zmy tabel ˛e SAMOCHODY:
MARKA
KOLOR
NR. NADWOZIA
Syrenka
biały
1
Fiat 126p
czerwony
2
Wołga
czarny
3
Syrenka
kremowy
5
Cho´c KOLOR jednoznacznie identyfikuje krotk˛e w tabeli to nie jest to
klucz w tej tabeli.
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
7 / 40
Outline
1
Zalezno´sci funkcyjne i klucze
2
3
Integralno´s´c referencyjna
Wi ˛ezy stopni
4
5
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
8 / 40
Outline
1
Zalezno´sci funkcyjne i klucze
2
3
Integralno´s´c referencyjna
Wi ˛ezy stopni
4
5
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
9 / 40
Diagram ER przedstawia
encje
oraz
zwi ˛
azki
pomi ˛edzy nimi.
Ka˙zdy z tych obiektów mo˙ze posiada´c
atrybuty
.
W diagramie ER encje oznaczane s ˛
a przez prostok ˛
aty, zwi ˛
azki
przez romby, atrybuty przez elipsy.
Kraw ˛edzie ł ˛
acz ˛
ace encje i zwi ˛
azki oznaczaj ˛
a rodzaj zwi ˛
azku.
Atrybuty wchodz ˛
ace w skład klucza oznaczamy przez
podkre´slenie.
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
10 / 40
Przykład. Encja Osoba oraz jej atrybuty. Klucz głowny składa si ˛e z
jednego atrybutu id.
Osoba
imie
nazwisko
adres
telefon
id
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
11 / 40
Przykład. Zwi ˛
azek“posiada”. Zwi ˛
azki mog ˛
a posiada´c swoje własne
atrybuty.
osoba
posiada
samochod
data_zakupu
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
12 / 40
Outline
1
Zalezno´sci funkcyjne i klucze
2
3
Integralno´s´c referencyjna
Wi ˛ezy stopni
4
5
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
13 / 40
Definicja 4
Niech zwi ˛
azek R ł ˛
aczy encje E i F.
Je´sli ka˙zdy element z E wchodzi w zwi ˛
azek R z co najwy˙zej
jednym elementem F, to R jest zwi ˛
azkiem
wiele do jednego
od E
do F.
Je´sli R jest zwi ˛
azkiem wiele do jednego od E do F i od F do E, to
R jest zwi ˛
azkiem
jeden do jednego
.
Je´sli nie zachodzi ˙zaden z powy˙zszych przypadków, to R jest
zwi ˛
azkiem typu
wiele do wiele
.
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
14 / 40
Zwi ˛
azki wiele do jednego reprezentujemy przez strzałki.
osoba
posiada
samochod
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
15 / 40
Je´sli ten sam zbiór encji bierze wielokrotnie udział w zwi ˛
azku to
rysujemy tyle linii, ile razy ten zbiór wyst ˛epuje.
Ka˙zde wyst ˛
apienie ma przypisan ˛
a inna
rol ˛e
, opisan ˛
a za pomoc ˛
a
etykiet.
osoba
malzenstwo
maz
zona
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
16 / 40
Oczywi´scie, gdyby´smy modelowali zwi ˛
azki według prawa
Szariatu, to diagram ten wygl ˛
adałby tak:
osoba
malzenstwo
maz
zona
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
17 / 40
Outline
1
Zalezno´sci funkcyjne i klucze
2
3
Integralno´s´c referencyjna
Wi ˛ezy stopni
4
5
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
18 / 40
Ka˙zdy zwi ˛
azek wieloargumentowy mo˙zemy przekształci´c na zbiór
zwi ˛
azków dwuargumentowych.
Aby to zrobi´c dodajemy jeden zbiór encji.
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
19 / 40
Przykład. Zamieniemy na zwi ˛
azki binarne wieloargumentowy zwi ˛
azek
mecz.
mecz
sedzia
druzyna
gospodarz
goscie
wynik
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
20 / 40
mecz
sedziuje
sedzia
gospodarz
goscie
druzyna
wynik
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
21 / 40
Outline
1
Zalezno´sci funkcyjne i klucze
2
3
Integralno´s´c referencyjna
Wi ˛ezy stopni
4
5
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
22 / 40
Je´sli pewne encje zawieraj ˛
a atrybuty nie wyst ˛epuj ˛
ace we
wszystkich elementach zbioru to mo˙zemy wyró˙zni´c je jako
podklasy
danej encji.
Encje takie ł ˛
aczymy specjalnym zwi ˛
azkiem
jest
(ang.
isa
).
Zwi ˛
azki takie maj ˛
a struktur ˛e drzewiast ˛
a z jednym korzeniem.
Encja podrz ˛edna ma wszystkie atrybutu i wchodzi we wszystkie
zwi ˛
azki, w które wchodzi encja nadrz ˛edna.
Klucz encji nadrzednej jest kluczem encji podrz ˛ednej.
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
23 / 40
Przykład. Podklasy
filmy
ISA
kreskowki
musicale
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
24 / 40
Outline
1
Zalezno´sci funkcyjne i klucze
2
3
Integralno´s´c referencyjna
Wi ˛ezy stopni
4
5
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
25 / 40
Dlaczego wprowadza´c wi ˛ezy w modelu BD?
Wi ˛ezy s ˛
a jednym z elementów opisu modelowanego ´swiata.
Dobrze zdefiniowane wi ˛ezy po implementacji modelu pozwalaj ˛
a
SZBD optymalizowa´c wykonywanie zada ´n zwi ˛
azanych z BD.
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
26 / 40
Przykład. Je´sli tabele R i T posiadaj ˛
a klucze to poni˙zsze zapytanie
mo˙zna łatwo zooptymalizowa´c. Aby to zrobi´c SZBD musi posiada´c
informacje o kluczach w schemacie BD.
s e l e c t Rnazwa , T nazwa
from R, T
where Rklucz = T k l u c z ;
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
27 / 40
Przykład. Łatwo zooptymalizowa´c tak˙ze
s e l e c t R . k l u c z , sum(R . wiek )
from R
group by R . k l u c z ;
jako
s e l e c t R . k l u c z , R . wiek
from R ;
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
28 / 40
Outline
1
Zalezno´sci funkcyjne i klucze
2
3
4
5
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
29 / 40
Zale˙zno´s´c wiele do jeden z E do F nie rozstrzyga, czy dla
ka˙zdego elementu E istnieje element w F b ˛ed ˛
acy z nim w relacji.
Istnienie odpowiedniego elementu z F modelujemy przez wi ˛ezy
integralno´sci referencyjnej.
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
30 / 40
Poznali´smy ju˙z niektóre wi ˛ezy w modelach BD.
klucze
typy zwi ˛
azków: wiele do jednego, jeden do jednego, ...
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
31 / 40
Integralno´s´c referencyjn ˛
a oznaczamy za pomoc ˛
a zaokr ˛
aglonej strzałki.
prezes
zarzadza
firma
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
32 / 40
Outline
1
Zalezno´sci funkcyjne i klucze
2
3
4
5
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
33 / 40
Mo˙zemy ograniczy´c stopie ´n zwi ˛
azku R pomi ˛edzy encjami E i F
przez zaznaczenie z iloma maksymalnie elementami z F mo˙ze
wej´s´c w zwi ˛
azek element z E.
Oznaczamy to przez okre´slenie liczno´sci, ¬ n, nad lini ˛
a do
ł ˛
acz ˛
ac ˛
a zwi ˛
azek z dan ˛
a encj ˛
a.
Strzałka oznacza w tej konwencji ograniczenie ¬ 1 podczas gdy
strzałka zaokr ˛
aglona to ograniczenie = 1.
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
34 / 40
Outline
1
Zalezno´sci funkcyjne i klucze
2
3
Integralno´s´c referencyjna
Wi ˛ezy stopni
4
5
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
35 / 40
Definicja 5
Słab ˛
a encja to encja, której cz ˛e´s´c lub wszystkie atrybuty wchodz ˛
ace w
skład jej klucza s ˛
a atrybutami innych encji.
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
36 / 40
gatunek
nalezy
rodzaj
nazwa
nazwa
Element słabej encji musi wchodzi´c w zwi ˛
azki z innymi encjami, z
których bierze cz ˛e´sci składowe swojego klucza.
Zwi ˛
azki te i encje nazywamy pomocniczymi.
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
37 / 40
Niech R b ˛edzie zwi ˛
azkiem pomocniczym od słabej encji E do encji
pomocniczej F .
R musi by´c zwi ˛
azkiem wiele do jednego od E do F (tak˙ze jeden
do jednego).
Musi istnie´c integralno´s´c referencyjna mi ˛edzy E i F .
Atrybuty klucza F wchodz ˛
a w skład klucza E .
Je´sli E ł ˛
acz ˛
a z F inne zwi ˛
azki pomocnicze, to dla ka˙zdego
tworzymy oddzieln ˛
a kopi ˛e klucza E . Element słabej encji musi
wchodzi´c w zwi ˛
azki z innymi encjami, z których bierze cz ˛e´sci
składowe swojego klucza.
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
38 / 40
Outline
1
Zalezno´sci funkcyjne i klucze
2
3
Integralno´s´c referencyjna
Wi ˛ezy stopni
4
5
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
39 / 40
Projektuj ˛
ac model ER powinni´smy kierowa´c si ˛e zasadami:
1
Wierno´s´c – encje i ich atrybuty powinny odpowiada´c
rzeczywisto´sci. Zwi ˛
azki powinny mie´c rzeczywisty sens.
2
Brak nadmiarowosci – ka˙zda informacja powinna by´c
przechowywana tylko w jednym miejscu. Nie nale˙zy powiela´c
informacji.
3
Prostota – nie nale˙zy wprowadza´c zb ˛ednych encji, atrybutów lub
zwi ˛
azków.
Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)
Bazy danych – wykład trzeci Modelowanie schematu bazy danych
40 / 40