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

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

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

Transkript

1 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

2 Databázové a informační systémy 1. Úvod, PL/SQL I 2/62 DAIS OBSAH PŘEDNÁŠKY 1. Úvod, struktura předmětů, podmínky zápočtu 2. Architektura SŘBD 3. Úvod, vlastnosti. 4. Blok PL/SQL. 5. Anonymní procedury, pojmenované procedury a funkce. 6. Řídící konstrukce. 7. Statické a dynamické PL/SQL. 8. Výjimky

3 Databázové a informační systémy 1. Úvod, PL/SQL I 3/62 DAIS MICHAL KRÁTKÝ tel.: room: A michal.kratky@vsb.cz web: web databázových předmětů: uživatelské jméno/heslo: student/tuodbedu

4 Databázové a informační systémy 1. Úvod, PL/SQL I 4/62 DAIS STRUKTURA DATABÁZOVÝCH KURZŮ BAKALÁŘSKÉHO STUDIA 1. Úvod do databázových systémů (3s): konceptuální model, relační datový model, SQL, funkční analýza. 2. Databázové a informační systémy (4s): zotavení, transakce; fyzická implementace SŘBD, datová vrstva IS. 3. Databázové systémy (5s): optimalizace a vykonávání dotazů, fyzický návrh databáze; bezpečnost; XML datový model. 4. Administrace databázových systémů (6s): instalace, konfigurace a ladění nejvýznamnějších SŘBD.

5 Databázové a informační systémy 1. Úvod, PL/SQL I 5/62 DAIS SŘBD Důraz bude kladen na standard SQL, nicméně v každém kurzu se budeme zabývat různými databázovými systémy: 1. UDBS: SQL Server, 2. DAIS, DBS: Oracle, SQL Server, 3. ADBS: Oracle, SQL Server, MySQL. Důraz bude kladen na praktickou implementaci.

6 Databázové a informační systémy 1. Úvod, PL/SQL I 6/62 DAIS PŘEDNÁŠEJÍCÍ DATABÁZOVÝCH KURZŮ Radim Bača Radoslav Fasuga Peter Chovanec Michal Krátký, garant databázových předmětů bakalářského studia

7 Databázové a informační systémy 1. Úvod, PL/SQL I 7/62 DAIS PODMÍNKY UDĚLENÍ ZÁPOČTU Předmět je ukončen zkouškou. Minimum 30 z 55b. Maximální počet bodů na zápočet je 45: 1. 2 praktickým test (PL/SQL, T-SQL). Minimum: 6b z Implementace informačního systému nad platformou.net (nebo J2EE). Důraz bude kladen na implementaci datové vrstvy. Minimum 13b z 25.

8 Databázové a informační systémy 1. Úvod, PL/SQL I 8/62 DAIS PROGRAM PŘEDNÁŠEK A CVIČENÍ PL/SQL, T-SQL Zotavení, transakce, ACID Objektově-relační datový model Datová vrstva informačního systému, objektově-relační mapování Webový informační systém: ASP.NET (J2EE) Fyzický model SŘBD, vykonávání dotazů

9 Databázové a informační systémy 1. Úvod, PL/SQL I 9/62 DAIS ZÁPOČET 1/2 První polovina semestru bude ukončena praktickým testem z PL/SQL (4. týden) a T-SQL (7. týden). Je možná pouze jedna oprava. Týden před testem bude zveřejněn logický model, vylosované zadání musí být vypracováno do 1h:15min. Pouze funkční a správné řešení (kód jde přeložit, spustit a dává korektní výsledky) je hodnoceno počtem bodů vyšším než je minimum.

10 Databázové a informační systémy 1. Úvod, PL/SQL I 10/62 DAIS ZÁPOČET 2/2 Druhá polovina semestru bude ukončena odevzdáním semestrálního projektu - webového informačního systému s důrazem na implementaci datové vrstvy: ASP.NET (J2EE). Pro obě platformy jsou k dispozici šablony projektů.

11 Databázové a informační systémy 1. Úvod, PL/SQL I 11/62 DAIS DOSTUPNÝ HARDWARE A SOFTWARE 1. Servery pro výuku databázových předmětů: dbedu.cs.vsb.cz: 2 Intel Xeon X GHz 6C, celkem tedy 12 jader, 64GB paměti dbsys.cs.vsb.cz: 2 Intel Xeon E GHz, 2 12C, 288GB paměti (pro každý SŘBD vyhraženo přibližně 9GB). 2. Oracle 11G R2 x64 Enterprise Edition, SQL Server Oracle SQL Developer 1, Microsoft Management Studio 1 sql-developer/overview/index.html

12 Databázové a informační systémy 1. Úvod, PL/SQL I 12/62 DAIS ORACLE ACADEMY 1. Od srpna 2009 je katedra účastníkem Oracle Academy. 2. Studenti mají přístup k materiálům komerčních kurzů, dostupné na 3. V září budou otevřeny kurzy Database Design a Database Programming. Pokud máte zájem, napište mail Radoslavu Fasugovi (radoslav.fasuga@vsb.cz).

