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} AB 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 BA Związek wiele do jednego Związek odwrotny do AB 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