Databázové systémy. Vilém Vychodil. V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 1 / 31

Podobné dokumenty
Databázové systémy úvod

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Databázové systémy úvod

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Databázové systémy. Úvod do teorie normalizace. Vilém Vychodil

Databázové systémy úvod

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Databázové systémy trocha teorie

předměty: ukončení: Zápočet + Zkouška / 5kb např. jméno, název, destinace, město např. student Jan Novák, narozen

1 Úvod. J. Zendulka: Databázové systémy - 1 Úvod 1

Databázové systémy BIK-DBS

Použití databází na Webu

8.2 Používání a tvorba databází

J. Zendulka: Databázové systémy - 1 Úvod Intuitivní vymezení pojmu databáze

Databáze II. 1. přednáška. Helena Palovská

POKROČILÉ POUŽITÍ DATABÁZÍ

Databázové a informační systémy

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

Geografické informační systémy p. 1

Nerelační databázové modely. Helena Palovská

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např.

Ukládání a vyhledávání XML dat

Úvod do databázových systémů. Ing. Jan Šudřich

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Objektově orientované databáze. Miroslav Beneš

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

Tvorba informačních systémů

37. Indexování a optimalizace dotazů v relačních databázích, datové struktury, jejich výhody a nevýhody

Analýza a modelování dat 3. přednáška. Helena Palovská

Úvod do databázových systémů

Analýza dat a modelování. Přednáška 3

Databáze 2013/2014. Konceptuální model DB. RNDr. David Hoksza, Ph.D.

Úvod do databázových systémů. Lekce 1

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

Databáze v MS ACCESS

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Databáze I. 1. přednáška. Helena Palovská

Objektově relační databáze a ORACLE 8

Michal Krátký, Miroslav Beneš

Informační systémy ve zdravotnictví. 6. cvičení

Tvorba informačních systémů

Architektura softwarových systémů

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Obsah přednášky. Databázové systémy RDBMS. Fáze návrhu RDBMS. Coddových 12 pravidel. Coddových 12 pravidel

Okruhy z odborných předmětů

Úvod, terminologie. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 1

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1

Databázové systémy. Vilém Vychodil. V. Vychodil (KMI/DATA1, Přednáška 3) Základní relační operace Databázové systémy 1 / 37

Správa dat v podniku. MI-DSP 2013/14 RNDr. Ondřej Zýka, ondrej.zyka@profinit.eu

Oracle XML DB. Tomáš Nykodým

4. lekce Přístup k databázi z vyššího programovacího jazyka

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1

04 - Databázové systémy

Úvod do databázových systémů

Databázové systémy. Integritní omezení. Vilém Vychodil. V. Vychodil (KMI/DATA1, Přednáška 9) Integritní omezení Databázové systémy 1 / 33

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu

Paradigmata programování 1

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

MBI - technologická realizace modelu

Technické informace. PA152,Implementace databázových systémů 4 / 25. Projekty. pary/pa152/ Pavel Rychlý

Databázové systémy I. 1. přednáška

Databáze SQL SELECT. David Hoksza

Databáze I. 5. přednáška. Helena Palovská

Úvod. Programovací paradigmata

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d

Databázové systémy Cvičení 5.2

Úvod do databázových systémů

J. Zendulka: Databázové systémy 4 Relační model dat 1

A5M33IZS Informační a znalostní systémy. O čem předmět bude? Úvod do problematiky databázových systémů

Analýza a modelování dat 2. přednáška. Helena Palovská

Tvorba informačních systémů

Základní informace o co se jedná a k čemu to slouží

Marketingová komunikace. 1. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK3PH (vm3aph)

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

DUM 11 téma: Databázové jazyky a servery

Kolaborativní aplikace

Lekce 6 - Správa prostorových dat

Programování a implementace Microsoft SQL Server 2014 databází

TEORIE ZPRACOVÁNÍ DAT

Novinky v Microsoft SQL Serveru RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Fyzické uložení dat a indexy

Ukázka knihy z internetového knihkupectví

4IT218 Databáze. 4IT218 Databáze

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15

DATABÁZE, ATRIBUTY. SPŠS Č.Budějovice Obor Geodézie a Katastr nemovitostí 3.ročník

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Profilová část maturitní zkoušky 2017/2018

