Informační systémy Realizace uložených procedur a spouští, jejich praktické využití.

Slides:



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

KIV/ZIS Cvičení 6 SQL - SELECT.
Základy jazyka SQL Jan Tichava
Ladislav Hofman, Jan Slavík TUL Předmět databázové systémy
Programovací jazyk C++
SQL: DDL v ORACLE CREATE TABLE jméno_tabulky (atribut datový_typ [DEFAULT][attribut_constraint] [, atribut datový_typ [DEFAULT] [attribut_constraint]],...
Program pro evidenci nákladů a výnosů Jan Lisal. Požadavky Požadavky zadání: Možnost evidence nákladů a výnosů v rámci firmy Možnost evidence práv a uživatelů.
Aplikační a programové vybavení
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
LOV, Listbox, Poplist a Combobox v Oracle Forms LOV – seznam hodnot, které se zobrazí po stisku klávesy Enter v textovém poli. LOV – seznam hodnot, které.
YDASYS1 Ing. Monika Šimková.
Fakulta elektrotechniky a informatiky
Cvičení 03 SQL Select Ing. Pavel Bednář
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.
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.
Informatika pro ekonomy II přednáška 11
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.
Fakulta elektrotechniky a informatiky
Databázové systémy II Přednáška č. 5 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
1 BUMI Úvod do medicínské informatiky Počítačové cvičení č. 3 Ing. Vratislav Čmiel.
Temporální databáze a TSQL
Programování v Pascalu Přednáška 7
Temporální Databáze Jaroslav Dražan. Čím se budeme zabývat Proč je čas v DB důležitý Práce s časem pomocí klasického SQL Reprezentace časové domény Spojování.
Relační databáze Jakub Lokoč.
Radek Špinka Přepínače MSSQL výběr.
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.
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.
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Procedurální rozšíření Transact SQL Michal Kopecký Výběr ze slajdů k 3. přednášce předmětu Databázové Aplikace (DBI026) na MFF UK.
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.
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.
Čí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 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ů.
Aplikační a programové vybavení
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.
Základní obeznámení s jazykem SQL Databázové systémy.
Databázové systémy SQL Výběr dat.
TEMPORÁLNÍ DATABÁZE A TSQL2
Databázové Aplikace Slidy ke cvičení DBI026, část 3 KSI MFF UK Verze
Databázové systémy Zabezpečení DBS. Cíle, které je třeba vzít v úvahu při návrhu databázové aplikace z pohledu bezpečnosti: Důvěrnost - informace by neměly.
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.
Informační systémy Tvorba databáze, nástroje pro tvorbu tabulek, relací, vazeb.
Příkazy jazyka SQL ve VFP a na SQL Serveru
Dynamická webová aplikace Autor:Ondřej Soukup Třída:I3.
Autor, Název akce Databázové systémy a SQL Lekce 7 Daniel Klimeš.
Roman Danel Institut ekonomiky a systémů řízení 2016
Programovací jazyk C++
Dotazovací jazyk SQL - III
Databázové systémy a SQL
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
Přednáška 9 Triggery.
Přednáška 10 Uložené procedury.
Databázové systémy a SQL
Databázové systémy a SQL
Transkript prezentace:

Informační systémy Realizace uložených procedur a spouští, jejich praktické využití.

Obsah cvičení Tvorby uložené procedury. Aplikace uložené procedury. Tvorba spouště. Aplikace spouště.

Uložená procedura (1)  Vytvořit uloženou proceduru ProcVlozSpoulures pro vkládání záznamů do tabulky TSpolures. Vstupními parametry procedury jsou (název projektu, příjmení spoluřešitele, jméno spoluřešitele, datum začátku spolupráce a datum konce spolupráce). USE EvidProjektu; GO -- Definice pro vytvoření procedury CREATE PROCEDURE ProcVlozSpolures smalldatetime) AS -- Deklarace proměnných pro zjištění IC projektu a IC zaměstnance. char(5) … pokračování na dalším snímku

