1.Wstęp Systemy zarządzania bazami danych Prezentacja danych Modele danych DDL – język definiowania danych DML – język do manipulacji danymi Zarządzanie transakcjami Zarządzanie składowaniem danych Użytkownicy bazy danych Aplikacje jedno, dwu i wielowarstwowe
DBMS – System zarządzania bazą danych Zbiorem wzajemnie powiązanych danych DBMS – System zarządzania bazą danych Zbiór wzajemnie powiązanych danych Zestaw programów pozwalających na dostęp do danych Zbiór reguły biznesowych Wygodny i efektywny dostęp do danych Systemy bazodanowe mają szeroki zakres zastosowań: bankowość zarządzanie przedsiębiorstwami transport, rezerwacja biletów lotniczych handel internetowy
Dlaczego tworzymy DBMS ? Wcześniejsze rozwiązania były oparte o system plików Niedogodności używania systemu plików do przechowywania danych: Redundancja (nadmiarowość) i niespójność danych Wiele formatów danych, powielanie informacji w wielu z nich Trudności z dostępem do danych W zasadzie trzeba pisać osobne programy dostępu do różnych danych Izolacja danych – dane w oddzielnych niezależnych plikach Problemy z zachowaniem integralnością danych Np. testowanie warunku (Ilość >= 0) spoczywa na aplikacji klienta Trudno dodać nową kontrolę oraz modyfikować istniejące
Dlaczego tworzymy DBMS ? (cd.) Niedogodności używania systemu plików do przechowywania danych (cd): Atomizacja – niezależność aktualizacji Awaria systemu może spowodować niespójność danych, Np. pieniądze mogą być pobrane z jednego rachunku a nie być dopisane do innego Problem z jednoczesnym dostępem wielu użytkowników Kilka osób modyfikujących te same dane może powodować niespójność Trudności z zapewnieniem bezpieczeństwa danych DBMS zapewniają możliwość rozwiązywania tych problemów wość
3. Selekcja danych i obliczenia Serwer plików 3. Selekcja danych i obliczenia 1. Prośba o dane Serwer plików Klient 1 2. Przekazanie danych Klient 2 4. Wykonanie zmian
2. Selekcja danych i obliczenia Baza z DBMS 1. Prośba o dane Klient 1 Serwer aplikacji (SQL) 3. Przekazanie wyniku Klient 2
Poziomy abstrakcji Poziom fizyczny – zapis danych na dysku Poziom logiczny – opis struktury danych i związki między nimi type record nr_albumu : integer; nazwisko : string; imię : string; rok_rekrutacji : integer; end; Poziom prezentacji danych – programy aplikacyjne prezentujące w przyjazny sposób jedne dane, a ukrywające inne (np.. z powodów bezpieczeństwa)
Poziomy abstrakcji (cd) Poziom prezentacji Perspektywa Widok 1 Perspektywa Widok 2 Perspektywa Widok N Pozim logiczny Poziom fizyczny
Instancje i schematy Związek jak między zmienną i jej typem w językach programowania SCHEMAT – logiczna struktura bazy danych INSTANCJA – bieżąca zawartość bazy danych w określonym momencie czasowym Analogicznie jak z wartością zmiennej Niezależność struktury fizycznej – Możliwość zmian w sposobie fizycznego przechowywania danych bez konieczności zmian schematu bazy Pamiętajmy, że działanie zależy od schematu logicznego
Modele danych Zespół narzędzi i metod opisujących: dane związki między danymi reguły syntaktyczne więzi integralności Model związków encji (ER-model; Entity-Relationship) Model relacyjny Inne modele np.: Zorientowany obiektowo Starsze: sieciowy i hierarchiczny
Model związków encji (ER-model; Entity-Relationship) Nazwisko Ocena Rok_rekrutacji Nr_albumu Symbol Zdał Student Egzamin
Model związków encji (c.d.) E-R jest modelem próbującym odzwierciedlać świat rzeczywisty Encje (obiekty) Np. Egzamin, Student, Indeks Relacje między encjami Np. student-zdaje-egzamin, Np. Egzamin-jest wpisany-indeks Model szeroko stosowany w projektowaniu baz danych Model jest zwykle konwertowany do modelu relacyjnego. Są narzędzia do automatyzacji tego procesu.
Model relacyjny Przykład danych tabelarycznych w modelu relacyjnym
DDL – język definiowania danych Specyfikacja składni poleceń pozwalających na tworzenie schematu bazy Np. create table student ( nr_albumu : integer, nazwisko : char( 30 ), imię : char( 30 ), rok_rekrutacji : integer ) DDL generuje zbiór informacji zapisanych w słowniku Słownik danych zawiera metadane (tj. dane o danych) schemat bazy danych
DML – język manipulacji danymi Język pozwalający na dostęp do i modyfikację danych zorganizowanych zgodnie z modelem DML jest znany również jako język zapytań Dwie klasy języków Proceduralne – to użytkownik wskazuje jakich danch chce użyć i jak je uzyskać Nieproceduralne – użytkownik wskazuje jakie dane chce uzyskać bez wskazywania jak SQL jest najczęściej stosowanym językiem zapytań
SQL SQL jest szeroko stosowanym nieproceduralnym językiem zapytań Np. wyszukanie kontrahenta o symbolu ‘00123’ select * from KONTRAH where SYMBOL = ‘00123’ Np. wyszukanie numerów indeksu i nazwisk studentów przyjętych na studia w roku 2000 na specjalność informatyka select NR_ALBUMU, NAZWISKO from STUDECI where (ROK_REKRUTACJI = 2000) and (SPEC = ‘I’) Aplikacje zwykle uzyskują dostęp o baz danych poprzez Specjalne sterowniki dostępu do baz danych API (application program interface) pozwalające na przekazywanie zapytań do bazy (np. ODBC, ADO, JDBC)
Przykład API
Zarządzanie transakcjami Transakcja jest zbiorem operacji na obiektach bazy danych, które tworzą jedną logiczną funkcję Moduł zarządzania transakcjami daje pweność, że baza pozostaje w stanie spójnym (poprawnym) niezależnie od możliwości upadku (awarii) systemu (np. na skutek awarii zasilania) lub niepowodzenia w realizacji którejkolwiek operacji w tansakcji Istnieje mechanizm kontroli współbieżności transakcji, tj. rozwiązywania problemów związanych z ubieganiem się kilku transakcji o te same zasoby
Zarządzanie składowaniem danych Zarządca składowaniem danych jest modułem DBMS dającym interfejs między niskopoziomowymi danymi zapisywanymi fizycznie w pamięci lub na dyski a aplikacjami i zapytaniami kierowanymi do systemu Zarządca jest odpowiedzialny za: współpracę z menadżerem plików wydajny mechanizm zapisywania, odczytu i aktualizacji danych
Zarządca i kompilator DML Użytkownicy standardowi Programy aplikacyjne Struktura systemu Użytkownicy zaawansowani np. analitycy Administratorzy bazy danych Interfejs użytkownika API Narzędzia do tworzenia zapytań Narzędzia administracyjne Kompilator i linker Zapytania DML Interpretator DML Skompilowany Kod programów aplikacyjnych Zarządca i kompilator DML Motor bazy dany (wykonuje zapytania) Procesor zapytań Menadżer pamięci (bufora) Menadżer plików Menadżer autoryzacji dostępu i integralności danych Koordynator transakcji Indeksy Słowniki danych Statystyki DANE Inne obiekty bazy
Architektura aplikacji