[Php-avanzado] Ejercicios de Normalización - Clase 8
eduardo albelo
hardraid2004 en hotmail.com
Dom Mayo 30 16:07:06 ART 2010
Buenisimo muchas gracias Jesica.
From: jesicabillia en hotmail.com
To: php-avanzado en pato2.fi.mdp.edu.ar
Date: Sun, 30 May 2010 19:05:15 +0000
Subject: Re: [Php-avanzado] Ejercicios de Normalización - Clase 8
ultima parte--------------
Tercera forma normal (3NF)
Deben estar en 2da forma normal. Se
dice que una tabla está en tercera forma normal si y solo si los campos de la
tabla dependen únicamente de la clave,
dicho en otras palabras los campos de las tablas no dependen unos de otros.
Tomando como referencia el ejemplo anterior, supongamos que cada alumno sólo
puede realizar un único curso a la vez y que deseamos guardar en que aula se
imparte el curso. A voz de pronto podemos plantear la siguiente estructura:
Código
Nombre
Curso
Aula
1
Marcos
Informática
Aula
A
2
Lucas
Inglés
Aula
B
3
Marta
Contabilidad
Aula
C
Estudiemos la dependencia de cada
campo con respecto a la clave código:
•
Nombre depende directamente
del código del alumno.
•
Curso depende de
igual modo del código del alumno.
•
El aula, aunque en
parte también depende del alumno, está mas ligado al curso que el alumno está
realizando.
Por esta última razón se dice que la
tabla no está en 3NF. La solución sería la siguiente:
Tabla A
Código
Nombre
Curso
1
Marcos
Informática
2
Lucas
Inglés
3
Marta
Contabilidad
Tabla B
Curso
Aula
Informática
Aula
A
Inglés
Aula
B
Contabilidad
Aula
C
Qué tan lejos debe llevar la
normalización
La siguiente decisión es ¿qué tan lejos debe llevar la normalización? La
normalización es una ciencia subjetiva. Determinar las necesidades de
simplificación depende de usted. Si su base de datos va a proveer información
aun solo usuario para un propósito simple y existen pocas posibilidades de
expansión, normalizar sus datos hasta la 3FN sea quizá algo extremo. Las reglas
de normalización existen como guías para crear tablas que sean fáciles de
manejar, así como flexibles y eficientes.
A veces puede ocurrir que normalizar sus datos hasta el nivel más alto no tenga
sentido. Por ejemplo, suponga que añade una columna extra para la dirección en
su base de datos. Es muy normal tener dos líneas para la dirección. El esquema
de la tabla podría verse como se muestra a continuación:
Clientes
ID_Cliente
Nombre
Apellidos
Direccion1
Direccion2
De acuerdo con las reglas, si aplica la Primera Forma Normal, la columna de
dirección debería sacarse de esta tabla y reemplazarse con la clave de una
nueva tabla. El resultado de este esquema se muestra a continuación:
Clientes
ID_Ciente
Nombre
Apellidos
Direcciones
ID_Direccion
ID_Cliente
Direccion
La base de datos ahora cumple con la Primera Forma Normal. Los clientes pueden
tener más de una dirección. El problema aquí es que usted ha complicado
demasiado una idea simple, por tratar de seguir las reglas de normalización. En
el ejemplo mostrado, la segunda dirección es totalmente opcional. Está ahí sólo
para recolectar información que pudiera utilizarse como información de
contacto. No hay necesidad de partir la tabla en dos y forzar las reglas de la
normalización. En esta instancia, el exceso de normalización frustra el
propósito para el que se utilizan los datos. Añade, de manera innecesaria, un
nivel más de complejidad. Una buena forma de determinar si está llevando
demasiado lejos su normalización, es ver el número de tablas que tiene. Un
número grande de tablas pudiera indicar que está normalizando demasiado.
Observe su esquema.
¿Está dividiendo tablas sólo para seguir las reglas o estas divisiones son en
verdad prácticas? Éstas son el tipo de cosas que usted, el diseñador de la base
de datos, necesita decidir. La experiencia y el sentido común lo pueden
auxiliar para tomar la decisión correcta. La normalización no es una ciencia
exacta. Es subjetiva.
Existen seis niveles más de normalización que no se han discutido aquí. Ellos
son Forma Normal Boyce-Codd, Cuarta Forma Normal (4NF), Quinta Forma Normal
(5NF) o Forma Normal de Proyección-Unión, Forma Normal de Proyección-Unión
Fuerte, Forma Normal de Proyección-Unión Extra Fuerte y Forma Normal de Clave
de Dominio. Estas formas de normalización pueden llevar las cosas más allá de
lo que necesita. Éstas existen para hacer una base de datos realmente relacional.
Tienen que ver principalmente con dependencias múltiples y claves relacionales.
En resumen
La normalización es una técnica que se utiliza para crear relaciones lógicas
apropiadas entre tablas de una base de datos.
Ayuda a prevenir errores lógicos en la manipulación de datos. La normalización
facilita también agregar nuevas columnas sin romper el esquema actual ni las
relaciones.
Existen varios niveles de normalización: Primera Forma Normal, Segunda Forma
Normal, Tercera Forma Normal, Forma Normal Boyce-Codd, Cuarta Forma Normal,
Quinta Forma Normal o Forma Normal de Proyección-Unión, Forma Normal de
Proyección-Unión Fuerte, Forma Normal de Proyección-Unión Extra Fuerte y Forma
Normal de Clave de Dominio. Cada nuevo nivel o forma lo acerca más a hacer su
base de datos verdaderamente relacional.
Se discutieron las primeras tres formas. Éstas proveen suficiente nivel de
normalización para cumplir con las necesidades de la mayoría de las bases de
datos.
Normalizar demasiado puede conducir a tener una base de datos ineficiente y
hacer a su esquema demasiado complejo para trabajar. Un balance apropiado de
sentido común y práctico puede ayudarle a decidir cuándo normalizar.
¿Sabes que Hotmail tiene capacidad de almacenamiento ilimitada?
_________________________________________________________________
Registrate en Hotmail y disfrutá de 25 GB para organizar y compartir tus documentos.
http://mail.live.com/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://www3.fi.mdp.edu.ar/cgi-bin/mailman/private/php-avanzado/attachments/20100530/0bcf252d/attachment-0001.htm
Más información sobre la lista de distribución Php-avanzado