řízení transakcí 2-3 hodiny

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

Download "řízení transakcí 2-3 hodiny"

Transkript

1 7. blok - část A Jazyk PL/SQL - zpracování chyb, řízení transakcí Studijní cíl Tento blok je věnován ošetření chyb a řízení transakcí v kódu PL/SQL. Doba nutná k nastudování 2-3 hodiny Průvodce studiem Při studiu tohoto bloku se předpokládá, že čtenář je obeznámen s jazykem SQL, je schopen napsat jednoduchý program v libovolném programovacím jazyce a zná základy jazyka PL/SQL. 1. Zpracovávání chyb Dobře napsané programy musí být schopny správně zpracovávat chyby a umět se z nich vzpamatovat. V PL/SQL se s chybami pracuje pomocí výjimek a zachytávání výjimek. Výjimky je možné navázat na chyby Oracle nebo je možné si definovat vlastní uživatelsky definované chyby. V následujícím textu se seznámíme se syntaxí pro práci s výjimkami a s pravidly pro šíření výjimek. Výjimky v PL/SQL se podobají výjimkám v jazyce Java. Ale na rozdíl od výjimek v jazyce Java nejsou výjimky v PL/SQL objekty a nemají definovány žádné metody. V PL/SQL se mohou objevit 2 typy chyb: chyby při překladu, které hlásí překladač a které je nezbytné opravit, aby mohl být předkompilován a chyby za běhu programu, které zpracovávají zachytávače výjimek. Jestliže doje k chybě za běhu programu, je vyvolána výjimka. Provádění kódu (řízení běhu programu) poté přejde do části zachytávače výjimek, která je oddělena od zbytku programu. Toto oddělení má kromě vlastního zpřehlednění kódu také tu výhodu, že zde budou zachycenyy všechny chyby. Program tedy nebude pokračovat dál od příkazu, který způsobil chybu, ale vždy přejde do zachytávače výjimek a poté do libovolného vnějšího bloku. Existují 2 typy výjimek: předdefinované a uživatelsky definované. 1

2 Předdefinované výjimky Oracle má mnoho předdefinovaných výjimek, které odpovídají běžným chybám, viz následující tabulka: Výjimka Oracle chyba Hodnota SQLCODE Vyvolána je: ACCESS_INTO_NULL COLLECTION_IS_NULL CURSOR_ALREADY _OPEN DUP_VAL_ON_INDEX INVALID_CURSOR INVALID_NUMBER LOGIN_DENIED NO_DATA_FOUND NOT_LOGGED_ON Přiřazení hodnoty k atributu neinicializovaného (null) objektu Použití jiné sběrné metody (collection method) než EXISTS na neinicializovanou (atomicky null) vnořenou tabulku nebo pole (varray) nebo přiřazení hodnoty do položek neinicializované vnořené tabulky nebo pole Snaha o otevření již jednou otevřeného kurzoru (cursor), před opětovným otevřením musíte kurzor nejdříve zavřít, kurzorový FOR cyklus otevírá kurzor automaticky, takže jej nelze uvnitř cyklu opět otevřít. -1 Snaha o uložení totožné (již existující) hodnoty do sloupce, který je označen jako unique index - index specifických hodnot Nepovolená operace s kurzorem (cursor), například zavření neotevřeného kurzoru Selhání převodu mezi řetězcem znaků a číslem v příkazu SQL z toho důvodu, že řetězec neobsahuje platné číslo. V procedurálním příkazu je vyvolána výjimka VALUE_ERROR Snaha nalogovat se na Oracle server s neplatným jménem (username) a/nebo heslem (password) Pokud příkaz SELECT INTO nevrátí žádné řádky nebo se odkazujete na smazaný prvek vnořené tabulky nebo neinicializovaný prvek index-by tabulky. Od příkazu FETCH se případně dá očekávat navrácení prázdného řádku (no rows) a v tomto případě výjimka není vyvolána. SQL kolektivní (group) funkce jako AVG a SUM vracejí vždy hodnotu nebo null. Proto také příkaz SELECT INTO volající group funkci nikdy nevyvolá výjimku NO_DATA_FOUND Pokud se PL/SQL program pokouší provést databázovou operaci bez předchozího připojení k serveru Oracle. 2