13 Databázové a informační systémy 1. Úvod, PL/SQL I 13/62 DAIS LITERATURA 1. M. Krátký, R. Bača: Databázové systémy, odkaz Literatura/Studijní literatura - momentálně 258 stran pokrývající všechny kurzy, bude se postupně rozšiřovat. 2. C.J. Date: An Introduction to Database Systems. Addison Wesley, H. Garcia-Molina, J.D. Ullman, J. Widom: Database systems: the complete book. Prentice Hall, J. Pokorný: Dotazovací jazyky. Nakladatelství Univerzity Karlovy, Praha, ISBN , Dokumentace k Oracle 11g:

14 Databázové a informační systémy 1. Úvod, PL/SQL I 14/62 DAIS ARCHITEKTURA IS Prezentační vrstva Model aplikace Objektově-relační mapování (ORM) UDB DBMS DAIS DBMS, datová vrstva, model, prezentační vrstva DBS DBMS ADBS DBMS Datová vrstva DBMS

15 Databázové a informační systémy 1. Úvod, PL/SQL I 15/62 DAIS ARCHITEKTURA SŘBD dotazy, modifikace dat (příkazy JMD) Uživatel/aplikace příkazy pro transakce Administrátor databáze příkazy JDD plán vyhodnocení dotazu požadavky na soubory a záznamy Překladač dotazu Vyhodnocování dotazu Manažer indexů, souborů a záznamů požadavky na stránky Manažer vyrovnávacích pamětí čtení/zápis stránky Manažer úložiště dat Metadata statistiky Transakční manažer Manažer log souborů a zotavení Vyrovnávací paměti stránky logovacícho souboru JDD překladač Manažer paralelního přístupu Tabulka zámků Úložiště dat

16 Databázové a informační systémy 1. Úvod, PL/SQL I 16/62 PL/SQL, blok, proměnné PROCEDURÁLNÍ ROZŠÍŘENÍ SQL PL/SQL 1. Jazyk PL/SQL 2 představuje rozšíření jazyka SQL o procedurální rysy. 2. Syntaxe PL/SQL je založena na jazyku ADA. 3. Podobná procedurální rozšíření pak byla vyvinuta i pro další relační databáze: Transact-SQL pro Sybase a Microsoft SQL Server, PL/pgSQL pro PostgreSQL a SQL PL pro IBM DB PL/SQL Language Reference

17 Databázové a informační systémy 1. Úvod, PL/SQL I 17/62 PL/SQL, blok, proměnné VLASTNOSTI PL/SQL Výhody: Snadná a efektivní kombinace procedurální logiky a SQL. Možné nižší množství přenášených dat (přenáší se jen konečné výsledky) PL/SQL kód je uložen v SŘBD. Sdílení kódu mezi aplikacemi. Nezávislost na platformě. Nevýhody: Horší přenositelnost aplikace mezi SŘBD různých výrobců (to je ovšem problém i na úrovni SQL). Potřebujeme přenositelnost mezi SŘBD?

18 Databázové a informační systémy 1. Úvod, PL/SQL I 18/62 PL/SQL, blok, proměnné Blok PL/SQL ZÁKLADNÍ STRUKTURA PL/SQL BLOKU 1. DECLARE nepovinná deklarace lokálních proměnných a kurzorů, 2. BEGIN povinné otevření bloku příkazů uložené procedury, 3. EXCEPTION nepovinné zachytávání výjimek, 4. END povinné ukončení bloku procedury.

19 Databázové a informační systémy 1. Úvod, PL/SQL I 19/62 PL/SQL, blok, proměnné Blok PL/SQL PŘÍKLAD, TRANSAKCE V PL/SQL Při vložení nové osoby chceme zároveň přidat této osobě roli "Autor" (která má id=1). Transakce tedy bude vypadat takto: BEGIN INSERT INTO Person VALUES( sob28, jan. sobota@vsb. cz, heslo, Jan, NULL, Sobota, NULL, NULL ) ; INSERT INTO PersonRole ( son28, 1 ) ; COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK; END; Pokud selže vložení osoby (např. osoba je už v systému evidována), pak vložení role osoby nedává smysl a celá transakce bude zrušena.

20 Databázové a informační systémy 1. Úvod, PL/SQL I 20/62 PL/SQL, blok, proměnné Blok PL/SQL POZNÁMKY BEGIN jednoradkova poznamka INSERT INTO Person VALUES( sob28, jan. sobota@vsb. cz, heslo, Jan, NULL, Sobota, NULL, NULL ) ; / viceradkova poznamka / INSERT INTO PersonRole ( son28, 1 ) ; COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK; END;

21 Databázové a informační systémy 1. Úvod, PL/SQL I 21/62 PL/SQL, blok, proměnné SET AUTOCOMMIT ON SET AUTOCOMMIT ON/OFF Po spuštění SET AUTOCOMMIT ON, bude každý SQL příkaz proveden v jedné transakci. Tzn. operace COMMIT a ROLLBACK pozbývají významu. Po spuštění SET AUTOCOMMIT OFF, začíná transakce po ukončení transakce předchozí a končí operacemi COMMIT nebo ROLLBACK.

