Architektury a techniky DS Cvičení č. 10 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky

Slides:



Advertisements
Podobné prezentace
Aplikační a programové vybavení
Advertisements

KIV/ZIS Cvičení 6 SQL - SELECT.
SQL Další dotazy a pohledy
Základy jazyka SQL Jan Tichava
SQL: DDL v ORACLE CREATE TABLE jméno_tabulky (atribut datový_typ [DEFAULT][attribut_constraint] [, atribut datový_typ [DEFAULT] [attribut_constraint]],...
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
DB1 – 9. cvičení Optimalizace dotazu Konkurenční přístup a deadlock Indexace Transakce.
Databázové systémy SQL Výběr dat.
Fakulta elektrotechniky a informatiky
Informační systémy Realizace sběru dat v rámci realizovaných úloh.
Informační systémy Nástroje pro sběr dat, návrh a realizace databáze.
AGREGACE Distinct, Group By, Having, SUM, …. DISTINCT  Slučování stejných řádků ve výsledku dotazu. AGREGACE 2 JménoPříjmeníID FrantišekVomáčka1 JosefPokorný2.
Další dotazy SQL Structured Query Language. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
SQL Structured Query Language
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
Architektury a techniky DS Cvičení č. 4 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 1 Cvičení č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy I Přednáška č. 5 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
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.
Fakulta elektrotechniky a informatiky
Temporální databáze a TSQL
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.
Databázové systémy 2 Cvičení č. 7 Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Execution plans Lubomír Andrle 6. přednáška
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
TEORIE HER III. Hry a jejich bohové CO BYLO MINULE.
Databázové systémy II Přednáška č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Fakulta elektrotechniky a informatiky
Databázové systémy I Cvičení č. 9 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
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.
SQL – základní pojmy Ing. Roman Danel, Ph.D.
SQL PVA Jan Hora. SQL „graficky“ Grafický vs. pravý SQL SELECT ORDED BY WHERE.
Databázové systémy 2 Cvičení č. 6 Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy II Přednáška č. X Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
Fakulta elektrotechniky a informatiky
Fakulta elektrotechniky a informatiky
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 2 Cvičení č. 10 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy II Cvičení č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Grafické zobrazení příkladu RETURN MANAGEMENT J.Skorkovský KPH.
1 / 2X36DSA 2005The complexity of different algorithms varies: O(n), Ω(n 2 ), Θ(n·log 2 (n)), … Různé algoritmy mají různou složitost: O(n), Ω(n 2 ), Θ(n·log.
Databázové systémy 2 Zkouška – 8:00. Příklad I – Procedura – 5 bodů Vytvořte proceduru P_ZK2(p_table_name VARCHAR2, p_min_nuls NUMBER, p_drop.
Architektury a techniky DS Cvičení č. 5 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 2 Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy SQL Výběr dat.
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
SQL Další dotazy a pohledy Databázové systémy. Některé SQL příkazy mohou mít v sobě obsaženy další kompletní příkazy SELECT. Využijeme je tam, kde potřebujeme.
Architektury a techniky DS Cvičení č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
Databázové systémy 1 Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Tutorial: Obchodní akademie Topic: Logical Functions Prepared by: Mgr. Zdeněk Hrdina Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/ je.
Název a adresa školy: Střední odborné učiliště stavební, Opava, příspěvková organizace, Boženy Němcové 22/2309, Opava Název operačního programu:OP.
David Gešvindr MCT | MSP | MCITP | MCPD. Jak se zpracovává dotaz? Když norma nestačila Práce s XML Geografická data CTE Zpracování hierarchií a grafů.
SQL – příkaz SELECT Ing. Roman Danel, Ph.D.
Ing. Tomáš Váňa, Ing. Jiří Zechmeister
DIGITÁLNÍ UČEBNÍ MATERIÁL
Databázové systémy a SQL
Databázové systémy a SQL
A5M33IZS – Informační a znalostní systémy
Optimalizace SQL dotazů
Mainframe History Marek Ďuriš Mainframe History 12/28/2018
Dotazovací jazyk SQL - II
Přednáška 7 SQL – JOIN.
Účetní schémata MS Dynamics NAV RTC-základy
Datum:   Projekt: Kvalitní výuka Registrační číslo: CZ.1.07/1.5.00/
Databázové systémy a SQL
Transkript prezentace:

Architektury a techniky DS Cvičení č. 10 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky

Cvičení č. 10 – úvod Schéma A_ZELEZNICE simuluje problematiku sestavování nákladních vlaků na železnici v ČR v dubnu roku Datumová část čísla vlaku zachycená atributem ID_VLAK_D je celé číslo v počtu dní od , atribut ID_VLAK_P udává pořadí vytvoření vlaku v daném kalendářním dni, atribut VUZ_DOPL_UD_LIST tabulky VOZY_VLAKY představuje zřetězené kódy doplňkových událostí na vozech vždy po 2B. Ve schématu je více než 3,5 milionu záznamů a je určeno pro výuku optimalizace příkazů SELECT.

Cvičení č. 10 – popis VLAKY vyjadřuje sestavené vlaky, tak jak byly sepsány VLAKY_UDALOSTIvystihuje události týkající se vlaku, například: 881 (kod)Předání vlaku v kontrolním bodě (vym. stanici) (počet událostí) 861Příjezd vlaku do stanice Odjezd vlaku ze stanice Odjezd výchozího vlaku Ukončení jízdy vlaku Soupis vozů výchozího vlaku Odvěšení vozu z vlaku Přivěšení vozu na vlak9738

Cvičení č. 10 – popis VOZY eviduje železniční vozy, jejich zavedení a zrušení VOZY_PRECISLOVANI eviduje přečíslování vozů a jejich důvody VOZY_UDALOSTI vystihuje události týkající se jednotlivých vozu, například: 1212 (kod)Soupis vozů výchozího vlaku502635(počet) 851Ukončení jízdy vlaku Kontrola vozů po příjezdu vlaku Výstup vozu na vlečku - odevzdávkový list Vstup vozu z vlečky - návratový list Vyložení vozu Vstup vozu na ČD Výstup vozu z ČD Podej zásilky vnitrostátní přepravy Dodej zásilky vnitrostátní přepravy Výstup zásilky mezinárodní přepravy CIM Vstup zásilky mezinárodní přepravy CIM Odvěšení vozu z vlaku Přivěšení vozu na vlak57916

Cvičení č. 10 – popis VOZY_VLAKY vystihuje přivěšování a odvěšení vozu na vlak / z vlaku Významy ostatních (číselníkových) tabulek jsou zřejmé z jejich názvu, jejich atributů a ER diagramu, který je uložen v atributu ERD tabulky A_POPIS ve schématu A_ZELEZNICE. Orientační počty řádků v tabulkách: VOZY_UDALOSTI VOZY_VLAKY VLAKY_UDALOSTI VOZY VLAKY37770 ZELEZNICNI_STANICE3686 VOZY_PRECISLOVANI464 TYPY_UDALOSTI173 VLAKOTVORNE_STANICE154 ZELEZNICE99 VUZ_DOPLN_UDALOSTI68 PROVOZNI_STAVY19 DRUH_VOZU5 LOZENI_VOZU3

Cvičení č. 10 – úkoly 1) 1.a) Zjistěte seznam všech vlaků, které přijely do žst. Břeclav hl.n. dne mezi 14 a 18 h. pohled cv10_1a (id_vlak_d, id_vlak_p, vlak_cislo, datum_prijezd) 1.b) Zjistěte prázdné vysokostěnné vozy v těchto vlacích. pohled cv10_1b(vuz_uic) 1.c) Odkud a kdy tyto vlaky vyjely pohled cv10_1c(id_vlak_d, id_vlak_p, vlak_cislo, ze_zst_nazev, do_zst_nazev) 2) Zjistěte průměrnou dobu (ve dnech do současnosti) od zavedení vozů, které v dubnu 2007 přepravovaly mrtvolu – tedy měly v kódech doplňujících událostí „Přeprava mrtvoly“ pohled cv10_2 (doba)

