Diseño de Bases de datos

download Diseño de Bases de datos

of 56

description

Diseño de Bases de Datos

Transcript of Diseño de Bases de datos

  • 3.- Diseo de bases de datos

    3.1 Consideraciones sobre el diseo de bases de datos3.2 Anomalas presentes en el diseo3.3 Dependencias funcionales3.4 Formas Normales3.4.1 Primera Forma Normal3.4.2 Segunda Forma Normal3.4.3 Tercera Forma Normal3.4.4 Forma Normal de Boyce-Codd3.4.5 Cuarta Forma Normal3.4.6 Quinta Forma Normal

  • 3.1 Modelado de la base de datos El primer paso en la creacin de una base de datos es la

    construccin de un modelo de datos, mediante una precisa y completa definicin de los datos a ser almacenados.

    El modelo Entidad-Asociacin (EA) es un mtodo de modelado que usa los siguientes pasos:1.- Identifica y define los objetos de datos principales (entidades,

    relaciones y atributos)2.- Diagrama los objetos de datos usando una aproximacin entidad-

    asociacin.3.- Traslada los objetos de datos entidad-asociacin en

    construcciones relacionales.4.- Resuelve el modelo lgico de datos5.- Normaliza el modelo lgico de datos.

  • Identificacin de entidades El primer paso en la construccin de un modelo de datos E-A es

    identificar y definir los objetos de datos principales. Los objetos de datos principales son las entidades, las relaciones y los atributos.

    Un entidad es el principal objeto de datos que tiene un inters significativo al usuario. Es usualmente una persona, un lugar, una cosa, o un evento a ser registrado en la base de datos. Se puededecir que son los sustantivos, comparndolo con un lenguaje.

    Primeramente se debe hacer una lista preliminar de todas las entidades que pueden ser identificadas. Entreviste a los usuarios potenciales de la base de datos por sus opiniones acerca qu debe ser guardado. Todas las decisiones que se hagan en la determinacin de las entidades es lo que se conoce como las reglas del negocio.

  • Caractersticas de las entidades Cuando la lista de entidades parezca completa, deprela

    asegurndose que cada una de las entidades cumple con las siguientes cualidades:- Es significativa. Es importante para el usuario de la base de datos.- Es genrica. Lista slo tipos de cosas, no instancias individuales.- Es fundamental. Listar solo entidades que existan independientemente,

    sin necesidad que alguna otra la explique - Es unitaria. Debe representar una clase simple; no debe ser

    descompuesta en categoras. Despus que se hayan elegido las entidades, se deben considerar

    las relaciones entre ellas. La nica forma de asegurarse que todas las relaciones han sido descubiertas es listar todas las posibles relaciones exhaustivamente.

  • Identificacin de atributos En la seleccin de los atributos, se deben elegir los que

    cumplan las siguientes caractersticas:- Sean significativos. Aquellos que sean usados por el

    usuario.- Sean directos, no derivados. No deben ser compuestos por

    los valores de otros atributos.- No se puedan descomponer. Debe contener valores

    simples, excluyendo las listas y los grupos repetidos.- Deben contener datos del mismo tipo. Deben ser

    consistentes con el valor que almacenan. Se debe tener presente que las entidades se convertirn

    en tablas, los atributos en columnas, y los renglones en ocurrencias de entidades, cuando se haga la traduccin al modelo relacional.

  • Posibles causas de error Si no se puede encontrar un lugar para colocar

    un atributo que cumpla estas reglas, probablemente sea producto de uno de los siguientes errores:- El atributo no est bien definido.- El atributo es derivado, no directo.- El atributo es realmente una entidad o una relacin.- Algunas entidades o relaciones estn perdidas en el

    modelo.

  • Traduccin del modelo E-A al Relacional Todos los objetos de datos, como son la entidades, las

    relaciones, los atributos y las ocurrencias de entidades deben ser trasladadas en tablas de SQL, reuniones entre tablas, columnas y renglones.

    Cada entidad elegida es representada como una tabla en el modelo. La tabla permanece, para una entidad, como un concepto abstracto, y cada rengln representa una ocurrencia, individual y especfica, de la entidad. En adicin, cada atributo de una entidad es representado por una columna en la tabla.

  • Reglas en la construccin de tablas Se deben seguir las siguientes reglas para la definicin de tablas en

    el modelo relacional:- Los renglones deben ser independientes.- Cada rengln en una tabla no

    debe depender de otro rengln en la misma tabla. - Los renglones deben ser nicos.- En cada rengln, algunas columnas

    deben contener un valor nico. Si esto no se cumple, entonces se debe considerar los valores en un grupo de columnas para cada rengln.

    - Los valores en las columnas deben ser unitarios.- Una columna slo debe contener valores sencillos, nunca listas de valores o grupos repetidos.

    - Cada columna debe tener un nombre nico.- No se puede repetir el mismo nombre para columnas que pertenecen a la misma tabla.

    - Cada columna debe contener datos de un slo tipo.- No se pueden contener valores que correspondan a diferentes dominios.

  • Restricciones de columnas Cuando se han definido las tablas y sus columnas, se deben

    analizar tambin sus restricciones para cada columna. Un dominio describe las restricciones cuando se identifican los valores vlidos que pueden ser tomados por un atributo. Los dominios ms empleados caen entre los siguientes:- Tipos de datos (enteros, caracteres, etc.)- Formatos (dd/mm/aaaa)- Rangos (500 a 10000)- Significados (RFC)- Valores permitidos (N, C, S)- Unicidad- Soporte de nulos- Valores por omisin- Restricciones referenciales.

  • Llaves asignadas por el usuario Algunas entidades tienen llaves primarias fabricadas, como en los

    cdigos de los catlogos o los nmeros de identificacin, que son definidos fuera del modelo. Estas son llaves asignadas por el usuario.

    Todas las columnas o grupos de columnas que tienen las cualidades de ser llave primaria son llamadas llaves candidatas.Algunas entidades carecen de caractersticas de unicidad para algunos de sus atributos, por lo que se usa la composicin de atributos para que trabaje como llave primaria, lo que conforma una llave compuesta.

    Las llaves asignadas por el sistema usualmente son preferibles que las llaves compuestas. Una llave asignada por el sistema es un nmero o cdigo que es establecido a cada instancia de la entidad cuando una ocurrencia de entidad (un rengln) es ingresada por primera vez en la base de datos.

  • Llaves forneas Una llave fornea es simplemente una columna o grupo de

    columnas en una tabla que contiene valores que corresponden a los valores de la llave primaria de otra tabla. Las llaves forneas son usada para reunir tablas.

    La presencia de llaves forneas restringe la capacidad de eliminar renglones de tablas; antes de eliminar un rengln, deben de eliminarse todos los renglones que hagan referencia a travs de la llave fornea.

    La integridad referencial debe preservarse eliminando todos los renglones de la llave fornea antes de eliminar la llave primaria a la que esta refiere.

    Si hay imposiciones de integridad referencial en la base de datos, el servidor de base de datos no permitir que las llaves primarias sean eliminadas cuando tengan asociadas a llaves forneas. Asimismo, no permitir agregar valores de llaves forneas cuando no exista una referencia a un valor existente como llave primaria.

  • Principios de diseo relacional Las relaciones deben tener una unidad semntica La repeticin de informacin debe de ser evitada

    Anomalas: de insercin, de eliminacin y de actualizacin

    Evitar los valores nulos tanto como sea posible Es difcil la interpretacin

    No se sabe, no tiene importancia, es conocido pero no disponible, no aplica

    Dificultades en las reuniones Evitar las reuniones no necesarias

  • Suponer... Para guardar los empleados y los proyectos involucrados...

    Emp_proy(NoEmp, NombEmp, Titulo, Salario, NoProy, NombProy, Presup, Duracion, Resp)

    Consultor10250000CAD/CAMJ327000Ing. MecanicoA. LeeE3

    Analista24150000InstrumentacionJ134000Analista SistemasM. SmithE2

    Analista6135000Desarrollador DatabaseJ234000Analista SistemasM. SmithE2

    RespDuracionPresupNombProyNoProySalarioTituloNombEmpNoEmp

    Administrador40250000CAD/CAMJ334000Sistemas AnalJ. JonesE8

    Ingeniero36250000CAD/CAMJ327000Ing. MecanicoR. DavisE7

    Administrador48310000ManteniemientoJ440000Ing. Elctrico L. ChuE6

    Administrador24135000Desarrollador DatabaseJ234000Analista SistemasB. CaseyE5

    Analista18135000Desarrollador DatabaseJ224000ProgramadorJ. MillerE4

    Programador48310000ManteniemientoJ427000Ing. MecanicoA. LeeE3

    Administrador12150000InstrumentacionJ140000Elctrico Ing.J. DoeE1

  • Repeticin de la informacin Los valores de los atributos Titulo, Salario y Presup estn repetidos para cada

    proyecto en que un empleado este involucrado Desperdicio de espacio Actualizaciones complicadas

    Consultor10250000CAD/CAMJ327000Ing. MecanicoA. LeeE3

    Analista24150000InstrumentacionJ134000Analista SistemasM. SmithE2

    Analista6135000Desarrollador DatabaseJ234000Analista SistemasM. SmithE2

    RespDuracionPresupNombProyNoProySalarioTituloNombEmpNoEmp

    Administrador40250000CAD/CAMJ334000Sistemas AnalJ. JonesE8

    Ingeniero36250000CAD/CAMJ327000Ing. MecanicoR. DavisE7

    Administrador48310000ManteniemientoJ440000Ing. Elctrico L. ChuE6

    Administrador24135000Desarrollador DatabaseJ234000Analista SistemasB. CaseyE5

    Analista18135000Desarrollador DatabaseJ224000ProgramadorJ. MillerE4

    Programador48310000ManteniemientoJ427000Ing. MecanicoA. LeeE3

    Administrador12150000InstrumentacionJ140000Elctrico Ing.J. DoeE1

  • 3.2 Anomalas Insercin

    Es difcil (o imposible) almacenar informacin de un nuevo proyecto a menos de que haya un empleado asignado a l.

    Eliminacin Si un empleado deja la compaa, y es el nico

    asignado a un proyecto, no puede ser eliminado porque se perdera la informacin acerca del proyecto

    Modificacin Si un atributo de un proyecto es modificado, todas las

    tuplas de todos los empleados que trabajan en ese proyecto necesitan ser modificadas

  • Que hacer? Tomar cada relacin individualmente y mejorarla en trminos

    de las caractersticas deseadas Formas Normales

    Slo valores atmicos (1NF) Pueden ser definidas de acuerdo a llaves y dependencias Dependencias Funcionales (3NF) Dependencias multivaluadas (4NF)

    Normalizacin Es el proceso de separacin conceptual, el cual produce un

    esquema por refinamientos subsecuentes y descomposiciones No se combinan conjuntos no relacionados de hechos en una tabla;

    cada relacin debe contener un conjunto de hechos independiente Surge del articulo Further Normalization of the DataBase Relational

    Model de E. F. Codd, en 1972

  • Criterios de la normalizacin Como descomponer un esquema en la forma normal deseable? Que criterio debe seguir el esquema descompuesto de manera

    de conservar la semntica del esquema original? Resconstructibilidad: recuperar la relacin original sin tener

    reuniones innecesarias Descomposicin sin perdidas: no hay perdida de informacin Conservacin de dependencias: las restricciones que estn en la

    relacin original deben forzarse mediante las restricciones definidas en las relaciones descompuestas

    Que sucede con las consultas? El tiempo de procesamiento se incrementa debido a las reuniones

  • Definiciones Superllave

    Conjunto de uno o ms atributos, los cuales, tomados como conjunto, permiten identificar de manera nica a una tupla en la relacin.

    Llave primaria Es la llave candidata que es elegida por el diseador de la

    base de datos como la llave principal Atributos

    Un atributo primo es miembro de cualquier llave Un atributo no primo es un atributo que no es miembro de una llave

  • 3.3 Dependencias Funcionales El atributo B de una relacin R es funcionalmente dependiente del

    atributo A de R s, en cada instante, cada valor de A est asociado con no ms de un valor de B dentro de la relacin R

    Definicin: Dada una relacin R definida sobre U={A1, A2, ...An} donde X U, Y U.

    Si, para todos los pares de tuplas t1 y t2 en cualquier instancia legal del esquema de la relacin R, t1[X] = t2[X] t1[Y]= t2[Y], entonces hay una dependencia funcional X Y en R

    Ejemplo: En la relacin EMP_PROY

    (NoEmp, NoProy) (NombEmp, Titulo, Salario, Duracion, Resp) NoEmp (NombEmp, Titulo, Salario) NoProy (NombProy, Presup) Titulo Salario

    NoEmp NombEmp Titulo Salario NoProy NombProy Presup Duracion Resp

  • Dependencias funcionales

    K es una superllave de un esquema de una relacin R, s y slo s K R

    K es una llave candidata de R s y slo s K R, y para A K, A R

    Las dependencias funcionales permiten expresar restricciones que no pueden ser expresadas usando superllaves.

    Una dependencia funcional es trivial si es satisfecha para todas las relaciones. En general, es trivial si

  • Dependencias funcionales Dependencia funcional completa (DFC)

    Una DF es completa si X es mnimo, esto es, quitando cualquier atributo A de X significa que la dependencia no existe ms

    Dependencia funcional parcial (DFP) Si se elimina algn atributo A de X, la dependencia an

    permanece Dependencia transitiva

    Si existe un conjunto de atributos Z de X, que no es llave candidata ni es un subconjunto de cualquier llave de X, y X Z y Z Y, entonces X Y

  • Reglas de Inferencia para dependencias funcionales Es posible inferir DF de un conjunto de DF (F) si X Y

    cumple para cada estado de una relacin La cerradura F+ de F es el conjunto de todas las DF que

    pueden ser inferidas de F. R1. Regla Reflexiva: Si X Y, entonces X Y R2. Regla de aumentacin: {X Y} XZ YZ R3. Regla transitiva: {X Y, Y Z} X Z R4. Regla de descomposicin: {X YZ} X Y R5. Regla aditiva: {X Y, X Z} X YZ R6. Regla pseudotransitiva: {X Y, WY Z} WX Z

    Las reglas R1 a R3 son conocidas como los axiomas de Argmstrong

  • Metas del diseo Las metas para un buen diseo de una base de datos relacional son:

    Deben estar en BCNF. Reuniones sin pedidas. Conservacin de dependencias.

    Si no es posible obtener esto, se debe aceptar: Falta de conservacin de dependencias, o Redundancia debido al uso de la 3NF.

    Interesantemente, el SQL no proporciona una forma directa de especificar las dependencias funcionales ms que las superllaves.

    Se pueden especificar las DF usando aserciones, pero son costosas de probar.

    Incluso si se tienen descomposiciones con conservacin de dependencias, usando SQL no es posible comprobar eficientemente una dependencia funcional cuyo lado izquierdo no es una llave.

  • 3.4 Formas Normales

    Las formas normales pueden ser definidas de acuerdo a las llaves y dependencias Dependencias funcionales

    Llaves primarias (1FN, 2FN, 3FN) Llaves candidatas (2FN, 3FN, BCFN)

    Dependencias multivaluadas (4FN) Dependencias de reunin (5FN)

  • Normalizacin usando Dependencias Funcionales Cuando se descompone un esquema de una relacin R con un

    conjunto de dependencias funcionales F en R1, R2,.., Rn, se debe cumplir: Descomposicin de reunin sin prdidas: No debe existir prdida de

    informacin volver a reconstruir la relacin. No redundancia: Las relaciones Ri preferentemente deben estar en la

    Tercera Forma Normal o de Boyce-Codd. Conservacin de Dependencias: Sea Fi el conjunto de dependencias F+

    que incluyan slo atributos en Ri. Preferentemente la descomposicin debe preservar las dependencias, esto es,

    (F1 F2 Fn)+ = F+

    De otra forma, la validacin de actualizaciones para la violacin de las dependencias funcionales puede requerir del clculo de uniones, lo cual es costoso.

  • Formas Normales

    Se descompone y establece una relacin que incluya los atributos no llaves que funcionalmente determinen otros atributos no llave

    La relacin no debe tener atributos no llave funcionalmente determinados por otro atributo no llave (o por un conjunto de atributos no llave). Esto es, no debe haber dependencia transitiva del atributo no llave en la llave primaria

    Tercera (3NF)

    Se descompone y establece una nueva relacin para cada llave parcial con sus atributos dependientes. Se debe asegurar mantener la relacin con la llave primaria y cualquier atributo que sea dependiente funcional completo en este

    Para relaciones donde la llave primaria contiene varios atributos, los atributos no llave no deben ser funcionalmente dependientes en una parte de la llave primaria

    Segunda (2NF)

    Se forman nuevas relaciones para cada valor no atmico o relacin anidada

    La relacin no debe tener atributos no atmicos o relaciones anidadas

    Primera (1NF)

    NormalizacinPruebaForma normal

  • Formas Normales

    Primera Forma Normal (1NF)

    Segunda Forma Normal (2NF)

    Tercera Forma Normal (3NF)

    Boyce-Codd Forma Normal (BCNF)

    Elimina las dependencias funcionales parciales de atributos no primos a los atributos llave

    Elimina las dependencias funcionales transitivas de atributos no primos a los atributos llave

    Elimina las dependencias funcionales parciales y transitivas de atributos primos a la llave

    Elimina las relaciones dentro de relaciones o las relaciones como atributos de tuplas

  • 3.4.1 Primera Forma Normal (1NF)

    Todos los valores de los atributos son atmicos Una relacin en 1NF no puede tener un valor de

    atributo que sea: Un conjunto de valores Una tupla de valores (relacin anidada)

    Es una suposicin estndar en los SABD relacionales

    En los SABD orientados a objetos esta suposicin es relajada

  • Ejemplo Supongamos:

    Departmentos(DNomb, DNo, Locaciones)en donde Locaciones es un atributo multivalor

    Tres posibles soluciones: Quitar el atributo Locaciones y ponerlo en otra relacin, junto

    con la llave primaria DNomb Repetir cada tupla de Departmentos para cada valor de

    Locaciones (esto viola la no duplicidad de la llave primaria) Establecer un nuevo atributo (digamos Locacion1, ...,

    LocacionN) para cada valor de Locaciones (esto es imprctico, porque no se sabe cul es el nmero mximo de valores, adems de que generan valores nulos)

    Solucin: Se toma la primera opcin y se tiene:Departmentos(DNomb, DNo)Locaciones(DNomb, Loc)

  • 3.4.2 Segunda Forma Normal (2NF) Un esquema de una relacin est en 2NF si est en

    1NF y si cada atributo no primo A en R no es parcialmente dependiente (o es completamente dependiente) de cualquier llave candidata de R

    Las dependencias funcionales parciales causan problemas

    La 2NF es importancia histrica, ya que es sobrepuesta por la 3NF

    En el ejemplo, Emp_Proy no est en 2NF, por lo que se descompone como:Empleado(NoEmp, NombEmp, Titulo, Salario)Proyecto(NoProy, NombProy, Presup)Asignado(NoEmp, NoProy, Duracion, Resp)

  • Ejemplo Suponga la definicin de la tabla matricula como sigue:

    Matricula (cveAlumno, IdAsignatura, apellidos, nombre, nota, curso, aula, lugar) En donde

    El atributo IdAsignatura es el identificador de las asignaturas donde esta matriculado el alumno

    El atributo aula representa el aula donde se imparte el curso El atributo lugar representa los lugares de estudio en donde se

    imparten las asignaturas El atributo curso es el curso en el que se imparte una asignatura. De

    aqu se tiene que IdAsignatura curso Dado que existe una dependencia funcional no completa entre

    atributos que no forman parte de la llave, no se encuentra en la2FN

  • Ejemplo Se descompone la relacin en:

    Imparte (IdAsignatura, curso)Matricula (cveAlumno, IdAsignatura, apellidos, nombre, nota, aula, lugar)

    De aqu, Imparte queda en 2FN, en donde el atributo primo curso depende completamente de la llave.

    Sin embargo, se observa que en Matricula existe la DF cveAlumno apellidos, nombre, por lo que se procede a descomponer la relacin en:Alumno (cveAlumno, apellidos, nombre)Matricula (cveAlumno, IdAsignatura, nota, aula, lugar)

    Lo que finalmente produce:Imparte (IdAsignatura, curso)Alumno (cveAlumno, apellidos, nombre)Matricula (cveAlumno, IdAsignatura, nota, aula, lugar)

    que cumple la 2FN

  • 3.4.3 Tercera Forma Normal (3NF) Una relacin est en 3NF si est en 2NF y si no hay atributos

    no primos de R transitivamente dependientes en la llave primaria

    Lo necesario es eliminar las dependencias transitivas (la ausencia de dependencias transitivas garantiza la ausencia de dependencias funcionales parciales)

    Formalmente: Un esquema de una relacin R definido sobre U={A1, A2, ...An}

    est en 3NF si para todas las dependencias funcionales que estn en R de la forma X Y, donde X U y Y U, al menos una de las siguientes opciones se cumple: X Y es una dependencia funcional trivial (esto es, Y X) X es una superllave de R Y est contenida en una llave candidata para R (Y es un

    conjunto de atributos primos) Las primeras dos condiciones tratan con

    dependencias transitivas

  • Ejemplo de 3NF

    EmpleadoNoEmp NombEmp Titulo Salario

    fd1fd2 Empleado no est en 3NF por fd2

    Titulo Salario pero Titulo no es una superllave y Salarioes no primo

    El problema es que NoEmp transitivamente determina Salario

    Solucin:Empleado PagoNoEmp NombEmpTitulo Titulo Salario

    fd1 fd2

  • Ejemplo

    Regresando al ejemplo de la 2FN, observemos la relacin Matricula:Matricula (cveAlumno, IdAsignatura, nota, aula, lugar)

    Si se considera que cada aula esta ubicada en un slo lugar, y que una asignatura se imparte en una nica aula, se tiene una dependencia funcional entre lugar y aula, adems de la DF completa entre estos y la clave primaria de Matricula.

    cveAlumno, IdAsignatura aula cveAlumno, IdAsignatura lugar aula lugar

  • Ejemplo

    De aqu, se descompone en las siguientes relaciones:Ubicacin (aula, lugar)Matricula (cveAlumno, IdAsignatura, nota, aula)

    Lo cual elimina las DF transitivas. Las relaciones finales quedan como sigue:Imparte (IdAsignatura, curso)Alumno (cveAlumno, apellidos, nombre)Ubicacin (aula, lugar)Matricula (cveAlumno, IdAsignatura, nota, aula)

  • Normalizacin

    Las formas normales fueron originalmente definidas en trminos de sus llaves primarias (una relacin est en 3FN si no hay dependencias parciales o transitivas en la llave primaria)

    La siguiente relacin no satisface la definicin de 3FN (donde SID es un nmero de seguro social nico)

    EstudianteNoEst SID Nombre Direccion

    fd1fd2

  • Normalizacin

    Sin embargo, no parece que haya nada mal en el esquema de la relacin (no conlleva a ninguna anomala)

    EstudianteNoEst SID Nombre Direccion

    fd1fd2

    La razn de la falta de anomalas es que SID es una llave candidata, y cualquier atributo funcionalmente dependiente completo en la llave primaria tambin ser completamente funcionalmente dependiente de la llave candidato (o llaves)

  • 3.4.4 Forma Normal de Boyce-Codd Todava se pueden seguir teniendo dependencias transitivas en

    3NF si los atributos dependientes son primos Un esquema de relacin R est en BCNF si para cada

    dependencia funcional no trivial X Y, X es una superllave Propiedades:

    Todos los atributos no primos son completamente dependientes en cada llave

    Todos los atributos primos son completamente dependientes en las llaves a las que no pertenecen

    Ningn atributo es dependiente no trivial en cualquier conjunto de atributos no primos

  • Forma Normal de Boyce-Codd Una definicin ms fuerte de la 3FN (referenciada

    como BCNF) es: Una relacin R est en BCNF si para cualquier

    dependencia funcional X A en R, entonces X es una superllave de R

    Mientras que la 3FN permite la dependencia funcional de la forma siguiente, BCNF no permite la existencia de tales dependencias funcionales

    Relacinatrib1 atrib2 atrib3

    fd1fd2

  • Forma Normal de Boyce-Codd Una definicin modificada de la 3FN que toma en

    consideracin las llaves candidatas es: Una relacin R est en 3FN si hay cualquier

    dependencia funcional X A en R, tal que:a) X es una superllave de R, b) A es un atributo primo de R

    donde un atributo es un atributo primo si es miembro de cualquier llave candidata

    (los atributos que no son miembros de llaves candidatas son conocidos como atributos no primos)

    No hay dependencias transitivas

  • Ejemplo de BCNF Asuma la siguiente definicin de la relacin Proyecto con:

    Cada empleado en un proyecto tiene una nica localizacin y responsabilidad con respecto a ese proyecto, y

    Slo un proyecto puede ser encontrado en cada localizacin Las DF podran ser:Proyecto

    NoProy NoEmp Locacion Respfd1fd2

    que deja Project en 3NF pero no en BCNF

  • Descomposicin en BCNF

    fd1 cumple con 3FN, porque NoProy y NoEmp es la superllave

    fd2 cumple con 3FN, porque NoProy es primo; sin embargo Locacion no es una superllave

    Solucin:

    Project Proy_LocNoEmp Locacion Resp NoProy Locacion

    fd1 fd2

  • Ejemplo Suponga la siguiente relacin Matricula:

    Matricula (cveAlumno, IdAsignatura, apellidos, nombre, nota, curso, aula, lugar) en donde se considera a IdAsignatura, apellidos, nombre como

    llave candidata. De aqu, hay dos determinantes funcionales:

    cveAlumno, IdAsignatura y IdAsignatura, apellidos, nombre. Las DF encontradas son:

    1. IdAsignatura curso2. cveAlumno, IdAsignatura aula3. cveAlumno, IdAsignatura lugar4. cveAlumno, IdAsignatura nota5. apellidos, nombre, IdAsignatura aula6. apellidos, nombre, IdAsignatura lugar7. apellidos, nombre, IdAsignatura nota8. aula lugar9. cveAlumno, IdAsignatura apellidos, nombre, IdAsignatura

  • Ejemplo

    Tomando en consideracin las DF 1 y 8, se descompone la relacin Matricula de la siguiente forma:Imparte (IdAsignatura, curso)Ubicacin (aula, lugar)Matricula (cveAlumno, IdAsignatura, apellidos, nombre, nota, aula)

    Lo cual las deja en 3FN y FNBC, excepto la relacin Matricula que no esta en la FNBC, pues se tiene la DF cveAlumno apellidos, nombre. De aqu que Matricula se descompone de la sig. forma:Alumno (cveAlumno, apellidos, nombre)Matricula (cveAlumno, IdAsignatura, nota, aula)

  • Dependencias Multivaluadas

    En algunos casos pueden existir restricciones que no pueden ser expresadas como dependencias funcionales.

    Las dependencias multivaluadas son consecuencia de la 1FN, ya que no se permite en un atributo de una tupla que exista un conjunto de valores.

    Si en una relacin se tienen dos o ms atributos multivaluadosindependientes, ser un problema el repetir cada valor de un atributo con cada valor del otro atributo, para mantener la independencia entre ellos.

  • Hay esquemas de bases de datos en BCNF que no parecen estar suficientemente normalizadas

    Considere una base de datos: clases (curso, maestro, libro)

    tal que (c,m,l) clases significa que m est calificado para ensear c, y l es un texto requerido para c

    La base de datos supone que lista para cada curso el conjunto de maestros, cualquiera que pueda ser el instructor del curso, yel conjunto de libros que sean requeridos por el curso (no importa quin lo ensee).

    Dependencias Multivaluadas

  • Definicin Existe una dependencia multivaluada (MVD) X-Y en

    una relacin R, donde X yY son subconjuntos de R, si y solo si cada valor de X tiene asignado un conjunto bien definido de valores de Y y este conjunto es independiente de cualquier valor que tome otro atributo ZR, el cual depende del valor de X.

    Las dependencias multivaluadas representan la independencia existente entre dos conjuntos Y y Z, la cual esta correlacionada por la dependencia que tiene cada uno de estos conjuntos con el conjunto X del cual dependen ambos de forma multivaluada.

  • Ya que no hay dependencias no triviales, y (curso, maestro, libro) es la nica llave, la relacin est en BCNF.

    Existen anomalas de insercin si Sara es una nueva maestra que puede ensear bases de datos, es necesario insertar dos nuevas tuplas:

    (Base de datos, Sara, DB Concepts)(Base de datos, Sara, Ullman)

    curso maestro libro

    Base de datosBase de datosBase de datosBase de datosBase de datosBase de datosSistemas operativosSistemas operativosSistemas operativosSistemas operativos

    AviAviHankHankSudarshanSudarshanAviAviJim Jim

    DB ConceptsUllmanDB ConceptsUllmanDB ConceptsUllmanOS ConceptsShawOS ConceptsShaw

    classes

  • 3.4.5 Cuarta Forma Normal (4NF)

    Un esquema relacional R est en la 4NF con respecto a un conjunto de dependencias F (incluyendo la dependencias funcionales y multivaluadas) si, para cada dependencia multivaluada no trivial X-Y en F, X es una superllave de R.

    Una MVD X-Y se dice que es trivial si a) Y es un subconjunto de X, o b) X Y = R

    Si no se cumple cualquiera de las condiciones anteriores, se dice que es una MVD no trivial.

  • De aqu, es mejor descomponer clases en:curso maestro

    Base de datosBase de datosBase de datosSistemas operativosSistemas operativos

    AviHankSudarshanAviJim

    ensea

    curso libro

    Base de datosBase de datosSistemas operativosSistemas operativos

    DB ConceptsUllmanOS ConceptsShaw

    textoEstas dos relaciones estn en la Cuarta Forma Normal (4NF)

  • Descomposicin por reunin sin prdidas Todos los atributos del esquema original R deben de aparecer en la

    descomposicin R1, R2: R = R1 R2

    Descomposicin sin prdidas: Para todas las posibles relaciones r en el esquema R:

    r = R1(r) R2(r) Una descomposicin de R en R1 y R2 es sin prdidas si y slo si al menos

    una de las siguientes dependencias est en F+: R1 R2 R1 R1 R2 R2

    1Y

    2X

    1X

    BA

    2

    1

    B

    Y

    X

    A

    1Y

    2Y

    2X

    1X

    BA

    rA(r) B(r)

    A(r) B(r)

  • 3.4.6 Quinta Forma Normal (5NF)

    Pueden existir casos en el que haya ms de dos esquemas relacionales en la descomposicin para satisfacer la 4NF, y adems, puede ser que no haya dependencias funcionales en Rtal que viole alguna forma normal hasta la BCNF, y que no haya MVD no triviales que violen la 4FN.

    Esto lleva a la descomposicin debido a las dependencias de reunin. Es importante notar que est dependencia es muy difcil de detectar en la prctica, y por ello, la normalizacin en la 5FN es muy rara vez aplicada.

    Un esquema relacional est en 5NF con respecto a un conjunto F de dependencias funcionales, multivaluadas y de reunin si, para cada dependencia de reunin no trivial JD(R1, R2, ..., Rn) en F, cada Ri es una superllave de R.

  • Quinta Forma Normal (5NF) Un esquema de una relacin R est en 5NF con respecto a un

    conjunto D de dependencias funcionales, multivaluadas, y de reunin si para todas las dependencias de reunin en D+ de la forma

    *(R1 , R2 ,..., Rn ) donde Ri R y R =R1 R2 ... Rnal menos una de las siguiente condiciones se cumple: *(R1 , R2 ,..., Rn ) es una dependencia de reunin trivial. Cada Ri es una superllave para R.

    Desde que cada dependencia multivaluada est tambin como una dependencia de reunin, cada esquema en 5NF tambin est en 4NF.

  • Ejemplo Considere un esquema para prestamos dado por :

    Prestamos-info (sector, nombre_cliente, numero_prestamo, cantidad). Cada prestmo tiene uno o ms clientes, est en uno o ms sectores y tiene

    una cantidad de prstamo; estas relaciones son independientes, y por esto se tiene una dependencia de reunin

    *(=(numero_prestamo, sector), (numero_prestamo, nombre_cliente), (numero_prestamo, cantidad))

    Prestamos-info no est en 5NF con respecto al conjunto de dependencias de reunin. Para ponerlo en 5NF, se debe descomponer en los siguientes tres esquemas especificados por la dependencia de reunin:Prestamos-sector (numero_prestamo, sector)Prestamos-cliente (numero_prestamo, nombre_cliente)Prestamos-cantidad (numero_prestamo, cantidad)

  • Modelo EA y normalizacin Cuando un diagrama E-A es diseado

    cuidadosamente, identificando todas las entidades correctamente, las tablas generadas por el diagrama E-A no necesitan mayores normalizaciones.

    Sin embargo, en el diseo real puede haber DF de los atributos no llave de una entidad hacia los otros atributos de la entidad.

    Ej., la entidad empleado con los atributos NumDepartamento y DireccDepartmento, y una DF NumDepartamento DireccDepartmento Un buen diseo deber hacer departamento una

    entidad.