Métodos de programación de bases de datos: SQL incorporado, ODBC, JDBC y PL/SQL

InformáticaActualizado el 6,26 KB

Resumen

El documento describe los principales métodos para programar aplicaciones con bases de datos, desde la lógica en el servidor (triggers y procedimientos) hasta las interfaces de conexión desde el cliente como ODBC, JDBC y SQLJ. También explica la estructura de un bloque PL/SQL, la organización en paquetes y los tipos de datos más usados, como CHAR, VARCHAR, NUMBER, DATE, LOBs y ROWID.

Puntos clave

  • La lógica de la aplicación puede residir en el servidor mediante triggers, procedimientos y funciones almacenados.
  • En el modo cliente, el código se ejecuta fuera del servidor y las llamadas a la base de datos se transmiten a través de la red.
  • ODBC, CLI y JDBC son interfaces que permiten ejecutar sentencias SQL desde distintos lenguajes de programación.
  • Un bloque PL/SQL se organiza en las secciones DECLARE, BEGIN y EXCEPTION, y se cierra con END;.
  • Un paquete PL/SQL consta de una cabecera (specification) con las firmas de los subprogramas y un cuerpo (body) con su implementación.
  • CHAR admite hasta 2000 caracteres de longitud fija y VARCHAR hasta 4000 caracteres de longitud variable.
  • Los disparadores BEFORE y AFTER se ejecutan antes o después de INSERT, UPDATE o DELETE, y pueden incluir una condición WHEN.

Ponte a prueba

Métodos de Programación de Bases de Datos

Codificación en el Lado del Servidor

La lógica de la aplicación reside enteramente en la base de datos. La aplicación se basa en la implementación de disparadores (triggers) que se ejecutan automáticamente cuando ocurre algún cambio en los datos almacenados, y en el almacenamiento de procedimientos y funciones que son llamados explícitamente. Este enfoque permite reutilizar el mismo código para múltiples clientes.

Modo Cliente

El código se ejecuta en una máquina diferente al servidor donde reside la base de datos. Las llamadas a la base de datos se transmiten desde la máquina cliente al servidor. Los datos se transmiten desde la máquina cliente para las operaciones de inserción y actualización.

Modelo en Tres Niveles

A la arquitectura de dos niveles se le añade un servidor de aplicación separado que procesa las peticiones. Este podría ser un servidor web básico.

SQL Incorporado

Las aplicaciones de base de datos con SQL incorporado se conectan a las bases de datos y ejecutan directamente sentencias SQL que se encuentran insertadas dentro de una aplicación escrita en un lenguaje principal.

ODBC (Open Database Connectivity)

Es una interfaz SQL que permite la conectividad abierta a bases de datos. Los controladores se cargan dinámicamente en tiempo de ejecución, mediante un gestor de controladores basado en la fuente de datos proporcionada en la petición de conexión.

CLI (Call Level Interface)

Es una interfaz de programación de aplicaciones (API) para el acceso a bases de datos relacionales, que utiliza llamadas de función para pasar sentencias de SQL dinámico como argumentos de función.

JDBC (Java Database Connectivity)

Es una API que permite a las aplicaciones Java interactuar con bases de datos relacionales, ejecutando sentencias SQL.

SQLJ

Permite incorporar sentencias SQL directamente en código fuente Java.

PHP

Es un lenguaje de programación interpretado, ampliamente utilizado para el desarrollo de aplicaciones web, al que se le han añadido funciones robustas para el acceso a bases de datos.

Estructura Básica de un Programa (PL/SQL)

DECLARE

Sección para la declaración de variables, constantes y cursores que se utilizarán en el bloque de ejecución.

BEGIN

Contiene las sentencias ejecutables, formando el bloque principal de ejecución del programa.

EXCEPTION

Sección dedicada al manejo de errores. Permite definir acciones específicas a tomar en caso de que ocurran errores de interés durante la ejecución del bloque. Finalmente, el bloque se cierra con END;.

CREATE OR REPLACE PROCEDURE

Sentencia utilizada para crear o reemplazar un procedimiento almacenado en la base de datos.

CALL

Instrucción para ejecutar (hacer uso de) un procedimiento almacenado.