Cvičení č. 10 – úkoly Zjistěte největší počet vlaků, které vyjely pod stejným číslem vlaku a o jaké číslo vlaku šlo. 3) Zjistěte největší počet vlaků, které vyjely pod stejným číslem vlaku a o jaké číslo vlaku šlo. pohled cv10_3 (vlak_cislo, pocet) pohled cv10_4 (id_vlak_d, id_vlak_p, vlak_cislo, pocet_vozu, ze_zst_nazev, do_zst_nazev ) 4) Zjistěte, který vlak měl nejvíce vozů dne a odkud a kam jel. pohled cv10_4 (id_vlak_d, id_vlak_p, vlak_cislo, pocet_vozu, ze_zst_nazev, do_zst_nazev ) 5) Příklady 3) a 4) upravte pro použití příkazu SELECT s klauzulí WITH a porovnejte jejich exekuční plány. pohled cv10_3w (vlak_cislo, pocet) pohled cv10_4w (id_vlak_d, id_vlak_p, vlak_cislo, pocet_vozu, ze_zst_nazev, do_zst_nazev)

Cvičení č. 10 – příkazy s klauzulí WITH The WITH query_name clause lets you assign a name to a subquery block. You can then reference the subquery block multiple places in the query by specifying the query name. Oracle optimizes the query by treating the query name as either an inline view or as a temporary table. You can specify this clause in any top- level SELECT statement and in most types of subqueries. The query name is visible to the main query and to all subsequent subqueries except the subquery that defines the query name itself. A WITH clause is really best used when the result of the WITH query is required more than one time in the body of the query such as where one averaged value needs to be compared against two or three times.

Cvičení č. 10 – příkazy s klauzulí WITH WITH AS (subquery_sql_statement) SELECT FROM ; Příklad: select store_name, sum(quantity) store_sales, (select sum(quantity) from sales)/(select count(*) from store) avg_sales from store s, sales sl where s.store_key = sl.store_key having sum(quantity) > (select sum(quantity) from sales)/(select count(*) from store) group by store_name

Cvičení č. 10 – příkazy s klauzulí WITH WITH sum_sales AS select /*+ materialize */ sum(quantity) all_sales from stores, number_stores AS select /*+ materialize */ count(*) nbr_stores from stores, sales_by_store AS select /*+ materialize */ store_name, sum(quantity) store_sales from store natural join sales SELECT store_name FROM store, sum_sales, number_stores, sales_by_store WHERE store_sales > (all_sales / nbr_stores);