Bazy Danych Wprowadzenie

advertisement
Wykład 1
Prowadzący: dr Paweł Drozda
 Konsultacje
wtorek 12:30 – 14:00
 Dyżur
wtorek 11:00 – 12:30
 Zaliczenie ćwiczeń
 Projekt bazy danych (MySQL lub Oracle)
dr P. Drozda
 Wprowadzenie
 Relacyjny model danych
 Modelowanie baz danych (diagramy związków encji)
 Przekształcanie modelu związków encji do modelu relacyjnego
 Normalizacja
 Język baz danych SQL
 Transakcje, Indeksy
 Zarządzanie uprawnieniami
 Wyzwalacze
dr P. Drozda
 J. Ullman, J. Widom „Podstawowy wykład z systemów baz danych”
 http://wazniak.mimuw.edu.pl
 P. Beynon-Davies „Systemy baz danych”
 L. Banachowski „Bazy Danych – Tworzenie Aplikacji”
 Conolly, Begg „Systemy Baz Danych”
 Date „Wprowadzenie do Systemów Baz Danych”
 Wykłady Stanford University – www.coursera.org
dr P. Drozda
 Podstawowe pojęcia
 System zarządzania bazami danych (DBMS)
 Właściwości baz danych
 Modele danych
dr P. Drozda
 Baza danych – zbiór informacji opisujący wybrany fragment




rzeczywistości. Np. Dla sklepu: dane dotyczące sprzedawanych towarów w
sklepie, klientów sklepu, pracowników, zamówień
Schemat baz danych – określa w jaka powinna być struktura danych oraz
w jaki sposób dane są powiązane
System zarządzania bazą danych (DBMS) – zbiór narzędzi pozwalający
na dostęp oraz na zarządzanie jedną lub wieloma bazami danych
System baz danych – baza danych + DBMS
Model danych – zbiór ogólnych zasad posługiwania się danymi
dr P. Drozda
System Baz Danych
Aplikacja
System
Bazy danych
DBMS
Aplikacja
Aplikacja
Schemat
Baza
danych
dr P. Drozda
Modyfikacja
schematu
Zapytania
Aktualizacje
Procesor
zapytań
Moduł zarządzania
transakcjami
Moduł zarządzania
pamięcią
Dane
Metadane
dr P. Drozda

Moduł zarządzania pamięcią
o
o
przechowuje dane o miejscu zapisania plików bazy
danych na dysku
Obsługuje pamięć operacyjną (obsługiwane bloki z
dysku przydzielane do pamięci operacyjnej)
dr P. Drozda

Procesor zapytań
o

Przekształca zapytanie lub operację na bazie danych
(wyrażone np. w SQL) w ciąg poleceń żądających
określonych danych
Moduł zarządzania transakcjami
o
Gwarantuje poprawność i kompletność wykonania
wszystkich transakcji (jedno lub więcej zapytań
stanowiące grupę zadań do wykonania w jednym
ciągu)
dr P. Drozda
 Masywny – możliwość przechowywania TBs
 Trwały – dane nie znikają
 Bezpieczny – odporny na awarię
 Wielu użytkowników – kontrola wielodostępu
dr P. Drozda
 Wygodny – niezależny od danych, wysokopoziomowy
język dostępu do danych
 Efektywny – nawet tysiące zapytań na sekundę
 Niezawodny – ponad 99% dostępności
dr P. Drozda
 Współdzielenie danych – wielu użytkowników tej
samej bazy
 Integracja danych – baza nie powinna mieć
powtarzających się bądź zbędnych danych
 Integralność danych – dokładne odzwierciedlenie
obszaru analizy
 Trwałość danych – dane przechowywane przez pewien
czas
dr P. Drozda
 Bezpieczeństwo danych – dostęp do bazy lub jej części
przez upoważnionych użytkowników
 Abstrakcja danych – dane opisują tylko istotne aspekty
obiektów świata rzeczywistego
 Niezależność danych – dane niezależnie od aplikacji
