Академический Документы
Профессиональный Документы
Культура Документы
Surez
BASES DE DATOS
Transformacin del Modelo de Datos al Diseo Fsico
Caractersticas
Los datos se almacenan en archivos.
Maestro de Empleados
El file system que es parte del S.O. , lleva cuenta de los nombres y las ubicaciones de los archivos. Cada programa incluye una descripcin de los archivos a los que accede.
Maestro de Deptos
Desventajas
Alto costo de mantenimiento debido a la dependencia de los datos.Redundancia sin control y riesgo de inconsistencia.Dificultad en el acceso a los datos Dificultad en el desarrollo de nuevas aplicaciones Dificultad en controlar el acceso a datos (seguridad) Dificultad en asegurar la consistencia de los datos (integridad)
Sistemas Aministradores de BD
Almacenar la descripcin de la estructura de datos, los detalles de almacenamiento y acceso junto con los datos en una BD.
Apunte Transformacin del Modelo Lgico al Modelo Fsico BD Autor: Ing, Paula A. Surez
Niveles de abstraccin
Aplicacin Aplicacin
Independencia lgica
PROCESOS
ALMACEN DE DATOS DATOS
INFORMACION
PROCESOS
OBJETO
ATRIBUTOS
ENTIDADES SERVICIOS
ATRIBUTOS
PROCESO DE LA REGLA
1980
1990
2000
1 GENERACIN
2 GENERACIN
3 GENERACIN
Modelo Relacional
Base terica: en 1970 el Dr. Codd publica su artculo: A Relational Model for Large Shared Data Banks) Toda la informacin, datos y relaciones se representa mediante valores en tablas. Se eliminan las relaciones padre/hijo (M. Jerrquico) y los punteros existentes en modelos anteriores (M. Red) El acceso a los datos es mediante un grupo de operaciones de conjunto, que no requieren un lenguaje husped.
Por qu relacional ?
Por analoga con el concepto matemtico de relacin. Una tupla es una lista ordenada de valores.(n-tupla es una lista ordenada de n valores) Sean D1, D2.... Dn dominios (Conjunto de valores). El producto cartesiano D1x D2...es el conjunto de todas las ntuplas de la forma (v1, v2 ......,vn) donde v1 D1, v2 D2 , ....vn Dn. Una relacin es un subconjunto del producto cartesiano de una listado de dominios. El grado de la relacin es el nmero de dominios.
Apunte Transformacin del Modelo Lgico al Modelo Fsico BD Autor: Ing, Paula A. Surez
Ingeniera de BD Relacionales
Modelo Conceptual
Diseo Lgico
El contenido del DD incluye: los nombres de usuarios y sus privilegios los nombres y las definiciones de los objetos del esquema los constraints los store procedures y los triggers
Diccionario de datos
Diseo Fsico
Diseo fsico
Tabla Columna FK en hijo
Entidad
Tablas
Una tabla es un conjunto de filas no hay filas repetidas las filas no se almacenan ordenadas cualquier nmero de filas (por ej: 0) La tabla no debe estar ordenada En teora no hay lmite para el nmero de columnas Cada columna tiene un nombre nico dentro de la tabla Cada columna tiene un dominio: conjunto de valores permitidos
UTN - Diseo de Sistemas de Informacin . Docente: Ing. Paula A. Surez UTN - Diseo de Sistemas de Informacin . Docente: Ing. Paula A. Surez
Apunte Transformacin del Modelo Lgico al Modelo Fsico BD Autor: Ing, Paula A. Surez
Clave primaria (PK)
Clave candidata es una columna o conjunto mnimo de columnas cuyos valores permiten identificar en forma nica cada fila de la tabla La clave primaria es una clave candidata elegida por el diseador como la forma principal de identificar las filas de la tabla
Algunas consideraciones: que rara vez cambie, estable en el tiempo
preferentemente numricos que no contenga nulos
Para cada entidad independiente, en el modelo ER, crear una relacin R (tabla) que incluya todos los atributos simples de A. Seleccionar el/los atributo/s clave de A como clave primaria de R.
Para cada entidad dbil , con entidad identificante A, crear una relacin R, que incluya todos los atributos simples de D. Adicionalmente, agregar como clave fornea de R los atributos claves de la relacin que representa a A. La clave primaria de R ser la combinacin de la clave primaria de A con la clave parcial de D.
Apunte Transformacin del Modelo Lgico al Modelo Fsico BD Autor: Ing, Paula A. Surez
Implementacin de Subtipos
1 tabla para Supertipo, 1 tabla para cada subtipo. Eliminar el Supertipo, 1 tabla para cada subtipo. Se replican los atributos de Supertipo en cada subtipo. Existen restricciones y se deben utilizar triggeres. 1 tabla para Supertipo, eliminando los subtipos. Se incorporan los atributos de los subtipos al supertipo permitiendo nulos. (*)
(*) Las restricciones en este caso son por desperdicio de espacio y performance. Aqu es obligatorio incorporar un atributo discriminador
Apunte Transformacin del Modelo Lgico al Modelo Fsico BD Autor: Ing, Paula A. Surez
Constraints
Constraints:
Es una regla o restriccin que controla los datos ingresados a la base
Son la traduccin de las reglas de validacin Los constraints son definidos al momento de crear las tablas (pueden agregarse luego siempre que los datos y ingresados cumplan la validacin)
Tipos de constraints
Tipo de Constraints
Constraint check
Es una regla o condicin que se verifica cada vez que se inserta o actualiza el valor de la columna
Constraint check
Puede verificar que est dentro de un rango o dentro de una lista de valores (dominio)
Apunte Transformacin del Modelo Lgico al Modelo Fsico BD Autor: Ing, Paula A. Surez
Constraint check
ALTER TABLE TEST.CABECERAS_FACTURAS ADD CONSTRAINT SYS_C0070259 CHECK (cfa_tipo_comprobante IN ( '1' , '2' , '3' , '4' ) ) /
Constraint Unique
Asegura que no existan dos filas de una tabla que tengan valores duplicados en la/s columna/s especificadas. El nico valor que puede aparecer es unvoco o nulo (se crea un ndice asociado)
ALTER TABLE TEST.CABECERAS_FACTURAS ADD CONSTRAINT CFA_ARCO_CK CHECK ( ( CFA_SCO_ID IS NOT NULL AND CFA_OEL_ID IS NULL ) OR ( CFA_SCO_ID IS NULL AND CFA_OEL_ID IS NOT NULL ) ) /
Constraint Unique
Constraint Unique
Es una buena prctica definir un constraint unique para las claves candidatas que no fueron elegidas como clave primaria
ALTER TABLE TEST.CABECERAS_FACTURAS ADD CONSTRAINT SYS_C0070250 CHECK ( CFA_CEE_COD IS NOT NULL ) /
Apunte Transformacin del Modelo Lgico al Modelo Fsico BD Autor: Ing, Paula A. Surez
Clave candidata es una columna o conjunto mnimo de columnas cuyos valores permiten identificar en forma nica cada fila de la tabla
Se utiliza la notacin FK
Apunte Transformacin del Modelo Lgico al Modelo Fsico BD Autor: Ing, Paula A. Surez
Feedback inmediato al usuario de las violaciones de constraint Mayor preformance Posibilidad de deshabilitar temporalmente Menor costo de desarrollo
Cdigo de Triggers
Store procedures
UTN - Diseo de Sistemas de Informacin . Docente: Ing. Paula A. Surez
Triggers Triggers
Son utilizados para forzar reglas de negocio complejas que no pueden definirse usando constraints. Permite construir reglas across. Entre diferentes tablas (padre-hijo).
Esto no se podra implementar con un constraint porque debera especificar el nuevo y el viejo valor.
UTN - Diseo de Sistemas de Informacin . Docente: Ing. Paula A. Surez
Por ejemplo puede controlar que a un empleado no se incremente ni reduzca su salario en ms del 10 %
VER
Ejemplos de triggers
CREATE OR REPLACE TRIGGER trfdaifa0001 BEFORE DELETE ON impuestos_facturas REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW DECLARE BEGIN DECLARE v_estado VARCHAR2(10); BEGIN SELECT cfa_estado INTO v_estado FROM cabeceras_facturas WHERE cfa_id = :new.ifa_cfa_id; IF v_estado <> 'A FACTURAR' THEN raise_application_error(-20000, 'APL-00071'); END IF; END; END; /
Ejemplos de triggers
CREATE OR REPLACE TRIGGER trpma0001 BEFORE INSERT ON paridad_monedas REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW DECLARE BEGIN declare cuantos number; hay number; begin
-- Controlar que fecha fin de vigencia se informe antes de crear un nuevo perodo
SELECT count(*) INTO cuantos FROM PARIDAD_MONEDAS WHERE pma_fecha_fin_vig IS NULL AND pma_moneda_desde = :new.pma_moneda_desde AND pma_moneda_hasta = :new.pma_moneda_hasta; IF cuantos > 0 THEN raise_application_error(-20000, 'DBE-00290'); END IF; . . . (sigue) UTN - Diseo de Sistemas de Informacin . Docente: Ing. Paula A. Surez
Apunte Transformacin del Modelo Lgico al Modelo Fsico BD Autor: Ing, Paula A. Surez
Ejemplos de triggers
-- Controlar que no se solapen las fechas de vigencias
SELECT count(*) INTO hay FROM PARIDAD_MONEDAS WHERE :new.pma_fecha_vig <= pma_fecha_fin_vig AND pma_moneda_desde = :new.pma_moneda_desde AND pma_moneda_hasta = :new.pma_moneda_hasta; IF hay > 0 THEN raise_application_error(-20000, 'DBE-00269'); END IF; EXCEPTION WHEN NO_DATA_FOUND THEN NULL; END; END; /
Conclusiones ...
Diseo Lgico
Entidad Entidad independiente Entidad dependiente Atributo Tipo de dato Dominio lgico Clave primaria Claves candidatas
Diseo fsico
Tabla No existe FK en la PK PK del padre Columna Tipo de dato fsico Dominio fsico PK de la entidad(constrains) Unique constraints
Diseo Lgico
Relacin Modalidad Cardinalidad Relacin/Parte del ID Relacin /descriptor Subtipo
Diseo fsico
FK FK Not Null Triggers
en INSERT, UPD ATE y DELETE
PK hijo
FK es parte de PK del hijo FK NO es parte de PK hijo 1 tabla Supertipo, 1 c/subtipo 1 tabla Supertipo, 0 c/subtipo 0 tabla Supertipo, 1 c/subtipo
Relacin M:M
1 tabla Asociativa
Diseo Lgico
Reglas de validacin Reglas de negocio complejas Integridad Referencial (cascada, etc)
Diseo fsico
Constraints
Algunas consideraciones . . .
Justificar la necesidad de desnormalizar, por ejemplo: agregar datos calculables para mejorar la performance de los procesos que requieren datos de la BD Analizar la distribucin y/o replicacin de datos, en funcin de la ubicacin fsica de los procesos que usan los datos Analizar la implementacin de triggers para incorporar reglas de negocio
Triggers
10