Normalización 3FN - Universidad Tecnológica de la Mixteca

Anuncio
Base de Datos
Base de Datos
Erik Ramos
3FN
Normalización 3FN
Erik Germán Ramos Pérez
Instituto de Electrónica y Computación
Universidad Tecnológica de la Mixteca
January 22, 2007
Base de Datos
Tabla de Contenido
Base de Datos
Erik Ramos
3FN
1
3FN
Base de Datos
3FN
Base de Datos
Erik Ramos
3FN
3FN
Está basada en el concepto de dependencia transitiva
X →Y
⇒X →Z
Y →Y
Base de Datos
3FN
Base de Datos
Erik Ramos
3FN
3FN
Un esquema de relación r(R), está en 3FN si, y sólo si:
Está en 2FN
No existe ningún atributo no principal (que no pertecene
a la llave primaria) que dependa transitivamente de
algún atributo parte de la llave primaria
Base de Datos
3FN
Base de Datos
Erik Ramos
3FN
3FN
Siempre es posible transformar un esquema de relación que
no esté en 3FN, en esquemas de relación en 3FN, sin que se
produzca pérdida de información o de dependencias.
Base de Datos
3FN
Base de Datos
Erik Ramos
3FN
3FN
La 3FN no se cumple cuando:
Existen atributos no principales que dependen
funcionalmente de otros atributos no principales
Base de Datos
3FN
Base de Datos
Erik Ramos
3FN
3FN
Siempre están en 3FN las relaciones:
Binarias
En las que todos sus atributos son principales
Que tienen un único atributo no principal
Base de Datos
3FN
Base de Datos
Erik Ramos
Ejemplo
3FN
a
1
c, e → b
2
c, e → d
3
b→a
4
d →f
b
R(r)
c
d
e
f
Esta relación no se encuentra se tercera forma normal debido
a que la tercera y cuarta dependencias funcionales dependen
transitivamente de la llave primaria
Base de Datos
3FN
Base de Datos
Erik Ramos
3FN
Ejemplo
b
r’(R’)
c
d
e
R2
a
b
R4
f
d
Estas relaciones ya se encuentra en tercera forma normal
Base de Datos
3FN
Base de Datos
Solución
Primero convertir en 2FN. Sea r (R) una relación que viola
3FN, y K la llave primaria de r (R)
Identificar el conjunto de atributos A (A 6⊆ K ) que
dependen funcionalmente en forma transitiva de K y el
conjunto B que define la transitividad.
Crear una nueva relación r 0 (R 0 ) que resulta de r (R) al
eliminar el conjunto de atributos A.
Crear una nueva realción t(B, A) de tal manera que las
tuplas se cumplan:
t[A] = r [A] ⇐⇒ t[B] = r [B]
Erik Ramos
3FN
Base de Datos
3FN
Base de Datos
Erik Ramos
3FN
Solución
La llave primaria de t(B, A) es B, también se debe
establecer a B como llave foránea en r 0 (R 0 )
Eliminar la relación r (R) del esquema
A pesar de que t(K 0 , A) está en 3FN, r 0 (R 0 )
posiblemente aún no se encuentra en 3FN, por lo que se
debe repetir el proceso hasta que el esquema esté en
3FN
Base de Datos
3FN
Base de Datos
Erik Ramos
3FN
Solución
a
b
R(r)
c
d
e
f
Para la primera y segunda dependencia que viola la 3FN
A = {a}
B = {b}
R2 = t(A,B)
a
b
b
r(R) - A = r’(R’)
c
d
e
f
Esta nueva relación r’(R’) por la tercera y cuarta dependencia aún sigue violando la 3FN
Base de Datos
3FN
Base de Datos
Erik Ramos
Solución - Continuación
3FN
renombramos a r’(R’) como R3
b
c
R3
d
e
f
A = {f }
B = {d}
R4 = t(A,B)
f
d
R3 - A = r’(R’)
b
c
d
e
Esta nueva relación r’(R’) ya se encuentra en 3FN, junto con R2 y R4 y cumpliendo con todas las
dependencias originales
Descargar