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: 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. (http://xsb.sourceforge.net/) 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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ú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 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á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

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

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

Ú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

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

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

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

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

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

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

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

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

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

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

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

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

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í 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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ú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

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

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

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

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

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

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

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 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4

1 Administrace systému 3. 1.3 Moduly... 3 1.4 Skupiny atributů... 4 1.5 Atributy... 4 1.6 Hodnoty atributů... 4 CRM SYSTÉM KORMORÁN PŘÍRUČKA ADMINISTRÁTORA Obsah 1 Administrace systému 3 1.1 Uživatelské účty.................................. 3 1.2 Přístupová práva................................. 3 1.3 Moduly.......................................

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

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

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

SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years

SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years SQL v14 4D Developer konference Obsah části SQL Porovnání 4D a SQL Nové příkazy SQL Upravené příkazy SQL Optimalizace SQL SQL v14 porovnání Definice dat - struktury Manipulace s daty Definice dat Vytvoření

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

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

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK listopad 2009 souhrn v1 Červené dobře (nejspíš), modré možná Oracle Internet Directory OID: Databáze nemůže z OID přebírat seznam uživatelů *Databáze může získat z OID seznam

Více

Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D. http://siret.cz/hoksza

Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D. http://siret.cz/hoksza Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hksza, Ph.D. http://siret.cz/hksza Osnva Seznámení s SQL Server Management Studiem (SSMS) Základní architektura

Více

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

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph) Marketingová komunikace Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph) 2. soustředění Mgr. Pavel Vávra 9103@mail.vsfs.cz http://vavra.webzdarma.cz/home/index.htm Minulé soustředění úvod

Více

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER váš partner na cestě od dat k informacím globtech spol. s r.o. karlovo náměstí 17 c, praha 2 tel.: +420 221 986 390 info@globtech.cz

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

4IT218 Databáze. 4IT218 Databáze

4IT218 Databáze. 4IT218 Databáze 4IT218 Databáze Osmá přednáška Dušan Chlapek (katedra informačních technologií, VŠE Praha) 4IT218 Databáze Osmá přednáška Normalizace dat - dokončení Transakce v databázovém zpracování Program přednášek

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

Databáze v MS ACCESS

Databáze v MS ACCESS 1 z 14 19.1.2014 18:43 Databáze v MS ACCESS Úvod do databází, návrh databáze, formuláře, dotazy, relace 1. Pojem databáze Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele,

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

Marian Kamenický. Syntea software group a.s. marian.kamenicky. kamenicky@syntea.cz. MFFUK Praha 2012/13

Marian Kamenický. Syntea software group a.s. marian.kamenicky. kamenicky@syntea.cz. MFFUK Praha 2012/13 Datové a procesní modely Relační databáze Přednáška 5 Marian Kamenický Syntea software group a.s. marian.kamenicky kamenicky@syntea.cz MFFUK Praha 2012/13 1 Poddotazy OsoReg Jm Poh St Pepa m CZ Franz m

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

Více

PŘETĚŽOVÁNÍ OPERÁTORŮ

PŘETĚŽOVÁNÍ OPERÁTORŮ PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako

Více

KAPITOLA 1 Představení platformy Microsoft SQL Server 2008

KAPITOLA 1 Představení platformy Microsoft SQL Server 2008 KAPITOLA 1 Představení platformy Microsoft SQL Server 2008 Krátký pohled do historie SQL Serveru Souhrnný přehled novinek, které přináší verze SQL Server 2008 Optimalizovaná instalace a konfigurace Vynucení

Více

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

Dolování v objektových datech. Ivana Rudolfová

Dolování v objektových datech. Ivana Rudolfová Dolování v objektových datech Ivana Rudolfová Relační databáze - nevýhody První normální forma neumožňuje vyjádřit vztahy A je podtypem B nebo vytvořit struktury typu pole nebo množiny SQL omezení omezený

Více

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

Úvod do databázových systémů. Lekce 1 Úvod do databázových systémů Lekce 1 Sylabus Základní pojmy DBS Životní cyklus DB, normalizace dat Modelování DBS, ER diagram Logická úroveň modelu, relační model Relační algebra a relační kalkul Funkční

Více

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

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

Využití XML v DB aplikacích

Využití XML v DB aplikacích Využití XML v DB aplikacích Michal Kopecký Výběr ze slajdů k 7. přednášce předmětu Databázové Aplikace (DBI026) na MFF UK Komunikace aplikace s okolím Databázová aplikace potřebuje často komunikovat s

Více

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

Ukládání a vyhledávání XML dat XML teorie a praxe značkovacích jazyků (4IZ238) Jirka Kosek Poslední modifikace: $Date: 2014/12/04 19:41:24 $ Obsah Ukládání XML dokumentů... 3 Ukládání XML do souborů... 4 Nativní XML databáze... 5 Ukládání

Více

Access. Tabulky. Vytvoření tabulky

Access. Tabulky. Vytvoření tabulky Access správa databáze (tabulky, relace, omezující podmínky, data...) uživatelské prostředí pro práci s databází (formuláře, sestavy, datové stránky, makra...) ukázková aplikace Northwind hlavní okno databáze

Více

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Využití OOP v praxi -- Knihovna PHP -- Interval.cz Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování

Více

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky Otázka 20 A7B36DBS Zadání... 1 Slovníček pojmů... 1 Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky... 1 Zadání Relační DB struktury sloužící k optimalizaci

Více

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

Úvod do MS Access. Modelování v řízení. Ing. Petr Kalčev Úvod do MS Access Modelování v řízení Ing. Petr Kalčev Postup při tvorbě aplikace Vytvoření tabulek Vytvoření relací Vytvoření dotazů Vytvoření formulářů Vytvoření sestav Tabulky Slouží k definování polí,

Více

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model Databázové systémy Tomáš Skopal - relační model * relační kalkuly Osnova přednášky relační kalkuly doménový n-ticový Relační kalkuly využití aparátu predikátové logiky 1. řádu pro dotazování rozšíření

Více

Generické programování

Generické programování Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =

Více

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

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d KMA/PDB Prostorové databáze Karel Janečka Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d Sylabus předmětu KMA/PDB Úvodní přednáška Základní terminologie Motivace rozdíl klasické

Více

DUM 12 téma: Příkazy pro tvorbu databáze

DUM 12 téma: Příkazy pro tvorbu databáze DUM 12 téma: Příkazy pro tvorbu databáze ze sady: 3 tematický okruh sady: III. Databáze ze šablony: 7 Kancelářský software určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie vzdělávací

Více

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA gklir@binghamton.edu

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA gklir@binghamton.edu A Tutorial Advances in query languages for similarity-based databases George J. Klir Petr Krajča State University of New York (SUNY) Binghamton, New York 13902, USA gklir@binghamton.edu Palacky University,

Více

Kolekce, cyklus foreach

Kolekce, cyklus foreach Kolekce, cyklus foreach Jen informativně Kolekce = seskupení prvků (objektů) Jednu již známe pole (Array) Kolekce v C# = třída, která implementuje IEnumerable (ICollection) Cyklus foreach ArrayList pro

Více