Diseño de Bases de Datos Dr. Guillermo Rodríguez Abitia Departamento de Sistemas de Información ITESM Campus Estado de México Definiciones • Datos: Hechos significativos, texto, graficas, imágenes, sonido, segmentos de video • Base de datos: Colección organizada de datos relacionados lógicamente • Información: Datos procesados para ser útiles en la toma de decisiones • Metadatos: Datos sobre los datos Problemas con la Dependencia de los Datos Cada programador de aplicaciones debe mantener sus propios datos Cada programa de aplicación necesita incluir códigos de metadatos de cada archivo Cada programa de aplicación debe tener sus propias rutinas de procesamiento para leer, insertar, actualizar y borrar datos Carencia de coordinación y control central Formatos no estándar de archivos Problemas con Redundancia de Datos • Desperdicio de espacio por tener datos duplicados • Provoca mayores problemas de mantenimiento • El problema mayor: – Cuando los datos cambian en un archivo, se pueden producir inconsistencias. – Pone en peligro la integridad de los datos SOLUCIÓN: El Uso de Bases de Datos • Repositorio central de datos compartidos • Los datos son manejados por un agente controlador • Se almacenan de manera conveniente y estandarizada Sistema de Administración de Bases de Datos • Un DBMS es un sistema de almacenamiento y recuperación de datos que permite su almacenamiento no redundante, mientras aparecen ante el usuario como completamente integrados Sistema de Administración de Bases de Datos Aplicación #1 Aplicación #2 Aplicación #3 DBMS Base de datos que contiene datos centralizados y compartidos Ventajas de las Bases de Datos • Independencia programa-datos – Los metadatos están almacenados en el DBMS, de modo que las aplicaciones no necesitan preocuparse de los formatos de los datos – Las consultas (queries) y actualizaciones de los datos son administrados por el DBMS, de modo que los programas no necesitan procesar rutinas de acceso a datos – Resultados en el incremento de la productividad de desarrollo y mantenimiento de aplicaciones – Redundancia mínima de datos – Lleva a un incremento de integridad y consistencia Ventajas de las Bases de Datos • Mejora en la compartición de datos – Usuarios distintos obtienen vistas distintas de los datos • Reforzamiento de estándares – Todos los accesos a datos son hechos del mismo modo • Mejora en la calidad de los datos – Restricciones y reglas de validación de los datos • Mejor acceso y respuesta de los datos – Uso de un lenguaje estándar de consultas (SQL) • Seguridad, recuperación, respaldo y concurrencia – La recuperación de desastres es más fácil Componentes del Ambiente de Bases de Datos • Herramientas CASE – computer-aided software engineering • Repositorio – almacén centralizado de metadatos • Sistema de Administración de Bases de Datos (DBMS) – software para administrar la base • Base de datos – almacén de los datos • Programas de Aplicación – software que usa los datos • Interfaz de usuario – despliegues gráficos y de texto a los usuarios • Administradores de datos – personal responsable de mantener la base de datos • Desarrolladores de sistemas – personal responsable de diseñar programas y bases de datos • Usuarios finales – gente que usa las aplicaciones y las bases de datos Componentes del ambiente de bases de datos Administradores de datos Desarrolladores de sistemas Usuarios finales Herramientas CASE Interfaz de usuario Programas de aplicación Repositorio DBMS Base de Datos Evolución de los Sistemas de Bases de Datos • • • • • • • • Archivos planos - 1960s - 1980s Jerárquico – 1970s - 1990s Redes – 1970s - 1990s Relacional – 1980s – presente Orientado a objetos – 1990s - presente Objetos-relacional – 1990s - presente Data warehousing – 1980s - presente En Web – 1990s - presente Ciclo de Desarrollo Reglas de Negocio • Declaraciones que definen o restringen algún aspecto del negocio • Reflejan la estructura del negocio • Controlan e influencian el ambiente de negocios • Expresadas en términos familiares para los usuarios • Automatizadas a través del DBMS Una buena regla de negocio es: • • • • • • • Declarativa – qué, no cómo Precisa – clara, significado acordado Atómica – una oración Consistente – interna y externamente Expresable – estructurada, lenguaje natural Distinta – no redundante Orientada al negocio – entendida por gente de negocios Elementos del Modelo E-R • Instancia de entidad - persona, lugar, objecto, evento, concepto (normalmente corresponde a un renglón en una tabla) – Entidad – colección de instancias de entidad (normalmente corresponde a una tabla) • Atributo – propiedad o característica de una entidad (normalmente corresponde a una columna en una tabla) • Instancia de relación – liga entre (corresponde a llaves primarias y foráneas en dos tablas relacionadas) – Relación – liga entre entidades envía PROVEEDOR suministra EMBARQUE incluye clave COMPONENTE CLIENTE somete se usa en relación entidad cardinalidades Obligatoria – uno Obligatoria – muchos Opcional – uno Opcional - muchos PRODUCTO requiere ORDEN Símbolos básicos Entidad fuerte Entidad asociativa Entidad débil Atributo Relación Atributo multivaluado Relación de identificación Atributo derivado ¿Qué debe ser una entidad? • Debe ser: – Un objeto con muchas instancias en la BD – Un objeto compuesto de múltiples atributos – Un objeto que queremos modelar • No debe ser: – Un usuario de la BD – Un resultado de la BD (ejm. un reporte) ! TESORERO recibe administra CUENTA CUENTA es cargado REPORTE DE GASTOS sumariza es cargado GASTO GASTO Atributos • Atributo – propiedad o característica de una entidad • Clasificación de atributos: – Simple vs. Compuesto – Un valor vs. Multivaluado – Almacenado vs. Derivado – Atributos de identificación Identificadores (Llaves) • Identificador (Llave) – Un atributo (o combinación de atributos) que identifica instancia individuales de manera única en una entidad • Llaves simples vs. llaves compuestas • Llave candidata – un atributo que puede ser llave… satisface los requerimientos para serlo Características de los Identificadores • • • • No cambiarán su valor (dinámicos) No serán nulos No son inteligentes Son lo más sencillos posible Dirección Calle_Número Ciudad Estado Código_Postal " # Número_matrícula " # Nombre_estudiante $ ESTUDIANTE Otros_atributos " # num_vuelo fecha Id_Vuelo " # VUELO num_pasajeros % & ' nombre_empleado Id_empleado EMPLEADO antigüedad fecha_ingreso # ( ) dirección $( ) habilidad # & * ) precio id_producto fecha_efectiva historia_precios PRODUCTO ) Más sobre relaciones • Relaciones vs. instancias de relaciones – Las relaciones son modeladas como diamantes y líneas entre entidades. Las instancias de relaciones ocurren entre instancias específicas de las entidades • Las relaciones pueden tener atributos – Estas describen características que se presentan cuando hay una asociación entre las entidades de la relación • Dos entidades pueden tener más que un tipo de relación entre ellas (relaciones múltiples) • Entidad asociativa = combinación de una relación con una entidad – Surge al normalizar un ERD Grado de las Relaciones • El grado de una relación se refiere al número de entidades que participan en ella – Unitaria – Binaria – Ternaria + Grados de relaciones Binaria Unitaria Ternaria Cardinalidad de las Relaciones • Uno a Uno – Cada instancia de una entidad se relacionará exactamente con una instancia de la entidad asociada • Uno a Muchos – Una instancia de la primera entidad se relacionará con muchas instancias de la segunda, pero cada instancia de la segunda se relacionará exactamente con una instancia de la primera • Muchos a Muchos – Las instancias de ambos lados de la relación de asociarán con muchas instancias de la otra entidad Restricciones de Cardinalidad • El número de instancias de una entidad con que puede o debe relacionarse una instancia del otro lado de la relación • Cardinalidad Mínima – Cero: opcional – Uno o más: obligatoria • Cardinalidad Máxima – El número máximo de instancias , Cardinalidad de la relación Obligatoria - uno Obligatoria - muchos Opcional - uno Opcional - muchos PERSONA Uno a uno se casa con EMPLEADO dirige Uno a muchos EMPLEADO utiliza LUGAR DE ESTACIONAMIENTO Uno a uno LÍNEA DE PRODUCTOS contiene PRODUCTO Uno a muchos ESTUDIANTE asiste a Muchos a muchos CURSO PARTE VENDEDOR suministra medio_de_embarque BODEGA costo_unitario & &- está grabada en PELÍCULA COPIA EN VIDEO , PACIENTE acude a CONSULTA , . $ Claudia Gerardo PERSONA Elena desposa Carmen Ricardo Carlos clave_ empleado nombre_ empleado EMPLEADO (otros atributos) aprueba clave_ curso nombre_ curso requisito CURSO ! Empleado Carlos María Othón Leonel Irma Curso clave_ empleado nombre_ empleado EMPLEADO fecha aprueba ( ) / clave_ curso nombre_ curso CURSO / PARTE VENDEDOR suministra medio_de_embarque BODEGA costo_unitario ) PARTE ) . se Compone de $ cantidad " # ( trabaja en supervisa EMPLEADO DEPARTAMENTO administra 0 ( $ puede impartir PROFESOR CURSO imparte &semestre 1 Ejercicio A la compañía “El Sapo Saltador, S.A.” le interesa guardar información acerca de sus empleados, incluyendo: clave, nombre, apellido paterno, apellido materno, nacionalidad, forma migratoria (en caso de ser extranjero), si es tiempo parcial o tiempo completo, dirección, teléfonos de casa, extensión, puesto, departamento, estado civil y prestaciones. Además, a la compañía le interesa mantener la siguiente información acerca de sus productos: número de identificación del producto, costo unitario, número de unidades en inventario, descripción, categoría (ej. electrodomésticos, cocina, juguetes, etc.) y fecha de manufactura. Cada departamento de la compañía se encarga de una categoría. Todos los departamentos tienen un nombre y una extensión distinta. También es importante guardar información sobre los proveedores, quién es el representante de ventas, el nombre de la compañía, la clave del proveedor, la dirección, la extensión y los productos que ofrece. Entidades Fuertes vs. Débiles y Relaciones de Identificación • Entidad fuerte – Existe independientemente de otras entidades – Tiene su propio identificador único – Se representa con un rectángulo de línea sencilla • Entidad débil – Depende de una entidad fuerte, no puede existir sola – No tiene su propio identificador único – Se representa con un rectángulo de línea doble • Relación de identificación – Asocia entidades fuertes con débiles – Se representa con un rombo de línea doble ( $ clave_empleado EMPLEADO ( nombre apellido_ paterno apellido_ materno nombre_ empleado nombre_dep fecha_ nacimiento tiene DEPENDIENTE ( Entidades Asociativas • Es una entidad – tiene atributos • Y es una relación – asocia dos entidades – Las cardinalidades hacia la entidad asociativa siempre son “muchos” – La entidad asociativa podría tener significado independientemente de otras entidades – La entidad asociativa preferentemente debe tener un identificador único y puede tener más atributos – Puede tener otras relaciones con entidades además de las que asocia – Las relaciones ternarias se deben convertir en entidades asociativas # , clave_ empleado nombre_ empleado 2!3!, num_certificado EMPLEADO 5 4 #/ clave_ curso & 6 ) 7 nombre_ curso CURSO CERTIFICADO # / fecha $ Supertipos y Subtipos • Subtipo: un subgrupo en una entidad que posee atributos adicionales exclusivos. • Supertipo: entidad genérica con los atributos comunes a todos los subtipos con que se relaciona. • Herencia: – Los subtipos heredan todos los atributos del supertipo – Una instancia del subtipo también es una instancia del supertipo atributos compartidos Notación básica para supertipos y subtipos Entidad genérica SUPERTIPO Etcétera SUBTIPO 1 SUBTIPO 2 atributos únicos para subtipo 1 atributos únicos para subtipo 2 Versiones especializadas del supertipo Supertipo EMPLEADO y tres subtipos nombre_empleado clave_empleado 2 dirección EMPLEADO fecha_contrato , & EMPLEADO POR HORA pago_por_hora EMPLEADO ASALARIADO salario opción_acciones CONSULTOR num_contrato tasa_facturación Relaciones y subtipos • Las relaciones en el nivel del supertipo indican que todos los subtipos participan en ella • Las relaciones en el nivel del subtipo son exclusivas de las instancias del mismo Generalización y Especialización • Generalización: El proceso de definir un supertipo a partir de los subtipos. BOTTOM-UP • Especialización: El proceso de definir subtipos a partir de un supertipo. TOPDOWN Restricciones en Subtipos • Exhaustiva: Si toda instancia en el supertipo debe pertenecer a un subtipo también – Exhaustiva: línea doble – No exhaustiva: línea sencilla Restricciones de Subtipos • Excluyente: Si una instancia del supertipo puede pertenecer solo a un subtipo – Excluyente: se marca con una “d” (disjoint) – No excluyente: se marca con una “o” (overlapping) nombre dirección sexo PERSONA id_persona fecha_nacim salario departamento EMPLEADO EX-ALUMNO fecha_contrato ESTUDIANTE grados año fecha grado FACTULTAD STAFF POSGRADO PREGRADO rango puesto tipo asesor Agrupamiento • Los diagramas EER pueden ser difíciles de leer cuando hay muchas entidades involucradas • Las entidades que hacen referencia a un mismo objeto de negocio se pueden agrupar en un cluster • Facilita la lectura para el usuario Reglas de Negocios • Declaraciones que definen o restringen algún aspecto del negocio • Las restricciones pueden impactar: – Estructura (definición, dominio, relación) – Comportamiento (restricciones de operación) Reglas sobre acciones • Objeto ancla – el objeto sobre el cual se limitan las acciones • Acción – creación, borrado, actualización o lectura • Objetos correspondientes – un objeto influenciando la habilidad de realizar una acción en otra regla de negocio para poder asignar un grupo, el profesor debe estar acreditado para impartir el curso correspondiente id_profesor nombre_prof objeto correspondiente Id_estudiante PROFESOR está acreditado fecha_acredita nombre objeto ancla ESTUDIANTE está asignado regla sobre acción R id_curso CURSO nombre_curso GRUPO está inscrito está programado objeto correspondiente num-grupo id-grupo semestre Normalizando ERDs • Normalizar permite optimizar el diseño de la base de datos al: – Minimizar redundancia – Fragmentar las entidades para garantizar dependencias directas – Facilitar consistencia e integridad en los datos • Se puede hacer desde el modelo conceptual o desde el modelo lógico • Para ERDs garantiza segunda forma normal Normalizando ERDs • Relaciones muchos a muchos – Crear una entidad asociativa • Relaciones unitarias – Crear una entidad débil • Atributos multivaluados – Crear una entidad débil • Relaciones ternarias – Crear una entidad asociativa Ejercicio Normalizar el siguiente ERD clave_ empleado nombre_ empleado dependiente clave_ proyecto trabaja en EMPLEADO fecha_ inicio nombre_ proyecto PROYECTO fecha_ final material Ciclo de Desarrollo ERD Diagrama relacional Tablas • Son bidimensionales – – – – Renglones: registros o instancias Columnas: atributos o campos Los renglones son variable Las columnas son fijas • Requisitos: – – – – – – Nombre único Celdas atómicas Cada renglón es único Las columnas tienen nombres únicos El orden de las columnas es irrelevante El orden de los renglones es irrelevante Correspondencia con el ERD • Cada entidad y cada relación muchos a muchos corresponde a una tabla • Los renglones corresponden a instancias de la tabla o de la relación muchos a muchos • Las columnas corresponden a atributos • Las relaciones del ERD se expresan como llaves foráneas y van en el lado “muchos” NOTA: las tablas también se conocen como relaciones, pero no tienen el mismo significado que las relaciones en el ERD Campos Llave • Las llaves son campos especiales que sirven dos propósitos principales: – Las llaves primarias son identificadores únicos de la tabla – Las llaves foráneas son identificadores para ligar dos tablas • Las llaves pueden ser simples o compuestas, dependiendo del número de atributos que las componen Pasando de ERD a Modelo Relacional clave_ empleado nombre_ empleado num_certificado EMPLEADO nombre_ curso CURSO CERTIFICADO CURSO EMPLEADO clave_ nombre_ empleado empleado num_ CERTIFICADO certificado clave_ curso fecha clave_ curso fecha clave_ empleado nombre_ curso clave_ curso Otras Consideraciones • La llave de una entidad asociativa puede ser: – Asignada con un identificador único – La combinación de las llaves de las entidades que asocia • La llave de una entidad débil – Siempre es compuesta – Se combina el valor del atributo en cuestión con la llave de la entidad padre • La llave de un subtipo – Es la misma que la del supertipo – La relación es uno a uno Ejercicio Convertir los siguientes ERD a modelo relacional nombre_empleado clave_empleado EMPLEADO EMPLEADO POR HORA pago_por_hora dirección EMPLEADO ASALARIADO salario opción_acciones fecha_contrato CONSULTOR num_contrato tasa_facturación clave_empleado EMPLEADO nombre apellido_ paterno apellido_ materno nombre_ empleado nombre_dep fecha_ nacimiento tiene DEPENDIENTE Tablas Bien Estructuradas • Una que tiene redundancia mínima y permite insertar, actualizar y borrar datos sin causar inconsistencias • La meta es evitar anomalías – Inserción – al agregar nuevos renglones se duplican datos innecesariamente – Borrado – al borrar renglones se pierden datos que serán necesarios en el futuro o en otras tablas – Actualización – cambiar datos en un renglón obliga a cambiarlos en otros, debido a redundancia Dependencias Funcionales y Llaves • Dependencia funcional: el valor de un atributo determina el valor de otro • Llave candidata: – Identificador único. Una de las llaves candidatas se convertirá en la llave primaria – Cada atributo no candidato, depende funcionalmente de los candidatos Pasos de la normalización Ninguna forma normal Eliminar dependencias parciales Segunda forma normal Eliminar anomalías de dependencias funcionales Forma normal de Boyce-Codd Eliminar otras anomalías Quinta forma normal Eliminar grupos repetidos Primera forma normal Eliminar dependencias transitivas Tercera forma normal Eliminar dependencias multivaluadas Cuarta forma normal Ninguna forma normal 8 8 8 $ $ Puede tener muchos proyectos, por lo tanto es multivaluado Primera forma normal 8 8 Dependencias parciales 8 $ $ Segunda forma normal 8 8 Dependencias transitivas 8 Ejercicio #8 1?B?>: & $ 0 A$ @ > 1?. ;;; 9;. ;;; A$ @ 1 >?. ;;; 9?. ;;; 1 9:. ;;; ) :@B1<< ;<==:9 + , Ejercicio 8# 8 9>@ =:BB ?B>9 B?@> E B? <=;> =:BB 1?B@ 3 0 A , D( 0 " 0 C , , & + $ 0 C A& C , , & Ejercicio Indicar en qué forma normal se encuentran las siguientes tablas: a) EMPLEADO (emp_id, emp_nombre, dirección, teléfono) b) EMPLEADO (emp_id, emp_nombre, dirección, teléfono, pariente) c) EMPLOYEE (emp_id, emp_nombre, dirección, teléfono, pariente) d) RELATIVE (emp_id, pariente) e) FLIGHT (no_vuelo, origen, destino, millaje)