Súčasti logického a fyzického návrhu databázy

Vynútenie obmedzení pomocou „spúští“

Niektoré obmedzenia sú príliš komplikované a v jednoduchej deklarácii sa vynútiť alebo zaistiť nedajú. Do tejto kategórie patrí napríklad aplikačné pravidlo z obrázku 2.1 (“Zákazníci s nezaplatenými pohľadávkami nemôžu podávať nové objednávky”), pretože pri jeho overení musíme pracovať s údajmi z niekoľkých tabuliek.

V prípade, že riadok tabuľky Zákazníci obsahuje v stĺpci s pohľadávkou (Číslo pohľadávky) nezaplatenú čiastku väčšiu ako nula, nedovolíme v databáze pridanie nových objednávok , teda nových riadkov do tabuľky Objednávky od tohto zákazníka. Spúšť (trigger) je modul programovej logiky, ktorý sa “odpáli”, čiže spustí pri vzniku určitej udalosti v databáze. V našom príklade budeme chcieť, aby sa spúšť odpálila pri každom vložení nového riadku do tabuľky Objednávky: spúšť načíta hodnotu nezaplatených objednávok z tabuľky zákazníkov a pokiaľ je väčšia ako nula, vyvolá v databáze chybu, ktorá zastaví operáciu vloženia dát a zobrazí zodpovedajúcu chybovú správu.

V Microsoft Access môžeme spúšť zapísať pomocou makier jazyka MS VBA (Visual Basic for Applications). Niektoré relačné databázové systémy majú pre zápis programových modulov spúští svoj vlastný, špeciálny jazyk: Oracle má tak jazyk PL/SQL a databáza Microsoft SQL Server a Sybase pracujú s jazykom Transact SQL. V iných relačných databázach, napríklad DB2, môžeme využiť všeobecný programovací jazyk, ako napríklad C.