INSTITUCIÓN EDUCATIVA PERPETUO SOCORRO BASES DE DATOS TEMA: MODELO DE DATOS Objetivo: Identificar las características del modelo de datos con el fin de aplicarlas al desarrollo de una base de datos Tomado de: www.soeduc.cl/apuntes/basededatos http://www.genbetadev.com/bases-de-datos/fundamento-de-las-bases-de-datos-modelo-entidad-relacion ¿Qué es un MODELO? Es una representación de la realidad que contiene las características generales de algo que se va a realizar. En base de datos, esta representación la elaboramos de forma gráfica. ¿Qué es un MODELO DE DATOS? Es una colección de herramientas conceptuales para describir los datos, las relaciones que existen entre ellos, semántica (significado) asociada a los datos y restricciones de consistencia (estabilidad, durabilidad). Los modelos de datos se dividen en tres grupos: 1. Modelos lógicos basados en objetos 2. Modelos lógicos basados en registros 3. Modelos físicos de datos MODELOS LÓGICOS BASADOS EN LOS OBJETOS Se usan para describir datos en los niveles conceptual y de visión, es decir, con este modelo representamos los datos de tal forma como nosotros los captamos en el mundo real. Tienen una capacidad de estructuración bastante flexible y permiten especificar restricciones de datos explícitamente. Existen diferentes modelos de este tipo, pero el más utilizado por su sencillez y eficiencia es el modelo Entidad-Relación MODELO ENTIDAD RELACIÓN O E-R Introducción Las bases de datos son un gran pilar de la programación actual, ya que nos permiten almacenar y usar de forma rápida y eficiente cantidades ingentes de datos con cierta facilidad. En la actualidad se usa de forma mayoritaria las bases de datos relacionales (dominadas por distintos gestores a través del lenguaje SQL, en gran medida). Pero ahora vamos a dar un pequeño repaso a lo más esencial del modelo entidad-relación, que es y ha sido durante años la mejor forma de representar la estructura de estas bases de datos relacionales (o de representar sus esquemas). ¿Qué es el modelo entidad-relación? Este modelo es solo y exclusivamente un método del que disponemos para diseñar estos esquemas lógicos que posteriormente debemos de implementar en un gestor de BD (bases de datos). Este modelo se representa a través de diagramas y está formado por varios elementos. Este modelo habitualmente, además de disponer de un diagrama que ayuda a entender los datos y como se relacionan entre ellos, debe de ser completado con un pequeño resumen con la lista de los atributos y las relaciones de cada elemento. Elementos del modelo entidad-relación 1. Entidad Las entidades representan cosas u objetos (ya sean reales o abstractos), que se diferencian claramente entre sí. Para poder seguir un ejemplo durante el artículo añadiré ejemplos sobre un taller mecánico, donde se podría crear las siguientes entidades: Coches (objeto físico): contiene la información de cada taller. Empleado (objeto físico): información de los trabajadores. Cargo del empleado (cosa abstracta): información de la función del empleado. Estas entidades se representan en un diagrama con un rectángulos, como los siguientes. 2. Atributos Los atributos definen o identifican las características de entidad (es el contenido de esta entidad). Cada entidad contiene distintos atributos, que dan información sobre esta entidad. Estos atributos pueden ser de distintos tipos (numéricos, texto, fecha…). Siguiendo el ejemplo de antes podemos analizar los atributos de nuestra entidad “Coches“, que nos darán información sobre los coches de nuestro supuesto taller. Unos posibles atributos serían los siguientes: número de chasis, matrícula, DNI del propietario, marca, modelo y muchos otros que complementen la información de cada coche. Los atributos se representan como círculos u óvalos que descienden de una entidad, como se muestra a continuación. En un modelo relacional (ya implementado en una base de datos) un ejemplo de tabla dentro de una BD podría ser el siguiente. Número de chasis Matrícula DNI del propietario 5tfem5f10ax007210 4817 BFK 45338600L 6hsen2j98as001982 8810 CLM 02405068K 5rgsb7a19js001982 0019 GGL 40588860J Este ejemplo es con tres atributos, pero un coche podría tener cientos (si fuese necesario) y seguirían la misma estructura de columnas, tras implementarlo en una BD. 3. Relación Es un vínculo que nos permite definir una dependencia entre varias entidades, es decir, nos permite exigir que varias entidades compartan ciertos atributos de forma indispensable. Por ejemplo, los empleados del taller (de la entidad “Empleados“) tienen un cargo (según la entidad “Cargo del empleado“). Es decir, un atributo de la entidad “Empleados“ especificará que cargo tiene en el taller, y tiene que ser idéntico al que ya existe en la entidad “Cargo del empleado“. Las relaciones se muestran en los diagramas como rombos, que se unen a las entidades mediante líneas. Yo, bajo mi punto de vista, entiendo mejor esto en una tabla (de una implementación en una BBDD), por lo que voy a poner el ejemplo de cómo se representaría (resaltada la relación, que posteriormente veremos como se haría). Tabla: Empleados Nombre DNI Cargo Carlos Sánchez 45338600L 1 Pepe Sánchez 02405068K 2 Juan Sánchez 40588860J 2 Tabla: Cargo del empleado ID del cargo Descripción 1 2 Jefe de taller Mecánico 4. Relaciones de cardinalidad Podemos encontrar distintos tipos de relaciones según como participen en ellas las entidades. Es decir, en el caso anterior cada empleado puede tener un cargo, pero un mismo cargo lo pueden compartir varios empleados. Esto complementa a las representaciones de las relaciones, mediante un intervalo en cada extremo de la relación que especifica cuantos objetos o cosas (de cada entidad) pueden intervenir en esa relación. Uno a uno: Una entidad se relaciona únicamente con otra y viceversa. Por ejemplo, si tuviésemos una entidad con distintos chasis y otra con matrículas deberíamos de determinar que cada chasis solo puede tener una matrícula (y cada matrícula un chasis, ni más en ningún caso). Uno a varios o varios a uno: determina que un registro de una entidad puede estar relacionado con varios de otra entidad, pero en esta entidad existir solo una vez. Como ha sido en el caso anterior del trabajador del taller. Varios a varios: determina que una entidad puede relacionarse con otra con ninguno o varios registros y viceversa. Por ejemplo, en el taller un coche puede ser reparado por varios mecánicos distintos y esos mecánicos pueden reparar varios coches distintos. Los indicadores numéricos indican el primero el número mínimo de registros en una relación y posteriormente el máximo (si no hay límite se representa con una “n“). 5. Claves Es el atributo de una entidad, al que le aplicamos una restricción que lo distingue de los demás registros (no permitiendo que el atributo específico se repita en la entidad) o le aplica un vínculo (exactamente como comentábamos en las relaciones). Estos son los distintos tipos: Superclave: aplica una clave o restricción a varios atributos de la entidad, para así asegurarse que en su conjunto no se repitan varias veces y así no poder entrar en dudas al querer identificar un registro. Clave primaria: identifica inequívocamente un solo atributo no permitiendo que se repita en la misma entidad. Como sería la matrícula o el número de chasis de un coche (no puede existir dos veces el mismo). Clave externa o clave foránea: este campo tiene que estar estrictamente relacionado con la clave primaria de otra entidad, para así exigir que exista previamente ese clave. Anteriormente hemos hablado de ello cuando comentábamos que un empleado indispensablemente tiene que tener un cargo (que lo hemos representado numéricamente), por lo cual si intentásemos darle un cargo inexistente el gestor de bases de datos nos devolvería un error. ACTIVIDAD No. 1 Fecha de la Actividad : 24/Julio/2015 Fecha de Entrega : 28 /Julio/2015 Tipo de Actividad : INDIVIDUAL Teniendo en cuenta la anterior información define el modelo Entidad-Relación (con sus respectivas entidades, atributos, relaciones, cardinalidad y claves) para la siguiente situación asignada respectivamente como se indica. La solución se debe presentar individualmente en una hoja preferiblemente cuadriculada, para el martes 28 de julio. 1. Academia de Clases RESUELVEN INDIVIDUALMENTE: Ledys Zabala, Luisa Álvarez, Ana María Jiménez, Kelly Garzón, José Manuel Ocampo Crear un diseño entidad relación que permita controlar el sistema de información de una academia de cursos siguiendo estas premisas: Se dan clases a trabajadores y desempleados. Los datos que se almacenan de los alumnos son el Identificación, dirección, nombre, teléfono y la edad Además de los que trabajan necesitamos saber el NIT, nombre, teléfono y dirección de la empresa en la que trabajan Los cursos que imparte la academia se identifican con un código de curso. Además se almacena el programa del curso, las horas de duración del mismo, el título y cada vez que se imparte se anotará las fechas de inicio y fin del curso junto con un número concreto de curso (distinto del código) y los datos del profesor o profesora (sólo uno por curso) que son: Identificación, nombre, apellidos, dirección y teléfono Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno o alumna puede realizar varios cursos y en cada cual obtendrá una nota. 2. Red Social RESUELVEN INDIVIDUALMENTE: Jeison Moreno, Ana Mychell Suesca, Stefanni Estrada, Juan Pablo Maya Crear un diseño entidad/relación que permita modelar un sistema que sirva para simular el funcionamiento de una red social, teniendo en cuenta lo siguiente: Los usuarios de la red social se identifican con un identificador y una contraseña. Además se almacena de ellos: Su nombre, apellidos, dirección, teléfono (puede tener varios teléfonos) y e-mail (el e-mail no tiene que poder coincidir con el de otro usuario) y una foto Si los usuarios son celebridades, de ellos no aparecerá ni el email ni la dirección ni el teléfono. Los usuarios pueden tener una serie de contactos, que en realidad son otros usuarios. De cada contacto se puede almacenar un comentario que es personal y que sirve para describir al contacto. Los usuarios pueden organizar sus contactos en grupos de los cuales se almacena un nombre y deberemos saber los contactos que contiene. El mismo contacto puede formar parte de varios grupos. Además cada usuario puede tener una lista de usuarios bloqueados a fin de que no puedan contactar con él Los usuarios pueden publicar en la red comentarios, los cuales se puede hacer que los vea todo el mundo, que los vea uno o varios de los grupos de contactos del usuario o bien una lista concreta de usuarios. Los comentarios pueden incluir un texto y una imagen. 3. Menú Diario RESUELVEN INDIVIDUALMENTE: Carolina Arcila, Lised Carolina Tribiño, Valentina Quintero, Verónica Montoya, Johan Sebastián Granada Crear un esquema Entidad/relación que represente un modelo para llevar los datos que maneja un restaurante de menús diarios. Teniendo en cuenta que: Sólo interesa llevar los datos de los menús diarios a la hora de la comida Cada menú se compone de una serie de posibles platos. Cada plato se puede repetir en diferentes días. Los platos pueden ser del 1º, 2º, 3º o 4º grupo. De cada plato se almacena el nombre (por ejemplo Arroz con verduras y champiñones) y una pequeña descripción. De los menús almacenamos la fecha en la que se ofrece el menú, el número de personas que han tomado menú ese día. Además almacenamos la cantidad de cada plato que se ha tomado ese día. Se almacena también la temperatura que hacía el día del menú para así poder analizar las temperaturas y los platos exitosos Observación: Los grupos de cada plato son: 1º grupo (estimulan el apetito): Entremeses. Sopas. Cremas. Consomés. 2º grupo (ligeros): Huevos, Arroces. Pescados. Pastas italianas. 3º grupo (fuertes): Carnes, Aves, Pescado 4º grupo: Helados, Quesos, Frutas, Repostería, Postres (frío o caliente)