Databázové systémy úvod

Operátory ROLLUP a CUBE

Úvod do databázových systémů

Databázové systémy. Relační model dat. Vilém Vychodil. V. Vychodil (KMI/DATA1, Přednáška 2) Relační model dat Databázové systémy 1 / 43

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Marketingová komunikace. 1. a 2. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3bph)

Transkript:

Databázové systémy Úvod do databázových systémů Vilém Vychodil KMI/DATA1, Přednáška 1 Databázové systémy V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 1 / 31

Přednáška 1: Přehled 1 Základní pojmy: databázový systém, formální model/implementace, model dat, dotazovací jazyk, architektura databázového systému, systém řízení báze dat. 2 Přehled modelů dat: souborový model, síťový model, hierarchický model, relační model, objektové modely, relačně/objektové modely, další modely (modely pro semistrukturovaná data). 3 Přehled relačních systémů řízení báze dat: uzavřená/otevřená řešení, PostgreSQL (základní charakteristika), příklady práce s databází. V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 2 / 31

Přehled kursu 1 Úvod do databázových systémů 2 Relační model dat 3 Základní operace s relacemi 4 Přirozené spojení 5 Relační operace odvozené ze spojení 6 Sumarizace, vnořené dotazy, dělení 7 Integritní omezení 8 Úvod do funkčních závislostí 9 Reprezentace hierarchických struktur 10 Transakční zpracování dat 11 Fyzická struktura databáze 12 Algoritmy pro vyhodnocování dotazů V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 3 / 31

Literatura (hlavní zdroje) Date C. J.: Database in Depth: Relational Theory for Practitioners O Reilly Media 2005, ISBN 978 0596100124 Date C. J.: An Introduction to Database Systems Addison-Wesley 2003, ISBN 978 0321197849 Date C. J.: SQL and Relational Theory: How to Write Accurate SQL Code O Reilly Media 2011, ISBN 978 1449316402 Date C. J., Darwen H.: Foundation for Object/Relational Databases Addison-Wesley Professional 1998, ISBN 978 0201309782 Date C. J., Darwen H.: Databases, Types and the Relational Model Addison Wesley 2006, ISBN 978 0321399427 Date C. J.: Logic and Databases: The Roots of Relational Theory Trafford Publishing 2007, ISBN 978 1425122904 V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 4 / 31

Literatura (vedlejší zdroje) Abiteboul S., Hull R., Vianu V.: Foundations of Databases: The Logical Level Addison-Wesley 1994, ISBN 978 0201537710 Atzeni P., Batini C., De Antonellis V.: Relational Database Theory Addison Wesley 1993, ISBN 978 0805302493 Celko J.: Joe Celko s Trees and Hierarchies in SQL for Smarties Morgan Kaufmann 2012, ISBN 978 0123877338 Garcia-Molina H., Ullman J., Widom J.: Database Systems: The Complete Book Prentice Hall 2008, ISBN 978 0131873254 Maier D: Theory of Relational Databases Computer Science Press 1983, ISBN 978 0914894421 Simovici D.: Tenney R.: Relational Database Systems Academic Press 1995, ISBN 978 0126443752 V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 5 / 31

Co je databázový systém databáze (angl.: data base): kolekce perzistentních dat používaných aplikacemi nějakého subjektu perzistence = data přetrvávají výpočetní proces, který je vytvořil příklad: subjekt = univerzita, aplikace = studijní agenda, výzkumná agenda databázový systém, angl.: database system Systém pro organizaci, definici, manipulaci a dotazování nad perzistentními daty, který lze popsat jako množinu algoritmů pracujících s daty v určeném tvaru. často chápán dvojím způsobem: 1 jako teorie, tj. formální model (přesně definovaný a který lze zkoumat) 2 jako konkrétní softwarová implementace vycházející z teorie (viz bod 1 ) pro naše účely: data = informace (nerozlišujeme význam) V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 6 / 31

