La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Implementación Asistida BD Firebird/Interbase SQL Server

Presentaciones similares


Presentación del tema: "Implementación Asistida BD Firebird/Interbase SQL Server"— Transcripción de la presentación:

1 Implementación Asistida BD Firebird/Interbase SQL Server
Guillermo Cherencio – UTN FRD CoNaIISI UCASAL

2 ¿Qué es Firebird? http://www.firebirdsql.org Base de Datos Relacional
Open Source Deriva de Interbase (Borland/Inprise) PL/SQL (funciones, stored procedures, triggers, DSQL, cursores, etc) Windows / Linux Herramientas

3 Implementaciones extremas
MODELO A

4 Modelo A Sin aislación entre Usuario, App y BD
Escasa implementación PL/SQL Código SQL externo a la BD Permiso S,I,U,D sobre tablas Gestión de permisos en disparadores y tablas auxiliares Dificultad en implementación de Reglas semánticas en BD

5 Implementaciones extremas
MODELO B

6 Modelo B Aislación entre Usuario, App y BD API de comunicación con BD
Código PL/SQL compilado Permiso Ejecución sobre procedures Simplificación de gestión de permisos sobre disparadores Sin necesidad de tablas auxiliares Facilidad para implementar Reglas semánticas en BD Simplificación código SQL en App

7 Modelo de Diseño e Implementación
¿Modelo A o B? UoD Diseño Conceptual Diseño Lógico Tipo Sub-Tipo Mutuamente Excluyentes Entidad Debil con discriminante consecutivo ascendente Atributos Derivados Redundantes Calculados Cardinalidad Maxima Sobre la misma tabla Casos Genéricos de Implementación Relación Padre - Hijo

8 Implementación Asistida FB
¿Replicación? FBJReplicator Modulo Implementación Asistida Reglas Semánticas específicas Casos Genéricos de Implementación FBJReplicator Modulo Replicación (CoNaIISI 2015)

9 Restricciones en Disparadores
No DDL No Select sobre tabla objeto del disparador Orden: Eventos Before Aplicación Constraints: PK,UK,CK,FK Eventos After Permisos al objeto disparador sobre las tablas que utiliza

10 Estrategia de Desarrollo e Implementación
Análisis de casos genéricos de implementación Implementación manual de triggers para cada caso genérico de implementación. Depuración y simplificación código Triggers Desarrollo de modulo dentro FBJReplicator para automatizar implementación de casos Desarrollo BD de testing, depuración Empaquetado y distribución Proyecto FBJReplicator (FBJR)

11 Implementación de Casos Modelo B
Se asume modelo A implementado Por cada tabla crear procedimiento: SP_{tabla}(Op,atrib1,atrib2,...,atribN) Op->I,U,D Atrib1..N->atributos tabla Retorno: 0 → Ok, sino código error y mensaje error. SP_S{tabla}() Retorno: tuplas de tabla

12 Base de Datos FB 3.0 Testing
PRODUCTO(IDP,DESCR,STOCK) FACTURA(NRO,FECHA,MONTO) monto=sum(subtotal) DETALLE(NRO,IDP,CANTIDAD,PRECIO,SUBTOTAL) nro fk factura, idp fk producto subtotal=cantidad*precio LIBRO(ISBN,TITULO) EJEMPLAR(ISBN,NRO,UBICACION) isbn fk libro, nro=1..N por ISBN PERSONA(DNI,APE,NOM) EMPLEADO(DNI,SALARIO) dni fk persona CONTRATISTA(DNI,VALOR) Atributos Derivados EF-ED discriminante consecutivo ascendente Tipo- Sub Tipo mutuamente excluyente

13 Implementación de Casos Atributos Derivados
a) Como derivados: -clausula “COMPUTE BY” -derivando la tabla en objeto VIEW, Select Procedure -implementación aplicable a Modelo A y B b) Como atributo redundante (misma tabla): Ejemplo: detalle(nro,idp,cantidad,precio,subtotal) subtotal=cantidad * precio EVENTO ITEM BI SUBTOTAL=CANTIDAD*PRECO BU SUBTOTAL=CANTIDAD*PRECIO

14 Implementación de Casos Atributos Derivados
c) Como atributo redundante en relación P-H modelo A: -Tipo Operación: count,max,min,sum Ej.: factura(nro,fecha,monto) monto=sum(detalle.subtotal) EVENTO FACTURA DETALLE AI Insertar tupla en T.AUX, monto=0 Update tupla T.AUX,monto=monto+subtotal BU No permito cambios en PK AD Borro tupla en T.AUX Update tupla T.AUX, monto=monto-subtotal AU Update tupla T.AUX, monto=monto – old.subtotal + new.subtotal 14 / 27

