Databázové systémy 2 Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice.

Slides:



Advertisements
Podobné prezentace
Databázové systémy 2 Cvičení č. 8
Advertisements

Základy jazyka SQL Jan Tichava
Ladislav Hofman, Jan Slavík TUL Předmět databázové systémy
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.
 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á.
Informační systémy Realizace uložených procedur a spouští, jejich praktické využití.
Informační systémy Nástroje pro sběr dat, návrh a realizace databáze.
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í č. 6 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
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.
Lubomír Andrle 8. přednáška
Databázové systémy 1 Cvičení č. 3 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Temporální databáze a TSQL
Databázové systémy 2 Přednáška č. 2 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
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áze Úvod.
Databázové systémy II Přednáška č. 8 – Pohledy (Views)
Databázové systémy 2 Cvičení č. 7 Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Databázové systémy I Cvičení č. 9 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Relační databáze.
Vypracoval: Ondřej Dvorský Třída: VIII.A
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 PVA Jan Hora. SQL „graficky“ Grafický vs. pravý SQL SELECT ORDED BY WHERE.
Rauer Luboš Kopic Petr Blažek Tomáš. Structured Query Language - dotazovací jazyk -> pracuje s dotazy - neprocedurální jazyk - mocný, ale přitom jednoduchý.
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
Čí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ý.
Databázové systémy II Přednáška V Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy II Přednáška č. 9. Transakce je logická jednotka práce sestávající z jednoho nebo více SQL příkazů, které jsou atomické z hlediska.
Transakční zpracování v SQL P. Částek. Transakce Transakce = logická jednotka práce Podaří-li se všechny části transakce, potvrdíme je. COMMIT Jestliže.
Aplikační role Vít Ochozka. K čemu nám slouží Omezit přístup k databázi AKORD jen prostřednictvím konkrétní aplikace Jiné aplikace – MS excel, MS access,
Databázové systémy II Cvičení č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy I Cvičení č. 10 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Databázové systémy I Cvičení č. 7 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
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.
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ů.
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.
Architektury a techniky DS Cvičení č. 5 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové Aplikace Slidy ke cvičení DBI026, část 3 KSI MFF UK Verze
Příklady v jazyku C – část 8. Napište program, který inicializuje 2-rozměrné pole uživatele (5 řádků, 2 sloupce) a naplní ho hodnotami (první sloupec.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B15 Autor Ing. Jiří Kalousek Období vytvoření březen.
Databázové systémy 2 Zkouška – 8:00. Příklad I - Funkce Vytvořte funkci ZK_DIFF_MIN_MAX (P_ZAM_ID NUMBER) RETURN VARCHAR2. Funkce může vracet.
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.
Databázové systémy 2 Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Architektury a techniky DS Cvičení č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 1 Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2015.
1 Syntaxe a sémantika aktivních databází Databázové triggery Aktivní pravidla 10. listopadu 2004 Zuzana Reitermanová & Vojtěch Hlaveš.
Databázové systémy I Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Databázové systémy II Přednáška I Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
Databázové systémy a SQL
Databázové systémy přednáška 8 – Transakce
Databázové systémy I Přednáška 11 Databázové systémy 1 – KIT/IDAS1
Právní systém Tomáš Klein Sekce jádra systému Vývojový tým Univerzitního informačního systému Mendelova zemědělská a lesnická univerzita v Brně Výjezdní.
Databázové systémy a SQL
Databázové systémy a SQL
Šablona 32 VY_32_INOVACE_038.ICT.34
Databázové systémy a SQL
Počítačová cvičení z předmětu Datové sklady #1 Relační model dat
Přednáška 9 Triggery.
Databázové systémy a SQL
Databázové systémy a SQL
Transkript prezentace:

Databázové systémy 2 Cvičení č. 5 Fakulta elektrotechniky a informatiky Univerzita Pardubice

Obsah cvičení Zadání požadavků na semestrální práci Kontrola fyzického modelu databáze pro e-shop Stručné opakování cvičení 4 Vytváření rolí Objektová oprávnění Transakce Databázové systémy 2 – cvičení 5 2

Vytvoření a přidělení rolí CREATE ROLE sklad; Příklad vytvoření role. Pro tento příkaz je nutno mít právo CREATE ROLE, které může přidělit správce. GRANT SELECT, INSERT, UPDATE, DELETE ON prijem TO sklad; GRANT SELECT, INSERT, UPDATE, DELETE ON vydej TO sklad; Přidělení přístupových práv na tabulky PRIJEM a VYDEJ roli SKLAD. GRANT sklad TO uživ1, uživ2, uživ3...; Přidělení role SKLAD uživatelům. SET ROLE sklad; Aktivování role SKLAD a zrušení ostatních přístupových práv. Tento příkaz je možno použít např. při spuštění aplikace. Databázové systémy 2 – cvičení 5 3

Přidělení práv všem uživatelům TO PUBLIC.. tj. všem uživatelům GRANT SELECT ON knihy TO PUBLIC; Přidělení přístupových práv na čtení tabulky knihy všem uživatelům. Databázové systémy 2 – cvičení 5 4

Transakce - potvrzení Potvrzení transakce (committing) znamená, že změny provedené transakcí se stávají trvalými. Explicitní potvrzení – příkazem COMMIT Implicitní potvrzení – po normálním ukončení nějaké aplikace nebo provedením DDL operace Jakékoli příkazy DDL (např. create table či alter index) způsobí tedy ukončení aktivní transakce a implicitní vytvoření nové transakce. Změny provedené příkazy obsaženými v transakci jsou viditelné pro ostatní uživatele až od okamžiku potvrzení transakce. Databázové systémy 2 – cvičení 5 5

Příkazy pro řízení transakcí COMMIT – potvrzení transakce, zafixování stavu. ROLLBACK – odvolání celé transakce, návrat do původního/zafixovaného stavu, odvolat transakci je možné pouze uživatelem, který operaci provedl a jen do okamžiku jejich potvrzení příkazem COMMIT (takto můžeme například obnovit záznamy, které jsme omylem vymazali, protože jsme například zapomněli na podmínku v klauzuli WHERE) Databázové systémy 2 – cvičení 5 6

Příkazy pro řízení transakcí Použití návratových bodů: SAVEPOINT - slouží pro označení místa (například po provedení některých operací), kam bychom se v případě potřeby mohli navrátit, slouží pro rozdělení velké transakce na menší části ROLLBACK TO – odvolání transakce, návrat do bodu návratu Příklad: SAVEPOINT plosne_zvyseni_mzdy; UPDATE pracovnici SET mzda=mzda*1.04; SAVEPOINT navyseni_manazeri; UPDATE pracovnici SET mzda=mzda+1000 WHERE pozice LIKE ‘manažer’; ROLLBACK TO navyseni_manazeri; Databázové systémy 2 – cvičení 5 7

Cvičení 5 – zadání 1/5 studenti pracují ve svém schématu s tabulkou vozidla. Tabulka se skládá ze sloupců id typu integer a nazev typu varchar2(10). tabulka bude obsahovat data: kolo, babeta, kolbezka, skutr. Úkoly se plní po dvojicích, např. st12345 a st Pro plnění úloh se ve dvojici dohodněte, kdo bude plnit úkoly pro st54321 a kdo pro st uživatel st54321 vytvoří tabulku vozidla a naplní ji třemi řádky insert into vozidla (id,nazev) values (24, 'kolo'); insert into vozidla (id,nazev) values (25, 'babeta'); insert into vozidla (id,nazev) values (26, 'kolobezka'); uživatel st54321 přidělí uživateli st12345 práva (select,insert,update,delete) nad svojí tabulkou vozidla uživatel st12345 vloží do tabulky st54321.vozidla jeden řádek a nepotvrdí transakci insert into st54321.vozidla (id,nazev) values (27, 'skutr'); uživatel st12345 vypíše obsah tabulky uživatel st54321 vypíše obsah tabulky – oba diskutují vzniklý rozdíl uživatel st12345 provede commit a oba opět zobrazí obsah tabulky – diskuse výsledku Databázové systémy 2 – cvičení 5 8

Cvičení 5 – zadání 2/5 uživatel st54321 přejmenuje skutr na cross a neprovede potvrzení transakce příkazem commit oba uživatelé se podívají, jaké řádky v tabulce vozidla vidí uživatel st54321 vytvoří novou tabulku vozidla2 se shodnými sloupci oba uživatelé se podívají, jaké řádky v tabulce vozidla vidí a zdůvodní, proč je výsledek shodný uživatel st54321 vloží do tabulky vozidla2 2 řádky insert into vozidla2 (id,nazev) values (34, 'vlak'); insert into vozidla2 (id,nazev) values (35, 'autobus'); oba uživatelé se podívají, jaké řádky v tabulce vozidla2 vidí a zdůvodní výsledek uživatel st54321 nastaví savepoint zachrana a provede následující operace select * from vozidla; update vozidla set nazev = 'cross2' where id=27; update vozidla set nazev = 'cross2' where nazev='kolo'; update vozidla set nazev = 'nafta' where id=25; update vozidla set nazev = 'nafta' where nazev='kolobezka'; select * from vozidla; Databázové systémy 2 – cvičení 5 9

Cvičení 5 – zadání 3/5 uživatel st54321 provede odrolování transakce k savepointu zachrana uživatel st54321 zkontroluje obsah tabulky vozidla uživatel st54321 provede dané operace znovu, tentokrát včetně potvrzení transakce savepoint zachrana; select * from vozidla; update vozidla set nazev = 'cross2' where id=27; update vozidla set nazev = 'cross2' where nazev='kolo'; update vozidla set nazev = 'nafta' where id=25; update vozidla set nazev = 'nafta' where nazev='kolobezka'; Commit; Uživatel st54321 zkontroluje obsah tabulky vozidla a provede rollback k savepointu zachrana a znovu zkontroluje obsah tabulky vozidla oba diskutují zjištěný výsledek uživatel st54321 odebere práva nad tabulkou vozidla uživateli st12345 oba uživatelé provedou: update vozidla set nazev = 'olej' where id=27; Databázové systémy 2 – cvičení 5 10

Cvičení 5 – zadání 4/5 oba uživatelé se podívají na obsah tabulky vozidla uživatel st54321 odstraní obě cvičné tabulky uživatel st54321 vytvoří tabulku vozidla a naplní ji třemi řádky insert into vozidla (id,nazev) values (24, 'kolo'); insert into vozidla (id,nazev) values (25, 'babeta'); insert into vozidla (id,nazev) values (26, 'kolobezka'); uživatel st54321 přidělí uživateli st12345 práva select,insert,update,delete nad svojí tabulkou vozidla oba uživatelé si zobrazí obsah tabulky vozidla uživatel st54321 provede následující příkazy a nepotvrdí transakci select id from vozidla where nazev='kolobezka'; update vozidla set id=id+10 where nazev='kolobezka'; select id from vozidla where nazev='kolobezka'; uživatel st12345 provede následující select id from st54321.vozidla where nazev='kolobezka'; update st54321.vozidla set id=id-20 where nazev='kolobezka'; oba uživatelé diskutují výsledek Databázové systémy 2 – cvičení 5 11

Cvičení 5 – zadání 5/5 uživatel st54321 odroluje transakci oba se podívají na obsah tabulky vozidla a diskutují výsledek uživatel st12345 provede následující select id from st54321.vozidla where nazev='kolobezka'; update st54321.vozidla set id=id-20 where nazev='kolobezka'; select id from st54321.vozidla where nazev='kolobezka'; oba shrnou získané poznatky odstranění cvičných tabulek Databázové systémy 2 – cvičení 5 12