530 likes | 672 Views
Bazy Danych Wprowadzenie. Wykład 1 Prowadzący: dr Paweł Drozda. Informacje Ogólne. Konsultacje wtorek 12:30 – 14:00 Dyżur wtorek 11:00 – 12:30 Zaliczenie ćwiczeń Projekt bazy danych ( MySQL lub Oracle). Program Wykładu. Wprowadzenie Relacyjny model danych
E N D
Bazy DanychWprowadzenie Wykład 1 Prowadzący: dr Paweł Drozda
Informacje Ogólne • Konsultacje wtorek 12:30 – 14:00 • Dyżur wtorek 11:00 – 12:30 • Zaliczenie ćwiczeń • Projekt bazy danych (MySQL lub Oracle) dr P. Drozda
Program Wykładu • 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
Literatura • 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
Plan Wykładu • Podstawowe pojęcia • System zarządzania bazami danych (DBMS) • Właściwości baz danych • Modele danych dr P. Drozda
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
System Baz Danych Aplikacja System Bazy danych DBMS Aplikacja Aplikacja Schemat Baza danych dr P. Drozda
System zarządzania bazą danych (1) Zapytania Modyfikacja schematu Aktualizacje Procesor zapytań Moduł zarządzania transakcjami Moduł zarządzania pamięcią Dane Metadane dr P. Drozda
System zarządzania bazą danych (2) • Moduł zarządzania pamięcią • 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
System zarządzania bazą danych (3) • Procesor zapytań • 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 • 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
Cechy SZBD • Masywny – możliwość przechowywania TBs • Trwały – dane nie znikają • Bezpieczny – odporny na awarię • Wielu użytkowników – kontrola wielodostępu dr P. Drozda
Cechy SZBD • 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
Właściwości bazy danych (1) • 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
Właściwości bazy danych (2) • 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
Modele Danych • Dla każdego modelu należy określić • Definicja danych • Operowanie danymi • Integralność danych dr P. Drozda
Modele danych • Modele historyczne (klasyczne) • Sieciowy • Hierarchiczny • Relacyjny model danych • Obiektowy model danych dr P. Drozda
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
Cechy relacji • 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
Przykłady STUDENCI spełnia reguły ZALICZENIA nie spełnia reguł dr P. Drozda
Definicja danych – klucze główne • 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
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
Przykład STUDENCI Klucz główny Klucz główny ZALICZENIA Klucz obcy dr P. Drozda
Ćwiczenie • 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
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
Selekcja - ograniczenie Wydobywa wszystkie informacje z relacji z interesującymi użytkownika danymi – nie bierze pod uwagę wszystkich krotek Przykład: SQL: SELECT * FROM STUDENCI whereimię=‘Jan’; Wynikiem powyższych zapytań jest relacja dr P. Drozda
Rzut – projekcja (1) • ogranicza liczbę atrybutów • Przykład: PRACOWNICY dr P. Drozda
Rzut (2) • Wynik zapytania: SELECT Nazwisko, Płaca from Pracownicy • jest następujący: dr P. Drozda
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
Iloczyn kartezjański • Powstaje poprzez połączenie dwóch relacji w jedną zawierającą wszystkie możliwe kombinacje wierszy tabel wejściowych • Przykład dr P. Drozda
Iloczyn kartezjański • Cd przykładu: relacja wynikowa dr P. Drozda
Równozłączenie • 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 dr P. Drozda
Równozłączenie • cd przykładu: tabela wynikowa dr P. Drozda
Złączenie naturalne • Podobne do równozłączenia – usuwa jedną z kolumn po której relacje są łączone • Dla poprzedniego przykładu tabel wynikowa dr P. Drozda
Złączenia zewnętrzne • Stosowane gdy zachowane mają zostać wszystkie wiersze jednej lub drugiej relacji (nawet gdy nie występują odpowiedniki w obu relacjach) dr P. Drozda
Złączenie lewostronne • Zachowuje nie pasujące wiersze z relacji będącej pierwszym argumentem złączenia • Wynik złączenia dla przykładu z poprzedniego slajdu dr P. Drozda
Złączenie prawostronne • Zachowuje nie pasujące wiersze z relacji będącej drugim argumentem złączenia • Wynik złączenia dr P. Drozda
Złączenie obustronne • Zachowuje nie pasujące wiersze z obydwu relacji • Wynik złączenia dr P. Drozda
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
Pozostałe operatory • Przykład PRACOWNICY KIEROWNICY dr P. Drozda
Pozostałe operatory Suma Przecięcie dr P. Drozda
Pozostałe operatory Różnica A-B Różnica A-B dr P. Drozda
Języki zapytań • składanie operatorów w celu wydobycia informacji z bazy danych • Przykład – znaleźć wszystkie przedmioty prowadzone przez Janika PRACOWNICY PRZEDMIOTY dr P. Drozda
Języki zapytań • SQL select Przedmiot from PRACOWNICY innerjoin PRZEDMIOTY on PRACOWNICY.Nr_prac = PRZEDMIOTY.ProwadzacywhereNazwisko=‘Janik’; dr P. Drozda
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 • Przykład DELETE FROM PRZEDMIOTY WHERE Prowadzący = 3 – usunie krotki dotyczące analizy matematycznej i statystyki dr P. Drozda
Operacje dynamiczne • UPDATE tabela SET nazwaKolumny = wartoscWHERE 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 • 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
Integralność encji • 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 dr P. Drozda
Integralność referencyjna • 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
Integralność referencyjna • Przykład Integralność referencyjna zachowana, jeśli są dopuszczane wartości null kluczaobcego (klucze obce mogą należeć do zbioru {1,3,4,6}) dr P. Drozda