Ing. Tomáš Váňa, Ing. Jiří Zechmeister

Slides:



Advertisements
Podobné prezentace
PLAYBOY Kalendar 2007.
Advertisements

CIT Paměti Díl X.
Standardní knihovní funkce pro práci s textovými řetězci
VISUAL BASIC Práce s řetězci Použitá literatura: Kvoch: Visual Basic 4.
TEORIE ROZHODOVÁNÍ A TEORIE HER
Vlastní skript může být umístěn: v hlavičce stránky v těle stránky
Dynamické dokumenty na straně klienta Informatika pro ekonomy II.
*Zdroj: Průzkum spotřebitelů Komise EU, ukazatel GfK. Ekonomická očekávání v Evropě Březen.
SQL: DDL v ORACLE CREATE TABLE jméno_tabulky (atribut datový_typ [DEFAULT][attribut_constraint] [, atribut datový_typ [DEFAULT] [attribut_constraint]],...
Aplikační a programové vybavení
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Fakulta elektrotechniky a informatiky
SQL – tříhodnotová logika
PROGRAM PRO VÝUKU T ČLÁNKU
Informatika pro ekonomy II přednáška 11
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 1 Cvičení č. 4 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy 1 Cvičení č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy II Přednáška č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 2 Cvičení č. 6 Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy 1 Cvičení č. 3 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy II Přednáška č. 5 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Principy překladačů Běhová podpora Jakub Yaghob. Běhová podpora Statická podpora jazyka Překladač Interface na knihovny Hlavičkové soubory Dynamická podpora.
Násobíme . 4 = = . 4 = = . 4 = = . 2 = 9 .
Skip-List je datová struktura, která může být použita jako náhrada za vyvážené stromy. představují pravděpodobnostní alternativu k vyváženým stromům (struktura.
Vizualizace projektu větrného parku Stříbro porovnání variant 13 VTE a menšího parku.
Vzdělávací materiál / DUMVY_32_INOVACE_02B14 Příkazový řádek: obsah souborů PŘÍKLADY AutorIng. Petr Haman Období vytvořeníLeden 2013 Ročník / věková kategorie3.
MODERNÍ A KONKURENCESCHOPNÁ ŠKOLA reg. č.: CZ.1.07/1.4.00/ Základní škola, Šlapanice, okres Brno-venkov, příspěvková organizace Masarykovo nám.
ARITMETICKÁ POSLOUPNOST I
ORGANIZACE DATOVÉ STRUKTURY SOUBOR
MySQL - Vytvoření nové tabulky  create table jméno_tabulky (jméno_položky typ_položky,... ) Přehled nejběžnějších datových typů Přehled nejběžnějších.
Jazyk vývojových diagramů
pit – CAD 2011 Nové funkce a rozšíření Strana: 1www.pitsoftware.cz /

Deklarace Radim Štefan. 2 Použité zkratky BP – Borland Pascal De – Delphi.
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
Cvičná hodnotící prezentace Hodnocení vybraného projektu 1.
Relační databáze.
Téma: ABSOLUTNÍ HODNOTA CELÝCH ČÍSEL 2
Algoritmy vyhledávání a řazení
Vypracoval: Ondřej Dvorský Třída: VIII.A
Jazyk vývojových diagramů
KIV/ZIS cvičení 6 Tomáš Potužák. Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Stáhnout soubor studenti_dotazy_sql.mdb.
Databázové systémy I Cvičení č. 6 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Databázové systémy 2 Cvičení č. 6 Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky Univerzita Pardubice.
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
Databázové systémy II Přednáška č. X Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
Ing. Tomáš Váňa, Ing. Jiří Zechmeister
Fakulta elektrotechniky a informatiky
Číslo šablony: III/2 VY_32_INOVACE_P4_3.8 Tematická oblast: Aplikační software pro práci s informacemi II. Databáze – základy SQL Typ: DUM - kombinovaný.
Datové typy a struktury
Databázové systémy II Přednáška V Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 2 Zkouška – 08:00. Příklad I – Procedura – 5 bodů Vytvořte proceduru P_ZK3(p_oddeleni_id_from NUMBER, p_oddeleni_id_to NUMBER,
Dynamic SQL P. Částek. Dynamic SQL Embedded SQL je překládaný preprocesorem => za běhu nelze nechat uživatele rozhodovat o vzhledu samotných SQL příkazů.
Pole Arrays.
Databázové systémy Informatika pro ekonomy, př. 18.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B13 Autor Ing. Jiří Kalousek Období vytvoření březen.
Databázové systémy 2 Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2015.
Databáze ● úložiště dat s definovaným přístupem ● typy struktury – strom, sekvence, tabulka ● sestává z uspořádaných záznamů ● databáze – struktura – záznam.
Programovací jazyk C# 4. část - cykly.
Databázové systémy a SQL
Oblast platnosti identifikátoru (1)
Přednáška 9 Triggery.
Transkript prezentace:

Ing. Tomáš Váňa, Ing. Jiří Zechmeister Databázové systémy II Přednáška VI Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky tomas.vana@upce.cz, jiri.zechmeister@upce.cz

Obsah přednášky Kolekce Záznamy Hromadné zpracování Asociativní pole Varray (Variable-size arreays) Vnořená tabulka (Nested Table) Záznamy Hromadné zpracování IDAS2 - Přednáška V

Kolekce a záznamy Složené datové typy (composite data types). Kolekce (collection) Interní komponenty mají shodný datový typ a nazývají se elementy. Každý element je přístupný přes unikátní index: nazev_kolekce(index). Záznamy Interní komponenty mohou mít rozdílné datové typy a nazývají se pole (fields). Přístup k jednotlivými polím se ralizuje syntaxí: nazev_promenne.nazev_pole. Lze vytvořit kolekcí záznamů a lze také vytvořit záznam, který bude obsahovat kolekci. IDAS2 - Přednáška V

Kolekce - asociativní pole Množina párů klíč-hodnota (key-value pairs). Každý klíč je unikátní hodnota sloužící pro nalezení přidružené hodnoty. Klič může být následujících datových typů: VARCHAR2 PLS_INTEGER Klíče jsou do pole ukládaný v utříděném pořadí (dle hodnoty klíče) Nikoliv podle pořadí vložení Stejně jako tabulky mohou existovat prázdná asociativní pole a mohou obsahovat předem nespecifikované množství elementů, ke kterým lze přistupovat bez znalosti jejich přesné pozice. Na rozdíl od tabulek s nimi nelze manipulovat pomocí příkazů DML. IDAS2 - Přednáška V

IDAS2 - Přednáška V

Kolekce - asociativní pole Využití: Pro relativně malé vyhledávací tabulky, jež mohou být zkonstruovány v operační paměti pokaždé, když je subprogram zavolán nebo když je balíček inicializován. Předávání kolekcí z/do databázového systému. Asociativní pole není možné definovat na úrovni schématu. Pro využití asociativního pole jako parametru subprogramu je ale možné definovat typ asociativního pole ve specifikaci balíčku. Asociativní pole je primárně zamyšleno pro ukládání temporárních dat. Pro perzistentní uložení asoc. pole je nutné využít balíčku. IDAS2 - Přednáška V

Kolekce - Varray Varray (Variable-Size Array) Počet elementů v poli se může variovat od 0 do deklarovaného maxima. Pro přístup k jednotlivým prvkům pole se využívá číselného klíče (indexu). Spodní hranice indexu je 1. Horní hranice je rovna aktuálnímu počtu prvků v poli. Proměnná typu varray musí být vždy inicializována. Neinicializovaná proměnná typu vnořená tabulka je nedefinovanou kolekcí (null collection) -> před prvním použití musí proběhnout inicializace. IDAS2 - Přednáška V

IDAS2 - Přednáška V

Kolekce - Varray Využití: Počet ukládaných elementů je znám dopředu. K elementům se obvykle přistupuje sekvenčně. Všechny elementy musí být vloženy nebo získány najednou. Nepraktické pro velká pole. Lze deklarovat i na úrovni schématu IDAS2 - Přednáška V

Kolekce - Nested Table Nested table (Vnořená tabulka) V databáze je vnořená tabulka datový typ, který umožňuje uložit nespecifikované množství neutříděných řádků. V PL/SQL je možné k řádkům vnořené tabulky přistupovat přes číselné indexy (PL/SQL automaticky „očísluje“ řádky vnořené tabulky). Indexy a pořadí řádku vnořené tabulky není mezi jednotlivými načteními stabilní. Neinicializovaná proměnná typu vnořená tabulka je nedefinovanou kolekcí (null collection) -> před prvním použití musí proběhnout inicializace. IDAS2 - Přednáška V

IDAS2 - Přednáška V

Kolekce - Nested Table Lze definovat i na úrovni schématu Takto definovaný typ lze již deklarovat v hlavičce PL/SQL subprogramu. IDAS2 - Přednáška V

Varrays vs. Nested Tables Varray má deklarovaný maximální počet elementů, nested table nikoliv. Nested table roste dynamicky. Varray pole je vždy husté (dense). Nested table je inicializováno jako husté pole, ale časem se stává polem řídkým (sparse). Z nested table lze elementy mazat. IDAS2 - Přednáška V

Kolekce - Nested Table Využití nested table: Horní limit počtu elementů není znám. Hodnoty indexu na sebe nenavazují. Aktualizace či mazání se dotýká jen malého počtu elementů -> tzn. nejsou mazány či modifikovány všechny elementy pole. IDAS2 - Přednáška V

Kolekce - metody IDAS2 - Přednáška V

Kolekce - metody DELETE Pokud pracujeme s asociativním polem, které má index typu řetězec, pak přijímá metoda DELETE parametry typu VARCHAR2. IDAS2 - Přednáška V

Kolekce - metody EXISTS Testuje, zdali specifikovaný element v poli existuje. IDAS2 - Přednáška V

Kolekce - metody PRIOR a NEXT PRIOR vrátí index předcházejícího existujícího elementu kolekce, pokud existuje. Jinak vrací NULL. NEXT vrátí index následujícího existujícího elementu kolekce, pokud existuje. Jinak vrací NULL IDAS2 - Přednáška V

Nested table vs. asociativní pole Nested table může být uložena v rámci sloupce databázové tabulky, asociativní pole nikoliv. Asociativní pole se hodí spíše pro malé „lookup tables“, kdy celá kolekce může být konstruována v paměti. Asociativní pole je výhodné ve chvíli, kdy je počet prvků předem neznámý. Indexy asociativního pole jsou více flexibilní - mohou být nesekvenční a jejich indexy mohou být tvořeny řetězci. IDAS2 - Přednáška V

Varray vs. nested table Varray je dobrou volbou ve chvíli, kdy je počet uložených prvků znám dopředu. Při manipulaci s varray musíme pracovat se všemi prvky najednou. Nested table může být řídká. Můžete odebrat libovolný element. IDAS2 - Přednáška V

Record - záznam Záznam (RECORD) je složená proměnná (composite variables), která může obsahovat hodnoty různých datových typů. Jistá podobnost se struct z C/C++ V PL/SQL se využívají pro uchovávání řádků z tabulek. Záznam se umí přispůsobit struktuře tabulky či výstupu dotazu. IDAS2 - Přednáška V

Record - záznam Záznam nelze definovat na úrovni schématu. Standardně jej lze definovat uvnitř PL/SQL bloku. Lze jej též definovat na úrovní balíčku. Proměnou typu záznam není nutné explicitně inicializovat. Výchozí hodnota polí je NULL. IDAS2 - Přednáška V

Record - záznam IDAS2 - Přednáška V

Record - atribut %ROWTYPE %ROWTYPE atribut umožňuje definovat záznam, jehož struktura odpovídá struktuře tabulky či výstupu dotazu. Pole v záznamu pak získá název a datový typ sloupce, od kterého je odvozován. IDAS2 - Přednáška V

Record -atribut %ROWTYPE Typické využití s explicitními kurzory: IDAS2 - Přednáška V

Hromadné zpracování IDAS2 - Přednáška V

Hromadné zpracování PL/SQL umožňuje procedurálně zpracovávat data buď: po jednotlivých řádcích, najednou po skupinách (sadách) řádků. Hromadné zpracování - kompromis mezi jednoduchostí programování a výkonem. Zpracovávání po řádcích je obecně z hlediska programování jednoduší, ale výsledný kód bude pomalejší než kód, který využívá operací hromadného zpracování. Hromadné zpracovávání je vhodné využívat tehdy, když má dramatické účinky. IDAS2 - Přednáška V

Hromadné zpracování Doba běhu PL/SQL bloku: 18.646 s IDAS2 - Přednáška V

Hromadné zpracování Doba běhu PL/SQL bloku: 1.749 s Předefinované typy vnořených tabulek pro čísla, řetězce a data. Naplnění všech vnořených tabulek v rámci jednoho volání dotazu. Doba běhu PL/SQL bloku: 1.749 s IDAS2 - Přednáška V

BULK COLLECT INTO BULK COLLECT minimalizuje režii spojenou s komunikací mezi PL/SQL a SQL. Klauzule BULK COLLECT se může objevit v: SELECT INTO FECTH RETURNING INTO klauzuli příkazů: DELETE INSERT UPDATE EXECUTE IMMEDIATE IDAS2 - Přednáška V

Vnořená tabulka definovaná dle kurzoru. BULK COLLECT - FETCH Vnořená tabulka definovaná dle kurzoru. Načtení všech řádků dotazu do vnořené tabulky v rámci jediného FETCH příkazu IDAS2 - Přednáška V

BULK COLLCET - FETCH,LIMIT Najednou se bude vždy zpracovávat max. 10 záznamů. IDAS2 - Přednáška V

FORALL Operátor FORALL spouští sérii statických nebo dynamických DML příkazů. Nahrazuje FOR cykly. Operátor FORALL využívá bulk binding (hromadné svazování) -> databázi je možné předat celou kolekci dat prostřednictvím jediného příkazu. IDAS2 - Přednáška V

FORALL - příklady Načtení velkého množství řádků (cca. 60000) pomocí implicitního kurzoru. Následně jsou ve smyčce po jednom jednotlivé řádky vkládány do nové tabulky. Doba průběhu PL/SQL bloku: 20.973 s IDAS2 - Přednáška V

Nutné definovat vnořenou tabulku (včetně typu) FORALL - příklady Nutné definovat vnořenou tabulku (včetně typu) Stejné vstupní podmínky a stejný cíl jako předcházející příklad. Tentokrát je místo implicitního kurzoru využito příkazu BULK COLLECT INTO. Vkládání je realizováno pomocí operátoru FORALL. Doba průběhu PL/SQL bloku: 10.972 s IDAS2 - Přednáška V