Co je model dat (formální) model dat, angl.: data model Množina abstraktních a soběstačných formálních definic datových struktur a operací s daty (případně dalších operací, omezení a podobně), které dohromady tvoří formální výpočetní model, se kterým mohou uživatelé interagovat. poznámky: existuje několik různých formálních modelů dat (viz přehled dále) stále je potřeba rozlišovat formální model jeho implementace model dat (určitého subjektu) Přesněji: model databáze návrh nebo implementace organizace dat určitého subjektu (např. návrh organizace dat studijní agendy subjektu univerzita ). V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 7 / 31

Formální model dotazovací jazyk kategorie jazyků souvisejících s formálními modely dotazovací jazyk (angl.: query language, zkráceně QL) = jazyk pro vyjadřování dotazů (angl.: queries) pro získávání dat z databáze jazyk pro definici dat (angl.: data definition language, zkráceně DDL) = jazyk pro popis typu a struktury dat, která budou v databází uložena jazyk pro modifikaci dat (angl.: data modification language, zkráceně DML) = jazyk pro vkládání, aktualizaci a mazání dat v databázi jazyky používají (typicky) uživatelé různých rolí: administrátor databáze jazyk pro definici dat uživatel databáze dotazovací jazyk, jazyk pro modifikaci dat k jednomu formálnímu modelu typicky existuje víc jazyků dané kategorie (!!) (např. pro relační model dat jsou jazyky SQL, QUEL, Tutorial D,... ) V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 8 / 31

Tři vrstvy architektury databázového systému fyzická vrstva, angl.: physical level: nejnižší vrstva, zabývá se fyzickým (efektivním a perzistentním) uložením dat zajímavá z pohledu implementace DB systému, pro uživatele (téměř) nezajímavá logická vrstva, angl.: logical level: vrstva mezi fyzickou a externí vrstvou, abstrahuje od fyzického uložení dat externí vrstva, angl.: external level: definuje, jakým způsobem jsou data reprezentována pro konkrétní uživatele umožňuje individuální pohled na databázi (poskytuje individuální služby) poznámky: budeme se zabývat převážně logickou a externí vrstvou, fyzickou minimálně ANSI/SPARC Study Group on Database Management Systems (1975) V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 9 / 31

Systém řízení báze dat (SŘBD) systém řízení báze dat, angl.: database management system (DBMS) Programový celek implementující databázový systém vycházející z určitého formálního modelu dat a poskytující následující služby: souběžný víceuživatelský přístup k databázi (neblokované zpracování dotazů), transakční zpracování dat (atomicita, konzistence, izolace, trvanlivost), perzistentní uložení dat a systém zotavení z chyb (žurnálování dat), integritní omezení (prevence vytvoření nesmyslných nebo nekonzistentních dat), bezpečnost přístupu k datům (autorizovaný přístup, šifrování),. poznámky: složitostí implementace jsou vyspělé SŘBD srovnatelné s operačními systémy malé (účelově vytvořené) SŘBD neposkytují všechny uvedené služby V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 10 / 31

Typická struktura SŘBD překladač dotazů vykonávač plánů správce záznamů správce bufferů plán záznam stránka r/w správce úložišť r/w správce transakcí správce žurnálu stránka buffery překladač definic dat kontroler souběžnosti tabulka zámků V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 11 / 31

Přehled modelů dat (paradigmat databázových systémů) souborový model historicky nejstarší (cca 1955 ) začátky: Grace M. Hopper, jazyk FLOW-MATIC (později COBOL) síťový model Charles Bachman (1969, vývoj trval enormní dobu) grafový pohled na schéma databáze (model je komplikovaný a přežitý) hierarchický model IBM (cca 1960, přežitý model ale zažívá renesanci, XML) lze chápat jako zjednodušení síťového modelu (grafy jsou nahrazeny stromy) relační model Edgar F. Codd (1969, rychlý rozmach, dnes mainstream) model založený na pojmu n-ární relace s úzkou vazbou na predikátovou logiku objektové modely mnoho modelů, 1989 Statice (Symbolics Inc.) perzistentní uložení objektů, obvykle omezené možnosti dotazování relačně/objektové modely víc návrhů, různá úroveň, 1990 pokusy o doplnění objektových rysů do relačního modelu další modely vše, co se nevešlo do předchozí klasifikace (hodně) modely pro key-value databáze, semistrukturovaná data, XML databáze,... V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 12 / 31