3 PROGRAM_ERROR ROWTYPE_MISMATCH STORAGE_ERROR SUBSCRIPT_BEYOND _COUNT SUBSCRIPT_OUTSIDE _LIMIT TIMEOUT_ON _RESOURCE TOO_MANY_ROWS VALUE_ERROR ZERO_DIVIDE Vnitřní problém (internal problem) při běhu programu Hlavní (host) a PL/SQL kurzorová proměnná vyžádaná dosazením mají nekompatibilní návratové typy. Například, když přenecháte otevřený host kurzor uloženému podprogramu, pak návratové typy aktuálních a formálních parametrů musí být kompatibilní PL/SQL vyčerpalo paměť, nebo je paměť poškozená Odkaz na prvek vnořené tabulky (nested table) či pole (varray) s číslem indexu větším než je počet dostupných prvků Odkaz na prvek vnořené tabulky (nested table) či pole (varray) s číslem indexu, který je mimo povolený rozsah (např. -1). -51 Vypršel čas (time-out), během kterého Oracle čeká na prostředky (resource) Příkaz SELECT INTO vrací více než jeden řádek Chyba aritmetická, převodní, zkrácení nebo omezení velikosti. Například, když dosadíte hodnotu ze sloupce do znakové proměnné a tato hodnota je delší než nedeklarovaná délka proměnné. V procedurálních příkazech je výjimka vyvolána, pokud selže převod mezi řetězcem a číslem (v SQL je to výjimka INVALID_NUMBER) Dělení nulou. Příklad: DECLARE v_jmeno ucitel..jmeno%type; v_id ucitel..id%type; SELECT jmeno, Id INTO v_jmeno, v_id FROM ucitel WHERE Id=2; DBMS_OUTPUT.PUT_LINE('Jméno: ' v_jmeno); DBMS_OUTPUT.PUT_LINE('Id: ' v_id); EXCEPTION -- ošetření výjimky při nenalezení dat WHEN NO_DATA_FOUND THEN 3

