Invia.cz
Eurovíkendy
Kanárské ostrovy
Dominikánská republika
Madeira
Last minute
Vydělávejte peníze s INVIA.CZ
Uložená procedura (anglicky stored procedure) je databázový objekt, který neobsahuje data, ale část programu, který se nad daty v databázi má vykonávat.
Obsah |
Uložená procedura je především procedura. Jedná se o část programu, který je (nebo by aspoň měl být) jasně funkčně oddělený od svého okolí, má interface (seznam parametrů) pro komunikaci s jinými moduly programu. Může mít vlastní lokální proměnné neviditelné pro ostatní části programu.
Uložená procedura je uložená (rozuměj: uložená v databázi). To znamená, že se k ní lze chovat stejně jako ke každému jinému objektu databáze (indexu, pohledu, triggeru apod.). Lze jí založit, upravovat a smazat pomocí příkazů dotazovacího jazyka databáze (v případě relační databáze obvykle pomocí příkazů DDL SQL).
Pro psaní uložených procedur je obvykle používán specifický jazyk konkrétní databáze, který je rozšířením jejího dotazovacího jazyka (hezkým příkladem je pro databázi Oracle procedurální jazyk PL/SQL, který je rozšířením klasického dotazovacího jazyka SQL).
Tento článek potřebuje úpravy. Můžete Wikipedii pomoci tím, že ho vylepšíte. Jak by měly články vypadat, popisuje stránka Vzhled a styl, konkrétní problémy tohoto článku mohou být specifikovány na diskusní stránce.
Použití uložených procedur vychází z faktu, že většina operací nad daty v databázi probíhá stejně bez ohledu na to, kdo operaci provádí.
Příklad: Pokud je třeba uložit do tabulky zákazníků nového zákazníka, tak se to z pohledu databáze děje stejně pro zákazníka internetového obchodu, pro zákazníka, kterého zadává pracovnice telefonického centra přes formulář programu napsaného například v C++ , nebo pro zákazníky, kteří jsou vkládáni automaticky na základě textového reportu, který přijde každý den z „kamenných“ prodejních míst a je zpracováván pomocí programu napsaného v PowerBuilderu. Je tedy celkem dobrý důvod, aby existovala uložená procedura „Zapiš nového zákazníka“, kterou by mohly volat všechny tři výše uvedené aplikace - alternativou bez uložené procedury by bylo, že bych podobnou proceduru musel napsat ve třech verzích - jednou v C++, jednou v Power Builderu a jednou v rámci programu pro internetový obchod (třeba ASP nebo PHP).
Druhou výhodou použití uložených procedur je, že se nemusím (v programu na „klientské“ straně) zabývat tím, jak jsou data uložena v konkrétních tabulkách. V našem případě je mi jedno, jak si databáze uvnitř pamatuje zákazníky - prostě zadám jako parametr procedury jméno, příjmení, číslo kreditky a co si zákazník koupil - a databáze (resp. její uložená procedura) si to nějak přebere.
Uložené procedury se v případě databázových aplikací staly základním kamenem pro realizaci architektury klient/server, kdy je na jedné straně (klientská část) realizována v běžném procedurálním programovacím jazyku komunikace s uživatelem (formuláře nebo třeba webové stránky) a na druhé straně (serverová část) je pomocí uložených procedur realizována správa dat v relační databázi. Obě části (klientská a serverová) mezi sebou komunikují přes co nejjednodušší rozhraní – voláním uložených procedur.
| SQL | |
|---|---|
| Příkazy jazyka SQL: |
SELECT • INSERT • UPDATE • DELETE • CREATE • DROP • ALTER • SHOW • GRANT • REVOKE • START TRANSACTION • COMMIT • ROLLBACK • EXPLAIN • MERGE • TRUNCATE • LOAD DATA |
| Klíčová slova: |
JOIN • UNION • INTERSECT • GROUP BY • ORDER BY • LIMIT • HAVING • WITH ROLLUP |
| Ostatní pojmy: |
Systém řízení báze dat • Tabulka • Index • Poddotaz • Uložená procedura • Uživatelsky definovaná funkce • Transakce • Trigger • Pohled • Agregační funkce • Referenční integrita |