5 Diseño de base de datos relacionales 5.1 Objetivos del diseño de bases de datos. 5.2 Dependencias funcionales. 5.3 Normalización. 5.3.1 Primera forma normal. 5.3.2 Segunda forma normal. 5.3.2.1 Dependencia funcional de los datos. 5.3.2.2 Dependencia funcional completa. 5.3.2.3 Dependencia transitiva. 5.3.3 Tercera forma normal. 5.3.3 Tercera forma normal. 5.3.3.2 Atributos multivaluados. 5.3.3.3 Dependencias multivaluadas. 5.3.4 Cuarta forma normal. 5.3.5 Quinta forma normal. 5.4 Enfoques alternativos al diseño de bases de datos. 5.5 Modelado semántico. El objetivo principal es crear una REPRESENTACION PRECISA de los DATOS , de las RELACIONES entre los datos y de las RESTRICCIONES aplicables a los datos que sean pertinentes para la organización. Para conseguir este objetivo empleamos técnicas como el Modelo Entidad – Relación. Otra técnica de diseño de base de datos se denomina Normalización. Concepto asociado con la Normalización, describe la relación entre atributos. Dependencia funcional ◦ Describe la relación existente entre atributos de una relación R, B será funcionalmente dependiente de A (lo que se denota A→ B) si cada valor de A esta asociado con exactamente un valor de B (A y B puede consistir cada uno de ellos de uno o más atributos. Determinante: Hace referencia al atributo o grupo de atributos en el lado izquierdo de la flecha que describe una dependencia funcional. A determina funcionalmente a B B depende funcionalmente de A A B Cuando existe una dependencia funcional, el atributo o grupo de atributos en el lado izquierdo de la flecha se denomina determinante. Dependencia funcional completa: Indica que si A y B son atributos de una relación, B depende funcionalmente de manera completa de A si B depende funcionalmente de A pero no de ningún subconjunto propio de A. Una dependencia funcional A→ B es una dependencia funcional completa si la eliminación de cualquier atributo de A hace que la dependencia deje de existir. Una dependencia funcional A → B es una dependencia parcial si existe algún atributo que puede eliminarse de A y la dependencia continua verificándose. Dependencia transitiva: Una condición en la que A→ B y B → C, entonces C depende transitivamente de A, a través de B (supuesto que A no sea funcionalmente dependiente de B o C). Considere: noPersonal → sNombre, puesto, salario, noSucursal. bDireccion noSucursal→ bDireccion Es una técnica para producir un conjunto de relaciones con una serie de propiedades deseables, partiendo de los requisitos de datos de una organización. Incluye: ◦ El número mínimo de atributos necesarios para soportar los requisitos de datos de la organización. ◦ Los atributos con una relación lógica fuerte (conocida como dependencia funcional) se encuentran en la misma relación. ◦ Redundancia mínima, estando cada atributo representado una sola vez, con la excepción de los atributos que formen parte de las claves externas. Si se consigue agrupar los atributos en relaciones de modo que minimice la redundancia de los datos, se obtienen las siguientes ventajas: ◦ Las actualizaciones de los datos almacenados en la BD pueden llevarse a cabo con un número mínimo de operaciones, reduciendo incoherencia en los datos. ◦ Reduce espacio de almacenamiento de archivos requerido por las relaciones base, minimiza costos. Un dominio es atómico si se considera indivisible. Se dice que el esquema de una relación R está en la PRIMERA FORMA NORMAL (1FN) si los dominios de todos los atributos de R son atómicos. Un conjunto de nombres es un ejemplo de valores no atómicos. Por ejemplo, si el esquema de la relación empleado incluyera el atributo hijos, los elementos de cuyo dominio son conjuntos de nombres, el esquema no se hallaría en la primera forma Los atributos compuestos, como el atributo dirección con sus atributos componentes calle y ciudad , tienen también dominios no atómicos. ◦ Considérese una organización que asigna a los empleados números de identificación así: dos primeras letras especifican el departamento y las cuatro cifras restantes son un número único para el empleado dentro de ese departamento. Ejemplos de estos números pueden ser IN0012 y EE1127. ◦ Estos números de identificación pueden dividirse en unidades menores y, por tanto, no son atómicos. Forma NO Normalizada (UFN). Tabla que contiene uno o más grupos repetitivos. Primera Forma Normal (1FN) Una relación Una relación en la que la inserción de toda fila y columna contiene un valor y sólo un valor (valores atómicos) Para transformar de UFN a 1FN tenemos que identificar y eliminar los grupos repetitivos dentro de la tabla. ◦ Un atributo repetitivo es aquel, dentro de una tabla que presente múltiples valores para un mismo valor de los atributos designados como clave principal de esa tabla. Hay dos repetitivos: técnicas para eliminar grupos ◦ Introduciendo datos apropiados en las columnas vacías de las filas que contienen los datos repetitivos. ◦ Colocando los datos repetitivos, junto con una copia de los atributos originales en una relación independiente. nocliente cnombre nopropiedad pdireccion Iniciorenta finrenta renta Nopropietario Onombre CR76 John Kay PG4 6 Lawrence St Glasgow 1-Jul-03 31-Ago04 350 CO40 Tina Murphy PG16 5 Novar Dr. Glasgow 1-Sep-04 1-Sep-05 450 CO93 Tony Shaw PG4 6 Lawrence St Glasgow 1-Sep-02 10-Jun03 350 CO40 Tina Murphy PG36 2 Manor Rd. Glasgow 10-Oct03 1-Dic-04 375 CO93 Tony Shaw PG16 5 Novar Dr. Glasgow 1-Nov-05 10-Ago- 450 CO93 Tony Shaw CR56 Aline Stewa rt 06 Tabla NO normalizada ClienteRenta 1FN Nocliente Cnombre nopropiedad pdireccion Iniciorenta Finrenta Renta Nopropietario Onombre CR76 John Kay PG4 6 Lawrence St Glasgow 1-Jul-03 31-Ago04 350 CO40 Tina Murphy John Kay PG16 5 Novar Dr. Glasgow 1-Sep-04 1-Sep-05 450 CO93 Tony Shaw CR56 Aline Stewa rt PG4 6 Lawrence St Glasgow 1-Sep-02 10-Jun03 350 CO40 Tina Murphy CR56 Aline Stewa rt PG36 2 Manor Rd. Glasgow 10-Oct03 1-Dic-04 375 CO93 Tony Shaw CR56 Aline Stewa rt PG16 5 Novar Dr. Glasgow 1-Nov-05 10-Ago- 450 CO93 Tony Shaw CR76 06 Tabla normalizada ClienteRenta noCliente cNombre CR76 Jonh Kay CR56 Aline Stewart Nocliente Cnombre nopropiedad pdireccion Iniciorenta Finrenta Renta Nopropietario Onombre CR76 John Kay PG4 6 Lawrence St Glasgow 1-Jul-03 31-Ago04 350 CO40 Tina Murphy John Kay PG16 5 Novar Dr. Glasgow 1-Sep-04 1-Sep-05 450 CO93 Tony Shaw CR56 Aline Stewa rt PG4 6 Lawrence St Glasgow 1-Sep-02 10-Jun03 350 CO40 Tina Murphy CR56 Aline Stewa rt PG36 2 Manor Rd. Glasgow 10-Oct03 1-Dic-04 375 CO93 Tony Shaw CR56 Aline Stewa rt PG16 5 Novar Dr. Glasgow 1-Nov-05 10-Ago- 450 CO93 Tony Shaw CR76 06 5.3.2.1 Dependencia funcional de los datos. 5.3.2.2 Dependencia funcional completa. 5.3.2.3 Dependencia transitiva. La segunda forma normal (2FN) se basa en el concepto de dependencia funcional completa. Se aplica a las relaciones con claves compuestas. 2FN: Una relación que esta en primera forma normal y en la que todo atributo que no sea clave principal depende funcionalmente de manera completa de la clave principal. noPropiedad pDireccion renta Nopropietario onombre PG4 6 lawrence St Glasgow 350 CO40 Tina Murphy PG16 5 Novar Dr. Glasgow 450 CO93 Tony Shaw PG36 2 Manor Rd. Glasgow 375 CO93 Tony Shaw PropietariosPropiedades noCliente noPropiedad inicioRenta finRenta CR76 PG4 1-jul-03 31-ago04 CR76 PG16 1-sep-04 1-sep-05 CR56 PG4 1-sep-02 10-jun-03 CR56 PG36 10-oct-03 1-dic-04 CR56 PG16 1-nov-05 10-ago-06 Renta noCliente cNombre CR76 Jonh Kay CR56 Aline Stewart Clientes Una dependencia funcional es un tipo de restricción que constituye una generalización del concepto de clave. Las dependencias funcionales son restricciones del conjunto de relaciones legales. Permiten expresar hechos sobre la empresa que se modela con la base de datos. Se dice que K es una superclave de R si K→R Las dependencias funcionales nos permiten expresar las restricciones que no se pueden expresar con las superclaves. Las dependencias funcionales se utilizarán de dos maneras: ◦ Para probar las relaciones y ver si son legales según un conjunto dado de dependencias funcionales. Si una relación r es legal según el conjunto F de dependencias funcionales, se dice que r satisface F ◦ Para especificar las restricciones del conjunto de relaciones legales. Así, solo habrá que preocuparse por las relaciones que satisfacen un conjunto dado de dependencias funcionales. Si uno desea restringirse a las relaciones del esquema R que satisfagan el conjunto F de dependencias funcionales, se dice que F se cumple en R Una relación que esta en primera y segunda formas normales y en la que ningún atributo que no sea de clave principal depende transitivamente de la clave principal. noPropietar oNombre CO40 Tina Murphy CO93 Tony Shaw Propietarios Relaciones en tercera forma normal derivadas de la relación PropiedadesPropietarios noPropiedad pDireccion renta noPropietario PG4 6 lawrence St Glasgow 350 CO40 PG16 5 Novar Dr. Glasgow 450 CO93 PG36 2 Manor Rd. Glasgow 375 CO93 Propiedades noPropietar oNombre CO40 Tina Murphy CO93 Tony Shaw Relaciones en tercera forma normal derivadas de la relación PropiedadesPropietarios Propietarios noPropiedad pDireccion renta noPropietario PG4 6 lawrence St Glasgow 350 CO40 PG16 5 Novar Dr. Glasgow 450 CO93 PG36 2 Manor Rd. Glasgow 375 CO93 Propiedades Una de las formas normales mas deseables que se pueden obtener es la forma normal de Boyce-Codd (FNBC ). Un esquema de relación R está en FNBC respecto a un conjunto de dependencias funcionales F si, para todas las dependencias funcionales de F+ de la forma α → β, donde α⊆ R y β ⊆ R, se cumple al R, se cumple al menos una de las siguientes condiciones: ◦ α → β es una dependencia funcional trivial (es decir, β⊆ α). ◦ α es una superclave del esquema R. Un diseño de base de datos está en FNBC si cada miembro del conjunto de esquemas de relación que constituye el diseño está en FNBC. Una relación esta en FNBC, si y sólo si todo determinante es una clave candidata. Esquema-cliente =( nomCliente, calleCliente, ciudadCliente) ◦ nomCliente → calleCliente ciudadCliente Esquema-sucursal =( NomSucursal, activo, ciudadSucursal) ◦ nomSucursal→ activo ciudadSucursal Esquema-info-préstamo =(nomSucursal, nomCliente, noPrestamo, importe) ◦ noPrestamo→ importe nomSucursal Puede afirmarse que Esquema-cliente está en FNBC. Obsérvese que una clave está en FNBC. Obsérvese que una clave nomCliente. Las únicas dependencias funcionales no triviales que se cumplen en Esquema- cliente tienen anombre-cliente a la izquierda de la flecha. Dado que nombre-cliente es una clave candidata, las dependencias funcionales con nomCliente en la parte izquierda no violan la definición de FNBC. Lo mismo sucede conEsquema –sucursal. El esquema Esquema-info-préstamo , sin embargo,no está en FNBC. Obsérvese que noPrestamo no es una superclave de Esquemainfopréstamo, ya que puede que haya un par de tuplas que representen a un solo préstamo concedido a dos personas, por ejemplo, ◦ (Centro, Sr. Pinilla, P-44, 1.000) ◦ (Centro, Sra. Pinilla, P-44, 1.000) Como no se ha relacionado ninguna dependencia funcional que descarte el caso anterior,noPrestamo no es una clave candidata. Sin embargo, la dependencia funcional noPrestamo→ importe es de tipo no trivial. Por lo tanto,Esquema-info-prestamo no satisface la definición de FNBC. Considérese la descomposición de Esquemainfo-préstamo en dos esquemas: Esquema-préstamo =( noPrestamo, nomSucursal, importe) Esquema-prestatario =( nomCliente, noPrestamo) Esta descomposición es una descomposición de reunión sin pérdida. 3FN se sabe que siempre resulta posible obtener un diseño en 3FN sin sacrificar la reunión sin pérdida o la conservación de las dependencias. Sin embargo, hay inconvenientes en 3FN: si no se eliminan todas las dependencias transitivas de las relaciones de los esquemas, puede que se tengan que emplear valores nulos para representar algunas de las relaciones significativas posibles entre los datos, y está el problema de repetición de la información. La posibilidad de violar las condiciones FNBC puede aparecer cuando: ◦ La relación contenga dos o más claves candidatas compuestas. ◦ Las claves candidatas se solapen, es decir, tengan atributos en común. Considérese el ejemplo bancario. Supóngase que, en un diseño alternativo del esquema de la base de datos, se tiene el esquema Esquema-BC= ( noPrestamo, nomCliente, calleCliente, ciudadCliente) No está en FNBC debido a la dependencia funcional nomCliente→ calleCliente ciudadCliente que se estableció anteriormente, y debido a que nombre-cliente no es una clave de Esquema -BC. Sin embargo, supóngase que el banco está atrayendo a clientes ricos que tienen varios domicilios (por ejemplo, una residencia de invierno y otra de verano). Entonces ya no se deseará hacer que se cumpla la dependencia funcional nomCliente→ calleCliente ciudadCliente. Para tratar este problema hay que definir una nueva forma de restricción, denominada dependencia multivalorada. Como se hizo para las dependencias funcionales, se utilizarán las dependencias multivaloradas para definir una forma normal para los esquemas de relación. Esta forma normal, denominada cuarta forma normal (4FN), es más restrictiva que FNBC. Se verá que cada esquema 4FN se halla también en FNBC, pero que hay esquemas FNBC que no se hallan en 4FN. Representa una dependencia entre atributos (por ejemplo A, B y C) en una relación de modo que para cada valor de A hay un conjunto de valores B y un conjunto de valores C. Sin embargo, los conjuntos de valores de B y C son independientes entre sí.