Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3nf BCNF PDF
3nf BCNF PDF
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
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
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
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
20
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
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