BASES DE DATOS ACTIVAS INTRODUCCIÓN. RESTRICCIONES DE INTEGRIDAD Y REGLAS DE NEGOCIO. TRANSACCIONES. BASES DE DATOS ACTIVAS. CONCEPTOS. GESTOR PASIVO VS. ACTIVO. VENTAJAS. APLICACIONES. REGLAS EN BASES DE DATOS RELACIONALES. LAS REGLAS DE CODD PARA SISTEMAS GESTORES DE BASES DE DATOS RELACIONALES. LIMITACIONES DEL MODELO RELACIONAL. BD RELACIONALES Y ACTIVAS 1
INTRODUCCIÓN BD RELACIONALES Y ACTIVAS 2
INTRODUCCIÓN EL MODELO DE DATOS RELACIONAL FUE INTRODUCIDO POR TED CODD, DE IBM, EN 1970. SE BASA EN LOS CONCEPTOS DE: RELACIÓN MATEMÁTICA. TEORÍA DE CONJUNTOS. LÓGICA DE PREDICADOS DE PRIMER ORDEN. BD RELACIONALES Y ACTIVAS 3
INTRODUCCIÓN DATO OPERATIVO: TODO ELEMENTO DE INFORMACIÓN QUE NECESITA UNA ORGANIZACIÓN PARA SU FUNCIONAMIENTO. INDEPENDENCIA FÍSICA: EL ALMACENAMIENTO FÍSICO DE LOS DATOS DEBE SER INDEPENDIENTE DEL DISEÑO LÓGICO DE LA BF A TODOS LOS NIVELES. INDEPENDENCIA LÓGICA: LA PERCEPCIÓN QUE CADA PROGRAMA TIENE DE LA ESTRUCTURA LÓGICA DE LA BD (VISTA DE USUARIO) DEBE PERMANECER INMUTABLE A NIVEL LÓGICO EN DICHA ESTRUCTURA. ENTIDADES: UNA ENTIDAD SE DEFINE COMO UN OBJETO QUE EXISTE Y QUE ES DISTINGUIBLE DE LOS DEMÁS: EJ.: UN EMPLEADO, UN LIBRO, UN DEPARTAMENTO. BD RELACIONALES Y ACTIVAS 4
INTRODUCCIÓN ATRIBUTOS: SON LAS PROPIEDADES QUE CARACTERIZAN UN CONJUNTO DE ENTIDADES. DEPENDENCIA EXISTENCIAL: SEAN A Y B DOS CONJUNTOS DE ENTIDADES. SE DICE QUE B DEPENDE EXISTENCIALMENTE DE A SI CUMPLE: T ϵ A X B / b ϵ B a ϵ A / (a, b) ϵ T. ES IMPOSIBLE IDENTIFICAR A b SIN IDENTIFICAR PREVIAMENTE A a. ASOCIACIONES O RELACIONES: UNA RELACIÓN ES UNA CONEXIÓN SEMÁNTICA ENTRE DOS O MÁS CONJUNTOS DE ENTIDADES. ESPECIALIZACIÓN: SE DIRÁ QUE EL CONJUNTO DE ENTIDADES A ES UNA ESPECIALIZACIÓN DEL CONJUNTO DE ENTIDADES B SI a ϵ A a ϵ B. EL CONJUNTO DE ENTIDADES A ESTÁ INCLUIDO EN EL CONJUNTO DE ENTIDADES B. BD RELACIONALES Y ACTIVAS 5
INTRODUCCIÓN BD RELACIONALES Y ACTIVAS 6
INTRODUCCIÓN BD RELACIONALES Y ACTIVAS 7
INTRODUCCIÓN BD RELACIONALES Y ACTIVAS 8
INTRODUCCIÓN BD RELACIONALES Y ACTIVAS 9
INTRODUCCIÓN BD RELACIONALES Y ACTIVAS 10
RESTRICCIONES DE INTEGRIDAD Y REGLAS DE NEGOCIO BD RELACIONALES Y ACTIVAS 11
RESTRICCIONES DE INTEGRIDAD Y REGLAS DE NEGOCIO SQL PERMITE INCORPORAR LA DEFINICIÓN DE RESTRICCIONES EN LA DEFINICIÓN DE LA TABLA: EL SISTEMA CONTROLARÁ LA INTEGRIDAD DE LOS DATOS QUE SE CARGUEN. LAS RESTRICCIONES PUEDEN SER. DE INTEGRIDAD DE ENTIDAD Y REFERENCIAL. ESPECÍFICAS. EJ.: RESTRICCIÓN DE CLAVE PRIMARIA PARA LA COLUMNA DNI DE LA TABLA ALUMNOS: CREATE TABLE alumnos ( ); DNI CHAR (8) PRIMARY KEY, nom_alum VARCHAR2 (35), fecha_nac DATE, direccion VARCHAR2 (30), provincia VARCHAR2 (20), beca VARCHAR2 (2) BD RELACIONALES Y ACTIVAS 12
RESTRICCIONES DE INTEGRIDAD Y REGLAS DE NEGOCIO EJ.: RESTRICCIONES DE INTEGRIDAD ASOCIADAS A LA TABLA PARA UN CONJUNTO DE COLUMNAS: CREATE TABLE matriculas ( ); cod_asig CHAR (4), cod_grup CHAR (4), tipo CHAR (1), DNI CHAR (8), convocatoria NUMBER, calificacion NUMBER, PRIMARY KEY (cod_asig, cod_grup, tipo, DNI, convocatoria) BD RELACIONALES Y ACTIVAS 13
RESTRICCIONES DE INTEGRIDAD Y REGLAS DE NEGOCIO EJ.: RESTRICCIÓN DE UNICIDAD DE LOS VALORES DE UNA COLUMNA: CREATE TABLE asignaturas ( ); cod_asig CHAR (4) PRIMARY KEY, nom_asig VARCHAR2 (30) UNIQUE, creditos NUMBER (4, 1), caracter CHAR (2), curso NUMBER BD RELACIONALES Y ACTIVAS 14
RESTRICCIONES DE INTEGRIDAD Y REGLAS DE NEGOCIO EJ.: RESTRICCIÓN DE VALORES NULOS: CREATE TABLE profesores ( NRP CHAR (8) PRIMARY KEY, nom_prof VARCHAR2 (35) NOT NULL, categoria CHAR (4), area VARCHAR2 (20), cod_dep CHAR (4) ); BD RELACIONALES Y ACTIVAS 15
RESTRICCIONES DE INTEGRIDAD Y REGLAS DE NEGOCIO EJ.: RESTRICCIÓN DE RANGO DE VALORES PERMITIDOS EN UNA COLUMNA: CREATE TABLE aulas ( ); cod_aula CHAR (4) PRIMARY KEY, capacidad NUMBER CHECK (capacidad BETWEEN 0 AND 150) BD RELACIONALES Y ACTIVAS 16
RESTRICCIONES DE INTEGRIDAD Y REGLAS DE NEGOCIO EJEMPLOS: DEFINICIÓN DE CLAVES EXTERNAS PARA RELACIONAR COLUMNAS DE DISTINTAS TABLAS (INTEGRIDAD REFERENCIAL): CREATE TABLE matriculas ( ); cod_asig CHAR (4), cod_grup CHAR (4), tipo CHAR (1), DNI CHAR (8) REFERENCES alumnos (DNI), convocatoria NUMBER, calificacion NUMBER, PRIMARY KEY (cod_asig, cod_grup, tipo, DNI, convocatoria), FOREING KEY (cod_asig, cod_grup, tipo) grupos (cod_asig, cod_grup, tipo) REFERENCES BD RELACIONALES Y ACTIVAS 17
RESTRICCIONES DE INTEGRIDAD Y REGLAS DE NEGOCIO CREATE TABLE grupos ( ); cod_asig CHAR (4), cod_grup CHAR (4), tipo CHAR (1) CHECK (Tipo IN ( T, P )), NRP CHAR (4), max_al INT CHECK (max_al BETWEEN 10 AND 150), PRIMARY KEY (cod_asig, cod_grup, tipo), FOREING KEY cod_asig REFERENCES asignaturas (cod_asig), FOREING KEY NRP REFERENCES profesores (NRP), BD RELACIONALES Y ACTIVAS 18
RESTRICCIONES DE INTEGRIDAD Y REGLAS DE NEGOCIO EJ.: DEFINICIÓN DE VALORES POR DEFECTO: CREATE TABLE matriculas ( ); cod_asig CHAR (4), cod_grup CHAR (4), tipo CHAR (1), DNI CHAR (8) REFERENCES alumnos (DNI), convocatoria NUMBER DEFAULT 1, calificacion NUMBER CONSTRAINT restric-rangocalif CHECK ((calificacion>=0) AND (calificacion <=10)), PRIMARY KEY (cod_asig, cod_grup, tipo, DNI, convocatoria), FOREING KEY (cod_asig, cod_grup, tipo) grupos (cod_asig, cod_grup, tipo) REFERENCES BD RELACIONALES Y ACTIVAS 19
RESTRICCIONES DE INTEGRIDAD Y REGLAS DE NEGOCIO BD RELACIONALES Y ACTIVAS 20
RESTRICCIONES DE INTEGRIDAD Y REGLAS DE NEGOCIO BD RELACIONALES Y ACTIVAS 21
RESTRICCIONES DE INTEGRIDAD Y REGLAS DE NEGOCIO BD RELACIONALES Y ACTIVAS 22
RESTRICCIONES DE INTEGRIDAD Y REGLAS DE NEGOCIO BD RELACIONALES Y ACTIVAS 23
TRANSACCIONES BD RELACIONALES Y ACTIVAS 24
TRANSACCIONES TRANSACCIÓN ES UN CONJUNTO DE OPERACIONES DE MANIPULACIÓN DE DATOS QUE DEBEN SER CONSIDERADAS COMO UNA UNIDAD.: ES UNA UNIDAD ATÓMICA DE TRABAJO QUE SE REALIZA POR COMPLETO O BIEN NO SE EFECTÚA EN ABSOLUTO. EL GESTOR DE RECUPERACIÓN DEL SGBD DEBE MANTENERSE AL TANTO DE LAS SIGUIENTES OPERACIONES: BEGIN_TRANSACTION (inicio_de_transacción): MARCA EL PRINCIPIO DE LA EJECUCIÓN DE LA TRANSACCIÓN. READ (leer) o WRITE (escribir): ESPECIFICAN OPERACIONES DE LECTURA O ESCRITURA DE ELEMENTOS DE LA BD QUE SE EJECUTAN COMO PARTE DE LA TRANSACCIÓN. BD RELACIONALES Y ACTIVAS 25
TRANSACCIONES END_TRANSACTION (fin_de_transacción): ESPECIFICA QUE LAS OPERACIONES DE LEER O ESCRIBIR DE LA TRANSACCIÓN HAN TERMINADO Y MARCA EL FIN DE LA EJECUCIÓN DE LA TRANSACCIÓN. PUEDE SER NECESARIO VERIFICAR: SI LOS CAMBIOS INTRODUCIDOS SE PUEDEN APLICAR PERMANENTEMENTE A LA BD (CONFIRMAR). SI LA TRANSACCIÓN PUEDE ABORTAR PORQUE VIOLA LA SERIABILIDAD O POR ALGUNA OTRA RAZÓN. COMMIT_TRANSACTION (confirmar_transacción):. SEÑALA QUE: LA TRANSACCIÓN TERMINÓ CON ÉXITO. LAS ACTUALIZACIONES EJECUTADAS SE PUEDEN CONFIRMAR SIN PELIGRO EN LA BD Y QUE NO SE DESHARÁN. BD RELACIONALES Y ACTIVAS 26
TRANSACCIONES ROLLBACK (restaurar) O ABORT (abortar): INDICAN QUE: LA TRANSACCIÓN TERMINÓ SIN ÉXITO. CUALQUIER CAMBIO O EFECTO QUE PUEDA HABERSE APLICADO A LA BD SE DEBE DESHACER. BD RELACIONALES Y ACTIVAS 27
TRANSACCIONES PROPIEDADES DESEABLES DE LAS TRANSACCIONES SON LAS PROPIEDADES ACID (INICIALES EN INGLÉS): ATOMICIDAD: UNA TRANSACCIÓN ES UNA UNIDAD ATÓMICA (INDIVISIBLE) DE PROCESAMIENTO. CONSERVACIÓN DE LA CONSISTENCIA: SE CONSERVA LA CONSISTENCIA SI LA EJECUCIÓN COMPLETA DE LA TRANSACCIÓN LLEVA LA BD DE UN ESTADO CONSISTENTE A OTRO TAMBIÉN CONSISTENTE. AISLAMIENTO: LA EJECUCIÓN DE UNA TRANSACCIÓN NO DEBERÍA INTERFERIR CON OTRAS TRANSACCIONES QUE SE EJECUTEN CONCURRENTEMENTE. DURABILIDAD O PERMANENCIA: LOS CAMBIOS APLICADOS A LA BD POR UNA TRANSACCIÓN CONFIRMADA DEBEN PERDURAR EN LA BD. BD RELACIONALES Y ACTIVAS 28
TRANSACCIONES BD RELACIONALES Y ACTIVAS 29
BASES DE DATOS ACTIVAS CONCEPTOS BD RELACIONALES Y ACTIVAS 30
BASES DE DATOS ACTIVAS CONCEPTOS LAS BD CONVENCIONALES SE CONSIDERAN MUERTAS O PASIVAS: NO PUEDEN MANEJAR CIERTAS SITUACIONES. EJ.: ACTUALIZAR LAS RUTAS DE UN AUTOBÚS ESCOLAR CON CADA INCORPORACIÓN DE NUEVOS ALUMNOS A LA ESCUELA: SUPERVISAR CADA MATRÍCULA NUEVA. COMPROBAR PERIÓDICAMENTE LAS DIRECCIONES DE LOS ALUMNOS MATRICULADOS. SON NECESARIAS LAS BD ACTIVAS: INCORPORAN COMPORTAMIENTO ACTIVO: COMPORTAMIENTO ACTIVO = CUÁNDO + QUÉ. BD RELACIONALES Y ACTIVAS 31
BASES DE DATOS ACTIVAS CONCEPTOS EJ. DE COMPORTAMIENTO ACTIVO: GESTIÓN DE STOCKS: CUANDO ITEM < 10 ENTONCES SOLICITAR NUEVO ITEM AL PROVEEDOR. PRODUCTOS PERECEDEROS: CUANDO PRODUCTO.CADUCA - FECHA_ACTUAL < 7 ENTONCES REDUCIR EL PRECIO DEL PRODUCTO. GESTIÓN DE AUTOBUSES: CUANDO AUTOBÚS LLENO Y FALTE MÁS DE UNA SEMANA PARA EL VIAJE ENTONCES PONER AUTOBÚS ADICIONAL. BD RELACIONALES Y ACTIVAS 32
GESTOR PASIVO VS. ACTIVO VENTAJAS BD RELACIONALES Y ACTIVAS 33
GESTOR PASIVO VS. ACTIVO VENTAJAS COMPORTAMIENTO ACTIVO EN APLICACIONES QUE ACCEDEN A BD: BD RELACIONALES Y ACTIVAS 34
GESTOR PASIVO VS. ACTIVO VENTAJAS COMPORTAMIENTO ACTIVO EN UNA APLICACIÓN ESPECÍFICA: BD RELACIONALES Y ACTIVAS 35
GESTOR PASIVO VS. ACTIVO VENTAJAS COMPORTAMIENTO ACTIVO EN LA PROPIA BD ACTIVA: BD RELACIONALES Y ACTIVAS 36
GESTOR PASIVO VS. ACTIVO VENTAJAS MANIFIESTO DE LAS BASES DE DATOS ACTIVAS (1996): CARACTERÍSTICAS DE UN SGBD ACTIVO: TIENE UN MODELO DE REGLAS ECA. SOPORTA LA GESTIÓN DE REGLAS Y LA EVOLUCIÓN DE LA BASE DE DATOS. CARACTERÍSTICAS DE EJECUCIÓN DE REGLAS ECA: EL SGBD TIENE UN MODELO DE EJECUCIÓN. OFRECE DIFERENTES MODELOS DE ACOPLAMIENTO. IMPLEMENTA MODOS DE CONSUMO. GESTIONA LA HISTORIA DE EVENTOS. IMPLEMENTA LA RESOLUCIÓN DE CONFLICTOS. CARACTERÍSTICAS DE APLICACIÓN Y USABILIDAD: POSEE UN ENTORNO DE PROGRAMACIÓN. ES AJUSTABLE. BD RELACIONALES Y ACTIVAS 37
GESTOR PASIVO VS. ACTIVO VENTAJAS BD RELACIONALES Y ACTIVAS 38
GESTOR PASIVO VS. ACTIVO VENTAJAS MODELO DE CONOCIMIENTO: DESCRIBE LA SITUACIÓN Y LA REACCIÓN CORRESPONDIENTE (REGLAS ECA). MODELO DE EJECUCIÓN: REALIZA UN SEGUIMIENTO DE LA SITUACIÓN Y GESTIONA EL COMPORTAMIENTO ACTIVO (CÓMO SE COMPORTAN LAS REGLAS EN TIEMPO DE EJECUCIÓN). BD RELACIONALES Y ACTIVAS 39
GESTOR PASIVO VS. ACTIVO VENTAJAS SQL Y LAS BD ACTIVAS CONSTRAINTS: ESPECIFICACIONES DEL DDL QUE SE APLICAN A COLUMNAS O TABLAS. CONVIENE DARLES NOMBRE. PUEDEN USAR UNIQUE, NOT NULL, REFERENCES, CHECK. ASERCIONES (ASSERTIONS): RESTRICCIÓN QUE NO TIENE POR QUÉ ESTAR ASOCIADA A UNA ÚNICA TABLA. TRIGGERS (DISPARADORES): ASERCIONES CON ACCIONES ASOCIADAS. BD RELACIONALES Y ACTIVAS 40
GESTOR PASIVO VS. ACTIVO VENTAJAS VENTAJAS: MAYOR PRODUCTIVIDAD. MEJOR MANTENIMIENTO. REUTILIZACIÓN DE CÓDIGO. REDUCCIÓN DEL TRÁFICO DE MENSAJES. BD RELACIONALES Y ACTIVAS 41
APLICACIONES DE LOS SGBD ACTIVOS BD RELACIONALES Y ACTIVAS 42
APLICACIONES DE LOS SGBD ACTIVOS INTERNAS: CLÁSICAS DE LA UTILIZACIÓN O ADMINISTRACIÓN DE BD. CONTROL DE INTEGRIDAD (ON UPDATE CASCADE). MANTENIMIENTO DE DATOS DERIVADOS (VISTAS). ADMINISTRACIÓN DE COPIAS (MONITORIZAR Y REGISTRAR CAMBIOS). SEGURIDAD Y AUDITORÍA. GESTIÓN DE VERSIONES. EXTERNAS: REGLAS DE NEGOCIO (EJ.: RUTAS DE AUTOBÚS). BD RELACIONALES Y ACTIVAS 43
APLICACIONES DE LOS SGBD ACTIVOS NOTIFICACIÓN CUANDO OCURREN CIERTAS CONDICIONES. REFORZAR LAS RESTRICCIONES DE INTEGRIDAD: LOS DISPARADORES SON MÁS INTELIGENTES Y MÁS POTENTES QUE LAS RESTRICCIONES. MANTENIMIENTO DE DATOS DERIVADOS: ACTUALIZACIÓN AUTOMÁTICA DE DATOS DERIVADOS EVITANDO ANOMALÍAS DEBIDAS A LA REDUNDANCIA: EJEMPLO: UN DISPARADOR ACTUALIZA EL SALDO TOTAL DE UN CUENTA BANCARIA CADA VEZ QUE SE INSERTA, ELIMINA O MODIFICA UN MOVIMIENTO EN DICHA CUENTA. BD RELACIONALES Y ACTIVAS 44
APLICACIONES DE LOS SGBD ACTIVOS MODELO DEL CONOCIMIENTO: DEFINIR QUÉ Y CUÁNDO. REGLAS ECA EVENTO CONDICIÓN ACCIÓN: EVENTO: QUÉ DISPARA LA ACCIÓN. CONDICIÓN: ESTADO QUE DEBE DARSE. ACCIÓN: QUÉ SE HACE. BD RELACIONALES Y ACTIVAS 45
APLICACIONES DE LOS SGBD ACTIVOS EVENTO FUENTE: QUÉ OCASIONA LA OCURRENCIA DE UN EVENTO?: UNA INSTRUCCIÓN DEL LMD (ANTES O DESPUÉS): INSERT, DELETE, UPDATE, SELECT. UNA INSTRUCCIÓN PARA LA GESTIÓN DE TRANSACCIONES: COMMIT, ABORT. UNA EXCEPCIÓN: VIOLACIÓN DE AUTORIZACIONES, BLOQUEOS, ETC. EL RELOJ: EL 28 DE MAYO A LAS 19:30H. LA APLICACIÓN (EXTERNO A LA BD). BD RELACIONALES Y ACTIVAS 46
APLICACIONES DE LOS SGBD ACTIVOS GRANULARIDAD: QUÉ CAMBIOS CONSIDERA UNA OCURRENCIA DEL EVENTO?: CAMBIOS EN SÓLO UNA TUPLA (DISPARADORES A NIVEL DE FILA): 1 TUPLA : 1 EVENTO. CAMBIOS EN TODAS LAS TUPLAS (DISPARADORES A NIVEL DE SENTENCIA): 0..N TUPLAS : 1 EVENTO. BD RELACIONALES Y ACTIVAS 47
APLICACIONES DE LOS SGBD ACTIVOS CONDICIÓN Y ACCIÓN CONDICIÓN: UN PREDICADO SOBRE LA BD: CONSULTA. PUEDE SER OPCIONAL (SI NO SE INCLUYE SE CONSIDERA QUE LA CONDICIÓN ES SIEMPRE CIERTA). ACCIÓN: QUÉ SE PUEDE INCLUIR EN LA REACCIÓN?. OPERACIÓN EN LA BD (ÓRDENES DE SQL, INSERT, DELETE, ). COMANDOS DE SQL EXTENDIDO (EJ.: PL/SQL). LLAMADAS EXTERNAS (ENVÍO DE MENSAJES). ABORTAR LA TRANSACCIÓN. HACER EN LUGAR DE (INSTEAD-OF). BD RELACIONALES Y ACTIVAS 48
APLICACIONES DE LOS SGBD ACTIVOS EJEMPLO: BD RELACIONALES Y ACTIVAS 49
APLICACIONES DE LOS SGBD ACTIVOS MODELO DE EJECUCIÓN: BD RELACIONALES Y ACTIVAS 50
APLICACIONES DE LOS SGBD ACTIVOS EJECUCIÓN EN GENERAL, LA FORMA EN QUE SE EJECUTAN DICHAS FASES DEPENDE DE DOS MODOS DE ACOPLAMIENTO: EVENTO VS CONDICIÓN. CONDICIÓN VS ACCIÓN. BD RELACIONALES Y ACTIVAS 51
APLICACIONES DE LOS SGBD ACTIVOS PARA AMBOS MODOS LAS OPCIONES SON: INMEDIATO (INMEDIATE): LA CONDICIÓN SE EVALÚA INMEDIATAMENTE DESPUÉS DEL EVENTO. LA ACCIÓN SE EJECUTA INMEDIATAMENTE DESPUÉS DE LA CONDICIÓN. DIFERIDO (DEFERRED): LA CONDICIÓN SE EVALÚA AL FINAL DE LA TRANSACCIÓN. LA ACCIÓN SE EJECUTA AL FINAL DE LA TRANSACCIÓN. DESPRENDIDO (DETACHED): LA CONDICIÓN SE EVALÚA EN UNA TRANSACCIÓN DIFERENTE. LA ACCIÓN SE EJECUTA EN UNA TRANSACCIÓN DIFERENTE. BD RELACIONALES Y ACTIVAS 52
APLICACIONES DE LOS SGBD ACTIVOS EJEMPLO: BD RELACIONALES Y ACTIVAS 53
APLICACIONES DE LOS SGBD ACTIVOS EJEMPLO: BD RELACIONALES Y ACTIVAS 54
APLICACIONES DE LOS SGBD ACTIVOS EJEMPLO: BD RELACIONALES Y ACTIVAS 55
REGLAS EN BD RELACIONALES BD RELACIONALES Y ACTIVAS 56
REGLAS EN BD RELACIONALES DISPARADOR (TRIGGER) ESTÁ ASOCIADO A UNA ÚNICA TABLA BASE. ES EL CONCEPTO CLAVE PARA IMPLEMENTAR BD ACTIVAS. TIENE TRES PARTES: UN EVENTO: INDICA LA ACCIÓN SOBRE LA TABLA BASE QUE CAUSARÁ QUE SE ACTIVE EL DISPARADOR: INSERT, DELETE, O UPDATE. UN TIEMPO DE ACCIÓN: INDICA CUÁNDO SE ACTIVARÁ EL DISPARO: BEFORE => ANTES DEL EVENTO. AFTER => DESPUÉS DEL EVENTO. UNA ACCIÓN: SE LLEVAN A CABO SI OCURRE EL EVENTO. PUEDE SER DE DOS TIPOS: UNA SENTENCIA SQL EJECUTABLE (SQL EXECUTABLE STATEMENT). UN BLOQUE ATÓMICO DE SENTENCIAS SQL EJECUTABLES. BD RELACIONALES Y ACTIVAS 57
REGLAS EN BD RELACIONALES EJEMPLO EN SQL 2003: GRANULARIDAD DE FILA: BD RELACIONALES Y ACTIVAS 58
REGLAS EN BD RELACIONALES EJEMPLO EN SQL 2003: GRANULARIDAD DE SENTENCIA (TABLA): BD RELACIONALES Y ACTIVAS 59
LAS REGLAS DE CODD PARA SGBD RELACIONALES BD RELACIONALES Y ACTIVAS 60
LAS REGLAS DE CODD PARA SGBD RELACIONALES REGLA 0: REGLA BÁSICA CUALQUIER SISTEMA QUE SE ANUNCIE COMO SISTEMA GESTOR DE BD RELACIONALES, SGBDR, DEBE SER CAPAZ DE GESTIONAR POR COMPLETO LAS BD UTILIZANDO SUS CAPACIDADES RELACIONALES. UN SGBDR NO DEBE RECURRIR A OPERACIONES NO RELACIONALES PARA COMPLETAR SUS CAPACIDADES DE GESTIÓN DE DATOS. BD RELACIONALES Y ACTIVAS 61
LAS REGLAS DE CODD PARA SGBD RELACIONALES REGLA 1: REPRESENTACIÓN DE LA INFORMACIÓN TODA INFORMACIÓN ALMACENADA EN UNA BD RELACIONAL DEBE SER REPRESENTADA DE FORMA EXPLÍCITA Y ÚNICA A NIVEL LÓGICO, POR MEDIO DE VALORES EN TABLAS. TODA LA INFORMACIÓN DE LAS BD DEBE ESTAR ALMACENADA EN FORMA DE RELACIONES: SE REFIERE AL NIVEL LÓGICO. LA INFORMACIÓN NECESARIA PARA EL FUNCIONAMIENTO DE LA BD SE REPRESENTA MEDIANTE TABLAS: CONSTITUYE EL CATÁLOGO DEL SISTEMA. BD RELACIONALES Y ACTIVAS 62
LAS REGLAS DE CODD PARA SGBD RELACIONALES REGLA 2: ACCESO GARANTIZADO TODO DATO (VALOR ATÓMICO) DEBE SER ACCESIBLE MEDIANTE LA COMBINACIÓN DE UN NOMBRE DE TABLA, UN VALOR DE SU CLAVE Y EL NOMBRE DE UNA COLUMNA. LOS DATOS NO SE REFERENCIAN POR SU POSICIÓN FÍSICA. SE HACE ESPECIAL HINCAPIÉ EN LA IMPORTANCIA DE LAS CLAVES PRIMARIAS (O DE LAS CLAVES CANDIDATAS EN GENERAL). REGLA 3: TRATAMIENTO SISTEMÁTICO DE VALORES NULOS SE OFRECE EL VALOR NULO PARA DAR SOPORTE A LA REPRESENTACIÓN DE INFORMACIÓN DESCONOCIDA O INAPLICABLE DE FORMA SISTEMÁTICA, INDEPENDIENTEMENTE DEL TIPO DE DATO. LOS VALORES NULOS REPRESENTAN EL DESCONOCIMIENTO DE UN VALOR. BD RELACIONALES Y ACTIVAS 63
LAS REGLAS DE CODD PARA SGBD RELACIONALES REGLA 4: CATÁLOGO DINÁMICO EN LÍNEA BASADO EN EL MODELO RELACIONAL LA DESCRIPCIÓN DE LA BD SE DEBE REPRESENTAR EN EL NIVEL LÓGICO DE LA MISMA MANERA QUE LOS DATOS ORDINARIOS, DE FORMA QUE LOS USUARIOS AUTORIZADOS PUEDAN CONSULTARLA UTILIZANDO EL MISMO LENGUAJE RELACIONAL QUE USAN PARA ACCEDER A LOS DATOS NORMALES. UNA BD RELACIONAL DEBE SER AUTODESCRIPTIVA. EL MODELO DE DATOS PARA LOS METADATOS DEBE SER RELACIONAL. BD RELACIONALES Y ACTIVAS 64
LAS REGLAS DE CODD PARA SGBD RELACIONALES REGLA 5: SUBLENGUAJE DE DATOS COMPLETO EL SISTEMA RELACIONAL DEBE INCLUIR, AL MENOS, UN LENGUAJE QUE PERMITA EXPRESAR LOS SIGUIENTES ELEMENTOS: DEFINICIÓN DE DATOS, DEFINICIÓN DE VISTAS, MANIPULACIÓN DE DATOS (INTERACTIVA Y PROGRAMADA), RESTRICCIONES DE INTEGRIDAD, AUTORIZACIONES Y CONTROL DE TRANSACCIONES. EL LENGUAJE SQL APORTA TODAS ESTAS FUNCIONES. REGLA 6: ACTUALIZACIÓN DE VISTAS TODA VISTA TEÓRICAMENTE ACTUALIZABLE DEBE PODER ACTUALIZARSE EN EL SISTEMA. LAS VISTAS SE PRESENTAN AL USUARIO COMO TABLAS VIRTUALES. SE DEBE PODER ACTUALIZAR LAS VISTAS DE IGUAL MANERA QUE LAS TABLAS. BD RELACIONALES Y ACTIVAS 65
LAS REGLAS DE CODD PARA SGBD RELACIONALES REGLA 7: INSERCIÓN, MODIFICACIÓN Y ELIMINACIÓN DE ALTO NIVEL LA CAPACIDAD DE MANEJAR UNA RELACIÓN O UNA VISTA COMO OPERANDO ÚNICO DEBE EXISTIR, NO SÓLO AL RECUPERAR LA INFORMACIÓN, SINO TAMBIÉN EN LA INSERCIÓN, LA ACTUALIZACIÓN Y EL BORRADO DE DATOS. TODAS LAS OPERACIONES DE MANIPULACIÓN DE DATOS DEBEN OPERAR SOBRE CONJUNTOS DE FILAS. REGLA 8: INDEPENDENCIA FÍSICA DE LOS DATOS LOS PROGRAMAS DE APLICACIÓN Y LAS ACTIVIDADES TERMINALES DE LA BD DEBEN MANTENERSE INALTERADOS DESDE EL PUNTO DE VISTA LÓGICO, SEAN CUALES SEAN LOS CAMBIOS QUE SE INTRODUZCAN EN LOS MECANISMOS DE ALMACENAMIENTO Y ACCESO DE LA BD. EL ACCESO LÓGICO A LOS DATOS DEBE MANTENERSE INCLUSO CUANDO CAMBIEN LOS MÉTODOS DE ACCESO O LA FORMA DE ALMACENAMIENTO. BD RELACIONALES Y ACTIVAS 66
LAS REGLAS DE CODD PARA SGBD RELACIONALES REGLA 9: INDEPENDENCIA LÓGICA DE LOS DATOS LOS PROGRAMAS DE APLICACIÓN Y LAS ACTIVIDADES TERMINALES DE LA BD NO DEBEN VERSE AFECTADAS POR AQUELLOS CAMBIOS QUE PRESERVEN LA INFORMACIÓN Y QUE, DESDE EL PUNTO DE VISTA TEÓRICO, ESTÉN PERMITIDOS. NO HABRÁ QUE MODIFICAR LOS PROGRAMAS DE APLICACIÓN AUNQUE SE REALICEN CAMBIOS SOBRE LAS TABLAS, SIEMPRE QUE ESOS CAMBIOS MANTENGAN LA INFORMACIÓN QUE EN ELLAS HUBIESE. REGLA 10: INDEPENDENCIA DE LA INTEGRIDAD LAS REGLAS DE INTEGRIDAD DE UNA BD DETERMINADA DEBEN SER DEFINIBLES POR MEDIO DEL SUBLENGUAJE DE DATOS RELACIONAL Y HAN DE ALMACENARSE EN EL CATÁLOGO DE LA BD, NO EN LOS PROGRAMAS DE APLICACIÓN. LAS RESTRICCIONES DE INTEGRIDAD DEBEN FORMAR PARTE DEL CATÁLOGO. BD RELACIONALES Y ACTIVAS 67
LAS REGLAS DE CODD PARA SGBD RELACIONALES REGLA 11: INDEPENDENCIA DE LA DISTRIBUCIÓN DEBE EXISTIR UN SUBLENGUAJE DE DATOS QUE PUEDA SOPORTAR BD DISTRIBUIDAS SIN QUE HAYA QUE ALTERAR LOS PROGRAMAS DE APLICACIÓN CUANDO SE DISTRIBUYEN LOS DATOS POR PRIMERA VEZ O SE REDISTRIBUYEN ESTOS CON POSTERIORIDAD. SE DEBE PRESENTAR LOS DATOS AL USUARIO FINAL COMO SI ESTOS ESTUVIERAN CENTRALIZADOS EN UNA MÁQUINA. SI EL SISTEMA PUEDE TRABAJAR CON BD DISTRIBUIDAS EL LENGUAJE DE MANIPULACIÓN DE DATOS NO DEBE VERSE AFECTADO POR ELLO. BD RELACIONALES Y ACTIVAS 68
LAS REGLAS DE CODD PARA SGBD RELACIONALES REGLA 12: REGLA DE LA NO SUBVERSIÓN SI UN SGBD SOPORTA UN LENGUAJE DE BAJO NIVEL QUE PERMITE EL ACCESO FILA A FILA, ÉSTE NO PUEDE UTILIZARSE PARA SALTARSE LAS REGLAS DE INTEGRIDAD Y LAS RESTRICCIONES EXPRESADAS POR MEDIO DEL LENGUAJE DE MÁS ALTO NIVEL. EL SGBD DEBE CONTROLAR TODOS LOS ACCESOS A LA BD PARA QUE NO SE PUEDA COMPROMETER LA INTEGRIDAD DE LA MISMA. BD RELACIONALES Y ACTIVAS 69
LAS REGLAS DE CODD PARA SGBD RELACIONALES CLASIFICACIÓN DE LAS DOCE REGLAS DE CODD: BD RELACIONALES Y ACTIVAS 70
LIMITACIONES DEL MODELO RELACIONAL BD RELACIONALES Y ACTIVAS 71
LIMITACIONES DEL MODELO RELACIONAL EL MODELO RELACIONAL TIENE DIFICULTADES EN APLICACIONES QUE MANEJAN GRAN VARIEDAD DE TIPOS DE DATOS DE CIERTA COMPLEJIDAD, POR EJ.: TEXTOS EN APLICACIONES DE GENERACIÓN DE PUBLICACIONES. IMÁGENES EN APLICACIONES QUE ANALIZAN INFORMACIÓN VISUAL (EJ.: PREDICCIONES METEOROLÓGICAS). DATOS COMPLEJOS NO CONVENCIONALES EN APLICACIONES DE DISEÑO (EJ.: CAD/CAM). INFORMACIÓN MULTIMEDIA EN GENERAL. BD RELACIONALES Y ACTIVAS 72
LIMITACIONES DEL MODELO RELACIONAL ALGUNAS DE LAS LIMITACIONES DEL MODELO RELACIONAL SON: OBJETOS COMPLETOS: POBRE FORMA DE REPRESENTACIÓN DE OBJETOS COMPLEJOS DEBIDO A: PRIMERA FORMA NORMAL USO EXCLUSIVO DE VALORES ATÓMICOS EN LOS ATRIBUTOS DE LAS RELACIONES. FALTA DE RELACIONES ANIDADAS. ESTRUCTURACIÓN: NO OFRECE UN SOPORTE ADECUADO CUANDO EN EL ESQUEMA APARECEN: ESTRUCTURAS RECURSIVAS O ANIDADAS. COLECCIONES DE DATOS QUE CORRESPONDIENDO AL MISMO TIPO DE ENTIDAD TIENEN UN TIPO SIMILAR PERO NO IDÉNTICO. DATOS ALTAMENTE RELACIONADOS: LA DESCOMPOSICIÓN EN MÚLTIPLES TABLAS COMPLICA SU RECUPERACIÓN Y LA ENLENTECE. BD RELACIONALES Y ACTIVAS 73
LIMITACIONES DEL MODELO RELACIONAL CREACIÓN DE TIPOS: LA CAPACIDAD DE CREACIÓN DE TIPOS DE DATOS ESTÁ MUY LIMITADA: LA GESTIÓN DE OBJETOS MULTIMEDIA ES MUY PRIMITIVA (EJ.: OBJETOS GRANDES EN BINARIO: BLOB). EL SOPORTE PARA INFORMACIÓN SEMI-ESTRUCTURADA ES DEFICIENTE (EJ.: TEXTO O PÁGINAS WEB). EL USUARIO NO PUEDE DEFINIR SUS PROPIOS TIPOS DE DATOS. NO SE PUEDEN CONSTRUIR TIPOS ABSTRACTOS DE DATOS. ABSTRACCIÓN: EXISTE UN GRAN SALTO CONCEPTUAL ENTRE EL MODELO DE DATOS DE LA BD Y LA GESTIÓN DE DATOS EN LOS PROGRAMAS DE APLICACIÓN. REUTILIZACIÓN: AUSENCIA DE MECANISMOS DE REUTILIZACIÓN. BD RELACIONALES Y ACTIVAS 74
LIMITACIONES DEL MODELO RELACIONAL COMO ALTERNATIVAS AL MODELO RELACIONAL Y PARA SUPERAR SUS LIMITACIONES SE HAN DESARROLLADO OTROS MODELOS: GESTORES DE BD ORIENTADOS A OBJETOS. GESTORES DE BD OBJETO-RELACIONALES. BD RELACIONALES Y ACTIVAS 75