Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porJaime Ávila Peña Modificado hace 7 años
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
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.