Está en la página 1de 9

3NF Tercera Forma Normal

Est a basada en el concepto de dependencia funcional transitiva: sean X , Y y Z conjuntos de atributos de cierta relaci on

Si X Y y existe un conjunto Z = X , tal que X Z y Z Y se dice que Y depende funcionalmente en forma transitiva de X a trav es de Z
Por ejemplo, supongamos que tenemos el siguiente esquema de relaci on empleado-departamento:
nom emp sueldo cod dept f echa ing nom dept f ech creac

Con las dependencias unica (llave primaria). nom emp llave candidata

cod dept nom dept, f ech creac


En el ejemplo nom dept y f ech creac dependen funcionalmente en forma transitiva de nom emp: nom emp cod dept y cod dept nom dept, f ech creac.

16

3NF Formulaci on
Para entender la idea de 3NF veremos inicialmente un caso particular simple en donde queda claro su aplicaci on.

Supondremos que todas las relaciones tienen una unica llave candidata lo que quiere decir que las llaves primarias se encuentran denidas (c omo lo hicmos con 2NF). Un esquema de Base de Datos se encuentra en 3NF si est a en 2NF y toda relaci on r (R) con llave primaria K cumple que para cualquier atributo A que no sea parte de la llave primaria en R, A no depende funcionalmente en forma transitiva de K ,
B tal que K B y B A

Si relajamos la exigencia que el esquema est e inicialmente en 2NF Cambia la denici on de 3NF?
Un esquema que contenga a la relaci on
nom emp sueldo cod dept f echa ing nom dept f ech creac

No se encuentra en 3NF ya que nom dept y f ech creac que no son parte de la llave primaria, dependen funcionalmente en forma transitiva de nom emp.

17

3NF Soluci on
Soluci on: Primero convertir en 2NF. Sea r (R) la relaci on que viola 3NF, y K la clave primaria de r (R)

Identicar un conjunto de atributos A (A K ) que depende funcionalmente en forma transitiva de K , y el conjunto B que dene la transitividad. Crear una nueva relaci on r (R ) que resulta de r (R) al eliminar el conjunto de atributos A. Crear una nueva relaci on t(B, A) tal que:
t[A] = r [A] t[B ] = r [B ]

La clave primaria de t(B, A) es B , se debe establecer B como llave for anea en r (R ). Eliminar la relaci on r (R) del esquema. r(R) posiblemente aun no se encuentra en 3NF, por lo que se debe repetir el proceso hasta que el esquema est e en 3NF.
nom emp sueldo cod dept f echa ing nom dept f ech creac

nom emp sueldo cod dept f echa ing cod dept nom dept f ech creac

18

3NF Formulaci on (cont.)


En la anterior formulaci on supusimos que las relaciones ten an una unica llave candidata y por lo tanto la llave primaria estaba ja. En general este supuesto puede no ser cierto y entonces 3NF cambian en parte su formulaci on:

Un esquema est a en 3NF si para cada relaci on r (R), si un atributo A no es parte de una llave candidata en R, entonces A no depende en forma transitiva de ninguna llave candidata de R. Es simplemente una generalizaci on del caso anterior pero ahora tomando en cuenta todas las llaves candidatas (no s olo la primaria).
Se puede demostrar que esta ultima denici on es equivalente a: Para cada dependencia funcional no trivial X A (o sea tal que A X ) que existe en r (R) se cumple que

X es una clave candidata de R, o A es parte de una clave candidata de R.


La soluci on es similar a la anterior salvo que se toman en cuenta en total las llaves candidatas, no s olo las llaves primarias. Informalmente:

Eliminar de la relaci on inicial los atributos no parte de una llave candidata que dependen de forma transitiva de una llave candidata. Crear una nueva relaci on con estos atributos m as los atributos que denen la transitividad, siendo estos ultimos llave primaria de la nueva relaci on (se debe incluir tambi en la restricci on de llave for anea).

19

3NF Ejemplo
En el esquema de un ejemplo anterior
cod propiedad municipio municipio numero lote impuesto area precio

donde (municipio, numero lote) es tambi en llave candidata y tenemos la dependencia funcional municipio impuesto. Agregamos la dependencia funcional

area precio
No se encuentra en 3NF ya que precio depende en forma transitiva de una llave candidata: cod propiedad area precio. Equivalentemente, area precio es una dependencia funcional no trivial, area no es una llave candidata y precio no es parte de ninguna llave candidata, luego el esquema no se encuentra en 3NF. Lo arreglamos:
cod propiedad municipio municipio impuesto numero lote area precio area