wykorzystujących te dane
dr P. Drozda
 Dla każdego modelu należy określić
 Definicja danych
 Operowanie danymi
 Integralność danych
dr P. Drozda
 Modele historyczne (klasyczne)
o Sieciowy
o Hierarchiczny
 Relacyjny model danych
 Obiektowy model danych
dr P. Drozda
 Relacja – dwuwymiarowa tabela, jedyna struktura
danych w modelu relacyjnym
 Każda relacja posiada atrybuty – kolumny. Opisują
dane umieszczane w relacji
 Schemat relacji – nazwa relacji wraz z atrybutami
Przykład schematu: Miasto (id, nazwa, id_regionu)
 Krotki – wiersze relacji zawierające dane. Każdy
atrybut ma swój odpowiednik w krotce
dr P. Drozda
 jednoznaczna nazwa relacji
 jednoznaczne nazwy kolumn (atrybutów) relacji
 ten sam typ wartości w jednej kolumnie
 porządek kolumn w relacji nieistotny
 niedozwolone powtórzenia wierszy
 nieistotny porządek wierszy (krotek)
 wartości atomowe w polach relacji
dr P. Drozda
STUDENCI
Nr_indeksu
Nazwisko
Imię
Adres
1234
Kowalski
Jan
Akacjowa 8
2134
Nowak
Piotr
Dębowa 4
4321
Maliniak
Stefan
Bukowa 4
3298
Grabowska
Janina
Brzozowa 1
spełnia reguły
ZALICZENIA
Id_indeksu Id_indeksu
Ocena
Przedmiot
1234
(1234), (3214)
5
Bazy danych
3211
(3211), (4327)
b. dobry
Bazy danych
3211
(3211), (4327)
b. dobry
Bazy danych
dr P. Drozda
nie spełnia reguł
 każda relacja musi posiadać klucz główny
 jedna lub więcej kolumn identyfikujących jednoznacznie
każdy wiersz tabeli
 Klucz kandydujący – atrybut lub zbiór atrybutów
identyfikujących wiersze tabeli (musi być jednoznaczny i
nie zawierać wartości null)
 Klucz główny wybierany spośród kluczy kandydujących
dr P. Drozda
 Dziedzina – zbiór wszystkich możliwych wystąpień
atrybutu (np. ocena_z_egzaminu wartości od 2 do 5 –
dziedzina 2-5) – każdy atrybut posiada dziedzinę
 Klucz obcy – kolumna bądź kolumny będące kluczem
głównym w innej tabeli, sposób łączenia tabel (np.
numer studenta w tabeli Studenci i w tabeli
Zaliczenia)
 Wartość null – nieznana informacja (np. brak numeru
telefonu)
dr P. Drozda
STUDENCI
Nr_indeksu
Nazwisko
Imię
Adres
Klucz
1234
Kowalski
Jan
Akacjowa 8
główny
2134
Nowak
Piotr
Dębowa 4
4321
Maliniak
Stefan
Bukowa 4
3298
Grabowska
Janina
Brzozowa 1
Klucz główny
ZALICZENIA
Id_indeksu Ocena
Przedmiot
Klucz
1234
5
Bazy danych
obcy
3211
4
Bazy danych
3211
3
Matematyka
dr P. Drozda
Nr_indeksu
Nazwisko
Imię
Adres
1234
Kowalski
Jan
Akacjowa 8
2134
Nowak
Piotr
Dębowa 4
4321
Maliniak
Stefan
Bukowa 4
3298
Grabowska
Janina
Brzozowa 1
Dla






danej relacji określ:
Atrybuty
Krotki
Składowe jednej krotki
Schemat relacji
Dziedzina dla każdego atrybutu
Inny równoważny sposób przedstawienia relacji
dr P. Drozda
 Algebra relacyjna – zbiór sześciu operatorów do
