Temporální a deduktivní databáze
|
|
- Iveta Kolářová
- před 8 lety
- Počet zobrazení:
Transkript
1 Temporální a deduktivní databáze Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů 3. demonstrační cvičení pro PDB 17. října 2014 Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
2 Obsah 1 Temporální databáze 2 Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
3 Cíle cvičení Temporální databáze, existující implementace. Představení jazyka (A)TSQL2, jeho části DDL a DML. Ukázka práce s TimeDB2 a TSQL2lib pomocí JDBC. Rozbor problémů v temporálních databázích Úvod do deduktivních databází, jejich implementace. Představení jazyka Datalog. Ukázka práce s databází XSB. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
4 Temporální DBS zohledňují časové vlastnosti ukládaných dat. Přirozené pro řadu oblastí. (bankovnictví, legislativa, katastr, medicínská data, monitorování, atd.) Jazyky pro temporální databáze: Bitemporal ChronoSQL, (Andreas Steiner, ETH Zurich) Chronolog (temporální Prolog), (Michael Bohlen, Aalborg University) Temporal SQL (TSQL, převzat do SQL3), (Rick Snodgrass, University of Arizona) TSQL2 (rozšíření SQL-92 ze srpna 1994, následník TSQL). (R. Snodgrass + Christian Jensen, Aalborg University) ATSQL2 (rozšíření TSQL2, pouze vývojový prototyp). (Bohlen + Jensen + Snodgrass + Steiner) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
5 Bitemporální model dat Z hlediska temporální databází rozlišujeme časové modely: 1 valid-time kdy jsou data pravdivá v modelovaném světě, (tabulky as validtime v TimeDB2 a as valid state/event v TSQL2lib) 2 transaction-time kdy jsou data uložena v databázi, začínají provedením vkládající databázové transakce. (např. versioning v Oracle DBWM nebo tabulky as transaction v TSQL2lib) Tyto dvě složky dohromady tvoří bitemporální model dat. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
6 Existující implementace temporálních databází TimeDB v2.2 (Andreas Steiner, TimeConsult) (JDBC adaptér, jazyk ATSQL2, podporuje pouze valid-time, implicitní temporální selekce, vývojový prototyp) TSQL2lib v1.0 (Jiří Tomek, FIT VUT) (JDBC adaptér, jazyk TSQL2, podporuje bitemporální model, explicitní temporální selekce, výsledek DP) ChronoLog (Michaela Bohlen, Aalborg University) (nadstavba nad Oracle, jazyk Prolog a ChronoSQL, podporuje pouze valid-time, jen demonstrační aplikace) Oracle Flashback Database & Workspace Manager (podpora valid-time pomocí verzování a transaction-time přístupem k historickým datům pomocí flashback dotazů) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
7 Druhy tabulek v (A)TSQL2 1 snímková tabulka (snapshot): Klasická relační tabulka nepodporující čas platnosti ani čas transakce, nelze se dotazovat na čas. 2 stavová tabulka (tabulka platného času, valid-time): Každý záznam spjat s množinou všech disjunktních nesousedících časových intervalů (tzv. stavová tabulka) nebo okamžiků (tzv. tabulka událostí), kdy záznam platil nebo došlo k události reprezentované záznamem. Přesnost času dána při vytváření tabulky. 3 transakční tabulka (transaction-time): Každý záznam je spjat s přesným časovým intervalem jeho přítomnosti v databázi (od vložení až po modifikaci nebo smazání). 4 bitemporální tabulka (tabulka obojího času): Kombinace stavové a transakční tabulky. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
8 Časová ontologie v jazyce (A)TSQL2 Časová osa v (A)TSQL2 je na obou koncích omezená. Okamžik na časové ose (instant) lze určit pouze přibližně, může být přesnější než nejmenší jednotka času, tvz. chronon, zadán časovým razítkem a měřítkem (např. den ). Dále je možné definovat čas intervalem nebo dobou trvání, interval je dán dvěma okamžiky a otevřeností/uzavřeností, doba trvání je dána hodnotou a měřítkem (např. 1 den). (A)TSQL2 používá koncept základních hodin, přiřazují časovým údajům konkrétní sémantický význam, (nejsou vázány na žádný konkrétní kalendářový systém) synchronizačními body rozdělují časovou osu na úseky. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
9 TimeDB2 Úvod Temporální databáze Prototyp temporální databáze s jazykem ATSQL2. ATSQL2 SQL překladač. Vrstvený přístup k implementaci TDB. Implementovaný v jazyce Java. Poskytuje vlastní rozhraní TDBCI pro temporální dotazy. Používá technologii JDBC pro back-end databáze. Podporuje různé back-end databáze. (Oracle, Sybase, Cloudscape) TimeDB2/ATSQL2 budeme používat pro demonstraci dotazů nad temporálními daty. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
10 TimeDB2 Demo aplikace Stáhneme soubor: Zprovozníme podle přiloženého readme souboru. Nastavíme connection string : jdbc:oracle:thin: (login)/(password)@gort.fit.vutbr.cz:1521:dbgort Spuštění po úpravě souborem: TimeDB22.bat Pro vytvoření db. použít příkaz: TimeDB/Create DB Na začátku nutné vždy otevřít db.: TimeDB/Open DB Režim spouštění příkazů z editačního okna nebo skriptu uloženého v souboru (odpovědi vypisuje systém na konzolu). Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
11 TimeDB2 Dotazovací režim I ATSQL2 podporuje ve valid-time modelu různé režimy dotazování: 1 sequenced (výsledek je stavová tabulka) období platnosti výsledků je viditelné, plně podporuje temporální dotazování, TimeDB (1): VALIDTIME SELECT... FROM... WHERE... TSQL2lib (1): SELECT... FROM... WHERE... TimeDB (2): VALIDTIME PERIOD [a-b) SELECT... FROM tablename... WHERE... TSQL2lib (2): SELECT... FROM tablename... WHERE valid(tablename) overlaps period [a-b) AND... Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
12 TimeDB2 Dotazovací režim II 2 nonsequenced (výsledek je snímková tabulka) temporální údaje jsou odstraněny, ale umožněno jejich explicitní použití, TimeDB (1): NONSEQUENCED VALIDTIME SELECT... FROM tablename... WHERE validtime(tablename)... TSQL2lib (1): SELECT SNAPSHOT... FROM tablename... WHERE valid(tablename)... TimeDB (2): NONSEQUENCED VALIDTIME PERIOD [a-b) SELECT... FROM tablename... WHERE valid(tablename)... (POZOR: zde je výsledkem stavová tabulka, kde všechny záznamy mají platnost od a včetně do b) TSQL2lib (2): nelze, není potřeba (používalo by se pro nastavení platnosti výsledků subselectů, ale ty lze filtrovat přímo v nadřazené podmínce) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
13 TimeDB2 Dotazovací režim III 3 snapshot (výsledek je stavová tabulka) výsledek je platný implicitně v reálném čase, časy platnosti jsou skryty, TimeDB: SELECT... FROM tablename... WHERE... (výsledek je stavová tabulka se skrytými časy platnosti) TSQL2lib: SELECT SNAPSHOT... FROM tablename... WHERE valid(tablename) contains date now AND... (POZOR: výsledek je snímková tabulka, tj. bez časů platnosti) TSQL2lib: SELECT... FROM tablename... WHERE valid(tablename) contains date now AND... (POZOR: výsledek je stavová tabulka, tj. se časy platnosti) Je zde dobře viditelný rozdíl mezi TSQL2 (používá TSQL2lib) a Applied TSQL2 (ATSQL2 v TimeDB), kdy čistý TSQL2 neimplementuje temporální selekci implicitně, ale explicitně pomocí operátorů VALID(tablename) a TRANSACTION(tablename) v klauzuli WHERE, a SNAPSHOT jen vytváří snímkové tabulky (bez temporálních dat). Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
14 TimeDB2 Podporované časové typy span (doba trvání určité události bez počátku, často výsledek operací nad časem, např. interval 2 year 1 month) event (výskyt události jako bod na časové ose, např. date ) interval (začátek a trvání události jako časový úsek, např. period[ )) Také lze vyjádřit pomocí konstant počáteční (beginning), aktuální (now) a konečný čas světa (forever). Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
15 TimeDB2 Intervaly pro platnost dat Často se používá intervalů pro reprezentaci výskytu události. PERIOD [ ) popisuje událost, která se stala v začátkem roku 1998 a trvala jeden, PERIOD [1980/10/ /10/06) popisuje událost, která se stala 5. října 1980 a trvala 1 den, PERIOD [1980/10/05 12: /10/05 12:31) popisuje událost, která se stala 5. října 1980 v hodin a trvala 1 minutu, PERIOD [1981/1/1-1981/1/1) nevyjadřuje platný čas pro žádnou fyzickou událost (prázdný interval), DATE 1999/01/01 vyjadřuje okamžik, který nastal 1. ledna 1999 v 0.00 hodin. Hodnoty výrazu PERIOD se interpretují tak, že obsahuje všechny body na časové ose včetně počátku intervalu, ale bez jeho konce. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
16 TimeDB2 Ukázka definice a dotazování dat CREATE TABLE student(jmeno varchar(15), PRIJMENI varchar(20), studium varchar(10)) AS VALIDTIME; VALIDTIME PERIOD [ ) INSERT INTO student VALUES ( Jan, Novak, BIT ); VALIDTIME PERIOD [now-forever) INSERT INTO student VALUES ( Libor, Tesar, MIT ); NONSEQUENCED VALIDTIME SELECT * FROM student; /* bez casovych udaju */ VALIDTIME SELECT * FROM student; /* vcetne casovych udaju */ VALIDTIME PERIOD [ ) SELECT * FROM student; /* jen v~danem obdobi */ Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
17 TimeDB2 Aritmetické operace s časem CREATE TABLE time(s interval, I~period, E date); INSERT INTO time VALUES (interval 3 year 2 month, period [ ), date ); SELECT a.s+b.s, a.s-b.s FROM time a, time b; /* secteni a odecteni casovych intervalu */ SELECT a.e+b.s, a.e-b.s FROM time a, time b; /* pricitani a odecitani int. a udalosti */ SELECT * FROM time a, time b WHERE a.i precedes b.i; /* predchazejici cas. obdobi nebo datum */ SELECT * FROM time a, time b WHERE a.i overlaps b.i; /* casove obdobi presahuje druhe */ SELECT * FROM time a, time b WHERE a.i meets b.i; /* porovnani zda se intervaly dotykaji */ SELECT * FROM time a, time b WHERE a.i contains b.e; /* cas. obdobi obsahuje jine nebo obsahuje datum */ Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
18 TimeDB2 Pokročilé temporální dotazy Implicitní temporální údaje je možné explicitně používat v dotazech. NONSEQUENCED VALIDTIME SELECT VALIDTIME(e1),e1.state FROM eh e1 WHERE VALIDTIME(e1) PRECEDES PERIOD [ ); validtime(e1) e1.state [ ) czech kingdom [ ) poland [ ) poland [ ) poland Co způsobí vynechání slova NONSEQUENCED? V dotazu budou uvedeny údaje o platnosti záznamů 2. Dotaz by měl vrátit pouze takové záznamy, které předcházejí vyžadovanou platnost, ale jsou ještě stále platné. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
19 Použití TimeDB2 a TSQL2lib v JDBC 1 Získat knihovny TSQL2lib, TimeDB 2.2 a HSQLDB (stáhnout z vč. adresáře timedb-scripts a konfiguračního souboru prefs) 2 Knihovny přidat do CLASSPATH pro překlad a spuštění. (javac -classpath...:./lib/tsql2lib.jar:./lib/timedb22.jar:./lib/hsqldb232.jar... ) 3 Spustit demonstrační příklady Demo3TimeDB a cz.vutbr.fit.pdb.demo3.tsql2lib.demo3tsql2lib Použití TSQL2lib, jako adaptér JDBC spojení: // create a OracleDataSource instance OracleDataSource ods = new OracleDataSource(); ods.set... // connect to the database via TSQL2 adapter Connection conn = new TSQL2Adapter(ods.getConnection()); Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
20 Implementace (A)TSQL2 Stavové tabulky Stavové tabulky se implementují jako běžné tabulky rozšířené o sloupce platnosti (VTS, VTE). Při vytváření tabulky je určí její druh, měřítko času a podmínky odsávání. (platí v TSQL2lib; v TimeDB2 pouze stavové tabulky bez přesnosti) Pří vkládání/mazání/aktualizaci záznamu se specifikuje jeho platnost (interval od-do). (není-li platnost zadána, platí akce od aktuálního okamžiku dále) Aktualizovat záznam znamená ukončit platnost předchozího a vložit aktuální s danou platností. Zpracování dotazu závisí na režimu (snapshot). ( snapshot v TSQL2lib ignoruje čas, v TimeDB2 vybere pouze aktuální data) Při vyhodnocování dotazu se filtruje podle hodnot sloupců platnosti. (filtr je časti implicitní, v závislosti na režimu dotazu) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
21 Aktualizace záznamů s omezenou platností Leží-li interval platnosti mazaných záznamů uprostřed intervalu platných dat, je původní interval rozdělen (tzn. i ovlivněné záznamy). Na jejich místo lze pak vložit nové, aktuální. VALIDTIME PERIOD [ ) DELETE FROM eh WHERE (ccity = warsaw ); VALIDTIME SELECT ccity FROM eh WHERE state = poland ; valid ccity [ ) gniezno [ ) cracow [ ) warsaw [ ) warsaw [ ) warsaw <<< [ ) warsaw <<< (příklad je v ATSQL2/TimeDB2) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
22 Mazání ze stavové tabulky V případech (b) a (e) bude aktualizována platnost u fyzického záznamu. V případě (c) bude aktualizována platnost u fyzického záznamu a navíc vložen další fyzický záznam se zbytkem platnosti. V případě (d) bude fyzický záznam odstraněn. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
23 Aktualizace ve stavové tabulce V případech (b) a (e) bude aktualizována platnost u fyzického záznamu se starými daty a vložen další fyzický záznam s novými daty a novou platností. V případě (c) bude aktualizována platnost u fyzického záznamu se starými daty a navíc vloženy další dva fyzické záznamy se zbytkem platnosti a starými daty a novou platností a novými daty. V případě (d) bude fyzický záznam jen aktualizován. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
24 Referenční integrita mezi stavovými tabulkami Bude aktualizován záznam s ID 1 a novým časem platnosti dat: Jak zachováme referenční integritu? Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
25 Referenční integrita mezi stavovými tabulkami řešení Záznam z druhé tabulky rozdělíme na dva podle prvního záznamu a nastavíme odkazy mezi odpovídajícími variantami. Použije se složený primární klíč, bude obsahovat i čas platnosti. (původní primární klíč byl jen ID a to je nyní nejednoznačné) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
26 Doporučení pro implementaci (A)TSQL2 Umožnit všechny režimy práce s temporálními daty. (pro ATSQL2/TimeDB všechny tři, pro TSQL2lib stavové a snímkové dotazy) V tabulkách navíc uschovávat ke každému záznamu rozsah jeho platnosti (dolní a horní mez intervalu). Při vyhodnocování dotazu určit požadovanou platnost a tuto doplnit do WHERE části dotazu pro každou temporální tabulku. Při mazání záznamu nalézt záznamy v jeho platnosti a ty bud odstranit (jsou obsaženy v mazaném) nebo upravit platnost (překrývají se s mazaným) nebo záznamy rozdělit (obsahují mazaný). Kontrolovat referenční integritu i vzhledem k platnosti. (při mazání rodiče smazat i potomky ve stejné platnosti, při vkládání potomka kontrolovat existenci rodiče v celé jeho platnosti) Při vkládání záznamu slučovat stejné záznamy dotýkající se navzájem svou platností. (tzv. shlukování dat, vizte přednášky) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
27 Do projektu k převodu (A)TSQL2 na čisté SQL Alespoň 5 netriviálních dotazů temporální povahy. (jednoduché dotazy nad jednou tabulkou, ale také nad JOINem více tabulek, vč. vkládání a mazání záznamů s uvedením jejich platnosti) Pro temporální dotazy napsat strukturu příslušných tabulek a SQL dotazy, které se provedou při volání temporálních dotazů. (např. při mazání včetně zjištění rozsahu mazání a úprav platnosti stávajících a mazání přeživších záznamů) Implementovat uvedené dotazy ve vaší aplikaci. (nejlépe jako kombinované multimediální, prostorové a temporální dotazy) Za nadstandardní řešení bude považováno např.: Interpret libovolného (A)TSQL2 dotazu s jistými omezeními. Čím méně omezení a čím více pokryto (A)TSQL2, tím lepší projekt. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
28 Literatura k temporálním databázím Jiří Tomek: TSQL2 interpret nad relační databází. Christian S. Jensen: Temporal Database Management. Richard T. Snodgrass: Developing Time-Oriented Database Applications in SQL. ISBN Andreas Steiner: A Generalisation Approach to Temporal Data Models and their Implementations. Ocelka et al.: Současné db. modely Temporální databáze. ocelka.html Zdeněk Vilušínský: Temporalní databáze a TSQL2. Richard T. Snodgrass et al.: A TSQL2 tutorial. ACM SIGMOD Record. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
29 Úvod do deduktivních databází Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Zpracovávání velkých objemů dat s vyjadřovacími schopnostmi logických programovacích jazyků. PROLOG = jazyk pro logické programování. DATALOG = jazyk deduktivní databáze, používá: fakta: statická data, základní informace, pravidla: návod jak odvodit data, která nejsou explicitně uložena, dotaz: výraz jehož výsledkem jsou nalezená a odvozená data. Uživatel položí otázku, systém prohledává databázi a používá odvozovací pravidla při hledání odpovědi. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
30 Databáze XSB Temporální databáze Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Systém pro logické programování a implementace deduktivní databáze. Dva způsoby vyhodnocení predikátu: 1 prologovské vyhodnocování shora dolů, pro cyklické závislosti nemá konečný výpočet, 2 metoda zdola nahoru pro zvolené predikáty (tzv. tabled resolution ), dovoluje vyhodnocovat cyklické závislosti. Jazyk HiLog umožňuje konstruovat predikáty vyššího řádu. (predikátový symbol může mít význam proměnné = prostředek pro definici generických predikátů) Rozhraní pro C, Javu, Perl, obj. orientovaný systém Flora, F-Logic, přístup k ext. datovým zdrojům ODBC či Oracle. Open-source, verze pro systémy Unix, Linux a Windows. ( Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
31 Ukázka spuštění interpretu XSB Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Načtení modulu (definiční režim), příkazový řádek (dotazovací režim): [xsb_configuration loaded] [sysinitrc loaded] XSB Version (Pignoletto) of January 2, 2012 [x86_64-pc-linux-gnu 64 bits; mode: debug; engine: multi-threading; scheduling: local] [Patch date: 2012/01/09 03:50:32]?- [pribuzni]. [Compiling./pribuzni] [Module pribuzni compiled, cpu time used: seconds] [pribuzni loaded] yes?- rodic(x, Marie Terezie ). X = Karel VI. yes?- halt. End XSB (cputime 0.03 secs, elapsetime secs) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
32 Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Platné výrazy XSB (manuál, vol. 1, ch.4) Syntaxe jazyka XSB vychází ze syntaxe jazyka PROLOG, a obsahuje pouze tyto druhy výrazů: konstanta, celé číslo: 1, 3456, 95359, 1601FA4 reálné číslo: 1.0, 34.56, 817.3E12, e26 atomické výrazy: foo, foo_bar1, I am also atom!, [] proměnná, sekvence písmen, číslic, a _ : X, HiLog, _3, _List nepojmenovaná proměnná _ složený výraz, seznam. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
33 Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Platné výrazy XSB složený výraz a seznamy Složený výraz PROLOG + HiLOG (Struktura, Funktor) Struktura = term a sekvence argumentů: foo(bar), prolog(a,x), 123(joh_n,500), X(Y,Z,Y(W)), f(a,(b(c))(d)), map(double)([],[]) Explicitní odkaz na funktor = Name/Arity: foo/1, prolog/2, 123/2, X/3, f/2, map(double)/2 Seznamy: Prázdný seznam: [] Neprázdný seznam:.(1,.(2,.(3, []))), [1,2,3] Pattern matching: [Tail Head], (Tail, Head) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
34 Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Predikáty explicitně a odvoditelně uložené Explicitně uložené predikáty: B(A1, A2,..., An). rodic( Leopold I., Karel VI. ). rodic( Karel VI., Marie Terezie ). rodic( Marie Terezie, Josef II. ). Odvoditelně uložené predikáty: B :- A1, A2,..., An. A 1 A 2... A n B predek(x,y) :- rodic(x,y). predek(x,y) :- rodic(x,z), predek(z,y). potomek(x,y) :- predek(y,x). Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
35 Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Kombinace expl. a odv. uložených predikátů Obecně je kombinace expl. a odv. uložených predikátů potřeba. Predikát nat vyjadřuje tvrzení je přirozené číslo. nat(zero). nat(succ(x)) :- nat(x). Funkce sčítání pro predikát nat je plus(0,n,n) :- nat(n). plus(succ(m),n,succ(z)) :- plus(m,n,z). Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
36 Tranzitivní uzávěr Temporální databáze Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty V deduktivní databázi je jednoduché definovat vztah s vlastností tranzitivní relace. Predikát rodic(x,y) deklaruje vztah x je rodičem y. Definujme tranzitivní uzávěr predek: chybně (zacyklí se) predek(x,y) :- rodic(x,y). predek(x,y) :- predek(x,z), predek(z,y). správně predek(x,y) :- rodic(x,y). predek(x,y) :- rodic(x,z), predek(z,y). Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
37 Dotazy Temporální databáze Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Test, zda je A prarodičem B:?- prarodic( Leopold I., Marie Terezie ). yes Nalezení všech vyhovujících hodnot: (při výpisu hodnot sekvence. a Enter přejde na další položku, jen klávesa Enter ukončí výpis)?- predek(x, Marie Terezie ). X = Karel VI.. X = Leopold I.. no setof vrací výsledek jako množinu?- setof(x, dite(x, Karel VI. ),L). X = _h114 L = [Leopold Jan,Marie Anna 2,Marie Terezie] bagof vrací výsledek jako multi-množinu. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
38 Základní predikáty Temporální databáze Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty true vždy splněno, fail nikdy splněno, fail_if/1 je platný, když predikát platný není, P -> Q ; R jestliže P, potom Q, jinak R, P -> Q jestliže P, potom Q, jinak fail, X = Y když X a Y jsou unifikovatelné, X \= Y když X a Y nejsou unifikovatelné, T1 == T2 splněno jsou-li T1 a T2 identické, T1 \== T2 splněno nejsou-li T1 a T2 identické, T2 pokud T1 předchází T2, T2 pokud T1 následuje za T2 nebo je identické, T2 jsou-li identické proměnné, nebo shodná struktura. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
39 Třídění Temporální databáze Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty sort(l1, L2) porovnává seznam L1 se setříděným seznamem L2,?- sort([1,4,3,2], L). L = [1,2,3,4]; keysort(l1, L2) porovnává seznam L1 se setříděným seznamem L2, kde prvky seznamů jsou dvojice Key-Value.?- keysort([1-a,3-d,2-h,4-f], L). L = [1 - a,2 - h,3 - d,4 - f] Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
40 Aritmetické výrazy Temporální databáze Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Používá se is(result,expression) standardní predikát.?- X is 3 /2. X = yes Funktory, které mohou být vyhodnoceny: +(Expr1,Expr2) -(Expr1) -(Expr1,Expr2) ceiling(expr) *(Expr1,Expr2) float(expr) /(Expr1,Expr2) floor(expr) //(Expr1,Expr2) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
41 Predikáty pro práci se seznamy Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty V modulu basics: append(list1, List2, List3) member(element, List) ith(index, List, Element) delete_ith(index, List, Element, RestList) v modulu listutil length(list, Length) same_length(list1, List2) reverse(list1, List2) subseq(list1, List2a, List2b) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
42 Predikáty pro práci s řetězci Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty V modulu string: str_sub(sub, String, Pos) str_length(string, Length) substring(string, BeginOffset, EndOffset, Result) string_substitute(inpstr, SubStr, SubList, Out) Substr je funktor s(begoffset, EndOffset)?- string_substitute( qaddf, [s(2,4)], [ 123 ],L). L = qa123f concat_atom(atomlist,atom) Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
43 Agregované operátory Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty Reprezentace operátoru Count?- import length/2 from basics.?- length(l, C), setof(x, nadrizenyt(x, rysavy), L). C = 3 yes a další operátory... Více informací v manuálu XSB a v tutoriálech systému PROLOG. Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
44 Literatura k deduktivním databázím Úvod do deduktivních databází Databáze XSB Datalog: definice a dotazování dat, standardní predikáty The XSB System, Version 3.5.x, Volume 1: Programmer s Manual. manual1.pdf?format=raw F. S. Perez: Datalog Educational System V3.8: User s Manual. pdf/download Karel Ježek: a jejich implementace v relačním prostředí. ISBN Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
45 Poděkování a otázky Děkuji za pozornost. Otázky? Diskuze? Marek Rychlý Temporální a deduktivní databáze 3. demonstrační cvičení pro PDB, 17. října / 47
Databázové systémy. Cvičení 6: SQL
Databázové systémy Cvičení 6: SQL 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íceDatabázové systémy úvod
Databázové systémy úvod Michal Valenta Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze c Michal Valenta, 2016 BI-DBS, LS 2015/16 https://edux.fit.cvut.cz/courses/bi-dbs/
VíceTSQL2. (aneb jak na to) Tomáš Janků
TSQL2 (aneb jak na to) Tomáš Janků OBSAH Srovnání SQL92 a TSQL2 OBSAH Srovnání SQL92 a TSQL2 TSQL2 datový model OBSAH Srovnání SQL92 a TSQL2 TSQL2 datový model Konstrukce jazyka TSQL2 Srovnání TSQL2 vs.
VíceTemporální databáze. Jan Kolárik Miroslav Macík
Temporální databáze Jan Kolárik Miroslav Macík 2012 Úvod jak zachytit časově proměnnou povahu jevů konvenční databáze stav pouze v jednom bodě časové linie aktuální obsah ~ statický snímek (snapshot) temporální
VíceDatabáze I. 5. přednáška. Helena Palovská
Databáze I 5. přednáška Helena Palovská palovska@vse.cz SQL jazyk definice dat - - DDL (data definition language) Základní databáze, schemata, tabulky, indexy, constraints, views DATA Databáze/schéma
VíceProlog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David
Úvod do Prologu Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David Warren (Warren Abstract Machine) implementace
VíceDatabázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal
Databázové systémy - SQL * definice dat * aktualizace * pohledy Tomáš Skopal Osnova přednášky definice dat definice (schémat) tabulek a integritních omezení CREATE TABLE změna definice schématu ALTER TABLE
VíceÚvod do databázových systémů
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 3 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování 4 fáze vytváření
VíceVYSOKÉ 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íceNá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íce8.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íceKIV/ZIS cvičení 5. Tomáš Potužák
KIV/ZIS cvičení 5 Tomáš Potužák Úvod do SQL (1) SQL (Structured Query Language) je standardizovaný strukturovaný dotazovací jazyk pro práci s databází Veškeré operace v databázi se dají provádět pomocí
VíceRELAČNÍ DATABÁZOVÉ SYSTÉMY
RELAČNÍ DATABÁZOVÉ SYSTÉMY VÝPIS KONTROLNÍCH OTÁZEK S ODPOVĚDMI: Základní pojmy databázové technologie: 1. Uveďte základní aspekty pro vymezení jednotlivých přístupů ke zpracování hromadných dat: Pro vymezení
VíceÚvod do databázových systémů
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 8 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování Entita Entitní typ
VíceDatabázové systémy. Datová integrita + základy relační algebry. 4.přednáška
Databázové systémy Datová integrita + základy relační algebry 4.přednáška Datová integrita Datová integrita = popisuje pravidla, pomocí nichž hotový db. systém zajistí, že skutečná fyzická data v něm uložená
VíceInformační systémy ve zdravotnictví. 6. cvičení
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Informační systémy ve zdravotnictví 6. cvičení Ing. Petr Lukáš petr.lukas@nativa.cz Ostrava, 2014 Opakování Relace
VíceInformač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íceKapitola 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íceSQL - 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íceAnalý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íceKurz 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íceSII - 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íceUniverzita 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íceKapitola 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íceJazyk 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íceProgramová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íceJaký 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íceKMI / 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íceMichal 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íceInformač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íceB0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux
B0M33BDT Technologie pro velká data Supercvičení SQL, Python, Linux Sergej Stamenov, Jan Hučín 18. 10. 2017 Osnova cvičení Linux SQL Python 2 SQL pro uživatele aneb co potřebuje znát a umět bigdatový uživatel:
VíceDatabá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íceDatabáze I. Přednáška 4
Databáze I Přednáška 4 Definice dat v SQL Definice tabulek CREATE TABLE jméno_tab (jm_atributu typ [integr. omez.], jm_atributu typ [integr. omez.], ); integritní omezení lze dodefinovat později Definice
VíceLogické programování
30. října 2012 Osnova Principy logického programování 1 Principy logického programování 2 3 1 Principy logického programování 2 3 Paradigmata programování Strukturované programování Procedurální programování
VíceÚvod do databázových systémů
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íceDatabá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íceObsah. 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íceLogické 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íceZá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íceDatabázové systémy a SQL
Databázové systémy a SQL Lekce 2 Daniel Klimeš Autor, Název akce 1 CREATE TABLE Vytvoření tabulky (ORACLE) DDL příkazem v grafickém prostředí CREATE TABLE jmeno ( text VARCHAR2(200), cislo NUMBER(9,1),
VíceÚvod do databází. Modelování v řízení. Ing. Petr Kalčev
Úvod do databází Modelování v řízení Ing. Petr Kalčev 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íceTvorba informačních systémů
Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2006/2007 c 2006 2008 Michal Krátký Tvorba informačních systémů 1/17 Úvod XML
VíceDatabáze I. Přednáška 7
Databáze I Přednáška 7 Objektové rozšíření SQL Objektově relační databáze SQL:1999 objektové rozšíření SQL vztahuje se k objektově relačním databázovým systémům ukládají objekty do relační databáze umožňují
Více2. 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íceSemestrá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íceInovace 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íceInovace 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íceOracle XML DB. Tomáš Nykodým
Oracle XML DB Tomáš Nykodým xnykodym@fi.muni.cz Osnova Oracle XML DB Architektura Oracle XML DB Hlavní rysy Oracle XML DB Hlavní rysy Oracle XML DB - pokračování XMLType XML Repository Využívání databázových
VíceDatabá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íceOperá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íceJazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12
Jazyk SQL 1 Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12 https://edux.fit.cvut.cz/courses/bi-dbs/ Michal Valenta (FIT
VíceStored 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ícePOSTUP 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íceStě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íceOBJECT 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ícePouž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íceDatabázové systémy a SQL
Databázové systémy a SQL Daniel Klimeš Autor, Název akce 1 About me Daniel Klimeš Vzdělání: Obecná biologie PGS: onkologie Specializace: klinické databáze Databáze ORACLE klimes@iba.muni.cz Kotlářská 2,
VíceAnalýza dat a modelování. Přednáška 3
Analýza dat a modelování Přednáška 3 Hierarchický model Hierarchical Data Manipulation Language - HDML manipulace s daty (vyhledávání) pomocí příkazů HDML v hierarchickém SŘBD připomíná princip práce se
VíceMichal 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íce1 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íceJazyk PL/SQL Úvod, blok
Jazyk PL/SQL Úvod, blok 1 Bc. Tomáš Romanovský Procedural Language for Structured Query Language Součást systému Oracle, rozšíření SQL o procedurální rysy Prostředky pro vytváření a spouštění programových
Více4. 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íceDatabá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ícePaměť 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íceAnalý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íceALGORITMIZACE 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íceFunkcionální programování. Kristýna Kaslová
Funkcionální programování Kristýna Kaslová Historie Alonzo Church (30. léta) Netypovaný lambda kalkul Základ prvních funkcionálních jazyků Jeho konstrukce i v mnoha současných programovacích jazycích (Python)
VíceKIV/ZIS cvičení 6. Tomáš Potužák
KIV/ZIS cvičení 6 Tomáš Potužák Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Slučování záznamů do skupin (1) Chceme zjistit informace obsažené ve více záznamech najednou Klauzule GROUP
Více5. 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íceDatabá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íceObchodní 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íceProgramová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íceAlgoritmizace 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íceMarketingová 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íceVYSOKÉ UČENÍ TECHNICKÉ V BRNĚ
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS TEMPORÁLNÍ ROZŠÍŘENÍ
VíceObjektově 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íceDatabá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íceO 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íceMATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE
VíceÚvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) 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íceInnoDB 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íceLogika 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íce6. 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íceZá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íceDJ2 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íceKlíč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íce1. 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íceDatabáze I. Přednáška 6
Databáze I Přednáška 6 SQL aritmetika v dotazech SQL lze přímo uvádět aritmetické výrazy násobení, dělení, sčítání, odčítání příklad z minulé přednášky: zdvojnásobení platu všem zaměstnancům UPDATE ZAMESTNANEC
VíceÚvod do databázových systémů
Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Úvod do databázových systémů Cvičení 4 Ing. Petr Lukáš petr.lukas@vsb.cz Ostrava, 2014 Opakování Klauzule příkazu
VíceDatabázové systémy Cvičení 5.3
Databázové systémy Cvičení 5.3 SQL jako jazyk pro manipulaci s daty SQL jako jazyk pro manipulaci s daty Aktualizace dat v SQL úprava záznamů v relacích (tabulkách) vložení záznamu INSERT INTO oprava záznamu
VíceÚvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) 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íceDatabá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íceUká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íceNegativní 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ícePRG036 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íceText ú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íce1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018
ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018 Informační technologie 1 - Doporučená doba zpracování: 40 minut 1) Termín DCL v relačně databázové technologii
VíceGymná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íceDatabá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ícePHP 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