Slovník | Vyhledávání | Mapa webu
 
Základy informatiky pro biologyDatabázové systémy v biomedicíně SQL skripty, uživatelské procedury a funkce Uložené procedury a uživatelské funkce

Logo Matematická biologie

Uložené procedury a uživatelské funkce

Sekvence DML příkazů můžeme také uložit jako objekt databáze formou uložené procedury nebo uživatelské funkce. Stejně jako tabulky jsou uložené procedury a funkce součástí databáze, mají svého vlastníka a přístup k nim se řídí přiděleným oprávněním. Stejně jako tabulky se vytvářejí příkazem CREATE a ruší příkazem DROP. Rozdíl mezi uloženou procedurou a uživatelskou funkcí není velký. Databáze POSTGRESQL má pouze uživatelské funkce, které ale dokáží totéž co uložené procedury v ORACLE. V databázi ORACLE jedním z rozdílů mezi procedurou a funkcí spočívá ve způsobu spouštění. Zatímco uživatelskou funkci voláme stejně jako standardní funkci (např. SUBSTR() nebo ROUND()) v těle SQL dotazu, uloženou proceduru spouštíme jako procedurální kód, což si ukážeme v této kapitole.  

Databázové systémy často kromě SQL jazyka podporují i specifický procedurální jazyk. Pomocí něj lze provádět operace, které v SQL provést nelze nebo které jsou příliš komplikované. Procedurálním jazykem na rozdíl od SQL zpracováváme řádek po řádku pomocí programových smyček a podmíněných výrazů. Procedurální kód nám také umožňuje provádět vstupně/výstupní operace jako je ukládání dat do souboru na disk, odesílání emailem apod. V uložených procedurách a uživatelských funkcích kombinujeme procedurální jazyk s SQL příkazy. Procedurální jazyky jsou ještě více produktově specifické než jazyk SQL. Procedurální jazyk v ORACLE se označuje jako PL/SQL, jazyk v PostgreSQL jako PGSQL. Základní koncept je v obou případech stejný, odlišnosti jsou však v syntaxi, jak si ukážeme dále. 

 
vytvořil Institut biostatistiky a analýz Lékařské fakulty Masarykovy univerzity