Czym jest baza danych? Dane = znane fakty. Baza danych to zbiór powiązanych ze sobą danych, które można w jakiś sposób zarejestrować i które mają konkretne znaczenie. Przykład: książka adresowa. Jan Kowalski posiada książkę adresową znajomych. Książka ta zawiera następujące informacje o znajomych: imię, nazwisko, adres, numer telefonu. Ponadto znajomi są uporządkowanie wg kolejności alfabetycznej nazwisk. Książka adresowa może mieć postać zeszytu lub pliku exel. Jest to bez wątpienia zbiór powiązanych ze sobą danych.
Czym jest baza danych? Podana definicja jest zbyt ogólna, np.: powyższy slajd jest zbiorem powiązanych ze sobą słów, a zatem należałoby go potraktować jako bazę danych. Pojęcie bazy danych należy uszczegółowić. Od bazy danych oczekuje się następujących własności: opisuje jakiś wybrany aspekt świata rzeczywistego nazywany mini-światem lub dziedziną problemu, jest logicznie spójnym zbiorem danych tzn. spełnia ograniczenia nałożone na dane, jest projektowana, konstruowana i wypełniana danymi w określonym celu, do bazy danych powinna być przypisana grupa użytkowników.
System zarządzania bazą danych System zarządzania bazą danych(szbd) jest zbiorem programów organizujący dane w bazie. Od SZBD oczekuje się: umożliwienia użytkownikowi utworzenia nowej bazy danych i określanie jej schematu za pomocą języka definiowania danych(data-definition language), udostępnienia użytkownikowi możliwości tworzenia zapytań o dane oraz aktualizowania danych za pomocą języka zapytań (query language) lub języka operowania danymi (data-manipulation language), możliwości przechowywania olbrzymiej ilości danych przez długi czas, chroniąc je przed przypadkowym i niepowołanym dostępem, sterowanie jednoczesnym dostępem do danych przez wielu użytkowników z zapewnieniem bezkolizyjności i ochrony przed przypadkowym uszkodzeniem danych.
Wszechobecność baz danych odgrywają kluczową rolę w życiu codziennym współczenego społeczeństwa. Tradycyjne zastosowanie baz danych(bazy danych numerycznych i tekstowch): systemy bankowe: wpłata wypłata pieniędzy, bankomaty, przelewy online, rezerwacja pokoi hotelowych, rezerwacje biletów lotniczych, katalog biblioteczny, sklepy internetowe, markety- system aktualizuje informacje o stanie towaru w sklepie w trakcie robienia zakupów.
Wszechobecność baz danych Współczesne zastosowania baz danych: multimedialne b.d. przechowują zdjęcia, filmy, utwory muzyczne, systemy GIS system przechowujący dane geograficzne: mapy, zdjęcia satelitarne. Dane powiązane z punktami czy też innymi obiektami, dla których znane są współrzędne geograficzne, hurtownie danych i systemy OLAP pozwalają odkrywać wiedzę ukrytą w olbrzymich bazach danych a przez to wspomagać proces decyzyjny.
Przykład: system rezerwacji miejsc lotniczych Wymaga się, żeby: możliwa była rezerwacja na dany rejs dla konkretnego klienta obejmująca numer fotela, dostępne były informacje dotyczące rejsu: miejsce odlotu, port przeznaczenia, czas odlotu, czas przylotu, typ samolotu, była informacja o dostępności biletów i wariantach cen. Chcemy, żeby system zapewniał: możliwość wykonania zapytań o rejsy między wskazanymi portami w określonym czasie, dostępności i cenach odpowiednich miejsc, aktualizacje dotyczące rezerwacji rejsu klienta, przydzielenia miejsca, dostępność dla wielu agentów w jednym czasie, ochronę systemu przed pomyłką wynikającą z rezerwacji jednego miejsca przez więcej niż jednego klienta, ochronę danych przed utratą w przypadku usterki systemu.
Przykład: system bankowy Jakie dane są ważne: imię, nazwisko, adres, dane autoryzacyjne klienta, konta, kredyty, bilans na koncie, powiązanie kont i kredytów z klientami. Chcemy, żeby system zapewniał: możliwość wykonania zapytań o bilans na koncie, o wypływach i wypłatach z konta, aktualizacje wpłat i wypłat, ochronę systemu przed błędami!!! ochronę danych przed utratą w przypadku usterki systemu. W systemie bankowym nie ma miejsca na pomyłki!!!
Rys historyczny Pierwsze profesjonalne systemy zarządzania bazami danych pojawiły się pod koniec lat sześćdziesiątych. Początkowo były to system oparte na zwykłych systemach plików. Mankamentem była trudność w szybkim dostępie do danych oraz ryzyko ich utraty. System ten nie dostarczał możliwości wykonywania zapytań. Problem był również z jednoczesną pracą kilku użytkowników modyfikujących te same dane- tylko zmiany jednego z nich miały odzwierciedlenie w pliku. W pierwszych systemach zarządzania bazą danych dominowały dwa modele danych: hierarchiczny(drzewiasty) i sieciowy(grafowy). Systemy te nie dawały możliwości korzystania z języku zapytań wysokiego poziomu. Przez to napisanie programu obsługującego nawet proste zapytanie było bardzo skomplikowane.
Rys historyczny 1970rok-TedCodd-RELACYJNYMODELDANYCH. Dane reprezentowane są w postaci TABEL(relacji)- czytelnych dla użytkownika. Wewnątrz systemu istnieje złożona struktura danych, pozwalająca błyskawicznie wykonywać różnego rodzaju zapytania. Użytkownik nic nie musi wiedzieć o wewnętrznej strukturze danych, operuje jedynie wysokopoziomowym językiem zapytań.
Składowe SZBD
Moduł zarządzania pamięcią Zadaniem modułu zarządzania pamięcią jest wybieranie właściwych danych z pamięci i w razie potrzeby dostosowanie ich do wymagań modułów z wyższych poziomów. Składa się z dwóch części: moduł zarządzania plikami przechowuje informacje o miejscu zapisania plików na dysku i przekazuje zawartość bloku lub bloków, gdzie zapisany jest żądany plik modułowi zarządzania buforami, moduł zarządzania buforami obsługuje pamięć operacyjną, blokom przekazanym przez moduł zarządzania pamięcią przydziela obszar pamięci operacyjnej.
Moduł przetwarzania zapytań Obsługuje nie tylko zapytania, ale również aktualizacje danych czy też metadanych. Zadaniem tego modułu jest znalezienie optymalnego sposobu wykonania zadanych operacji i wydanie poleceń do modułu zarządzania pamięcią. Najtrudniejszym zadaniem, które musi wykonać ten moduł jest optymalizacja zapytań, tak żeby czas dostępu do danych był najkrótszy. W praktyce wyszukiwanie przyspieszają znacząco indeksy.
Moduł zarządzania transakcjami Moduł zarządzania transakcjami odpowiada za spójność systemu. Musi zagwarantować, że kilka jednocześnie przetwarzanych zapytań nie będzie sobie wzajemnie przeszkadzać oraz że żadne dane nie zostaną utracone, nawet na wypadek awarii systemu. Współpracuje z modułem zarządzania zapytaniami musi mieć na bieżąco informację o danych na których przetwarzane są zapytania, często przetwarzanie będzie musiało zostać opóźnione, żeby nie powstał konflikt. Poprawność przeprowadzania transakcji opisują właściwości ACID. niepodzielność(atomicity), spójność(consistency), izolacja(isolation), trwałość(durability).
Wejścia Mamy trzy wejścia do systemu zarządzania bazą danych: Zapytania czyli pytania o dane. Można je wykonywać na dwa sposoby: przez system zapytań bezpośrednich wbudowany w SZBD, przez interfejsy programów użytkownika typowy SZBD udostępnia możliwość realizacji zapytań na danych zarządzanych przez przez niego z poziomu aplikacji użytkownika, aktualizacje operacje zmiany danych, modyfikacje schematu czynności związane ze zmianą schema tu bazy danych wykonuje administrator bazy danych.
Jak transakcje to ACID Niepodzielność(atomicity) transakcja zostanie przeprowadzona albo żadne jej polecenie nie zostanie uwzględnione. W trakcie wypłaty pieniędzy z bankomatu, nie może być sytuacji że wypłata zostanie zapisana a pieniądze nie zostaną wypłacone. spójność(consistency) baz danych musi zapewniać oczekiwaną spójność danych. Np. dla linii lotniczych warunek spójności określa, że jedno miejsce w samolocie nie zostanie przydzielone dwom rożnym pasażerom. izolacja(isolation) dwie transakcje przetwarzane jednocześnie nie mogą na siebie wzajemnie wpływać. Jeśli dwie agencjesprzedająbiletynatensamrejsapozostałtylkojedenbilettotylko żądanie jedne z nich powinno zostać obsłużone, a drugie nie. trwałość(durability) jeśli transakcja zostanie zakończona to nawet w sytuacji awarii systemu wynik transakcji nie może zostać utracony.
Konsekwencje ACID Blokady równoczesne wykonywanie transakcji powoduje, że dwie transakcje mogą wykonać jednocześnie modyfikację tych samych danych. Wówczas zmiany pierwszej transakcji zostaną zniszczone zmianami drugiej. Dlatego moduł zarządzania transakcjami potrafi blokować elementy podlegające transakcji. Mechanizm zadziała w taki sposób, że dane zostaną zablokowane dla jednej transakcji i wówczas inne transakcje nie będą miały do nich dostępu. Dopiero po zakończeniu pierwszej transakcji druga uzyska dostęp, ale już do nowych wartości danych, jeśli te zostały zmienione. Logi moduł zarządzania transakcjami dokumentuje wszystkie operacje związane z transakcjami w logach przechowywanych w pamięci stałej(na dysku). Transakcje są przetwarzane w pamięci operacyjnej ale logi o nich na bieżąco są zapisywane na dysku. Logi zapewniają trwałość systemu. Zatwierdzanie transakcji transakcje przetwarzane są w pamięci operacyjnej, po zatwierdzeniu transakcji najpierw na dysku zapisuje się logi a potem dopiero następuje aktualizacja danych. Dzięki logom można sprawdzić, które operacje jeśli nie zostały nawet zapisane należy powtórzyć(w przypadku awarii systemu).
Architektura klient- serwer Większość systemów baz danych oparta jest na architekturze klient-serwer. Na serwerze znajduje się SZBD, do którego dostęp posiada wielu użytkowników- klientów. Po stronie klienta znajduje się aplikacja stanowiąca interfejs graficzny użytkownika, umożliwiający w czytelny sposób interpretację danych zawartych w bazie. We współczesnych rozwiązaniach systemowych często mamy do czynienia z architekturą trójwarstwowym pomiędzy klienta i serwer bazy danych dodatkowo dodany zostaje jeszcze jeden element a mianowicie serwer WWW. W tego typu rozwiązaniach najczęściej interfejsem użytkownika jest strona internetowa generowana w obrębie serwera www.