Přehled paradigmat: Souborový model charakteristika: historicky první databázové systémy, dávkové zpracování dat (50. léta) data uložena jako množina záznamů stejného typu v souborech (angl.: flat files) textový/binární formát souborů (např. řádky v CSV souborech/bloky oktetů) omezené využití (soubory /etc/passwd, /etc/groups, /etc/shadow,... ) vlastnosti: + jednoduchý systém lze snadno udělat na koleně (absence SŘBD) nedostatečná abstrakce (prakticky se jedná o model fyzické vrstvy) omezené možnosti dotazování (jako vrať záznam na dané pozici v souboru ) nechtěná redundance dat (jedna data uložená na víc místech) neexistence transakcí (možnost uvést databázi do nekonzistentního stavu) komplikované nebo nemožné sdílení mezi síťovými aplikacemi V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 13 / 31

Přehled paradigmat: Síťový model charakteristika: překonané paradigma (stále používané, především na systémech typu mainframe), databáze jsou organizovány pomocí dvou základních typů databázových objektů: záznamy (angl.: records) obsahují pojmenované položky (datové jednotky) odkazy (angl.: links) reprezentují vazby mezi záznamy (= ukazatele) IDMS (1973 ), model ožívá jako grafové databáze (např. Neo4j) vlastnosti: + vykonávání dotazů může být extrémně rychlé (při dobrém návrhu databáze) + reprezentace dat může být úsporná (při dobrém návrhu databáze) formální model je extrémně složitý (komplikovaná analýza modelu) dotazování je málo deklarativní, převládá procedurální manipulace s ukazateli asymetrie v dotazech (komplikované nebo nemožné ad hoc dotazy) V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 14 / 31

Příklad (Síťový diagram v síťovém modelu) typy záznamů (ne jednotlivé záznamy) jsou zakresleny jako uzly odkazy jsou zakresleny jako pojmenované neorientované hrany ZEMĚ je rezidentem OSOBA v OKRES je situována v BUDOVA pracuje v má zastoupení v FIRMA vlastní poznámka: odkazy mohou být typu 1 : 1, 1 : N, nebo M : N V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 15 / 31

Příklad (Diagram datové struktury v síťovém modelu) odkazy jsou pouze typu 1 : 1 nebo 1 : N a zakreslují se jako orientované hrany odkazy typu M : N se redukují na odkazy 1 : N přidáním pomocného záznamu orientované hrany lze chápat jako ukazatel (jdeme proti směru šipky ) ZEMĚ je rezidentem OSOBA v OKRES je situována v BUDOVA pracuje v situované v vlastní ZASTOUPENÍ má zastoupení FIRMA asymetrie: V které budově pracuje osoba? Které osoby pracují v budově? V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 16 / 31

Příklad (Fyzická datová struktura v síťovém modelu) obecně existuje víc záznamů daného typu (záznamy značeny ) ZEMĚ OSOBA OKRES BUDOVA ZASTOUPENÍ FIRMA V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 17 / 31

Přehled paradigmat: Hierarchický model charakteristika: zjednodušený pohled na síťový model diagram struktury je (uspořádaný) strom: záznamy (angl.: records) obsahují pojmenované položky (datové jednotky) odkazy (angl.: links) reprezentují vazby mezi záznamy (= ukazatele) přitom musí být splněny následující podmínky: každý typ záznamu (až na kořenový) má právě jednoho předchůdce je definováno pořadí potomků všech uzlů implementačně jednodušší než obecné síťové modely, IMS (IBM, 1966 ) vlastnosti: + vykonávání dotazů může být extrémně rychlé (při dobrém návrhu databáze) + reprezentace dat může být úsporná (při dobrém návrhu databáze) dotazování je založeno na prohledávání stromů (do hloubky/šířky) asymetrie v dotazech V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 18 / 31

Příklad (Diagram struktury v hierarchickém modelu) typy záznamů a odkazy = strom záznamy a fyzické ukazatele = množina stromů FIRMA VEDENÍ POBOČKA ŘEDITEL ÚČETNÍ V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 19 / 31

