• No se han encontrado resultados

Programación con acceso a base de datos

N/A
N/A
Protected

Academic year: 2021

Share "Programación con acceso a base de datos"

Copied!
31
0
0

Texto completo

(1)

Programación con acceso a base de datos

Bases de Datos 2 - Tecnologo de Informatica

(2)

Outline

1 Acceso a las bases de datos

2 Metodologías de programación de base de datos

SQL incrustado

Biblioteca de funciones

Diseño de lenguaje compatible (procedimientos almacenados)

3 Procedimientos y funciones almacenados

(3)

Outline

1 Acceso a las bases de datos

2 Metodologías de programación de base de datos SQL incrustado

Biblioteca de funciones

Diseño de lenguaje compatible (procedimientos almacenados)

3 Procedimientos y funciones almacenados

(4)

Acceso a las bases de datos

Interfaz interactiva.

Permite ejecutar comandos SQL, comandos propios del proveedor de BD.

Comunmente puede ejecutar un fichero de comandos. Es adecuada para la creación del esquema, restricciones o para las consultas temporales u ocasionales.

Programas de aplicación/Aplicaciones de bases de datos.

Desarrollados en lenguajes de programación de propósito general: Java, C, COBOL, etc.

Cuando sentencias de BD son incluídas en un programa, al lenguaje de propósito general se le llama host language y al lenguaje de BD se le llama data sublanguage.

(5)

Desajuste de impedancia

Impedance Mismatch

Término que se utiliza para referirse a los problemas derivados de las diferencias entre el modelo de BD y el modelo del lenguajde de programación.

Algunos problemas:

Tipos de datos del lenguaje de programación difieren de los tipos de datos de atributo del modelo de datos. Se necesita unenlace (binding).

Mapear la estructura de datos del resultado de la consulta.

El desajuste de impedancia es un problema menor cuando se diseña un lenguaje de programación de BD.

(6)

Secuencia típica de interacción

Comunmente se utiliza modelo cliente/servidor. Posible secuencia de interacción:

El programa cliente establece o abre una conexión con el servidor de BD.

Establecida la conexión, el programa interactua con la BD emitiendo consultas, actualizaciones y otros comandos de BD.

Finalizada la interacción el programa termina o cierra la conexión con la BD.

Un programa puede acceder a varias BD estableciendo una o más conexiones con cada una.

(7)

Outline

1 Acceso a las bases de datos

2 Metodologías de programación de base de datos

SQL incrustado

Biblioteca de funciones

Diseño de lenguaje compatible (procedimientos almacenados)

3 Procedimientos y funciones almacenados

(8)

Metodologías de programación de base de datos

Incrustando comandos de BD en lengujes de propósito general. En nuestro caso SQL Inscrustado.

Uso de una biblioteca de funciones de BD.

Diseño de un lenguaje completamente nuevo, llamados database programming languages

(9)

Outline

1 Acceso a las bases de datos

2 Metodologías de programación de base de datos

SQL incrustado

Biblioteca de funciones

Diseño de lenguaje compatible (procedimientos almacenados)

3 Procedimientos y funciones almacenados

(10)

SQL incrustado

Incrustando comandos de BD en lengujes de propósito general.

Las sentencias de BD sonincrustadas (embedded) en el lenguaje de programación host pero son indentificadas por un prefijo especial. Ej. EXEC SQL.

Se utiliza un precompilador o prepocesador para rastrear, extraer y reemplazar las sentencias.

(11)

SQL incrustado

Embedded SQL (lenguaje C)

(12)

SQL incrustado

Embedded SQL (lenguaje C)

(13)

SQL incrustado

SQLJ (lenguaje Java)

SQL puede ser incrustado en un lenguaje de programación orientado a objetos, como ser Java. En particular SQLJ es un estandar adoptado por varios proveedores de DBMS para incrustar SQL en Java. Fue desarrollado posteriormente a JDBC (vemos más adelante) y la utiliza.

