1 • • • • • Architektura systemu baz danych Model danych • Definicja Model Modeldanych danychto tozbiór zbiórpojęć pojęćużywanych używanychdo doopisu opisustruktury strukturybazy bazy danych. danych.Na Namodel modeldanych danychskładają składająsię: się: ••typy typydanych, danych,związki związkimiędzy międzydanymi, danymi,ograniczenia ograniczenia ••operacje definiowania, wyszukiwania operacje definiowania, wyszukiwaniai iuaktualniania uaktualnianiabazy bazydanych danych ••aspekt behawioralny danych aspekt behawioralny 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 3 – modele koncepcyjne (wysokiego poziomu) – modele reprezentacyjne (implementacyjne) – modele fizyczne (niskiego poziomu) 4 Schemat i instancja • 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. Przedmioty Studenci Nazwisko Indeks PrzNumer Kierunek WNumer PrzNazwa PKr Wydział WNumer Ocena Oceny Wykłady • Kategorie modeli danych 2 Plan rozdziału PrzNumer Semestr Rok Wykładowca Indeks • 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) widok widok zewnętrzny zewnętrzny 5 – opisuje fizyczną organizację bazy danych, schemat wewnętrzny stosuje fizyczny model danych i opisuje ścieżki dostępu do danych oraz fizyczną organizację danych widok widok zewnętrzny zewnętrzny schemat schemat koncepcyjny koncepcyjny poziom koncepcyjny schemat schemat wewnętrzny wewnętrzny poziom wewnętrzny • 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 odwzorowanie DB DB 6 • Poziom wewnętrzny ⇒ schemat wewnętrzny poziom zewnętrzny widok widok zewnętrzny zewnętrzny Architektura ANSI/SPARC (2/2) • Poziom zewnętrzny ⇒ schemat zewnętrzny – opisuje strukturę bazy danych z punktu widzenia wybranej grupy użytkowników DB baza danych Korzyści architektury trzypoziomowej • 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 logiczna logicznaniezależność niezależnośćdanych danychto tomożliwość możliwośćzmiany zmiany schematu schematupojęciowego pojęciowegobez bezkonieczności koniecznościzmiany zmianyschematu schematu zewnętrznego zewnętrznegolub lubzmiany zmianyaplikacji aplikacji – fizyczną niezależność danych. fizyczna fizycznaniezależność niezależnośćdanych danychto tomożliwość możliwośćzmiany zmiany schematu wewnętrznego bez konieczności schematu wewnętrznego bez koniecznościzmiany zmiany schematów schematówpojęciowego pojęciowegoi izewnętrznego zewnętrznego 7 Języki bazy danych (1/2) • 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 CREATETABLE TABLEcountries countries(( country_id CHAR(2) country_id CHAR(2)CONSTRAINT CONSTRAINTcountry_pk country_pkPRIMARY PRIMARYKEY, KEY, country_name country_nameVARCHAR2(40) VARCHAR2(40)NOT NOTNULL, NULL, region regionVARCHAR2(15) VARCHAR2(15) )) ORGANIZATION ORGANIZATIONINDEX INDEXINCLUDING INCLUDING country_name country_name PCTTHRESHOLD 2 STORAGE PCTTHRESHOLD 2 STORAGE(( INITIAL INITIAL 4K 4KNEXT NEXT 2K 2KPCTINCREASE PCTINCREASE00 MINEXTENTS 1 MAXEXTENTS MINEXTENTS 1 MAXEXTENTS11)) OVERFLOW OVERFLOWSTORAGE STORAGE(( INITIAL INITIAL 4K 4KNEXT NEXT 2K 2KPCTINCREASE PCTINCREASE00 MINEXTENTS MINEXTENTS11MAXEXTENTS MAXEXTENTS11);); 8 9 Języki bazy danych (2/2) • View Definition Language (VDL) Rodzaje języka DML (1/2) • Nieproceduralny język DML (język DML wysokiego poziomu) – służy do definiowania widoków zewnętrznych i ich odwzorowania na model pojęciowy, bardzo rzadko implementowany – wprowadzany bezpośrednio z konsoli record-at-a-time • Data Manipulation Language (DML) – służy do odczytywania, wstawiania, modyfikowania i usuwania danych SELECT SELECTnazwa, nazwa,AVG(placa_pod), AVG(placa_pod),SUBSTR(adres,1,10) SUBSTR(adres,1,10)AS ASadres adres FROM FROMzespoly zespolyFULL FULLOUTER OUTERJOIN JOINpracownicy pracownicyUSING USING(id_zesp) (id_zesp) GROUP GROUPBY BYnazwa nazwa HAVING HAVINGCOUNT(*) COUNT(*)>>5; 5; • Proceduralny język DML (język DML niskiego poziomu) DECLARE DECLARE CURSOR CURSOR cc IS IS SELECT SELECT ** FROM FROM pracownicy pracownicy JOIN JOIN zespoly zespoly USING USING (id_zesp) (id_zesp) FOR UPDATE FOR UPDATE OF OF placa_dod; placa_dod; BEGIN BEGIN FOR FOR c_rec c_rec IN IN cc LOOP LOOP CASE CASE c_rec.nazwa c_rec.nazwa WHEN 'ALGORYTMY' WHEN 'ALGORYTMY' THEN THEN UPDATE UPDATE pracownicy pracownicy SET SET placa_dod placa_dod == placa_dod placa_dod ++ 100 100 WHERE WHERE CURRENT CURRENT OF OF c; c; WHEN WHEN 'ADMINISTRACJA' 'ADMINISTRACJA' THEN THEN UPDATE UPDATE pracownicy pracownicy SET SET placa_pod placa_pod == placa_pod placa_pod ++ 150 150 WHERE WHERE CURRENT CURRENT OF OF c; c; ELSE ELSE IF (c_rec.etat = 'STAZYSTA') THEN IF (c_rec.etat = 'STAZYSTA') THEN DELETE DELETE FROM FROM pracownicy pracownicy WHERE WHERE CURRENT CURRENT OF OF c; c; END END IF; IF; END END CASE; CASE; END END LOOP; LOOP; END; END; set-at-a-time private private static static void void displayCustomers( displayCustomers( )) {{ CustomerIteratorClass CustomerIteratorClass iterator; iterator; – zanurzony w języku ogólnego przeznaczenia UPDATE UPDATEpracownicy pracownicypp SET placa_pod SET placa_pod==((SELECT SELECTAVG(placa_pod) AVG(placa_pod)FROM FROMpracownicy pracownicyaa WHERE WHEREa.etat a.etat==p.etat p.etat)) WHERE WHEREid_szefa id_szefaIN IN((SELECT SELECTid_prac id_pracFROM FROMpracownicy pracownicy WHERE WHEREetat etat=='PROFESOR' 'PROFESOR');); Rodzaje języka DML (2/2) 10 query language host language 11 #sql #sql iterator iterator == {{ SELECT SELECT id_prac, id_prac, nazwisko nazwisko FROM FROM pracownicy pracownicy ORDER BY nazwisko ORDER BY nazwisko }; }; while while (customer_iterator.next( (customer_iterator.next( )) )) {{ System.out.println("Nazwisko: System.out.println("Nazwisko: "" ++ iterator.nazwisko() iterator.nazwisko() ); ); ... ... Interfejsy do SZBD (1/2) • 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 • 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 12 Interfejsy do SZBD (2/2) 13 Środowisko systemu baz danych DBA • 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" DDL ADM kompilator DDL • Interfejs dla użytkowników parametrycznych – 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 data data dictionary dictionary użytkownicy zaawansowani aplikacja zapytanie ad hoc prekompilator kompilator zapytań DML runtime processor • Interfejs dla DBA użytkownicy naiwni zamknięte transakcje kompilator DML backup/recovery concurrency stored stored data data manager manager – większość SZBD posiada wyodrębniony zbiór komend dostępnych tylko dla administratora i możliwych tylko w specjalnym narzędziu dostępu 14 baza bazadanych danych 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. 15 Klasyfikacja systemów baz danych • 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: przykładowo:Oracle Oracle10g 10gEnterprise EnterpriseEdition Editionkosztuje kosztuje 40 000$ plus 8800$ (wsparcie techniczne) 40 000$ plus 8800$ (wsparcie techniczne)plus plus800$ 800$za za każdego każdegoużytkownika użytkownikaw wbazie baziedanych. danych.Dodatkowe Dodatkoweopcje opcje kosztują kosztują10 10000$ 000$--20 20000$ 000$(OLAP, (OLAP,RAC, RAC,Spatial, Spatial,Label LabelSec) Sec) Koszt SQL Server to około 20 000$. Koszt SQL Server to około 20 000$. Koszt Kosztspecjalistycznej specjalistycznejbazy bazydanych danychTeradata Teradatadla dlaogromnych ogromnych hurtowni hurtownidanych danychto took. ok.490 490000$ 000$ 16 Podsumowanie • 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 17 Pytania 18 • 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.