Diseño de Bases de Datos Diseño de Sistemas de Información
Modelo Relacional
Modelo Relacional Una Base de Datos Relacional es una base de datos en donde todos los datos visibles al usuario están organizados estrictamente como tablas de valores (relaciones) y en donde todas las operaciones de la base de datos operan sobre estas tablas (Dr. Codd 1970).
Propiedades de las Relaciones No existen tuplas duplicadas. Las tuplas están en desorden, de arriba hacia abajo. Los atributos están en desorden, de izquierda a derecha. Cada tupla contiene exactamente un valor para cada atributo.
Estructura Modelo Relacional Relación: Tabla Tupla: Fila o registro Cardinalidad: Número de tuplas Atributo: Columna o campo Grado: Número de atributos Dominio: Conjunto de valores válidos Clave primaria: Identificador Único
Manipulación Modelo Relacional Operaciones basadas en la teoría de conjuntos Unión Intersección Producto cartesiano Operaciones propias de un sistema relacional Restricción Proyección Junta natural
El Modelo Entidad Relación (MER) "Modelo de datos basado en una percepción del mundo real que consiste en un conjunto de objetos básicos llamados entidades y relaciones entre estos objetos".
Componentes MER Entidad Relación Atributos Objeto que tiene vida propia en el sistema que se esta modelando. Ej: Cliente, producto, estudiante, vacación. Relación Asociación o vinculación entre dos o más entidades. Ej: La relación comprar entre las entidades cliente y producto. Atributos Propiedades o características asociadas a una entidad. Ej: nombre, cédula, teléfono.
Diagrama MER Otra forma de representar las entidades
Integridad Modelo Relacional Claves (Llaves) Identifican una entidad dentro de un conjunto de entidades. Clave candidata Que puede ser clave primaria. Clave (llave) primaria Atributo o conjunto de atributos que permiten identificar en forma única una tupla en la tabla. Llave foránea (alterna) Atributo que es llave primaria en otra entidad con la cual se relaciona. Las llaves foráneas son en últimas las que permiten relacionar las tablas en las bases de datos.
Relaciones o asociaciones Grado de una relación. El número del conjunto de entidades que participan en la asociación. Unaria Participa un único conjunto de entidades. Binaria Participan dos (2) conjuntos de entidades. N-aria N-aria: Participan más de dos conjuntos de entidades.
Grado de una Relación (Ejemplos) Unaria. Binaria. N-aria.
Relaciones o asociaciones Cardinalidad de una relación. Indica el número de entidades de un conjunto (E1) que se relacionan con una entidad de otro conjunto (E2) y viceversa.
Relaciones o asociaciones Uno a uno (1:1) Una entidad del conjunto de entidades E1 se relaciona con una única entidad del conjunto de entidades E2 y viceversa. Uno a muchos (1:n) Una entidad del conjunto de entidades E1 se relaciona con muchas entidades del conjunto de entidades E2 y una entidad del conjunto de entidades E2 solo puede estar relacionada con una entidad del conjunto de entidades E1. Muchos a muchos (n:n) Una entidad del conjunto de entidades E1 esta relacionada con muchas entidades del conjunto de entidades E2 y viceversa.
Relaciones o asociaciones Uno a uno (1:1) Uno a muchos (1:n) Muchos a muchos (n:n)
Relaciones o asociaciones Uno a uno (1:1) Uno a muchos (1:n) Muchos a muchos (n:n)
Relaciones o asociaciones (Mapeo) Entidades débiles Cuando en el MER aparece una relación muchos a muchos, esto da pie a la generación de una “entidad débil” que contiene como componentes de su clave primaria, las claves de las entidades “fuertes” que la generan. matricula 1,n Estudiante 1,n ve Materia
Ejemplo Se tiene una empresa desarrollando varios proyectos, a los que son asignados varios empleados, pero cada empleado solo esta vinculado a un proyecto, en un momento dado. Cada proyecto consume diferentes recursos en cantidades determinadas: los empleados están a cargo de un supervisor, que es un empleado también. Los empleados pueden tener personas beneficiarias (hijos, esposas, padres, etc.).
Ejemplo (MER)
Paso del MER al Modelo Relacional
Diccionario de datos de la BD Evita tener que especificar los atributos en el MER, lo cual aligera el modelo. Facilita la posterior implementación de la BD en un motor específico. Da una idea muy precisa de la información que se va a almacenar. Integra tanto los tipos del dominio como las restricciones en la BD.
Diccionario de datos (Ejemplo) Empleado Campo Tipo Long Descripción Llave Validación CodigoE Número 10 Código del empleado PK CedulaE Número de cédula del empleado Nombre Cadena 30 Nombre del empleado Dirección 50 Dirección de residencia Teléfono 15 Número telefónico de contacto Título Título de la profesión Instit Institución de egreso Año Fecha Año de egreso Formato: DD/MM/AAAA 1 Tipo de empleado dentro de la empresa P: Planta T: Temporal C: Por contrato CodigoSU Código del empleado supervisor FK
Ejercicio Realice una Base de Datos para llevar el registro de uno o varios torneos de fútbol. En dicho sistema será posible almacenar la información acerca de los equipos, sus jugadores y su rendimiento, así como las estadísticas generales del torneo (goleador, tabla de posiciones, entre otras). Alguna información que se podrá consultar en el sistema puede ser: Equipos que juegan un torneo Torneos en que compite un equipo Goleadores de un equipo o torneo Tabla de posiciones Seguimiento del comportamiento de un jugador Partidos en una fecha Marcadores de los partidos Estadísticas de un equipo (Goles, partidos, etc) Y en general las consultas que se requieran en un torneo de fútbol. 1. Defina las entidades que deben ser involucradas en el modelo. 2. Desarrolle los esquemas que describan dichas entidades. 3. Identifique tanto las claves primarias como las foráneas. 4. Haga un diagrama del modelo E/R del sistema. 5. Especifique el diccionario de datos de la BD.