normalizacion.pdf

11
Bases de Datos Modelo Relacional: Normalización CONTENIDO 1. Definición Normalización 2. Proceso de normalización 3. DEFINICIONES BÁSICAS a. Dependencia Funcional (d.f.) b. Definición de Dependencia Funcional Completa c. Teorema de descomposición 4. Formas normales a. Definición de la primera forma normal (1nf) b. Definición de la Segunda Forma Normal (2NF) c. Definición de la Tercera Forma Normal (3NF) d. Forma Normal de Boyce-Codd 5. Introducción a la teoría relacional de bases de datos a. Cerraduras y coberturas mínimas b. Axiomas de inferencia de armstrong: c. Saturación: d. Cobertura mínima NORMALIZACIÓN La normalización es una técnica para diseñar la estructura lógica de los datos de un sistema de información en el modelo relacional, desarrollada por E. F. Codd en 1972. Esta es una etapa posterior a la correspondencia entre el esquema conceptual y el esquema lógico, que elimina las dependencias entre atributos no deseadas. Las ventajas de la normalización son las siguientes: Evita anomalías en inserciones, modificaciones y borrados. Mejora la independencia de datos. No establece restricciones artificiales en la estructura de los datos. El diseño de bases de datos conceptual proporciona el esquema de relaciones y sus restricciones de integridad que sirve como punto inicial para el proceso de implementación de la base de datos. El proceso de normalización es un estándar que consiste, básicamente, en un proceso de conversión de las relaciones, evitando: La redundancia de los datos: repetición de datos en un sistema. Anomalías de actualización: inconsistencias de los datos como resultado de datos redundantes y actualizaciones parciales. Anomalías de borrado: pérdidas no intencionadas de datos debido a que se han borrado otros datos. Anomalías de inserción: imposibilidad de adicionar datos en la base de datos debido a la ausencia de otros datos. Ejemplo: Analicemos la siguiente relación: ESCRIBE

Upload: marlene-lopez

Post on 17-Dec-2015

15 views

Category:

Documents


0 download

