Temporální a deduktivní databáze

Rozměr: px
Začít zobrazení ze stránky:

Download "Temporální a deduktivní databáze"

Transkript

1 Temporální a deduktivní databáze Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů 3. demonstrační cvičení pro PDB 17. října 2014 Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

2 Obsah 1 Temporální databáze 2 Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

3 Cíle cvičení Temporální databáze, existující implementace. Představení jazyka (A)TSQL2, jeho části DDL a DML. Ukázka práce s TimeDB2 a TSQL2lib pomocí JDBC. Rozbor problémů v temporálních databázích Úvod do deduktivních databází, jejich implementace. Představení jazyka Datalog. Ukázka práce s databází XSB. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

4 Temporální DBS zohledňují časové vlastnosti ukládaných dat. Přirozené pro řadu oblastí. (bankovnictví, legislativa, katastr, medicínská data, monitorování, atd.) Jazyky pro temporální databáze: Bitemporal ChronoSQL, (Andreas Steiner, ETH Zurich) Chronolog (temporální Prolog), (Michael Bohlen, Aalborg University) Temporal SQL (TSQL, převzat do SQL3), (Rick Snodgrass, University of Arizona) TSQL2 (rozšíření SQL-92 ze srpna 1994, následník TSQL). (R. Snodgrass + Christian Jensen, Aalborg University) ATSQL2 (rozšíření TSQL2, pouze vývojový prototyp). (Bohlen + Jensen + Snodgrass + Steiner) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

5 Bitemporální model dat Z hlediska temporální databází rozlišujeme časové modely: 1 valid-time kdy jsou data pravdivá v modelovaném světě, (tabulky as validtime v TimeDB2 a as valid state/event v TSQL2lib) 2 transaction-time kdy jsou data uložena v databázi, začínají provedením vkládající databázové transakce. (např. versioning v Oracle DBWM nebo tabulky as transaction v TSQL2lib) Tyto dvě složky dohromady tvoří bitemporální model dat. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

6 Existující implementace temporálních databází TimeDB v2.2 (Andreas Steiner, TimeConsult) (JDBC adaptér, jazyk ATSQL2, podporuje pouze valid-time, implicitní temporální selekce, vývojový prototyp) TSQL2lib v1.0 (Jiří Tomek, FIT VUT) (JDBC adaptér, jazyk TSQL2, podporuje bitemporální model, explicitní temporální selekce, výsledek DP) ChronoLog (Michaela Bohlen, Aalborg University) (nadstavba nad Oracle, jazyk Prolog a ChronoSQL, podporuje pouze valid-time, jen demonstrační aplikace) Oracle Flashback Database & Workspace Manager (podpora valid-time pomocí verzování a transaction-time přístupem k historickým datům pomocí flashback dotazů) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

7 Druhy tabulek v (A)TSQL2 1 snímková tabulka (snapshot): Klasická relační tabulka nepodporující čas platnosti ani čas transakce, nelze se dotazovat na čas. 2 stavová tabulka (tabulka platného času, valid-time): Každý záznam spjat s množinou všech disjunktních nesousedících časových intervalů (tzv. stavová tabulka) nebo okamžiků (tzv. tabulka událostí), kdy záznam platil nebo došlo k události reprezentované záznamem. Přesnost času dána při vytváření tabulky. 3 transakční tabulka (transaction-time): Každý záznam je spjat s přesným časovým intervalem jeho přítomnosti v databázi (od vložení až po modifikaci nebo smazání). 4 bitemporální tabulka (tabulka obojího času): Kombinace stavové a transakční tabulky. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

8 Časová ontologie v jazyce (A)TSQL2 Časová osa v (A)TSQL2 je na obou koncích omezená. Okamžik na časové ose (instant) lze určit pouze přibližně, může být přesnější než nejmenší jednotka času, tvz. chronon, zadán časovým razítkem a měřítkem (např. den ). Dále je možné definovat čas intervalem nebo dobou trvání, interval je dán dvěma okamžiky a otevřeností/uzavřeností, doba trvání je dána hodnotou a měřítkem (např. 1 den). (A)TSQL2 používá koncept základních hodin, přiřazují časovým údajům konkrétní sémantický význam, (nejsou vázány na žádný konkrétní kalendářový systém) synchronizačními body rozdělují časovou osu na úseky. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

9 TimeDB2 Úvod Temporální databáze Prototyp temporální databáze s jazykem ATSQL2. ATSQL2 SQL překladač. Vrstvený přístup k implementaci TDB. Implementovaný v jazyce Java. Poskytuje vlastní rozhraní TDBCI pro temporální dotazy. Používá technologii JDBC pro back-end databáze. Podporuje různé back-end databáze. (Oracle, Sybase, Cloudscape) TimeDB2/ATSQL2 budeme používat pro demonstraci dotazů nad temporálními daty. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

10 TimeDB2 Demo aplikace Stáhneme soubor: Zprovozníme podle přiloženého readme souboru. Nastavíme connection string : jdbc:oracle:thin: (login)/(password)@gort.fit.vutbr.cz:1521:dbgort Spuštění po úpravě souborem: TimeDB22.bat Pro vytvoření db. použít příkaz: TimeDB/Create DB Na začátku nutné vždy otevřít db.: TimeDB/Open DB Režim spouštění příkazů z editačního okna nebo skriptu uloženého v souboru (odpovědi vypisuje systém na konzolu). Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

11 TimeDB2 Dotazovací režim I ATSQL2 podporuje ve valid-time modelu různé režimy dotazování: 1 sequenced (výsledek je stavová tabulka) období platnosti výsledků je viditelné, plně podporuje temporální dotazování, TimeDB (1): VALIDTIME SELECT... FROM... WHERE... TSQL2lib (1): SELECT... FROM... WHERE... TimeDB (2): VALIDTIME PERIOD [a-b) SELECT... FROM tablename... WHERE... TSQL2lib (2): SELECT... FROM tablename... WHERE valid(tablename) overlaps period [a-b) AND... Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