Este esquema si se encuentra en 3NF.

20

BCNF Forma Normal de Boyce-Codd


Propuesta inicialmente como una forma simplicada de 3NF. Es muy simple de formular, pero result o ser m as estricta que 3NF. Si un esquema est a en BCNF entonces est a en 3NF, pero no necesariamente al rev es. Un esquema est a en BCNF si cada una de sus relaciones r (R) cumple:

Para toda dependencia funcional no trivial X Y en R, X es una llave candidata.


La unica diferencia es que ahora los atributos que son parte de una llave candidata s olo pueden depender de otras llaves candidatas. Consideremos el mismo esquema anterior
cod propiedad municipio municipio impuesto numero lote area precio area

donde agregamos las siguientes restricciones

Supongamos que tenemos muchos lotes pero s olo los municipios de Curic o y Talca. Las supercies de los lotes de Curic o son 0.5, 0.6, 0.7, 0.8 y 0.9, y de los lotes de Talca son 1.0, 1.1, 1.2, 1.3. Obtenemos la nueva dependencia area municipio.
El esquema sigue estando en 3NF, ya que municipio es parte de una llave candidata (no existen dependencias transitivas de atributos no parte de llaves candidatas). Sin embargo el esquema no est a en BCNF ya que el atributo area no es una llave candidata.
21

BCNF Ejemplo
Podemos llevar a BCNF creando una nueva relaci on con esquema (area, municipio).
cod propiedad municipio municipio impuesto numero lote area area

precio

cod propiedad area municipio numero lote municipio area precio area

impuesto

Obtenemos cuatro tablas. Este esquema s se encuentra en BCNF y con esto estamos evitando una gran cantidad de repetici on de informaci on. En general la forma de llevar un esquema a uno equivalente en 3NF es bastante simple, informalmente:

Identicar la relaci on R y la dependencia funcional X A tal que X no es llave en R. Crear una nueva relaci on con atributos X y A, tomando X como llave primaria. Dejar X en R como llave for anea (eliminar los atributos correspondientes de R).

22

Normalizaci on Comparaciones
En resumen, hasta ahora tenemos las formas normales: para cada relaci on del esquema

2NF atributos no parte de llaves candidatas dependen en forma total de todas las llaves candidatas. 3NF atributos no parte de llaves candidatas no dependen en forma transitiva de ninguna llave candidata. BCNF todas las dependencias funcionales son desde llaves (si X Y entonces X es llave).
En general un dise no en 3NF o BCNF se considera bueno (aunque puede mejorarse), la pregunta es entonces Con cu al de los dos quedarse?, si BCNF es mejor podr amos siempre querer llegar a BCNF, pero... El problema de BCNF es que no todos los esquemas pueden descomponerse en uno que cumpla las reglas y no pierda las dependencias funcionales. Siempre necesitamos que las dependencias funcionales sean chequeables independientemente en cada tabla sin tener que hacer los joins correspondientes. En los casos que no se pueda llegar a BCNF nos conformaremos con 3NF.

23

Normalizaci on Comparaciones (cont.)


Ejemplo: pelicula con las dependencias cine ciudad

cine ciudad: los cines son unicos entre ciudades pelicula, ciudad cine: en una ciudad no hay dos cines mostrando la misma pel cula.
Las llaves candidatas son (pelicula, ciudad) y (pelicula, cine) luego no est a en BCNF por la dependencia cine ciudad. Intentamos arreglarlo haciendo: pelicula cine cine ciudad

Este nuevo esquema est a en BCNF, de hecho la unica dependencia funcional no trivial es cine ciudad en la segunda tabla y cine s es una llave en ella. Sin embargo la descomposici on pierde dependencias por ejemplo, podr amos tener los datos: pelicula Star Wars Star Wars cine Cine 3 Stars Cine Rex cine Cine 3 Stars Cine Rex ciudad Curic o Curic o

que son consistentes con las dependencias individuales de cada tabla, peor al hacer join pelicula Star Wars Star Wars cine Cine 3 Stars Cine Rex ciudad Curic o Curic o

perdiendo la dependencia no trivial pelicula, ciudad cine, esta ya no es chequeable, no se puede saber que se viola si no hasta despu es del join.
24

También podría gustarte