5/7/13

PL/SQL



Antes de nada hay que tener conocimiento de que SQL es un lenguaje de consulta para las bases de datos relacionales, pero que no posee la potencia de los lenguajes de programación. Debido a esto, existe PL/SQL, para combinar la capacidad de consulta de SQL con la potencia de los lenguajes de programación y así poder realizar aplicaciones completas para el manejo de bases de datos relacionales.

PL/SQL (Procedural Language/Structured Query Language) es un lenguaje de programación incrustado en Oracle, o dicho de otra manera PL/SQL es un lenguaje procedimental diseñado por Oracle para trabajar con la base de datos. Soporta todos los comandos de consulta y manipulación de datos, aportando al lenguaje SQL las estructuras de control y otros elementos propios de los lenguajes procedimentales de tercera generación. La unidad mínima de trabajo es el bloque, es un lenguaje estructurado en bloques. Es un lenguaje embebido en ORACLE y PostgreSQL.PL/SQL amplía la funcionalidad de SQL añadiendo estructuras habituales en otros lenguajes de programación como: 

-        Variables y tipos (predefinidos y definidos por el usuario). 
-        Estructuras de control (bucles y condiciones IF-THEN-ELSE). 
-        Procedimientos y funciones.

El lenguaje PL/SQL está incorporado en: 

-          Servidor de la Base de datos. 
-          Herramientas de Oracle(FORMS, REPORTS, …)

Tipos de objetos y métodos. Además de ser procedimental, este lenguaje es modulable, es decir, es posible encapsular el código para su reutilización posterior. De esa forma eliminamos la posibilidad de que exista código redundante, se mejora la eficiencia de las aplicaciones, la seguridad, etc.

Los módulos de PL/SQL están divididos en cuatro categorías: Procedimientos, Funciones, Paquetes y Triggers:

-          Procedimientos: código encapsulado que acepta parámetros de entrada y que no devuelve ningún tipo de valor. 
-          Funciones: código encapsulado que acepta parámetros de entrada y que devuelve un valor. 
-          Paquete: conjunto de procedimientos y funciones. Tiene dos partes: la especificación, con la cabecera de las funciones, procedimientos y la declaración de variables, y el cuerpo, con el código de estos módulos. Es una forma de aglutinar módulos relacionados entre si. Se utiliza como una biblioteca. 
-          Triggers: código PL/SQL asociado a una tabla que se activa siempre que se dé un determinado evento (insert, update, delete). Se utilizan para implementar restricciones complejas en las tablas

En un entorno de base de datos los programadores pueden construir bloques PL/SQL para utilizarlos como procedimientos o funciones, o bien pueden escribir estos bloques como parte de scripts SQL*Plus.
Todos estos módulos, una vez creados, se compilarán en la Base de Datos transformándose en objetos propios de dicha Base de Datos. De tal forma que pueden ser utilizados por cualquier usuario u otro código, siempre que se tenga permiso para ello. Estos módulos (programas, paquetes, ...) se ejecutan en el servidor para ahorrar recursos a los clientes.



Bloques PL/SQL
La unidad básica en PL/SQL es el bloque. Todos los programas PL/SQL están compuestos por bloques que pueden estar anidados. Un bloque PL/SQL está compuesto de tres partes principales: 
-          Declaración (opcional). 
-          Ejecución (opcional). 
-          Excepciones (opcional)

A continuación se presenta cual es la estructura de un bloque PL/SQL.

DECLARE
     //Declaración
BEGIN
     //Ejecución
EXCEPTION
      //Excepciones
END

Podemos crear varios tipos de bloques diferentes:  
-          Bloques anónimos: Se construyen de forma dinámica y se suelen ejecutar una sola vez. 
-          Bloques nominados( o con nombre): Igual que los anónimos pero con una etiqueta que les da nombre. 
   o    Subprogramas: Procedimientos, paquetes y funciones, almacenados de la Base de Datos y que se ejecutan en múltiples ocasiones. Los subprogramas se ejecutarán mediante una llamada. 
   o    Disparadores (“Triggers”): Bloques nominados que se almacenan en la Base de Datos y se ejecutan ante algún suceso.



CONTINUARÁ.........................

No hay comentarios :

Publicar un comentario