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

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

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

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

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

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

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

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

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

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

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

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

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

Ú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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze 2.2.0.6

APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze 2.2.0.6 APS mini.ed programová nadstavba pro základní vyhodnocení docházky Příručka uživatele verze 2.2.0.6 APS mini.ed Příručka uživatele Obsah Obsah... 2 Instalace a konfigurace programu... 3 Popis programu...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS 7. Integrita a bezpečnost dat v DBS 7.1. Implementace integritních omezení... 2 7.1.1. Databázové triggery... 5 7.2. Zajištění bezpečnosti dat... 12 7.2.1. Bezpečnostní mechanismy poskytované SŘBD... 13

Více

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS 7. Integrita a bezpečnost dat v DBS 7.1. Implementace integritních omezení... 2 7.1.1. Databázové triggery... 5 7.2. Zajištění bezpečnosti dat... 12 7.2.1. Bezpečnostní mechanismy poskytované SŘBD... 13

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

Ú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

Č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

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

Dolování asociačních pravidel

Dolování asociačních pravidel Dolování asociačních pravidel Miloš Trávníček UIFS FIT VUT v Brně Obsah přednášky 1. Proces získávání znalostí 2. Asociační pravidla 3. Dolování asociačních pravidel 4. Algoritmy pro dolování asociačních

Více

Popis ovládání. Po přihlášení do aplikace se objeví navigátor. Navigátor je stromově seřazen a slouží pro přístup ke všem oknům celé aplikace.

Popis ovládání. Po přihlášení do aplikace se objeví navigátor. Navigátor je stromově seřazen a slouží pro přístup ke všem oknům celé aplikace. Popis ovládání 1. Úvod Tento popis má za úkol seznámit uživatele se základními principy ovládání aplikace. Ovládání je možné pomocí myši, ale všechny činnosti jsou dosažitelné také pomocí klávesnice. 2.

Více

Obsah. Několik slov o Excelu 2007 a 2010 9. Operace při otvírání a ukládání sešitu 15. Operace s okny 27. Kapitola 1

Obsah. Několik slov o Excelu 2007 a 2010 9. Operace při otvírání a ukládání sešitu 15. Operace s okny 27. Kapitola 1 Obsah Kapitola 1 Několik slov o Excelu 2007 a 2010 9 Nové uživatelské rozhraní 9 Pás karet 10 Panel nástrojů Rychlý přístup 11 Tlačítko Office 11 Pracovní plocha 12 Nápověda 13 Kapitola 2 Operace při otvírání

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

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

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

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

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

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

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

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

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Vyhledávání, vkládání, odstraňování Vyhledání hodnoty v nesetříděném poli Vyhledání hodnoty v setříděném poli Odstranění hodnoty z pole Vkládání hodnoty do pole Verze pro akademický

Více

Reliance 3 design OBSAH

Reliance 3 design OBSAH Reliance 3 design Obsah OBSAH 1. První kroky... 3 1.1 Úvod... 3 1.2 Založení nového projektu... 4 1.3 Tvorba projektu... 6 1.3.1 Správce stanic definice stanic, proměnných, stavových hlášení a komunikačních

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í FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2012/13 https://edux.fit.cvut.cz/courses/bi-dbs/ Michal

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

DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 61 DATABÁZE - ACCESS. (příprava k vykonání testu ECDL Modul 5 Databáze a systémy pro zpracování dat)

DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 61 DATABÁZE - ACCESS. (příprava k vykonání testu ECDL Modul 5 Databáze a systémy pro zpracování dat) DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 61 DATABÁZE - ACCESS (příprava k vykonání testu ECDL Modul 5 Databáze a systémy pro zpracování dat) DATABÁZE A SYSTÉMY PRO UCHOVÁNÍ DAT 62 Databáze a systémy pro uchování

Více

Microsoft Access. Typy objektů databáze: Vytvoření a návrh nové tabulky. Vytvoření tabulky v návrhovém zobrazení

Microsoft Access. Typy objektů databáze: Vytvoření a návrh nové tabulky. Vytvoření tabulky v návrhovém zobrazení Microsoft Access Databáze je seskupení většího množství údajů, které mají určitou logiku a lze je určitým způsobem vyhodnocovat, zpracovávat a analyzovat Access je jedním z programů určených pro zpracování

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

BALISTICKÝ MĚŘICÍ SYSTÉM

BALISTICKÝ MĚŘICÍ SYSTÉM BALISTICKÝ MĚŘICÍ SYSTÉM UŽIVATELSKÁ PŘÍRUČKA Verze 2.3 2007 OBSAH 1. ÚVOD... 5 2. HLAVNÍ OKNO... 6 3. MENU... 7 3.1 Soubor... 7 3.2 Měření...11 3.3 Zařízení...16 3.4 Graf...17 3.5 Pohled...17 1. ÚVOD

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

Pravidla a plánování

Pravidla a plánování Administrátorský manuál TTC TELEKOMUNIKACE, s.r.o. Třebohostická 987/5 100 00 Praha 10 tel.: 234 052 111 fax.: 234 052 999 e-mail: ttc@ttc.cz http://www.ttc-telekomunikace.cz Datum vydání: 7. května 2013

