Upload
kyle-lara
View
70
Download
0
Embed Size (px)
DESCRIPTION
Bazy Danych. Wyk ł ad 1 S. Kozielski. Program wykładu. Wprowadzenie Modele danych – model relacyjny Język SQL D efiniowanie struktury danych O peracje na bazie danych Ochrona baz danych Bezpieczeństwo baz danych – kontrola dostępu - PowerPoint PPT Presentation
Citation preview
Bazy Danych
Wykład 1
S. Kozielski
Program wykładu
1. Wprowadzenie2. Modele danych – model relacyjny3. Język SQL
– Definiowanie struktury danych– Operacje na bazie danych
4. Ochrona baz danycha) Bezpieczeństwo baz danych – kontrola dostępub) Ochrona integralności semantycznej – więzy referencyjnec) Ochrona integralności transakcyjnej – zarządzanie transakcjami
a) Projektowanie baz danych1. Modelowanie związków encji2. Normalizacja struktury baz danych
1. Architektura systemów korzystających z baz danych
Literatura
1. C.J. Date – Wprowadzenie do systemów baz danych, WNT 20002. J.D. Ullman, J. Widom – Podstawowy wykład z systemów baz danych,
WNT 2000• H.Garcia-Molina, J.D. Ullman, J. Widom – Implementacja systemów baz
danych, WNT 2003• H.Garcia-Molina, J.D. Ullman, J. Widom – Systemy baz danych. Pełny
wykład, WNT 2006• R. Elmasri, S. Navathe – Wprowadzenie do systemów baz danych,
Addison-Wesley, Helion 2005. • 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żytkownicyuprawnienia
- 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
dzienniktransakcji
metadane(słownik
b.d.)
bazadanych
Poziomy opisu danych w b.d.
Model danych:
- struktury danych,- operacje na strukturach
poziompojęciowy
poziomzewnętrzny
poziomwewnętrzny
U1 U2 U3 U5 U6
podschemat A(perspektywa A)
podschemat C(perspektywa C)
podschemat B(perspektywa B)
U4
Schemat b.d.(globalny logiczny opis b.d.)
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
kwota
kierownik
Pracownik
kierowniknazwanrt
Temat
należy
Zespół
nazwa
wykonuje
N
1
M N
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.
nazwa kierownik
Zespół
nazwisko adres
Pracownik
nrt nazwa kierownik kwota
Zadanie
Model hierarchiczny – wystąpienia rekordów
Zespół Wdrożeń Jaworski
P1
Z1 Z2
P3P2 P4 P5
T2
200
T2
300
T3
200
T1
150
T3
150
T2
200
T3
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.
nazwa kierownik
Zespół
nazwisko adres
Pracownik
nrt nazwa kierownik
kwota
Temat
Wypłata
Model sieciowy – wystąpienia rekordów
150 150200300200
P1 P2 P3
Z1
T2T1 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
nrtnrp
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
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) z (A, B, C, D)
———— ——— = —————
a1 b1 c1 c1 d1 a1 b1 c1 d1
a2 b2 c2 c5 d5 a4 b4 c1 d1
a3 b3 c3
a4 b4 c1
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
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’