Databázové systémy Úvod
Organizační záležitosti Povinnosti Klasifikovaný zápočet napsat zápočtovou písemku(> 40% bodů) uskuteční se 10. týden semestru bude pouze jeden opravný termín !! (tj. celkem 2) odevzdat samostatný projekt účast na cvičeních 70%, resp. 3 absence se tolerují kdo nesplní - nemá nárok na klasifikovaný zápočet! mail: prokopova@fai.utb.cz
Doporučená literatura PROKOPOVÁ Zdenka: Databázové systémy MySQL+PHP, FAI UTB Zlín. Pokorný, Halaška: Databázové systémy, skripta FEL ČVUT, 2003 Rebecca M. Riordan: Vytváříme relační databázové aplikace, Computer Press, 2000 Larry Ullman: PHP a MySQL, Computer Press, Brno, 2004
Ostatní zdroje prezentace na univerzitním serveru Google – univerzální zdroj www.google.com stránky o různých SŘBD MySQL (dev.mysql.com/doc/refman/5.1/en/) MS SQL Server (www.asp.net/learn/sql-videos/) Oracle(infolab.stanford.edu/~ullman/fcdb/oracle/or-nonstandard.html) Firebird (www.firebirdnews.org/docs/fb2min_cz.html) a mnoho dalších...
Proč používat databázové systémy? Možnost sdílení dat Znovuvyužitelnost dat Snížení objemu dat (odstranění redundance) Unifikované rozhraní a jazyk(y) definice dat a manipulace s daty Integrita a ochrana dat Řízená správa dat Transakční zpracování Paralelní přístup více uživatelů
Intuitivní vymezení pojmu „databáze“ Co je to databáze? - registr (papírová agenda) v elektronické podobě, v podobě perzistentních dat
Typická podoba odpovídající databáze
Databázový systém Databáze (data) je logicky uspořádaná (integrovaná) kolekce navzájem souvisejících dat. data jsou uchovávána společně s popisy, známými jako metadata (také schéma databáze). Systém řízení báze dat - SŘBD je obecný softwarový systém, který řídí sdílený přístup k databázi, a poskytuje mechanizmy pomáhající zajistit bezpečnost a integritu uložených dat Administrátor (správce DB systému)
Databázový systém DBS = DB+SŘBD DB systém tvoří: technické prostředky data - DB programové vybavení – SŘBD – Systém řízení báze dat příp. správce DBS, uživatele DBS…
SŘBD - Systém Řízení Báze Dat programová vrstva řešící operace nad DB odstínění uživatele (aplikace) od technických detailů operace typu vytvoření DB souboru, ... Název vznikl přeložením původního termínu DBMS -DataBase Management System. Mezi SŘBD patří takové programy jako: Oracle, MS SQL Server, MySQL, Sybase, Informix, Progress. Převážná většina dnes používaných SŘBD při uspořádání údajů v databázi vychází z relačního modelu dat.
Základní pojmy Objekty dat - člověk, předmět, událost, místo, pojem… Databáze - soubor dat, který slouží pro popis reálného světa (např. evidence knihovny, sklad chemikálií, evidence studentů). Entita - prvek reálného světa (např. člověk, stroj, vyučovaný předmět, město…). Atributy dat - charakteristiky (vlastnosti), popisující entitu - (např. jméno, příjmení, stav, plat, hmotnost). Hodnota dat - skutečná hodnota obsažená v každém prvku dat. Obor hodnot - popisuje typ dat. Základní datové typy: text, číslo, datum, logická hodnota (ano/ne).
Struktura databáze - množina datových prvků, které požadovaným způsobem popisují sledovaný objekt. Perzistentní data – data s dobou života překračující běh aplikačního programu i vypnutí počítače. Integrita dat – správnost dat z hlediska splnění omezení (tzv.integritních omezení), která existují v reálném světě. Příklad: Účet musí mít vlastníka, rodné číslo musí splňovat podmínku dělitelnosti 11, zadaná pobočka musí existovat, ... Konzistence dat – nerozpornost dat - dojde-li k porušení konzistence, říkáme, že data jsou nekonzistentní.
Pohledy na data Jedním z důležitých úkolů DBS je poskytnout uživatelům abstraktní pohled na data - jsou skryty detaily uložení a správy dat. Základní úrovně abstrakce dat : Fyzická (interní) úroveň - popisuje data, jak jsou skutečně uložena. Konceptuální (logická) úroveň – popisuje jaká data jsou skutečně uložená v databázi a jaké vztahy mezi nimi existují Úroveň pohledů (externí) - popisuje, jaká data vidí jednotliví uživatele, tj. obecně pouze část databáze, která představuje data reprezentující objekty reálného světa, viditelná jednotlivými uživateli
Datové modely Datový model - souhrn pravidel pro reprezentaci logické organizace dat v databázi. Lze je rozdělit do dvou skupin: logické modely - popisují data na úrovni konceptuální a pohledů. - modely založené na záznamech (hierarchický, síťový, relační…) - modely založené na objektech (E-R model, ...) b) modely fyzických dat - popisují data na fyzické úrovni, postihují aspekty implementace.
Hierarchický model dat Základní principy: Data jsou organizována do stromové struktury. Vzájemný vztah mezi záznamy je typu rodič/potomek. Nalezení dat v hierarchické databázi vyžaduje navigaci přes záznamy směrem dolů (potomek), nahoru (rodič) a do strany (další potomek). Nevýhody hierarchického modelu : - v některých případech nepřirozená organizace dat, - složité operace vkládání a rušení záznamů.
Síťový model dat Základní principy: Nevýhody síťového modelu : Je v podstatě zobecněním hierarchického modelu dat. Doplňuje ho o mnohonásobné vztahy - jsou označovány jako C-množiny (neboli Sets). Nevýhody síťového modelu : - nepružnost, - obtížná změna struktury.
Relační DB model dnes nejrozšířenější: Relační model dat Navržen v 70. letech E. F. Coddem - založen na matematickém pojmu relačních množin Základní principy: Data mají pravidelnou strukturu a ukládají se v tabulkách Vztahy mezi daty se realizují pomocí operací relační algebry Relační DB model dnes nejrozšířenější: Oracle, MS SQL Server, MySQL, Informix, Access, dBase
Objektově orientované databáze 1991- návrh standardu (definiční jazyk ODL…). Základní principy: Objektové databáze vychází z objektu jako základního stavebního prvku. Objekt popisuje danou oblast problému. Každý objekt má svůj jednoznačný identifikátor, pomocí kterého je možné jej rozpoznat. Nové oblasti aplikací: Návrhové DB Multimediální DB Znalostní DB
Typy databázových systémů Dle způsobu ukládání dat a vazeb mezi nimi: Předrelační hierarchické – IMS Síťové - IDMS Relační : s architekturou typu „mainframe“ - 2.pol. 70 let s architekturou typu „PC file-server – dBASE, FoxBase… s architekturou klient-server – Oracle, MS SQL, Informix… Postrelační – objektově orientované – ObjectStore, Jasmine, Gemstone… Objektově-relační – Oracle 8.x, OSMOS, UniSQL/X … Téměř všechny současné komerční databázové systémy jsou relační (případně objektově-relační).
Kategorie jazyků pro tvorbu DB aplikací: Obecné procedurální jazyky (3GL) rozšířené o prostředky přístupu k datům, např. Pascal, Cobol, Basic, jazyk C Specifické procedurální jazyky (4GL) mohou být použity pouze v určitém SŘBD, např. jazyk dBase Dotazovací jazyky standardní metoda přístupu k databázím, např. jazyk SQL (Structured Query Language) Ostatní jazyky např. objektově orientované C++, Turbo Pascal, Visual Basic nebo jazyky maker, jazyk QBE26