REPOSITORIO DE METADATOS DE COMPONENTES DE

Anuncio
REPOSITORIO DE METADATOS DE COMPONENTES DE SOFTWARE
PARA PYMES COLOMBIANAS
David Ortega y Jorge A. Beltrán
Carrera de Ingeniería de Sistemas
Universidad Javeriana
Bogotá, Colombia
{david.ortega, jnull}@javeriana.edu.co
Este documento muestra el estado actual de los triggers que son los que ahora
mismo manejan la lógica del repositorio, esto se hace con el fin de ver como
podemos mejorar el desempeño de las consultas y hacer un adecuado modelo
que nos permita soportar el manejo de las versiones que pueden tener los
componentes en el repositorio.
TRIGGERS O DISPARADORES
En la Base de Datos, se definieron 36 triggers, los cuales en su totalidad son
utilizados para mantener restricciones de integridad, en operaciones DML
(INSERT, UPDATE y DELETE), y enviar mensajes de error, en la mayoría de
ellos se ejecutan select a la Base de datos los cuales pueden resultar costos
cuando la base de datos crezca.
Estos trigger se pueden optimizar:
 Agrupando las operaciones de Insert y Update o delete y update de
una misma tabla los cuales realizan la misma función.
 Verificar las relaciones entre tablas y definir los constraint de integridad
necesarios.
 Verificar si los select definidos son indispensables
