ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Normalizacion

crissrl1910 de Junio de 2014

2.822 Palabras (12 Páginas)214 Visitas

Página 1 de 12

TEORIA DE LA NORMALIZACION

Cuando se diseña una base de datos mediante el modelo relacional, al igual que ocurre en otros modelos de datos, tenemos distintas alternativas, es decir, podemos obtener diferentes esquemas relacionales y no todos son equivalentes, ya que algunos van a representar la realidad mejor que otros.

Es necesario conocer qué propiedades debe tener un esquema relacional para representar adecuadamente una realidad y cuáles son los problemas que se pueden derivar de un diseño inadecuado.

La teoría de la Normalización es un método objetivo y riguroso que se aplica en el diseño de bases de datos relacionales.

Cuando estudiamos la estructura del modelo relacional, nos dimos cuenta que la base de datos puede representarse por medio de un conjunto de objetos (dominios y relaciones) y de un conjunto de reglas de integridad.

El esquema relacional puede obtenerse de dos formas distintas:

Directamente a partir de la observación de nuestro universo del discurso, en donde especificamos conjuntos de atributos, relaciones y restricciones que corresponden a los observados en el mundo real.

Realizando el proceso de diseño en dos fases, primero el diseño conceptual (E/R) obteniendo el esquema conceptual y posteriormente transformar éste a un esquema relacional, siguiendo algunas reglas generales, que fueron dadas anteriormente.

Algunos problemas que se pueden presentar son:

Incapacidad para almacenar ciertos hechos

Redundancias y por tanto, posibilidad de incoherencias

Ambigüedades

Pérdida de información (aparición de tuplas espúreas)

Pérdida de dependencias funcionales, es decir, ciertas restricciones de integridad que dan lugar a interdependencias entre los datos.

Aparición en la BD de estados no válidos, es decir, anomalías de inserción, borrado y modificación.

En conclusión el esquema relacional obtenido debe ser analizado para comprobar que no presenta los problemas anteriores.

Analicemos la siguiente relación: ESCRIBE

AUTOR

NACIONALIDAD

COD_LIBRO

TITULO

EDITORIAL

AÑO

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 relación 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 mas de un autor, se repite la editorial y el año de publicación.

Anomalías de modificación, es fácil 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.

Anomalías de inserción, ya que si queremos ingresar información de algún autor, del que no hubiera ningún libro en la base datos, no sería posible, ya que cod_libro es parte de la

clave primaria de la relación (regla de integridad de la entidad). La inserción de un libro, que tiene dos autores obliga a insertar dos tuplas en la relación.

Anomalías de borrado, ya que si queremos eliminar un cierto libro, deberíamos 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 básico de todo diseño:

"hechos distintos, deben almacenarse en objetos distintos"

Una forma de evitar este tipo de problemas consiste en seguir la metodología propuesta en el curso, es decir, un riguroso diseño 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 método formal de análisis, que permita analizar errores y generar esquemas correctos. Esta es la teoría de la normalización.

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

LIBRO( cod_libro, titulo, editorial, año )

AUTOR( nombre, nacionalidad )

ESCRIBE( cod_libro, nombre )

La normalización introduce una técnica formal para diseñar bases de datos relacionales, y permite mecanizar parte del proceso al disponer de algoritmos de normalización.

Una observación importante, es que las anomalías antes descritas se producen en procesos de actualización y no en procesos de consulta. La normalización penaliza las consultas, al disminuir la eficiencia, ya que la normalización aumenta el nro. de relaciones presentes en la base de datos, por lo que una determinada consulta puede llevar consigo el acceso a varias tablas, lo que aumenta el costo de ésta.

1.-Noción intuitiva de las formas normales

La normalización tiene como objetivo obtener esquemas relacionales que cumplan determinadas condiciones, a través de las formas normales.

Primera Forma Normal (1FN) fue introducida por Codd, en su primer trabajo. Es una restricción inherente al modelo relacional por lo que su cumplimiento es obligatorio. Consiste en la prohibición de que en una relación existan grupos repetitivos, es decir, un atributo no puede tomar más de un valor del dominio subyacente.

Segunda Forma Normal (2FN), fue introducida por Codd. Una relación está en 2FN, si además de estar en 1FN, todos los atributos que no forman parte de ninguna clave candidata suministran información acerca de la clave completa.

Para la relación PRESTAMO( num_socio, nombre_socio, cod_libro, fec_prest, editorial, país )

las claves candidatas son:

(num_socio, cod_libro) y (nombre_socio, cod_libro)

Se puede observar que ciertos atributos que no forman parte de las claves candidatas, tal como editorial, constituye información acerca del libro, pero no acerca de la clave completa. Luego, la relación préstamo no se encuentra en 2FN.

La solución es descomponer esta relación en las siguientes:

PRESTAMO1( num_socio, nombre_socio, cod_libro, fec_prest )

LIBRO( cod_libro, editorial, país )

En la relación PRESTAMO1, el único atributo que no forma parte de las claves candidatas es fec_prest, pero suministra información acerca de la clave completa. Por lo que está en 2FN.

La relación LIBRO, la clave es cod_libro, y los dos atributos: editorial y país suministran información de la clave completa. Por lo tanto, está en 2FN.

OBS: Una relación que está formada por un único atributo esta en 2 FN.

Tercera Forma Normal (3FN), propuesta por Codd. Una relación está en 3FN, si además de estar en 2FN, los atributos que no forman parte de ninguna clave candidata facilitan información sólo

acerca de la(s) clave(s) y no acerca de otros atributos.

En la relación PRESTAMO1, el atributo fec_prest facilita información acerca de las claves, ya que no existen más atributos. Por lo que está en 3FN.

En la relación LIBRO, el atributo país entrega información acerca de la editorial que publica el libro, por lo que no está en 3FN.

La solución es descomponerla en:

LIBRO1( cod_libro, editorial )

EDITORIAL( editorial, país ),

que están en 3FN, ya que todo atributo no clave facilita información acerca de la clave.

Forma Normal de Boycce y Codd (FNBC). La relación PRESTAMO1, que está en 3FN, todavía presenta anomalías, ya que num_socio y nombre_socio, se repiten innecesariamente por cada cod_libro. Una relación está en FNBC si y solo si, el conocimiento de las claves candidatas permite averiguar todas las interrelaciones existentes entre los datos de la relación, o lo que es igual, las claves candidatas son los únicos descriptores sobre los que se facilita información por cualquier otro atributo.

En la relación PRESTAMO1, num_socio es información acerca de nombre_socio y viceversa. Ninguno de estos atributos son clave (aunque formen parte de la clave). Para solucionarlo la descomponemos:

SOCIO( num_socio, nombre_socio )

PRESTAMO2( num_socio, cod_libro, fec_prest ), que están en FNBC.

Hasta ahora nuestro esquema relacional está compuesto por las siguientes relaciones en FNBC:

LIBRO1( cod_libro, editorial )

EDITORIAL( editorial, país )

SOCIO( num_socio, nombre_socio )

PRESTAMO2( num_socio, cod_libro, fec_prest )

La teoría de la normalización se basa en restricciones definidas sobre los atributos de una relación. que son conocidas como dependencias. Existen varios tipos de dependencias:

Funcionales, relacionadas con la 2FN y 3FN y FNBC

Multivaluadas, relacionadas con la 4FN

De proyección o combinación, relacionadas con la 5FN.

2.-Dependencias funcionales

Sea el esquema de relación R definido sobre

...

Descargar como (para miembros actualizados) txt (20 Kb)
Leer 11 páginas más »
Disponible sólo en Clubensayos.com