wyszukiwania danych (selekcja, rzut, złączenie, suma,
przecięcie, różnica)
 Operacje dynamiczne na relacjach
 INSERT – wstawianie
 DELETE – usuwanie
 UPDATE – modyfikowanie
dr P. Drozda
 Wydobywa wszystkie informacje z relacji z interesującymi
użytkownika danymi – nie bierze pod uwagę wszystkich
krotek
 Przykład:
SQL: SELECT * FROM STUDENCI where imię=‘Jan’;
Wynikiem powyższych zapytań jest relacja
Nr_indeksu
Nazwisko
Imię
Adres
1234
Kowalski
Jan
Akacjowa 8
dr P. Drozda
 ogranicza liczbę
atrybutów
 Przykład:
PRACOWNICY
Pracownik
Nazwisko
Imię
Płaca
1
Stefanek
Michał
3000 zł
2
Dębek
Jarosław
2340 zł
3
Kowalski
Jan
4600 zł
dr P. Drozda
 Wynik zapytania:
SELECT Nazwisko, Płaca from Pracownicy
 jest następujący:
Nazwisko
Płaca
Stefanek
3000 zł
Dębek
2340 zł
Kowalski
4600 zł
dr P. Drozda
 Złączenia – oparte na relacyjnym operatorze iloczynu
kartezjańskiego
 Typy złączeń




Iloczyn kartezjański
Równozłączenie
Złączenie naturalne
Złączenia zewnętrzne
 Lewostronne złączenie zewnętrzne
 Prawostronne złączenie zewnętrzne
 Obustronne złączenie zewnętrzne
dr P. Drozda
 Powstaje poprzez połączenie dwóch relacji w jedną
zawierającą wszystkie możliwe kombinacje wierszy
tabel wejściowych
 Przykład
Nr_indeksu
Nazwisko
Imię
nr_indeksu
Ocena
1234
Kowalski
Jan
3214
2
6587
Małek
Michał
1234
5
1243
Nowak
Piotr
dr P. Drozda
 Cd przykładu: relacja wynikowa
Nr_indeksu
Nazwisko
Imię
nr_indeksu
Ocena
1234
Kowalski
Jan
3214
2
6587
Małek
Michał
3214
2
1243
Nowak
Piotr
3214
2
1234
Kowalski
Jan
1234
5
6587
Małek
Michał
1234
5
1243
Nowak
Piotr
1234
5
dr P. Drozda
 Iloczyn kartezjański dla którego dokonana jest
selekcja poprzez wybór wierszy dla których wartość
kluczy podstawowego i obcego są takie same
 Przykład
Nr_indeksu
Nazwisko
Imię
nr_indeksu
Przedmiot
Ocena
1234
Kowalski
Jan
6587
Bazy danych
2
6587
Małek
Michał
1243
Filozofia
4
1243
Nowak
Piotr
1243
Bazy danych
3
1234
Statystyka
5
dr P. Drozda
 cd przykładu: tabela wynikowa
Nr_indeksu
Nazwisko
Imię
nr_indeksu
Przedmiot
Ocena
1234
Kowalski
Jan
1234
Statystyka
5
6587
Małek
Michał
6587
Bazy danych
2
1243
Nowak
Piotr
1243
Filozofia
4
1243
Nowak
Piotr
1243
Bazy danych
3
dr P. Drozda
 Podobne do równozłączenia – usuwa jedną z kolumn
po której relacje są łączone
 Dla poprzedniego przykładu tabel wynikowa
Nr_indeksu
Nazwisko
Imię
Przedmiot
Ocena
1234
Kowalski
Jan
Statystyka
5
6587
Małek
Micha
ł
Bazy danych
2
1243
Nowak
Piotr
Filozofia
4
1243
Nowak
Piotr
Bazy danych
3
dr P. Drozda
 Stosowane gdy zachowane mają zostać wszystkie
