Clase 6 - Normalizacion

download Clase 6 - Normalizacion

of 39

Transcript of Clase 6 - Normalizacion

  • Bases de Datos Normalizacin

  • Dependencia

    Dependencia Total Consideremos los atributos x e y. Cada valor de x tiene uno y solo un valor de y asociados a el e inversamente. Otra manera de expresar lo mismo es decir que x e y son sinnimos; ambas expresiones son equivalentes

  • Dependencia completa

    El concepto de dependencia completa se aplica solamente cuando: Tenemos mas de dos variables y Una variable dependiente depende de dos o mas variables

    independientes

    Consideremos una relacin que abarca las variables P, Q y R. Supongamos que P es la variable dependiente. Si el valor de P est determinado por una funcin de Q y R combinados, se trata de una dependencia completa. Esto es el valor de P no depende unicamente ni de Q ni se R

  • Dependencia Transitiva

    La dependencia transitiva se aplica a a tres o ms variables. Sean las variables S, T y V Diremos que S es la variable independiente si los valores de S determinan tanto a T como a V y se simboliza asi: S T; S V

  • Contenido

    5. Diseo de Sistemas de Bases de Datos

    Diseo relacional Formas normales Proceso de creacin de una base de datos Diseo conceptual, lgico y fsico

  • Conceptos

    Normalizacin: Proceso de conversin de una relacin en una forma estndar. Se realiza para evitar: prdida de informacin, redundancia entre los datos, prdida de dependencias funcionales.

    Dependencia Funcional: Restriccin entre dos conjuntos de

    atributos de la base de datos.

  • Dependencia funcional Definicin: Suponga que tiene R = {A1, A2, A3, , An} , R es una relacin y A es un conjunto de atributos. Sea X, Y subconjuntos de A. Notacin DF: X Y Se lee: X determina o implica Y Y depende funcionalmente de X Si y slo si cada valor de X tiene asociado en todo momento un nico valor de Y Donde: X es el determinante Y es el implicado X e Y se les dice Descriptores. Un determinante es un conjunto del que depende funcionalmente otro conjunto de atributos llamado implicado.

  • Dependencia funcional Ejemplo: CI_estudiante Nombre_estudiante La Ci del estudiante determina el nombre del estudiante. Dos descriptores son equivalentes cuando X Y Y X. Ejemplo: Ci_ estudiante Rol_estudiante Rol_estudiante Ci_estudiante

  • Dependencia funcional Notacin: X Y bien, X1, , Xn Y1,, Ym n,m >= 1 De forma de Grafo:

    Ci_estudiante

    Cdigo_curso

    Nombre_estudiante, direccin

    Nota

    Nombre_curso, nmero_modulos

    Ci_estudiante

    Codigo_curso

    Nombre_estudiante, direccin

    Nombre_curso, nmero_modulos

    Nota

  • Dependencia funcional Tipos de Dependencias Funcionales: 1.- DF Plena o completa X Y sii X X | X Y Ejemplo: En la relacin se_matricula (rut_estudiante, Codigo_curso, Nota) Se tiene que: rut_estudiante , Codigo_curso Nota 2.- DF Trivial X Y es trivial si Y X Ejemplo: rut_estudiante , Codigo_curso rut_estudiante

  • Dependencia funcional

    3.- DF Elemental: es completa, no trivial e Y es un atributo nico. X Y es elemental sii ( YY) (YX) ( X X | X Y)

    Estas dependencias funcionales son tiles para la teora de la normalizacin. 4.- DF Transitiva

    Dada la Relacin R(X, Y, Z) en la que existen las siguientes DF:

    X Y, Y Z, Y X , se dice que Z tiene una dependencia transitiva en relacin a X a travs de Y y se denota por X - Z. Ejemplo: Codigo_curso Codigo_carrera Codigo_carrera Codigo_Departamento Adems Cdigo_carrera Codigo_curso, entonces Codigo_curso Codigo_Departamento

  • Axiomas de Armstrong

    A los Axiomas de Armstrong tambin se les conoce como un conjunto de reglas que se pueden aplicar a las dependencias funcionales. Entre estas tenemos:

    1. REFLEXIBILIDAD

    si Y X entonces X Y (DF trivial)

    2. AUMENTATIVIDAD

    Si X determina a Y, se puede agregar a X e Y un mismo atributo Z sin cambiar la propiedad.

    Si X Y entonces:

    XZ YZ

    XW YZ, siempre que Z W

  • Axiomas de Armstrong

    3. TRANSITIVIDAD

    X Y Y Z, entonces X Z

    4. AUTODETERMINACION

    X X

    5. DESCOMPOSICION

    Si X YZ entonces X Y X Z

    Si X Y Z Y, entonces X Z

    6. UNION

    Si X Y X Z, entonces X YZ

  • Axiomas de Armstrong

    7. COMPOSICION

    Si X Y Z W, entonces XZ YW

    8. PSEUDOTRANSITIVIDAD

    Si X Y ZY W, entonces XZ W

  • Axiomas de Armstrong

    Ejercicio:

    Dada una relacin R(A,B,C,D,E; AB, CD, DE)

    Demostrar que AC ABCDE

    1.- AB (dada)

    2.- AC ABC (aumentatividad de 1 por AC)

    3.- CD (dada)

    4.- DE (dada)

    5.- CE (transitividad de 3 y 4)

    6.- CDE (unin de 3 y 5)

    7.- ABC ABCDE (aumentatividad de 6 por ABC)

    8.- AC ABCDE (transitividad de 2 y 7)

  • Clausura de un conjunto de DF

    La clausura de un conjunto de DF es el conjunto de todas las DFs que se pueden determinar en el sistema.

    A partir de S (conjunto de DF), se debe llegar a S+ (que engloba todas las DF del sistema), esto se hace a travs de un conjunto de reglas (axiomas de Armnstrong).

  • Normalizacin

    La normalizacin es el proceso de simplificar la relacin entre los campos de un registro.

    Por medio de la normalizacin un conjunto de datos en un registro se reemplaza por varios registros que son ms simples y predecibles y por lo tanto, ms manejables. La normalizacin se lleva a cabo por cuatro razones:

    1. Estructurar los datos de forma que se puedan representar las relaciones.

    2. Permitir la recuperacin sencilla de los datos en respuesta a las solicitudes de consultas y reportes.

    3. Simplificar el mantenimiento de los datos actualizndolos, insertndolos y borrndolos.

    4. Reducir la necesidad de reestructurar o reorganizar los datos cuando surjan nuevas aplicaciones.

  • Normalizacin

    Pasos de la normalizacin:

    Descomponer todos los grupos de datos en registros bidimensionales.

    Eliminar todas las relaciones en la que los datos no dependan completamente de la llave primaria del registro.

    Eliminar todas las relaciones que contengan dependencias transitivas.

  • Normalizacin

    Primera forma normal.

    Definicin formal: Una relacin R se encuentra en 1FN si y solo s cada tupla - columna contiene valores atmicos.

    Se considera que una relacin se encuentra en la primera forma normal cuando cumple lo siguiente:

    Las celdas de las tablas poseen valores simples y no se permiten grupos ni arreglos repetidos como valores, es decir, contienen un nico valor por cada celda.

    Todos los datos en cualquier columna (atributo) deben ser del mismo tipo.

    Cada columna debe tener un nombre nico, el orden de las columnas en la tabla no es importante.

    Dos filas o tuplas de una misma tabla no deben ser idnticas. El orden de las filas no es importante.

  • Proceso: Eliminar los grupos repetidos Crear una nueva tabla con la PK de la tabla base y el grupo repetido.

  • Normalizacin

    Segunda forma normal

    Definicin formal: Una relacin R est en 2FN si y slo si est en 1FN y los atributos no primos dependen funcionalmente de la llave primaria.

    Una relacin se encuentra en segunda forma normal, cuando cumple con las reglas de la primera forma normal y todos sus atributos que no son claves (llaves) dependen por completo de la clave.

    Se aplica el concepto de DF plena.

    Proceso: Determinar cuales columnas que no son llave no dependen de la llave

    primaria de la tabla

    Eliminar esas columnas de la tabla base

    Crear una segunda tabla con esas columnas y la(s) columnas(s) de la PK de la cual dependen

  • Normalizacin Tercera forma normal.

    Definicin formal: Una relacin R est en 3FN si y slo si esta en 2FN y todos sus atributos no primos dependen no transitivamente de la llave primaria.

    Una relacin esta en tercera forma normal si est en segunda forma normal y no existen dependencias transitivas entre los atributos.

    Existen dependencias transitivas cuando un atributo no depende directamente de la clave, sino que de otro atributo que depende de la clave.

    Proceso:

    Determinar las columnas que son dependientes de otra columna no llave

    Eliminar esas columnas de la tabla base

    Crear una segunda tabla con esas columnas y con la columna no llave de la cual son dependientes

  • Normalizacin

    Forma normal de Boyce Codd.

    Definicin formal: Una relacin R esta en FNBC si y solo si cada determinante es una llave candidata.

  • Normalizacin

    Ejemplos:

    1.- ASISTE({cod_curso,nom_curso, cod_estudiante,nota},

    {cod_curso nom_curso,

    cod_curso, cod_estudiante nota})

    Esta relacin tiene dos claves candidatas:

    (cod_curso,cod_estudiante)

    (nom_curso, cod_estudiante)

    Esta relacin est en 3FN pero no en FNBC, porque cod_curso y nom_curso son determinantes y no son claves candidatas.

    Se puede trasformar esta relacin en dos:

    CURSO({cod_curso, nom_curso}, {cod_curso nom_curso})

    ASISTE({cod_curso, cod_estudiante, nota},

    {cod_curso, cod_estudiante nota})

    No hay prdida de informacin.

  • Normalizacin

    Ejemplos:

    2.- CLASE({cod_estudiante, cod_profesor, materia},

    {cod_estudiante, materia cod_profesor,

    cod_profesor materia})

    Esta relacin tiene dos claves candidatas:

    (cod_estudiante, materia)

    (cod_estudiante, cod_profesor)

    Esta relacin est en 3FN pero no en FNBC, porque cod_profesor es un determinante y no es clave candidata.

    Se puede trasformar esta relacin en dos:

    CLASE1({cod_estudiante, cod_profesor}, {})

    CLASE2({cod_profesor, materia},{cod_profesor materia})

    En esta trasformacin se pierde informacin.

  • Normalizacin Ejercicio:

    Un hospital mantiene un sistema de control de drogas en el cual las siguientes caractersticas aparecen como las relevantes:

    Las drogas estn mantenidas en estantes especiales.

    Las drogas son provistas por distintos proveedores

    Existe un archivo que incorpora datos para permitir la ubicacin de los proveedores usuales o alternativos de las drogas.

    Siempre que una droga es usada para una intervencin y/o tratamiento, los registros del archivo indicado anteriormente es actualizado.

    Cuando la cantidad de la droga en stock cae bajo un cierto nivel, es puesta en una lista de re-orden. Se revisan los fabricantes de la droga y se ubican el proveedor usual y se emite una orden de compra para ella.

    Ocasionalmente pedidos urgentes son hechos por telfono.

    Las drogas recibidas traen adjunto un recibo el cual es chequeado con los detalles de la droga. El registro de la droga es actualizado y la droga es ubicada en el estante correspondiente.

  • Normalizacin Supuestos de Diseo.

    Los principales supuestos que soportan la normalizacin del sistema son los que se indican a continuacin.

    1. Existen Ubicaciones (por ejemplo casilleros) en donde se almacenan todas las versiones de una droga.

    2. Slo se almacena a lo ms una droga (en todas sus versiones) en una ubicacin.

    3. Una droga y sus versiones es almacenada en una y slo una ubicacin.

    4. Una droga tiene una o ms versiones, las cuales se identifican por un cdigo (versin).

    5. Una versin es nica, y pertenece slo a una droga.

    6. No existen dos versiones con el mismo nombre y cdigo para la misma droga.

    7. Un laboratorio puede producir una o varias versiones de drogas.

  • Normalizacin Supuestos de Diseo.

    8. Un laboratorio cuenta con uno o ms proveedores.

    9. Un proveedor representa a uno o ms laboratorios.

    10. Un proveedor distribuye todas las drogas que produce un laboratorio al cual representa.

    11. Una droga tiene slo un proveedor usual.

    12. Un proveedor puede ser proveedor usual de ninguna, una o muchas drogas.

    13. Dos proveedores pueden tener la misma direccin o telfono.

  • Normalizacin

    Notacin pata de gallo:

    (0,1) :

    (1,1) :

    (0,n) :

    (1,N):

    Modelo Entidad Relacin

    DROGA

    UBICACIN

    PROVEEDOR

    LABORATORIO

    VERSIN

    tiene

    contiene

    producida

    distribuida

    Prov_lab

  • Normalizacin

    Definicin de entidades y atributos Droga: Droga, nombredroga, stock, stockmin Claves candidatas: droga, nombredroga Clave primaria: droga Version: Version, nombreversion Claves candidatas: versin, nombreversion Clave Primaria: versin Ubicacin: ubicacin, estado Claves candidatas: ubicacin Clave primaria: ubicacin Proveedor: proveedor, nombreproveedor, direccin, telfono Claves candidatas: proveedor, nombreproveedor Clave primaria: proveedor Laboratorio: laboratorio, nombrelaboratorio Claves candidatas: laboratorio, nombrelaboratorio Clave primaria: laboratorio

    No se confunda, los claves primarias en este caso tienen el mismo nombre que las entidades. Es usual encontrar esto en los modelos.

  • Normalizacin

    Definicin de relaciones Contiene: ubicacin, droga Tiene: droga, versin Producida: versin, laboratorio Distribuida: droga, proveedor Prov_lab: laboratorio, proveedor

  • Normalizacin

    Proveedor

    Key Data

    proveedor [PK1]

    Non-Key Data

    nombreproveedor

    fono

    direccion

    ProvLab

    Key Data

    proveedor [PK1]

    [FK]

    laboratorio [PK2]

    [FK]

    Laboratorio

    Key Data

    laboratorio [PK1]

    Non-Key Data

    nombrelaboratorio

    Version

    Key Data

    droga [PK1] [FK]

    version [PK2]

    Non-Key Data

    nombreversion

    laboratorio [FK]

    Droga

    Key Data

    droga [PK1]

    Non-Key Data

    nombredroga

    stock

    stockmin

    ubicacion [FK]

    proveedor [FK]

    Ubicacin

    Key Data

    ubicacion [PK1]

    Non-Key Data

    estado

    Notacin pata de gallo:

    (0,1) :

    (1,1) :

    (0,n) :

    (1,N):

    Modelo Relacional

  • Normalizacin Definicin de relaciones

    Droga: Droga, nombredroga, stock, stockmin, ubicacin, proveedor Claves candidatas: droga, nombredroga Clave primaria: droga Claves forneas: ubicacion (Ubicacin), proveedor (Proveedor) DF: Droga -> nombredroga, stock, stockmin, droga -> ubicacin , droga -> proveedor

    Version: Version, nombreversion, droga, laboratorio Claves candidatas: (droga, versin), nombreversion Clave Primaria: (droga, versin) Claves forneas: droga (Droga), laboratorio (Laboratorio) DF: versin -> droga, versin -> nombreversion, nombreversion -> versin, versin -> laboratorio Ubicacin: ubicacin, estado Claves candidatas: ubicacin Clave primaria: ubicacin DF: ubicacin -> estado

    Proveedor: proveedor, nombreproveedor, direccin, telfono Claves candidatas: proveedor, nombreproveedor Clave primaria: proveedor DF: proveedor -> nombreproveedor, direccin, telfono , nombreproveedor -> proveedor

  • Normalizacin Definicin de relaciones

    Laboratorio: laboratorio, nombrelaboratorio Claves candidatas: laboratorio, nombrelaboratorio Clave primaria: laboratorio DF: laboratorio -> nombrelaboratorio , nombrelaboratorio -> laboratorio ProvLab: proveedor, laboratorio Claves candidatas: (proveedor, laboratorio) Clave Primaria: (proveedor, laboratorio) Claves forneas: proveedor (Proveedor), laboratorio (Laboratorio) DF: No existen.

  • Ejercicios:

  • Ejercicio