DATABÁZOVÉ SYSTÉMY 1. Základní pojmy databázové technologie Úvod Databáze a databázové technologie mají velký vliv na rostoucí používání počítačů. Bylo by správné říci, že databáze hrají kritickou roli ve všech oblastech, kde se počítače využívají (ekonomika, strojírenství, zemědělství, vzdělávání, zdravotnictví, právo, knihovnictví, …). Na druhé straně je nutno poznamenat, že s nástupem nových počítačových technologií se mění a zdokonalují dříve používané databázové technologie tj. že se jedná o oboustranný vliv.
Vývoj, historie Vývoj nástrojů pro práci s databázemi odrážel požadavky reálného světa (praxe) – účelem bylo pochopitelně vyvinout prostředky umožňující co nejefektivnější zpracování dat. Základy databázových technologií souvisejí s hromadným zpracováním dat v podnicích, kdy bylo snahou vytvořit tzv. ASŘP (automatizovaný systém řízení dat podniku). Jako programovací jazyk se tehdy v hojné míře používal COBOL a eventuelně PL/1. První systémy řízení bází dat (SŘBD) se objevují v 2. polovině 60. let, vycházejí ze dvou přístupů -
soubory dat obsahující záznamy pospojované prostřednictvím ukazatelů (síťové a hierarchické databáze)
-
fyzicky nezávislé soubory dat (relační databáze)
První přístup zjednodušoval programování vazeb mezi daty, existující vazby mezi daty byly realizovány už při ukládání dat. Druhý přístup pro změnu disponuje tak silnými nástroji, jako je relační algebra, relační kalkul a dotazovací jazyky. Rozvoj relačních databázových systémů v 80. letech a jejich uplatnění v praxi (minulé i současné) by mohl vést ke klamnému závěru, že relace či tabulka je pro aplikace jediná a nejlepší možnost. V řadě případů se ale ukazuje, že relační databáze není vždy to optimální řešení (viz textové databáze, mapy, seismická data, snímky ze satelitů, inženýrské databáze, EKG, rentgenová data …). S rozvojem objektově orientovaných technologií a jejich využitím i v databázových systémech se zdálo, že řešením výše uvedených problémů je objektová technologie. Objekty dokonce měly nahradit tabulky a objektová technologie měla vítězně přivést databáze do třetího tisíciletí. Současnost ukazuje, že optimální patrně bude něco jako kompromis v podobě objektově relačních databází. Ve světě sice existuje v provozu ještě mnoho hierarchických i sítových databází, nicméně dlouhodobým trendem vždy byl přechod na relační databáze. Příliš mnoho na tom nemění ani dnešní tendence k objektové orientaci.
Chronologie Síťové databázové systémy 1965 – konference o databázových jazycích (CODASYL) se svým výborem Database Task Group (DBTG)- snaha vytvořit koncepci databázového systému 1971 – zpráva „The DBTG April 1971 Report" – definice základních DB pojmů (schéma databáze, jazyk pro definici schématu …)
1978 – výbor DBTG rozpuštěn, ve tvorbě standardů pokračuje DDLC (Data Description Language Committee) a PLC (Programming Language Committee) 1973, 1987, 1981 – aktualizace původního modelu CODASYL – implementace IDS II, DMS 1100, DBMS 11, TOTAL, u nás nejužívanější IDMS 1984 – rozpuštěn DDLC Hierarchické databáze konec 60. let – nemají standard, vycházejí ze SŘBD IMS (Information Management Systém fy IBM a North American Aviation pro program Apollo 1967 – dokončení projektu 1968 – další vývoj systému přebírá jiný tým, komerční verze IMS se stále používá na sálových počítačích (verze IMS/VS běží pod MVS) Relační databáze 1970 – článek E. F. Codda (pracovníka IBM) v časopise Communications of ACM – data jsou uložena v izolovaných souborech, data už nelze strukturovat, ale mění se úroveň pohledu na data – data jsou chápány jako tabulky, pro manipulaci s nimi jsou k dispozici nástroje jako relační algebra a kalkul. 1974 – jazyk Sequel (později SQL) Tento princip dovoloval úsporný přístup k datům, ale značně neefektivním způsobem. Tabulky totiž představovaly nezávislé soubory, takže bylo poněkud problematické a složité zajistit dostatečně efektivní postup při provádění dotazů. Uplynulo skoro 10 let, než se relační databázové technologie dostaly na takovou úroveň, aby byl jejich výkonu v praxi srovnatelný se stávajícími síťovými a hierarchickými DBS.
Základní pojmy Databáze (velmi obecná definice) – souhrn dat, která spolu logicky souvisejí, patří k sobě, jsou nějakým způsobem svázána (ne vždy je databáze realizována a zpracovávána pomocí prostředků VT) Databáze (dle Wikipedie) je určitá uspořádaná množina informací (dat) uložená na paměťovém médiu Příklad 1.1: Telefonní seznam realizovaný jako notýsek abecedně uspořádaná tištěná kniha databáze v mobilním telefonu databáze v PC spravovaná prostřednictvím specielního softwaru databáze na webovém serveru přístupná pomocí internetového prohlížeče Poznámka: Tato definice je velmi obecná, neboť přesně nevymezuje daný pojem (slova na stránce knihy spolu taky logicky souvisejí, ale nedá se říci, že se jedná o databázi) Data chápeme jako známá fakta, která se dají zaznamenat a mají určitý význam, smysl (v tomto případě nerozlišujeme mezi pojmy informace a data) Databázová technologie – unifikovaný soubor pojmů, prostředků a technik sloužící pro vytváření informačních systémů. Zabývá se řízením (správou) velkého množství perzistentních, konzistentních, spolehlivých, sdílených dat
Vlastnosti databáze: reprezentuje nějaké aspekty reálného světa představuje logicky spjatý souhrn dat s daným významem (náhodně uspořádaný soubor dat se v korektním slova smyslu nebere jako databáze) je navržena, zkonstruována a spravována s určitým záměrem, na datech určených ke specifickým účelům, má skupinu určitých uživatelů a specifické operace Jinými slovy, databáze má určitý zdroj, z něhož se odvozují data, určitý stupeň interakce s událostmi reálného světa a uživatele, kteří jsou zainteresováni na obsahu databáze. Databáze může být různě velká, mít různě komplikovanou strukturu, může být vytvářena a spravována ručně nebo pomocí prostředků VT Příklad 1.2: různě velké a různě spravované databáze Mzdová a osobní agenda malé firmy (cca 10zaměstnanců) – ručně zpracovávaná Kartotéka v knihovně – ručně nebo počítačově vedená Správa důchodového a sociálního zabezpečení Daňový úřad Katastrální úřad Systém řízení báze dat (SŘBD) Jedná se o souhrn programů, postupů a metod, které umožňují uživateli vytvářet a spravovat databáze. Jedná se o obecně použitelný softwarový systém se schopnostmi umožňujícími definovat, vytvářet a spravovat databáze pro nejrůznější aplikace definice databáze – specifikace datových typů, struktur a podmínek omezujících data (integritních omezení) konstrukce databáze – proces ukládání dat samotných na vhodné nosiče dat, který je řízen SŘBD správa databáze, přístup, manipulace s daty zahrnuje dotazovací a vyhledávací funkce, aktualizační operace, generace výstupů (sestav a nejrůznějších zpráv) Poznámka: Samozřejmě že ne každá počítačem spravovaná databáze musí být nutně univerzálním databázovým systémem, to by se v řadě případů nevyplatilo ani finančně, ani z hlediska konstrukce a správy databáze. Mnohdy je rozumnější vytvořit si (nechat si vytvořit) specielní aplikaci. Databázový systém = databáze + SŘBD
Obrázek 1.1
Příklad 1.3 Část univerzitní databáze PŘEDNÁŠKA
Název
Číslo Hodinov Katedra přednášky á dotace
Úvod do OOP Diskrétní matematika Matematická analýza Algoritmy
I123 M412 M421 I125
3 4 4 4
Informatika Matematika Matematika Informatika
STUDENT
OBORY STUDIA
PROSPĚCH
Jméno studenta
Číslo Ročník Katedra studenta
Adamec Petr Dvořáková Jana Kalousek Jiří Zelenková Eva
1111 2221 1113 1118
1 2 1 3
Informatika Matematika Psychologie Bohemistika
Id oboru
Id přednášky
Semestr
O11 O11 O12 O12 O12
I123 I123 I125 M412 M412
zimní letní zimní zimní zimní
Student
Předmět
Hodnocení
1118 2221 2221 1111
B123 I123 I125 I123
velmi dobře výborně dobře nevyhověl
Rok 96 96 96 96 96
Učitel Souček Zelenka Moravec Bláha Suchánek
Charakteristika databázového přístupu Databázový způsob zpracování souborů se liší v řadě charakteristik od tradičního přístupu při programování souborových aplikací. V tradičním souborovém zpracování každý uživatel definuje a implementuje soubory potřebné pro danou specifickou aplikaci. Například jeden uživatel udržuje a spravuje studijní agendu – veškerá nutná data týkající se studijních oborů, rozvrhu, zápisů studentů, zkoušek, zápočtů, jiný uživatel má na starosti ubytování studentů, další zase stravování studentů. I když všichni tito uživatelé pracují se stejnými daty, přesto každý z nich používá své vlastní izolované soubory (se specifickou strukturou), takže se data pochopitelně duplikují. Problémy: –
redundance dat s sebou přináší problém aktualizace dat a možné nekonzistence dat
–
víceuživatelský přístup
–
ochrana dat
–
zajištění integrity dat – kontrola přípustných hodnot dat v jednotlivých souborech může představovat složité programy
–
problém se vztahy mezi objekty – jak dodržet existující vazby (složitý kód)
–
realizace dotazů – co uživatelský dotaz, to program
Databázový přístup má tu výhodu, že veškerá data jsou uložená jen jednou, jsou přístupná pro nejrůznější uživatele Poznámka: Data se většinou nevyskytují redundantně, ale někdy je to v rámci snížení časové režie žádoucí Základní charakteristikou databázového systému je, že neobsahuje jen data, ale zahrnuje i kompletní definici a popis databáze. Tato definice je uložena v tzv. systémovém katalogu
(repository), informacím v katalogu se říká metadata. Katalog je využíván SŘBD a příležitostně i uživateli databáze, pokud potřebují znát údaje o struktuře databáze. SŘBD musí být vytvořen tak, aby mohl stejně dobře spravovat libovolnou databázi tj. pro získání informací o struktuře souborů konkrétní databáze, informace o typech a formátech dat se nutně musí odkazovat na katalog. Tradiční zpracování dat – data jsou typicky součástí programu, program je tedy omezen na jednu konkrétní databázi, při libovolné změně struktury dat je třeba přepsat odpovídajícím způsobem všechny programy, které k danému datovému souboru přistupují Příklad 1.4: definice dat pomocí klasických programovacích jazyků -
PASCAL (definice typů a záznamů) C (definice struktur) COBOL (popis dat v DATA DIVISION)
Databázové technologie - SŘBD musí zvládnout libovolnou databázi pochopitelně s využitím informací z katalogu. SŘBD je psáno nezávisle na konkrétních souborech, struktura dat je uložena v datovém katalogu (datový slovník). Při změně struktury dat není nutné zasahovat do kódu tj. měnit nějakým způsobem programy SŘBD, neboť provedená změna se odrazí v katalogu – tuto vlastnost nazýváme program – datová nezávislost. OO programovací jazyky a OO databáze – dovolují definovat operace s daty jako součást popisu dat tj. v popisu daného objektu (třídy) jsou dohromady zahrnuta data (atributy) a funkce pro manipulaci s těmito daty (metody), přesněji řečeno pouze interface těchto funkcí (hlavičky funkcí). Vlastní implementace je psána odděleně od popisu dat a dá se tedy změnit, aniž je nutné měnit interface. Uživatel tak může pracovat s daty prostřednictvím těchto operací nezávisle na tom, jak jsou implementovány. Tento jev označujeme jako nezávislost program – operace. Odtud dále odvozujeme pojem datová abstrakce datová abstrakce = nezávislost program – data + nezávislost program – operace Jak už bylo dříve řečeno, při databázovém přístupu je detailní struktura a organizace každého souboru uložena v katalogu. Databázoví uživatelé se odkazují na konceptuální reprezentaci souborů a SŘBD vybírá z katalogu detaily o uložení jednotlivých souborů podle potřeby. K zajištění této datové abstrakce se používá řada databázových modelů, o nichž se bude dále hovořit. Současný vývojový trend směrem k objektově-orientovaným databázím posouvá abstrakci o jednu úroveň výše, protože zahrnuje nejen datovou strukturu, ale i operace s daty. V tomto smyslu se hovoří o abstraktních operacích. Příklad 1.5 Operace VypocetPrumeru se aplikuje na objekt Student s účelem zjistit průměrný prospěch studenta – uživatel může tuto operaci použít, aniž by věděl, jak vlastně je implementována. (Má vlastně k dispozici řadu takovýchto operací nad objekty.) Podpora vícenásobných pohledů na data - databáze je využívána mnoha uživateli, z nichž každý obecně může mít jiný pohled na data, srozumitelněji řečeno každý uživatel potřebuje jen vybraná data z databáze pro danou konkrétní úlohu, tj. každý si vybere nebo odvodí data, která potřebuje, o ostatních údajích v databázi nemusí ani vědět (souvisí i s ochranou dat viz dále) Sdílení dat a provádění víceuživatelských transakcí - SŘBD musí zajistit současný přístup k datům pro více uživatelů, musí obsahovat software potřebným k řízení vícenásobného přístupu k datům, tj. pokud se několik uživatelů současně pokouší aktualizovat tatáž data, aby tato činnost
neprobíhala náhodně a nekontrolovaně, aby výsledky těchto transakcí byly správné. (Musí být např. zajištěno, že jedna místenka ve vlaku nebude přidělena vícekrát různými úředníky za přepážkou.) – transakční zpracování. SŘBD by měl také poskytovat prostředky k zajištění bezpečnosti dat a zabránění neautorizovanému přístupu.
Shrnutí 3 základní charakteristiky databázové technologie oddělení (izolace) programu a dat podpora vícenásobných pohledů použití katalogu k uložení informací o databázi Ideální vlastnosti databázového systému vyšší datová abstrakce – SŘBD zahrnují manipulační jazyky pro práci s datovými strukturami vyšší úrovně nezávislost aplikačních programů na změnách ve fyzickém uložení dat – změna fyzické struktury dat nepředstavuje potřebu měnit aplikační programy ochrana dat před neoprávněným přístupem a před poruchami – SŘBD disponuje mechanismy zajišťující přístup k datům pouze oprávněným uživatelům, zahrnuje obnovovací systémy umožňující provést rekonstrukci dat po fyzické či jiné havárii systému neredundantnost dat – každý údaj je v databázi většinou uložen jen jednou sdílení dat – v jednom konkrétním časovém okamžiku mohou být tatáž data využívána více uživateli – z různých aplikací může být zajištěn současný přístup ke stejným datovým zdrojům konzistence dat - SŘBD hlídá, aby v rámci datových aktualizací nedošlo k uvedení dat do takového stavu, který by nevyhovoval integritním omezením dat (podmínky omezující data podle reálných požadavků na data)
Osoby na scéně Správce databáze (administrátor databáze) - je zodpovědný za správu databáze a i SŘBD. Přiděluje a odebírá přístupová práva, koordinuje a sleduje využívání databáze, stará se o využívání softwarových a hardwarových zdrojů. Řeší problémy týkající se porušení bezpečnosti nebo např.příliš vysoké doby odezvy systému. Ve větších organizacích má k dispozici asistenty, kteří mu pomáhají zajišťovat bezproblémový chod a správu databáze. Databázoví návrháři - zodpovídají za určení dat, která se budou ukládat do databáze, za výběr odpovídající struktury pro uložení data, za komunikace se všemi potenciálními uživateli databáze a za návrh databáze, který nejlépe vyhovuje požadavkům uživatelů. Systémoví analytici - definují požadavky koncových uživatelů (specielně „naivních“ uživatelů) a formulují na základě těchto požadavků specifické úlohy tzv. „uzavřené transakce“ (canned transaction) Aplikační programátoři - implementují specifické požadavky systémových analytiků jako programy, testují, ladí, vytvářejí dokumentaci a udržují v chodu tyto specifické transakce.
Osoby za scénou návrháři SŘBD – navrhují a implementují SŘBD moduly a interface jako softwarové balíky (jedná se např. implementaci databázového katalogu, dotazovacího jazyka, přístupu k datům). návrháři nástrojů – navrhují dodatečné nástroje a pomůcky jako je např. jazyková podpora, specielní grafické rozhraní, simulace a generace testovacích dat, generace sestav … operátoři a obslužný personál – mají na starosti aktuální chod a obsluhu hardwaru a softwaru
Koncoví uživatelé databáze příležitostní uživatelé - potřebují nejrůznější informace, k jejichž získání používají obvykle dotazovací jazyk nebo různé prohlížeče a manažery naivní uživatelé - využívají hotové aplikační programy pro provádění transakcí v databázi (bankovní transakce, rezervace letenek, pokojů v hotelích, aut v půjčovnách…) zkušení uživatelé - inženýři, vědci, obchodní manažeři, … kteří jsou dobře obeznámeni s možnostmi a vlastnostmi SŘBD stand-alone uživatelé
Obrázek 1.2:
SŘBD poskytuje uživateli tzv. konceptuální reprezentaci dat - konceptuální schéma, které do určité míry formalizovaně, ale dostatečně srozumitelně a názorně popisuje danou aplikaci (reálný svět), nikoliv fyzickou reprezentaci dat. Konceptuální schéma je implementačně nezávislé a slouží jako společný základ pro chápání objektů uživateli, projektanty integraci uživatelských pohledů a návrh implementace zobrazení mezi uživatelskými pohledy a fyzickým uložením dat
Datový model - typ datové abstrakce používající se jako vyjádření konceptuální reprezentace (logická úroveň - objekty, jejich vlastnosti, vztahy, nikoliv způsob uložení dat). Datový model vlastně „ukrývá“ detaily o fyzické reprezentaci dat, což většinu uživatelů nemusí zajímat nebo tomu ani nerozumějí. Dříve uvedený př. 1.3 je konceptuální reprezentací databáze univerzity. Příklad 1.6 : Fyzická reprezentace př. 1.3 type STUDENT = record jmeno cislo rocnik katedra
: : : :
string [30]; integer; 1..5; string[20];
end;
Třístupňová (tříúrovňová) architektura databázového systému 1. Vnitřní (interní) úroveň má interní schéma, které popisuje fyzickou strukturu databáze – používá fyzický datový model a popisuje kompletní detaily týkající se uložení dat na nosičích dat a přístup k datům 2. Konceptuální úroveň má konceptuální schéma, které popisuje strukturu (logickou) celé databáze pro celé společenství uživatelů – zaměřuje se na popis entit, datových typů, relací, uživatelských operací a integritních omezení. Na této úrovni je použit vysokoúrovňový datový model nebo implementační datový model 3. Externí úroveň (úroveň založenou na uživatelském pohledu) představuje celou skupinu externích schémat nebo uživatelských pohledů. Popisuje se vždy ta část databáze, o kterou se zajímá jeden konkrétní uživatel, zbytek dat zůstává před tímto uživatelem skryt. Na této úrovni se také používají vysokoúrovňové či implementační datové modely. Poznámka: Většina SŘBD neodděluje striktně tyto tři úrovně, ale řada z nich toto třístupňové schéma podporuje. Některé SŘBD zahrnují fyzickou úroveň do konceptuálního schématu. Ve většině SŘBD podporujících uživatelské pohledy je externí schéma specifikováno v tomtéž modelu, který zahrnuje i konceptuální informace. Poznámka: Třístupňová architektura je pouze popis dat! Jediná data, která skutečně existují, existují na fyzické úrovni. Je-li SŘBD postaven na třístupňové architektuře, pak se každý uživatel může odkazovat na své vlastní externí schéma. Ovšem SŘBD musí transformovat požadavek vznesený na externí schéma na požadavek na konceptuální schéma a odtud na požadavek na interní schéma. Pokud se jedná například o výběrový požadavek (dotaz), pak se odpovídající data, která byla vlastně vybraná ze skutečně existujících fyzických dat uložených na vhodném nosiči, musí přeformátovat do tvaru odpovídajícímu příslušnému externímu uživatelskému pohledu. Proces transformace uživatelských požadavků a výsledků zpracování mezi jednotlivými úrovněmi se nazývá mapování. Tento proces může mít za následek zvýšení časové režie, takže některé SŘBD, specielně ty, co podporují malé databáze, nepodporují externí pohledy. (Nicméně tím se neodstraní mapování mezi úrovní konceptuální a interní.)
Obrázek 1.3:
Třístupňová architektura se používá k vysvětlení koncepce datové nezávislosti – definuje se jako schopnost změnit schéma na jedné úrovni, aniž je nutné změnit schéma úrovně vyšší. Rozlišujeme dva typy datové nezávislosti: logická datová nezávislost – je možné změnit konceptuální schéma a není nutné měnit externí schéma (můžeme „rozšířit“ databázi – přidat záznamy nebo datové položky nebo zúžit databázi – zrušit záznamy a položky a není nutno měnit externí schéma – tedy za předpokladu, že jsme neodebrali něco, co je zahrnuto do externího schématu). fyzická datová nezávislost – možnost změnit interní schéma bez toho, že by bylo nutné změnit konceptuální či dokonce externí schéma. Poznámka: Kdykoliv uvažujeme víceúrovňový SŘBD, jeho katalog (datový slovník) musí být rozšířen o informace potřebné k mapování požadavků a dat mezi jednotlivými úrovněmi – SŘBD k tomu používá dodatečný software. Pokud je zajištěna datová nezávislost, znamená to, že změnou schématu v jedné úrovni se nemusí měnit jiné schéma – vlastně se mění jen mapování, nemá to vliv na samotný aplikační software. Ovšem dvouúrovňové mapování může během kompilace či provádění dotazů nebo programu být poněkud neefektivní, takže jen málo SŘBD implementuje plně třístupňovou architekturu.
Architektura DB systému centralizovaná jednovrstvá izolovaná terminál – DB server (viz obrázek 1.4) PC – file server (viz obrázek 1.5) dvouvrstvá klient „front-end“ – server „back-end“ (viz obrázek 1.6) třívrstvá klient – aplikační server – DB server (viz obrázek 1.7) distribuovaná více DB serverů (viz obrázek 1.8) replikace téže DB vybrané podmnožiny DB
Obrázek 1.4
Obrázek 1.5
Obrázek 1.6
Obrázek 1.7
Obrázek 1.8
Typy DBS předrelační
hierarchické
síťové
relační
architektura mainframe
architektura PC - file server
architektura klient - server
postrelační
objektově relační
objektově orientované
deduktivní
distribuované
Databázové jazyky Jakmile je hotov návrh databáze a je vybrán určitý SŘBD k její implementaci, první krok, který následuje, je specifikovat konceptuální a interní schéma a potřebná mapování mezi nimi. Jazyk pro definici dat (JDD) – pomocí tohoto jazyka se definuje konceptuální a interní schéma databáze – je používán návrháři databáze. Jazyk pro definici uložení dat (storage definition language) – používá se ke specifikaci interního schématu v těch systémech, v nichž je striktně oddělena konceptuální a interní úroveň. Pro mapování mezi jednotlivými úrovněmi se pak používá jeden z výše uvedených jazyků. Jazyk pro definici pohledu (JDP) – používá se k definování nejrůznějších uživatelských pohledů (souvisí s externí úrovní - viz třístupňová neboli tříúrovňová architektura). Jazyk pro manipulaci dat (JMD) – používá se jako jazyk pro manipulaci s daty v databázi tj. nejrůznější výběry dat, vkládání nových údajů, opravy stávajících dat a rušení údajů. Existují dva hlavní typy těchto jazyků neprocedurální (vysokoúrovňové) jazyky používající se k provádění komplexních databázových operací. SRBD dovoluje, aby příkazy těchto vysokoúrovňových jazyků byly prováděny buďto interaktivně z terminálů (pak hovoříme obvykle o dotazovacích jazycích), nebo jsou tyto příkazy zahrnuty jako součást univerzálních (víceúčelových) programovacích jazyků. nízkoúrovňové jazyky pro manipulaci dat musí být zahrnuty do univerzálního programovacího jazyka. Tyto druhy JMD typicky vybírají jednotlivé záznamy z databáze a zpracovávají každý záznam odděleně. (Jsou proto označovány jako záznamově orientované jazyky, protože pracují vždy s jedním záznamem tzv. record -in-time jazyky, na rozdíl od vysokoúrovňových JMD, které pomocí jediného příkazu zpracovávají mnoho záznamů tj. set-in-time JMD.) Poznámka: Pokud jsou JMD součástí univerzálního programovacího jazyka, pak je tento označován jako hostitelský jazyk a JMD je chápán jako jeho subjazyk.
Současné jazyky relační systémy – základem je jazyk SQL (SQL87, SQL89, SQL92, SQL99 …) poslední standard ISO/IEC 9075-1:2003 jiné typy db jazyka – SŘBD dBASE, FoxPro … obecné programovací jazyky
použití rozhraní OCI, ODBC, JDBC, …
začlenění speciální příkazy – Pascal, C, …
jazyky 4GL (Fourth Generation Language) – formulářové jazyky – tvorba uživatelsky příjemného rozhraní – okna, formuláře, menu
Literatura: [1] ELMASRI, R., NAVATHE, S., B. Fundamentals of Database Systems, 5th edition. AddisonWesley, 2007. ISBN 978-03-213-6957-4. [2]
SILBERSCHATZ, A., KORTH H. F., SUDARSHAN S. Database System Concepts, 5th edition, New York: McGraw-Hill, 2006. ISBN 978-0-07-295886-7
[3] CONOLLY, T., BEGG, C., HOLOWZAK R. Profesionální průvodce tvorbou databází. Praha: Computer Press, a. s., 2009. ISBN 978-80-251-2328-7. [4] HERNANDEZ, M., J. Návrh databází. Praha: Grada, 2006. ISBN 80-247-0900-7. [5] POKORNÝ, J. Databázová abeceda. Veletiny: Science, 1998, ISBN 80-86083-02-2. [6] POKORNÝ, J., HALAŠKA, I. Databázové systémy, 2. vydání. Praha Vydavatelství ČVUT, 2003, ISBN 80-01-02789-9.