TRANSCRIPT

  • Bases de Datos Modelo Relacional: Normalizacin

    CONTENIDO 1. Definicin Normalizacin 2. Proceso de normalizacin 3. DEFINICIONES BSICAS

    a. Dependencia Funcional (d.f.) b. Definicin de Dependencia Funcional Completa c. Teorema de descomposicin

    4. Formas normales a. Definicin de la primera forma normal (1nf) b. Definicin de la Segunda Forma Normal (2NF) c. Definicin de la Tercera Forma Normal (3NF) d. Forma Normal de Boyce-Codd

    5. Introduccin a la teora relacional de bases de datos a. Cerraduras y coberturas mnimas b. Axiomas de inferencia de armstrong: c. Saturacin: d. Cobertura mnima

    NORMALIZACIN

    La normalizacin es una tcnica para disear la estructura lgica de los datos de un sistema de informacin en el modelo relacional, desarrollada por E. F. Codd en 1972. Esta es una etapa posterior a la correspondencia entre el esquema conceptual y el esquema lgico, que elimina las dependencias entre atributos no deseadas. Las ventajas de la normalizacin son las siguientes: Evita anomalas en inserciones, modificaciones y borrados. Mejora la independencia de datos. No establece restricciones artificiales en la estructura de los datos.

    El diseo de bases de datos conceptual proporciona el esquema de relaciones y sus

    restricciones de integridad que sirve como punto inicial para el proceso de implementacin de la base de datos.

    El proceso de normalizacin es un estndar que consiste, bsicamente, en un proceso de conversin de las relaciones, evitando: La redundancia de los datos: repeticin de datos en un sistema. Anomalas de actualizacin: inconsistencias de los datos como resultado de datos

    redundantes y actualizaciones parciales. Anomalas de borrado: prdidas no intencionadas de datos debido a que se han borrado

    otros datos. Anomalas de insercin: imposibilidad de adicionar datos en la base de datos debido a la

    ausencia de otros datos. Ejemplo: Analicemos la siguiente relacin: ESCRIBE

    MarleneResaltado

    MarleneResaltado

    MarleneResaltado

  • Bases de Datos Modelo Relacional: Normalizacin

    AUTOR NACIONALIDAD COD_LIBRO TITULO EDITORIAL AO Date, C. Norteamericana 98987 Database Addison 1990 Date, C. Norteamericana 97777 SQL Stan Addison, W. 1986 Date, C. Norteamericana 98987 Guide for Addison, W. 1988 Codd,E. Norteamericana 7890 Relational Addison,W. 1990 Gardarin Francesa 12345 Basi Dati Paraninfo 1986 Gardarin Francesa 67890 Comp BD Eyrolles 1984 Valduriez Francesa 67890 Comp BD Eyrolles 1984 Kim,W. Norteamericana 11223 BD OO ACM 1989 Lochovsky Canadiense 11223 BD OO ACM 1989

    Esta relacin almacena datos de autores y de libros. Algunos problemas son:

    Redundancia, ya que la nacionalidad del autor se repite por cada ocurrencia del mismo. Lo mismo sucede cuando un libro tiene ms de un autor, se repite la editorial y el ao de publicacin.

    Anomalas de modificacin, es fcil cambiar el nombre de una editorial en una tupla sin modificar el resto de las que corresponden al mismo libro, lo que da lugar a incoherencias.

    Anomalas de insercin, ya que si queremos ingresar informacin de algn autor, del que no hubiera ningn libro en la base datos, no sera posible, ya que cod_libro es parte de la clave primaria de la relacin (regla de integridad de la entidad). La insercin de un libro, que tiene dos autores obliga a insertar dos tuplas en la relacin.

    Anomalas de borrado, ya que si queremos eliminar un cierto libro, deberamos perder los datos de su autor y viceversa.

    En los casos anteriores, se deja en manos del usuario manejar la integridad de la base

    de datos. Lo anterior sucede pues no se cumple un hecho bsico de todo diseo: "hechos distintos, deben almacenarse en objetos distintos" Una forma de evitar este tipo de problemas consiste en seguir la metodologa

    propuesta en el curso, es decir, un riguroso diseo conceptual y un traspaso de ste al modelo relacional. Sin embargo, ante posibles dudas respecto a si un esquema relacional est correcto, aplicaremos a dicho esquema un mtodo formal de anlisis, que permita analizar errores y generar esquemas correctos. Esta es la teora de la normalizacin.

    En el ejemplo anterior, el conjunto de las siguientes relaciones no presenta estos problemas:

    LIBRO( cod_libro, titulo, editorial, ao ) AUTOR( nombre, nacionalidad ) ESCRIBE( cod_libro, nombre ) La normalizacin introduce una tcnica formal para disear bases de datos relacionales,

    y permite mecanizar parte del proceso al disponer de algoritmos de normalizacin. Una observacin importante, es que las anomalas antes descritas se producen en

    procesos de actualizacin y no en procesos de consulta. La normalizacin penaliza las consultas, al disminuir la eficiencia, ya que la normalizacin aumenta el nro. de relaciones presentes en la

  • Bases de Datos Modelo Relacional: Normalizacin

    base de datos, por lo que una determinada consulta puede llevar consigo el acceso a varias tablas, lo que aumenta el costo de sta.

    Proceso de normalizacin El proceso de normalizacin va reduciendo un conjunto de relaciones dado, a una forma

    ms deseable. En este contexto deseable significa ms sencilla, ms simple. Otra manera de definirla es ir descomponiendo relaciones en otras relaciones mejores en trminos de las operaciones que se ejecutan sobre ellas".

    Existen varias formas normales para las relaciones 1NF, 2NF, 3NF, BCNF, 4NF y 5NF (PJNF). Se dice que una relacin est en una determinada forma normal si satisface un cierto conjunto de restricciones.

    Para empezar a estudiar las tres primeras formas normales, adems de la de Boyce-Codd, se debe introducir un concepto llamado dependencia funcional.

    DEFINICIONES BSICAS

    Dependencia Funcional (d.f.) Intuitivamente, la redundancia surge cuando un esquema relacional es forzado a una

    asociacin entre atributos que no es natural. Las dependencias funcionales pueden ser usadas para identificar tales situaciones y sugerir refinamientos en el esquema. La idea esencial es que muchos problemas que provienen de la redundancia se pueden solucionar reemplazando una relacin por una coleccin de relaciones ms pequeas.

    Formalmente podemos decir que: Dada una relacin R, el atributo Y de R depende funcionalmente del atributo X de R si para una tupla dada el valor en X de R determina el valor en Y de R, es decir, si

    R(X) R(Y) X Se llama el determinante y a Y se le llama el dependiente. Ejemplo 1: Sea el esquema de relacin: CHOFER (Cdula, Nombre, Direccin, Fecha-ingreso, #Placa) y la relacin siguiente:

    Cdula Nombre Direccin Fecha-ingreso #Placa 23232255 Juan Mora Valencia 12/06/91 123456 54587487 Juan Mora Caracas 10/12/87 103626 54564564 Mara Salas Valencia 10/12/87 123456 545645646 Carlos Mata Barquisimeto 12/11/86 67896 En este caso se pueden establecer varios hechos:

    Para cada cdula existe un nico nombre asociado, es decir, se verifica la dependencia funcional cdula -> nombre.

  • Bases de Datos Modelo Relacional: Normalizacin

    Puesto que un camin puede ser conducido por mas de un chofer no se verifica la d.f. #placa -> cdula, esto se representa por #placa /-> cdula.

    Se tiene nombre /-> #placa, puesto que dos personas distintas pueden tener el mismo nombre, sin embargo {nombre, fecha-ingreso} -> #placa se verifica siempre que se est seguro que dos personas con el mismo nombre no fueron contratadas el mismo da.

    Es importante mencionar que la d.f. es un concepto que deriva del significado de los datos y no del comportamiento de una relacin dada. As, por ejemplo en el esquema de la relacin CHOFER, se tiene que la d.f. fecha-ingreso, direccin -> cdula, no se verifica debido a que dos personas diferentes pudieron entrar el mismo da y vivir en la misma ciudad.

    Ejemplo 2: Supongamos que tenemos un conjunto de relaciones: Pieza (p#,nombre-p,color-p,peso-p,ciudad-alm) Vendedor (v#,nombre-v,estatus,ciudad) Venta (v#,p#,cantidad)

    En estas relaciones se dan ciertas dependencias funcionales, tales como:

    Pieza (p#) Pieza(nombre-p) Pieza (p#) Pieza(color-p) Pieza (p#) Pieza(peso-p) Pieza (p#) Pieza(ciudad-alm) Vendedor (v#) Vendedor(nombre-v) Vendedor (v#) Vendedor(estatus) Vendedor (v#) Vendedor(ciudad) Venta (s#,p#) Venta(cantidad) No necesariamente, la dependencia funcional de Y respecto de X viene dada porque el hecho de que X es una clave candidata. De manera que una definicin que abarque ese punto se puede escribir como:

    Definicin de Dependencia Funcional

    Dada una relacin R, el atributo Y de R depende funcionalmente del atributo X de R sii siempre que dos tuplas de R concuerden en su valor de X, deben por fuerza, concordar en su valor de Y. Ejemplo: Supongamos que existiese una relacin Venta(v#,p#,cantidad, ciudad) en la relacin Venta v# no es clave candidata, sin embargo, Venta(v#) Venta(ciudad) Por esa misma razn ciudad no depende completamente de la clave primaria (v#,p#)

  • Bases de Datos Modelo Relacional: Normalizacin

    Se dice, entonces que ciudad tiene dependencia funcional no completa de la clave primaria. Definicin de Dependencia Funcional Completa

    Se dice que el atributo Y de R depende funcionalmente por completo del atributo X de R, si depende funcionalmente de X y no depende funcionalmente de ningn subconjunto de X

    Dicho en otras palabras, no existe un subconjunto Z de atributos componentes de X de los cuales Y dependa funcionalmente.

    TEOREMA DE DESCOMPOSICIN: Sea un esquema de relacin R(X, Y, Z), con X, Y y Z conjuntos de atributos de R, tal que la dependencia funcional X Y se verifica en R. Entonces, la relacin R se descompone en las relaciones R1 = R[X,Y] y R2 = R[X,Z], es decir, R = R1 x R2

  • Bases de Datos Modelo Relacional: Normalizacin

    FORMAS NORMALES DEFINICIN DE LA PRIMERA FORMA NORMAL (1NF)

    Una relacin est en 1NF sii todos los dominios simples subyacentes contienen slo valores atmicos Ejemplo de relacin No Normalizada Ejemplo de relacin Normalizada V# Pedido v# p# cantidad p# cantidad 01 p1 100 01 p1 100 01 p2 150 p2 150 02 p3 200 02 p3 200 DEFINICIN DE LA SEGUNDA FORMA NORMAL (2NF)

    Una relacin est en 2NF sii est en 1NF y todos los atributos no clave (o que no formen parte de la clave) dependen por completo de la clave primaria. Supongamos que existiese la relacin M: V# estatus ciudad p# cantidad 01 10 ccs p1 100 01 10 ccs p2 150 02 20 vcia p3 200 03 30 b/to p4 50 03 30 b/to p5 100 04 10 ccs p4 50 M(estatus) M(ciudad) M(v#) M(estatus) M(v#) M(ciudad) es decir, no dependen por completo de la clave primaria (v#,p#) Diagrama de dependencias funcionales V# estatus cantidad p# ciudad

  • Bases de Datos Modelo Relacional: Normalizacin

    Problemas que presenta la relacin M: Hay redundancias: todas las tuplas donde aparece ccs tiene el estatus 10. Si hubieran 1000 tuplas con ccs se repetira 1000 que su estatus es 10. De igual forma, todas las tuplas donde aparece el vendedor tambin aparece la ciudad a donde est asignado Esto presenta ciertas anomalas de actualizacin que justifican que se normalice a 2NF. Insercin: si un vendedor v# no ha vendido piezas, aunque sepamos cul es la ciudad en donde est asignado y su estatus, no se puede ingresar a la b/d. Eliminar: si slo hay una tupla para un v# con la venta de un vendedor y se elimina la venta, tambin se pierde la informacin de cul es la ciudad y el estatus que ese vendedor tiene.

    Actualizacin: si v# se cambia de ciudad tenemos que buscar en todas las tuplas donde aparece para actualizar su estatus y ciudad. Solucin: Crear dos relaciones donde no ocurran estas anomalas. L(v#,estatus,ciudad) V(v#,p#,cantidad) estatus v# V# cantidad Ciudad p# Ambas relaciones estn en 2NF (Ver cmo se eliminaron los problemas de actualizacin) En general, el problema real de la relacin M era que se estaba mezclando informacin de diferente tipo. CONCEPTOS PRELIMINARES

    Sea la relacin R donde X,Y y Z son un subconjunto de atributos de R, se dice que Z es transitivamente dependiente de X si existe Y tal que: R(X) R(Y) y R(Y) R(Z) Entonces R(X) R(Z) Atributos No Claves: Cualquier atributo que no es clave o que no forma parte de la clave. Atributos Independientes: Son atributos que no dependen funcionalmente de otros atributos. Por ejemplo en la relacin Pieza, colo-p y peso-p son atributos independientes (entre s).

  • Bases de Datos Modelo Relacional: Normalizacin

    DEFINICIN DE LA TERCERA FORMA NORMAL (3NF)

    Una relacin R est en 3NF sii est en 2NF y todos los atributos no clave dependen de manera no transitiva de la clave primaria. Ejemplo: L(v#, estatus,ciudad) estatus v# ciudad Qu problemas ocurren en La raz de la dependencia transitiva? a.-Insertar: no se puede insertar el estatus de una ciudad mientras no halla un vendedor en esa

    ciudad. b.-Eliminar: si se elimina la nica tupla que contenga informacin del estatus de una ciudad, se

    pierde esa informacin y no se puede volver a cargar como se dijo en "a". c.-Actualizar: si se efecta un cambio de estatus para una ciudad dada hay que actualizar

    varias veces segn hallan vendedores asociados a esa ciudad. Solucin: Se descompone la relacin L en dos relaciones, a saber: VC(v#,ciudad) y CS(ciudad,estatus) Ambas relaciones estn en 3NF. FORMA NORMAL DE BOYCE-CODD Si tenemos la relacin: SSP(v#,p#,vnombre,cantidad) Y vnombre es nico para cada vendedor. Entonces tenemos las siguientes claves candidatas en la relacin SSP: C.C = { (v#,p#), (vnombre,p#) } El diagrama de dependencias funcionales de SSP es: v# vnombre cantidad p#

  • Bases de Datos Modelo Relacional: Normalizacin

    Existen dos claves candidatas: (vnombre,p#) y (v#,p#).

    Esta relacin est en 3NF, sin embargo contiene gran cantidad de redundancia y, por ende, tiene problemas potenciales para la actualizacin. Adems, que no se puede guardar la informacin del nombre del vendedor hasta que l vende algo. Esto tambin acarrea problemas en la eliminacin.

    Para mejorar esta relacin se debe estudiar la forma normal de Boyce-Codd Def: Una relacin est en la BCNF ssi todo determinante es una clave candidata. Qu es un determinante?

    Un atributo es un determinante si este determina por completo a algn otro atributo.

    Para estar en la BCNF se requiere que todo determinante sea una clave candidata. As se puede decir que SSP no est en la BCNF, aunque si est en 3NF. Solucin: Crear dos relaciones: SS(vnombre,v#) y SP(vnombre,p#,cantidad)

    O bien, SS(vnombre,v#) y SP(v#,p#,cantidad)

    INTRODUCCION A LA TEORIA RELACIONAL DE BASES DE DATOS A partir deL concepto de dependencia funcional, se ha generado una serie de

    resultados tericos que dan origen a lo que actualmente se conoce como teora relacional de bases de datos. CERRADURAS Y COBERTURAS MNIMAS. Una vez obtenido un conjunto de dependencias funcionales que se verifican en un esquema de relacin, es interesante preguntarse si, a partir de este conjunto de dependencias se pueden inferir otro conjunto de dependencias funcionales.

    Al conjunto de todas las dependencias funcionales implicadas en un conjunto de dependencias funcionales inicial F se llama cerradura de F (F+) La herramienta que se usa para inferir o calcular la cerradura de un conjunto de dependencias funcionales de F se llama Axiomas de Inferencia de Armstrong, este conjunto de reglas constituye un modelo que es completo. Esto significa que, si F es un conjunto de dependencias funcionales, cualquier dependencia funcional que se infiere a partir de F, se hace slo aplicando repetidamente las reglas a las dependencias funcionales de F.

  • Bases de Datos Modelo Relacional: Normalizacin

    AXIOMAS DE INFERENCIA DE ARMSTRONG: Sean X, Y y Z subconjuntos de atributos de una relacin R, en donde se verifican las

    dependencias funcionales X Y y Y Z, entonces las siguientes reglas se cumplen: A1: Reflexividad: X X se verifica siempre. A2: Aumento: X Y X Z Y Para cualquier Z A3: Transitividad: {X Y, Y Z} X Z A partir de este conjunto de regla se pueden inferir otras como las siguientes: Sean X, Y, Z y W subconjunto de atributos de una relacin R. Entonces se verifican las siguientes reglas: A4: Unin: {X Y, X Z} X Y Z A5: Descomposicin: X Y X Z con Z Y A6: Pseudotransitividad: {X Y, Y Z W} X Z W Por la definicin de cerradura, se puede ver que el conjunto de dependencias funcionales siempre es subconjunto de su cerradura, es decir, F F+. Esto se da porque cualquier dependencia funcional f deriva de F. Adems la cerradura de una cerradura es la propia cerradura, es decir, (F+)+ = F+ SATURACIN: Sea F un conjunto de dependencias funcionales, se llama la saturacin de un conjunto X con respecto a F, y se denota por X+, al conjunto de atributos que son determinados por las dependencias funcionales que se derivan de F, es decir, X+ = {A/ X A se deriva de F}. As, para determinar la cerradura de un conjunto F de dependencias funcionales, es suficiente establecer un algoritmo que genere la saturacin de un conjunto de atributos X. A continuacin se muestra un ejemplo del algoritmo para calcular la saturacin de un conjunto X sobre un conjunto F de dependencias funcionales.

  • Bases de Datos Modelo Relacional: Normalizacin

    Ejemplo: Sea F el siguiente conjunto de d.f. { nmero, direccin -> salario salario, nmero -> telfono salario -> direccin direccin -> telfono fecha-ingreso, direccin -> salario } Se desea encontrar {salario, fecha-ingreso}+. Entonces si aplica el algoritmo se obtiene:

    As se obtiene que el XMAS = { salario, fecha-ingreso}+ = { salario, fecha-ingreso, direccin, telfono} Sean F y G dos conjuntos de d.f. Se dice que Fy G son equivalentes y se denota por F G, si sus coberturas son iguales, es decir, F G si F+ = G+, en este caso se dice que G es una cobertura de F. Un conjunto de d.f. se dice no redundante, si no existe un subconjunto propio G de F, tal que F+ = G+. Def. Sea F un conjunto de d.f.. Sea F* el conjunto de las d.f. de la cerradura de F, en donde el determinante contiene solo un atributo, es decir son d.f. elementales, entonces (F*)+ = F+. Cobertura mnima Def. Una cobertura G de F se dice que es mnima si

    1. Las d.f. de G son elementales 2. No existe un subconjunto propio H de G tal que H+ = F+.

    Bibliografa Carlos A. Gonzlez. Sistemas de Bases de Datos. Editorial Tecnolgica de Costa Rica. 1996