Un esquema de relacin esta en BCNF, si para toda
dependencia funcional X Y que se cumple en R ,
Es condicin que X sea una super clave de R.
EJEMPLO : Se tiene el siguiente esquema donde se distinguen todas las dependencias :
Empleado ( codEm, nss, sueldo, codDpto, nomDpto)
Empleado ( codEm, nss, sueldo, codDpto, nomDpto)
La primera dependencia :
Se puede afirmar que codEm es una superclave
Empleado ( codEm, nss, sueldo, codDpto, nomDpto)
La segunda dependencia :
Se puede afirmar que nss es una superclave
Empleado ( codEm, nss, sueldo, codDpto, nomDpto)
La tercera dependencia :
Se puede afirmar que codDpto no es una superclave
Esta dependencia funcional viola la BCNF
SOLUCION : debemos descomponer el esquema :
Empleado ( codEm, nss, sueldo, codDepa )
Departamento ( codDpto, nomDpto)
Empleado ( codEm, nss, sueldo, codDepa )
Departamento ( codDpto, nomDpto)
Ya no hay problema, se cumple la condicin
Aqu tambin se cumple la condicin
EJEMPLO : Considere que cada proyecto tiene un administrador y que cada uno maneja un solo proyecto :
Proyecto administrador Articulo cantUsada
P1 Castro Martillo 10
P1 Castro Taladro 20
P2 Garcia Taladro 30
P2 Garcia Sierra 22
P3 Meneses Martillo 15
UsoProy ( proyecto, administrador, articulo, cantUsada )
Identifiquemos las dependencias :
{administrador, articulo} es una superclave
UsoProy ( proyecto, administrador, articulo, cantUsada )
{proyecto, articulo} es una superclave
UsoProy ( proyecto, administrador, articulo, cantUsada )
Aqu hay dos dependencias funcionales :
Administrador proyecto
proyecto Administrador
Pero ni administrador ni proyecto son superclaves, por tanto violan
la BCNF
SOLUCION : debemos descomponer el esquema :
Uso ( proyecto, articulo, cantUsada )
proyecto ( proyecto, administrador )
Uso ( proyecto, articulo, cantUsada )
{proyecto, articulo} cantUsada
Es una superclave
proyecto ( proyecto, administrador )
Entonces ambos estn en BCNF
Top Related