Opakování z minula
SQL
Konceptuální modelování
Shrnutí
SQL - trigger, Databázové modelování 6. přednáška z předmětu Datové struktury a databáze (DSD)
Jan Lisal Ústav nových technologií a aplikované informatiky Fakulta mechatroniky, informatiky a mezioborových studií Technická univerzita v Liberci
[email protected]
27. října 2010
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Osnova 1 Opakování z minula 2 SQL
Trigger 3 Konceptuální modelování
Kroky modelování Plánování databáze, Definice systému Sběr a analýza požadavků, Návrh databáze Vytvoření prototypu, Implementace, Konverze a načtení dat Testování, Provozní údržba
Analýza Funkční analýza
4 Shrnutí
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Přehled základních teoretických pojmů literál, SELECT, INSERT, UPDATE, DELETE
Synatxe jednotlivých příkazů s příkaldy INSERT, UPDATE, DELETE
Hlubší pohled na příkaz SELECT sémantika příkazu značení základních typů výběru dat způsoby omezování v konstrukci WHERE dle typů atributů aritmetické a agregační fce
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Trigger
Teorie TRIGGERů Trigger (spoušť) je procedura která je automaticky spuštěna SŘBD jako reakce na specifikovanou akci v databázi Aktivní databáze databáze, která obsahuje definici spouští
Nezáleží na to kdo (který uživatel) provede akci Uživatel si není vědom aktivity spouští v DB
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Trigger
Akce spojená s n-ticí
V případě spuštění triggeru se dostávám i k dotčeným datům (tečková notace) NEW Označuje nově vkládanou/upravovanou n-tici (řádek) do relace
(tabulky) v DB OLD Označuje data před změnou v DB (smazaná data nebo data před změnou)
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Trigger
Syntaxe příkazu TRIGGER
1 2 3
CREATE TRIGGER t r i g g e r N a m e { BEFORE | AFTER } t r i g g e r E v e n t ON tab name FOR EACH ROW t r i g g e r S t m t ; triggerEvent - jedna z možností aktivace INSERT - při jakémkoli vkládání dat do tabulky (INSERT,
LOAD DATA a REPLACE) UPDATE - při změně dat v tabulce DELETE - při mazání dat z tabulky (DELETE a REPLACE,
není aktivován při DROP TABLE a TRUNCATE TABLE)
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Trigger
Syntaxe příkazu TRIGGER - příklad 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
DELIMITER // CREATE TRIGGER e l e m e n t I n s e r t BEFORE INSERT ON e l e m e n t FOR EACH ROW BEGIN DECLARE x INT ; DECLARE y INT ; SELECT u2 . s o u r a d n i c e X − u1 . s o u r a d n i c e X INTO x FROM u z e l AS u1 , u z e l as u2 WHERE u1 . i d = NEW. i d u 1 AND u2 . i d = NEW. i d u 2 ; SELECT u3 . s o u r a d n i c e Y − u1 . s o u r a d n i c e Y INTO y FROM u z e l AS u1 , u z e l as u3 WHERE u1 . i d = NEW. i d u 1 AND u3 . i d = NEW. i d u 3 ; SET NEW. r e f e r e n c n i V e l i k o s t = x * y ; END; // DELIMITER ;
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Trigger
Další příkazy v kontextu práce s TRIGGERy
Zobrazení všech triggerů v databázi 1
SHOW TRIGGERS ;
Smazání triggeru 1
DROP TRIGGER [ I F EXISTS ] t r i g g e r N a m e ;
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Kroky modelování
Životní cyklus vývoje DB systému Plánování databáze
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Kroky modelování
Životní cyklus vývoje DB systému Plánování databáze Definice systému
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Kroky modelování
Životní cyklus vývoje DB systému Plánování databáze Definice systému Sběr a analýza požadavků
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Kroky modelování
Životní cyklus vývoje DB systému Plánování databáze Definice systému Sběr a analýza požadavků Návrh databáze
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Kroky modelování
Životní cyklus vývoje DB systému Plánování databáze Definice systému Sběr a analýza požadavků Návrh databáze Vytvoření prototypu a implementace
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Kroky modelování
Životní cyklus vývoje DB systému Plánování databáze Definice systému Sběr a analýza požadavků Návrh databáze Vytvoření prototypu a implementace Konverze a načtení dat
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Kroky modelování
Životní cyklus vývoje DB systému Plánování databáze Definice systému Sběr a analýza požadavků Návrh databáze Vytvoření prototypu a implementace Konverze a načtení dat Testování
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Kroky modelování
Životní cyklus vývoje DB systému Plánování databáze Definice systému Sběr a analýza požadavků Návrh databáze Vytvoření prototypu a implementace Konverze a načtení dat Testování Provozní údržba
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Kroky modelování
Fáze životního cyklu vývoje DB systémů Plánování databáze
Definice systému Sběr a analýza požadavků Návrh databáze Vytvoření prototypu
Implementace
Konverze a načtení dat
Testování Provozní údržba
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Kroky modelování
Proč modelovat/analyzovat?
Standardizované pracovní postupy Snadnější komunikace v týmu Aktuální a kompletní dokumentace
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Kroky modelování
Plánování databáze Činnost managementu, které umožní v mezích možností hladký a efektivní průběh jednotlivých fází životního cyklu vývoje databázového systému.
Definice systému Definice rozsahu a hranic databázového systému včetně jeho hlavních uživatelských pohledů.
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Kroky modelování
Sběr a analýza požadavků Proces sbírání a analýzy informací o systému či organizaci, který má DB systém popisovat, a použití těchto informací k určení požadavků na nový DB systém.
Návrh databáze Proces vytváření návrhu, který bude podporovat celkové poslání a dílčí cíle pro požadovaný DB systém. Výběr SŘBD
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Kroky modelování
Vytvoření prototypu Vytvoření fungujícího modelu databázového systému.
Implementace Fyzická realizace návrhu databáze a aplikací.
Konverze a načtení dat Příprava všech dat do podoby, kterou bude možno vložit do připravené databáze (v případě nutnosti konverze dat snaha o programové postihnutí).
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Kroky modelování
Testování Proces hledání chyb v průběhu zkušebnho provozu databáze.
Provozní údržba Proces monitorování a údržby DB systému po nasazení.
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Analýza
Funkční analýza DFD – Data Flow Diagram
Datová analýza ER Model – Entity Relationship Model ERD (Entity-Relationship Diagram)
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Analýza
Funkční analýza
Identifikace systémových funkcí Identifikace událostí Definice transakcí Popis transakcí
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Analýza
DFD – Data Flow Diagram Proces
1.1 Název
Název
Datový tok
Název
Název
SQL - trigger, Databázové modelování
Terminátor
Úložiště dat
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Analýza
DFD Top-Down Postup
Úrovně: 1. Kontextový diagram – inf. o tom jak bude IS komunikovat
se zbytkem světa 2.–n-tá další postupné rozklady (max. doporučená hodnota n
je 3, pozn. jedná se o hodnotu doporučenou) Vhodná jmenná konvence
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Analýza
Chyby DFD
datastory, z nichž se jenom čte nebo se do nich jenom zapisuje samogenerující funkce, tj. funkce které mají jenom výstupy černé díry, tj. funkce do nichž data pouze vstupují
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Analýza
Příklad kontextového diagramu
Dílna Dodavatel
Sklad
Management
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Analýza
Seznam událostí p.č. 1. 2. 3. 4.
Název události Dílna žádá materiál Sklad nemá dostatek materiálu Dodavatel dodá materiál Je první den v měsíci
SQL - trigger, Databázové modelování
Typ Data Řídící Data Řídící datum
Reakce systému Vyhledá mat., vystaví výdejku Vystaví objednávku Přijme mat., potvrdí dodací list Vytvoří přehled o spotřebě
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Analýza
Upřesněný kontextový diagram
Objednávka
Žádanka
Dílna
Dodavatel
Dodací list
Sklad
Výdejka
Přehled spotřeby
Management
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Analýza
Další úrovně diagramu - sklad Výdejka
Objednávka
Žádanka Výdej mater. Materiál
Objednávání
Zásoba materiálu Mat. dodavatel Databáze Materiál
Skladové zásoby Tvorba pohledů
Příjem mater. Přehled spotřeby
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Práce s TRIGGERy teorie kol TRIGGERů syntaxe vytvoření, smazání a dotaz na existující triggery
Konceptuální modelování Životní cyklus vývoje DB systému Analýza systému DFD - Data Flow Diagram
SQL - trigger, Databázové modelování
Jan Lisal
Opakování z minula
SQL
Konceptuální modelování
Shrnutí
Děkuji Vám za pozornost.
SQL - trigger, Databázové modelování
Jan Lisal