Uložená procedura (2) -- Kontrola existence názvu projektu IF NOT EXISTS (SELECT p_ICislo FROM TProjekt WHERE BEGIN PRINT('Projekt s tímto názvem není v databázi!!') RETURN END ELSE -- Uložit číslo projektu pro jeho další využití pro funkci INSERT p_ICislo FROM TProjekt WHERE … pokračování na dalším snímku

Uložená procedura (3) -- Kontrola existence spoluřešitele -- (pokud je zadáno příjmení a jméno, zda existuje, pak zjistit jeho ID) IF IS NOT NULL IS NOT NULL) AND EXISTS (SELECT z_Prijmeni,z_Jmeno FROM TZamestnanec WHERE AND BEGIN -- Kontrola, zda neexistuje více zaměstnanců se stejným jménem a příjmením IF (SELECT Count(z_IC) FROM TZamestnanec GROUP BY z_Jmeno, z_Prijmeni HAVING AND BEGIN PRINT('Zaměstnanců s tímto jménem a příjmením je více. Záznam nebude vložen.') RETURN END ELSE -- Zjistit ID zaměstance a uložit jej pro jeho další využití pro funkcí INSERT z_IC FROM TZamestnanec WHERE AND END … pokračování na dalším snímku

Uložená procedura (4) ELSE -- Zjištění ID čísla zaměstnance, pokud bylo zadáno pouze jméno nebo pouze příjmení BEGIN IF IS NOT NULL IS NULL) AND EXISTS (SELECT z_Prijmeni FROM TZamestnanec WHERE BEGIN -- Kontrola, zda existuje pouze a právě jedno příjmení pro zjištění jeho ID IF (SELECT Count(z_Prijmeni) FROM TZamestnanec WHERE z_IC FROM TZamestnanec WHERE ELSE BEGIN PRINT('Zaměstnanců s tímto příjmením existuje více, je nutné doplnit ještě jméno.') RETURN END … pokračování na dalším snímku

Uložená procedura (5) …. Další pokračování kódu na dalším snímku IF IS NOT NULL IS NULL) AND EXISTS (SELECT z_Jmeno FROM TZamestnanec WHERE BEGIN -- Kontrola, zda existuje pouze jedno křestní jméno spoluřešitele, pak zjistíme jeho ID IF (SELECT Count(z_Prijmeni) FROM TZamestnanec WHERE z_IC FROM TZamestnanec WHERE ELSE BEGIN PRINT('Zaměstnanců s tímto křestním jménem existuje více, je nutné doplnit ještě příjmení.') RETURN END -- Kontrola, zda nebyl vložen parametr s křestním jménem ani příjmením IF IS NULL IS NULL) BEGIN PRINT('Nebylo vloženo jméno ani příjmení spoluřešitele!'); RETURN END … pokračování na dalším snímku

Uložená procedura (6) -- Pokud jsme již zde, tak máme číslo projektu i číslo spoluřešitele, pak lze vložit záznam do databáze INSERT TSpolures (s_ICislo,s_ICZamest,s_OdDatum,s_DoDatum) VALUES GO … konec tvorby uložené procedury -- Volání uložené procedury USE [EvidProjektu] GO int = = 'SW signal analyzér a komunikační software s měřicí = = = = '30-NOV-2008' SELECT'Return Value' GO

Spouště (1)  Vytvořit spoušť, která při vložení spoluřešitele kontroluje datum spolupráce. Datum, které je mimo rozsah doby řešení projektu, nastaví dle této doby řešení projektu.

Spouště (2) USE EvidProjektu; GO CREATE TRIGGER TRTSpoluresKontrDatum /* Vložit spoušť pro tabulku TSpolures*/ /*... probíhá kontrola u posledně vloženého záznamu na datum Od, Do*/ ON TSpolures AFTER INSERT AS BEGIN smallint (SELECT s_OdDatum FROM TSpolures WHERE s_IC= (SELECT max(s_IC) FROM TSpolures) ) ; (SELECT s_DoDatum FROM TSpolures WHERE s_IC= (SELECT max(s_IC) FROM TSpolures) ) ; (SELECT s_ICislo FROM TSpolures WHERE s_IC= (SELECT max(s_IC) FROM TSpolures) ) ; (SELECT p_ZahajRes FROM TProjekt WHERE ; (SELECT p_KonecRes FROM TProjekt WHERE ;

Spouště (3) -- Za předpokladu, bude vždy menší BEGIN SET PRINT('Změna datumu počátku spolupráce.') BEGIN SET PRINT('Změna datumu počátku spolupráce.') END UPDATE TSpolures SET WHERE s_IC=(SELECT max(s_IC) FROM TSpolures) END; GO

Shrnutí Uložená procedura – určena pro úpravy databází v T-SQL. Uložené procedury je vhodné vytvářet přímo v databázovém serveru, aby nebylo nutné přecházet mezi aplikací a serverem a zajišťovat připojení k serveru. Spouště – speciální uložené procedury, které se volají při změně obsahu databáze. Na rozdíl od uložených procedur se spouště aktivují změnou databáze (INSERT, UPDATE, DELETE), nikoliv pomocí EXEC jako uložené procedury.