Bazy danych Wprowadzenie Wyklad dla IV i V roku matematyki
Transkrypt
Bazy danych Wprowadzenie Wyklad dla IV i V roku matematyki
Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki Zbigniew Jurkiewicz, Instytut Informatyki UW 26 lutego 2017 Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki Literatura Podstawowy wykład z systemów baz danych, J.D.Ullman, J.Widom, wyd. WNT Systemy baz danych. Pełny wykład, H.Garcia-Molina, J.D.Ullman, J.Widom, wyd. WNT Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki Systemy informacyjne Komputery obecnie służa˛ przede wszystkim do przechowywania informacji i zarzadzania ˛ nia, ˛ a nie do szybkich obliczeń numerycznych. Duże projekty informatyczne używajace ˛ baz danych to cz˛esto najbardziej złożone przedsiewzi ˛ ecia ˛ podejmowane przez firmy. Przykład: systemy informowania kierownictwa (MIS) moga˛ obejmować: dane finansowe firmy; wyniki badań rynku, materiały marketingowe; informacje o aktualnych i potencjalnych klientach. i wiele innych. Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki Zastosowania baz danych Tradycyjne zastosowania: Obsługa wpłat i wypłat w banku. Rezerwacja biletów lotniczych. Przegladanie ˛ katalogu bibliotek UW w internecie. Zakupy i dostawy w supermarkecie. Kartoteki pracowników (kadry i płace). Ksiegowość ˛ Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki Zastosowania baz danych Obecnie coraz wiecej ˛ innych zastosowań z zupełnie nowymi problemami: Multimedialne bazy danych: obrazy, muzyka, filmy. Geograficzne systemy informacyjne (Geographic Information Systems — GIS). Systemy analizy danych (Online Analytical Processing — OLAP) wykorzystujace ˛ hurtownie danych. Poszukiwanie prawidłowości w danych (data mining). Naukowe i medyczne bazy danych Wyszukiwarki informacji: Google, Amazon itp. Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki Zastosowania baz danych Bazy danych charakteryzuja˛ sie˛ przy tym pewna˛ specyfika: ˛ Ograniczone jezyki ˛ programowania (jedyna dziedzina, gdzie używa sie˛ w praktyce jezyków ˛ programowania o mocy słabszej niż maszyna Turinga) Ale za to specyficzne problemy zwiazane ˛ z optymalizacja˛ wykonania zapytań dla wielkich zbiorów danych; synchronizacja˛ wielu transakcji wykonywanych równocześnie Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki Model danych Matematyczne reprezentacja danych pozwalajaca ˛ opisywać ich własności w sposób ścisły, przykłady: relacje (odpowiadajace ˛ tabelom) w modelu relacyjnym, drzewa lub grafy w modelach semistrukturalnych. Operacje na danych Ograniczenia (wiezy) ˛ zapewniajace ˛ poprawność Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki Przykład relacji (tabeli) Narty model producent Cool Minx Atomic Jewel Cristal Salomon Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki Schemat Schemat relacji = nazwa relacji i lista atrybutów Dodatkowo można podać typy atrybutów Przykłady: Narty(model, producent) Narty(model:string , producent:string) Schemat bazy danych = schematy wszystkich relacji zawartych w bazie danych Baza danych = kolekcja relacji Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki Zalety relacji Bardzo prosty model Cz˛esto intuicyjnie (zwłaszcza wśród biurokratów ;-) pasuje do danych Znane własności matematyczne Stanowi podstawe˛ jezyka ˛ SQL Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki Wiekszy ˛ przykład Narty(model, producent) Wypożyczalnie(nazwa, adres, telefon) Narciarze(nazwisko, adres, telefon) Lubi(narciarz, narty) Wypożycza(wypożyczalnia, narty, cena) Korzysta(narciarz, wypożyczalnia) Podkreśleniem zaznaczamy klucz: atrybut(y) taki, że w żadnych dwóch krotkach tabeli nie może mieć takiej samej wartości Klucz to przykład ograniczenia (wiezów). ˛ Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki Realizacja: pliki System plików Unixa czy Macintosha to bardzo prymitywny rodzaj bazy danych Dane przechowuje sie˛ w nazwanych kawałkach (plikach), nie posiadajacych ˛ żadnej wewnetrznej ˛ struktury. Zalety: prostota zarzadzania ˛ (po prostu jest fragmentem systemu operacyjnego), wystarczy od czasu do czasu zachować kopie˛ archiwalna˛ na CD. Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki Wady plików Załóżmy, że tabele˛ Narciarze zapisaliśmy w osobnym pliku, każdy wiersz w osobnej linii, rozdzielajac ˛ pola na przykład znakiem pionowej kreski (‘|’). Pierwszy kłopot to modyfikacje Jeśli próbujemy zmienić adres jednego z narciarzy, a nowy adres jest dłuższy niż stary, to zamażemy (być może cz˛eściowo) jego telefon. A jeżeli jest dużo dłuższy, to może i nastepny ˛ wiersz. Wniosek: trzeba zapamietać ˛ cała˛ reszte˛ pliku i zapisać na nowo. Jeśli nowy adres bedzie ˛ krótszy niż stary, to z kolei powstanie „dziura”. Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki Wady plików Co sie˛ jednak stanie, gdy dwie osoby równocześnie spróbuja˛ wykonać taka˛ operacje? ˛ Każda z nich zapamieta ˛ dotychczasowa˛ „reszte” ˛ pliku, a nastepnie ˛ obie zaczna˛ wpisywać nowa˛ wartość. Być może obie zmiany wykonaja˛ sie˛ poprawnie. A być może jedna z nich zostanie utracona. Najgorzej bedzie, ˛ gdy wpisywane zmiany zostana przemieszane tak, że żadna z nich nie bedzie ˛ poprawna. Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki Wady plików Potrzebujemy wiec ˛ jakiegoś mechanizmu synchronizacji. Najprościej byłoby użyć blokad: Ten kto pierwszy zaczał˛ modyfikować rezerwuje cały plik tylko dla siebie. Pozostali musza˛ czekać aż skończy. Jest to świetne rozwiazanie, ˛ gdy współbieżność jest niewielka (a najlepiej, gdy wcale jej nie ma ;-) Słabo sprawdza sie˛ jednak w przypadku systemu rezerwacji biletów lotniczych, gdy kilkadziesiat ˛ żada ˛ ń napływa równocześnie. Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki Zalety realizacji w bazie danych Skorzystanie ze specjalizowanego systemu zarzadzania ˛ bazami danych (ang. DBMS od Data Base Management System) ma szereg zalet: Abstrakcja od szczegółów fizycznej implementacji, niezależność programów od danych, zwłaszcza od sposobu ich przechowywania. Komunikacja na poziomie modelu danych: relacje i krotki, z użyciem specjalizowanego jezyka ˛ dostepu ˛ do danych: najcz˛eściej SQL. Opis struktury bazy danych (schemat) także przechowywany w bazie: relacje katalogowe — słownik bazy danych Zawarte w katalogu informacje opisujace ˛ strukture˛ bazy danych nazywa sie˛ metadanymi Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki System zarzadzania ˛ bazami danych Dlatego potrzebujemy wyspecjalizowanego narz˛edzia: systemu zarzadzania ˛ bazami danych (DBMS, od Data Base Management System). W takim systemie baza danych zorganizowana jest inaczej, tak aby ułatwić modyfikacje i współbieżna˛ prace. ˛ Do przyśpieszenia wyszukiwania można tworzyć indeksy. Do synchronizacji zadań wielu użytkowników używa sie˛ mechanizmu transakcji. Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki SQL Specjalizowany jezyk ˛ programowania z konstrukcjami zarówno do definiowania schematu danych, jak i do operowania na zawartości bazy. Definiowanie tabeli CREATE TABLE Narty ( model VARCHAR(20) PRIMARY KEY, producent VARCHAR(20) ); Usuwanie definicji tabeli DROP TABLE Narty; Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki Transakcje — ACID Operacje na bazie danych powinny być wykonywane wewnatrz ˛ transakcji o nastepuj ˛ acych ˛ własnościach: Atomicity czyli niepodzielność: transakcja ma być wykonana w całości albo wcale. Consistency czyli spójność: wykonanie transakcji przeprowadza baz˛e danych z legalnego stanu w (być może inny) legalny stan. Isolation czyli izolacja: gdy dwie transakcje sa˛ wykonywane jednocześnie, ich działania nie moga˛ na siebie wpływać. Durability czyli trwałość: jeśli transakcja zakończy sie˛ pomyślnie, to jej wyniki nie moga˛ zostać utracone, np. z powodu awarii systemu. Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki Role (aktorzy) Administratorzy baz danych (DataBase Administrators — DBA) Projektanci baz danych Użytkownicy doraźni zaawansowani Programiści Analitycy systemów (cz˛esto nazywani administratorami danych). Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki Korzyści Niezależność danych, kontrola nadmiarowości („redundancji”) Wydajny dostep ˛ do danych Poufność, ograniczanie niepowołanego dostepu ˛ Współbieżny dostep ˛ Trwała pamieć ˛ dla obiektów i struktur danych programów Wdrażanie wiezów ˛ integralności Archiwizacja i odtwarzanie po awariach Automatyczne uruchamianie akcji wywoływane zmiana˛ zawartości bazy Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki NoSQL = Not only SQL NoSQL = Not only SQL czyli „Nie samym SQLem...” RBD i SQL to nie magiczne różdżki rozwiazuj ˛ ace ˛ każdy problem — to tylko narz˛edzia, które nie zawsze pasuja˛ do rozwiazywanego ˛ problemu. Relacyjny model danych przewidziano od obsługi danych strukturalnych, o predefiniowanym, kompletnym schemacie (w postaci tabel wierszy). Wiele z danych używanych obecnie nie pasuje (z różnych powodów) do przyjetych ˛ założeń, zwłaszcza ze wzgledu ˛ na brak sztywnej struktury. Swoja˛ popularność relacyjne bazy danych zawdzieczaj ˛ a˛ uniwersalności. Zapytania sa˛ elastyczne — nie trzeba szczegółowo planować specjalnej struktury bazy danych zależnie od konkretnej aplikacji. Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki NoSQL Model kolumnowy: Każda˛ kolumne˛ „tabeli” przechowujemy osobno. Bazy danych z tej rodzina˛ obsługuja˛ olbrzymie ilości danych. Przykłady: Google Big Table, Apache Cassandra, HBase. Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki NoSQL Pamieci ˛ klucz-wartość: Dane przechowywane sa˛ w postaci odzworowań reprezentowanych parami klucz-wartość. Taka forma bazy danych bardzo dobrze pasuje do aplikacji z szybko zmieniajacymi ˛ sie˛ danymi, jak notowania giełdowe. Przykłady: Amazon Dynamo, Riak, Redis. Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki NoSQL Bazy dokumentów: Termin o szerokim znaczeniu. Baza dokumentów zawiera kolekcje par klucz-wartość umieszczone wewnatrz ˛ dokumentów. Jak wskazuje nazwa, dobra do gromadzenia i udostepniania ˛ dokumentów, brak nacisku na transakcje i trwałość podczas modyfikacji. Przykłady: MongoDB, CouchDB. Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki NoSQL Grafowe bazy danych: Zawieraja˛ wierzchołki i powiazania ˛ miedzy ˛ wierzchołkami. Wierzchołki moga dodatkowo zawierać własności klucz-wartość. Zwykle brak schematu, budowana ad-hoc, dobra do danych o zmiennej postaci. Dostep ˛ do informacji przez przechodzenie grafu. Zapytanie ma postać opisu przejścia — nawigacji od wierzchołków poczatkowych ˛ poprzez powiazane ˛ wierzchołki zgodnie z odpowiednim algorithmem. Przykłady: Neo4j, AllegroGraph. Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Wprowadzenie Wykład dla IV i V roku matematyki