Databáze v IS Jaroslav Pokorný FI BVŠP Bratislava Databázové systémy Databáze v IS Jaroslav Pokorný FI BVŠP Bratislava
Vymezení předmětu Databáze v informačním systému Konceptuální modelování Relační model dat (RMD) Návrh schématu relační databáze Databázové jazyky SQL Vyhodnocení dotazů a optimalizace Transakce Distribuované databázové systémy (DDBS) Datové sklady a OLAP Databázové trendy J. Pokorný
Úvod: data vs. informace data – kolekce faktů sestavených z textu, čísel, obrázků apod., např. Top gun Cruise Brando informace – význam přidaný datům jejich interpretací, např. Herci Cruise a Brando hráli ve filmu Top gun. Otázky: jak data ukládat, jak k nim přistupovat, jak k nim přistupovat efektivně, jak je aktualizovat, jak je zabezpečit před zneužitím, jak je interpretovat jako informace, … J. Pokorný
Pojem informačního systému Informační systém je obecně definován jako software, který pomáhá organizovat, využívat, analyzovat data v kontextu procesů (řídících, informačních, rozhodovacích, …) Př.: na datové úrovni využívá soubory, spreadsheet, systém řízení bází dat J. Pokorný
Reporty klíčových indikátorů zaměstnanci IS v kontextu podniku korporátní databáze interních dat databáze externich dat korporátní intranet systémy pro podporu rozhodování databáze validních transakcí aplikační databáze obchodní transakce systémy pro zpracování transakcí informační systémy pro řízení systémy pro podporu executivy operační databáze expertní systémy Drill-down reporty Reporty výjimek Reporty na požádání Reporty klíčových indikátorů vstup a seznam chyb Rozvrhované reporty J. Pokorný
Úvod: typy IS řízený procesy řízený daty analýza požadavků návrh implementace J. Pokorný
Implementace programů Implementace struktur dat Úroveň implementace Zobrazení do exist. SW Implementace programů Implementace struktur dat IS Specifikace aplikačních programů a dalšího SW Nástin popisu objektů Detailní analýza objektů Předběžná analýza objektů Předběžná funkční analýza Nástin popisu funkcí Detailní fukční analýza Procesy, operace, funkce Ověřování, modifikace přístupových cest Specifikace struktur dat repozitář Požadavky na IS Úroveň reálného světa Úroveň analýzy Úroveň návrhu Konceptuální schéma J. Pokorný
Motivace pro databáze “Klasické” zpracování založené na systému ovládání souborů OS (COBOL, PL1) Autoři aplikačních programů (dnes aplikací) opakovaně řešili problémy: s redundancí a nekonzistencí dat s obtížností přístupu k datům s izolovaností jednotlivých dat s ochranou dat s integritou dat s vyjádřením logiky dat, vztahů mezi záznamy s koordinací přístupu více uživatelů k datům J. Pokorný
Motivace pro databáze Nezávislost dat (na programech) a efektivní přístup k datům Redukce času potřebného k vývoji aplikací Integrita a ochrana dat Řízená správa dat Transakce Paralelní přístup více uživatelů a zotavení po chybě Vyšší cíl: podpora dalších transformací data informace znalost akce J. Pokorný
Databázová technologie Databázová technologie se zabývá řízením velkého množství perzistentních, spolehlivých a sdílených dat: pro data nestačí vnitřní paměť, data přetrvávají od zpracování ke zpracování, data lze rekonstruovat po chybě, data jsou přístupná více uživatelům. J. Pokorný
Základní témata organizace dat, metody přístupu transakční zpracování operační systémy organizace dat, metody přístupu transakční zpracování zotavení z chyb paralelní přístup databázové jazyky optimalizace integrita dat projektování dat distribuované systémy modelování logika programovací jazyky J. Pokorný
Základní pojmy DBS = SŘBD + DB systém řízení bází dat databázový systém databáze DBS = SŘBD + DB Základní paradigma: existence data v DB je nezávislá ne aplikačních programech Další pojmy: jazyk pro definici dat (JDD) logické a fyzické schéma DB databázový model - kolekce pojmů podporující JDD, JMD jazyky pro manipulaci dat (JMD) dotazovací jazyky J. Pokorný
Základní pojmy uživatelé DBS správce dat zajišťuje správce dat aplikační programátor (tvůrce aplikací) příležitostný uživatel naivní uživatel správce dat zajišťuje definici schématu databáze návrh vhodných fyzických struktur a metod přístupu udílení přístupových práv rekonstrukci db v případě poškození dat J. Pokorný
logická architektura DB soubory DOTAZOVÝ PROCESOR indexy statistická data slovník dat správce dat příležitostný aplikační naivní uživatel programátor uživatel kompilátor JDD JMD předkompilátor zahnízděného JMD zkompilované transakce vyhodnocovač dotazů APLIKAČNÍ ROZHRANÍ APLIKAČNÍ PROGRAMY DOTAZY privilegované příkazy příkazy v JDD DOTAZOVÝ PROCESOR SŘBD manažer bufferů transakční manažer souborů MANAŽER PAMĚTI logická architektura DB řízení bezpečnosti J. Pokorný
Tři úrovně pohledu na data vnější schéma konceptuální schéma pohled databázové schéma fyzické schéma J. Pokorný
Konceptuální modelování důvody: 60.-70. léta - nízká úroveň pohledu na data. obtížný návrh IS v pol. 70. let - konceptuální modely výhody: společné chápání objektů aplikace uživateli, projektanty, … integrace uživatelských pohledů vstup pro návrh implementace J. Pokorný
Konceptuální modelování de facto standard: E-R model (1976) entitní typy atributy identifikátor vztahové typy účast ve vztahu explicitní integritní omezení Kino Film Hraje Název-k Adresa Jméno-v Jméno_f Režisér Čas N M J. Pokorný
Databázové modelování Relace, tabulky, sítě typů záznamů, struktury objektů + integritní omezení (IO) Hrají(Název_k: string, Jméno_f: string, Režisér: string, Čas: date) Hrají Název_k Jméno_f Režisér Čas J. Pokorný
Integritní omezení Integritní omezení (IO ) jsou tvrzení, která vymezují korektní databázi definují se na konceptuální i databázové úrovni Př.: Název_k jednoznačně identifikuje řádky tabulky Kina. Film si lze rezervovat v půjčovně, jen když jsou všechny jeho kopie vypůjčeny. Jeden si může vypůjčit nejvýše 6 filmů (kopií). Vypůjčující musí být v seznamu zákazníků. J. Pokorný
Univerzální architektura SŘBD (Härder a Reuter, 1983) Úroveň abstrakce Objekty Pomocná zobrazení dat L5 neprocedurální přístup tabulky, pohledy, řádky popis logického schématu L4 záznamově orientovaný navigační přístup záznamy, sady dat, hierarchie, sítě záznamů popis logického a fyzického schématu L3 správa záznamů a přístupových cest fyzické záznamy, přístupové cesty tabulky volného prostoru, tabulky pro transformaci DB klíčů, L2 rozdělení do stránek segmenty, stránky buffery, tabulky stránek L1 správa souborů soubory, bloky direktoráře J. Pokorný
Typy SŘBD PC databáze centralizované databáze klient-server distribuované databáze Zde: podrobněji klient-server distribuované databáze – speciální lekce J. Pokorný
PC databáze Př.: Access FoxPro Dbase atd. J. Pokorný
Centralizované databáze centrální počítač J. Pokorný
Databáze klient-server databázový sever J. Pokorný
Distribuované databáze uzel B uzel C počítač počítač homogenní databáze počítač uzel A J. Pokorný
Distribuované databáze klient heterogenní nebo federované databáze vzdálený počítač lokální síť komunikační sever databázový sever vzdálený počítač klient J. Pokorný
Klient-server - podrobněji server - hardware: dedikovaný procesor sloužící jistému účelu Př.: mail servery, print servery, terminálové servery, fax servery, file servery, databázový server - střední velký (4 procesory Alpha 21164, Pentium Pro,...), velký (8 a více procesorů) databázově-aplikační server - seperservery (12 procesorů: Alphasever 8400, 16 procesorů: Challenge XL 10000) aplikační server - několik procesorů RISC, Pentium J. Pokorný
Architektura klient-server prezentační služby (displej, myš, umožňuje zobrazení řádků, bitových polí, určuje, co uživatel vidí, jak jsou data zobrazena atd.), prezentační logika (řídí interakci uživatele s počítačem, reprezentuje hierarchii obrazovek a menu včetně logiky jejich vztahů), logika aplikace (zahrnuje kalkulace, rozhodnutí, operace, je dána aplikačními programy), J. Pokorný
Architektura klient-server logika dat (zahrnuje podporu operací, které mají být prováděny s databází, např. pomocí SQL - SELECT, INSERT, DELETE, UPDATE. Jsou třeba pro vyjádření logiky aplikace - např. řízení integrity dat), datové služby (akce s databází vně logiky dat, tj. realizaci definice a manipulací dat, transakční zpracování včetně potvrzování a rušení transakcí apod.), služby zpracování souborů (získání potřebných dat z magnetického disku, práce s vyrovnávací pamětí). J. Pokorný
Architektura klient-server Architektura klient-server znamená dekompozici funkcionality a tedy ideální model např. pro online zpracování transakcí (OLTP) v distribuovaném prostředí. Svět databází: jde i jistý druh distribuce, kdy větší část databázového software je umístěna na serveru a menší část na klientských stanicích. Hlavní část dat (databáze) je uložena na vnějších pamětech serveru, jistá databázově organizovaná data však mohou existovat i na klientech. J. Pokorný
Síla architektury klient-server Aplikace: pružnější rozdělení práce. horizontální i vertikální škálování zdrojů. (Klientům lze zpřístupnit více serverů (horizontální škálování), pro jeden relační server lze vyhradit větší, výkonnější počítač (vertikální škálování). Aplikace mohou běžet na levnějších zařízeních, (hlavní zatížení - práce s databází - je přeneseno na server). Klienti: oblíbený prezentační software (PowerBuilder, EXCEL apod.) + jednoduchý vývoj dalších aplikací Standardizovaný přístup pomocí SQL Centralizace dat podporuje lepší a účinnější ochranu dat před zneužitím či ztrátou. J. Pokorný
Varianty architektury klient-server J. Pokorný
Varianty architektury klient-server J. Pokorný