Diseño de Bases de Datos

Slides:



Advertisements
Presentaciones similares
IBD Clase 13.
Advertisements

Normalizaciones de Bases de Datos
Rocío Contreras Águila Primer Semestre 2010
Diseño de Bases de Datos
Una dependencia funcional es una relación entre atributos de una misma relación (tabla). Si X e Y son atributos de la relación R, se dice que Y es funcionalmente.
Teórico: Normalización
MODELO RELACIONAL.
INTELIGENCIA ARTIFICIAL
Primera Forma Normal En una relación (tabla) no pueden existir grupos de repetición, es decir, un atributo no puede tomar más de un valor del dominio subyacente:
Estadística Computacional I
Maestría en Bioinformática Bases de Datos y Sistemas de Información Fundamentos de Normalización Ing. Alfonso Vicente, PMP
Teoría de Bases de Datos
Dependencias Funcionales
NORMALIZACIÓN DE DATOS
Daniel Correa Botero José López Vélez Universidad de Antioquia 2013-II
Modelo Entidad-Relación
4.2 Dominios atómicos y la primera forma normal.
ESCUELA: PONENTE: BIMESTRE: BASES DE DATOS I CICLO: CIENCIAS DE LA COMPUTACIÓN II BIMESTRE Ing. Audrey Romero ABRIL – AGOSTO 2007.
Universidad Interamericana de P.R. Departamento Informática Curso 3850 Dr. Rafael Nieves.
NORMALIZACIÓN DE DATOS
Normalización Preparó: Ismael Castañeda Fuentes
Métrica v2.1 Técnicas: Teoría de la Normalización.
Diseño de Bases de Datos

1 John Freddy Duitama U.de.A. Facultad de Ingeniería Optimización Algebraica. Profesor: John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. Profesor:
Técnica - Diagrama de Flujo de Datos (DFD)
NORMALIZACION La teoría de la normalización, cuyas tres primeras formas normales fueron introducidas por Codd desde sus primeros trabajos, elimina dependencias.
John Freddy Duitama Muñoz. Facultad de Ingeniería. U. de. A.
John Freddy Duitama M.U.de.A. Facultad de Ingeniería. Creación del esquema de Una Base de Datos. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
Métrica v2.1 Técnicas: Modelado de datos (Parte 2)
MODELADO DE DATOS (PARTE 2) Viviana Poblete L. Modelo de Datos I.
John Freddy Duitama Muñoz Juan Camilo Alzate Restrepo Facultad de Ingeniería U.de.A. John Freddy Duitama Muñoz Juan Camilo Alzate Restrepo Facultad de.
Diseño de Bases de Datos Relacionales
NORMALIZACION DE BASES DE DATOS
Normalización en una base de datos
Lic. en Inf. Manuel Álvaro Pacheco Hoyo. Una base de datos o banco de datos (en inglés: database) es un conjunto de datos pertenecientes a un mismo contexto.
SEGUNDA FORMA NORMAL Cod Alumno Universidad Nombre Apellido Años 10
Chapter 13 Normalization Transparencies © Pearson Education Limited 1995, 2005.
INSTITUTO TECNOLÓGICO DE TIJUANA DEPARTAMENTO DE SISTEMAS Y COMPUTACIÓN SEMESTRE ENERO-JUNIO 2014 CARRERA: INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN.
1 Fundamentos de Bases de Datos. U.de.A. Facultad de Ingeniería Características Generales de un Sistema de Bases de Datos. Profesor: John Freddy Duitama.
Diseño de una Base de Datos
Diseño de bases relacionales
NORMALIZACIÓN. Por qué funciona la normalización Preservación de la información –Debe poder reconstruirse la relación original a partir de la descomposición.
DISEÑO DE BASES DE DATOS
Tema 5 Diseño de Bases de Datos Universidad de Murcia
Vista Externa de Una Base de Datos John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
07/05/2015Curso Bases de Datos1 Normalización Francisco Moreno.
Base de Datos I. Definición: La normalización es un proceso en el cual se va comprobando el cumplimiento de una serie de reglas, que sirven para ayudar.
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
Características Generales de un Sistema de Bases de Datos.
INTEGRANTES ANA INOSTROZA S. JONATAN MIQUELES P
Normalización Base de Datos I.
Normalización Base de Datos I.
Vista Externa de Una Base de Datos John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
John Freddy Duitama M. Universidad de Antioquia. El Cálculo Relacional. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. John Freddy Duitama.
NORMALIZACIÓN Prof. Gabriel Matonte.
NORMALIZACION DE DATOS
Normalización de una BASE DE DATOS
Normalización Base de Datos I.
Base de Datos.
Normalización Prof. Gloria Toro Oñate
Bases de Datos Modelo Relacional.
22/09/2015Curso Bases de Datos1 Normalización Francisco Moreno.
Ingeniero Esp. Ricardo Cujar.
DISEÑO DE BASES DE DATOS (modelos para el diseño)
NORMALIZACIÓN.
Características Generales de un Sistema de Bases de Datos. Profesor: John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. Profesor: John Freddy Duitama.
Bases de Datos I UNIVERSIDAD DEL VALLE. Contenido 5. Diseño de Sistemas de Bases de Datos  Diseño relacional  Formas normales  Proceso de creación.
Base de Datos I – Ing. Mary Carlota Bernal J. BASE DE DATOS I Normalización.
Normalización es un proceso que clasifica relaciones, objetos, formas de relación y demás elementos en grupos, en base a las características que cada.
Transcripción de la presentación:

Diseño de Bases de Datos Relacionales John Freddy Duitama Muñoz Facultad de Ingeniería U.de.A. Uno de los lenguajes que ha emergido a partir del desarrollo del modelo relacional. Se ha convertido en el lenguaje estándar para las bases de datos relacionales. Esta presentación puede ser usada solo para fines académicos y mencionando siempre al autor. John Freddy Duitama M. Universidad de Antioquia. Facultad de Ingeniería. 1

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.

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. Definir 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. 

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 Tambien 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

CLAVES DEF: Sea K un conjunto de uno o más atributos de la relación R. K es una clave 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. Es decir, la clave debe de ser mínima.

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

Ejemplos de dependencias Funcionales Sean las relaciones: Préstamo (sucursal, número-préstamo, nombre-cliente, valor) Cliente (nombre-cliente, calle, ciudad ) deposito ( nombre-sucursal, cuenta, nombre-cliente, saldo) Si Número-préstamo --> nombre-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? calle --> ciudad es cierta en cliente? Cuenta --> saldo es cierta en depósito ? Saldo --> cuenta es cierta en depósito ? El diseño de una Base de Datos relacional requiere definir aquellas dependencias funcionales (D.F.) que se deben cumplir siempre. 6

Dependencias Triviales Se llaman triviales a las dependencias que se satisfacen en todas las relaciones. A  A cedula  cedula Si a y b son conjuntos de atributos y b Í a, entonces se cumple que a  b . 7

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 . 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, telefono)  (nombre, telefono) 3. Regla de la transitividad: Si se cumple a --> b y se cumple b --> g , entonces se cumple a -- > g . cedula_cliente  numero_cuenta numero_cuenta  nombre_conyuge cedula_cliente  nombre_conyuge No es suficiente considerar el conjunto dado de dependencias funcionales. También hay que considerar todas las dependencias funcionales que se cumplen. 7

Reglas adicionales - Armstrong Reglas adicionales, derivadas de las anteriores : 4. Regla de unión: Si se cumple a --> b y a --> g se cumple a --> 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 cumple a --> b y a --> g . cédula  (apellido, dirección) cédula  apellido y cedula  dirección 6. Regla de la pseudo-transitividad: Si a --> 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 8

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. 8

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 nombre-sucursal activos ciudad número-préstamo nombre-cliente valor Centro 9’000.000 Arganzuela 17 Santos 1.000 Moralzarzal 2’100.000 La Granja 23 Gómez 2.000 Navacerrada 1’700.000 Aluche 15 López 1.500 14 Sotoca Becerril 400.000 93 500 Collado Mediano 8’000.000 11 Abril 900 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?  9

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 otorga en una sucursal. Solución: Sucursal (nombre-sucursal, activos, ciudad) Préstamo (número-préstamo, nombre-cliente, valor, nombre-sucursal) 9

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, número-préstamo, nombre-cliente, valor) Sean: Sucursal (nombre-sucursal, activos, ciudad, valor) Préstamos (número-préstamo, nombre-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. 10

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: 11

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

NORMALIZACIÓN

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

Anomalías Supóngase la relación: CP nit es del proveedor Envío sede_ppal nit producto cantidad con_iva Med 101 Leche 10 No Bog 201 Chorizo 29 Si Med 101 Yogur 12 Si Med 101 Pasas 100 No Bog 201 Leche 12 No Bog 201 Pasas 100 No Med 128 Chicha 10 No nit es del proveedor CP

Anomalía ¿ Supongamos un proveedor que nos suministra 100 productos cambia de sede, que implicaciones trae esto? Envío sede_ppal #nit #producto cantidad con_iva Med 101 Leche 10 No Bog 201 Chorizo 29 Si Med 101 Yogur 12 Si Med 101 Pasas 100 No Bog 201 Leche 12 No Bog 201 Pasas 100 No Med 128 Chicha 10 No

que implicaciones trae esto? ¿ Suponga que hay 50 proveedores de “leche” y que ésta se vuelve un producto con IVA, que implicaciones trae esto? Envío sede_ppal #nit #producto cantidad con_iva Med 101 Leche 10 No Bog 201 Chorizo 29 Si Med 101 Yogur 12 Si Med 101 Pasas 100 No Bog 201 Leche 12 No Bog 201 Pasas 100 No Med 128 Chicha 10 No

¿ Qué pasa si queremos ingresar un proveedor que todavía no nos ha suministrado algún producto pero deseamos registrar sus datos? Envío sede_ppal #nit #producto cantidad con_iva Med 101 Leche 10 No Bog 201 Chorizo 29 Si Med 101 Yogur 12 Si Med 101 Pasas 100 No Bog 201 Leche 12 No Bog 201 Pasas 100 No Med 128 Chicha 10 No

¿Qué pasa si en el almacén ya no desean vender chicha pero desean preservar la información del proveedor 128? Envío sede_ppal #nit #producto cantidad con_iva Med 101 Leche 10 No Bog 201 Chorizo 29 Si Med 101 Yogur 12 Si Med 101 Pasas 100 No Bog 201 Leche 12 No Bog 201 Pasas 100 No Med 128 Chicha 10 No

¿Qué pasa si en el almacén ya no desean negociar con el proveedor 128 ¿Qué pasa si en el almacén ya no desean negociar con el proveedor 128? ¿Qué pasa con la información del producto chicha? Envío sede_ppal #nit #producto cantidad con_iva Med 101 Leche 10 No Bog 201 Chorizo 29 Si Med 101 Yogur 12 Si Med 101 Pasas 100 No Bog 201 Leche 12 No Bog 201 Pasas 100 No Med 128 Chicha 10 No

¿Cuántas veces dice la relación envio donde está situado cada proveedor? ¿Cuántas veces dice la relación envio si un producto está gravado o no con IVA? Envío sede_ppal #nit #producto cantidad con_iva Med 101 Leche 10 No Bog 201 Chorizo 29 Si Med 101 Yogur 12 Si Med 101 Pasas 100 No Bog 201 Leche 12 No Bog 201 Pasas 100 No Med 128 Chicha 10 No

Todo lo anterior indica que aunque la relación representa el negocio, posee muchos problemas La idea de la normalización es “producir” relaciones que representen el negocio pero que al mismo tiempo eviten (en lo posible) anomalías como las anteriores

FORMAS NORMALES

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 “extremos”

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 para relaciones con una sola clave candidata. Para relaciones con más de 1 clave candidata directamente se aplica BCNF

Primera Forma Normal : 1FN Dominio Atómico. Los elementos del dominio son indivisibles. 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. Ejemplos: Venta (número-fac, cliente, producto[i], unidades[i] ) No está en primera forma normal. Posible solución: Venta (número-fac, producto, unidades, producto) 13

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. 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) clave primaria(departamento, cod-empleado) 13