12 TimeDB2 Dotazovací režim II 2 nonsequenced (výsledek je snímková tabulka) temporální údaje jsou odstraněny, ale umožněno jejich explicitní použití, TimeDB (1): NONSEQUENCED VALIDTIME SELECT... FROM tablename... WHERE validtime(tablename)... TSQL2lib (1): SELECT SNAPSHOT... FROM tablename... WHERE valid(tablename)... TimeDB (2): NONSEQUENCED VALIDTIME PERIOD [a-b) SELECT... FROM tablename... WHERE valid(tablename)... (POZOR: zde je výsledkem stavová tabulka, kde všechny záznamy mají platnost od a včetně do b) TSQL2lib (2): nelze, není potřeba (používalo by se pro nastavení platnosti výsledků subselectů, ale ty lze filtrovat přímo v nadřazené podmínce) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

13 TimeDB2 Dotazovací režim III 3 snapshot (výsledek je stavová tabulka) výsledek je platný implicitně v reálném čase, časy platnosti jsou skryty, TimeDB: SELECT... FROM tablename... WHERE... (výsledek je stavová tabulka se skrytými časy platnosti) TSQL2lib: SELECT SNAPSHOT... FROM tablename... WHERE valid(tablename) contains date now AND... (POZOR: výsledek je snímková tabulka, tj. bez časů platnosti) TSQL2lib: SELECT... FROM tablename... WHERE valid(tablename) contains date now AND... (POZOR: výsledek je stavová tabulka, tj. se časy platnosti) Je zde dobře viditelný rozdíl mezi TSQL2 (používá TSQL2lib) a Applied TSQL2 (ATSQL2 v TimeDB), kdy čistý TSQL2 neimplementuje temporální selekci implicitně, ale explicitně pomocí operátorů VALID(tablename) a TRANSACTION(tablename) v klauzuli WHERE, a SNAPSHOT jen vytváří snímkové tabulky (bez temporálních dat). Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

14 TimeDB2 Podporované časové typy span (doba trvání určité události bez počátku, často výsledek operací nad časem, např. interval 2 year 1 month) event (výskyt události jako bod na časové ose, např. date ) interval (začátek a trvání události jako časový úsek, např. period[ )) Také lze vyjádřit pomocí konstant počáteční (beginning), aktuální (now) a konečný čas světa (forever). Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

15 TimeDB2 Intervaly pro platnost dat Často se používá intervalů pro reprezentaci výskytu události. PERIOD [ ) popisuje událost, která se stala v začátkem roku 1998 a trvala jeden, PERIOD [1980/10/ /10/06) popisuje událost, která se stala 5. října 1980 a trvala 1 den, PERIOD [1980/10/05 12: /10/05 12:31) popisuje událost, která se stala 5. října 1980 v hodin a trvala 1 minutu, PERIOD [1981/1/1-1981/1/1) nevyjadřuje platný čas pro žádnou fyzickou událost (prázdný interval), DATE 1999/01/01 vyjadřuje okamžik, který nastal 1. ledna 1999 v 0.00 hodin. Hodnoty výrazu PERIOD se interpretují tak, že obsahuje všechny body na časové ose včetně počátku intervalu, ale bez jeho konce. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

16 TimeDB2 Ukázka definice a dotazování dat CREATE TABLE student(jmeno varchar(15), PRIJMENI varchar(20), studium varchar(10)) AS VALIDTIME; VALIDTIME PERIOD [ ) INSERT INTO student VALUES ( Jan, Novak, BIT ); VALIDTIME PERIOD [now-forever) INSERT INTO student VALUES ( Libor, Tesar, MIT ); NONSEQUENCED VALIDTIME SELECT * FROM student; /* bez casovych udaju */ VALIDTIME SELECT * FROM student; /* vcetne casovych udaju */ VALIDTIME PERIOD [ ) SELECT * FROM student; /* jen v~danem obdobi */ Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

17 TimeDB2 Aritmetické operace s časem CREATE TABLE time(s interval, I~period, E date); INSERT INTO time VALUES (interval 3 year 2 month, period [ ), date ); SELECT a.s+b.s, a.s-b.s FROM time a, time b; /* secteni a odecteni casovych intervalu */ SELECT a.e+b.s, a.e-b.s FROM time a, time b; /* pricitani a odecitani int. a udalosti */ SELECT * FROM time a, time b WHERE a.i precedes b.i; /* predchazejici cas. obdobi nebo datum */ SELECT * FROM time a, time b WHERE a.i overlaps b.i; /* casove obdobi presahuje druhe */ SELECT * FROM time a, time b WHERE a.i meets b.i; /* porovnani zda se intervaly dotykaji */ SELECT * FROM time a, time b WHERE a.i contains b.e; /* cas. obdobi obsahuje jine nebo obsahuje datum */ Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

18 TimeDB2 Pokročilé temporální dotazy Implicitní temporální údaje je možné explicitně používat v dotazech. NONSEQUENCED VALIDTIME SELECT VALIDTIME(e1),e1.state FROM eh e1 WHERE VALIDTIME(e1) PRECEDES PERIOD [ ); validtime(e1) e1.state [ ) czech kingdom [ ) poland [ ) poland [ ) poland Co způsobí vynechání slova NONSEQUENCED? V dotazu budou uvedeny údaje o platnosti záznamů 2. Dotaz by měl vrátit pouze takové záznamy, které předcházejí vyžadovanou platnost, ale jsou ještě stále platné. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

19 Použití TimeDB2 a TSQL2lib v JDBC 1 Získat knihovny TSQL2lib, TimeDB 2.2 a HSQLDB (stáhnout z vč. adresáře timedb-scripts a konfiguračního souboru prefs) 2 Knihovny přidat do CLASSPATH pro překlad a spuštění. (javac -classpath...:./lib/tsql2lib.jar:./lib/timedb22.jar:./lib/hsqldb232.jar... ) 3 Spustit demonstrační příklady Demo3TimeDB a cz.vutbr.fit.pdb.demo3.tsql2lib.demo3tsql2lib Použití TSQL2lib, jako adaptér JDBC spojení: // create a OracleDataSource instance OracleDataSource ods = new OracleDataSource(); ods.set... // connect to the database via TSQL2 adapter Connection conn = new TSQL2Adapter(ods.getConnection()); Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

