1 / 33

Diseño de Bases de Datos Relacionales

Diseño de Bases de Datos Relacionales. John Freddy Duitama Muñoz Juan Camilo Alzate Restrepo Facultad de Ingeniería U.de.A. Normalización. La Normalización, abarca dos tópicos: Dependencia Funcional: Técnica de diseño que permite examinar las relaciones entre los atributos.

mills
Download Presentation

Diseño de Bases de Datos Relacionales

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Diseño de Bases de DatosRelacionales John Freddy Duitama Muñoz Juan Camilo Alzate Restrepo Facultad de Ingeniería U.de.A.

  2. Normalización La Normalización, abarca dos tópicos: • Dependencia Funcional: Técnica de diseño que permite examinar las relaciones entre los atributos. • Formas Normales: Pruebas para el agrupamiento óptimo de los atributos.

  3. Con la normalización se pretende que: • Los atributos con una relación lógica fuerte (dependencia funcional) se encuentren en la misma relación. • Se defina el número mínimo de atributos necesarios para soportar requisitos de datos de una organización. • Las relaciones tengan una redundancia mínima. Cada atributo se representa una sola vez, con excepción de las claves foráneas. • Actualización con un mínimo de operaciones. • Reduce posibles inconsistencias de datos. • Reduce espacio de almacenamiento. 

  4. DEPENDENCIA FUNCIONAL DEF: Sean a y b atributos de la relación R. Decimos que a determina funcionalmente a b en R, denotado por ab También se puede decir que: b depende funcionalmente de a Si y sólo si : Para todos los pares de tuplas t1, t2 de la relación R, tales que t1[a] = t2[a] también se cumple que t1[b ] = t2[b] Ejemplo: cédula --> nombre. Cada vez que se tiene un número de cédula, esta debe coincidir con el mismo nombre. Si t1 y t2 coinciden en el atributo a, Entonces deben coincidir también en el atributo b.

  5. Ejemplos de dependencias Funcionales Sean las relaciones: Préstamo (número_préstamo, sucursal, cliente, valor) Cliente (cedula, nombre_cliente, dirección, ciudad ) Si Número_préstamo --> cliente. Un préstamo sólo puede efectuarse a un cliente. Un cliente puede tener varios préstamos. Número_préstamo -->valor es cierta en préstamo? dirección --> ciudad es cierta en cliente? El diseño de una Base de Datos relacional requiere definir aquellas dependencias funcionales (D.F.) que se deben cumplir siempre.

  6. CLAVE CANDIDATA Sea K un conjunto de uno o más atributos de la relación R. DEF: K es una clave candidata para la relación R si: • Si K  todos los atributos de R; • Ningún subconjunto de K determina funcionalmente a todos los demás atributos de R.

  7. DEP. FUNCIONAL COMPLETA DEF: Sean a y b atributos de la relación R. Decimos que b depende funcionalmente de manera completa de a Si y sólo si: b depende funcionalmente de a pero no de ningún subconjunto propio de a. Es decir, Una dependencia funcional ab es completa si la eliminación de cualquier atributo de a hace que la dependencia deje de existir. • Cedula, nombre  salario • Si se quita el nombre la dependencia continúa • Cedula  salario • Entonces no era completa

  8. Axiomas de Armstrong 1. Reglas de reflexividad: (dependencia trivial) Si a y b son conjuntos de atributos y b Í a, entonces se cumple que a--> b . Si los atributos (Tipo-doc,numero) de una persona son su ID, entonces con el ID podemosdeterminar el tipo-doc. 2. Regla de aumento: Si para los conjuntos de atributos a y b se cumple que a --> b y g es un conjunto de atributos, entonces se cumple que a g --> b g . (cedula, teléfono)  (nombre, teléfono) 3. Regla de la transitividad: Si se cumple a --> b y se cumple b --> g , entonces se cumple a -- > g .

  9. Reglas adicionales - Armstrong Reglas adicionales, derivadas de las anteriores : 4. Regla de unión: Si se cumple a --> b y a --> g se cumplea --> b g . • Cédula  nombre y cédula  teléfono • Cédula  (nombre , teléfono) 5. Regla de la descomposición: Si se cumple a --> b g entonces se cumplea --> b y a --> g . cédula  (apellido, dirección) cédula  apellido y cedula  dirección 6. Regla de la pseudo-transitividad: Sia --> b y g b --> d entonces se cumple ag --> d. Cédula  Ciudad_residencia (Teléfono, Ciudad_residencia)  dirección_residencia (Cédula,Teléfono)  dirección_residencia

  10. Implicación lógica de las D.F. Ejemplo : Sea la relación R (A, B, C, G, H, I) Con el conjunto de Dependencias Funcionales F={ A  B, A  C, CG  I, CG  H, B  H } Puedo hallar nuevas dependencias funcionales implicadas lógicamente por F: • A  B y B  H luego : A H. por axioma-3. • CG  H y CG  I luego CG  HI por axioma-4 • A  C luego AG  CG por axioma-2 • AG  CG y CG  I luego AG  I por axioma-3 • AG  CG y CG  H luego AG  H por axioma-3.

  11. Problemas en el diseño de una B. de D. Objetivo: Almacenar la información con un mínimo de redundancia y fácil recuperación. Problemas: Repetición de la información. • Representación de la información • Pérdida de información. Prestamo • Qué ocurre al agregar un préstamo ? • Qué ocurre si una sucursal cambia de activos ? • Qué ocurre con las sucursales que no tengan préstamos? • Qué ocurre si eliminamos el último préstamo de una sucursal? 

  12. Problemas en el diseño de una B. de D. En otras palabras : Una sucursal existe independiente de los préstamos que haga. Una sucursal está situada exclusivamente en una ciudad. una sucursal tiene solo un valor total de activos. Una sucursal puede efectuar muchos préstamos. Un préstamo solo se otorgaen una sucursal. Solución: Sucursal (nombre_sucursal, activos, ciudad-suc) Préstamo (número_préstamo, cliente, valor, nombre_sucursal)

  13. Cómo descomponer una relación en varias? Objetivo: evitar la pérdida de información. Cómo descomponer la relación préstamos en varias relaciones sin pérdida de información? préstamo (nombre-sucursal, activos, ciudad-suc, número-préstamo, cliente, valor) Sean: Sucursal (nombre-sucursal, activos, ciudad-suc, valor) Préstamos (número-préstamo, cliente, valor) Dos proyecciones de la relación original, nótese que valor actúa como si fuera clave foránea. Qué ocurre si pretendo reconstruir a préstamo? Si hay varios préstamos con el mismo valor; significa que no podemos identificar a qué sucursal corresponde que préstamo.

  14. Descomposición sin pérdida Sea R una relación. Una descomposición {R1, R2, ..., Rn} de R es una descomposición de producto sin pérdida si : R = p R1(R) Ä p R2(R) Ä ... Ä pRn(R) Se debe Verificar: R1 y R2 forman una descomposición sin pérdida de R, si por lo menos una de las D.F. siguientes se cumple: R1 Ç R2 --> R1. R1 Ç R2 --> R2. Veamos un Ejemplo:

  15. Ejemplo de descomposición sin pérdida Prestar (nombre-sucursal, activos, ciudad-suc, préstamo, valor, cliente) F= { nombre-sucursal  activos, nombre-sucursal  ciudad-suc, préstamo  cliente, valor, nombre-sucursal} Si la descomponemos en : Sucursal (nombre-sucursal, activos, ciudad-suc) Préstamo (nombre-sucursal, préstamo, cliente, valor) Debemos probar : SucursalÇ préstamo  Sucursal es decir: nombre-sucursal  nombre-sucursal, activo, ciudad-suc. Por unión : nombre-sucursal  activo, ciudad-suc Por aumento: nombre-sucursal  nombre-sucursal, activo, ciudad-suc.

  16. NORMALIZACIÓN

  17. Normalización • Es la técnica utilizada para diseñar “buenas” relaciones desde el punto de vista de: • Minimizar la redundancia • Minimizar el mantenimiento de datos • Minimizar el impacto de futuros cambios de datos e ingreso de información Anomalías de Actualización y Borrado Anomalías de Inserción

  18. FORMAS NORMALES

  19. 6 formas normales clásicas: 1NF, 2NF, 3NF, BCNF (Boyce Codd Normal Form), 4NF, 5NF • Mientras una relación esté en una forma normal más alta “mucho mejor” • Generalmente se acepta normalizar hasta BCNF • Las formas normales 4 y 5 son casos “especiales”

  20. Si una relación cumple una forma normal n automáticamente cumplirá las n-1 formas normales anteriores, es decir, cada forma normal es “más fuerte” que sus predecesoras. • El análisis de 1NF, 2NF y 3NF está considerado sólo relaciones con una sola clave candidata. • Para relaciones con más de 1 clave candidata directamente se aplica BCNF

  21. Primera Forma Normal : 1FN Dominio Atómico. Los elementos del dominio son indivisibles. Ejemplos: Libros (código, titulo, autores[i], editorial) No está en primera forma normal. Posible solución: Libros (código, titulo, editorial) Autor (autor, codigo_libro) Primera Forma normal : 1FN Una relación está en primera forma normal si y sólo si todos los dominios de los atributos son atómicos. Aplicar la primera forma normal es muy simple, bastará con dividir cada columna no atómica en tantas columnas atómicas como sea necesario

  22. Primera Forma Normal : 1FN Empleado (código, nombre, teléfono) código = 016-242224 donde • 016 = departamento • 242224 = código empleado No está en primera forma normal. Posible solución: Empleado(departamento, cod-empleado, nombre, teléfono) Que pasa con los datos tipo XMLTYPE? Primera Forma normal : 1FN Una relación está en primera forma normal si y sólo si todos los dominios de los atributos son atómicos.

  23. Segunda Forma Normal: 2FN Ejemplo, sea la relación : venta (nro-factura, id-producto, ced-cliente, unidades, fecha) clave primaria: número-fac, id-producto. Una relación está en 2FN, si y sólo si está en 1FN y todos los atributos no clave dependen funcionalmente de manera completa (DFC) de la clave primaria. Esta regla significa que en una relación sólo se debe almacenar información sobre un tipo de entidad, y se traduce en que los atributos que no aporten información directa sobre la clave principal deben almacenarse en una relación separada.

  24. Ejemplo de Segunda Forma Normal • ¿Las unidades DFC de la clave primaria? (número-fac, id-producto)  unidades Comprobar si al quitar alguno de los atributos del lado izquierdo, se conserva la dependencia funcional. número-fac  unidades F id-producto  unidades F Al quitar el atributo producto o el número-fac la dependencia NO se conserva, entonces (número-fac , producto) si DFC a unidades. Sin embargo, falta comprobar…

  25. Ejemplo de Segunda Forma Normal • ¿La fecha DFC de la clave primaria? (número-fac , id-producto)  fecha Comprobamos número-fac  fecha V producto  fecha F Al quitar el atributo id-producto, la dependencia se conserva, entonces (número-fac , producto) NO DFC a fecha. Es decir (número-fac , id-producto)  fecha de manera parcial. Entonces no se cumple la 2NF

  26. Ejemplo de Segunda Forma Normal • ¿El Cliente DFC de la clave primaria? (número-fac , id-producto)  cliente Comprobamos número-fac  cliente V id-producto  cliente F Al quitar el atributo id-producto, la dependencia se conserva, entonces (número-fac , producto) NO DFC a cliente. Es decir (número-fac , id-producto)  cliente de manera parcial. Entonces no se cumple la 2NF

  27. Ejemplo de Segunda Forma Normal Posible solución: Dependencias funcionales completas: número-fac  cliente, fecha número-fac, id-producto  unidades Se descompone en: Factura (#número-fac, id-cliente, fecha) Venta (#número-fac, #producto, unidades) numero-fac clave foránea de Factura Que pasa con atributos como valor unitario, valor total?

  28. Tercera Forma Normal: 3FN Equivalentemente. Una relación está en 3FN si y sólo si los atributos no clave son: • Mutuamente independientes. • Dependen por completo de la clave primaria. Dicho de otro modo: R(A,B,C) con clave primaria A. R.B --> R.C y R.A-->R.B se descompone en: R1(B,C) con clave primaria B. R2(A,B) con clave primaria A y B clave ajena de R1. Una relación está en 3FN si y solo si está en 2FN y todos los atributos no claves dependen de manera directa de la clave primaria. En la práctica significa que se debe eliminar cualquier relación que permita llegar a un mismo dato de dos o más formas diferentes

  29. Ejemplo de Tercera Forma Normal R(número-fac, id-cliente, fecha-fac, teléfono-cliente) Con: número-fac --> cliente número-fac --> fecha-fac cliente --> teléfono-cliente Clave primaria: número-fac Se descompone en : R1(cliente, teléfono-cliente) clave primaria(cliente) R2(número-fac, cliente, fecha-fac) clave primaria (número-fac); cliente clave foránea de R1.

  30. Forma Normal Boyce/Codd Ejemplo OcupaciónHabitación (Num_cliente, Nom_cliente, Num_hab, fecha_entrada) Num_cliente  Nom_cliente Num_hab, fecha_entrada  Nom_cliente Num_hab, fecha_entrada  Num_cliente Una relación está en FNBC, si cumple la 3FN, y si y solo si cada determinante, atributo o conjunto de atributos que determina completamente a otro, es clave candidata. Todos los determinantes de la tabla son clave candidata.

  31. Análisis: Los atributos Num_cliente y Nom_cliente sólo proporcionan información entre ellos mutuamente, pero ninguno de ellos es una clave candidata. Solución. Separar esta relación en dos diferentes: OcupaciónHabitación(Num_cliente, Num_hab, fecha_entrada) Cliente(Num_cliente, Nom_cliente)

  32. Conservación de dependencias en BCNF PROBLEMA: Sea: asesor (sucursal, nombre-cliente, nombre-asesor) F = { nombre-asesor  sucursal, sucursal, nombre-cliente  nombre-asesor} Asesor no está en BCNF. Como descomponer asesor para hallar dos relaciones en BCNF? R/ Ninguna descomposición BCNF de esta relación conserva todas las dependencias originales. SLN: Debo abandonar BCNF para conservar las dependencias.

  33. BIBLIOGRAFÍA • Thomas M. Connolly, Carolyn E Begg. Sistemas de bases de datos. Un enfoque práctico para diseño, implementación y gestión. Cuarta edición. Pearson Addison-Wesley 2005. • Peter Rob / Carlos Coronel. Sistemas de bases de datos. Diseño, implementación y administración. International thomson editores. 2004. • C.J. Date. Introducción a los sistemas de Bases de Datos. Sexta edición. Volúmen 1. Addison-Wesley. 1995. • Jeffrey D. Ullman. Principles of Database and Knowledge-Base System. Volúmenes I. Computer Science Press. 1988. Capítulo 7. • Henry F. Korth, Abraham Silberschatz. Fundamentos de Bases de Datos. Tercera edición. 1998.

More Related