Segunda Forma Normal: 2FN 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. Ejemplo, sea la relación : venta(número-factura, producto, cliente, unidades) clave primaria: número-fac, producto. ¿Venta cumple la 1FN? ¿El Cliente DFC de la clave primaria? ¿Las unidades DFC de la clave primaria? 14

Ejemplo de Segunda Forma Normal ¿Las unidades DFC de la clave primaria? (número-fac, producto)  unidades Comprobar si al quitar alguno de los atributos del lado izquierdo, se conserva la dependencia funcional. número-fac  unidades F 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… 15

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

Ejemplo de Segunda Forma Normal Posible solución: Dependencias funcionales completas: número-fac  cliente número-fac, producto  unidades Se descompone en: Factura (#número-fac, cliente) Venta (#número-fac, #producto, unidades) numero-fac clave foránea de Factura 15

Tercera Forma Normal: 3FN 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. 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. Cuando no existen dependencias transitivas, que se dan cuando un atributo que no es parte de la clave primaria depende de otros atributos que tampoco son clave primaria. 16

Ejemplo de Tercera Forma Normal R(número-fac, 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 ajena de R1. 17

Forma Normal Boyce/Codd El propósito de la tabla es mostrar qué tutores están asign Forma Normal Boyce/Codd Forma normal Boyce/Codd: FNBC 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. Class_Code y Enroll_grade dependen funcionalmente de manera completa de (Stu_id, Staff_id); sin embargo, staff_id depende de class_code. Stu_id Staff_id Class_code Enroll_grade 18

Ejemplo Stu_id Staff_id Class_code Enroll_grade Class_Code es un determinante que no es clave candidata. Stu_id Staff_id Class_code Enroll_grade 125 25 21334 A 20 32456 C 135 28458 B 144 27563 ¿Qué pasa si se asigna otro profesor para la clase 32456? ¿Qué pasa si el estudiante 135 deja la clase 28458?

¿Cómo se soluciona? A B C D A C B D A C D C B Stu_id Class_code Enroll_grade Class_code Staff_id

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. 18

En general la 4FN La definición de la 4NF confía en la noción de una dependencia multivalor. Una tabla con una dependencia multivalor es una donde la existencia de dos o más relaciones independientes muchos a muchos causa redundancia; y es esta redundancia la que es suprimida por la cuarta forma normal. Sucursal Empleado Propietario B003 Ann Beech Carol Farrel David Ford Tina Murphy Solución: Colocar los atributos en una nueva relación junto con una copia de los determinantes. Sucursal Propietario B003 Carol Farrel Tina Murphy Sucursal Empleado B003 Ann Beech David Ford 17

Finalmente la 5FN También conocida como forma normal de proyección-unión (PJ/NF). Para detalles de esta forma, se recomienda la lectura de: http://es.wikipedia.org/wiki/5NF 17

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. 32