20 Implementace (A)TSQL2 Stavové tabulky Stavové tabulky se implementují jako běžné tabulky rozšířené o sloupce platnosti (VTS, VTE). Při vytváření tabulky je určí její druh, měřítko času a podmínky odsávání. (platí v TSQL2lib; v TimeDB2 pouze stavové tabulky bez přesnosti) Pří vkládání/mazání/aktualizaci záznamu se specifikuje jeho platnost (interval od-do). (není-li platnost zadána, platí akce od aktuálního okamžiku dále) Aktualizovat záznam znamená ukončit platnost předchozího a vložit aktuální s danou platností. Zpracování dotazu závisí na režimu (snapshot). ( snapshot v TSQL2lib ignoruje čas, v TimeDB2 vybere pouze aktuální data) Při vyhodnocování dotazu se filtruje podle hodnot sloupců platnosti. (filtr je časti implicitní, v závislosti na režimu dotazu) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

21 Aktualizace záznamů s omezenou platností Leží-li interval platnosti mazaných záznamů uprostřed intervalu platných dat, je původní interval rozdělen (tzn. i ovlivněné záznamy). Na jejich místo lze pak vložit nové, aktuální. VALIDTIME PERIOD [ ) DELETE FROM eh WHERE (ccity = warsaw ); VALIDTIME SELECT ccity FROM eh WHERE state = poland ; valid ccity [ ) gniezno [ ) cracow [ ) warsaw [ ) warsaw [ ) warsaw <<< [ ) warsaw <<< (příklad je v ATSQL2/TimeDB2) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

22 Mazání ze stavové tabulky V případech (b) a (e) bude aktualizována platnost u fyzického záznamu. V případě (c) bude aktualizována platnost u fyzického záznamu a navíc vložen další fyzický záznam se zbytkem platnosti. V případě (d) bude fyzický záznam odstraněn. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

23 Aktualizace ve stavové tabulce V případech (b) a (e) bude aktualizována platnost u fyzického záznamu se starými daty a vložen další fyzický záznam s novými daty a novou platností. V případě (c) bude aktualizována platnost u fyzického záznamu se starými daty a navíc vloženy další dva fyzické záznamy se zbytkem platnosti a starými daty a novou platností a novými daty. V případě (d) bude fyzický záznam jen aktualizován. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

24 Referenční integrita mezi stavovými tabulkami Bude aktualizován záznam s ID 1 a novým časem platnosti dat: Jak zachováme referenční integritu? Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

25 Referenční integrita mezi stavovými tabulkami řešení Záznam z druhé tabulky rozdělíme na dva podle prvního záznamu a nastavíme odkazy mezi odpovídajícími variantami. Použije se složený primární klíč, bude obsahovat i čas platnosti. (původní primární klíč byl jen ID a to je nyní nejednoznačné) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

26 Doporučení pro implementaci (A)TSQL2 Umožnit všechny režimy práce s temporálními daty. (pro ATSQL2/TimeDB všechny tři, pro TSQL2lib stavové a snímkové dotazy) V tabulkách navíc uschovávat ke každému záznamu rozsah jeho platnosti (dolní a horní mez intervalu). Při vyhodnocování dotazu určit požadovanou platnost a tuto doplnit do WHERE části dotazu pro každou temporální tabulku. Při mazání záznamu nalézt záznamy v jeho platnosti a ty bud odstranit (jsou obsaženy v mazaném) nebo upravit platnost (překrývají se s mazaným) nebo záznamy rozdělit (obsahují mazaný). Kontrolovat referenční integritu i vzhledem k platnosti. (při mazání rodiče smazat i potomky ve stejné platnosti, při vkládání potomka kontrolovat existenci rodiče v celé jeho platnosti) Při vkládání záznamu slučovat stejné záznamy dotýkající se navzájem svou platností. (tzv. shlukování dat, vizte přednášky) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

27 Do projektu k převodu (A)TSQL2 na čisté SQL Alespoň 5 netriviálních dotazů temporální povahy. (jednoduché dotazy nad jednou tabulkou, ale také nad JOINem více tabulek, vč. vkládání a mazání záznamů s uvedením jejich platnosti) Pro temporální dotazy napsat strukturu příslušných tabulek a SQL dotazy, které se provedou při volání temporálních dotazů. (např. při mazání včetně zjištění rozsahu mazání a úprav platnosti stávajících a mazání přeživších záznamů) Implementovat uvedené dotazy ve vaší aplikaci. (nejlépe jako kombinované multimediální, prostorové a temporální dotazy) Za nadstandardní řešení bude považováno např.: Interpret libovolného (A)TSQL2 dotazu s jistými omezeními. Čím méně omezení a čím více pokryto (A)TSQL2, tím lepší projekt. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

28 Literatura k temporálním databázím Jiří Tomek: TSQL2 interpret nad relační databází. Christian S. Jensen: Temporal Database Management. Richard T. Snodgrass: Developing Time-Oriented Database Applications in SQL. ISBN Andreas Steiner: A Generalisation Approach to Temporal Data Models and their Implementations. Ocelka et al.: Současné db. modely Temporální databáze. ocelka.html Zdeněk Vilušínský: Temporalní databáze a TSQL2. Richard T. Snodgrass et al.: A TSQL2 tutorial. ACM SIGMOD Record. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

29 Úvod do deduktivních databází Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Zpracovávání velkých objemů dat s vyjadřovacími schopnostmi logických programovacích jazyků. PROLOG = jazyk pro logické programování. DATALOG = jazyk deduktivní databáze, používá: fakta: statická data, základní informace, pravidla: návod jak odvodit data, která nejsou explicitně uložena, dotaz: výraz jehož výsledkem jsou nalezená a odvozená data. Uživatel položí otázku, systém prohledává databázi a používá odvozovací pravidla při hledání odpovědi. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