4 DBMS_OUTPUT.PUT_LINE('Data nenalezena'); -- ošetření výjimky při nalezení více řádků WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.PUT_LINE('Mnoho řádků'); Uživatelsky definované výjimky V PL/SQL má uživatel možnost nadefinovat si vlastní výjimky. Tyto výjimky se deklarují v deklarační části, vyvolávají se v exekuční části příkazem RAISE a zpracovávají se v oblasti výjimek. Deklarace výjimky začíná jejím jménem následovaným klíčovým slovem EXCEPTION. Pro vlastní výjimky je SQLCODE rovno 1 a SQLERRM vrací Text User-Defined Exception. Syntaxe DECLARE <název výjimky> EXCEPTION; <příkazy>; RAISE <název výjimky>; EXCEPTION WHEN <název výjimky> THEN <příkazy>; Příklad deklarace a vyvolání výjimky pojmenované PRILIS_MNOHO_TRPASLIKU: : DECLARE PRILIS_MNOHO_TRPASLIKU EXCEPTION; v_pocet_trpasliku NUMBER; select count(*) INTO v_pocet_trpasliku FROM trpaslici; IF v_pocet_trpasliku > 7 THEN RAISE PRILIS_MNOHO_TRPASLIKU; END IF; EXCEPTION WHEN PRILIS_MNOHO_TRPASLIKU THEN DBMS_OUTPUT.PUT_LINE('Trpaslíků může být max. 7!' '); 4

5 Použití raise_application_error Balíček DBMS_STANDARD dodávaný spolu s Oracle poskytuje jazykové prostředky, které mohou vašim aplikacím napomoci při spolupráci s Oracle. Například procedura raise_application_error umožňuje zveřejnit uživatelsky definované chybové hlášky z uložených podprogramů (stored subprograms). Touto cestou můžete své aplikaci oznamovat chyby a vyhnout se vracení neošetřených chyb. Příkaz raise_application_error má následující syntax: RAISE_APPLICATION_ERROR(error_number, message[, {TRUE FALSE}]); kde error_number je záporné celé číslo (integer) v rozsahu a message je řetězec maximální délky 2048 bytů. Jestliže je třetí nepovinný parameter TRUE, chyba je uložena do zásobníku, pokud je FALSE (default), chyba nahradí všechny dosud uložené chyby. Aplikace může volat raise_application_error pouze ze spustitelného uloženého podprogramu. Je-li zavolána, raise_application_error ukončí podprogram a vrátí uživatelsky definovanou chybu (číslo chyby) a zprávu aplikaci. Číslo chyby a zpráva pak může být odchytnuta stejně jako každá jiná Oracle chyba. V následujícím příkladu je zavolána procedura raise_application_error, pokud není uvedena mzda u daného zaměstnance, v opačném případě provede navýšení mzdy: DECLARE v_mzda NUMBER; v_id NUMBER := 1; SELECT mzda INTO v_mzda FROM zamestnanci WHERE zam_id = v_id; IF v_mzda IS NULL THEN raise_application_error(-20101, 'Mzda neuvedena'); ELSE UPDATE zamestnanci SET mzda = p_mzda * 1,05 WHERE zam_id = v_id; END IF; Volající modul obdrží výjimku, kterou může zpracovat pomocí funkcí na zpracování chyb (error-reporting functions) SQLCODE a SQLERRM v handleru OTHERS. 5

6 Zachytávání výjimek Jakmile dojde k výjimce, přechází tok programu v daném bloku do oblasti výjimek. Tato oblast se skládá ze zachytávačů pro některé (WHEN <název výjimky>) nebo všechny ostatní (OTHERS). Za klauzulí THEN je uveden kód, který se v daném případě provede. Všeobecná syntaxe pro zpracování výjimek: EXCEPTION [WHEN <název výjimky1> THEN <příkazy>; [WHEN <název výjimky2> OR <název výjimky3> THEN <příkazy>; [OTHERS THEN <příkazy> >;] Zachytávač ostatních výjimek (OTHERS) zachytí všechny výjimky neošetřené v klauzuli WHEN. Klauzule WHEN OTHERS zachytí všechny výjimky. Je vhodné mít tento univerzální zachytávač na nejvyšší úrovni programu (nejvyšším bloku), protože poté z programu neunikne řádná výjimka. Jinak hrozí, že se chyba bude šířit do vnějšího prostředí. Když je vyvolána výjimka v exekuční oblasti bloku, postupuje řízení běhu programu podle následujících pravidel: 1. Jestliže má aktuální blok pro danou výjimku zachytávač, spustí jej a blok dokončí jako úspěšný. Řízení pak přechází do vnějšího bloku. 2. Jestliže neexistuje pro danou výjimku v daném bloku zachytávač, dojde k přenosu chyby do vnějšího (bloku). Pro tento blok se provede krok 1 - pokud existuje zachytávač pro danou výjimku, jinak se opakuje přenos do dalšího vnějšího bloku. 3. Jestliže vnější blok neexistuje, výjimka se dostane do volajícího prostředí. Pokud je vyvolána výjimka v deklarační oblasti při přiřazování, přechází výjimka ihned do vnějšího bloku. Pokud je vyvolána výjimka v zachytávači výjimek, přechází opět řízení ihned do vnějšího bloku. Neboli platí, že v danou chvíli může být aktivní pouze jediná výjimka. 6

7 Příklad 1: Po vyvolání výjimky A je tato zachycena ve vnitřním bloku a program pokračuje dalším příkazem ve vnějším bloku. Příklad 2: Po vyvolání výjimky A není tato zachycena vnitřním bloku a výjimka je propagována vnějšího bloku, kde je v sekci výjimek zachycena. ve do Příklad 3: Po vyvolání výjimky A není tato zachycena ve vnitřním bloku a výjimka je propagována do vnějšího bloku, bohužel ani zde není tato výjimka zachycena. Další vnější programový blok již neexistuje a PL/SQL proto propaguje výjimku do volajícího prostředí. 7

8 V zachytávači výjimek lze ke zjištění informací o chybě použít funkcí SQLCODE a SQLERRM (číslo chyby a chybová zpráva). Pro vnitřní výjimky SQLCODE vrací číslo chyby (Oracle error number), které je záporné (tedy kromě výjimky no data found, kdy SQLCODE vrací +100). Funkce SQLERRM vrací příslušnou chybovou zprávu (začínající kódem dané chyby). Pro uživatelské výjimky (user-defined exceptions) vrací fce SQLCODE +1 a SQLERRM vrací 'User-Defined Exception' Příklad: DECLARE v_vysledek NUMBER(9,2); v_vysledek := 5/0; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(' Chyba '); DBMS_OUTPUT.PUT_LINE('Kód chyby:' SQLCODE); DBMS_OUTPUT.PUT_LINE('Popis chyby:' SQLERRM); Při práci s výjimkami mohou vzniknout následující potřeby: 1) pokračování po vyvolání výjimky v provádění příkazů v rámci daného bloku - tuto potřebu ošetříme vložením dalšího (vnitřního) bloku do daného bloku a výjimku zpracujeme v rámci tohoto nově vloženého bloku. 2) použití vyhledávací proměnné - pokud v rámci bloku existuje více příkazů, které mohou vyvolat stejnou výjimku, je vhodné použít pomocnou proměnnou pro uložení označení příkazu, který se bude následně provádět. V zachytávači pak můžeme s hodnotou této proměnné pracovat, například ji logovat spolu s informací o vyskytnuvší se chybě. 3) opakování transakce - pokud chcete po vyvolání výjimky namísto přerušení transakce tuto transakci zopakovat, je potřeba transakci uzavřít do jednoho vnitřního bloku a poté umístit tento vnitřní blok do cyklu. Před započetím transakce je potřeba označit záchranný bod (savepoint). Pokud je transakce úspěšná, přijmete ji a opustíte cyklus. Pokud však selže, kontrola je předána zachytávači výjimek tohoto vnitřního bloku, kde odrolujete k savepointu a pokusíte se napravit problém. Program poté bude pokračovat dalším cyklem. Je však vhodné, aby cyklus měl jen konečný počet pokusů a bylo možné program ukončit. 8