El traductor de SQLJ generalmente convierte sentencias SQL en código Java, que luego puede ser ejecutado a través de la interfaz JDBC

(14)

SQL incrustado

SQLJ (lenguaje Java)

(15)

Outline

1 Acceso a las bases de datos

2 Metodologías de programación de base de datos

SQL incrustado

Biblioteca de funciones

Diseño de lenguaje compatible (procedimientos almacenados)

3 Procedimientos y funciones almacenados

(16)

Biblioteca de funciones

Function Calls

Uso de una biblioteca de funciones de BD.

Se ofrece unaAPI (Application Programming Interface) para acceder a la BD desde los programas de aplicación. Esto es, en el lenguaje de programación host se dispone de unabiblioteca de funciones: funciones para conectar con la BD, enviar comandos SQL al servidor de BD, extraer tuplas y/o cargar en variales, etc.

(17)

Biblioteca de funciones

Dos ejemplos de...

SQL Call Level Interface (SQL/CLI)

Es parte del estandar de SQL.

Fue desarrollada como estandarización de la librería ODBC (Open Database Connectivity).

ODBC funciona con lenguajes C, C++, C, Visual Basic.

Java Database Connectivity (JDBC)

Es una interfaz para acceder a bases de datos desde Java. Soporta ejecución de consultas, actualización de datos, recuperar consultas, obtener metadata, etc.

Las aplicaciones utilizanJDBC drivers provistos por los proveedores de RDBMS.

(18)
(19)

Outline

1 Acceso a las bases de datos

2 Metodologías de programación de base de datos

SQL incrustado

Biblioteca de funciones

Diseño de lenguaje compatible (procedimientos almacenados)

3 Procedimientos y funciones almacenados

(20)

Diseño de lenguaje compatible

Diseño de un lenguaje completamente nuevo.

Se diseña un lenguaje de programación de BD compatible con el modelo de BD y el lenguaje de consulta.

El estandar SQL define el lenguaje SQL/PSM (SQL/Persistent Stored Modules).

Este soporta sentencias típicas de lenguajes de programación: loops, it-then-else, asignaciones, etc. Ejemplo: Oracle PL/SQL.

(21)

Outline

1 Acceso a las bases de datos

2 Metodologías de programación de base de datos SQL incrustado

Biblioteca de funciones

Diseño de lenguaje compatible (procedimientos almacenados)

3 Procedimientos y funciones almacenados

(22)

Procedimientos y funciones almacenados

Sotred procedures and functions

Un procedimiento es un programa dentro de la base de datos que ejecuta una acción o conjunto de acciones especificas.

Un procedimiento tiene un nombre, un conjunto de parámetros (opcional) y un bloque de código.

El standard SQL se refiere a estos utilizando el término Persistent Stored Modules.

SQL/PSM es la parte del estandar de SQL que especifica cómo escribir un un procedimiento y funcion almacenados. Muchas BD tiene su propia extensión procedural a SQL

(23)

Procedimientos y funciones almacenados

Sotred procedures and functions

Para crear un procedimiento almacenado debemos emplear la siguiente sentencia,

CREATE PROCEDURE <nombre_proc> (<parametros>) <declaraciones_locales>

<cuerpo_procedimiento> ;

Los parámetros y las declaraciones locales son opcionales. Para declarar una función es necesario especificar un tipo de retorno,

CREATE FUNCTION <nombre_func> (<parametros>) RETURNS <tipo_de_retorno>

<declaraciones_locales> <cuerpo_funcion> ;

(24)

Procedimientos y funciones almacenados

Ejemplo

(25)

Ventajas de usar procedimientos almacenados

Compilación: La primera vez que se invoca un

procedimiento almacenado, el motor lo compila y a partir de ahí, se sigue usando la versión compilada del mismo, hasta que se modifique. Esto significa que se tendrá un mejor rendimiento que las consultas directas que usan cadenas con las instrucciones , que se compilan cada vez que se invocan.