30 Databáze XSB Temporální databáze Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Systém pro logické programování a implementace deduktivní databáze. Dva způsoby vyhodnocení predikátu: 1 prologovské vyhodnocování shora dolů, pro cyklické závislosti nemá konečný výpočet, 2 metoda zdola nahoru pro zvolené predikáty (tzv. tabled resolution ), dovoluje vyhodnocovat cyklické závislosti. Jazyk HiLog umožňuje konstruovat predikáty vyššího řádu. (predikátový symbol může mít význam proměnné = prostředek pro definici generických predikátů) Rozhraní pro C, Javu, Perl, obj. orientovaný systém Flora, F-Logic, přístup k ext. datovým zdrojům ODBC či Oracle. Open-source, verze pro systémy Unix, Linux a Windows. ( Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

31 Ukázka spuštění interpretu XSB Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Načtení modulu (definiční režim), příkazový řádek (dotazovací režim): [xsb_configuration loaded] [sysinitrc loaded] XSB Version (Pignoletto) of January 2, 2012 [x86_64-pc-linux-gnu 64 bits; mode: debug; engine: multi-threading; scheduling: local] [Patch date: 2012/01/09 03:50:32]?- [pribuzni]. [Compiling./pribuzni] [Module pribuzni compiled, cpu time used: seconds] [pribuzni loaded] yes?- rodic(x, Marie Terezie ). X = Karel VI. yes?- halt. End XSB (cputime 0.03 secs, elapsetime secs) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

32 Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Platné výrazy XSB (manuál, vol. 1, ch.4) Syntaxe jazyka XSB vychází ze syntaxe jazyka PROLOG, a obsahuje pouze tyto druhy výrazů: konstanta, celé číslo: 1, 3456, 95359, 1601FA4 reálné číslo: 1.0, 34.56, 817.3E12, e26 atomické výrazy: foo, foo_bar1, I am also atom!, [] proměnná, sekvence písmen, číslic, a _ : X, HiLog, _3, _List nepojmenovaná proměnná _ složený výraz, seznam. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

33 Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Platné výrazy XSB složený výraz a seznamy Složený výraz PROLOG + HiLOG (Struktura, Funktor) Struktura = term a sekvence argumentů: foo(bar), prolog(a,x), 123(joh_n,500), X(Y,Z,Y(W)), f(a,(b(c))(d)), map(double)([],[]) Explicitní odkaz na funktor = Name/Arity: foo/1, prolog/2, 123/2, X/3, f/2, map(double)/2 Seznamy: Prázdný seznam: [] Neprázdný seznam:.(1,.(2,.(3, []))), [1,2,3] Pattern matching: [Tail Head], (Tail, Head) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

34 Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Predikáty explicitně a odvoditelně uložené Explicitně uložené predikáty: B(A1, A2,..., An). rodic( Leopold I., Karel VI. ). rodic( Karel VI., Marie Terezie ). rodic( Marie Terezie, Josef II. ). Odvoditelně uložené predikáty: B :- A1, A2,..., An. A 1 A 2... A n B predek(x,y) :- rodic(x,y). predek(x,y) :- rodic(x,z), predek(z,y). potomek(x,y) :- predek(y,x). Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

35 Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Kombinace expl. a odv. uložených predikátů Obecně je kombinace expl. a odv. uložených predikátů potřeba. Predikát nat vyjadřuje tvrzení je přirozené číslo. nat(zero). nat(succ(x)) :- nat(x). Funkce sčítání pro predikát nat je plus(0,n,n) :- nat(n). plus(succ(m),n,succ(z)) :- plus(m,n,z). Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

36 Tranzitivní uzávěr Temporální databáze Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty V deduktivní databázi je jednoduché definovat vztah s vlastností tranzitivní relace. Predikát rodic(x,y) deklaruje vztah x je rodičem y. Definujme tranzitivní uzávěr predek: chybně (zacyklí se) predek(x,y) :- rodic(x,y). predek(x,y) :- predek(x,z), predek(z,y). správně predek(x,y) :- rodic(x,y). predek(x,y) :- rodic(x,z), predek(z,y). Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

37 Dotazy Temporální databáze Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Test, zda je A prarodičem B:?- prarodic( Leopold I., Marie Terezie ). yes Nalezení všech vyhovujících hodnot: (při výpisu hodnot sekvence. a Enter přejde na další položku, jen klávesa Enter ukončí výpis)?- predek(x, Marie Terezie ). X = Karel VI.. X = Leopold I.. no setof vrací výsledek jako množinu?- setof(x, dite(x, Karel VI. ),L). X = _h114 L = [Leopold Jan,Marie Anna 2,Marie Terezie] bagof vrací výsledek jako multi-množinu. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

38 Základní predikáty Temporální databáze Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty true vždy splněno, fail nikdy splněno, fail_if/1 je platný, když predikát platný není, P -> Q ; R jestliže P, potom Q, jinak R, P -> Q jestliže P, potom Q, jinak fail, X = Y když X a Y jsou unifikovatelné, X \= Y když X a Y nejsou unifikovatelné, T1 == T2 splněno jsou-li T1 a T2 identické, T1 \== T2 splněno nejsou-li T1 a T2 identické, T2 pokud T1 předchází T2, T2 pokud T1 následuje za T2 nebo je identické, T2 jsou-li identické proměnné, nebo shodná struktura. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

39 Třídění Temporální databáze Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty sort(l1, L2) porovnává seznam L1 se setříděným seznamem L2,?- sort([1,4,3,2], L). L = [1,2,3,4]; keysort(l1, L2) porovnává seznam L1 se setříděným seznamem L2, kde prvky seznamů jsou dvojice Key-Value.?- keysort([1-a,3-d,2-h,4-f], L). L = [1 - a,2 - h,3 - d,4 - f] Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

40 Aritmetické výrazy Temporální databáze Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Používá se is(result,expression) standardní predikát.?- X is 3 /2. X = yes Funktory, které mohou být vyhodnoceny: +(Expr1,Expr2) -(Expr1) -(Expr1,Expr2) ceiling(expr) *(Expr1,Expr2) float(expr) /(Expr1,Expr2) floor(expr) //(Expr1,Expr2) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

41 Predikáty pro práci se seznamy Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty V modulu basics: append(list1, List2, List3) member(element, List) ith(index, List, Element) delete_ith(index, List, Element, RestList) v modulu listutil length(list, Length) same_length(list1, List2) reverse(list1, List2) subseq(list1, List2a, List2b) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

42 Predikáty pro práci s řetězci Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty V modulu string: str_sub(sub, String, Pos) str_length(string, Length) substring(string, BeginOffset, EndOffset, Result) string_substitute(inpstr, SubStr, SubList, Out) Substr je funktor s(begoffset, EndOffset)?- string_substitute( qaddf, [s(2,4)], [ 123 ],L). L = qa123f concat_atom(atomlist,atom) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

43 Agregované operátory Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Reprezentace operátoru Count?- import length/2 from basics.?- length(l, C), setof(x, nadrizenyt(x, rysavy), L). C = 3 yes a další operátory... Více informací v manuálu XSB a v tutoriálech systému PROLOG. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

44 Literatura k deduktivním databázím Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty The XSB System, Version 3.5.x, Volume 1: Programmer s Manual. manual1.pdf?format=raw F. S. Perez: Datalog Educational System V3.8: User s Manual. pdf/download Karel Ježek: a jejich implementace v relačním prostředí. ISBN Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

45 Poděkování a otázky Děkuji za pozornost. Otázky? Diskuze? Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47

Databázové systémy. Cvičení 6: SQL

Databázové systémy. Cvičení 6: SQL Databázové systémy Cvičení 6: SQL Co je SQL? SQL = Structured Query Language SQL je standardním (ANSI, ISO) textovým počítačovým jazykem SQL umožňuje jednoduchým způsobem přistupovat k datům v databázi

Více

Databázové systémy úvod

Databázové systémy úvod Databázové systémy úvod Michal Valenta Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze c Michal Valenta, 2016 BI-DBS, LS 2015/16 https://edux.fit.cvut.cz/courses/bi-dbs/

Více

TSQL2. (aneb jak na to) Tomáš Janků

TSQL2. (aneb jak na to) Tomáš Janků TSQL2 (aneb jak na to) Tomáš Janků OBSAH Srovnání SQL92 a TSQL2 OBSAH Srovnání SQL92 a TSQL2 TSQL2 datový model OBSAH Srovnání SQL92 a TSQL2 TSQL2 datový model Konstrukce jazyka TSQL2 Srovnání TSQL2 vs.

Více

Temporální databáze. Jan Kolárik Miroslav Macík

Temporální databáze. Jan Kolárik Miroslav Macík Temporální databáze Jan Kolárik Miroslav Macík 2012 Úvod jak zachytit časově proměnnou povahu jevů konvenční databáze stav pouze v jednom bodě časové linie aktuální obsah ~ statický snímek (snapshot) temporální

Více

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

Databáze I. 5. přednáška. Helena Palovská Databáze I 5. přednáška Helena Palovská palovska@vse.cz SQL jazyk definice dat - - DDL (data definition language) Základní databáze, schemata, tabulky, indexy, constraints, views DATA Databáze/schéma

Více

Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David

Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David Úvod do Prologu Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David Warren (Warren Abstract Machine) implementace

Více

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal Databázové systémy - SQL * definice dat * aktualizace * pohledy Tomáš Skopal Osnova přednášky definice dat definice (schémat) tabulek a integritních omezení CREATE TABLE změna definice schématu ALTER TABLE

Více

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

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování 4 fáze vytváření

Více

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS TSQL2 INTERPRET

Více

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Návrh a tvorba WWW stránek 1/14. PHP a databáze Návrh a tvorba WWW stránek 1/14 PHP a databáze nejčastěji MySQL součástí balíčků PHP navíc podporuje standard ODBC PHP nemá žádné šablony pro práci s databází princip práce s databází je stále stejný opakované

Více

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

8.2 Používání a tvorba databází 8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam

Více

KIV/ZIS cvičení 5. Tomáš Potužák

KIV/ZIS cvičení 5. Tomáš Potužák KIV/ZIS cvičení 5 Tomáš Potužák Úvod do SQL (1) SQL (Structured Query Language) je standardizovaný strukturovaný dotazovací jazyk pro práci s databází Veškeré operace v databázi se dají provádět pomocí

Více

RELAČNÍ DATABÁZOVÉ SYSTÉMY

RELAČNÍ DATABÁZOVÉ SYSTÉMY RELAČNÍ DATABÁZOVÉ SYSTÉMY VÝPIS KONTROLNÍCH OTÁZEK S ODPOVĚDMI: Základní pojmy databázové technologie: 1. Uveďte základní aspekty pro vymezení jednotlivých přístupů ke zpracování hromadných dat: Pro vymezení

Více

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

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 8 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování Entita Entitní typ

Více

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

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška Databázové systémy Datová integrita + základy relační algebry 4.přednáška Datová integrita Datová integrita = popisuje pravidla, pomocí nichž hotový db. systém zajistí, že skutečná fyzická data v něm uložená

Více

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

Informační systémy ve zdravotnictví. 6. cvičení Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Informační systémy ve zdravotnictví 6. cvičení Ing. Petr Lukáš petr.lukas@nativa.cz Ostrava, 2014 Opakování Relace

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL 4 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk SQL, datové typy, klauzule SELECT, WHERE, a ORDER BY. Doporučená

Více

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

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů - 1.1 - Kapitola 1: Úvod Účel databázových systémů Pohled na data Modely dat Jazyk pro definici dat (Data Definition Language; DDL) Jazyk pro manipulaci s daty (Data Manipulation Language; DML) Správa

Více

SQL - trigger, Databázové modelování

SQL - trigger, Databázové modelování 6. přednáška z předmětu Datové struktury a databáze (DSD) Ústav nových technologií a aplikované informatiky Fakulta mechatroniky, informatiky a mezioborových studií Technická univerzita v Liberci jan.lisal@tul.cz

Více

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

Analýza a modelování dat 6. přednáška. Helena Palovská Analýza a modelování dat 6. přednáška Helena Palovská Historie databázových modelů Jak je řešena temporalita? Temporalita v databázích Možnosti pro platnost faktu (valid time): platí nyní, je to aktuální

Více

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc. 1 Kurz Databáze Zpracování dat Doc. Ing. Radim Farana, CSc. Obsah Druhy dotazů, tvorba dotazu, prostředí QBE (Query by Example). Realizace základních relačních operací selekce, projekce a spojení. Agregace

Více

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá: SII - Informatika Způsob vyhodnocení: Při vyhodnocení budou za nesprávné odpovědi strhnuty body. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá: a) sekundární klíč b)

