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

Podobne dokumenty