Post on 01-Mar-2016
description
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.