Více

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4. Základy programování 4 - C# - 9. cvičení Radek Janoštík Univerzita Palackého v Olomouci 10.4.2017 Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.2017 1 / 13 Reakce na

Více

Kapitola 6: Omezení integrity. Omezení domény

Kapitola 6: Omezení integrity. Omezení domény - 6.1 - Omezení domény Referenční integrita Aserce Spouštěče (Triggers) Funkční závislosti Kapitola 6: Omezení integrity Omezení domény Omezení integrity zabraňují poškození databáze; zajišťují, že autorizované

Více

Jazyk SQL databáze SQLite. připravil ing. petr polách

Jazyk SQL databáze SQLite. připravil ing. petr polách Jazyk SQL databáze SQLite připravil ing. petr polách SQL - úvod Structured Query Language (strukturovaný dotazovací jazyk 70. léta min. století) Standardizovaný dotazovací jazyk používaný pro práci s daty

Více

Programování v jazyku C# II. 5.kapitola

Programování v jazyku C# II. 5.kapitola Programování v jazyku C# II. 5.kapitola Obsah O ADO.NET Spojení s DB Příkazy Jednoduché čtení DataSet 2/28 ADO.NET ADO - ActiveX Data Object Orientováno na webové aplikace neexistence stavu v HTTP Obecný