9 2. Řízení transakcí v PL/SQL Z jedné z předchozích lekcí již znáte, že transakce zajišťují konzistentnost databáze a jejich vlastnosti označované zkratkou ACIT chrání transakční data před narušením. Víme, jak se chovají transakce v jazyce SQL, a zajímá nás, jak to bude v případě, kdy operace DML budou s daty pracovat uprostřed bloků PL/SQL. Pokud váš program selže uprostřed transakce, Oracle detekuje chybu a vrátí transakci - odroluje na začátek. Proto je databáze obnovena do původního stavu automaticky. Řízení transakcí se zajišťuje pomocí příkazů COMMIT, ROLLBACK, SAVEPOINT a SET TRANSACTION. COMMIT je trvalé potvrzení změn databáze provedených během aktuální transakce. ROLLBACK ukončí aktuální transakci a zruší všechny změny provedené od začátku transakce. SAVEPOINT označí aktuální bod zpracování transakce. Používá se pro odrolování transakce k bodu návratu příkazem ROLLBACK TO <bod návratu>. SET TRANSAKCE nastaví transakční vlastnosti - například úroveň izolace. Autonomní transakce Autonomní transakce probíhají samostatně - tj. bez transakčního dohledu z nadřízené transakce. To znamená, že jestliže v rámci autonomní nebo hlavní transakce použijeme potvrzení nebo odrolování, druhou transakci to neovlivní. Autonomní transakce se používají například pro zápis do protokolu událostí, který si sami chceme vytvářet. To nám umožní monitorovat aktivitu bez ohledu na její výsledek (tím mějme na mysli hlavní transakci), a opačně, úspěch či selhání zápisu do protokolu (pracuje v autonomní transakci) nemá vliv na hlavní transakci. Pro vytvoření autonomní transakce se použije direktiva (pragma) AUTONOMOUS_TRANSACTION, která se umístí do deklarační oblasti bloku. Autonomní kód můžeme použít ve funkcích, procedurách, spouštích, balíčcích a objektových typech. Chování si můžeme vysvětlit na následujícím příkladu. CREATE TABLE at_test ( id NUMBER NOT NULL, popis VARCHAR2( (50) NOT NULL ); INSERT INTO at_test (id, INSERT INTO at_test (id, popis) VALUES (1, 'Popis pro 1'); popis) VALUES (2, 'Popis pro 1'); Příkaz SELECT * FROM at_test; vrátí 2 řádky. 9

10 Nyní vložíme 8 řádků s použitím kódu s autonomní transakcí: DECLARE PRAGMA AUTONOMOUS_TRANSACTION; FOR i IN LOOP INSERT INTO at_test (id, popis) VALUES (i, 'Popis pro ' i); END LOOP; COMMIT; Jak vidíme, celá autonomní transakce byla potvrzena příkazem COMMIT. Pokud nyní provedeme příkaz ROLLBACK; Dotaz SELECT * FROM at_test; vrátí 8 řádků. Příkaz ROLLBACK je tedy aplikován pouze na řádky vložené z hlavní transakce, ale na řádky vložené autonomní transakcí nemá vliv. Druhý příklad ukazuje způsob zalogování chyby do tabulky error_logs, která bude použita jako protokol událostí. Nejdříve vytvoříme tuto tabulkuu a sekvenci pro generování m hodnot primárního klíče: CREATE TABLE error_logs ( id NUMBER(10) NOT NULL, log_timestamp TIMESTAMP NOT NULL, error_message VARCHAR2(4000), CONSTRAINT error_logs_pk PRIMARY KEY (id) ); CREATE SEQUENCE error_logs_seq; Dále vytvoříme proceduru pro zalogování chyby jako autonomní transakci: CREATE OR REPLACE PROCEDURE log_errors (p_error_message IN VARCHAR2) AS PRAGMA AUTONOMOUS_TRANSACTION; INSERT INTO error_logs (id, log_timestamp, error_message) VALUES (error_logs_seq.nextval, SYSTIMESTAMP, p_error_message); COMMIT; 10

11 Nyní provedeme kód PL/SQL, který vyvolá chybu, která je zachycena a uložena. -- Platný příkaz INSERT INTO at_test (id, description) VALUES (998, 'Description for 998'); -- Vynutit neplatný INSERT INSERT INTO at_test (id, description) VALUES (999, NULL); EXCEPTION WHEN OTHERS THEN log_errors (p_error_message => SQLERRM); ROLLBACK; Po vykonání kódu dostaneme hlášku: completed. PL/SQL procedure successfully Existenci dat v tabulce at_test zjistíme příkazem: SELECT * FROM at_test WHERE id >= 998; Odpovědí bude: no rows selected Podíváme se na obsah tabulky error_logs příkazem SELECT * FROM error_logs; Získáme výsledek: ID LOG_TIMESTAMP ERROR_MESSAGE FEB :10: : cannot insert NULL into ("SCHEMANAME"."AT_TEST"."DESCRIPTION") Opět vidíme, že ROLLBACK hlavní transakce nezpůsobil změny v potvrzené autonomní transakci. Výjimky a transakce Vyvolání výjimky ani konec bloku neukončují transakci. Jedině v případě, kdy neošetřená výjimka je v bloku nejvyšší úrovně, která se rozšíří do volajícího prostředí, server automaticky transakci odvolá. 11

12 Pojmy k zapamatování Příkazy a funkce: PL/SQL, výjimky, zachytávač, řízení transakcí, EXCEPTION, RAISE, COMMIT, SAVEPOINT, ROLLBACK Problém: řízení toku programu při vyvolání chyby, zachycení výjimky Shrnutí V této lekci jste se seznámili s detekcí a zpracováním chyb v kódu PL/SQL. Velké množství chyb je předdefinováno systémem, ale můžeme vytvářet i uživatelsky definované chyby a tyto programově vyvolat. Důležitou částí je pak pochopení pravidel pro šíření výjimek (není-li výjimka zachycena v lokálním bloku, šíří se do bloku vnějšího, a pokud není zachycena ani v bloku nejvyšší úrovně, je ošetřena ve volajícím prostředí). Další část dokumentu se věnovala transakčnímu zpracování. Z hlediska transakčního zpracování je důležité zejména neopomenout příkazy pro řízení transakcí u těch programových kódů, které budouu realizovat DML příkazy. Otázky na procvičení 1. Jak se pracuje s uživatelsky definovanými výjimkami? 2. Popište zachytávání a šíření chyb mezi bloky PL/SQL. 3. K čemu slouží funkce SQLCODE a SQLERRM? 4. Jakým způsobem zajistit, aby po výskytu chyby zůstal běh programu v daném modulu? 5. Jak probíhá zpracování transakcí v modulech PL/SQL? Odkazy a další studijní prameny (syntaxe příkazů SQL jazyka a funkcí) /technetwork/database/enterpriseedition/documentation (dokumentace k databázové platformě Oracle) /noviny/?id=chip/index (seriál Databáze standardu SQL z časopisu CHIP) Odkazy a další studijní prameny LACKO, L. Oracle, správa, programování a použití databázového systému. Praha: Computer Press, ISBN URMAN, S., HARDMAN, R., MCLAUGHLIN, M. Oracle - programování v PL/SQL. Computer Press, ISBN

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. PL/SQL Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. Rozšířením jazyka SQL o proceduralitu od společnosti ORACLE je jazyk

Více

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

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

Více

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

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

6. blok část C Množinové operátory

6. blok část C Množinové operátory 6. blok část C Množinové operátory Studijní cíl Tento blok je věnován problematice množinových operátorů a práce s množinovými operátory v jazyce SQL. Čtenáři se seznámí s operátory, UNION, a INTERSECT.

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

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

Dotazovací jazyk SQL a PL/SQL. 8. Přednáška

Dotazovací jazyk SQL a PL/SQL. 8. Přednáška Dotazovací jazyk SQL a PL/SQL 8. Přednáška Úvod do PL/SQL Proprietární rozšíření firmy Oracle Usazuje se i v ne-oracle RDBMS Procedurální rozšíření SQL Přidává základní programátorskou logiku a kontrolu

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

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

4. blok část A Logické operátory

4. blok část A Logické operátory 4. blok část A Logické operátory Studijní cíl Tento blok je věnován představení logických operátorů AND, OR, NOT v jazyce SQL a práce s nimi. Doba nutná k nastudování 1-2 hodiny Průvodce studiem Při studiu

Více

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce Databázové systémy 2 Jméno a příjmení: Jan Tichava Osobní číslo: Studijní skupina: čtvrtek, 4 5 Obor: ININ SWIN E-mail: jtichava@students.zcu.cz Databázové systémy II. KIV/DB2 LS 2007/2008 Zadání semestrální

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

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

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

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

Více

8 Třídy, objekty, metody, předávání argumentů metod

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním

Více

DATABÁZOVÉ A INFORMAČNÍ SYSTÉMY

DATABÁZOVÉ A INFORMAČNÍ SYSTÉMY Databázové a informační systémy 1/9 DATABÁZOVÉ A INFORMAČNÍ SYSTÉMY Katedra informatiky FEI VŠB Technická univerzita Ostrava 2012/2013 Databázové a informační systémy 2/9 TABULKA ST U D E N T Pokud nebude

Více

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

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

Více

Embedded SQL v C/C++ úvod. Administrace Oracle Kateřina Opočenská

Embedded SQL v C/C++ úvod. Administrace Oracle Kateřina Opočenská Embedded SQL v C/C++ úvod Administrace Oracle Kateřina Opočenská Motivace potřeba začlenit komunikaci s databází do aplikace v nějakém vyšším programovacím jazyce řešení (na Oracle): a) OCI (Oracle Call

Více

6 Příkazy řízení toku

6 Příkazy řízení toku 6 Příkazy řízení toku Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům pro řízení toku programu. Pro všechny tyto základní

Více

Distanční opora předmětu: Databázové systémy Tématický blok č. 8: Transact SQL Autor: RNDr. Jan Lánský, Ph.D.

Distanční opora předmětu: Databázové systémy Tématický blok č. 8: Transact SQL Autor: RNDr. Jan Lánský, Ph.D. Distanční opora předmětu: Databázové systémy Tématický blok č. 8: Transact SQL Autor: RNDr. Jan Lánský, Ph.D. Obsah kapitoly 1 Motivace 2 Základy syntaxe 3 Procedury a Funkce 4 Kurzory 5 Výjimky Studijní

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

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

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

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

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

Více

DATABÁZOVÉ A INFORMAČNÍ SYSTÉMY

DATABÁZOVÉ A INFORMAČNÍ SYSTÉMY Databázové a informační systémy 1. Úvod, PL/SQL I 1/62 DATABÁZOVÉ A INFORMAČNÍ SYSTÉMY Michal Krátký, Radim Bača Katedra informatiky FEI VŠB Technická univerzita Ostrava 2012/2013 Databázové a informační

Více

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

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

Více

10. Architektura klient/server a třívrstvá architektura

10. Architektura klient/server a třívrstvá architektura 10. Architektura klient/server a třívrstvá architektura 10.1. Varianty architektury... 3 10.2. Přínos architektury klient/server a třívrstvé architektury... 5 10.3. Podpora pro rozdělení zátěže v architektuře

Více

10. Architektura klient/server a třívrstvá architektura

10. Architektura klient/server a třívrstvá architektura 10. Architektura klient/server a třívrstvá architektura 10.1. Varianty architektury... 3 10.2. Přínos architektury klient/server a třívrstvé architektury... 5 10.3. Podpora pro rozdělení zátěže v architektuře

Více

Databázové systémy a SQL

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

Více

Databázové systémy I

Databázové systémy I 2015 Databázové systémy I PROJEKT 2 ČÁST MIROSLAV POKORNÝ Stránka 0 z 21 Zadání Implementujte datový model vytvořený v první části projektu do relační databáze a vytvořte pohledy a uloženou proceduru dle

Více

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

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

Více

Kód v databázi. RNDr. Ondřej Zýka

Kód v databázi. RNDr. Ondřej Zýka Kód v databázi RNDr. Ondřej Zýka 1 Obsah Jazyk Skripty Funkce Procedury Triggery Správa chyb Java, CLR, apod.. Dobré a špatné praktiky 2 PL/SQL Jazyk Oracle Inspirovaný jazykem ADA Objektový Samostatné

Více

Jazyk PL/SQL Úvod, blok

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

Více

5. blok Souhrnné a skupinové dotazy

5. blok Souhrnné a skupinové dotazy 5. blok Souhrnné a skupinové dotazy Studijní cíl Tento blok je věnován základům při vytváření souhrnných a skupinových dotazů s využitím agregačních funkcí SUM(), AVG(), MIN(), MAX() a COUNT() a klauzulí

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

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. 13 Rozhraní, výjimky Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny

Více

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

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

Více

FIREBIRD relační databázový systém. Tomáš Svoboda

FIREBIRD relační databázový systém. Tomáš Svoboda FIREBIRD relační databázový systém Tomáš Svoboda xsvobo13@fi.muni.cz Firebird historie 80. léta - Jim Starkey (DEC) InterBase 1994 - odkoupila firma Borland 2000 - Borland uvolnil zdrojové texty InterBase

Více

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

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

Více

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

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června 2007. krovacek@students.zcu.cz

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června 2007. krovacek@students.zcu.cz Databáze čajových sáčků Martina Málková Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky Databázové systémy 2 9. června 2007 krovacek@students.zcu.cz 1 1 Datová analýza V původním

Více

Administrace Oracle. Práva a role, audit

Administrace Oracle. Práva a role, audit Administrace Oracle Práva a role, audit Filip Řepka 2010 Práva (privileges) Objekty (tabulky, pohledy, procedury,...) jsou v databázi logicky rozděleny do schémat. Každý uživatel má přiděleno svoje schéma

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

KAPITOLA 4. SQL a PL/SQL

KAPITOLA 4. SQL a PL/SQL KAPITOLA 4 SQL a PLSQL PLSQL je procedurální rozšíření jazyka SQL (Structured Query Language) v Oracle. SQL se používá na získávání dat z databáze, na manipulaci s daty, na návrat výsledku uživateli a

Více

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro

Více

Oracle XML DB. Tomáš Nykodým

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

Více

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

PG 9.5 novinky ve vývoji aplikací

PG 9.5 novinky ve vývoji aplikací PG 9.5 novinky ve vývoji aplikací P2D2 2016 Antonín Houska 18. února 2016 Část I GROUPING SETS, ROLLUP, CUBE Agregace Seskupení řádků tabulky (joinu) do podmnožin podle určitého kĺıče. Za každou podmnožinu

Více

12. blok Pokročilé konstrukce SQL dotazů - část II

12. blok Pokročilé konstrukce SQL dotazů - část II 12. blok Pokročilé konstrukce SQL dotazů - část II Studijní cíl Tento blok je věnován pokročilým konstrukcím SQL dotazů, které umožní psát efektivní kód. Pozornost je věnována vytváření pohledů v rámci

Více

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

Uložené procedury Úvod ulehčit správu zabezpečení rychleji Uložené procedury Úvod Uložená procedura (rutina) je sada příkazů SQL, které jsou uložené na databázovém serveru a vykonává se tak, že je zavolána prostřednictvím dotazu názvem, který jim byl přiřazen

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

2-3 hodiny. Při studiu tohoto bloku se předpokládá, že čtenář je obeznámen s jazykem SQL a zná základy jazyka PL/SQL.

2-3 hodiny. Při studiu tohoto bloku se předpokládá, že čtenář je obeznámen s jazykem SQL a zná základy jazyka PL/SQL. 9. blok Databázové spouště pro DML operace Studijní cíl Tento blok je věnován vytváření a využití databázových spouští na DML operacích INSERT, UPDATE a DELETE nad tabulkami či pohledy. Doba nutná k nastudování

Více

Deklarativní IO shrnutí minulé přednášky

Deklarativní IO shrnutí minulé přednášky Deklarativní IO shrnutí minulé přednášky Existují následující typy omezení: NOT NULL UNIQUE Key PRIMARY KEY FOREIGN KEY CHECK Pro zobrazení všech definic a názvů IO se použije dotaz na pohledy data dictionary

Více

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

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

Více

Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná

Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná ZKOUŠKOVÉ TESTY Leden 2010 souhrn Červené dobře (nejspíš), modré možná Pomocí kterého databázového objektu je implementován ATRIBUT z konceptuálního modelu? sloupec referenční omezení index tabulka Omezení

Více

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

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

Více

Verzování a publikace dat na webu za pomoci PostgreSQL

Verzování a publikace dat na webu za pomoci PostgreSQL Prague PostgreSQL Developers' Day 2013 Verzování a publikace dat na webu za pomoci PostgreSQL Jan Pěček Kdo jsem? Jan Pěček Programátor PostgreSQL Jyxo, s.r.o. (Blog.cz) MAFRA, a.s. - Internet Trading

Více

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

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

Více

Virtual private database. Antonín Steinhauser

Virtual private database. Antonín Steinhauser Virtual private database Antonín Steinhauser Základní princip VPD Rozšíření bezpečnostní politiky Oracle o omezení na úrovni jednotlivých řádků a sloupců Pro uživatele, kterého se bezpečnostní politika

Více

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

Jazyk SQL 3 - DML, DDL, TCL, DCL

Jazyk SQL 3 - DML, DDL, TCL, DCL Jazyk SQL 3 - DML, DDL, TCL, DCL 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/

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

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu. Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus

Více

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

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

Více

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

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

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

Více

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

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

Více

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

17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/

17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/ 17. července 2005 15:51 z moravec@yahoo.com http://www.z-moravec.net/ Úvod 1 Úvod Nedávno jsem zveřejnil návod na vytvoření návštěvní knihy bez nutnosti použít databázi. To je výhodné tehdy, kdy na serveru

Více

Sada 1 - PHP. 14. Úvod do jazyka SQL

Sada 1 - PHP. 14. Úvod do jazyka SQL S třední škola stavební Jihlava Sada 1 - PHP 14. Úvod do jazyka SQL Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona: III/2 - inovace a

Více

Embedded SQL v C/C++ III - pole, struktury. Jindřich Vodrážka

Embedded SQL v C/C++ III - pole, struktury. Jindřich Vodrážka Embedded SQL v C/C++ III - pole, struktury Jindřich Vodrážka Obsah referátu Motivace k použití polí v emb. SQL Deklarace Host Arrays Použití polí v jednoduchých dotazech Použití polí ve složitějších dotazech

Více

Univerzita Pardubice. Fakulta elektrotechniky a informatiky SEMESTRÁLNÍ PRÁCE PRO PŘEDMĚT IDAS2

Univerzita Pardubice. Fakulta elektrotechniky a informatiky SEMESTRÁLNÍ PRÁCE PRO PŘEDMĚT IDAS2 Univerzita Pardubice Fakulta elektrotechniky a informatiky SEMESTRÁLNÍ PRÁCE PRO PŘEDMĚT IDAS2 Jan Bartocha 2012 / 2013 IT 1. Základní charakteristika Téma mé semestrální práce se zaměřuje na vypůjčování

Více

Z. Kotala, P. Toman: Java ( Obsah )

Z. Kotala, P. Toman: Java ( Obsah ) Z. Kotala, P. Toman: Java ( Obsah ) 13. Výjimky Výjimka (exception) je definována jako událost, která nastane během provádění programu a která naruší normální běh instrukcí. Výjimka je vyvolána například

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

Vzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id))

Vzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id)) Vzorové příklady SQL Tabulka: Kniha CREATE TABLE kniha název VARCHAR(50, PRIMARY KEY (id Tabulka: Autoři CREATE TABLE autoři jméno VARCHAR(10, příjmení VARCHAR(20, titul VARCHAR(7, prostřední VARCHAR(10,

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Skripty a dávky. Nastavení aktuální databáze. USE DatabaseName

Informační systémy 2008/2009. Radim Farana. Obsah. Skripty a dávky. Nastavení aktuální databáze. USE DatabaseName 8 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah MS SQL Server 2005, Jazyk Transact-SQL, syntaxe, proměnné, struktury,

Více

RNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague

RNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague seminář: Administrace Oracle (NDBI013) LS2017/18 RNDr. Michal Kopecký, Ph.D. Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague Rozšíření bezpečnostní

Více

Kapitola 4: SQL. Základní struktura

Kapitola 4: SQL. Základní struktura - 4.1 - Kapitola 4: SQL Základní struktura Množinové operace Souhrnné funkce Nulové hodnoty Vnořené poddotazy (Nested sub-queries) Odvozené relace Pohledy Modifikace databáze Spojené relace Jazyk definice

Více

Tento blok je věnován vytváření uživatelských balíků funkcí v jazyce PL/SQL a použití systémových balíků. 2-3 hodiny

Tento blok je věnován vytváření uživatelských balíků funkcí v jazyce PL/SQL a použití systémových balíků. 2-3 hodiny 8. blok Balíky. Systémové balíky. Studijní cíl Tento blok je věnován vytváření uživatelských balíků funkcí v jazyce PL/SQL a použití systémových balíků. Doba nutná k nastudování 2-3 hodiny Průvodce studiem

Více

Internetová filmová databáze IFDB

Internetová filmová databáze IFDB VŠB FEI - Technická Univerzita Ostrava DOKUMENTACE Internetová filmová databáze IFDB Semestrální projekt Jméno: Jméno vyučujícího: Dušan Choleva (CHO0130) Ing. Petr Lukáš 1 1. Specifikace zadání 1.1. Proč

Více

Programování v jazyce JavaScript

Programování v jazyce JavaScript Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Operátory a příkazy BI-JSC Evropský sociální fond

Více

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v DSL manuál Ing. Jan Hranáč 27. října 2010 V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v současné době krátký) seznam vestavěných funkcí systému. 1 Vytvoření nového dobrodružství Nejprve

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

6. SQL složitější dotazy, QBE

6. SQL složitější dotazy, QBE 6. SQL složitější dotazy, QBE Příklady : Veškeré příklady budou dotazy nad databází KONTAKTY nebo KNIHOVNA nebo FIRMA Databáze KONTAKTY OSOBA (Id_osoba, Příjmení, Jméno, Narození, Město, Ulice, PSČ) EMAIL

Více

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7 Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí

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

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

Základní přehled SQL příkazů

Základní přehled SQL příkazů Základní přehled SQL příkazů SELECT Základní použití Příkaz SELECT slouží k získání dat z tabulky nebo pohledu v požadované podobě. Získání všech řádků a sloupců z tabulky SELECT * FROM Person.Contact

Více

Zápisování dat do databáze

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

Více

Databázové systémy a SQL

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

Více

Popis souboru pro generování reportů *.report

Popis souboru pro generování reportů *.report Popis souboru pro generování reportů *.report [Main]... 1 Create... 1 Description... 1 Protect... 1 Nazev... 2 PopisX... 2 PopisY... 2 GRAFDATAOD... 2 GRAFDATADo... 2 GRAFOSAX... 2 TYP_GRAFU... 2 GRAF_VEDLEJSI_OSA...

Více

Co se stane po jeho vykonání? Vyberte libovolný počet možných odpovědí. Správná nemusí být žádná, ale také mohou být správné všechny.

Co se stane po jeho vykonání? Vyberte libovolný počet možných odpovědí. Správná nemusí být žádná, ale také mohou být správné všechny. 1. Je spušťen následující anonymní PL/SQL blok: BEGIN INSERT INTO countries (id, name) VALUES ('XA', 'Xanadu'); INSERT INTO countries (id, name) VALUES ('NV','Neverland'); COMMIT; COMMIT; ROLLBACK; END;

Více

2. blok část A Jazyk SQL, datové typy

2. blok část A Jazyk SQL, datové typy 2. blok část A Jazyk SQL, datové typy Studijní cíl Tento blok je věnován jazyku SQL, jeho vývoji, standardizaci a problémy s přenositelností. Dále je zde uveden přehled datových typů dle standardu SQL

Více

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

Databáze II. 2. přednáška. Helena Palovská Databáze II 2. přednáška Helena Palovská palovska@vse.cz SQL a aplikace Program přednášky Řízení transakcí v SQL Integritní omezení v SQL Triggery a uložené procedury Zpracování množin záznamů Řízení

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

Assembler - 5.část. poslední změna této stránky: Zpět

Assembler - 5.část. poslední změna této stránky: Zpět 1 z 5 19.2.2007 7:52 Assembler - 5.část poslední změna této stránky: 9.2.2007 1. Pseudoinstrukce a direktivy Zpět Kromě instrukcí můžete v Assembleru psát také další konstrukce, které se obšem nepřekládají

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

MAXScript výukový kurz

MAXScript výukový kurz MAXScript výukový kurz Díl čtvrtý jazyk MAXScript, část I. Jan Melichar, březen 2008 Jan Melichar (aka JME) strana 1 OBSAH ÚVOD... 4 ZÁKLADNÍ PŘÍKAZY... 5 OPERÁTORY... 6 PROMĚNNÉ... 6 POLE... 7 ZÁVĚREM...

Více