Více

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

Marketingová komunikace. 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3bph) Marketingová komunikace Kombinované studium Skupina N9KMK3PH (vm3bph) 3. soustředění Mgr. Pavel Vávra 9103@mail.vsfs.cz http://vavra.webzdarma.cz/home/index.htm Zdroje Studijní materiály Heleny Palovské

Více

51 Docházka externistů

51 Docházka externistů 51 Docházka externistů Uživatelský modul Docházka externistů slouží ke zpracování podkladu pro výpočet mzdy všem externím zaměstnancům. Za externí zaměstnance jsou považováni ti, kteří nemají účet v informačním

Více

Programovací jazyk Prolog

Programovací jazyk Prolog Programovací jazyk Prolog Logické programování Šárka Vavrečková Ústav informatiky, Filozoficko-přírodovědecká fakulta Slezské univerzity v Opavě sarka.vavreckova@fpf.slu.cz 1. prosince 2008 Prolog Co je

Více

Maturitní témata Školní rok: 2015/2016

Maturitní témata Školní rok: 2015/2016 Maturitní témata Školní rok: 2015/2016 Ředitel školy: Předmětová komise: Předseda předmětové komise: Předmět: PhDr. Karel Goš Informatika a výpočetní technika Mgr. Ivan Studnička Informatika a výpočetní

Více

Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky.

Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky. Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky. Projekt ESF OP VK reg.č. CZ.1.07/2.2.00/28.0209 Elektronické opory a e-learning pro obory výpočtového

Více

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován. Instalace Produkt se neinstaluje. Stačí soubor uložit na libovolné místo na Vašem počítací (klikněte pravým tlačítkem a dejte 'uložit cíl jako ), pak jen spustit. Požadavky na software Produkt je odzkoušen

Více

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307 Stručný obsah část I Přehled jazyka SQL Kapitola 1: Úvod 27 Kapitola 2: Stručný úvod do jazyka SQL 37 Kapitola 3: Jazyk SQL z širšího pohledu 45 Kapitola 4: Relační databáze 69 Část II Získávání dat Kapitola

Více

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

POKROČILÉ POUŽITÍ DATABÁZÍ POKROČILÉ POUŽITÍ DATABÁZÍ Barbora Tesařová Cíle kurzu Po ukončení tohoto kurzu budete schopni pochopit podstatu koncepce databází, navrhnout relační databázi s využitím pokročilých metod, navrhovat a

Více

13. blok Práce s XML dokumenty v databázi Oracle

13. blok Práce s XML dokumenty v databázi Oracle 13. blok Práce s XML dokumenty v databázi Oracle Studijní cíl Tento blok je věnován práci s XML dokumenty, možnostmi jejich uložení a práce s nimi v databázi Oracle a datovému typu XMLType. Doba nutná

Více

Úvod. Boj se zavlečeným impedančním nesouladem na úrovni databáze

Úvod. Boj se zavlečeným impedančním nesouladem na úrovni databáze Boj se zavlečeným impedančním nesouladem na úrovni databáze ABSTRACT: Impedanční nesoulad může být zmírněn správnou volbou databázové technologie. Článek vysvětluje, co to impedanční nesoulad je a uvádí

Více

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

J. Zendulka: Databázové systémy 4 Relační model dat 1 4. Relační model dat 4.1. Relační struktura dat... 3 4.2. Integritní pravidla v relačním modelu... 9 4.2.1. Primární klíč... 9 4.2.2. Cizí klíč... 11 4.2.3. Relační schéma databáze... 13 4.3. Relační algebra...

Více

Principy XQuery. funkcionální jazyk vše je výraz, jehož vyhodnocením vznikne určitá hodnota základní typy stejné jako v XML Schema:

Principy XQuery. funkcionální jazyk vše je výraz, jehož vyhodnocením vznikne určitá hodnota základní typy stejné jako v XML Schema: Realizováno za finanční podpory ESF a státního rozpočtu ČR v rámci v projektu Zkvalitnění a rozšíření možností studia na TUL pro studenty se SVP reg. č. CZ.1.07/2.2.00/29.0011 XQuery XQuery dotazovací

Více

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

Objektově relační databáze a ORACLE 8 Objektově relační databáze a ORACLE 8 Ludmila Kalužová VŠB - TU Ostrava, Ekonomická fakulta, Katedra informatiky v ekonomice, Sokolská 33, 701 21 Ostrava 1 Abstrakt V současné době existuje velký počet

Více

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod 11. 1. Vítejte v Ruby 15. O autorovi 9 Poděkování 9

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod 11. 1. Vítejte v Ruby 15. O autorovi 9 Poděkování 9 Začínáme programovat v Ruby on Rails 9 O autorovi 9 Poděkování 9 Úvod 11 Komu je kniha určena 11 Jak je kniha uspořádána 11 Co ke knize potřebujete 12 Konvence 12 Zdrojový kód 13 Poznámka redakce českého

Více

typová konverze typová inference

typová konverze typová inference Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie

Více