22 Databázové a informační systémy 1. Úvod, PL/SQL I 22/62 PL/SQL, blok, proměnné Proměnné v PL/SQL PROMĚNNÉ V sekci DECLARE můžeme definovat proměnné, jenž mohou být použity v proceduře. Definice má následující tvar: jmeno_promenne typ_promenne [NOT NULL : = hodnota ] ; Kde: jmeno_promenne je název proměnné, který má obvykle prefix v_ 3, typ_promenne je platný typ proměnné, hodnota je nepovinná část, která definuje výchozí hodnotu proměnné. 3 Oracle Academy: Oracle Database 10g: Advanced PL/SQL, Student Guide. str. 26.

23 Databázové a informační systémy 1. Úvod, PL/SQL I 23/62 PL/SQL, blok, proměnné Proměnné v PL/SQL PROMĚNNÉ 1/2 Proměnné můžeme využít při běhu PL/SQL kódu pro uložení dočasných hodnot a pro manipulaci s nimi. Hodnota může být do proměnné zapsána několika způsoby: Syntaxe Příklad jmeno_promenne := hodnota v_vek := 20 SELECT sloupec SELECT vek INTO v_vek INTO jmeno_promenne FROM student FROM jmeno_tabulky WHERE login LIKE bon007 SELECT musí vracet právě jeden záznam, jinak je vygenerována výjimka NO_DATA_FOUND resp. TOO_MANY_ROWS.

24 Databázové a informační systémy 1. Úvod, PL/SQL I 24/62 PL/SQL, blok, proměnné Proměnné v PL/SQL PROMĚNNÉ 2/2 Při práci s proměnnou můžeme využít standardní aritmetické operátory v případě čísel. Dále můžeme využít operátor pro konkatenaci řetězců a také standardní SQL funkce (TO_CHAR, TO_DATE, SUBSTR, LENGTH, atd.).

25 Databázové a informační systémy 1. Úvod, PL/SQL I 25/62 PL/SQL, blok, proměnné Proměnné v PL/SQL PROMĚNNÉ, PŘÍKLAD DECLARE v_fname VARCHAR2( 2 0 ) ; v_lname VARCHAR2( 2 0 ) ; v_ VARCHAR2( 6 0 ) ; BEGIN SELECT fname, lname INTO v_fname, v_lname FROM student WHERE l o g i n = bon007 ; v_ = v_fname. cz ; UPDATE student set = v_ WHERE l o g i n = bon007 ; END;

26 Databázové a informační systémy 1. Úvod, PL/SQL I 26/62 PL/SQL, blok, proměnné Proměnné v PL/SQL OPERÁTOR %TYPE Zadávání datových typů proměnných může být problematické: datové typy velmi často kopírují datové typy atributů tabulek. Při změně datového typu atributu v tabulce pak musíme měnit kód. Proto namísto konkrétního datového typu používáme operátor %TYPE. Příklad: v_lg Student.login%TYPE;... Kde proměnná v_lg je stejného typu jako atribut login tabulky Student.

27 Databázové a informační systémy 1. Úvod, PL/SQL I 27/62 PL/SQL, blok, proměnné Proměnné v PL/SQL OPERÁTOR %ROWTYPE V některých případech používáme strukturovaný datový typ, který obsahuje proměnné stejných datových typů jako jsou datové typy atributů tabulek. Instance takového strukturovaného datového typu reprezentuje záznam z tabulky. V tomto případě můžeme použít operátor %ROWTYPE. Výsledkem je typ se stejnými proměnnými a typy jako má tabulka na kterou je operátor aplikován. Příklad: v_st Student%ROWTYPE;... Kde proměnná v_st obsahuje stejné proměnné a datový typy jako tabulka Student.

28 Databázové a informační systémy 1. Úvod, PL/SQL I 28/62 PL/SQL, blok, proměnné Proměnné v PL/SQL PROMĚNNÉ, PŘÍKLAD DECLARE C_VCHAR_MAXLEN CONSTANT NUMBER : = 32767; v_ date DATE : = SYSDATE; v_number NUMBER NOT NULL : = 1; v_student Student%ROWTYPE; v_name Student. name%type; BEGIN... END;

29 Databázové a informační systémy 1. Úvod, PL/SQL I 29/62 Procedury PROCEDURY PL/SQL umožňuje vytvářet několik typů procedur. V zásadě se liší především způsobem jakým jsou spouštěny: Anonymní procedury Pojmenované procedury Pojmenované funkce

30 Databázové a informační systémy 1. Úvod, PL/SQL I 30/62 Procedury Anonymní Procedury ANONYMNÍ PROCEDURY Anonymní procedury jsou nepojmenované procedury, které nemohou být volány z jiné procedury. Tyto procedury mohou být uloženy v souboru, nebo přímo zapsány na příkazový řádek, a spouštěny z klienta (např. Oracle SQL Developer). Anonymní procedury nejsou předkompilovány a mohou být proto pomalejší než pojmenované procedury a funkce.

