1
Bazy danych – modele baz danych
Modele baz danych
• hierarchiczny
• sieciowy
• relacyjny
• obiektowy
2
Bazy danych – modele baz danych
Modele baz danych
• hierarchiczny
POŚREDNICY
MUZYCY
KLIENCI
UMOWY
ROZLICZENIA
TERMINARZ
3
Bazy danych – modele baz danych
Modele baz danych
• hierarchiczny
• sieciowy
• relacyjny
• obiektowy
4
Bazy danych – modele baz danych
Modele baz danych
• sieciowy
POŚREDNICY
MUZYCY
KLIENCI
UMOWY
ROZLICZENIA
STYLE
MUZYCZNE
REPREZENTUJE
KIERUJE
UISZCZA
ZAWIERA
WYPEŁNIA
GRA
5
Bazy danych – modele baz danych
Modele baz danych
• hierarchiczny
• sieciowy
• relacyjny
• obiektowy
RELACYJNY MODEL DANYCH
Bazy danych – relacyjny model danych
RELACJA (tabela)
Bazy danych – relacyjny model danych
• W relacyjnym modelu danych baza danych składa się zwykle z
szeregu tabel (relacji) oraz związków pomiędzy tabelami.
• Tabele przechowują informacje na temat interesujących
obiektów. Na uzyskanie pełniejszych informacji pozwala
łączenie tabel.
• Rodzaj danych, sposób podziału na tabele i związki jest
ustalony w procesie normalizacji bazy.
Bazy danych – relacyjny model danych
• Tabele mogą być ze sobą powiązane. Każda z nich jest
nazwana i ma stałą liczbę kolumn oraz dowolną liczbę wierszy.
• Tabela składa się z krotek, czyli rekordów oraz niezależnych
atrybutów, czyli pól. Ich kolejność jest dowolna.
• Rekordy są zapisywane w wierszach, natomiast atrybuty w
kolumnach. Kolumny są opatrzone nazwami i mogą
przechowywać dane określonego prostego typu
(np. liczby o podanej precyzji, napisy o określonej długości albo daty).
• Wiersze reprezentują konkretne wystąpienie rekordu i można je
dodawać lub usuwać.
Bazy danych – relacyjny model danych
• Założeniem poprawnej budowy tabeli jest to, aby każda
wartość atrybutu w każdej krotce była wartością atomową
(wartością nie rozkładalną - pojedyncza wartość, a nie zbiór
wartości).
Bazy danych – relacyjny model danych
Atrybuty (nagłówki kolumn)
Atrybuty
służą do nazywania kolumn relacji. Na ogół oddają
znaczenie danych umieszczanych w kolumnach pod nimi
Bazy danych – relacyjny model danych
Schemat relacji
Film (tytuł,rok,długość,typFilmu)
Schemat relacji = nazwa relacji + zbiór atrybutów
Bazy danych – relacyjny model danych
Schemat relacji
Film (tytuł,rok,długość,typFilmu)
W modelu relacyjnym projekt składa się z jednego lub kilku
schematów relacji (schemat bazy danych)
Bazy danych – relacyjny model danych
Krotka (wiersz tabeli - relacji)
(Gwiezdne wojny,1977,124,kolor)
W krotce każdy atrybut ma swój odpowiednik w postaci
składowej krotki
Bazy danych – relacyjny model danych
Pole
podaje wartość atrybutu, którego dziedziną jest zbiór
dopuszczalnych wartości jakie może przyjmować. (dane określonego
typu, definiowane na etapie projektowania bazy danych - mają stały
rozmiar i zwykle są to ogólnie znane typy proste - liczba, data,
godzina, ciąg znaków, znak itp.)
Pole
Bazy danych – relacyjny model danych
Instancja relacji (zbiór - krotek)
Bazy danych – relacyjny model danych
Bazy danych – relacyjny model danych
Własności relacji (tablicy)
• Krotki (wiersze) są unikalne
• Atrybuty (kolumny) są unikalne
• Kolejność krotek (wierszy) jest dowolna
• Kolejność atrybutów (kolumn) jest dowolna
• Wartości atrybutów (pól) są atomowe
Bazy danych – relacyjny model danych
Relacja między dwoma tabelami może przyjąć jeden konkretny typ:
powiązania jednoznaczne typu 1 do 1 ("1-1"):
powiązania jednoznaczne 1 do n ("1-n" ):
powiązania wieloznaczne n do m ("n-m"):
Bazy danych – relacyjny model danych
Relacja
jeden-do-jednego
występuje wtedy, gdy
pojedynczemu rekordowi z
pierwszej tabeli
przyporządkowany jest
najwyżej jeden rekord z
drugiej i na odwrót –
pojedynczemu rekordowi z
drugiej tabeli może być
przyporządkowany
najwyżej jeden rekord z
pierwszej.
powiązania jednoznaczne typu 1 do 1 ("1-1")
powiązania jednoznaczne 1 do n ("1-n" )
powiązania wieloznaczne n do m ("n-m")
Bazy danych – relacyjny model danych
Relacja
jeden-do-wielu
występuje wtedy, gdy
pojedynczemu rekordowi z
pierwszej tabeli może
odpowiadać jeden lub
więcej rekordów z drugiej,
podczas gdy
pojedynczemu rekordowi z
drugiej tabeli odpowiada
najwyżej jeden rekord z
pierwszej.
powiązania jednoznaczne typu 1 do 1 ("1-1")
powiązania jednoznaczne 1 do n ("1-n" )
powiązania wieloznaczne n do m ("n-m")
Bazy danych – relacyjny model danych
Relacja
wiele-do-wielu
występuje wtedy, gdy
pojedynczemu rekordowi w
pierwszej z nich może
odpowiadać jeden lub wiele
rekordów z drugiej i na
odwrót – pojedynczy rekord
z drugiej tabeli może być
powiązany z jednym lub
większą liczbą rekordów z
pierwszej.
powiązania jednoznaczne typu 1 do 1 ("1-1")
powiązania jednoznaczne 1 do n ("1-n" )
powiązania wieloznaczne n do m ("n-m")
Bazy danych – relacyjny model danych
Diagram związków encji
FILMY
GWIAZDY
STUDIA
tytuł
rok
długość
typFilmu
nazwisko
adres
nazwa
adres
Gwiazdy-w
Posiada
Bazy danych – relacyjny model danych
Zbiór encji
Î
relacja
FILMY
tytuł
rok
długość
typFilmu
Bazy danych – relacyjny model danych
Zbiór encji
Î
relacja
GWIAZDY
nazwisko
adres
nazwisko
adres
Carrie Fisher
123 Maple St., Hollywood
Mark Hamill
456 Oak Rd., Brentwood
Harrison Ford
789 Palm Dr, Beverly Hills
Bazy danych – relacyjny model danych
Związki encji
Î
relacja
FILMY
STUDIA
tytuł
rok
długość
typFilmu
nazwa
adres
Posiada
tytuł
rok
nazwa studia
Gwiezdne wojny
1977
1991
1992
Fox
Potężne Kaczory
Disnay
Świat Weyne’a
Paramount
Atrybuty relacji związku:
• Klucze zbiorów encji są atrybutami relacji
• Własny klucz związku (jeśli istnieje)
Związki encji
Î
relacja
Bazy danych – relacyjny model danych
Atrybuty relacji związku:
• Klucze zbiorów encji są atrybutami relacji
• Własny klucz związku (jeśli istnieje)
FILMY
GWIAZDY
tytuł
rok
typFilmu
nazwisko
adres
Gwiazdy-w
długość
tytuł
rok
nazwisko gwiazdy
Gwiezdne wojny
1977
Carrie Fisher
Świat Weyne’a
1992
Mike Meyers
Gwiezdne wojny
1977
Mark Hamill
1977
1991
1992
Gwiezdne wojny
Harrison Ford
Potężne Kaczory
Emilio Estevez
Świat Weyne’a
Dana Carvey
Związki encji
Î
relacja
Bazy danych – relacyjny model danych
Atrybuty relacji związku:
• Klucze zbiorów encji są atrybutami relacji
• Własny klucz związku (jeśli istnieje)
FILMY
GWIAZDY
tytuł
rok
typFilmu
nazwisko
adres
długość
nazwisko gwiazdy
tytuł
rok
studioGwiazdy
studioProducenta
KONTRAKTY
STUDIA
nazwa
adres
KONTRAKTY
Bazy danych – relacyjny model danych
Zbiory (słabych) encji
Î
relacja
Atrybuty relacji:
• Dla zbioru - atrybuty zbioru słabych encji oraz atrybuty klucza z innych
zbiorów encji
• Dla związku – wszystkie atrybuty klucza zbioru słabych encji również te, które
pochodzą z innych zbiorów encji
Studia (nazwa, adres)
Zespoły (numer, nazwaStudia)
Jednostka (numer, nazwaStudia, nazwa)
STUDIA
nazwa
adres
ZESPÓŁ
Jednostka-w
numer
Bazy danych – relacyjny model danych
Zależności funkcyjne
Warunek występowania zależności funkcyjnych:
A
1
,A
2
,...A
n
-->B
Jeżeli dwie krotki relacji R są zgodne dla atrybutów A
1
, A
2
, A
n
(obie
krotki mają te same wartości składowych dla wymienionych atrybutów)
to muszą być również zgodne w pewnym innym atrybucie B
Bazy danych – relacyjny model danych
Zależności funkcyjne
A
1
,A
2
,...A
n
-->B
1
A
1
,A
2
,...A
n
-->B
2
A
1
,A
2
,...A
n
-->B
m
A
1
,A
2
,...A
n
-->B
1
B
2
…B
m
Jeżeli zbiór atrybutów A
1
, A
2
, A
n
określa funkcyjnie więcej niż jeden
atrybut B
Bazy danych – relacyjny model danych
Zależności funkcyjne
tytuł
rok
długość typFilmu
nazwaStudia
nazwisko-
Gwiazdy
Gwiezdne
wojny
1977
124
kolor
Fox
Carrie Fisher
Gwiezdne
wojny
1977
124
kolor
Fox
Mark Hamill
Gwiezdne
wojny
1977
124
kolor
Fox
Harrison Ford
Potężne
Kaczory
1991
104
kolor
Disney
Emilio
Estevez
Potężne
Kaczory
1992
95
kolor
Paramount
Dana Carvey
Świat
Wayne’a
1992
95
kolor
Paramount
Mike Meyers
tytuł rok ---> długość
tytuł rok ---> typFilmu
tytuł rok ---> nazwaStudia
A
1
,A
2
,...A
n
-->B
tytuł rok ---> długość typFilmu nazwaStudia
A
1
,A
2
,...A
n
-->B
1
B
2
…B
m
Bazy danych – modelowanie więzów
Klasyfikacja więzów -
Klucze
Klucze –
atrybuty lub zbiory atrybutów, które jednoznacznie
identyfikują encję wewnątrz zbioru encji.
Klucz może być utworzony przez:
• wybór atrybutu spełniającego rolę klucza (np. Pesel, NIP)
• utworzenie specjalnego atrybutu spełniającego rolę klucza
FILMY
tytuł
rok
długość
typFilmu
KLUCZ
Bazy danych – relacyjny model danych
Klucze relacji
Atrybut lub zbiór atrybutów {A
1
, A
2
, ...., A
n
} tworzy klucz relacji jeżeli
• Wszystkie pozostałe atrybuty relacji są fukcyjnie zależne od tych
atrybutów.
(Nie może się zdarzyć, aby dwie różne krotki relacji R były zgodne
dla wszystkich atrybutów A
1
, A
2
, ...., A
n.
)
• Nie istnieje podzbiór właściwy zbioru {A
1
, A
2
, ...., A
n
}, od którego
pozostałe atrybuty relacji R są zależne funkcyjnie (klucz musi być
minimalny)
Bazy danych – relacyjny model danych
Klucze relacji
tytuł
rok
długość typFilmu
nazwaStudia
nazwisko-
Gwiazdy
Gwiezdne
wojny
1977
124
kolor
Fox
Carrie Fisher
Gwiezdne
wojny
1977
124
kolor
Fox
Mark Hamill
Gwiezdne
wojny
1977
124
kolor
Fox
Harrison Ford
Potężne
Kaczory
1991
104
kolor
Disney
Emilio
Estevez
Potężne
Kaczory
1992
95
kolor
Paramount
Dana Carvey
Świat
Wayne’a
1992
95
kolor
Paramount
Mike Meyers
Czy atrybuty {tytuł, rok, nazwiskoGwiazdy} tworzą klucz relacji Film ?
1. Czy wszystkie pozostałe atrybuty relacji Film są od nich zależne funkcyjnie ?
Istnieją
tytuł rok ---> długość
zależności
tytuł rok ---> typFilmu
funkcyjne
tytuł rok ---> nazwaStudia
Dwie różne krotki zgodne dla wszystkich trzech atrybutów
{tytuł, rok, nazwiskoGwiazdy}
są tą samą krotką
Bazy danych – relacyjny model danych
Klucze relacji
tytuł
rok
długość typFilmu
nazwaStudia
nazwisko-
Gwiazdy
Gwiezdne
wojny
1977
124
kolor
Fox
Carrie Fisher
Gwiezdne
wojny
1977
124
kolor
Fox
Mark Hamill
Gwiezdne
wojny
1977
124
kolor
Fox
Harrison Ford
Potężne
Kaczory
1991
104
kolor
Disney
Emilio
Estevez
Potężne
Kaczory
1992
95
kolor
Paramount
Dana Carvey
Świat
Wayne’a
1992
95
kolor
Paramount
Mike Meyers
Czy atrybuty {tytuł, rok, nazwiskoGwiazdy} tworzą klucz relacji Film ?
2. Czy żaden z podzbiorów właściwych zbioru {
tytuł, rok, nazwiskoGwiazdy}
nie wyznacza pozostałych atrybutów w sosób zależny funkcyjnie ?
rok nazwiskoGwiazdy ---> tytuł
NIE
tytuł nazwiskoGwiazdy ---> rok
NIE
tytuł rok ---> nazwiskoGwiazdy
NIE
Bazy danych – relacyjny model danych
Klucze relacji
Każda tabela (relacja) posiada zdefiniowany klucz - wyróżnioną
kolumnę lub kilka kolumn, których wartości jednoznacznie identyfikują
dany wiersz. Ich wartość dla każdego rekordu jest unikalna.
Kolumny jednoznacznie odróżniające rekordy relacji nazywane są
kluczem głównym (podstawowym).
W każdej relacji istnieje pewna kombinacja atrybutów mająca
zdolność jednoznacznej identyfikacji - tablica ma więcej niż jeden
klucz kandydujący wśród kluczy podstawowych. Wśród nich, ten
który poprzez minimalną ilość atrybutów jednoznacznie wyznacza
dany wiersz jest określany kluczem właściwym.
Bazy danych – relacyjny model danych
Klucze relacji
Klucz obcy
Kolumny jednej tabeli są kluczem obcym, jeśli nie są kluczem
głównym tej tabeli, ale ich wartości są wartościami klucza
głównego innej tabeli.
W relacyjnym modelu logicznym dwie tabele są ze sobą w
relacji, jeśli wiążą je wartości klucza podstawowego i klucza
obcego lub też specjalna tabela łącząca.
Bazy danych – relacyjny model danych
Klucze relacji
Bazy danych – relacyjny model danych
Klucze relacji
Atrybut lub zbiór atrybutów {A
1
, A
2
, ...., A
n
} tworzy klucz relacji jeżeli
• Wszystkie pozostałe atrybuty relacji są fukcyjnie zależne od tych
atrybutów. Nie może się zdarzyć, aby dwie różne krotki relacji R
były zgodne dla wszystkich atrybutów A
1
, A
2
, ...., A
n.
• Nie istnieje podzbiór właściwy zbioru {A
1
, A
2
, ...., A
n
}, od którego
pozostałe atrybuty relacji R są zależne funkcyjnie (klucz musi być
minimalny)
Nadklucz –
zbiór atrybutów zawierających klucz
(spełniony jest jedynie warunek pierwszy)
Bazy danych – relacyjny model danych
Reguły dotyczące zależności funkcyjnych
- zasady podziału i łączenia
- zależności trywialne
- reguła przechodniości
Bazy danych – relacyjny model danych
Reguły dotyczące zależności funkcyjnych
- zasady podziału i łączenia
Reguła podziału
zależność funkcyjną:
A
1
A
2
...A
n
Æ
B
1
B
2
...B
m
można zastąpić zbiorem zależności funkcyjnych:
A
1
A
2
...A
n
Æ
B
i
gdzie i=1,2...m
Bazy danych – relacyjny model danych
Reguły dotyczące zależności funkcyjnych
- zasady podziału i łączenia
Reguła łączenia
zbiór zależności funkcyjnych:
A
1
A
2
...A
n
Æ
B
1
gdzie i=1,2...m
można zastąpić zależnością funkcyjną:
A
1
A
2
...A
n
Æ
B
1
B
2
...B
m
Bazy danych – relacyjny model danych
Zależności funkcyjne – przykład reguły łączenia
tytuł
rok
długość typFilmu
nazwaStudia
nazwisko-
Gwiazdy
Gwiezdne
wojny
1977
124
kolor
Fox
Carrie Fisher
Gwiezdne
wojny
1977
124
kolor
Fox
Mark Hamill
Gwiezdne
wojny
1977
124
kolor
Fox
Harrison Ford
Potężne
Kaczory
1991
104
kolor
Disney
Emilio
Estevez
Potężne
Kaczory
1992
95
kolor
Paramount
Dana Carvey
Świat
Wayne’a
1992
95
kolor
Paramount
Mike Meyers
tytuł rok ---> długość
tytuł rok ---> typFilmu
tytuł rok ---> nazwaStudia
tytuł rok ---> długość
tytuł ---> długość
rok ---> długość
tytuł rok ---> długość typFilmu nazwaStudia
Bazy danych – relacyjny model danych
Reguły dotyczące zależności funkcyjnych
- zależności trywialne
zależność funkcyjna:
A
1
A
2
...A
n
Æ
B
jest trywialna, jeżeli
B
jest równe któremuś
A
tytuł rok ---> tytuł
Bazy danych – relacyjny model danych
Reguły dotyczące zależności funkcyjnych
- reguła przechodniości
Jeżeli w relacji R zachodzą zależności:
A
1
A
2
...A
n
Æ
B
1
B
2
...B
m
oraz B
1
B
2
...B
m
Æ
C
1
C
2
...C
k
To w relacji R zachodzi także zależność:
A
1
A
2
...A
n
Æ
C
1
C
2
...C
k
Bazy danych – relacyjny model danych
Reguły dotyczące zależności funkcyjnych
- reguła przechodniości (przykład)
Tytuł
Rok Długość Typ
filmu
Nazwa Studia
Gwiezdne
wojny
1997 124
Kolor Fox
Potężne
Kaczory
1991 104
Kolor Disney
Swiat
Wayne’a
1992 95
Kolor Paramount
Jeżeli w relacji Film chcemy przechowywać dane dotyczące studia
Tytuł
Rok Długość Typ
filmu
Nazwa Studia
adresStudia
Gwiezdne
wojny
1997 124 Kolor
Fox
Hollywood
Potężne
Kaczory
1991 104 Kolor
Disney
Buena
Vista
Swiat
Wayne’a
1992 95 Kolor
Paramount Hollywood
tytuł rok ---> nazwaStudia
nazwaStudia ---> adresStudia
tytuł rok ---> adresStudia
Bazy danych – relacyjny model danych
PROJEKTOWANIE RELACYJNYCH
SCHEMATÓW BAZ DANYCH