Agrupación de Procedimientos y Funciones en Paquetes

La Cabecera (Specification)

Almacena la definición (firma) de todos los subprogramas (procedimientos y funciones) que incluye el paquete, así como la declaración de variables y constantes públicas.

El Cuerpo (Body)

Contiene la implementación (el código) de todos los subprogramas declarados en la cabecera del paquete.

Triggers (Disparadores)

Permiten codificar lógica de negocio en disparadores asociados a tablas, vistas o eventos. Estos se ejecutan automáticamente una vez o tantas veces como filas de una tabla se vayan a insertar, borrar o actualizar.

Para crear un disparador, se utiliza la sentencia CREATE TRIGGER. Existen disparadores BEFORE y AFTER, que se ejecutan antes o después de una instrucción específica (como INSERT, UPDATE o DELETE). Además, se puede añadir una condición WHEN para especificar cuándo debe activarse el disparador.

Tipos de Datos, Identificadores y Variables en Bases de Datos

CHAR

Tipo de dato para cadenas de caracteres de tamaño fijo, con un máximo de 2000 caracteres. Los valores de cadena deben ir entre comillas simples.

VARCHAR (o VARCHAR2)

Tipo de dato para cadenas de caracteres de longitud variable, con un máximo de 4000 caracteres. Los valores de cadena deben ir entre comillas simples.

NUMBER

Tipo de dato numérico decimal. Permite especificar la precisión (número total de dígitos, entre 1 y 38) y la escala (número de dígitos a la derecha del punto decimal, entre -84 y 127). Si la escala es positiva, indica cuántos dígitos del total se guardan a la derecha de la coma decimal; si es negativa, indica el número de dígitos a la izquierda del punto decimal que se redondean.

BINARY_FLOAT

Número de coma flotante de 32 bits de precisión.

BINARY_DOUBLE

Número de coma flotante de 64 bits de precisión.

DATE

Almacena valores de fecha y hora. La función TO_DATE se utiliza comúnmente para insertar o convertir valores de fecha.

TIMESTAMP

Es una extensión del tipo DATE que permite almacenar fracciones de segundo, ofreciendo mayor precisión temporal.

BLOB, CLOB, BFILE (LOBs)

Tipos de datos para almacenar objetos grandes (Large Objects) y desestructurados, como texto extenso (CLOB), imágenes, vídeos o datos binarios (BLOB). Los datos pueden guardarse directamente en tablespaces o en ficheros externos a la base de datos (BFILE).

ROWID

Es una pseudocolumna interna de la tabla que almacena la dirección física de cada fila. Mediante esta dirección, se puede localizar de manera eficiente el número de objeto y el fichero de datos asociado a la fila.

Descargar

PDF Word HTML

Preguntas frecuentes

¿Qué diferencia hay entre un disparador BEFORE y uno AFTER?

Un disparador BEFORE se ejecuta antes de la instrucción INSERT, UPDATE o DELETE asociada, mientras que un disparador AFTER se ejecuta después de ella. Ambos pueden incluir una condición WHEN para decidir cuándo se activan.

¿Qué es ODBC?

ODBC (Open Database Connectivity) es una interfaz SQL que permite la conectividad abierta a bases de datos. Los controladores se cargan dinámicamente en tiempo de ejecución según la fuente de datos indicada en la petición de conexión.

¿Para qué sirve el tipo ROWID?

ROWID es una pseudocolumna interna que almacena la dirección física de cada fila, lo que permite localizar de forma eficiente el objeto y el fichero de datos asociados a ella.

Ponte a prueba

Tarjetas de repaso

Pulsa una tarjeta para ver la respuesta.

Test

1. ¿Qué sección de un bloque PL/SQL se usa para manejar errores?
2. ¿Qué contiene el cuerpo (body) de un paquete?
3. ¿Cuál es el máximo de caracteres de un VARCHAR según el texto?
4. ¿Qué interfaz permite a las aplicaciones Java ejecutar sentencias SQL?
5. ¿Qué tipo de dato almacena valores de coma flotante de 64 bits?
6. ¿Qué instrucción se usa para ejecutar un procedimiento almacenado?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.