Bazy Danych
Wykład 1
S. Kozielski
Program wykładu
1.
Wprowadzenie
2.
Modele danych – model relacyjny
3.
J
ę
zyk SQL
a)
Definiowanie struktury danych
b)
Operacje na bazie danych
4.
Ochrona baz danych
a)
Bezpiecze
ń
stwo baz danych – kontrola dost
ę
pu
b)
Ochrona integralno
ś
ci semantycznej – wi
ę
zy referencyjne
c)
Ochrona integralno
ś
ci transakcyjnej – zarz
ą
dzanie transakcjami
5.
Projektowanie baz danych
a)
Modelowanie zwi
ą
zków encji
b)
Normalizacja struktury baz danych
6.
Architektura systemów korzystaj
ą
cych z baz danych
Literatura
1.
C.J. Date – Wprowadzenie do systemów baz danych, WNT 2000
2.
J.D. Ullman, J. Widom – Podstawowy wykład z systemów baz danych,
WNT 2000
3.
H.Garcia-Molina, J.D. Ullman, J. Widom – Implementacja systemów baz
danych, WNT 2003
4.
H.Garcia-Molina, J.D. Ullman, J. Widom – Systemy baz danych. Pełny
wykład, WNT 2006
5.
R. Elmasri, S. Navathe – Wprowadzenie do systemów baz danych,
Addison-Wesley, Helion 2005.
6.
R. Coburn – SQL dla ka
ż
dego, Helion 2005
Poj
ę
cia podstawowe
Baza danych – zbiór danych pami
ę
tanych w systemie
komputerowym, dotycz
ą
cych pewnej wyodr
ę
bnionej cało
ś
ci,
wzajemnie powi
ą
zanych i wykorzystywanych przez wielu
u
ż
ytkowników.
System Zarz
ą
dzania Baz
ą
Danych (SZBD, ang. DBMS) –
uniwersalny system programowy, umo
ż
liwiaj
ą
cy tworzenie,
obsług
ę
i ochron
ę
baz danych w ró
ż
nych zastosowaniach.
Funkcje, struktura i u
ż
ytkownicy SZBD
U
ż
ytkownicy
uprawnienia
- tworzenie b.d.,
- strojenie b.d.,
- archiwizowanie b.d.,
- definiowanie u
ż
ytkowników i ich
uprawnie
ń
- wprowadzanie danych,
- modyfikowanie danych,
- usuwanie danych,
- wyszukiwanie danych,
- przetwarzanie danych,
- wizualizacja i raportowanie
- wyszukiwanie danych,
- przetwarzanie danych
Administrator b.d.
Programi
ś
ci aplikacji
U
ż
ytkownicy okazjonalni
Procesor zapyta
ń
1) kontrola dost
ę
pu, 2) optymalizacja zapyta
ń
, 3) wykonanie zapyta
ń
, 4) ochrona integralno
ś
ci
Moduł zarz
ą
dzania pami
ę
ci
ą
- zarz
ą
dzanie plikami,
- zarz
ą
dzanie buforami
Moduł zarz
ą
dzania transakcjami
- sterowanie współbie
ż
nym dost
ę
pem do danych,
- odtwarzanie spójnego stanu bazy
dziennik
transakcji
metadane
(słownik
b.d
.)
baza
danych
Wymagania stawiane systemowi z baz
ą
danych
• Poprawne odzwierciedlenie w bazie danych zale
ż
no
ś
ci
w
ś
wiecie rzeczywistym, który ta baza reprezentuje
• Efektywne przetwarzanie danych
• Zapewnienie spójno
ś
ci danych
• Ochrona przed nieautoryzowanym dost
ę
pem
• Ochrona przed skutkami zdarze
ń
losowych (awarii)
• Zapewnienie współbie
ż
nego dost
ę
pu do danych wielu
u
ż
ytkownikom
• Udost
ę
pnienie metadanych
Architektura systemów z baz
ą
danych
Architektura jednowarstwowa 1
Komputer
U
ż
ytkownik
SZBD
BD
Administrator
bazy danych
Architektura jednowarstwowa 2
Aplikacja
SZBD
BD
Komputer
Architektura dwuwarstwowa: systemy klient-serwer
Serwer
SZBD
Aplikacja 1
BD
Aplikacja 2
Aplikacja 3
stacja 1
stacja 2
stacja 3
Architektura trójwarstwowa
SZBD
Klient
Klient
Klient
Stacja 1
Stacja 2
Stacja n
BD
Serwer bazy danych
Serwer aplikacji
Wielowarstwowe internetowe systemy bazodanowe
Przegl
ą
darka
(klient)
BD
Serwer
b. d.
Serwer
www
Serwer
aplikacji
Przegl
ą
darka
(klient)
Przegl
ą
darka
(klient)
Poziomy opisu danych w b.d.
Model danych:
- struktury danych,
- operacje na strukturach
-
ograniczenia dla danych
poziom
poj
ę
ciowy
poziom
zewn
ę
trzny
poziom
wewn
ę
trzny
U
1
U
2
U
3
U
5
U
6
podschemat A
(perspektywa A)
podschemat C
(perspektywa C)
podschemat B
(perspektywa B)
U
4
Schemat b.d.
(globalny logiczny opis b.d.)
fizyczne struktury danych
Opis wybranego fragmentu rzeczywisto
ś
ci
nazwisko
adres
kwota
kierownik
Pracownik
kierownik
nazwa
nrt
Temat
nale
ż
y
Zespół
nazwa
wykonuje
N
1
M
N
• Rekord – zestaw danych tworz
ą
cych pewn
ą
cało
ść
,
• Pole – miejsce danych w rekordzie,
• Typ danej – sposób reprezentacji danej w polu,
• Typ rekordu – zestaw typów danych tworz
ą
cych
rekord,
• Wyst
ą
pienie rekordu – zestaw warto
ś
ci danych
tworz
ą
cych rekord.
Model hierarchiczny - schemat b. d
.
nazwa
kierownik
Zespół
nazwisko
adres
Pracownik
nrt
nazwa
kierownik
kwota
Zadanie
Model hierarchiczny – wyst
ą
pienia rekordów
Zespół Wdro
ż
e
ń
Jaworski
P1
Z1
Z2
P3
P2
P4
P5
T2
200
T2
300
T3
200
T1
150
T3
150
T2
200
T3
150
Przykładowe pytania
Z1: nazwisko
→
nazwa tematu
Które tematy (nazwa) wykonuje zadany pracownik?
Z2: nazwa tematu
→
nazwisko
Kto (nazwisko) wykonuje zadany temat?
J
ę
zyk DL/I
get leftmost <rekord> [where <warunek>]
get next <rekord> [where <warunek>]
get next within parent <rekord> [where <warunek>]
Model sieciowy - schemat b. d
.
nazwa
kierownik
Zespół
nazwisko
adres
Pracownik
nrt
nazwa
kierownik
kwota
Temat
Wypłata
Model sieciowy – wyst
ą
pienia rekordów
150
150
200
300
200
P1
P2
P3
Z1
T2
T1
T3
B
B
B
A
C
C
C
J
ę
zyk DML
find <rekord> record by key <zmienna>
find next <rekord> record in current <kolekcja> set
find owner of current <kolekcja> set
Model relacyjny - schemat b. d
.
nazwisko
adres
Pracownik
nrt
nazwa
kierownik
Temat
nazwa
kierownik
Zespół
nrz
nrp
kwota
Wypłata
nrt
nrp
nrz
Zespoły
1
Zespół Wdro
ż
e
ń
2
2
Zespół Analiz
1
kierownik
nazwa
nrz
Pracownicy
1
Gliwice
Jaworek
3
1
Zabrze
Grabski
2
2
Ruda
Ś
l
ą
ska
Lipowski
1
nrz
adres
nazwisko
nrp
Tematy
2
Projekt reaktora
3
1
Projekt przetwornika
2
2
Projekt zasilacza
1
kierownik
nazwa
nrt
Wypłaty
200
3
1
200
2
3
150
1
1
150
3
3
300
2
2
kwota
nrt
nrp
Poziomy j
ę
zyków zapyta
ń
modelu relacyjnego
1. J
ę
zyki operuj
ą
ce na pojedynczych rekordach (wierszach
tablicy)
2. J
ę
zyki operuj
ą
ce na całych tablicach (algebra relacji)
3. Wysokiego poziomu j
ę
zyki zapyta
ń
(SQL, Quel, QBE)
J
ę
zyki operuj
ą
ce na pojedynczych rekordach
(wierszach tablicy)
get next record from <tablica>
J
ę
zyki operuj
ą
ce na całych tablicach
(algebra relacji)
(uj
ę
cie pogl
ą
dowe – uproszczone)
Przykład selekcji
A
B
C
2
1
2
σ
C=2
⇒
A
B
C
2
2
Przykład projekcji
A
B
C
A
C
π
AC
⇒
Przykład zł
ą
czenia naturalnego
r (A, B, C)
s (C, D)
———— ———
=
?
a
1
b
1
c
1
c
1
d
1
a
2
b
2
c
2
c
5
d
5
a
3
b
3
c
3
a
4
b
4
c
1
Przykład zł
ą
czenia naturalnego
r (A, B, C)
s (C, D)
z (A, B, C, D)
———— ———
=
—————
a
1
b
1
c
1
c
1
d
1
a
1
b
1
c
1
d
1
a
2
b
2
c
2
c
5
d
5
a
4
b
4
c
1
d
1
a
3
b
3
c
3
a
4
b
4
c
1
Zł
ą
czenie tabel
Wypłaty
nrp
nrt
kwota
2
2
300
3
3
150
1
1
150
3
2
200
1
3
200
Pracownicy
nrp
nazwisko
adres
nrz
1
Lipowski
Ruda
2
2
Grabski
Zabrze
1
3
Jaworek
Gliwice
1
Pracownicy
Wypłaty
200
3
2
Ruda
Lipowski
1
200
2
1
Gliwice
Jaworek
3
150
1
2
Ruda
Lipowski
1
150
3
1
Gliwice
Jaworek
3
300
2
1
Zabrze
Grabski
2
kwota
nrt
nrz
adres
nazwisko
nrp
Pracownicy
Wypłaty
Tematy
2
Pr. reaktora
200
3
2
Ruda
Lipowski
1
1
Pr. przetwor.
200
2
1
Gliwice
Jaworek
3
2
Pr. zasilacza
150
1
2
Ruda
Lipowski
1
2
Pr. reaktora
150
3
1
Gliwice
Jaworek
3
1
Pr. przetwor.
300
2
1
Zabrze
Grabski
2
kier.
nazwa
kwota
nrt
nrz
adres
nazwisko
nrp
σ
nazwisko = ‘Jaworek’
(
Pracownicy
Wypłaty
Tematy
)
1
Pr. przetwor.
200
2
1
Gliwice
Jaworek
3
2
Pr. reaktora
150
3
1
Gliwice
Jaworek
3
kier.
nazwa
kwota
nrt
nrz
adres
nazwisko
nrp
π
nazwa
(
σ
nazwisko = ‘Jaworek’
(
Pracownicy
Wyp
ł
aty
Tematy
))
Pr. przetwor.
Pr. reaktora
nazwa
Pytanie Z1 jako wyra
ż
enie algebry relacji
Z1 =
π
nazwa
(
σ
nazwisko = ‘Jaworek’
(Pracownicy
Wyp
ł
aty
Tematy))
Pytanie Z2 jako wyra
ż
enie algebry relacji
Z2 =
π
nazwisko
(
σ
nazwa = ‘Pr. reaktora’
(Pracownicy
Wyp
ł
aty
Tematy))
SQL - wysokiego poziomu j
ę
zyk zapyta
ń
Posta
ć
pytania Z1:
SELECT nazwa
FROM pracownicy, wypłaty, tematy
WHERE pracownicy.nrp = wypłaty.nrp AND
wypłaty.nrt = tematy.nrt AND
nazwisko = ‘Jaworek’
Posta
ć
pytania Z2:
SELECT nazwisko
FROM pracownicy, wypłaty, tematy
WHERE pracownicy.nrp = wypłaty.nrp AND
wypłaty.nrt = tematy.nrt AND
nazwa = ‘Pr. reaktora’