Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Tipos de RDBMS
De escritorio
Caractersticas
Para pocos usuarios Programacin en una sola capa Dbil en: Concurrencia, Transacciones Recuperacin Ej. Paradox, Dbase, MsAccess
3
RDBMS de escritorio
Aplicacin BDE/DAO
Aplicacin BDE/DAO
Base de Datos
Tipos de RDBMS
Basado en Servidor
Caractersticas
Para muchos usuarios Programacin en varias capas Fuerte en Concurrencia Transacciones Recuperacin Ej. Oracle, MsSQL, Interbase, Informix, Sybase,DB/2, Btrieve. MySQL,Ingres
5
Base de Datos
Triggers:
Son tambin secuencia de instrucciones pero se activan en momentos especiales (UPDATE,INSERT,DELETE)
Oracle
Acepta varias plataformas, como Windows, Unix, Linux, etc. Permite funciones avanzadas. Segmentacin y Replicacin. Todos los tipos de datos. Extensin procedimental de le lenguaje PL/SQL que es completo y potente. Paquetes y tipos de datos abstractos. Definen Clases((ya un DBMS objeto relacional) Lenguaje de triggers completo. Alto costo, por licencia y sobre todo por mantenimiento (support). Producto muy estable
Interbase
Acepta muchas plataformas El mantenimiento Simple. Aunque su entorno de administracin deja mucho que desear. Cada base de datos se localiza en un archivo .gdb Las Copias de seguridad se pueden realizar en caliente Acepta todo tipo de datos y orientado a cumplir los estndares. El uso de Restriccin de Integridad Referencial es completo Tiene un Lenguaje de procedimientos completo. Acceso concurrente garantizado.
10
MS SQL Server
Entorno MS Windows Instalacin y manejo sencillos. Mantenimiento avanzado algo complicado No copias de seguridad en vivo Integridad referencial no muy sofisticado. Muy particular su lenguaje de procedimientos: Transact-SQL Integracin con otros productos Las ltimas versiones MS SQL Server 7.0, MS SQL Server 2000, MS SQL Server 2005, son mucho ms sofisticadas y estables.
11
Procedimientos Almacenados
Un procedimiento se puede entender como un algoritmo cuya definicin reside en la base de datos y es ejecutado por el servidor del sistema, cuando algn usuario lo solicite.
12
Llamar procedimientos:
Ejemplo-1
CREATE OR REPLACE PROCEDURE clienteInsProc ( v_nit IN CHAR, v_nombre IN CHAR, v_direccion IN CHAR, v_telefono IN CHAR) AS BEGIN INSERT INTO cliente(nit, nombre, direccion, telefono) VALUES(v_nit, v_nombre, v_direccion, v_telefono); END; 14 /
<<Cuerpodeprocedimiento>>
Llamar procedimientos:
Ejemplo-2
SET TERM !! ; CREATE PROCEDURE clienteInsProc ( v_ruc CHAR(10), v_nombre CHAR(25), v_direccion CHAR(10), v_telefono CHAR(10)) AS BEGIN INSERT INTO cliente(ruc,nombre, direccion, telefono) VALUES(:v_ruc,:v_nombre,:v_direccion,:v_telefono); END ; !! SET TERM ; !!
16
(<<parametrosdeEntradaySalida>>)
as
<<cuerpodeprocedimiento>>
Llamar procedimientos:
Ejemplo 3
CREATE PROCEDURE clienteInsProc ( @ruc char(10), @nombre char(25) =NULL, @direccion char(10) =NULL, @telefono char(10) =NULL) AS BEGIN INSERT INTO cliente(ruc,nombre,direccion, telefono) VALUES(@ruc,@nombre,@direccion,@telefono) END go
18
Ejecutando el procedimiento
MS SQL Server
EXEC clienteInsProc 452341, JOSE BUENDIA, SUCRE #1435, 5243612
19
Ejemplo 4
Actualiza la tabla historial (registro de materias aprobadas) con los datos de la tabla registro para algn estudiante en particular conocido su ci:
Estudiante(ci,nom,dir,tel,ing,fechanac) Registro(ci,sigla,sem,nota) Materia(sigla,nom,creditos) Historial(ci,sigla,sem,nota)
20
22
Ej.
declare x number declare nom char(20)
23
Ej.
declare variable x char(10); declare variable y integer;
24
Ej.
declare @x char(10); declare @y integer;
25
Asignaciones-1
ORACLE
Para la Asignacin se usa := <<Variable>>:=<<Expresin>>
26
Asignaciones-2
INTERBASE
La asignacin es algo muy simple Variable=Expresion
27
Asignaciones-3
MS SQL SERVER
Una asignacin se ve algo distinto select <<Variable>>=<<Expresin>>
Ej.
select @y=@y+1; select @x=2340;
28
Estructuras de Control-1
ORACLE Condicionales
if (<<condicion>>) then <<instruccion1>> [else << instruccion2>>]
Ciclos
while (<<Condicion>>) loop
<<instruccin>>
end loop
29
Estructuras de Control-2
INTERBASE
Condicionales if (<<condicion>>) then <<instruccion1>> [else <<instruccion2>>]
Ciclos
while (<<condicion>>) do
<<instruccin>>
30
Estructuras de Control-3
Condicionales
[else if (<<condicion>>)
Ciclos
select case when <<condicion1>> then <<valor1Mostrar>> when <<condicionN>> then <<valorNMostrar>> end while (<<Condicion>>) do
<<instruccin>>
31
Cursores
Un cursor es una variable de tipo tabla, concretamente puede entenderse como un conjunto de registros. pasos:
1. Declarar 2. Abrir 3. Usar (normalmente en una estructura repetitiva hasta fin del cursor) 4. Cerrar el cursor.
33
Oracle
- cursor <<nombre>> is <<sentenciaSelect>> - open <<nombre>> - fetch <<nombre>> into <<variables>> - close <<nombre>>
34
Interbase
Iteracion en consultas (equivalente a cursores). - for <<instruccionSelect>> into <<variables>> do <<Instruccin>>
35
MS SQL Server
- declare <<nombre>> cursor for <<sentenciaSelect>> - open <<nombre>> - fetch next from <<nombre>> into <<variables>> - close <<nombre>>
36
37
/*CURSORES*/ CREATE PROCEDURE l_par (@semx CHAR(7)) AS DECLARE @sigla CHAR(7),@inscritos INT,@aprobados INT,@reprobados INT /* Declaracion del cursor*/ DECLARE lpara CURSOR FOR SELECT sigla FROM paralelo WHERE sem=@semx /* Abrir el cursor */ OPEN lpara /* Usar el cursor */
38
Disparadores (triggers)
Un trigger es cdigo que se almacena en la base de datos, su comportamiento es lo que le diferencia de un procedimiento, Se activa con algn evento con un elemento de la base de datos Ej. una tabla, al adicionar, al modificar un valor o eliminar un dato.
41
Ejemplo
Mantiene sincronizada el total de la tabla factura con los datos de detalle.
Factura(num,fecha,nit,total) Detalle(num,codpro,cantidad,monto)
42
Cdigo ORACLE
CREATE OR REPLACE TRIGGER facturasuma AFTER INSERT ON detalle FOR EACH ROW BEGIN UPDATE factura SET total=total+:new.monto WHERE numero=:new.numero ; END;
43
Preguntas?
44