wiersze jednej lub drugiej relacji (nawet gdy nie
występują odpowiedniki w obu relacjach)
Nr_prac
Nazwisko
Imię
1
Golał
Jan
6
Resko
Paweł
3
Janik
Tadeusz
4
Ferel
Michał
IdPrzed
Przedmiot
Prowadząc
y
2
Bazy danych
null
5
Filozofia
4
6
Analiza matematyczna
3
3
Statystyka
3
dr P. Drozda
 Zachowuje nie pasujące wiersze z relacji będącej
pierwszym argumentem złączenia
 Wynik złączenia dla przykładu z poprzedniego slajdu
Nr_prac
Nazwisko
Imię
IdPrzed
Przedmiot
Prowadząc
y
1
Golał
Jan
null
null
null
6
Resko
Paweł
null
null
null
3
Janik
Tadeusz
6
Analiza matematyczna
3
3
Janik
Tadeusz
3
Statystyka
3
4
Ferel
Michał
5
Filozofia
4
dr P. Drozda
 Zachowuje nie pasujące wiersze z relacji będącej
drugim argumentem złączenia
 Wynik złączenia
Nr_prac
Nazwisko
Imię
IdPrzed
Przedmiot
Prowadząc
y
null
null
null
2
Bazy danych
null
3
Janik
Tadeusz
6
Analiza matematyczna
3
3
Janik
Tadeusz
3
Statystyka
3
4
Ferel
Michał
5
Filozofia
4
dr P. Drozda
 Zachowuje nie pasujące wiersze z obydwu relacji
 Wynik złączenia
Nr_prac
Nazwisko
Imię
IdPrzed
Przedmiot
Prowadząc
y
null
null
null
2
Bazy danych
null
3
Janik
Tadeusz
6
Analiza matematyczna
3
3
Janik
Tadeusz
3
Statystyka
3
4
Ferel
Michał
5
Filozofia
4
1
Golał
Jan
null
null
1
6
Resko
Paweł
null
null
6
dr P. Drozda
 stosowane dla zgodnych relacji
- ta sama liczba argumentów w relacjach, ta sama
dziedzina dla odpowiadających argumentów
 analogicznie do algebry zbiorów
dr P. Drozda
 Przykład
PRACOWNICY
KIEROWNICY
Nr_prac
Nazwisko
Imię
Nr_prac
Nazwisko
Imię
1
Golał
Jan
1
Golał
Jan
2
Maser
Paweł
6
Resko
Regina
3
Jawosz
Magda
7
Janik
Tadeusz
4
Ferel
Michał
9
Rewak
Piotr
dr P. Drozda
Przecięcie
Suma
Nr_prac
Nazwisko
Imię
Nr_prac
Nazwisko
Imię
1
Golał
Jan
1
Golał
Jan
2
Maser
Paweł
3
Jawosz
Magda
4
Ferel
Michał
6
Resko
Regina
7
Rewak
Piotr
9
Janik
Tadeusz
dr P. Drozda
Różnica A-B
Różnica A-B
Nr_prac
Nazwisko
Imię
Nr_prac
Nazwisko
Imię
2
Maser
Paweł
6
Resko
Regina
3
Jawosz
Magda
7
Rewak
Piotr
4
Ferel
Michał
9
Janik
Tadeusz
dr P. Drozda
 składanie operatorów w celu wydobycia informacji z
bazy danych
 Przykład – znaleźć wszystkie przedmioty prowadzone
przez Janika
PRACOWNICY
PRZEDMIOTY
Nr_prac
Nazwisko
Imię
IdPrzed
Przedmiot
Prowadząc
y
1
Golał
Jan
2
Bazy danych
null
6
Resko
Paweł
5
Filozofia
4
3
Janik
Tadeusz
6
Analiza matematyczna
3
4
Ferel
Michał
3
Statystyka
3
dr P. Drozda
 SQL
select Przedmiot from PRACOWNICY inner join PRZEDMIOTY
on PRACOWNICY.Nr_prac = PRZEDMIOTY.Prowadzacy where
Nazwisko=‘Janik’;
dr P. Drozda
 INSERT INTO tabela VALUES (wart1, wart2, …) –