Více

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR): Mezi příkazy pro manipulaci s daty (DML) patří : 1. SELECT 2. ALTER 3. DELETE 4. REVOKE Jaké vlastnosti má identifikující relace: 1. Je relace, která se využívá pouze v případě modelovaní odvozených entit

Více

KMI / TMA Tvorba mobilních aplikací. 6. seminář ZS 2016/2017 Středa 13:15-15:45

KMI / TMA Tvorba mobilních aplikací. 6. seminář ZS 2016/2017 Středa 13:15-15:45 KMI / TMA Tvorba mobilních aplikací 6. seminář 2.11.2016 ZS 2016/2017 Středa 13:15-15:45 OBSAH SEMINáře Ukládání dat Ukládání dat Jaké jsou možnosti? SharedPreferences jednoduchá data databáze SQLite relační

Více

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

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

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek 5 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk SQL, Spojení tabulek, agregační dotazy, jednoduché a složené

Více

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux B0M33BDT Technologie pro velká data Supercvičení SQL, Python, Linux Sergej Stamenov, Jan Hučín 18. 10. 2017 Osnova cvičení Linux SQL Python 2 SQL pro uživatele aneb co potřebuje znát a umět bigdatový uživatel:

Více

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

Databázové systémy Cvičení 5.2 Databázové systémy Cvičení 5.2 SQL jako jazyk pro definici dat Detaily zápisu integritních omezení tabulek Integritní omezení tabulek kromě integritních omezení sloupců lze zadat integritní omezení jako

Více

Databáze I. Přednáška 4

Databáze I. Přednáška 4 Databáze I Přednáška 4 Definice dat v SQL Definice tabulek CREATE TABLE jméno_tab (jm_atributu typ [integr. omez.], jm_atributu typ [integr. omez.], ); integritní omezení lze dodefinovat později Definice

Více

Logické programování

Logické programování 30. října 2012 Osnova Principy logického programování 1 Principy logického programování 2 3 1 Principy logického programování 2 3 Paradigmata programování Strukturované programování Procedurální programování

Více

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

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Database Research Group Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz

Více

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz 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

Více

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

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23 Stručný obsah 1. Stručný úvod do relačních databází 13 2. Platforma 10g 23 3. Instalace, první přihlášení, start a zastavení databázového serveru 33 4. Nástroje pro administraci a práci s daty 69 5. Úvod

Více

Logické programování I

Logické programování I Logické programování I PROLOG Program popisuje "svět" Prologu = databáze faktů a pravidel (tzv. klauzulí). fakta: predikát(arg1, arg2,...argn). cíle:?- predikát(arg1, arg2,...argn). pravidla: hlava :-

Více

Zápisování dat do databáze

Zápisování dat do databáze Zápisování dat do databáze Informační a znalostní systémy 1 2 záznamů Pro vkládání záznamů do tabulky- příkaz INSERT INSERT INTO tabulka VALUES ( výčet hodnot záznamu ) záznamů Pro vkládání záznamů do

Více

Databázové systémy a SQL

