kierownik nazwa nrt

advertisement
Bazy Danych
Wykład 1
S. Kozielski
Program wykładu
1.
2.
3.
a)
b)
4.
a)
b)
c)
5.
a)
b)
6.
Wprowadzenie
Modele danych – model relacyjny
Język SQL
Definiowanie struktury danych
Operacje na bazie danych
Ochrona baz danych
Bezpieczeństwo baz danych – kontrola dostępu
Ochrona integralności semantycznej – więzy referencyjne
Ochrona integralności transakcyjnej – zarządzanie transakcjami
Projektowanie baz danych
Modelowanie związków encji
Normalizacja struktury baz danych
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
1. H.Garcia-Molina, J.D. Ullman, J. Widom – Implementacja systemów baz
danych, WNT 2003
2. H.Garcia-Molina, J.D. Ullman, J. Widom – Systemy baz danych. Pełny
wykład, WNT 2006
3. R. Elmasri, S. Navathe – Wprowadzenie do systemów baz danych,
Addison-Wesley, Helion 2005.
1. 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
Administrator b.d.
- tworzenie b.d.,
- strojenie b.d.,
- archiwizowanie b.d.,
- definiowanie użytkowników i ich
uprawnień
Programiści aplikacji
Użytkownicy okazjonalni
- wprowadzanie danych,
- modyfikowanie danych,
- usuwanie danych,
- wyszukiwanie danych,
- przetwarzanie danych,
- wizualizacja i raportowanie
- wyszukiwanie danych,
- przetwarzanie danych
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
Użytkownicy
uprawnienia
metadane
(słownik
b.d.)
Moduł zarządzania transakcjami
- sterowanie współbieżnym dostępem do danych,
- odtwarzanie spójnego stanu bazy
baza
danych
dziennik
transakcji
Poziomy opisu danych w b.d.
U1
poziom
zewnętrzny
poziom
pojęciowy
U2
podschemat A
(perspektywa A)
U3
podschemat B
(perspektywa B)
Schemat b.d.
(globalny logiczny opis b.d.)
U4
U5
U6
podschemat C
(perspektywa C)
Model danych:
- struktury danych,
- operacje na strukturach
poziom
wewnętrzny
fizyczne struktury danych
•
•
•
•
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.
Opis wybranego fragmentu rzeczywistości
nazwisko
adres
nrt
Pracownik
Temat
M
N
N
wykonuje
należy
1
Zespół
nazwa
nazwa
kwota
kierownik
kierownik
Przykładowe pytania
Z1: nazwisko  nazwa tematu
Które tematy (nazwa) wykonuje zadany pracownik?
Z2: nazwa tematu  nazwisko
Kto (nazwisko) wykonuje zadany temat?
Model hierarchiczny - schemat b. d.
Zespół
nazwa
kierownik
Pracownik
nazwisko
adres
Zadanie
nrt
nazwa
kierownik
kwota
Model hierarchiczny – wystąpienia rekordów
Z1
Zespół Wdrożeń
Z2
Jaworski
P1
P2
P3
P4
P5
T1
T3
T2
T2
T3
T2
T3
150
200
300
200
150
200
150
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.
Zespół
nazwa
kierownik
Pracownik
nazwisko
Temat
adres
kwota
Wypłata
nrt
nazwa
kierownik
Model sieciowy – wystąpienia rekordów
Z1
A
P1
P2
B
150
200
P3
B
B
300
200
C
T1
150
C
T2
C
T3
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.
Zespół
nrz
nazwa
kierownik
Pracownik
nrp
nazwisko
adres
Temat
nrt
nazwa
kierownik
Wypłata
nrp
nrt
kwota
Zespoły
nrz
nazwa
kierownik
1
Zespół Analiz
2
2
Zespół Wdrożeń
1
Pracownicy
nrp
nazwisko
adres
nrz
1
Lipowski
Ruda Śląska
2
2
Grabski
Zabrze
1
3
Jaworek
Gliwice
1
Tematy
nrt
nazwa
kierownik
1
Projekt zasilacza
2
2
Projekt przetwornika
1
3
Projekt reaktora
2
Wypłaty
nrp
nrt
kwota
2
2
300
3
3
150
1
1
150
3
2
200
1
3
200
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
A
B
C
C=2
2

2
Przykład projekcji
A
B
C
A
AC

C
Przykład złączenia naturalnego
r (A, B, C)
s (C, D)
————  ———
a1 b1 c1
c1 d1
a2 b2 c2
c5 d5
a3 b3 c3
a4 b4 c1
z (A, B, C, D)
= —————
a1 b1 c1 d1
a4 b4 c1 d1
Złączenie tabel
Wypłaty
Pracownicy
nrp
nazwisko
adres
nrz
nrp
nrt
kwota
2
2
300
1
Lipowski
Ruda
2
3
3
150
2
Grabski
Zabrze
1
1
1
150
3
Jaworek
Gliwice
1
3
2
200
1
3
200
Pracownicy  Wypłaty
nrp
nazwisko
adres
nrz
nrt
kwota
2
Grabski
Zabrze
1
2
300
3
Jaworek
Gliwice
1
3
150
1
Lipowski
Ruda
2
1
150
3
Jaworek
Gliwice
1
2
200
1
Lipowski
Ruda
2
3
200
Pracownicy  Wypłaty  Tematy
nrp nazwisko
adres
nrz
nrt
kwota
nazwa
kier.
2
Grabski
Zabrze
1
2
300
Pr. przetwor.
1
3
Jaworek
Gliwice
1
3
150
Pr. reaktora
2
1
Lipowski
Ruda
2
1
150
Pr. zasilacza
2
3
Jaworek
Gliwice
1
2
200
Pr. przetwor.
1
1
Lipowski
Ruda
2
3
200
Pr. reaktora
2
nazwisko = ‘Jaworek’ (Pracownicy  Wypłaty  Tematy)
nrp nazwisko
adres
nrz
nrt
kwota
nazwa
kier.
3
Jaworek
Gliwice
1
3
150
Pr. reaktora
2
3
Jaworek
Gliwice
1
2
200
Pr. przetwor.
1
nazwa (nazwisko = ‘Jaworek’ (Pracownicy  Wypłaty  Tematy))
nazwa
Pr. reaktora
Pr. przetwor.
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’
Download