15 Implementación de Casos Atributos Derivados
d) Como atributo redundante en relación P-H modelo B: -Tipo Operación: count,max,min,sum Ej.: factura(nro,fecha,monto) monto=sum(detalle.subtotal) EVENTO FACTURA DETALLE BI monto=0 AI Update tupla FACTURA,monto=monto+subtotal BU No permito cambios en PK AU Si cambio SUBTOTAL Entonces Update tupla FACTURA, monto=monto – old.subtotal + new.subtotal AD Borro tupla en T.AUX Update tupla FACTURA, monto=monto-subtotal 15 / 27

16 Implementación de Casos Tipo – SubTipo Mutuam. Excluyente
Idem Modelo A y B Ej.: Tipo: Persona, SubTipos: Empleado, Contratista EVENTO EMPLEADO CONTRATISTA BI Si existe tupla en CONTRATISTA entonces Error! Si existe tupla en EMPLEADO entonces Error! BU Si DNI cambio entonces Si existe NEW.DNI en CONTRATISTA entonces Error! Si DNI cambio entonces Si existe NEW.DNI en EMPLEADO entonces Error!

17 Implementación de Casos Cardinalidad Maxima Modelo A
Ej.: Una factura no puede tener mas de 20 productos factura(nro,...) detalle(nro,idp,...) Contador de items (ci) en tabla auxiliar EVENTO FACTURA DETALLE BI Si factura_aux.ci >= 20 entonces Error! AI Insertar tupla en factura.aux, ci=0 factura_aux.ci = factura_aux.ci + 1 BU Si nro cambio entonces si factura_aux.ci >= 20 entonces Error! AU Si nro cambio entonces ci = ci – 1 para OLD.NRO ci = ci + 1 para NEW.NRO AD Borrar tupla en factura_aux factura_aux.ci = factura_aux.ci - 1

18 Implementación de Casos Cardinalidad Maxima Modelo B
Ej.: Una factura no puede tener mas de 20 productos factura(nro,...,ci) detalle(nro,idp,...) Contador de items (ci) en factura EVENTO FACTURA DETALLE BI ci=0 Si factura.ci >= 20 entonces Error! AI factura.ci = factura.ci + 1 BU Si nro cambio entonces si factura.ci >= 20 entonces Error! AU Si nro cambio entonces ci = ci – 1 para OLD.NRO ci = ci + 1 para NEW.NRO AD factura.ci = factura.ci - 1

19 Implementación de Casos Entidad Fuerte – Debil discriminante consecutivo ascendente Modelo A
Ej.: libro(isbn,...) ejemplar(isbn,nro,..) nro=1..N libro_aux(isbn,ue) ue=ultimo ejemplar EVENTO LIBRO EJEMPLAR BI nro=libro_aux.ue+1 AI Insertar tupla en libro_aux,ue=0 libro_aux.ue=libro_aux.ue + 1 BU No permito cambios en PK BD Si nro <> libro_aux.ue entonces Error! (borra de ultimo ejemplar hacia atras) AD Borrar tupla en libro_aux 19

20 Implementación de Casos Entidad Fuerte – Debil discriminante consecutivo ascendente Modelo B
Ej.: libro(isbn,titulo,ue) ejemplar(isbn,nro,..) nro=1..N ue=ultimo ejemplar EVENTO LIBRO EJEMPLAR BI ue=0 nro=libro.ue+1 AI libro.ue=libro.ue + 1 BU No permito cambios en PK BD Si nro <> libro.ue entonces Error! (borra de ultimo ejemplar hacia atras) AD libro.ue=libro.ue - 1

21 Estrategia de Desarrollo e Implementación: FBJR
Interfaz gráfica → Swing Framework Multiplataforma → Java Conexión a servidor FB 3.0 → Jaybird JDBC Driver Implementación de Casos, generación de código PL/SQL Ejecución código PL/SQL, exportación, importación GPL, desarrollo colaborativo, codigo abierto → SourceForge Entorno simple de desarrollo → BlueJ

22 Interfaz Grafica FBJR Asistida
Conexión Tablas Area Scripts PL/SQL Area Opciones Caso Implementacion Area Error PL/SQL Operaciones PL/SQL Mensajes

23 Limitaciones / TODO List
No soporta UNDO En algunos casos, para disminuir complejidad, no permite cambios en PK Cambios en nombres de triggers, position Sólo para FB TODO list: Tutorial, documentación usuario, ayuda on-line

24 Features Generación automática de scripts PL/SQL
Exportación, Importación, Copia, etc scripts generados Parametrizable (mensajes, idioma, etc) Permite modificar scripts generados Información detallada sobre tabla seleccionada Funciona con FB 3.0 Mutiplataforma Licencia GPL, disponible en sourceforge

25 Demo FBJReplicator Modulo Implementación Asistida FB 3

26 Guillermo Cherencio – UTN FRD
¿PREGUNTAS? ¡¡MUCHAS GRACIAS POR SU ATENCION!! Guillermo Cherencio – UTN FRD


Descargar ppt "Implementación Asistida BD Firebird/Interbase SQL Server"

Presentaciones similares


Anuncios Google