Databázové systémy a SQL Databázové systémy a SQL Lekce 2 Daniel Klimeš Autor, Název akce 1 CREATE TABLE Vytvoření tabulky (ORACLE) DDL příkazem v grafickém prostředí CREATE TABLE jmeno ( text VARCHAR2(200), cislo NUMBER(9,1),

Více

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

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev Úvod do databází Modelování v řízení Ing. Petr Kalčev Co je databáze? Množina záznamů a souborů, které jsou organizovány za určitým účelem. Jaké má mít přínosy? Rychlost Spolehlivost Přesnost Bezpečnost

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2006/2007 c 2006 2008 Michal Krátký Tvorba informačních systémů 1/17 Úvod XML

Více

Databáze I. Přednáška 7

Databáze I. Přednáška 7 Databáze I Přednáška 7 Objektové rozšíření SQL Objektově relační databáze SQL:1999 objektové rozšíření SQL vztahuje se k objektově relačním databázovým systémům ukládají objekty do relační databáze umožňují

Více

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE 2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE Studijní cíl Tento blok je věnován základní syntaxi příkazu SELECT, pojmům projekce a restrikce. Stručně zde budou představeny příkazy

Více

Semestrální práce 2 znakový strom

Semestrální práce 2 znakový strom Semestrální práce 2 znakový strom Ondřej Petržilka Datový model BlockFileRecord Bázová abstraktní třída pro záznam ukládaný do blokového souboru RhymeRecord Konkrétní třída záznamu ukládaného do blokového

Více

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Autor: Číslo: Anotace: Inovace a zkvalitnění výuky prostřednictvím ICT Databáze Základní seznámení s MySQL

Více

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

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Autor: Číslo: Anotace: Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní

Více

Oracle XML DB. Tomáš Nykodým

Oracle XML DB. Tomáš Nykodým Oracle XML DB Tomáš Nykodým xnykodym@fi.muni.cz Osnova Oracle XML DB Architektura Oracle XML DB Hlavní rysy Oracle XML DB Hlavní rysy Oracle XML DB - pokračování XMLType XML Repository Využívání databázových

Více

Databáze SQL SELECT. David Hoksza http://siret.cz/hoksza

Databáze SQL SELECT. David Hoksza http://siret.cz/hoksza Databáze SQL SELECT David Hoksza http://siret.cz/hoksza Osnova Úvod do SQL Základní dotazování v SQL Cvičení základní dotazování v SQL Structured Query Language (SQL) SQL napodobuje jednoduché anglické

Více

Operátory ROLLUP a CUBE

Operátory ROLLUP a CUBE Operátory ROLLUP a CUBE Dotazovací jazyky, 2009 Marek Polák Martin Chytil Osnova přednášky o Analýza dat o Agregační funkce o GROUP BY a jeho problémy o Speciální hodnotový typ ALL o Operátor CUBE o Operátor

Více

Jazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12

Jazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12 Jazyk SQL 1 Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12 https://edux.fit.cvut.cz/courses/bi-dbs/ Michal Valenta (FIT

Více

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports , Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů Demo-cvičení pro IDS 9. dubna 2014 Marek Rychlý Stored Procedures & Database Triggers, Demo-cvičení

Více

POSTUP PRO VYTVOŘENÍ STRUKTUR PRO UKLÁDÁNÍ RDF DAT V ORACLE

POSTUP PRO VYTVOŘENÍ STRUKTUR PRO UKLÁDÁNÍ RDF DAT V ORACLE POSTUP PRO VYTVOŘENÍ STRUKTUR PRO UKLÁDÁNÍ RDF DAT V ORACLE Upozornění: Pro práci s RDF Oracle daty je třeba mít nainstalován Oracle Spatial Resource Description Framework (RDF). 1. Vytvoření tabulkového

Více

Stěhování aplikací. Michal Tomek, Sales Manager

Stěhování aplikací. Michal Tomek, Sales Manager Stěhování aplikací Michal Tomek, Sales Manager Agenda Co míníme stěhováním Typické situace Role InterSystems Příležitosti Migrace Stěhování informačního systému Nová budova. HW a OS Získáme nové vlastnosti

Více

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013 OBJECT DEFINITION LANGUAGE Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013 ODL a OQL ODL Objektové Object Definition Language popis objektového schéma SQL DDL Relační Data Definition Language příkazy CREATE,

Více

Použití databází na Webu

Použití databází na Webu 4IZ228 tvorba webových stránek a aplikací Jirka Kosek Poslední modifikace: $Date: 2010/11/18 11:33:52 $ Obsah Co nás čeká... 3 Architektura webových databázových aplikací... 4 K čemu se používají databázové

Více

Databázové systémy a SQL

Databázové systémy a SQL Databázové systémy a SQL Daniel Klimeš Autor, Název akce 1 About me Daniel Klimeš Vzdělání: Obecná biologie PGS: onkologie Specializace: klinické databáze Databáze ORACLE klimes@iba.muni.cz Kotlářská 2,

Více

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

Analýza dat a modelování. Přednáška 3 Analýza dat a modelování Přednáška 3 Hierarchický model Hierarchical Data Manipulation Language - HDML manipulace s daty (vyhledávání) pomocí příkazů HDML v hierarchickém SŘBD připomíná princip práce se

Více

Michal Krátký, Miroslav Beneš

Michal Krátký, Miroslav Beneš Databázové a informační systémy Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava 5.12.2005 2005 Michal Krátký, Miroslav Beneš Databázové a informační systémy 1/24 Obsah

Více

1 Webový server, instalace PHP a MySQL 13

1 Webový server, instalace PHP a MySQL 13 Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

Jazyk PL/SQL Úvod, blok

Jazyk PL/SQL Úvod, blok Jazyk PL/SQL Úvod, blok 1 Bc. Tomáš Romanovský Procedural Language for Structured Query Language Součást systému Oracle, rozšíření SQL o procedurální rysy Prostředky pro vytváření a spouštění programových

Více

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

4. lekce Přístup k databázi z vyššího programovacího jazyka 4. lekce Přístup k databázi z vyššího programovacího jazyka Studijní cíl Tento blok popisuje základní principy přístupu k databázi z vyššího programovacího jazyka. Doba nutná k nastudování 2-3 hodiny Průvodce

Více

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi. Databáze Základní pojmy Pojem databáze označuje obecně souhrn informací, údajů, dat o nějakých objektech. Úkolem databáze je hlídat dodržení všech omezení a dále poskytovat data při operacích. Objekty

Více

Paměť počítače. alg2 1

Paměť počítače. alg2 1 Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových

Více

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

Analýza a modelování dat 3. přednáška. Helena Palovská Analýza a modelování dat 3. přednáška Helena Palovská Historie databázových modelů Relační model dat Codd, E.F. (1970). "A Relational Model of Data for Large Shared Data Banks". Communications of the ACM

Více

ALGORITMIZACE A PROGRAMOVÁNÍ

ALGORITMIZACE A PROGRAMOVÁNÍ Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení

Více

Funkcionální programování. Kristýna Kaslová

Funkcionální programování. Kristýna Kaslová Funkcionální programování Kristýna Kaslová Historie Alonzo Church (30. léta) Netypovaný lambda kalkul Základ prvních funkcionálních jazyků Jeho konstrukce i v mnoha současných programovacích jazycích (Python)

Více

KIV/ZIS cvičení 6. Tomáš Potužák

KIV/ZIS cvičení 6. Tomáš Potužák KIV/ZIS cvičení 6 Tomáš Potužák Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Slučování záznamů do skupin (1) Chceme zjistit informace obsažené ve více záznamech najednou Klauzule GROUP

Více

5. POČÍTAČOVÉ CVIČENÍ

5. POČÍTAČOVÉ CVIČENÍ 5. POČÍTAČOVÉ CVIČENÍ Databáze Databázi si můžeme představit jako místo, kam se ukládají všechny potřebné údaje. Přístup k údajům uloženým v databázi obstarává program, kterému se říká Systém Řízení Báze

Více

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata Databáze Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu Bedřich Košata K čemu jsou databáze Ukládání dat ve strukturované podobě Možnost ukládat velké množství dat

Více

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

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava Šablona 32 VY_32_INOVACE_038.ICT.34 Tvorba webových stránek SQL stručné minimum OA a JŠ Jihlava, VY_32_INOVACE_038.ICT.34 Číslo

Více

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

Programování a implementace Microsoft SQL Server 2014 databází M20464 Programování a implementace Microsoft SQL Server 2014 databází Popis: Pětidenní kurz určený všem databázovým specialistům, kteří jsou odpovědni za implementaci databázových objektů a programování

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech

Více

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

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph) Marketingová komunikace Kombinované studium Skupina N9KMK3PH (vm3aph) 2. a 3. soustředění Mgr. Pavel Vávra 9103@mail.vsfs.cz http://vavra.webzdarma.cz/home/index.htm Co nás čeká: 2. soustředění 16.1.2009