Přehled paradigmat: Relační model charakteristika: jeden typ databázových objektů: relace (nad relačními schématy) je matematický pojem n-ární relace = formální protějšek pojmu datová tabulka formalizuje základní data, výsledky dotazů i vztahy mezi daty Codd, E. F.: A relational model of data for large shared data banks Communications of the ACM 13: 6 (1970) vlastnosti: + dobrý teoretický model, který lze navíc efektivně implementovat + od počátku formalizuje i související fenomény (závislosti v datech, normalizace) + logická nezávislost dat fyzická a logická vrstva je oddělena + model je referenčně transparentní + k dispozici hodně kvalitativně různých SŘBD cílených na různou klientelu čistý relační model žádný (komerčně nasaditelný) SŘBD neimplementuje V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 20 / 31

Příklad ( Datové tabulky v relačním modelu dat) jmeno id rodne-cislo Adams 12345 571224/4023 Black 33355 840525/6670 Chang 66066 891117/1024 stuid rok predmet typ 12345 2013 KMI/DATA1 A 12345 2013 KMI/FJ B 33355 2012 KMI/DATA1 A 33355 2013 KMI/DATA2 B 33355 2013 KMI/PP1 A 66066 2012 KMI/DATA1 C stuid rok predmet vysl datum 12345 2013 KMI/DATA1 95% 18/01/13 12345 2013 KMI/FJ FAIL 25/06/13 12345 2013 KMI/FJ 35% 27/06/13 33355 2012 KMI/DATA1 FAIL 18/01/13 66066 2012 KMI/DATA1 FAIL 19/01/13 66066 2012 KMI/DATA1 85% 06/02/13 V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 21 / 31

Přehled paradigmat: Objektové databáze charakteristika: objektová databáze = perzistentní objektový systém Statice (1989, první komerčně použitelný systém), Elephant (open-source řešení) vlastnosti: + odpadá mapování databázových elementů na objekty v programovacím jazyku + práce s objekty je principiálně stejná jako s neperzistentními objekty + podporuje očekávané objektové rysy, např. dědičnost neexistuje rozumný (a jednoduchý) formální model serializace může být výkonnostní problém (u komplikovaných struktur) v mnoha ohledech je podobné síťovému modelu (vzájemné odkazy mezi objekty) dotazování je málo deklarativní, převládá procedurální manipulace podporuje pouze jednoduché typy dotazů (typicky vyhledávání podle rovnosti) V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 22 / 31

Příklad (Perzistentní objektová databáze elephant) (ql:quickload "elephant") (use-package :elephant) (defclass pair () ((x :accessor pair-x :initarg :x :index t) (y :accessor pair-y :initarg :y)) (:metaclass persistent-metaclass)) (with-open-store (*connection-spec*) (let* ((a (make-instance pair :x 100 :y nil)) (b (make-instance pair :x 200 :y a))) (setf (pair-y a) b))) (with-open-store (*connection-spec*) (get-instances-by-value pair x 200)) V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 23 / 31

Přehled paradigmat: Objektové relační databáze charakteristika: snaha zkombinovat relační model a objektové paradigma mnoho koncepčně různých (správných i nesprávných) přístupů dva hlavní typy přístupů: 1 nesprávný přístup: perverzní rozšíření relačního modelu o reference relační model de facto degeneruje na síťový model všechny výhody relačního modelu jsou ztraceny 2 správný přístup: přijmeme fakt, že relační typy = třídy a hodnoty = objekty + zavádí subtypování do relačního modelu (koerce obecně ne) + je referenčně transparentní, objekty lze pouze konstruovat, ne mutovat + zachovává flexibilitu relačního dotazování (pokud je model dobře implementovaný) Date C. J., Darwen H.: Foundation for Object/Relational Databases Addison-Wesley Professional 1998, ISBN 978 0201309782 V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 24 / 31

Přehled paradigmat: Další modely key-value databáze perzistentní asociační struktura (ukládání/vyhledávání hodnot podle klíčů) Berkeley DB (C, Java verze), Redis (RAM databáze, možnost perzistence) + rychlost, spolehlivost, velká míra nasazení obvykle pouze jednoduché typy dotazování modely pro semistrukturovaná data semistrukturovaná data je poněkud vágní pojem dokumentově orientované databáze (XML, YAML, JSON, BSON,... ) MongoDB, CouchDB, OrientDB výhodami a nevýhodami podobné síťovému modelu poznámka: obskurní pojem NoSQL označující nerelační databáze (!!) V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 25 / 31

