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
Administrator b.d. Programiści aplikacji Użytkownicy okazjonalni
- tworzenie b.d., - wprowadzanie danych, - wyszukiwanie danych,
- strojenie b.d., - modyfikowanie danych, - przetwarzanie danych
- archiwizowanie b.d., - usuwanie danych,
- definiowanie użytkowników i ich - wyszukiwanie danych,
uprawnień - przetwarzanie danych,
- wizualizacja i raportowanie
Procesor zapytań
1) kontrola dostępu, 2) optymalizacja zapytań, 3) wykonanie zapytań, 4) ochrona integralności
Moduł zarządzania pamięcią Moduł zarządzania transakcjami
- zarządzanie plikami, - sterowanie współbieżnym dostępem do danych,
- zarządzanie buforami - odtwarzanie spójnego stanu bazy
Użytkownicy metadane baza dziennik
uprawnienia (słownik danych transakcji
b.d.)
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
Komputer
Aplikacja
SZBD
BD
Architektura dwuwarstwowa: systemy klient-serwer
Serwer
BD
SZBD
Aplikacja 1 Aplikacja 2 Aplikacja 3
stacja 1 stacja 2 stacja 3
Architektura trójwarstwowa
SZBD BD
Serwer bazy danych
Serwer aplikacji
Klient Klient Klient
Stacja 1 Stacja 2 Stacja n
Wielowarstwowe internetowe systemy bazodanowe
Przeglądarka
(klient)
Serwer
Serwer Serwer
Przeglądarka
BD
b. d.
www aplikacji
(klient)
Przeglądarka
(klient)
Poziomy opisu danych w b.d.
U1 U2 U3 U4 U5 U6
podschemat B
poziom podschemat A podschemat C
(perspektywa B)
zewnętrzny (perspektywa A) (perspektywa C)
poziom
Schemat b.d.
pojęciowy
(globalny logiczny opis b.d.)
Model danych:
- struktury danych,
- operacje na strukturach
- ograniczenia dla danych
poziom
wewnętrzny
fizyczne struktury danych
Opis wybranego fragmentu rzeczywistości
nazwisko adres nrt nazwa kierownik
Pracownik Temat
N M N
wykonuje
należy
1
Zespół kwota
nazwa
kierownik
" 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.
Zespół
nazwa kierownik
Pracownik
nazwisko adres
Zadanie
nrt nazwa kierownik kwota
Model hierarchiczny wystąpienia rekordów
Z1 Z2
Zespół Wdrożeń Jaworski
P1 P2 P3 P4 P5
T1 T3 T2 T2 T3 T2 T3
150 200 300 200 150 200 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
[where ]
get next [where ]
get next within parent [where ]
Model sieciowy - schemat b. d.
Zespół
nazwa kierownik
Pracownik Temat
nazwisko adres nrt nazwa kierownik
kwota
Wypłata
Model sieciowy wystąpienia rekordów
Z1
A
P1 P2 P3
B
B B
150 200 300 200 150
C C C
T2 T3
T1
Język DML
find record by key
find next record in current set
find owner of current set
Model relacyjny - schemat b. d.
Zespół
nrz nazwa kierownik
Pracownik
nrp nazwisko adres nrz
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
Języki operujące na całych tablicach
(algebra relacji)
(ujęcie poglądowe uproszczone)
Przykład selekcji
A B C
A B C
2
C=2 2
1
!
2
2
Przykład projekcji
A B C A C
ĄAC
!
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
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
Pracownicy
nrp nrt kwota
nrp nazwisko adres nrz
2 2 300
1 Lipowski Ruda 2
3 3 150
2 Grabski Zabrze 1
1 1 150
3 2 200
3 Jaworek Gliwice 1
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
Wyszukiwarka
Podobne podstrony:
BD Wykład 4 11
BD Wykład 5 11
BD Wykład 2 11
BD Wykład 7 11
BD Wykład 6 11
BD Wykład 3 11
BD Wykład 8 11
Wykład 11 stolarka okienna i drzwiowa
WYKŁAD 11
wyklad 11 psychosomatyka
PLC mgr wyklad 11 algorytmy
CHEMIA dla IBM Wyklad 8) 11 2013
Wyklad 11
Wyklad 11 stacj Genetyka i biotechnologie lesne
Stat wyklad2 11 na notatki
(Uzupełniający komentarz do wykładu 11)
wyklad10 11 ME1 EiT
WYKŁAD 11 2
więcej podobnych podstron