31 Databázové a informační systémy 1. Úvod, PL/SQL I 31/62 Procedury Anonymní Procedury PŘÍKLAD 1 Mějme anonymní proceduru, která vkládá do tabulky s jedním atributem typu VARCHAR2(30). DECLARE v_name VARCHAR2( 30) := michal. kratky@vsb. cz ; BEGIN INSERT INTO VALUES ( v_name ) ; END;

32 Databázové a informační systémy 1. Úvod, PL/SQL I 32/62 Procedury Anonymní Procedury PŘÍKLAD 2 V druhé proceduře vložíme do tabulky adresu studenta z tabulky Student s em bon007. Tabulka Student má dva atributy: typu VARCHAR2(30) a login typu CHAR(6). DECLARE v _ l o g i n CHAR( 6 ) := bon007 ; BEGIN INSERT INTO y SELECT FROM Student WHERE l o g i n = v _ l o g i n ; END;

33 Databázové a informační systémy 1. Úvod, PL/SQL I 33/62 Procedury Pojmenované procedury POJMENOVANÉ PROCEDURY Pojmenované procedury obsahují hlavičku se jménem a parametry procedury. Takovouto proceduru je možné volat z jiných procedur nebo spouštět příkazem EXECUTE (zkráceně EXEC). Na rozdíl od anonymních procedur jsou pojmenované procedury předkompilovány a uloženy v databázi.

34 Databázové a informační systémy 1. Úvod, PL/SQL I 34/62 Procedury Pojmenované procedury STRUKTURA POJMENOVANÉ PROCEDURY 1/4 CREATE [OR REPLACE] PROCEDURE jmeno_procedury [ ( jmeno_parametru [ mod ] datovy_typ,... ) ] IS AS d e f i n i c e l o k á l n í c h proměnných BEGIN t ě l o procedury END [ jmeno_procedury ] Kde: jmeno_parametru je název parametru, který má obvykle prefix p_ 4. 4 Oracle Academy: Oracle Database 10g: Advanced PL/SQL, Student Guide. str. 26.

35 Databázové a informační systémy 1. Úvod, PL/SQL I 35/62 Procedury Pojmenované procedury STRUKTURA POJMENOVANÉ PROCEDURY 2/4 CREATE [OR REPLACE] PROCEDURE jmeno_procedury [ ( jmeno_parametru [ mod ] datovy_typ,... ) ] IS AS d e f i n i c e l o k á l n í c h proměnných BEGIN t ě l o procedury END [ jmeno_procedury ] Kde: mod je mód parametru, který může mít hodnotu IN (vstupní proměnná), OUT (výstupní proměnná) nebo IN OUT (vstupně výstupní proměnná).

36 Databázové a informační systémy 1. Úvod, PL/SQL I 36/62 Procedury Pojmenované procedury STRUKTURA POJMENOVANÉ PROCEDURY 3/4 CREATE [OR REPLACE] PROCEDURE jmeno_procedury [ ( jmeno_parametru [ mod ] datovy_typ,... ) ] IS AS d e f i n i c e l o k á l n í c h proměnných BEGIN t ě l o procedury END [ jmeno_procedury ] Kde: datovy_typ je platný datový typ proměnné. Proměnné typu VARCHAR2 nebo NUMBER se uvádějí bez závorek, které by specifikovaly jejich velikost.

37 Databázové a informační systémy 1. Úvod, PL/SQL I 37/62 Procedury Pojmenované procedury STRUKTURA POJMENOVANÉ PROCEDURY 4/4 CREATE [OR REPLACE] PROCEDURE jmeno_procedury [ ( jmeno_parametru [ mod ] datovy_typ,... ) ] IS AS d e f i n i c e l o k á l n í c h proměnných BEGIN t ě l o procedury END [ jmeno_procedury ] Vstupní proměnné jsou v PL/SQL implicitně předávány odkazem, za běžných okolností ale není možné měnit hodnoty těchto proměnných. Za klíčovým slovem AS (nebo IS) pak můžeme specifikovat lokální proměnné.

38 Databázové a informační systémy 1. Úvod, PL/SQL I 38/62 Procedury Pojmenované procedury PŘÍKLAD 1/2 Tato pojmenovaná procedura vkládá studenta jehož login předáváme jako parametr. CREATE OR REPLACE PROCEDURE I n s e r t E m a i l ( p_login VARCHAR2) AS v_ VARCHAR2( 6 0 ) ; BEGIN SELECT INTO v_ FROM Student WHERE l o g i n = p_login ; INSERT INTO VALUES( v_ ) ; END;

39 Databázové a informační systémy 1. Úvod, PL/SQL I 39/62 Procedury Pojmenované procedury PŘÍKLAD 2/2 Uloženou proceduru pak můžeme (pokud máme právo přístupu) spustit příkazem EXECUTE (nebo EXEC). EXECUTE I n s e r t E m a i l ( jan440 ) ;

40 Databázové a informační systémy 1. Úvod, PL/SQL I 40/62 Procedury Pojmenované procedury PŘEKLAD PROCEDUR Uloženou proceduru v klientském prostředí (jako je Oracle SQL Developer) vytvoříme spuštěním kódu začínajícím CREATE a končícím END;. Takto spuštěná procedura je přeložena a uložena v databázi. Při překladu se mohou objevit chyby, které zobrazíme v Oracle SQL Developeru v okně log.

