Bazy Danych Wprowadzenie

advertisement
Wykład 1
Prowadzący: dr Paweł Drozda
Kontakt:
- [email protected]
- wmii.uwm.edu.pl/~pdrozda
- Słoneczna 54, pokój E 0/5
Zaliczenie przedmiotu:
- Projekt podczas ostatnich zajęć
dr P. Drozda
 Wprowadzenie
 Relacyjny model danych
 Modelowanie baz danych (diagramy związków
encji)
 Zarządzanie uprawnieniami
 Język baz danych SQL
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
 Masywny – możliwość przechowywania TBs
 Trwały – dane nie znikają
 Bezpieczny – odporny na awarię
 Wielu użytkowników – kontrola wielodostępu
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
 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
 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