wstawia do tabeli wartości wart1, wart2, …
 Przykład
INSERT INTO PRACOWNICY VALUES (10, ‘Banach’, ‘Jacek’)
spowoduje dodanie wiersza do relacji PRACOWNICY
 DELETE FROM tabela WHERE warunek – usuwa z
tabeli krotki określone w warunku
 Przykład
DELETE FROM PRZEDMIOTY WHERE Prowadzący = 3 –
usunie krotki dotyczące analizy matematycznej i statystyki
dr P. Drozda
 UPDATE tabela SET nazwaKolumny = wartosc
WHERE warunek – zmienia w krotkach określonych w
warunku kolumnę nazwaKolumny na podaną wartość
 Przykład
UPDATE PRZEDMIOTY SET prowadzący=1 WHERE
prowadzący=3– zmienia prowadzącego przedmiotów
analiza matematyczna i statystyka
dr P. Drozda
 Integralność danych zapewnia dokładne odbicie
rzeczywistości w bazie danych
 W modelu relacyjnym istnieją dwa rodzaje
integralności wewnętrznej
 integralność encji
 integralność referencyjna
dr P. Drozda
 Dotyczy kluczy głównych
 Każda relacja musi mieć klucz główny
 Klucz główny musi być jednoznaczny i nie może zawierać wartości null (co skutkuje
jednoznacznością krotek w relacji)
 Przykład
kluczem głównym w
tej relacji może być
Nr_prac, nazwisko lub imię
PRACOWNICY
Nr_prac
Nazwisko
Imię
1
Golał
Jan
2
Resko
Paweł
3
Janik
Tadeusz
4
Ferel
Michał
dr P. Drozda
 Dotyczy kluczy obcych
 dwie możliwości (w zależności od konkretnej bazy
danych)
- Wartość klucza obcego musi odwoływać się do
wartości klucza głównego w tabeli w bazie danych
- Wartość klucza obcego może być null
- Wymuszenie istnienia odniesienia każdego
wiersza – parametr not null
dr P. Drozda
 Przykład
Nr_prac
Nazwisko
Imię
IdPrzed
Przedmiot
Prowadząc
y
1
Golał
Jan
2
Bazy danych
null
6
Resko
Paweł
5
Filozofia
4
3
Janik
Tadeusz
6
Analiza matematyczna
3
4
Ferel
Michał
3
Statystyka
3
Integralność referencyjna zachowana, jeśli są dopuszczane
wartości null klucza obcego (klucze obce mogą należeć do zbioru
{1,3,4,6})
dr P. Drozda
 Określenie więzów propagacji – określają co ma się
stać z tabelą przy modyfikacji powiązanej tabeli
 Ograniczone usuwanie – usunięcie krotki z kluczem głównym
możliwe w momencie, gdy klucz główny nie ma wystąpień
jako klucz obcy
Dla poprzedniego przykładu – z tabeli pracownicy można
usunąć pracowników o numerach 1 i 6. Pozostali mogą zostać
usunięci dopiero w momencie gdy zostaną usunięte
odpowiednie krotki w powiązanej tabeli
dr P. Drozda
 Kaskadowe usuwanie
Przy usunięciu wiersza z kluczem głównym zostają usunięte
wszystkie wiersze z tym kluczem z relacji powiązanej
Jeśli usuniemy z tabeli PRACOWNICY pracownika o numerze 3
– zostaną usunięte Przedmioty o numerach 6 i 3 z tabeli
PRZEDMIOTY
 Wstaw null – przy usunięciu krotki z kluczem głównym
zostają wstawione wartości null zamiast klucza obcego
 Wstaw default – przy usuwaniu wstawia wartość domyślną
dr P. Drozda
 Definiowana przez użytkownika – specyficzna dla każdej
bazy danych
 Przykład
Możemy wymusić, że każdy pracownik musi prowadzić jakieś
zajęcia
dr P. Drozda
Download