41 Databázové a informační systémy 1. Úvod, PL/SQL I 41/62 Procedury Funkce FUNKCE Funkce (přesněji řečeno pojmenované funkce) jsou velmi podobné procedurám. Oproti procedurám specifikují návratový typ a musí vracet hodnotu. Struktura funkce: CREATE [OR REPLACE] FUNCTION jmeno_funkce [ ( jmeno_parametru [ mod ] datovy_typ,... ) ] RETURN navratovy_ datovy_ typ IS AS d e f i n i c e l o k á l n í c h proměnných BEGIN t ě l o procedury END [ jmeno_procedury ]

42 Databázové a informační systémy 1. Úvod, PL/SQL I 42/62 Procedury Funkce PŘÍKLAD 1/2 Tato pojmenovaná funkce vrací studenta jehož login předáváme jako parametr. CREATE OR REPLACE FUNCTION GetStudent ( p_login IN student. l o g i n%type) RETURN student. %type AS v_ student. %type; BEGIN SELECT INTO v_ FROM student WHERE l o g i n = p_login ; RETURN v_ ; END GetStudent ;

43 Databázové a informační systémy 1. Úvod, PL/SQL I 43/62 Procedury Funkce PŘÍKLAD 2/2 Uloženou proceduru pak můžeme (pokud máme právo přístupu) spustit příkazem EXECUTE. SET SERVEROUTPUT ON; EXECUTE DBMS_OUTPUT. PUT_LINE ( GetStudent ( sob28 ) ) ; Prvním příkazem povolujeme standardní výstup serveru a druhým příkazem voláme uloženou funkci a vypisujeme výsledek.

44 Databázové a informační systémy 1. Úvod, PL/SQL I 44/62 Procedury Funkce VOLÁNÍ PL/SQL PROCEDUR A FUNKCÍ Pomocí anonymního bloku: BEGIN Insert ( jan440 ); END; Pomocí SQL: SELECT Insert ( jan440 ) FROM DUAL; V Oracle SQL Developer či SQL*Plus: EXEC Insert ( jan440 );

45 Databázové a informační systémy 1. Úvod, PL/SQL I 45/62 Řídící konstrukce, statické vs dynamické SQL, výjimky Základní řídící konstrukce ZÁKLADNÍ ŘÍDÍCÍ KONSTRUKCE V PL/SQL můžeme použít několik základních řídících konstrukcí jako je podmínka a cyklus. Jejich syntaxe se výrazně neliší od podobných konstrukcí v jiných programovacích jazycích.

46 Databázové a informační systémy 1. Úvod, PL/SQL I 46/62 Řídící konstrukce, statické vs dynamické SQL, výjimky Základní řídící konstrukce PODMÍNKA Podmínka má následující syntaxi: I F podminka1 THEN příkazy [ ELSIF podminka2 THEN příkazy ] [ELSE příkazy ] END IF ;

47 Databázové a informační systémy 1. Úvod, PL/SQL I 47/62 Řídící konstrukce, statické vs dynamické SQL, výjimky Základní řídící konstrukce CYKLY 1/3 V zásadě máme k dispozici tři druhy cyklů. První typ cyklu se ukončuje pomocí klíčového slova EXIT. Podmínka ukončení cyklu může být zapsána pomocí EXIT WHEN podminka. Takto můžeme zapsat cyklus s podmínkou na konci. LOOP příkazy cyklu [ EXIT ; EXIT WHEN podminka ; ] END LOOP;

48 Databázové a informační systémy 1. Úvod, PL/SQL I 48/62 Řídící konstrukce, statické vs dynamické SQL, výjimky Základní řídící konstrukce CYKLY 2/3 Dalším typem je cyklus s podmínkou na začátku. WHILE podminka LOOP příkazy cyklu END LOOP;

49 Databázové a informační systémy 1. Úvod, PL/SQL I 49/62 Řídící konstrukce, statické vs dynamické SQL, výjimky Základní řídící konstrukce CYKLY 3/3 Posledním běžně používaným typem cyklu je cyklus FOR, kde předem známe počet iterací. Proměnná value1 představuje výchozí hodnotu proměnné jmeno_promenne a value2 koncovou hodnotu. FOR jmeno_promenne IN [ REVERSE] value1.. value2 LOOP příkazy cyklu END LOOP;

50 Databázové a informační systémy 1. Úvod, PL/SQL I 50/62 Řídící konstrukce, statické vs dynamické SQL, výjimky Základní řídící konstrukce CYKLY, PŘÍKLAD Průchod řádky výsledku dotazu. BEGIN FOR radek IN ( SELECT a, b from TAB) LOOP IF radek. a =... THEN <command>; END IF ; END LOOP; END;

51 Databázové a informační systémy 1. Úvod, PL/SQL I 51/62 Řídící konstrukce, statické vs dynamické SQL, výjimky Statické a dynamické PL/SQL STATICKÉ PL/SQL V PL/SQL bloku nemůžeme přímo volat všechny dostupné SQL příkazy. Příkazy, které lze volat v PL/SQL přímo nazýváme statické příkazy PL/SQL. Mezi statické příkazy patří: SELECT, INSERT, UPDATE, DELETE, MERGE LOCK TABLE, COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION Je zřejmé, že mezi příkazy které nemůžeme volat přímo jsou všechny příkazy DDL.

