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