[Php-avanzado] Ejercicios de Normalización - Clase 8

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Dom Mayo 30 17:39:11 ART 2010


Gracias Jesica!

El dom, 30-05-2010 a las 16:07 -0300, eduardo albelo escribió:
> 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? 
> 
> ______________________________________________________________________
> Tu vida no tiene límites, ahora Hotmail tampoco. 25 GB para organizar
> y compartir todo. Hacé clic aquí
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
-- 


Leonardo Tadei
leonardot en pegasusnet.com.ar
Pegasus Tech Supply
Tel: (+54)(+223) 471-2880
La Salle 1131 - Mar del Plata - Argentina
http://www.pegasusnet.com.ar / http://blog.pegasusnet.com.ar
http://www.prometeustech.com.ar / http://www.grupopegasus.com
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
                



Más información sobre la lista de distribución Php-avanzado