52 Databázové a informační systémy 1. Úvod, PL/SQL I 52/62 Řídící konstrukce, statické vs dynamické SQL, výjimky Statické a dynamické PL/SQL DYNAMICKÉ PL/SQL Dynamické PL/SQL umožňuje sestavit a volat jakýkoli SQL příkaz (na který má uživatel právo) za běhu aplikace. Tento způsob může být zejména užitečný pokud předem neznáme přesný tvar SQL příkazu, který má být volán. Nevýhodou je, že nelze jednoduše ověřit syntaktickou správnost a sémantické vazby mezi objekty (správné datové typy, počet parametrů atd.). Navíc se vystavujeme nebezpečí SQL injection! Ve většině případů spouštíme dynamické PL/SQL příkazem EXECUTE IMMEDIATE. Upozornění: Dynamické PL/SQL používáme jen v případě, kdy není možné použít statické PL/SQL!

53 Databázové a informační systémy 1. Úvod, PL/SQL I 53/62 Řídící konstrukce, statické vs dynamické SQL, výjimky Statické a dynamické PL/SQL DYNAMICKÉ PL/SQL, PŘÍKLAD V tomto příkladě vytvoříme a odstraníme tabulky s použitím příkazu EXECUTE IMMEDIATE. DECLARE v_command VARCHAR2( 5 0 ) ; BEGIN EXECUTE IMMEDIATE Create t a b l e book ( i d INT UNIQUE, name VARCHAR2( 5 0 ), author INT REFERENCES author ( author_id ) ) ; v_command : = DROP TABLE book ; EXECUTE IMMEDIATE v_command ; END;

54 Databázové a informační systémy 1. Úvod, PL/SQL I 54/62 Řídící konstrukce, statické vs dynamické SQL, výjimky Výjimky VÝJIMKY Výjimka je chyba, která se vyskytne během provádění PL/SQL kódu. Jazyk PL/SQL nabízí vlastní mechanismus pro zpracování výjimek. Výjimka může vzniknout jak v samotném Oracle serveru (chyba provádění nějakého SQL dotazu), tak může být vytvořena samotným PL/SQL kódem.

55 Databázové a informační systémy 1. Úvod, PL/SQL I 55/62 Řídící konstrukce, statické vs dynamické SQL, výjimky Výjimky ČÁST EXCEPTION Ke zpracování výjimek v PL/SQL bloku slouží část EXCEPTION.... BEGIN... EXCEPTION WHEN jmeno_vyjimky THEN zpracování vyjímky END; V případě chyby program automaticky skočí do této části, konkrétně do části, která zpracovává danou výjimku (pokud taková část existuje).

56 Databázové a informační systémy 1. Úvod, PL/SQL I 56/62 Řídící konstrukce, statické vs dynamické SQL, výjimky Výjimky ČÁST EXCEPTION... BEGIN... EXCEPTION WHEN jmeno_vyjimky THEN zpracování vyjímky END; V případě úspěšného zpracování se výjimka již dále nepropaguje do částí aplikace, které PL/SQL blok volaly. V případě že chceme zpracovat jakoukoli výjimku (kromě těch co již jsou zpracovány jinými WHEN příkazy), pak namísto jmeno_vyjimky dáme klíčové slovo OTHERS.

57 Databázové a informační systémy 1. Úvod, PL/SQL I 57/62 Řídící konstrukce, statické vs dynamické SQL, výjimky Výjimky VÝJIMKY BALÍKU STANDARD V této tabulce vidíme některé výjimky balíku STANDARD. Jméno výjimky Číslo chyby Popis ACCESS_INTO_NULL ORA Pokus o přiřazení hodnoty do neinicializovaného objektu DUP_VAL_ON_INDEX ORA Pokus vložit duplicitní hodnotu INVALID_CURSOR ORA Neplatná operace s kurzorem INVALID_NUMBER ORA Selhala konverze čísla na řetězec NO_DATA_FOUND ORA Příkaz SELECT nevrátil data TOO_MANY_ROWS ORA Příkaz SELECT INTO vrátil více než jeden řádek VALUE_ERROR ORA Chybná manipulace s hodnotou

58 Databázové a informační systémy 1. Úvod, PL/SQL I 58/62 Řídící konstrukce, statické vs dynamické SQL, výjimky Výjimky ZACHYCENÍ VÝJIMKY Následující procedura vypíše zprávu Hodnota atributu login musí být unikátní! v případě výjimky DUP_VAL_ON_INDEX. V případě jiné výjimky vypíše chybovou hlášku dané chyby. BEGIN I n s e r t i n t o student ( l o g i n, fname, lname ) values ( bon007, James, Bond ) ; EXCEPTION WHEN DUP_VAL_ON_INDEX THEN DBMS_OUTPUT. p u t _ l i n e ( Hodnota a t r i b u t u l o g i n musí být u n i k á t n í! ) ; WHEN OTHERS THEN DBMS_OUTPUT. p u t _ l i n e ( DBMS_UTILITY.FORMAT_ERROR_STACK) ; END;