Více

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS TEMPORÁLNÍ ROZŠÍŘENÍ

Více

Objektově orientované databáze. Miroslav Beneš

Objektově orientované databáze. Miroslav Beneš Objektově orientované databáze Miroslav Beneš Obsah přednášky Motivace Vlastnosti databázových systémů Logické datové modely Nevýhody modelů založených na záznamech Co potřebujeme modelovat? Identifikace

Více

Databázové systémy trocha teorie

Databázové systémy trocha teorie Databázové systémy trocha teorie Základní pojmy Historie vývoje zpracování dat: 50. Léta vše v programu nevýhody poměrně jasné Aplikace1 alg.1 Aplikace2 alg.2 typy1 data1 typy2 data2 vytvoření systémů

Více

O Apache Derby detailněji. Hynek Mlnařík

O Apache Derby detailněji. Hynek Mlnařík O Apache Derby detailněji Hynek Mlnařík Agenda Historie Vlastnosti Architektura Budoucnost Historie 1997 Cloudscape Inc. - JBMS 1999 Informix Software, Inc. odkoupila Cloudscape, Inc. 2001 IBM odkoupila

Více

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

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou MySQL Typy tabulek Storage Engines MyISAM defaultní, neumí transakce, umí fulltext InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) MEMORY (HEAP) v paměti; neumí transakce ARCHIVE velké množství

Více

Logika a logické programování

Logika a logické programování Logika a logické programování témata ke zkoušce Poslední aktualizace: 16. prosince 2009 Zkouška je písemná, skládá se obvykle ze sedmi otázek (může být více nebo méně, podle náročnosti otázek), z toho

Více

6. blok část B Vnořené dotazy

6. blok část B Vnořené dotazy 6. blok část B Vnořené dotazy Studijní cíl Tento blok je věnován práci s vnořenými dotazy. Popisuje rozdíl mezi korelovanými a nekorelovanými vnořenými dotazy a zobrazuje jejich použití. Doba nutná k nastudování

Více

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19 3 Obsah Novinky v tomto vydání 10 Význam základních principů 11 Výuka principů nezávisle na databázových produktech 12 Klíčové pojmy, kontrolní otázky, cvičení, případové studie a projekty 12 Software,

Více

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný DJ2 rekurze v SQL slajdy k přednášce NDBI001 Jaroslav Pokorný 1 Obsah 1. Úvod 2. Tvorba rekurzívních dotazů 3. Počítaní v rekurzi 4. Rekurzívní vyhledávání 5. Logické hierarchie 6. Zastavení rekurze 7.

Více

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL, Anotace sady: Dynamické internetové stránky, VY_32_INOVACE_PRG_PHP_01 Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL, Stupeň a typ vzdělávání: gymnaziální vzdělávání, 4. ročník

Více

1. Webový server, instalace PHP a MySQL 13

1. Webový server, instalace PHP a MySQL 13 Úvod 11 1. Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

Databáze I. Přednáška 6

Databáze I. Přednáška 6 Databáze I Přednáška 6 SQL aritmetika v dotazech SQL lze přímo uvádět aritmetické výrazy násobení, dělení, sčítání, odčítání příklad z minulé přednášky: zdvojnásobení platu všem zaměstnancům UPDATE ZAMESTNANEC

Více

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

Úvod do databázových systémů Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 4 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování Klauzule příkazu

Více

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

Databázové systémy Cvičení 5.3 Databázové systémy Cvičení 5.3 SQL jako jazyk pro manipulaci s daty SQL jako jazyk pro manipulaci s daty Aktualizace dat v SQL úprava záznamů v relacích (tabulkách) vložení záznamu INSERT INTO oprava záznamu

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

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

Databázové a informační systémy Databázové a informační systémy doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Jak ukládat a efektivně zpracovávat

Více

Ukázka knihy z internetového knihkupectví www.kosmas.cz

Ukázka knihy z internetového knihkupectví www.kosmas.cz Ukázka knihy z internetového knihkupectví www.kosmas.cz U k á z k a k n i h y z i n t e r n e t o v é h o k n i h k u p e c t v í w w w. k o s m a s. c z, U I D : K O S 1 8 1 1 4 5 Oracle průvodce správou,

Více

Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1

Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1 Negativní informace Petr Štěpánek S použitím materiálu M.Gelfonda a V. Lifschitze 2009 Logické programování 15 1 Negace jako neúspěch Motivace: Tvrzení p (atomická formule) neplatí, jestliže nelze odvodit

Více

PRG036 Technologie XML

PRG036 Technologie XML PRG036 Technologie XML Přednáší: Irena Mlýnková (mlynkova@ksi.mff.cuni.cz) Martin Nečaský (necasky@ksi.mff.cuni.cz) LS 2010 Stránka přednášky: http://www.ksi.mff.cuni.cz/~mlynkova/prg036/ 1 Osnova předmětu

Více

Text úlohy. Systémový katalog (DICTIONARY):

Text úlohy. Systémový katalog (DICTIONARY): Úloha 1 Částečně správně Bodů 050 / 100 Systémový katalog (DICTIONARY): a Se skládá z tablek a pohledů uložených v tabulkovém SYSTEM b Všechny tabulky vlastní uživatel SYS c Se skládá z tablek a pohledů

Více

1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018

1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018 Informační technologie 1 - Doporučená doba zpracování: 40 minut 1) Termín DCL v relačně databázové technologii

Více

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: Číslo šablony: Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek: Anotace: CZ.1.07/1.5.00/34.0410

Více

Databázové systémy I

Databázové systémy I Databázové systémy I Přednáška č. 8 Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky jiri.zechmeister@upce.cz Skupinové a souhrnné dotazy opakování Obsah Pohledy syntaxe použití význam Vnořené

Více

PHP a Large Objecty v PostgreSQL

PHP a Large Objecty v PostgreSQL PHP a Large Objecty v PostgreSQL Pavel Janík ml. http://www.janik.cz PHP a Large Objecty v PostgreSQL 1 Jazyk PHP je velmi mocným jazykem pro vývoj webových aplikací. Má podporu snad všech velkých i menších

Více