Curso BD (05-3) Normalización

8
Un esquema de relación esta en BCNF, si para toda dependencia funcional X Y que se cumple en R , Es condición 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)

description

Curso BD (05-3) Normalización

Transcript of Curso BD (05-3) Normalización

  • 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