Dostupné relační SŘBD uzavřená řešení: Oracle (Oracle), MS SQL Server (Microsoft), DB2 (IBM),... + obvykle dobrá podpora, stabilita, ověřeno dlouhým provozem cena, software je blackbox (často obří monolit) otevřená řešení: Ingres (1973, UC Berkeley, http://www.actian.com/products/ingres) komerční podpora od Actian Corporation; podporuje SQL a QUEL MariaDB (1995, komunitní fork MySQL, http://mariadb.org/) velký počet nasazení, nezávislé storage engines (fyzická vrstva DB) PostgreSQL (1985, http://postgresql.org/) vyzrálý velký databázový systém, dobrá programovatelnost SQLite (2000, http://sqlite.org/) embedded databáze, nepotřebuje spuštěný server, nejpoužívanější SQL engine V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 26 / 31

PostgreSQL historie vývoje: UC Berkeley (1986, M. Stonebraker) projekt navazující na databázi Ingres nejprve dotazovací jazyk POSTQUEL, později SQL (Postgres95, PostgreSQL) současnost (9. září 2013): verze 9.3 důležité rysy: + drží se standardů: implementuje ISO SQL + velká databáze funkčně a výkonově srovnatelná s komerčními produkty + stabilita a spolehlivost + programovatelnost (PL/pgSQL, PL/Perl, PL/Python) + rozšiřitelnost (možnost doprogramovat SŘBD podle potřeb) + detailní dokumentace (http://postgresql.org/docs/manuals/) + platformová nezávislost V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 27 / 31

Příklad (PostgreSQL, použití interaktivního klienta psql) $ psql -h slon.inf.upol.cz slondb -U vychodil ENTER psql (9.1.9) slondb=> \connect mojedb ENTER mojedb=> \dt ENTER. mojedb=> SELECT * FROM katedra WHERE zkratka = KI ; id jmeno zkratka ------+---------------------+--------- 1024 katedra informatiky KI (1 row) ENTER mojedb=> \quit ENTER V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 28 / 31

Příklad (PostgreSQL, příklad použití v PHP5) $db = pg_connect ("host=slon.inf.upol.cz dbname=mojedb ". "user=vychodil password=heslo"); $query = "SELECT id, jmeno FROM katedra WHERE zkratka = KI "; $result = pg_query ($query); while ($tuple = pg_fetch_array ($result, NULL, PGSQL_ASSOC)) { printf ("ID: %s, JMENO: %s\n", $tuple ["id"], $tuple ["jmeno"]); } pg_free_result ($result); pg_close ($db); V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 29 / 31

Příklad (PostgreSQL, použití v Common LISPu, balík postmodern) (ql:quickload "postmodern") (use-package :postmodern) (with-connection ("mojedb" "vychodil" "heslo" "slon.inf.upol.cz") (doquery (:select id jmeno :from katedra :where (:= zkratka "KI")) (id jmeno) (format t "ID: ~A, JMENO: ~A~%" id jmeno))) poznámky: http://marijnhaverbeke.nl/postmodern/ (instalovatelné přes quicklisp) odstraňuje prkenné psaní dotazů ve formě řetězců (makra generující dotazy) V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 30 / 31

Přednáška 1: Závěr pojmy k zapamatování: databáze, model dat, systém řízení báze dat, dotazovací jazyk, jazyk pro definici/modifikaci dat, fyzická/logická/externí vrstva databázového systému, přehled modelů: souborový, síťový, hierarchický, relační, ostatní. použité zdroje: Date C. J.: Database in Depth: Relational Theory for Practitioners O Reilly Media 2005, ISBN 978 0596100124 Garcia-Molina H., Ullman J., Widom J.: Database Systems: The Complete Book Prentice Hall 2008, ISBN 978 0131873254 Tsichritzis D., Lochovsky F.: Data Base Management Systems Academic Press 1976, ISBN 978 0127017402 V. Vychodil (KMI/DATA1, Přednáška 1) Úvod do databázových systémů Databázové systémy 31 / 31