59 Databázové a informační systémy 1. Úvod, PL/SQL I 59/62 Řídící konstrukce, statické vs dynamické SQL, výjimky Výjimky VYVOLÁNÍ VÝJIMKY PL/SQL umožňuje vyvolat výjimku v případě chyby. K tomuto účelu se používá klíčové slovo RAISE. Je možné tak vyvolat standardní nebo uživatelem definovanou výjimku.

60 Databázové a informační systémy 1. Úvod, PL/SQL I 60/62 Řídící konstrukce, statické vs dynamické SQL, výjimky Výjimky VÝJIMKA DEFINOVANÁ UŽIVATELEM Stejně jako proměnné nebo kurzory je možné v PL/SQL bloku definovat také výjimku. Výjimka se tedy deklaruje spolu s ostatními proměnnými. Syntaxe je následují: jmeno_vyjimky EXCEPTION; Rozsah platnosti výjimky je jen pro danou proceduru. Pokud budeme chtít výjimku deklarovanou v proceduře odchytit mimo tuto proceduru, pak je to možné jen s použitím OTHERS.

61 Databázové a informační systémy 1. Úvod, PL/SQL I 61/62 Řídící konstrukce, statické vs dynamické SQL, výjimky Výjimky PŘÍKLAD V následujícím výpise dojde k vyvolání výjimky too_many_records, která není v proceduře ošetřena. Výjimka tedy bude propagována do nadřazeného kódu. DECLARE too_many_records EXCEPTION; v_records INT ; BEGIN Select count ( ) i n t o v_records from student ; IF v_records > 20 THEN r a i s e too_many_records ELSE I n s e r t i n t o student ( l o g i n, fname, lname ) values ( bon007, James, Bond ) ; END IF ; END;

62 Databázové a informační systémy 1. Úvod, PL/SQL I 62/62 REFERENCE Portál materiálů k Oracle: db112/portal.all_books PL/SQL Language Reference PL/SQL Packages and Types Reference

Databázové systémy úvod

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

Více

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

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

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

Databáze II. 1. přednáška. Helena Palovská palovska@vse.cz

Databáze II. 1. přednáška. Helena Palovská palovska@vse.cz Databáze II 1. přednáška Helena Palovská palovska@vse.cz Program přednášky Úvod Třívrstvá architektura a O-R mapování Zabezpečení dat Role a přístupová práva Úvod Co je databáze Mnoho dat Organizovaných

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

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

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

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

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

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

Více

Databázové systémy úvod

Databázové systémy úvod Databázové systémy úvod Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2012/13 https://edux.fit.cvut.cz/courses/bi-dbs/ Michal

Více

Použití databází na Webu

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

Více

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

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

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

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

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

Databázové systémy úvod

Databázové systémy úvod Databázové systémy úvod Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2011 BI-DBS, ZS 2011/12 https://edux.fit.cvut.cz/courses/bi-dbs/ Michal

Více

Databázové systémy BIK-DBS

Databázové systémy BIK-DBS Databázové systémy BIK-DBS Ing. Ivan Halaška katedra softwarového inženýrství ČVUT FIT Thákurova 9, m.č. T9:311 ivan.halaska@fit.cvut.cz Stránka předmětu: https://edux.fit.cvut.cz/courses/bi-dbs/parttime/start

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

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

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

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

Více

Operátory ROLLUP a CUBE

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

Více

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

řízení transakcí 2-3 hodiny

řízení transakcí 2-3 hodiny 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

Více

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

