BAZY DANYCH Wykłady dla studentów Wydziału Matematyki i Informatyki UAM Dr inż. Anna Stachowiak aniap@amu.edu.pl B4-27
Wprowadzenie
Plan wykładu Informacje organizacyjne Przegląd poruszanych zagadnień na przedmiocie Bazy danych Pojęcie bazy danych Rola systemu zarządzania bazą danych
Informacje organizacyjne Przedmiot Bazy Danych obejmuje: wykład zakończony egzaminem laboratoria Kontakt i materiały: Anna Stachowiak pokój B4-27 aniap@amu.edu.pl https://git.wmi.amu.edu.pl/ania/bazy-danych
Informacje organizacyjne c.d. Literatura H. Garcia-Molina, J. D. Ullman, J. Widom, " Systemy baz danych. Kompletny podręcznik. Wydanie II ", Helion 2011 R. Elmasri, S. B. Navathe "Wprowadzenie do systemów baz danych", Helion 2005 C. J. Date Wprowadzenie do systemów baz danych, WNT 2000 M. Lis, SQL. Ćwiczenia praktyczne", Helion 2011 Itzik Ben-Gan "Microsoft SQL Server 2012. Optymalizacja kwerend T-SQL przy użyciu funkcji okna" Joe Celko "SQL zaawansowane techniki programowania" Dan Tow "SQL. Optymalizacja" Inne źródła: http://wazniak.mimuw.edu.pl http://www.sqlservercentral.com/ www.sqlpedia.pl https://docs.microsoft.com/
Motywacja Harvard Business Review (10/2012): Data Scientist is the sexiest job of the 21st century. https://hbr.org/2012/10/ data-scientist-the-sexiest-job-of-the-21st-century Data Scientist Data Researcher Data Developer Data Architect Database Administrator Data Engineer Data Analyst Data Modeler Data Steward Data Officer
Motywacja
Skąd się biorą i czym są dane Dane wszystko, co może być przetwarzane umysłowo/komputerowo Zalew danych 3 miliony maili na sekundę 15 milionów aukcji na Allegro
Cel od danych do wiedzy Składowanie danych Przetwarzanie danych Statystyka Algorytmy eksploracji danych Wizualizacja danych i raportowanie
Dane informacja wiedza mądrość 559 Dane fakty: liczby, znaki, obrazy, dźwięki,
Dane informacja wiedza mądrość 559 - cena butów [zł] Informacja + interpretacja 559 Dane fakty: liczby, znaki, obrazy, dźwięki,
Dane informacja wiedza mądrość drogo! Wiedza + doświadczenie 559 - cena butów [zł] Informacja + interpretacja 559 Dane fakty: liczby, znaki, obrazy, dźwięki,
Dane informacja wiedza mądrość poczekam na przecenę Mądrość + wykorzystanie drogo! Wiedza + doświadczenie 559 - cena butów [zł] Informacja + interpretacja 559 Dane fakty: liczby, znaki, obrazy, dźwięki,
Dane informacja wiedza mądrość poczekam na przecenę drogo! Mądrość + wykorzystanie Wiedza + doświadczenie c z ł o w i e k 559 - cena butów [zł] 559 Informacja + interpretacja Dane fakty: liczby, znaki, obrazy, dźwięki, k o m p u t e r
Plan przedmiotu Bazy danych Aplikacje bazodanowe Współbieżny dostęp użytkowników Transakcje ACID Autoryzacja SQL Język SQL select pesel, nazwisko from Kursanci where adres = 1 Optymalizacja zapytań SQL Organizacja fizyczna Indeksy Strojenie bazy danych Odporność na awarie Model relacyjny Kursanci Adresy Normalizacja Projektowanie koncepcyjne Diagramy ER pesel nazwisko kursant id adres miasto wojewodztwo
Czym jest baza danych Baza danych - zbiór danych zapisanych zgodnie z określonymi regułami Baza danych zatem: odzwierciedla fragment świata rzeczywistego, ma określone znaczenie zawiera spójny i trwały zbiór danych ma określony cel i odbiorców jest zorganizowana zgodnie w wybranym modelem baza danych = dane + schemat
Baza danych c.d. Każda baza danych posiada: źródło danych użytkowników zainteresowanych jej zawartością związek z reprezentowaną rzeczywistością
Schemat i stan bazy danych Schemat bazy danych to opis bazy danych: struktura rekordów, typy danych, związki, ograniczenia; nie zmienia się często Stan bazy danych to informacje przechowywane w bazie danych w konkretnym momencie czasu
Czy sama baza danych wystarczy? Użytkownik bazy danych chciałby:
Czy sama baza danych wystarczy? Użytkownik bazy danych chciałby: przechowywać dużą liczbę danych tworzyć i uwzględniać powiązania między danymi szybko uzyskiwać różnorodną informację kontrolować poprawność wprowadzanych danych udostępniać dane innym osobom zapewnić danym bezpieczeństwo
System zarządzania bazą danych System zarządzania bazą danych (SZBD) (Database Management System DBMS) jest zbiorem programów umożliwiających tworzenie i utrzymywanie bazy danych SZBD = dane + schemat + programy
System zarządzania bazą danych Zadania SZBD: definiowanie bazy danych: określanie typów i i struktury danych oraz ograniczeń, wspomaganie procesu projektowania i utrzymywania bazy danych konstruowanie bazy danych: fizyczne zapamiętanie danych na nośniku obsługiwanym przez SZBD manipulowanie bazą danych: generowanie (optymalnych) zapytań do bazy, uaktualnianie danych udostępnianie bazy danych: umożliwia operowanie na danych wielu użytkownikom (współbieżność); zapewnienie spójności danych; odporność na błędy i anomalie (transakcje) ochrona bazy danych: ochrona systemowa (odporność na awarie) i zabezpieczenia (autoryzacja dostępu) udostępnianie metadanych: dane o danych, strukturach dostępu, użytkownikach i ich prawach konserwowanie bazy danych
SZBD w systemie informatycznym
Model danych Obiekty ze świata rzeczywistego są reprezentowane w bazie danych za pomocą tzw. modelu danych. Przykłady modeli danych: Hierarchiczny Sieciowy Relacyjny Obiektowy Obiektowo-relacyjny Semistrukturalny (XML)
Przykłady Model hierarchiczny Model sieciowy
Przykłady Model relacyjny
Przykłady
Przykłady
Przykłady XML <XML> <projekt id="10" nazwa="e-learning"> <stawka>100</stawka> <kierownik> "Różycka" </kierownik> <pracownicy> <pracownik nazwisko="różycka" stanowisko="profesor"></pracownik> <pracownik nazwisko="andrzejewicz" stanowisko="adiunkt"></pracownik> <pracownik nazwisko="wróbel" stanowisko="techniczny"></pracownik> </pracownicy> </projekt> <projekt id="20" nazwa="web service"> <stawka>90</stawka> <pracownicy> <pracownik nazwisko="mielcarz" stanowisko="profesor"></pracownik> <pracownik nazwisko="mikołajski" stanowisko="doktorant"></pracownik> <pracownik nazwisko="wróbel" stanowisko="techniczny"></pracownik> </pracownicy> </projekt> </XML>
Przykłady JSON { } "projekt":[ {"id": 10, "nazwa": "e-learning", "stawka": 100, "kierownik": "Różycka", "pracownicy":[ {"nazwisko": "Różycka", "stanowisko": "profesor"}, {"nazwisko": "Andrzejewicz", "stanowisko": "adiunkt"}, {"nazwisko": "Wróbel", "stanowisko": "techniczny"}, ]}, {"id": 20, "nazwa": "web service", "stawka": 90, "pracownicy":[ {"nazwisko": "Mielcarz", "stanowisko": "profesor"}, {"nazwisko": "Mikołajski", "stanowisko": "doktorant"}, {"nazwisko": "Wróbel", "stanowisko": "techniczny"}, ]} ]
Model danych c.d. Trzy podstawowe elementy modelu danych: struktura danych np. w modelu relacyjnym - relacja język opisu danych DDL i język manipulowania danymi DML np. w modelu relacyjnym selekcja, projekcja, złączenie, operacje mnogościowe ograniczenia integralnościowe nakładane na dane np. w modelu relacyjnym klucze podstawowe i obce
Języki baz danych DDL (Data Definition Language) język definicji danych SDL (Storage Definition Language) język definicji składowania VDL (View Definition Language) język definicji perspektyw DML (Data Manipulation Language) język manipulowania danymi DCL (Data Control Language) język kontroli danych Przykład: SQL
Przyszłość? Big Data SQL + NoSQL (Polybase, Splice Machine) In-memory Rozproszone Analityczne Real-time Kolumnowe?
Wybrane relacyjne systemy bazodanowe Produkty komercyjne: Oracle (9i, 10g, 11g) IBM: DB2 (Express-C), Informix Microsoft SQL Server Sybase: Adaptive Server Enterprise, SQL Anywhere Produkty niekomercyjne: MySQL PostgreSQL Firebird
Relacyjny model danych
Relacyjny model danych Relacyjny model danych został po raz pierwszy wprowadzony w 1970 roku przez Teda Codda Opiera się na pojęciu matematycznej relacji schemat relacji: R(A1, A2,..., An) składa się z nazwy relacji R i listy jej atrybutów: A1, A2,..., An dla każdego atrybutu określany jest zbiór dopuszczalnych wartości, zwany dziedziną atrybutu relacja (stan relacji) jest zbiorem n-krotek porządek krotek w relacji nie ma znaczenia (relacja jest zbiorem)
Relacyjny model danych Struktura danych Tabela (relacja) Operacje na danych język SQL Integralność danych klucz podstawowy (primary key) klucz obcy (foreign key) unikalność (unique) zawężenie dziedziny (check) wartość pusta/niepusta (null/not null) 37
Elementy modelu relacyjnego Relacja (tabela) Model relacyjny oparty jest na matematycznym pojęciu relacji (podzbiór iloczynu kartezjańskiego skończonej liczby zbiorów), np.: KLIENCI PESEL IMIĘ NAZWISKO MIASTO KLIENCI pesel imię nazwisko miasto 78020806063 Karol Nowak Poznań 88021816060 Joanna Malińska Kraków 81120811163 Renata Kowal Poznań spoza relacji KLIENCI: 11122233344 John Malkovich Christopher 38
Elementy modelu relacyjnego Relacja (tabela) zbiór informacji tego samego typu może reprezentować zarówno byt jak związek nazwa relacji powinna ułatwiać interpretację zawartych w niej danych KLIENCI pesel imię nazwisko miasto 78020806063 Karol Nowak Poznań 88021816060 Joanna Malińska Kraków 81120811163 Renata Kowal Poznań 39
Elementy modelu relacyjnego Krotka (wiersz, rekord) przechowuje listę powiązanych ze sobą danych reprezentujących jeden określony byt każda wartość w krotce jest atomowa (pojedyncza); może być też wartością pustą, reprezentującą wartość nieznaną, nieistotną lub niedostępną kolejność krotek nie ma znaczenia (relacja jest zbiorem!) KLIENCI pesel imię nazwisko miasto 78020806063 Karol Nowak Poznań 88021816060 Joanna Malińska Kraków 81120811163 Renata Kowal Poznań 40
Elementy modelu relacyjnego Atrybut (kolumna) nazwa pojedynczego typu danych, określonego dziedziną nazwy atrybutów muszą być unikalne dziedzina definiuje zbiór wartości, jaki może przyjmować atrybut KLIENCI pesel imię nazwisko miasto 78020806063 Karol Nowak Poznań 88021816060 Joanna Malińska Kraków 81120811163 Renata Kowal Poznań 41
Elementy modelu relacyjnego Klucz podstawowy (główny) PRIMARY KEY atrybut (lub zbiór atrybutów) jednoznacznie identyfikujący każdą krotkę przykłady: adres e-mail, NIP, PESEL, nr dowodu, nr projektu, kod towaru KLIENCI pesel imię nazwisko miasto 78020806063 Karol Nowak Poznań 88021816060 Joanna Malińska Kraków 81120811163 Renata Kowal Poznań 42
Elementy modelu relacyjnego Klucz obcy FOREIGN KEY KLIENCI atrybut (lub zbiór atrybutów), który wskazuje na klucz podstawowy tej samej lub innej relacji służy do reprezentowania powiązań między danymi (łączenia relacji) pesel imię nazwisko adres 75010106222 Tomasz Górski Poznań 78020806063 Karol Nowak Poznań 81120811163 Renata Kowal Poznań 88021816060 Joanna Malińska Kraków 80120811199 Maciej Zięba Kraków 90101022233 Aneta Romanowska Olkusz ZAMÓWIENIA idzam idkli Data_zam Data_realiz Wartosc 12345566 75010106222 2015-10-10 2015-10-12 920,00 10203040 80120811199 2015-10-10 2015-10-12 130,00 23242385 75010106222 2015-12-01 2015-12-10 200,00
Elementy modelu relacyjnego unikalność (UNIQUE) atrybut unikalny wartości nie powtarzają się; mogą mieć wartość NULL zawężenie dziedziny (CHECK) wartości przyjmowane przez atrybut są zawężone do zbioru lub przedziału na przykład: dzień tygodnia: poniedziałek, wtorek, środa, czwartek, piątek; temperatura <-100, +100> wartość pusta/niepusta (NULL/NOT NULL) 44
Zapamiętaj Jakie są zadania systemu baz danych Jakie są podstawowe elementy modelu relacyjnego
Ćwiczenia Jakie widzisz zalety stosowania modelu relacyjnego? Porównaj: Model relacyjny KLIENCI pesel imię nazwisko adres 75010106222 Tomasz Górski Poznań 78020806063 Karol Nowak Poznań 81120811163 Renata Kowal Poznań 88021816060 Joanna Malińska Kraków 80120811199 Maciej Zięba Kraków 90101022233 Aneta Romanowska Olkusz ZAMÓWIENIA idzam idkli Data_zam Data_realiz Wartosc 12345566 75010106222 2015-10-10 2015-10-12 920,00 10203040 80120811199 2015-10-10 2015-10-12 130,00 23242385 75010106222 2015-12-01 2015-12-10 200,00 Arkusz danych
Ćwiczenia c.d. Do relacji KLIENCI ZAMÓWIENIA dodaj tabelę PRODUKTY z informacją o zamówionym produkcie; zaproponuj klucz podstawowy tej relacji i ew. inne ograniczenia integralnościowe Jak połączyć ZAMOWIENIA z PRODUKTAMI?