35
Bazy Danych Wykład 1 S. Kozielski

Bazy Danych

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

Page 1: Bazy Danych

Bazy Danych

Wykład 1

S. Kozielski

Page 2: Bazy Danych

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

Page 3: Bazy 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 

Page 4: Bazy Danych

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.

Page 5: Bazy Danych

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

Page 6: Bazy Danych

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

Page 7: Bazy 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.

Page 8: Bazy Danych

Opis wybranego fragmentu rzeczywistości

nazwisko adres

kwota

kierownik

Pracownik

kierowniknazwanrt

Temat

należy

Zespół

nazwa

wykonuje

N

1

M N

Page 9: Bazy Danych

Przykładowe pytania

Z1: nazwisko nazwa tematu

Które tematy (nazwa) wykonuje zadany pracownik?

Z2: nazwa tematu nazwisko

Kto (nazwisko) wykonuje zadany temat?

Page 10: Bazy Danych

Model hierarchiczny - schemat b. d.

nazwa kierownik

Zespół

nazwisko adres

Pracownik

nrt nazwa kierownik kwota

Zadanie

Page 11: Bazy Danych

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

Page 12: Bazy Danych

Język DL/I

get leftmost <rekord> [where <warunek>]

get next <rekord> [where <warunek>]

get next within parent <rekord> [where <warunek>]

Page 13: Bazy Danych

Model sieciowy - schemat b. d.

nazwa kierownik

Zespół

nazwisko adres

Pracownik

nrt nazwa kierownik

kwota

Temat

Wypłata

Page 14: Bazy Danych

Model sieciowy – wystąpienia rekordów

150 150200300200

P1 P2 P3

Z1

T2T1 T3

B B B

A

C C C

Page 15: Bazy Danych

Język DML

find <rekord> record by key <zmienna>

find next <rekord> record in current <kolekcja> set

find owner of current <kolekcja> set

Page 16: Bazy Danych

Model relacyjny - schemat b. d.

nazwisko adres

Pracownik

nrt nazwa kierownik

Temat

nazwa kierownik

Zespół

nrz

nrp

kwota

Wypłata

nrtnrp

Page 17: Bazy Danych

Zespoły

nrz nazwa kierownik

1 Zespół Analiz 2

2 Zespół Wdrożeń 1

Page 18: Bazy Danych

Pracownicy

nrp nazwisko adres nrz

1 Lipowski Ruda Śląska 2

2 Grabski Zabrze 1

3 Jaworek Gliwice 1

Page 19: Bazy Danych

Tematy

nrt nazwa kierownik

1 Projekt zasilacza 2

2 Projekt przetwornika 1

3 Projekt reaktora 2

Page 20: Bazy Danych

Wypłaty

nrp nrt kwota

2 2 300

3 3 150

1 1 150

3 2 200

1 3 200

Page 21: Bazy Danych

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)

Page 22: Bazy Danych

Języki operujące na pojedynczych rekordach (wierszach tablicy)

get next record from <tablica>

Page 23: Bazy Danych

Języki operujące na całych tablicach (algebra relacji)

(ujęcie poglądowe – uproszczone)

Page 24: Bazy Danych

Przykład selekcji

A B C

2

1

2

C=2

A B C

2

2

Page 25: Bazy Danych

Przykład projekcji

A B C

A C

AC

Page 26: Bazy Danych

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

Page 27: Bazy Danych

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

Page 28: Bazy Danych

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

Page 29: Bazy Danych

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

Page 30: Bazy Danych

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

Page 31: Bazy Danych

nazwa (nazwisko = ‘Jaworek’ (Pracownicy Wypłaty Tematy))

nazwa

Pr. reaktora

Pr. przetwor.

Page 32: Bazy Danych

Pytanie Z1 jako wyrażenie algebry relacji

Z1 = nazwa (nazwisko = ‘Jaworek’ (Pracownicy Wypłaty Tematy))

Page 33: Bazy Danych

Pytanie Z2 jako wyrażenie algebry relacji

Z2 = nazwisko (nazwa = ‘Pr. reaktora’ (Pracownicy Wypłaty Tematy))

Page 34: Bazy Danych

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’

Page 35: Bazy Danych

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’