Procediment emmagatzemat
Un procediment emmagatzemat és un programa (o procediment) que és físicament emmagatzemat dins d'una base de dades. Són escrits en llenguatges d'alt nivell (normalment propietaris) i contenen sentències d'SQL.
De fet, els procediments emmagatzemats es poden considerar com una extensió del llenguatge SQL, ja que estan estandarditzats juntament amb l'SQL amb el nom de Persistent Stored Modules (SQL/PSM, Standard ISO/IEC 9075 també conegut com a SQL:2003).
El principal avantatge d'un procediment emmagatzemat és que quan s'executa, com a conseqüència d'una petició d'un usuari, ho fa directament en la base de dades i per tant és més ràpid processant dades que si el mateix procés es realitzés fora de la base de dades (probablement en un altre servidor), ja que estalvia la transmissió de les dades que tracta.
Usos
[modifica]Els usos típics dels procediments emmagatzemats són la validació de dades que està integrada en l'estructura de la base de dades (normalment aquest procediments s'anomenen triggers) o el processament de dades com a part d'un procés extern més complex.
Els procediments emmagatzemats poden simplificar la gestió de dades quan una base de dades és manipulada per diversos programes externs. Inserint la "lògica de negoci" a la base de dades usant procediments emmagatzemats s'elimina la necessitat de duplicar la mateixa lògica a cadascun dels programes que accedeixen les dades.
En alguns sistemes, els procediments emmagatzemats es poden utilitzar per controlar les transaccions, en altres, els procediments s'executen dins una transacció de manera que les transaccions són invisibles per ells.
En la majoria de sistemes es realitza una compilació dels procediments emmagatzemats. El sistema de gestió de la base de dades determina el pla d'execució de les consultes que es reutilitzarà cada cop que es cridi el procediment.
Algunes de les bases de dades que incorporen procediments emmagatzemats
[modifica]- DB2 d'IBM
- Microsoft SQL Server de Microsoft empra Transact-SQL
- MySQL
- Oracle incorpora el PL/SQL
- PostgreSQL empra PL/pgSQL
- Informix empra Informix-4GL