Introducción Para diseñar una base de datos relacional también existen problemas muchos de los cuales son similares a los problemas del capítulo anterior. El objetivo del diseño de las bases de datos relacional es generar relaciones que permitan el almacenamiento sin redundancia de información y que permitan el fácil acceso y recuperación a estas. En este capítulo se presenta un enfoque formal al diseño de bases de datos. 8.1 Características de buenos Diseños Relacionales. Alternativas de diseño: Esquemas más grandes. inst dept (ID, name, salary, dept name, building, budget) Aqui tenemos la unión de instructor y departamento, es importante que todas las tuplas estén de acuerdo del con el monto del “budget” presupuesto, para que la base de datos no sea inconsistente, también están los problemas con los valores nulos, pero si esto no es problema podemos usar el esquema revisado. Alternativas de diseño: Esquemas más pequeños. Es cuando descomponemos un esquema, pero no todas las composiciones son buenas ya que podría haber esquemas que contaban con un solo a tributo. 8.2 Dominios Atómicos y primera forma Normal. El modelo E-R que vimos nos permite que el conjunto de entidades y conjunto de relaciones tengan algún grado de subestructura, permitiendo que haya atributos multivalor como por ejemplo el número telefónico. Los diseños de E-R que contengan estos tipos de atributos se eliminan estas subestructuras y de deja que cada componente sea un atributo por defecto. La formalización parte de la idea que los atributos no tienen una subestructura “El dominio es atómico” si los elementos del dominio son indivisibles entonces decimos que una Relación esta en primera Forma Normal (1NF) 8.3 Descomposición usando dependencias funcionales. Existe una metodología formal para evaluar si un esquema funcional debe descomponerse. Esta metodología se basa en conceptos de claves (keys) y dependencias funcionales. Claves y dependencias Funcionales. Una base de datos modela un conjunto de entidades y relaciones del mundo real, y para ello existen restricciones, por ejemplo que en una entidad exista solo una key cada entidad debe de tener un nombre y que cada entidad debe estar relacionado, una instancia que satisface todas las restricciones del mundo real se le denomina Instancia Legal de Relación. Las dependencias funcionales se pueden usar de dos maneras: Para especificar restricciones en un conjunto de relaciones y para ver si las relaciones satisfacen un conjunto F de dependencias funcionales. Forma Normal de Boyce-Codd. Una de las formas normales más deseables que podemos obtener es de Boyce-Codd ya que elimina toda Redundancia que se puede descubrir basada en dependencias funcionales. BCNF y Preservación de Dependencia. Hay varias formas de expresar restricciones de coherencia de base de datos. Probar estas restricciones cada vez que se actualiza la base de datos puede ser costoso. En algunos casos la descomposición en BCNF puede evitar pruebas eficientes de ciertas dependencias funcionales. Tercera Forma Normal. En cualquier esquema que satisfaga BCNF también satisface 3NF, siendo BCNF una forma normal más restrictiva que 3NF ya que esta permite ciertas dependencias funcionales que no son permitidos en BCNF. Mayores Formas Normales. El uso de dependencias funcionales para descomponer esquemas puede no ser suficiente para evitar la repetición innecesaria de información en ciertos casos, las formas normales basadas en dependencias funcionales no son suficientes para lidiar con situaciones como esta, otras dependencias y formas normales se verán más adelante. 8.4 Teoría de la Dependencias Funcionales. Cierre de un conjunto de Dependencias Funcionales. Dado un conjunto F de dependencias funcionales en un esquema, podemos probar que otras dependencias funcionales también se mantienen en el esquema. Al probar formas normales no es suficiente considerar un conjunto de dependencias funcionales más bien debemos considerar que todas las dependencias funcionales se mantengan en el esquema. Preservación de la Dependencia. La descomposición es la preservación de la dependencia si y solo si todas las dependencias en F se encuentren preservadas. 8.5 Algoritmos para la descomposición. Los esquemas de base de datos soy muy grandes por eso necesitamos algoritmos para la generación de diseños que son apropiados. Descomposición BCNF La definición de BCNF se puede utilizar directamente para probar si una relación esta en BCNF . Sin embargo, el cálculo de F+ puede ser una tarea complicada. En primer lugar, describimos y a continuación simplificamos pruebas para verificar si una relación es en BCNF . Si una relación no está en BCNF, se puede descomponerse para crear las relaciones que se encuentran en BCNF. La forma Normal Boyce-Cold (BCNF) es una etapa en que se deben agrupar los datos por afinidad, formando tablas las cuales se relacionan entre si mediante campos comunes; una tabla se considera en esta forma si y solo si cada atributo es una llave candidata.la BCNF requiere que no exista dependencias funcionnales no triviales de los atributos que no sean un conjunto de la clave candidata. Descomposición 3NF : El 3NF es un algoritmo que asegura la preservación de las dependencias mediante la construcción de forma explícita un esquema para cada dependencia en un recubrimiento canónico. Este algoritmo es llamado también el algoritmo de síntesis 3NF, ya que tiene un conjunto de dependencias y agrega un esquema a la vez, en lugar de descomponer el esquema inicial repetidamente. 8.6 La descomposición mediante dependencias multivalor. Algunos esquemas de relación, a pesar de que están en BCNF , no parecen ser suficientemente normalizado, en el sentido de que todavía sufren el problema de la repetición de información. Para hacer frente a este problema, se debe definir una nueva forma de coacción, llamado una dependencia multivalor. Como lo hicimos para las dependencias funcionales, utilizaremos dependencias de valores múltiples para definir una forma normal para esquemas de relación. Esta forma normal, denominada cuarta forma normal ( 4NF ), es más restrictiva que BCNF . Nosotros Veremos que cada 4NF esquema es también en BCNF pero hay BCNF esquemas que no están en 4NF. 8.7 Más Formas Normales. Las dependencias de varios valores nos ayudan a entender y eliminar algunas formas de repetición de la información que no se pueden entender en términos de dependencias funcionales. Hay tipos de restricciones denominado join dependencias que generalizar las dependencias multivalor y llevar a otra forma normal llamado proyecto de forma normal (Join) (PJNF PJNF se denomina quinta forma normal en algunos libros). Hay una clase de restricciones aún más generales que conduce a una forma normal de dominio llamado clave de forma normal (DKNF). 8.8 Proceso de diseño de la base de datos Modelo ER y Normalización: Para establecer una relación cada conjunto de entidades de muchos a muchos relacionada tiene su propio esquema y existe un esquema adicional para el conjunto de relaciones. Para un atributo de varios valores, un esquema separado se crea que consiste en que los atributos y la clave principal de la conjunto de entidades (como en el caso del número de teléfono atributo del conjunto de entidades instructor).El enfoque de la relación universal para el diseño de base de datos relacional comienza con una suposición de que hay un esquema de la relación única que contiene todos los atributos de interesar. Este único esquema define cómo los usuarios y las aplicaciones interactúan con la base de datos. 8.9 El modelo de datos temporal. Los datos temporales son datos que tienen un intervalo de tiempo asociado durante el cual son válidos. Se utiliza el término instantánea de los datos en el sentido del valor de los datos en un punto particular en el tiempo. Por lo tanto una instantánea de curso de datos proporciona los valores de todos los atributos, como el título y el departamento, de todos los cursos en un punto particular a tiempo. Conclusiones El diseño de la base de datos relacional descansa sobre una firme base matemática. Esta es una de las principales ventajas del modelo relacional a comparación de otros modelos de datos.