[Php-avanzado] Ejercicios de Normalización - Clase 8
Jesica Billia
jesicabillia en hotmail.com
Dom Mayo 30 16:04:25 ART 2010
apunte - 2da parte---------------------
Primera forma normal (1NF)
Se dice que una tabla se encuentra en
primera forma normal (1NF) si y solo si cada uno de los campos contiene un
único valor para un registro determinado. Supongamos que deseamos realizar una
tabla para guardar los cursos que están realizando los alumnos de un
determinado centro de estudios, podríamos considerar el siguiente diseño:
Código
Nombre
Cursos
1
Marcos
Inglés
2
Lucas
Contabilidad,
Informática
3
Marta
Inglés,
Contabilidad
Podemos observar que el registro de
código 1 si cumple la primera forma normal, cada
campo del registro contiene un único dato, pero no ocurre así con los
registros 2 y 3 ya que en el campo cursos contiene más de un dato cada uno. La
solución en este caso es crear dos tablas del siguiente modo:
Tabla A
Código
Nombre
1
Marcos
2
Lucas
3
Marta
Tabla B
Código
Curso
1
Inglés
2
Contabilidad
2
Informática
3
Inglés
3
Informática
Como se puede comprobar ahora todos
los registros de ambas tablas contienen valores únicos en sus campos, por lo
tanto ambas tablas cumplen la primera forma normal.
Una vez normalizada la tabla en 1NF, podemos
pasar a la segunda forma normal.
Segunda
forma normal (2NF)
La segunda forma normal compara todos
y cada uno de los campos de la tabla con la clave definida. Si todos los campos dependen directamente de la clave
se dice que la tabla está es segunda forma normal (2NF).
Supongamos que construimos una tabla
con los años que cada empleado ha estado trabajando en cada departamento de una
empresa:
Código
Empleado
Código
Dpto.
Nombre
Departamento
Años
1
6
Juan
Contabilidad
6
2
3
Pedro
Sistemas
3
3
2
Sonia
I+D
1
4
3
Verónica
Sistemas
10
2
6
Pedro
Contabilidad
5
Tomando como punto de partida que la
clave de esta tabla está formada por los campos código de empleado y código de
departamento, podemos decir que la tabla se encuentra en primera forma normal,
por tanto vamos a estudiar la segunda:
1.
El campo nombre no
depende funcionalmente de toda la clave, sólo depende del código del empleado.
2.
El campo
departamento no depende funcionalmente de toda la clave, sólo del código del
departamento.
3.
El campo años si
que depende funcionalmente de la clave ya que depende del código del empleado y
del código del departamento (representa el número de años que cada empleado ha
trabajado en cada departamento)
Por tanto, al no depender todos los
campos de la totalidad de la clave la tabla no está en segunda forma normal, la
solución es la siguiente:
Tabla A
Código
Empleado
Nombre
1
Juan
2
Pedro
3
Sonia
4
Verónica
Tabla B
Código
Departamento
Dpto.
2
I+D
3
Sistemas
6
Contabilidad
Tabla C
Código
Empleado
Código
Departamento
Años
1
6
6
2
3
3
3
2
1
4
3
10
2
6
5
Podemos observar que ahora si se
encuentras las tres tabla en segunda forma normal, considerando que la tabla A
tiene como índice el campo Código Empleado, la tabla B Código Departamento y la
tabla C una clave compuesta por los campos Código Empleado y Código
Departamento.
_________________________________________________________________
Diseñar aplicaciones tiene premio. ¡Si eres desarrollador no esperes más!
http://www.imaginemobile.es
------------ 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/add2ac0f/attachment-0001.htm
Más información sobre la lista de distribución Php-avanzado