1 Bazy Danych WprowadzenieWykład 1 Prowadzący: dr Paweł Drozda
2 Informacje Ogólne 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
3 Program Wykładu Wprowadzenie Relacyjny model danychModelowanie baz danych (diagramy związków encji) Zarządzanie uprawnieniami Język baz danych SQL dr P. Drozda
4 Literatura J. Ullman, J. Widom „Podstawowy wykład z systemów baz danych” 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 – dr P. Drozda
5 Plan Wykładu Podstawowe pojęciaSystem zarządzania bazami danych (DBMS) Właściwości baz danych Modele danych dr P. Drozda
6 Podstawowe pojęcia 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
7 System Baz Danych Aplikacja System Bazy danych DBMS AplikacjaSchemat Baza danych dr P. Drozda
8 System zarządzania bazą danychZapytania Modyfikacja schematu Aktualizacje Procesor zapytań Moduł zarządzania transakcjami Moduł zarządzania pamięcią Dane Metadane dr P. Drozda
9 Cechy SZBD Masywny – możliwość przechowywania TBsTrwały – dane nie znikają Bezpieczny – odporny na awarię Wielu użytkowników – kontrola wielodostępu dr P. Drozda
10 Modele Danych Dla każdego modelu należy określić Definicja danychOperowanie danymi Integralność danych dr P. Drozda
11 Modele danych Modele historyczne (klasyczne) Relacyjny model danychSieciowy Hierarchiczny Relacyjny model danych Obiektowy model danych dr P. Drozda
12 Model Relacyjny
13 Definicja danych 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
14 Cechy relacji jednoznaczna nazwa relacjijednoznaczne 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
15 Przykłady STUDENCI spełnia reguły ZALICZENIA nie spełnia reguł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 Ocena Przedmiot 1234 (1234), (3214) 5 Bazy danych 3211 (3211), (4327) b. dobry nie spełnia reguł dr P. Drozda
16 Definicja danych – klucze głównekaż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
17 Definicja danych 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
18 Przykład STUDENCI Klucz główny Klucz główny ZALICZENIA Klucz obcyNr_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 Klucz główny Klucz główny ZALICZENIA Id_indeksu Ocena Przedmiot 1234 5 Bazy danych 3211 4 3 Matematyka Klucz obcy dr P. Drozda
19 Operowanie danymi 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
20 Selekcja - ograniczenieWydobywa 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
21 Rzut – projekcja (1) ogranicza liczbę atrybutów Przykład: PRACOWNICYPracownik Nazwisko Imię Płaca 1 Stefanek Michał 3000 zł 2 Dębek Jarosław 2340 zł 3 Kowalski Jan 4600 zł dr P. Drozda
22 Rzut (2) Wynik zapytania: SELECT Nazwisko, Płaca from Pracownicyjest następujący: Nazwisko Płaca Stefanek 3000 zł Dębek 2340 zł Kowalski 4600 zł dr P. Drozda
23 Operowanie danymi 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
24 Pozostałe operatory 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
25 Pozostałe operatory Przykład PRACOWNICY KIEROWNICY Nr_prac NazwiskoImię 1 Golał Jan 2 Maser Paweł 3 Jawosz Magda 4 Ferel Michał Nr_prac Nazwisko Imię 1 Golał Jan 6 Resko Regina 7 Janik Tadeusz 9 Rewak Piotr dr P. Drozda
26 Pozostałe operatory Przecięcie Suma Nr_prac Nazwisko Imię 1 Golał Jan2 Maser Paweł 3 Jawosz Magda 4 Ferel Michał 6 Resko Regina 7 Rewak Piotr 9 Janik Tadeusz Nr_prac Nazwisko Imię 1 Golał Jan dr P. Drozda
27 Pozostałe operatory Różnica A-B Różnica A-B Nr_prac Nazwisko Imię 2Maser Paweł 3 Jawosz Magda 4 Ferel Michał Nr_prac Nazwisko Imię 6 Resko Regina 7 Rewak Piotr 9 Janik Tadeusz dr P. Drozda
28 Języki zapytań 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ę 1 Golał Jan 6 Resko Paweł 3 Janik Tadeusz 4 Ferel Michał IdPrzed Przedmiot Prowadzący 2 Bazy danych null 5 Filozofia 4 6 Analiza matematyczna 3 Statystyka dr P. Drozda
29 Języki zapytań SQL select Przedmiot from PRACOWNICY inner join PRZEDMIOTY on PRACOWNICY.Nr_prac = PRZEDMIOTY.Prowadzacy where Nazwisko=‘Janik’; dr P. Drozda
30 Operacje dynamiczne 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 DELETE FROM PRZEDMIOTY WHERE Prowadzący = 3 – usunie krotki dotyczące analizy matematycznej i statystyki dr P. Drozda
31 Operacje dynamiczne 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
32 Integralność danych 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
33 Integralność encji Dotyczy kluczy głównych PRACOWNICYKaż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
34 Integralność referencyjnaDotyczy 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
35 Integralność referencyjnaPrzykład Nr_prac Nazwisko Imię 1 Golał Jan 6 Resko Paweł 3 Janik Tadeusz 4 Ferel Michał IdPrzed Przedmiot Prowadzący 2 Bazy danych null 5 Filozofia 4 6 Analiza matematyczna 3 Statystyka 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
36 Zachowanie integralności referencyjnejOkreś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
37 Zachowanie integralności referencyjnejKaskadowe 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
38 Integralność dodatkowaDefiniowana 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