Logo Studenta

bd2-teorico05

¡Este material tiene más páginas!

Vista previa del material en texto

Programación con acceso a base de datos
Bases de Datos 2 - Tecnologo de Informatica
BD2 - Programación
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 Triggers
BD2 - Programación
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 Triggers
BD2 - Programación
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.
También existen database programming languages.
BD2 - Programación
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 un enlace (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.
BD2 - Programación
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.
BD2 - Programación
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 Triggers
BD2 - Programación
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
BD2 - Programación
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 Triggers
BD2 - Programación
SQL incrustado
Incrustando comandos de BD en lengujes de propósito
general.
Las sentencias de BD son incrustadas (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.
SQL incrustado (Embedded SQL).
BD2 - Programación
SQL incrustado
Embedded SQL (lenguaje C)
Figura : Elmasri edición 7, fig. 10.1
BD2 - Programación
SQL incrustado
Embedded SQL (lenguaje C)
Figura : Elmasri edición 7, fig. 10.2
BD2 - Programación
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
BD2 - Programación
SQL incrustado
SQLJ (lenguaje Java)
Figura : Elmasri edición 7, fig. 10.7
BD2 - Programación
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 Triggers
BD2 - Programación
Biblioteca de funciones
Function Calls
Uso de una biblioteca de funciones de BD.
Se ofrece una API (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 una biblioteca de funciones: funciones para conectar
con la BD, enviar comandos SQL al servidor de BD, extraer
tuplas y/o cargar en variales, etc.
Este enfoque no necesita un preprocesador.
BD2 - Programación
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 utilizan JDBC drivers provistos por los
proveedores de RDBMS.
BD2 - Programación
JDBC
Figura : Elmasri edición 7, fig. 10.12
BD2 - Programación
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 Triggers
BD2 - Programación
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.
BD2 - Programación
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 Triggers
BD2 - Programación
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
que difiere del estandar.
BD2 - Programación
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> ;
BD2 - Programación
Procedimientos y funciones almacenados
Ejemplo
Figura : Elmasri edición 7, fig. 10.14
BD2 - Programación
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 directasque 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.
BD2 - Programación
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
estructuras de control como IF, Bucles, Case, etc. además
del manejo de transacción y permite controlar
excepciones.
BD2 - Programación
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 Triggers
BD2 - Programación
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.
BD2 - Programación
Trigger
Típico ECA
Los eventos 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.
La condició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.
Las acciones
Usualmente son una secuencia de sentencias SQL.
También pueden ser trasacciones de BD o un programa
externo que puede ser ejecutado automáticamente.
BD2 - Programación
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.
BD2 - Programación
Trigger
Ejemplo
CREATE TRIGGER Total_salario
AFTER INSERT ON EMPLEADO
FOR EACH ROW
WHEN ( NEW.Dno IS NOT NULL )
UPDATE DEPARTMENTO
SET Total_salario = Total_salario + NEW.Salario
WHERE Dno = NEW.Dno;
BD2 - Programación
	Acceso a las bases de datos
	Metodologías de programación de base de datos
	SQL incrustado
	Biblioteca de funciones
	Diseño de lenguaje compatible (procedimientos almacenados)
	Procedimientos y funciones almacenados
	Triggers

Continuar navegando

Materiales relacionados

3 pag.
Programacion de Base de datos Oracle

SIN SIGLA

User badge image

deyvi jhon medina silva

95 pag.
MC--Juan-Carlos-Soto-OrduAo-2019

User badge image

Los Mejores Materiales