Základy informatiky. 08 Databázové systémy. Daniela Szturcová Základy informatiky 08 Databázové systémy Daniela Szturcová Problém zpracování dat Důvodem je potřeba zpracovat velké množství dat - evidovat údaje o nějaké skutečnosti. o skupině lidí (zaměstnanců, studentů,

Více

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

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

Více

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

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

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

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

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

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

Ú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

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

Michal Krátký, Miroslav Beneš

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

Více

Tvorba informačních systémů

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

Více

RELAČNÍ DATABÁZE. Cíl:

RELAČNÍ DATABÁZE. Cíl: Cíl: Cílem tohoto předmětu je získat praktické znalosti a dovednosti v oblasti relačních databází, jakož i seznámit se s novými trendy v objektově relačních a objektových databázích. Podstatná část je

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

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

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

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký Tvorba informačních systémů 1/35 Konceptuální

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2007/2008 c 2005 2008 Michal Krátký Tvorba informačních systémů 1/39 Konceptuální

Více

Databázové a informační systémy Jana Šarmanová

Databázové a informační systémy Jana Šarmanová Databázové a informační systémy Jana Šarmanová Obsah Úloha evidence údajů, způsoby evidování Databázové technologie datové modely, dotazovací jazyky. Informační systémy Datové sklady Metody analýzy dat

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

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Web Jaroslav Nečas Obsah přednášky Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Co to je web HTTP protokol bezstavový GET POST HEAD Cookies Session HTTPS

Více

Úvod do programovacích jazyků (Java)

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

Více

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1 8. Zpracování dotazu 8.1. Podstata optimalizace zpracování dotazu... 2 8.2. Postup optimalizace zpracování dotazu... 3 8.2.1. Implementace spojení... 5 8.2.2. Využití statistik databáze k odhadu ceny dotazu...11

Více

Databáze 2013/2014. Konceptuální model DB. RNDr. David Hoksza, Ph.D.

Databáze 2013/2014. Konceptuální model DB. RNDr. David Hoksza, Ph.D. Databáze 2013/2014 Konceptuální model DB RNDr. David Hoksza, Ph.D. http://siret.cz/hoksza Osnova Organizace Stručný úvod do DB a DB modelování Konceptuální modelování Cvičení - ER modelování Náplň přednášky

Více

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

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

Více

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

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

Více

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

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

Více

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

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

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

Více

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

Optimalizace dotazů a databázové transakce v Oracle

Optimalizace dotazů a databázové transakce v Oracle Optimalizace dotazů a databázové transakce v Oracle Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů Demo-cvičení pro IDS 22. dubna 2015 Marek Rychlý

Více

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu 8. Zpracování dotazu 8.1. Podstata optimalizace zpracování dotazu... 2 8.2. Postup optimalizace zpracování dotazu... 3 8.2.1. Implementace spojení... 5 8.2.2. Využití statistik databáze k odhadu ceny dotazu...11

Více

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Otázka č. 1 Datový model 1. Správně navržený ERD model dle zadání max. 40 bodů teoretické znalosti konceptuálního modelování správné

Více

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

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů Tvorba informačních systémů 1/40 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/40 Úvod

Více

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

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

Více

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

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

Více

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

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

30. března Je možné dle analýzy implementovat systém tak, aby splňoval požadavky zadavatele?

30. března Je možné dle analýzy implementovat systém tak, aby splňoval požadavky zadavatele? DAIS Semestrální projekt Časté chyby Petr Lukáš 30. března 2017 1 Dotazník 1 Obecné zásady 1.1 Je součástí analýzy hlavička (jméno, příjmení, login, předmět, ročník, cvičící, (2.1) fakulta, katedra)? 1.2

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

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Otázka č. 1 Datový model 1. Správně navržený ERD model dle zadání max. 40 bodů teoretické znalosti konceptuálního modelování správné

Více

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

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Databázové systémy Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Vývoj databázových systémů Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace 60.-70. léta Program Komunikace Výpočty

Více

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

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

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

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant Základy informatiky 06 Databázové systémy Kačmařík/Szturcová/Děrgel/Rapant Problém zpracování dat důvodem je potřeba zpracovat velké množství dat, evidovat údaje o nějaké skutečnosti: o skupině lidí (zaměstnanců,

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

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

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

Více

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

Virtual Private Database (VPD) Jaroslav Kotrč

Virtual Private Database (VPD) Jaroslav Kotrč Virtual Private Database (VPD) Jaroslav Kotrč Co je VPD Bezpečnostní politika pro přístup k databázi na úrovni řádků a sloupců. Bezpečnost přímo nad tabulkami. Není způsob, jak to obejít. SQL dotaz upraven

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

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

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

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

2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např.

2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např. 2 přednáška 2 října 2012 10:32 Souborově orientované uchování dat Slabý HW Není možné uchovávat "velká data" - maximálně řádově jednotky MB Na každou úlohu samostatná aplikace, která má samostatná data

Více

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

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

Více

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

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

Více

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

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

Více

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

1. Webový server, instalace PHP a MySQL 13

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

Více

Struktura pamětí a procesů v DB Oracle. Radek Strnad

Struktura pamětí a procesů v DB Oracle. Radek Strnad Struktura pamětí a procesů v DB Oracle Radek Strnad radek.strnad@gmail.com 1 Základní rozdělení paměti Software codes area Chráněná část spustitelného kódu samotné DB. System global area (SGA) Sdílená

Více

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

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

Více

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

Administrace Oracle - Správa zdrojů

Administrace Oracle - Správa zdrojů Administrace Oracle - Správa zdrojů Jan Smrčina 15. října 2012 Motivace K čemu správa zdrojů? Mějme databázi menz UK a její chtivé uživatele: Student chce dostat jídlo. (Jednoduchá transakce) Manažer chce

Více

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

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

Více

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

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

Semestrální práce z DAS2 a WWW

Semestrální práce z DAS2 a WWW Univerzita Pardubice Fakulta elektrotechniky a informatiky Semestrální práce z DAS2 a WWW Databázová část Matěj Trakal 8.12.2009 Kapitola 1: Obsah KAPITOLA 1: OBSAH 2 KAPITOLA 2: ZÁKLADNÍ CHARAKTERISTIKA

Více

Struktura programu v době běhu

Struktura programu v době běhu Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů

Více

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

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

Více

Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013

Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013 Maturitní témata z předmětu PROGRAMOVÉ VYBAVENÍ pro šk. rok 2012/2013 1. Nástroje programu MS Word a) vysvětlete pojmy šablona, styl (druhy stylů) význam a užití, b) vysvětlete pojem oddíl (druhy oddílů),

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

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

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