Después de analizar en detalle cada uno de los triggers, se concluyo que es
importante definir todas las relaciones de integridad entre las tablas FK, para
no hacer uso de triggers, no son indispensables los select que están definidos
dentro de cada triggers, los cuales son utilizados para validar la integridad de la
información.
TD_CONTRIBUTOR:
Este trigger se dispara después de realizar un DELETE a la tabla contributor
por cada fila que borre.
Cuenta los registros existentes en la tabla xdc_contributor cuya parámetro de
comparación es el numero id_contributor con el id_contributor de la tabla
xdc_contributor que se esta borrando, si existen registros con ese identificador
entonces genera un el error 'Cannot DELETE contributor because
xdc_contributor exists.' ,
Modificación:
Este triggers será eliminado de la base de datos, pues al verificar en la tabla
xdc_contributor, existe la llave foránea SYS_C004311 a la tabla contributor
cuya FK realiza la función de integridad, en caso de realizar un delete en la
tabla contributor., el mensaje de error debe ser manejado de lado del servidor
de aplicaciones a través del manejo de excepciones, evitando así select
innecesarios que afectan los tiempos de respuesta en el procesamiento de
información.
TU_CONTRIBUTOR
Este trigger se dispara después de realizar un UPDATE a la tabla contributor
por cada fila que se actualice
Cuenta los registros existentes en la tabla xdc_contributor cuya parámetro de
comparación del numero id_contributor con el id_contributor de la tabla
contributor que se esta actualizando, si existen registros con ese identificador
entonces genera un el error
“Cannot UPDATE contributor because
xdc_contributor exists.'.
Modificación:
Este triggers será eliminado de la base de datos, pues al verificar en la tabla
xdc_contributor, existe la llave foránea a la tabla contributor cuya FK realiza la
función de integridad, en caso de realizar un update en la tabla contributor., el
mensaje de error debe ser manejado de lado del servidor de aplicaciones a
través del manejo de excepciones, evitando así select innecesarios
TD_CREATOR
Este trigger se dispara después de realizar un DELETE a la tabla creador por
cada fila que borre.
Cuenta los registros existentes en la tabla xdc_Creator cuya parámetro de
comparación del numero id_ creator con el id_ creator de la tabla creator que
se esta borrando, si existen registros con ese identificador entonces genera un
el error “Cannot DELETE creator because xdc_Creator exists.'
Modificación:
Este triggers será eliminado de la base de datos, pues al verificar en la tabla
xdc_contributor, existe la llave foránea SYS_C004313 a la tabla contributor
cuya FK realiza la función de integridad, en caso de realizar un delete en la
tabla contributor., el mensaje de error debe ser manejado de lado del servidor
de aplicaciones a través del manejo de excepciones, evitando así select
innecesarios
TU_CREATOR
Este trigger se dispara después de realizar un UPDATE a la tabla creator por
cada fila que se actualice.
Verifica que el nuevo id_creator sea diferente al anterior id_creator si esto es
verdadero, cuenta los registros existentes en la tabla xdc_ creator cuya
parámetro de comparación del numero id_ creator con el id_ creator de la tabla
creator que se esta actualizando, si existen registros con ese identificador
entonces genera un el error “Cannot UPDATE creator because xdc_Creator
exists.”
Modificación:
Este triggers será eliminado de la base de datos, pues al verificar en la tabla
xdc_contributor, existe la llave foránea SYS_C004313 a la tabla contributor
cuya FK realiza la función de integridad, en caso de realizar un update en la
tabla contributor., el mensaje de error debe ser manejado de lado del servidor
de aplicaciones a través del manejo de excepciones, evitando así select
innecesarios
TI_DATE_XDC
Este trigger se dispara después de realizar un INSERT a la tabla date_xdc por
cada fila que se inserte
Cuenta los registros existentes en la tabla xdc_sc cuya parámetro de
comparación del numero id_ xdc con el id_ xdc de la tabla date_xdc que se
esta insertando, si no existen registros con ese identificador entonces genera
un error “Cannot INSERT date_xdc because xdc_sc does not exist.'.
Modificación:
Se creara una llave foranea en la tabla xdc_sc referenciando la tabla date_xdc
con el fin de manejar la integridad y poder eliminar este triggers.
TU_DATE_XDC
Este trigger se dispara después de realizar un UPDATE a la tabla date_xdc por
cada fila que se actualice.
Cuenta los registros existentes en la tabla xdc_sc cuya parámetro de
comparación del numero id_ xdc con el nuevo id_xdc de la tabla date_xdc que
se esta actualizando, si el conteo es igual a cero entonces genera el error
“Cannot UPDATE date_xdc because xdc_sc does not exist.'”
Modificación:
Aplica la misma modificación del triggerr TI_DATE_XDC, y así poder eliminarlo.
TI_DESCRIPTION
Este trigger se dispara después de realizar un INSERT a la tabla Description
cada fila que se inserte
Cuenta los registros existentes en la tabla xdc_sc cuyo parámetro de
comparación del numero id_ xdc con el nuevo id_ xdc de la tabla Description
que se esta insertando, si no existen registros con ese identificador entonces
genera un error “'Cannot INSERT Description because xdc_sc does not exist.”
También cuenta los registros que existen en la tabla programming_language
Cuyo parámetro de comparación id_programming_language con el nuevo id_
programming_language de la tabla Description si el resultado es igual a cero se
genera el error “Cannot INSERT Description because programming_language
does not exist.”
Modificación:
Se eliminara este triggers porque ya existe una .FK en la tabla Description que
realizar la misma función del select que esta dentro del trigger.
TU_DESCRIPTION
Este trigger se dispara después de realizar un UPDATE a la tabla Description
cada fila que se actualice.
Cuenta los registros existentes en la tabla Description cuya parámetro de
comparación del numero id_ xdc con el nuevo id_xdc de la tabla Description
que se esta actualizando, si el conteo es igual a cero entonces genera el error
'Cannot UPDATE Description because xdc_sc does not exist.'
También cuenta los registros que existen en la tabla programming_language
Cuyo parámetro de comparación id_programming_language con el nuevo id_
programming_language de la tabla Description si el resultado es igual a cero se
genera el error “'Cannot UPDATE Description because programming_language
does not exist.”
Modificación:
Se eliminara este triggers porque ya existe una .FK en la tabla Description que
realizar la misma función del select que esta dentro del trigger.
Lo triggers relacionados a continuación cumplen funciones similares y
consideramos que no es necesaria su descripción en razón a la similitud con
los anteriormente descritos, en su mayoría serán eliminados
TI_FORMAT
Se eliminara porque existe un constraint de FK llamado SYS_C004304
TU_FORMAT
Se eliminara porque existe un constraint de FK llamado SYS_C004304
TD_OPERATING_SYSTEM
Se eliminara porque existe un constraint de FK llamado SYS_C004305
TU_OPERATING_SYSTEM
Se eliminara porque existe un constraint de FK llamado SYS_C004305
TD_PROGRAMMING_LANGUAGE
Se eliminara porque existe un constraint de FK llamado SYS_C004303
TU_PROGRAMMING_LANGUAGE
Se eliminara porque existe un constraint de FK llamado SYS_C004303
TD_PUBLISHER
Se eliminara porque existe un constraint de FK llamado SYS_C004315
TU_PUBLISHER
Se eliminara porque existe un constraint de FK llamado SYS_C004315
TI_RELATION
Se eliminara porque existe un constraint de FK llamado SYS_C004306
TU_RELATION
Se eliminara porque existe un constraint de FK llamado SYS_C004306
TI_RIGHTS
Se eliminara porque existe un constraint de FK llamado SYS_C004307
TU_RIGHTS
Se eliminara porque existe un constraint de FK llamado SYS_C004307
TI_SUBJECT
Se eliminara porque existe un constraint de FK llamado SYS_C004308
TU_ SUBJECT
Se eliminara porque existe un constraint de FK llamado SYS_C004308
TI_TITLE
Se eliminara porque existe un constraint de FK llamado SYS_C004309
TI_TITLE
Se eliminara porque existe un constraint de FK llamado SYS_C004309
TD_USUARIO
Se eliminara porque existe un constraint de FK llamado SYS_C004316
TU_USUARIO
Se eliminara porque existe un constraint de FK llamado SYS_C004316
TI_XDC_CONTRIBUTOR
Se eliminara porque existe un constraint de FK llamado SYS_C004311
TU_XDC_CONTRIBUTOR
Se eliminara porque existe un constraint de FK llamado SYS_C004311
TI_XDC_CREATOR
Se eliminara porque existe un constraint de FK llamado SYS_C004313
TU_XDC_CREATOR
Se eliminara porque existe un constraint de FK llamado SYS_C004313
TI_XDC_PUBLISHER
Se eliminara porque existe los constraint de FK llamados
SYS_C004314
TU_XDC_PUBLISHER
Se eliminara porque existe los constraint de FK llamados
SYS_C004314
SYS_C004315 y
SYS_C004315 y
TD_XDC_SC
Se eliminara porque existe los constraint de FK llamados
SYS_C004313,
SYS_C004302,
SYS_C004304,
SYS_C004314, SYS_C004308, SYS_C004309
TI_XDC_SC
Se eliminara porque existe los constraint de FK llamados
SYS_C004313,
SYS_C004302,
SYS_C004304,
SYS_C004314, SYS_C004308, SYS_C004309
SYS_C004301,
SYS_C004307,
SYS_C004301,
SYS_C004307,
TU_XDC_SC
Se eliminara porque existe los constraint de FK llamados SYS_C004301,
SYS_C004313,
SYS_C004302,
SYS_C004304,
SYS_C004307,
SYS_C004314, SYS_C004308, SYS_C004309
Documentos relacionados
Descargar