Automatización: si tenemos un conjunto de instrucciones

SQL, las cuales queremos ejecutar de manera ordenada, un SP es la mejor manera de hacerlo.

(26)

Ventajas de usar procedimientos almacenados

Administración: cuando realizamos aplicaciones con un

gran numero de líneas de código, y queremos hacer cambios, solo implica modificar un SP y no toda la aplicación, lo que significa solo cambiamos los SP en el servidor y no tenemos que actualizar la aplicación en todos los equipos cliente.

Seguridad: una parte importante es que a los usuarios de

nuestra aplicación, solo les proporcionamos los permisos para ejecutar los procedimientos almacenados y no el acceso a todos los objetos de la base.

Programabilidad: Los SP admiten el uso de variables y

(27)

Outline

1 Acceso a las bases de datos

2 Metodologías de programación de base de datos SQL incrustado

Biblioteca de funciones

Diseño de lenguaje compatible (procedimientos almacenados)

3 Procedimientos y funciones almacenados

(28)

Trigger

Disparadores

Un trigger/disparador es un procedimiento que es

ejecutado automáticamente por el sistema como un efecto colateral de una modificación de la BD.

Los triggers fueron incorporados en el estandar SQL:1999. Permiten especificar reglas activas (active rules).

Utilizadas en Bases de Datos Activas (active databases). El modelo que utilizado para especificar reglas de BD activas se denomina modelo event-condition-action (ECA). Un trigger típico es considerado o llamado un ECA.

(29)

Trigger

Típico ECA

Loseventos pueden ser de inserción (INSERT),

actualización (UPDATE), borrado (DELETE) o combinación de estos.

Se especifican luego de las keyword BEFORE o AFTER.

Lacondición determina cuando la regla de acciones debe

ser ejecutado

Una vez que se ha producido el evento disparador, la condición podrá ser evaluada.

Es opcional. Si no se especifica, las acciones serán ejecutadas una vez que se dispare el evento. Si se especifica, solo se ejecuta la regla de acciones si la condición evalua verdadero.

Se especifica en la cláusula WHEN del trigger.

Lasacciones

(30)

Trigger

Disparadores

Para diseñar un mecanismo de trigger debemos:

Especificar las condiciones y eventos bajo las cuales el trigger es ejecutado.

Especificar las acciones que toman lugar cuando se ejecuta el trigger.

Multiples triggers de cada tipo pueden ser creados para una misma tabla.

Todos los que estén activados se ejecutan/disparan. No se garantiza que mantegan un mismo orden de ejecución. La cláusula FOLLOWS permite especificar y garantizar el orden.

(31)

Trigger

Ejemplo

CREATE TRIGGER Total_salario

AFTERINSERT ON EMPLEADO

FOR EACH ROW

WHEN ( NEW.Dno IS NOT NULL ) UPDATE DEPARTMENTO

SET Total_salario = Total_salario + NEW.Salario WHERE Dno = NEW.Dno;

Referencias

Documento similar

Se utilizó Java como lenguaje de programación, PostgreSQL 8.3 como servidor de aplicaciones, el framework Hibernate para el acceso a datos, el framework Seam para la unión entre

Proporcione esta nota de seguridad y las copias de la versión para pacientes junto con el documento Preguntas frecuentes sobre contraindicaciones y

[r]

Contraindicaciones: El uso de la mascarilla está contraindicado para los pacientes y los miembros de sus familias, profesionales sanitarios y compañeros de

 Para recibir todos los números de referencia en un solo correo electrónico, es necesario que las solicitudes estén cumplimentadas y sean todos los datos válidos, incluido el

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de

Las manifestaciones musicales y su organización institucional a lo largo de los siglos XVI al XVIII son aspectos poco conocidos de la cultura alicantina. Analizar el alcance y

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la