Bazy danych

advertisement
Bazy danych
1.Wiadomości wstępne
P. F. Góra
http://th-www.if.uj.edu.pl/zfs/gora/
semestr letni 2007/08
Literatura
1.
2.
3.
4.
5.
6.
J. D. Ullman, J. Widom, Podstawowy wykład z
systemów baz danych
http://www-db.stanford.edu/~ullman/fcdb.html
D. Tow, SQL. Optymalizacja
K. Kline, D. Kline, SQL. Almanach. Opis poleceń
języka
H. Garcia-Molina, J. D. Ullman, J. Widom,
Implementacja systemów baz danych
L. Atkinson. Core MySQL. Przewodnik
zaawansowanego programisty
R. Stones, N. Matthew, Bazy danych i MySql
Bazy danych - wykład 1
2
Informacja dostępna w Internecie
• http://www.mysql.org/
• http://www.oracle.com/
• http://google.com/
– (ponad 3 000 000 linków do sql tutorial)
• http://sqlzoo.net/
• grupa Usenet news:pl.comp.bazy-danych
• 1001 innych miejsc
Bazy danych - wykład 1
3
Cel wykładu:
Projektowanie baz danych
Nauka SQL
Bazy danych - wykład 1
4
Plan wykładu
Wiadomości wstępne. Ogólna charakterystyka problematyki
baz danych. Architektura klient-serwer. Przykłady.
Terminologia.
O projektowaniu - ogólnie
Model relacyjny.
Algebra relacji.
Postacie normalne. Normalizacja i denormalizacja.
SQL - standard(y), najpopularniejsze implementacje.
Podstawowe instrukcje SQL.
SQL - złączenia.
Transakcje ACID.
Fizyczna implementacja baz. Drzewa indeksów. Selektywność
filtrów.
Optymalizacja złączeń.
Bazy danych - wykład 1
5
Baza danych:
Duża kolekcja danych odpowiednio
zorganizowana w celu szybkiego
przeszukiwania i dostępu do informacji
uzyskiwanego za pomocą komputera.
Bazy danych - wykład 1
6
Architektura klient-serwer
serwer
Pamięć drugiego poziomu: dyski,
macierze dyskowe, czas dostępu
~milisekund
Pamięć trzeciego poziomu: CD,
DVD, …?, czas dostępu ~sekund
Bazy danych - wykład 1
klienty
7
• przesyłanie danych – najkosztowniejsze
• wbudowywanie tych samych funkcjonalności do
różnych aplikacji – niepewne
–
–
–
–
więcej możliwości popełnienia błedów
różne systemy
różni programiści
niepewna dokumentacja
Całą strukturę i wszystkie więzy
umieszczamy bezpośrednio w
bazie, nie w aplikacji
Jak najwięcej operacji wykonujemy „po
stronie serwera”
Oczywiście są wyjątki
Bazy danych - wykład 1
8
Aplikacje bazodanowe
(niesłusznie) utożsamiane z
(Graficznymi) Interfejsami Użytkownika
(GUI)
Języki programowania:
Java
PHP
C/C++
Cobol
VisualBasic
Perl
Python
Fortran
Projektowanie formatek
Bazy danych - wykład 1
9
Typowe systemy baz danych
• Baza danych oparta na systemie plików
– Przy realizacji programu Apollo (konieczność montażu
milionów części) stworzono system oparty na systemie
plików, który śledził status każdego podzespołu.
Wkótce okazało się, że informacja jest powtarzana w
dwu lub więcej plikach…
• Hierarchiczna baza danych (każdy rekord ma dokładnie
jeden rekord nadrzędny)
Bazy danych - wykład 1
10
Edgar F. Codd (IBM), 1970: „Relacyjny model danych dla
dużych, współużytkowanych banków informacji”
Relacyjny model baz danych
RDBMS (Relational DataBase Management
System)
Obiektowe bazy danych (ODBMS)
Zalety:
Dowolne typy danych
Bardzo wydajne przy złożonych
powiązaniach między danymi
Można tworzyć nowe metody dla
danych nietekstowych.
> 1TB=1012 B
Wada: Ścisły związek pomiędzy
danymi a językiem programowania
Obiektowo-relacyjne bazy danych (ORDBMS)
Bazy danych - wykład 1
Przyszłość?
11
Główne funkcje DBMS
• Umożliwienie utworzenia nowej bazy
i określenie jej schematu
• Przechowywanie danych
• Obsługa zapytań (ang. query)
• Zapewnienie wielodostępności
• Ochrona i zapewnienie integralności
danych
Bazy danych - wykład 1
12
Modyfikacje
schematu
Zapytania
Aktualizacje
Procesor
zapytań
Moduł zarządzania
transakcjami
Moduł zarządzania
pamięcią
Dane
Metadane
Główne elementy
systemu DBMS
Bazy danych - wykład 1
13
• Zapytania — pytania o dane.
• Aktualizacje — operacje zmiany danych.
• Modyfikacje schematu — zmienia schemat bazy
danych, dodaje kolumny do tabel, dodaje
indeksy etc, tworzy nowe bazy. Wymaga
uprawnień administracyjnych.
Wszystko to przetwarza procesor zapytań.
Bazy danych - wykład 1
14
• Projektant systemów DBMS
• Administrator baz danych
• Projektant baz danych
• Programista baz danych
• Projektant/programista aplikacji
bazodanowych
• Użytkownik systemów baz danych
Bazy danych - wykład 1
15
Caveat emptor!
• Bazy danych są cenne i trzeba je chronić.
• Bazy danych wymagają konserwacji i
administracji.
• DBMS jest potencjalnym kanałem, przez
który cracker może włamać się do
systemu.
• Bazy danych wymagają regularnego
sporządzania kopii zapasowych (backup).
Bazy danych - wykład 1
16
Zanim zaczniemy modelować
Analiza danych rzeczywistych
To jest trudne!
z uwagi na problemy w komunikacji z użytkownikiem
Bazy danych - wykład 1
17
Ignacy
Janowski
17.03.1936
Stanisław
M
nazwa
klasy
Osoba
Imię
Nazwisko
DataUr.
Imię ojca
Płeć
Karol
Janowski
23.11.1957
Ignacy
M
atrybuty
Ludwik
Janowski
03.02.1983
Karol
M
Patrycja
Janowska
07.01.2005
K
Ludwik
Bazy danych - wykład 1
18
Encja
(entity):
Imię
Nazwisko
Osoba
Płeć
DataUr
Bazy danych - wykład 1
19
Związki między obiektami
jedna żona
mąż
Anna
Janowska
11.07.1958
K
żona
syn
matka
Nie ma gwarancji, że
związek „matka”
wskaże na kobietę
ojciec
syn
ojciec
syn
Ludwik
Janowski
03.02.1983
M
Karol
Janowski
23.11.1957
M
syn
jeden mąż
jeden ojciec
jedna matka
niekoniecznie jeden syn
syn dwu osób
…
matka
brat
Jerzy
Janowski
18.08.1985
M
Mnóstwo relacji, straszny bałagan!
Bazy danych - wykład 1
20
Liczebność (multiplicity) związków
• Wiele do wielu
• Jeden do wielu
• Wiele do jednego
• Jeden do jednego
Bazy danych - wykład 1
21
Związek jeden do jednego
A = {x1,x2,x3,x4}
Elementy w żadnej
kolumnie nie
powtarzają się
B={y1,y2,y3,y4,y5}
A B
Nie wszystkie
elementy muszą
występować
x1 y3
x2 y1
x4 y2
Bazy danych - wykład 1
Ale gdyby element x3
wystąpił, mógły się łączyć
tylko z elementem y nie
pojawiającym się gdzie
indziej
22
Związek jeden do wielu
Związek wiele do jednego
A = {x1,x2,x3,x4} B={y1,y2,y3,y4,y5}
AB
Związek jeden do wielu
Interface A{
…
relationship Set<B> R1
inverse B::R2;
};
Interface B{
…
relationship A R2
inverse A::R1;
};
A
x1
x1
x2
x4
x4
Bazy danych - wykład 1
B
y2
y3
y1
y4
y5
BA
Związek wiele do jednego
Związek odwrotny do AB
23
Związek wiele do wielu
A = {x1,x2,x3,x4} B={y1,y2,y3,y4,y5}
Interface A{
…
relationship Set<B> R1
inverse B::R2;
};
Interface B{
…
relationship Set<A> R2
inverse A::R1;
};
A
x1
x1
x2
x2
x2
x3
x4
x4
Bazy danych - wykład 1
B
y2
y3
y1
y2
y5
y1
y2
y5
24
Diagramy związków encji (E/R)
tytuł
rok
Filmy
długość
nazwisko
Gwiazdy-w
adres
Gwiazdy
Atrybuty
TypTaśmy
Związki
Posiada
nazwa
Studia
Strzałka pokazuje kierunek związku wiele do jednego
(wiele filmów jest własnością jednego studia,
Encje
ale jeden film może być własnością tylko jednego studia
Bazy danych - wykład 1
adres
25
Pracownik
Używa
Narzędzia
Jeden pracownik może używać różnych zestawów narzędzi.
Jeden zestaw narzędzi może być używany przez różnych
pracowników.
Bazy danych - wykład 1
26
Pracownik
Używa
Narzędzia
Jeden pracownik może używać różnych zestawów narzędzi.
Jeden zestaw narzędzi może być używany tylko przez jednego
pracownika.
Bazy danych - wykład 1
27
Pracownik
Używa
Narzędzia
Jeden pracownik może używać tylko jednego zestawu narzędzi.
Jeden zestaw narzędzi może być używany przez wielu
pracowników.
Bazy danych - wykład 1
28
Pracownik
Używa
Narzędzia
Jeden pracownik może używać tylko jednego zestawu narzędzi.
Jeden zestaw narzędzi może być używany tylko przez jednego
pracownika.
Bazy danych - wykład 1
29
Osoba — diagram E/R
matka
ojciec
Osoba
małżonek
potomstwo
Bazy danych - wykład 1
30
Diagramy E/R dopuszczają
związki wieloargumentowe
Filmy
Kontrakty
Gwiazdy
Studia
Bazy danych - wykład 1
31
Inny przykład o takiej samej
strukturze
Dostawca
Dostawa
Transport
Magazyn
Co oznacza strzałka?
Dostawca i transport
jednoznacznie identyfikują
miejsce, do którego trafia
dostawa.
Bazy danych - wykład 1
32
W diagramach E/R związki mogą
mieć swoje atrybuty
tytuł
rok
Wynagrodzenie
Filmy
długość
Kontrakty
nazwisko
adres
Gwiazdy
TypTaśmy
Studia
nazwa
adres
Bazy danych - wykład 1
33
Czteroargumentowy związek
z atrybutami
tytuł
rok
Wynagrodzenie
Filmy
długość
Studio
producenta
Kontrakty
nazwisko
adres
Gwiazdy
TypTaśmy
Studia
nazwa
adres
Bazy danych - wykład 1
Studio
gwiazdy
34
Atrybuty związków zastępujemy
dodatkowymi zbiorami encji
Wynagrodzenie
tytuł
Gaże
rok
Filmy
długość
nazwisko
Kontrakty
adres
Gwiazdy
TypTaśmy
Film wyznacza
jednoznaczne
Studio producenta
Kombinacja
Filmu i
Gwiazda
wyznacza
Gwiazdy
wyznacza
jednoznaczne
jednoznaczną
Gażę
Studio gwiazdy
Studia
nazwa
adres
Bazy danych - wykład 1
35
Związki wieloargumentowe można zastąpić
dodatkowymi zbiorami encji i związkami
dwuargumentowymi
Gwiazdy
Zbiór encji Kontrakty
nie ma atrybutów, ma
same związki
Filmy
Film-w
Gwiazda-czego
Kontrakty
Jaka-gaża
Studio-prod.
Studio-gwiazdy
Studia
Może zbiór encji Gaże
wcale nie jest potrzebny?
Bazy danych - wykład 1
Gaże
Wynagrodzenie
36
Zbiór encji Kontrakty ma
jeden atrybut i wchodzi w
cztery związki
dwuargumentowe
Gwiazdy
Filmy
Film-w
Gwiazda-czego
Kontrakty
Studio-gwiazdy
Wynagrodzenie
Studio-prod.
Studia
Zbiór encji powstały z rozbicia związku wieloargumentowego na
relacje binarne nazywa się zbiorem łączącym.
Odpowiednią tabelę nazywa się tabelą pomostową.
Bazy danych - wykład 1
37
Download