Databázové systémy Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz
Vývoj databázových systémů Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace 60.-70. léta Program Komunikace Výpočty Data Práce s daty Data Struktury dat 38 2
Vývoj databázových systémů 70. léta a výše Systém řízení báze dat Program Komunikace Výpočty Databáze Práce s daty Data Struktury dat Data Struktury dat 38 3
Logické schéma DS SŘBD Aplikace Aplikace Data 38 4
Výhody databází Integrovanost sjednocení datových souborů s odstraněním duplicit dat Sdílenost víceuživatelský přístup + přístupová práva Fyzická nezávislost dat modifikace fyzické podoby dat bez nutnosti změn v programech Logická nezávislost dat modifikace logických schémat bez nutnosti změn v programech 38 5
Struktura databázového systému uživatelé Aplikační rozhraní programátoři Aplikační programy uživatelé Dotazy administrátor Schémata databáze Prekompilátor DML Procesor dotazů Překladač DDL Cílový kód programů Řízení databáze SŘBD Data Slovník dat Databáze 38 6
Systém řízení báze dat (SŘBD) databázový stroj (database engine) část SŘBD, která ukládá data a manipuluje s nimi podle příkazů zadávaných databázovou aplikací jazyky pro práci s daty jazyk pro definici dat (DDL) jazyk pro manipulaci s daty (DML) jazyk pro řízení přístupu uživatelů k datům (DCL) datový slovník metadata soubor, který definuje základní organizaci databáze neobsahuje aktuální data z databáze, pouze informace nutné pro její správu 38 7
Datový slovník seznam všech souborů v databázi počet záznamů v každém souboru jména a typy všech položek údaje o integritních omezeních jména uživatelů a evidenci udělených práv a oprávnění kontrolní informace (např. kdo je autorem určitého objektu) 38 8
Funkce SŘBD Definování a redefinování dat v databázi (data definition) organizace datových souborů (vytváření a změny datových struktur) Vytváření obsahu databáze aktualizace datových souborů (vkládání dat, změny, aktualizace dat) Výběr a výstup (data display) prezentování, zobrazování, prohlížení) dat z databáze Tvorba formulářů obrazovek, pohledů a výstupních sestav Kontrola integrity dat (data integrity) poskytuje metodu nebo metody pro definování a zajištění správnosti dat Kontrola přístupových práv určuje, kdo a jak může přistupovat k datům Programovací jazyk pro vytváření vlastních aplikací 38 9
Architektury DS Centrální architektura Architektura File server Architektura Klient - server 38 10
Centrální architektura Server PC Aplikace SŘBD Databáze 38 11
Architektura file-server PC Server Aplikace SŘBD Databáze data 38 12
Architektura klient-server PC Server Aplikace SŘBD Databáze dotaz odpověď 38 13
Klient-server vícevrstvá PC Aplikační server Databázový server Aplikace Tenký klient Aplikace SŘBD dotaz Databáze odpověď 38 14
Jazyky databází 1974-1975 firma IBM. Vzniká jazyk SEQUEL standardizace jazyka SQL (Structured Query Language). Americký standardizační institut (ANSI) a nový standard bývá označován jako SQL 86 (v roce 1986 byl přijat). V roce 1992 byl přijat nový standard označovaný jako SQL-92 nebo také SQL2. V současné je standard SQL3, který zahrnuje objektový přístup a objektové databáze obecně. 38 15
Příkaz SELECT SELECT <SeznamPolí> FROM WHERE GROUP BY HAVING ORDER BY <SeznamMnožinZáznamů> <TypSpojení> JOIN <SpojovacíPodmínka> <VýběrováKritéria> <SeznamPolíKSeskupení> <VýběrováKritéria> <SeznamPolíKSeřazení> 38 16
Příkaz SELECT SELECT *FROM s; 38 17
Projekce SELECT c_studenta, prijmeni FROM s 38 18
Selekce SELECT * FROM s WHERE prijmeni = "novák" 38 19
Spojení na rovnost SELECT* FROM s,z WHERE s.c_studenta = z.c_studenta 38 20
Využití SQL z databázového prostředí z programu z www 38 21
SQL z Visual Basicu SQL = "INSERT INTO PROTOKOL(Jméno,datum) VALUES(" psql = psql + jmeno + "','" datumcas = Date psql = psql + Date + Time() + "') REM SQL INSERT INTO PROTOKOL(Jméno,datum) REM VALUES ( Novak, 24.1.00 11:30 ) Set db = OpenDatabase("PROTOKOLY.MDB") Set qd = db.createquerydef("", psql) qd.execute db.close 38 22
SQL z www pomocí ASP <% var DB = Server.CreateObject("ADODB.Connection"); DB.Open("DSN=student", "", ""); var vypis = Server.CreateObject("ADODB.Recordset"); vypis.cursortype = 1; vypis.locktype = 1; vypis.activeconnection = DB; vypis.source = "SELECT * FROM protokol"; vypis.open(); //Response.write(vypis.RecordCount); 38 23 %>
Centralizovaná platforma Všechna data jsou umístěna v jednom místě. Všichni se mohou dostat ke všem povoleným datům přímo v rámci datové komunikační sítě 38 24
Distribuované platformy Data jsou umístěna v různých místech, propojena datovou komunikační sítí Mohou být homogenní nebo heterogenní 38 25
Distribuovaný databázový systém Určuje místo, kde se nacházejí požadovaná data Převádí data z formátu lokálního SŘBD do podoby SŘBD žadatele Zajišťuje referenční integritu a souběžný přístup k datům Zajišťuje ochranu dat 38 26
Výhody distribuované platformy Lokální transparence nemusíme znát cestu k datům Zvýšená spolehlivost Vyšší odpovědnost za data Modulární růst systému Menší náklady na komunikace většina transakcí je s lokálními daty Rychlejší odezva 38 27
Nevýhody distribuované platformy Vyšší náklady na SW - DSŘBD Vyšší provozní náklady Obtížnější zajištění datové integrity Nebezpečí pomalé odezvy u špatně navržené distribuce 38 28
Způsoby distribuce dat Replikace Funkční (vertikální členění) Objektové (horizontální členění) 38 29
Datové sklady Primární datové zdroje ETL proces Datový sklad OLAP prezentace 38 30
Proces vytváření datového skladu 38 31
Transformace dat Transformace Rozdělení atributu 38 32
Transformace dat Transformace Standardizace 38 33
Transformace dat Transformace Odstraňování duplicit 38 34
Transformace dat Transformace Sloučení atributů 38 35
Návrh schématu skladu Dimenze času Dimenze zákazníka Prodej zboží Tabulky faktů Dimenze výrobku Tabulky dimenzí 38 36
Ukázka dimenze - dimenze času 38 37
38 38