1 Plan rozdziału 2 Architektura systemu baz danych Modele danych, schematy i instancje Architektura ANSI/SPARC systemu baz danych Języki i interfejsy bazy danych Środowisko systemu baz danych Klasyfikacja systemów zarządzania bazą danych Model danych 3 Schemat i instancja 4 Definicja Model danych to zbiór pojęć używanych do opisu struktury bazy danych. Na model danych składają się: typy danych, związki między danymi, ograniczenia operacje definiowania, wyszukiwania i uaktualniania bazy danych aspekt behawioralny danych Schemat bazy danych to opis struktury bazy danych definiowany w trakcie tworzenia bazy danych za pomocą konstruktów, rzadko podlega zmianom, wyświetlany najczęściej w postaci diagramów. Studenci Przedmioty Nazwisko Indeks Kierunek PrzNumer PrzNazwa PKr Wydział Kategorie modeli danych modele koncepcyjne (wysokiego poziomu) modele reprezentacyjne (implementacyjne) modele fizyczne (niskiego poziomu) Wykłady Oceny WNumer PrzNumer Semestr Rok Wykładowca Indeks WNumer Ocena Instancja bazy danych (stan bazy danych) to obraz danych w określonym punkcie w czasie każda modyfikacja danych tworzy nowy stan bazy danych, SZBD gwarantuje, że każdy stan bazy danych jest spójny ze schematem i poprawny (spełnia wszystkie ograniczenia).
Architektura ANSI/SPARC (1/2) 5 Architektura ANSI/SPARC (2/2) 6 widok zewnętrzny odwzorowanie widok zewnętrzny schemat koncepcyjny schemat wewnętrzny poziom zewnętrzny widok zewnętrzny poziom koncepcyjny poziom wewnętrzny Poziom wewnętrzny schemat wewnętrzny opisuje fizyczną organizację bazy danych, schemat wewnętrzny stosuje fizyczny model danych i opisuje ścieżki dostępu do danych oraz fizyczną organizację danych Poziom koncepcyjny (pojęciowy) schemat koncepcyjny opisuje strukturę bazy danych z punktu widzenia globalnego użytkownika, opisuje encje, związki między encjami, atrybuty i ograniczenia Poziom zewnętrzny schemat zewnętrzny opisuje strukturę bazy danych z punktu widzenia wybranej grupy użytkowników DB DB DB baza danych Przykład architektury trójpoziomowej 7 Korzyści architektury trzypoziomowej 8 emp# dept# age salary emp# fname lname emp# dept# fname lname dob salary Własności wynikające z trzypoziomowej architektury systemów baz danych obejmują: niezależność aplikacji i danych, abstrakcyjną reprezentację danych, różnorodność sposobów widzenia danych, logiczną niezależność danych struct Employee { int emp#; int dept#; char fname[15]; char lname[30]; struct date dob; float salary; struct Employee *boss; }; index emp#; logiczna niezależność danych to możliwość zmiany schematu pojęciowego bez konieczności zmiany schematu zewnętrznego lub zmiany aplikacji fizyczną niezależność danych. fizyczna niezależność danych to możliwość zmiany schematu wewnętrznego bez konieczności zmiany schematów pojęciowego i zewnętrznego
Języki bazy danych (1/2) 9 Języki bazy danych (2/2) 10 Storage Definition Language (SDL) służy do definiowania schematu wewnętrznego Data Definition Language (DDL) służy do definiowania schematu pojęciowego (i wewnętrznego) CREATE TABLE countries ( country_id CHAR(2) CONSTRAINT country_pk PRIMARY KEY, country_name VARCHAR2(40) NOT NULL, region VARCHAR2(15) ) ORGANIZATION INDEX INCLUDING country_name PCTTHRESHOLD 10 STORAGE ( INITIAL 4K NEXT 2K PCTINCREASE 0 MINEXTENTS 1 MAXEXTENTS 10 ) OVERFLOW STORAGE ( INITIAL 4K NEXT 2K PCTINCREASE 50 MINEXTENTS 1 MAXEXTENTS 10 ); View Definition Language (VDL) służy do definiowania widoków zewnętrznych i ich odwzorowania na model pojęciowy, bardzo rzadko implementowany Data Manipulation Language (DML) służy do odczytywania, wstawiania, modyfikowania i usuwania danych SELECT nazwa, AVG(placa_pod), SUBSTR(adres,1,10) AS adres FROM zespoly FULL OUTER JOIN pracownicy USING (id_zesp) GROUP BY nazwa HAVING COUNT(*) > 5; UPDATE pracownicy p SET placa_pod = ( SELECT AVG(placa_pod) FROM pracownicy a WHERE a.etat = p.etat ) WHERE id_szefa IN ( SELECT id_prac FROM pracownicy WHERE etat = 'PROFESOR' ); Rodzaje języka DML (1/2) 11 Rodzaje języka DML (2/2) 12 Nieproceduralny język DML (język DML wysokiego poziomu) wprowadzany bezpośrednio z konsoli Proceduralny język DML (język DML niskiego poziomu) zanurzony w języku ogólnego przeznaczenia query language host language set-at-a-time record-at-a-time private static void displaycustomers( ) { CustomerIteratorClass iterator; #sql iterator = { SELECT id_prac, nazwisko FROM pracownicy ORDER BY nazwisko }; while (iterator.next( )) { System.out.println("Nazwisko: " + iterator.nazwisko() );... DECLARE CURSOR c IS SELECT * FROM pracownicy JOIN zespoly USING (id_zesp) FOR UPDATE OF placa_dod; BEGIN FOR c_rec IN c LOOP CASE c_rec.nazwa WHEN 'ALGORYTMY' THEN UPDATE pracownicy SET placa_dod = placa_dod + 100 WHERE CURRENT OF c; WHEN 'ADMINISTRACJA' THEN UPDATE pracownicy SET placa_pod = placa_pod + 150 WHERE CURRENT OF c; ELSE IF (c_rec.etat = 'STAZYSTA') THEN DELETE FROM pracownicy WHERE CURRENT OF c; END IF; END CASE; END LOOP; END;
Architektura klient-serwer 13 Architektura serwera transakcyjnego 14 Funkcjonalność bazy danych podzielona back-end: scentralizowany serwer bazy danych front-end: formularze, raporty, GUI, OLAP, konsola interfejs: SQL lub API Wariacja klasycznej architektury klient-serwer klienci przesyłają żądania na serwer transakcje wykonują się po stronie serwera wyniki zakończonych transakcji są przesyłane do klientów Przesyłanie żądań żądania SQL są przesyłane przez RPC (ang. remote procedure call) TRPC (ang. transactional RPC) wspiera transakcje Architektury systemów równoległych 15 Połączenia w systemach równoległych 16 System równoległy charakteryzuje się obecnością wielu procesorów i dysków połączonych szybką siecią Dwa rodzaje równoległości coarse-grain parallel: niewielka liczba mocnych procesorów fine-grain parallel (massive parallel): tysiące małych procesorów Miary systemu przyspieszenie (ang. speedup): iloraz czasu wykonania ustalonego problemu na małym systemie i systemie n razy większym skalowalność (ang. scaleup): iloraz czasu wykonania problemu na małym systemie i czasu wykonania problemu n razy większego na n razy większym systemie skalowanie wsadowe: n-krotne zwiększenie rozmiaru problemu skalowanie transakcyjne: n-krotne zwiększenie liczby transakcji Shared Nothing Shared Memory Shared Disk Hierarchical
Interfejsy do SZBD (1/2) 17 Interfejsy do SZBD (2/2) 18 Interfejsy oparte na menu użytkownik konstruuje zapytanie przechodząc przez szereg opcji, interfejs eliminuje konieczność zapamiętywania składni i komend Interfejsy graficzne użytkownik pracuje ze schematem bazy danych wyświetlonym w postaci diagramu, interfejs często implementuje QBE Interfejs języka naturalnego interfejs przetwarza zdania języka angielskiego (lub innego języka naturalnego) i tłumaczy je na operacje na schemacie pojęciowym, często zdania języka naturalnego są ograniczone "schematem" i "operacjami" Interfejs dla użytkowników parametrycznych Interfejsy formularzowe użytkownik wykonuje zapytania, wstawia dane i manipuluje zawartością bazy danych za pomocą predefiniowanego formularza okienkowego, najczęstszy interfejs dla użytkowników naiwnych i zamkniętych transakcji (ang. canned transactions); wiele systemów baz danych posiada specjalny język/narzędzie do budowy formularzy ekranowych specjalizowany interfejs dla szczególnej grupy użytkowników naiwnych (obsługa banku, obsługa okienka pocztowego), głównym celem jest przejrzystość i minimalizacja liczby uderzeń w klawisze, rzadko wykorzystywana myszka Interfejs dla DBA większość SZBD posiada wyodrębniony zbiór komend dostępnych tylko dla administratora i możliwych tylko w specjalnym narzędziu dostępu DDL kompilator DDL Środowisko systemu baz danych DBA ADM data dictionary użytkownicy zaawansowani zapytanie ad hoc kompilator zapytań runtime processor aplikacja prekompilator DML kompilator DML użytkownicy naiwni zamknięte transakcje 19 Programy użytkowe SZBD Większość SZBD posiada zestaw programów użytkowych, które wykonują poniższe czynności ładowanie danych: import/eksport zawartości bazy danych (cała baza danych/użytkownik/tabela) do plików (tekstowe, cvs, binarne, specyficzne dla SZBD, ftp), kopia zapasowa: możliwość tworzenia kopii zapasowych (inkrementalnych i pełnych) z wybranych fragmentów bazy danych, reorganizacja plików danych, monitorowanie wskaźników efektywności SZBD, audyt działań użytkowników. 20 stored data manager backup/recovery concurrency baza danych
Klasyfikacja systemów baz danych 21 Podsumowanie 22 Podstawowe kryteria klasyfikacji systemów baz danych model danych: podział na systemy relacyjne, obiektowe, hierarchiczne, sieciowe, inne liczba użytkowników: podział na systemy jedno- i wielostanowiskowe liczba węzłów: podział na systemy scentralizowane i rozproszone (homo- i heterogeniczne, sfederowane) przeznaczenie: podział na systemy specjalistyczne i ogólnego przeznaczenia cena przykładowo: Oracle 11g Enterprise Edition kosztuje 47 000$ plus 10000$ (wsparcie techniczne) plus 950$ za każdego użytkownika w bazie danych. Dodatkowe opcje kosztują 10 000$ - 20 000$ (OLAP, RAC, Spatial, Label Sec) Koszt SQL Server to około 25 000$. Koszt specjalistycznej bazy danych Teradata dla ogromnych hurtowni danych to ok. 490 000$ Wyróżniamy trzy podstawowe kategorie modeli danych modele pojęciowe (modele wysokiego poziomu) modele implementacyjne modele fizyczne (modele niskiego poziomu) Istotne różnice między modelem, schematem i instancją Trzypoziomowa architektura ANSI/SPARC schemat zewnętrzny schemat pojęciowy schemat wewnętrzny Języki bazy danych: DDL, SDL, VDL, DML Interfejsy do bazy danych Klasyfikacja systemów baz danych Pytania 23 Zdefiniuj poniższe pojęcia: model danych, schemat bazy danych, stan bazy danych, schemat zewnętrzny, pojęciowy i wewnętrzny, niezależność danych, DML, język zapytań, język-gospodarz, architektura klient-serwer Podaj podstawowe różnice między schematem i stanem bd. Czy łatwiej jest uzyskać fizyczną czy logiczną niezależność danych? Dlaczego? Jaka jest różnica między proceduralnym i nieproceduralnym językiem DML? Wymień programy/systemy komputerowe z którymi współpracuje system zarządzania bazą danych. Opisz interfejsy do bazy danych i grupy użytkowników, które najczęściej korzystają z każdego interfejsu.