4.1. El superpoder intelectual crea el modelo conceptual
1. El equipo debe organizarse
En esta sección y siguientes vais a conocer los modelos de datos que se utilizan en el diseño de software que utiliza una base de datos. Os habéis familiarizado con el concepto de modelo de datos, y ahora debéis saber que en el momento de desarrollar un proyecto que involucra base de datos es importante conocer y establecer los modelos de datos y niveles de diseño a utilizar. Si los modelos no son definidos apropiadamente, podemos tener problemas posteriores de funcionamiento.
Investigad en Internet cuáles son las tres fases en la metodología de diseño de una base de datos:
Anotad sus nombres y cread una breve frase que las explique.
Buscad tres características de cada uno de los tres modelos que componen las fases del diseño.
De las siguientes afirmaciones, investigad cual pertenece a cada modelo:
Es independiente del SGBD (sistema gestor de bases de datos) que se utilice después.
Depende del SGBD pero es independiente del lenguaje de programación que se utilice finalmente.
Depende del SGBD y utiliza un lenguaje de programación concreto.
Lumen dice ¿Necesitáis sugerencias?
Si no encontráis información de calidad, podéis ayudaros de las siguientes propuestas de webs:
Motus dice ¿Crees que tus compañeros y compañeras están emocionados con esta actividad?
¿Crees que tus compañeros y compañeras están emocionados con esta actividad?
Cuando estabais haciendo esta actividad grupal, ¿cómo se estaban sintiendo?
Puede que algunos compañeros o compañeras se hayan sentido inseguros o tensas para hacer la actividad. Seguro que alguien ha tranquilizado al equipo y ha ayudado a hacerla.
Es posible que alguien estuviese enfadado o enfadada, quizás porque no sabía cómo hacerla.
Cuando trabajamos en equipo podemos tener diferentes sensaciones al hacer una actividad. Conocerlas y comprenderlas nos ayudará a hacer la tarea con éxito. Para ello sigue estos consejos en las próximas actividades en equipo:
Piensa en cómo te estás sintiendo tú.
Observa y pregunta a tus compañeros para saber cómo se sienten.
Decidid en equipo qué cosas podéis hacer para sentiros mejor para resolver la actividad.
2. Un nuevo modelo desafía al equipo: Modelo E-R
Comenzamos la primera fase del diseño abordando el modelo conceptual de la base de datos. Este modelo se crea utilizando una técnica de representación gráfica desarrollada que recibe el nombre de modelo entidad-relación (E/R) y al final se obtiene como resultado el diagrama entidad-relación (E/R).
Este diagrama incorpora información relativa a los datos y la relación existente entre ellos, para suministrar una visión del mundo real. El modelo E/R es un paso previo al futuro diseño de una base de datos y, por tanto, independiente del modelo de SGBD que se utilice posteriormente (nosotros utilizaremos un SGBD relacional, como vimos en el punto anterior).
Para poder aprender cómo crear nuestro diagrama E/R, primero debemos conocer sus elementos y lo haremos utilizando el ejemplo del modelado de las tarjetas que ha ofrecido un banco a sus clientes:
De los clientes se conoce el código de cliente, el dni, el nombre, la fecha de nacimiento y la ciudad en la que vive. A su vez, también sabemos que cada cliente puede utilizar varias tarjetas de crédito, que son identificadas por el nombre de la tarjeta, el número, el código de seguridad y la fecha de vencimiento.
¡Aquí tienes los elementos del diagrama E-R!
PASO 1: Entidades
MODELO
¿Qué es?¿Cómo se representa?
Una Entidad es un objeto que existe y es distinguible de otros objetos por su sola existencia y sobre él recogeremos información. Ejemplos de entidades son: cosa, persona, concepto abstracto o suceso (coches, casas, empleados, clientes, empresas, oficios, diseños de productos, conciertos, excursiones, etc.).
Tiene como características que:
Un nombre de entidad sólo puede aparecer una vez en el esquema.
Puede ser concreta, como una persona o un libro, o puede ser abstracta, como un día festivo o un concepto.
Toda entidad tiene un identificador o clave: conjunto de uno o más atributos que permiten identificar de forma única una ocurrencia de una entidad dentro de un conjunto de ellas. Una entidad puede tener identificadores alternativos.
Las entidades se representan gráficamente mediante rectángulos y su nombre aparece en el interior de él:
PASO 2: Atributos
MODELO
(Clic para ampliar)
¿Qué es?¿Cómo se representa?
Una entidad está representada por un conjunto de atributos. Los atributos son datos que describen las propiedades de una entidad dada: cada una de las propiedades o características. El conjunto de valores permitidos un atributo se denomina dominio.
Ten cuidado con:
No confundir otras entidades con un atributo. Por ejemplo: de la Entidad Vehículo se pueden establecer atributos como marca, modelo, color, chasis, placa, etc. Son características propias del vehículo y lo diferencian de otros. Pero el dueño del vehículo no puede ser un atributo del vehículo ya que no define al vehículo y este además tiene atributos propios que lo definen, como nombre, DNI, dirección, teléfono, edad, sexo, etc. Sería otra entidad.
No confundir atributos iguales de entidades distintas. Por ejemplo: podemos tener una entidad Estudiante y otra entidad Profesor, que aparentemente tienen los mismos atributos como DNI, nombre, edad, teléfono, etc. Podemos malinterpretar esta situación y crear una entidad llamada persona para englobar a ambas entidades, pero esto no es conveniente; por lo que se debe ser muy específico al nombrar los atributos de las entidades para que hagan referencia a la entidad a la que pertenecen.
Los atributos se representan mediante una elipse o un círculo con su nombre:
PASO 3: Relaciones
MODELO
(Clic para ampliar)
¿Qué es?¿Cómo se representa?
Una relación es una asociación o correspondencia existente entre entidades, básicamente para compartir información.
Por ejemplo, podemos definir una relación que asocia al cliente Juan López con la tarjeta 12345.
Característica importante de las relaciones es la cardinalidad de las entidades en cada extremo de la relación: La cardinalidad expresa cuántas del conjunto de entidades de un extremo de la relación están relacionadas con cuántas entidades del conjunto del otro extremo. Pueden ser “uno a uno”', “uno a varios”' o “varios a varios”'.
Por ejemplo: un artículo puede ser escrito por un solo autor o por varios, pero nunca por ninguno y un autor puede escribir muchos artículos, o ninguno.
En nuestro ejemplo: un cliente puede utilizar una, varias o ninguna tarjeta, pero una tarjeta siempre será utilizada por un solo cliente.
Una relación se representa mediante un rombo y la conexión mediante una línea:
Conjunto de valores que puede tomar un atributo.
Kardias dice Para saber más...
Como curiosidad, y aunque no lo vamos a utilizar en nuestros modelos en este recurso, debes saber que en el modelo E-R, al igual que en la programación orientada a objetos, también existe la generalización. Esto es especialmente útil al realizar modelos E-R para aplicaciones orientadas a objetos.
Generalización es la relación que existe entre la entidad de nivel más alto (superclase o superentidad) y una o más entidades de nivel más bajo (subclase o subentidad), permitiendo que las entidades de nivel más bajo hereden los atributos de la entidad generalizadora de más alto nivel. La superentidad normalmente tiene una clave principal distinta de las subentidades. Así se evita la repetición de atributos ya que las subentidades los heredan de la superentidad.
Para la representación de este tipo de interrelación, utilizamos un triángulo invertido, con la base paralela al rectángulo que representa la superentidad y conectado a ésta y a los subtipos (subentidades). Las cardinalidades son siempre (1,1) en el supertipo y (0,1) o (1,1) en los subtipos dependiendo de si el subtipo es de obligada existencia o no:
3. El equipo resuelve el desafío, paso a paso
Habéis conocido los elementos que necesitamos para crear un modelo que resuelve el problema. Un modelo conceptual de cómo debe ser el comportamiento de nuestra base de datos. Pero hay que saber aplicar correctamente cada paso, qué acción debemos resolver antes y cuál después. Para ello vamos a observar ahora un ejemplo de lo aprendido, vamos a trabajar en una aplicación concreta que resolverá un problema planteado en el siguiente enunciado:
Vamos a modelar la gestión de una empresa de taxis. Los taxis vendrán especificados por su marca del vehículo, el modelo que es dentro de la marca y su placa de matrícula. Sabemos que cada taxi tiene un propietario, a quién identificaremos por su DNI, su nombre y su teléfono. A su vez, la empresa tiene en plantilla a una serie de conductores, que pueden ser los propietarios del taxi o no. Los conductores trabajan a turnos, asignándoseles un taxi concreto en cada turno. De los conductores necesitamos saber su DNI, su nombre y su teléfono.
Paso 1: Identificamos las Entidades
En el caso que nos ocupa, tras leer detenidamente la descripción, observamos que tendremos 3 entidades: taxi, propietario y conductor:
(Clic para ampliar)
Paso 2: Identificamos los atributos
En cada entidad asociamos los atributos que se almacenarán de ella:
(Clic para ampliar)
Paso 3: Seleccionamos los identificadores
Asignados los atributos correspondientes a cada entidad, debemos seleccionar el identificador de la entidad, el que será la clave:
(Clic para ampliar)
Paso 4: Identificamos las relaciones
Una vez que las entidades están reconocidas con sus atributos y su identificadores (claves) procedemos a establecer las relaciones entre entidades:
(Clic para ampliar)
Paso 5: Asignamos la cardinalidad
Finalmente, nuestro diagrama E-R termina cuando asignamos la cardinalidad a las entidades y consignamos en el diagrama el tipo de correspondencia:
(Clic para ampliar)
4. ¿Cuántos están implicados?
Como has conocido anteriormente, la relación entre entidades da lugar a una cardinalidad que pudiste observar en los ejemplos dados.
Ahora vas a ver que si de esta cardinalidad tomamos el número máximo de elementos de un tipo que se puede relacionar con cada entidad del otro tipo asociadas por la relación, obtenemos el tipo de correspondencia.
Practica a continuación los tipos de correspondencia y la cardinalidad de las entidades que podemos encontrar en los siguientes ejemplos:
Indica el núnero de entidades con las que se puede relacionar una entidad dada.
Toma los números máximos de la cardinalidad de cada una de las entidades que relaciona.
5. Hay que tomar decisiones, con un ojo en las restricciones
Ya habéis conocido cómo se elabora el modelo E-R y los pasos a seguir para implementarlo en un diseño de desarrollo basado en bases de datos. Ahora es momento de conocer las restricciones que debe cumplir un modelo E-R a la hora de elaborar el diseño conceptual. A continuación encuentras una enumeración de dichas restricciones y deberás indicar en cada imagen el número de restricción que no está cumpliendo.
¡Recuerda! Tu diseño debe cumplir con lo siguiente:
Una entidad puede estar relacionada con varias entidades pero con rombos separados.
No puede haber dos entidades iguales.
El orden de las entidades y el del nombre de los atributos no importa.
Cada atributo solo puede tomar un valor en el dominio en el cual está inscrito.
Dos entidades no se pueden conectar directamente entre sí, se deben hacer a través de una relación.
La cardinalidad debe escribirse sobre la línea de la relación.
Evitar diseños con relaciones circulares.
No puede haber entidades o relaciones independientes.
Un rombo sólo puede unir dos entidades.
6. El poder resolutivo se pone en marcha
El equipo de REAldata Inc. se pone en funcionamiento. Tras la especificación de requisitos resultante de la primera etapa de Planificación y Análisis, y tras confirmarlos con el cliente, hemos llegado a la siguiente descripción de las necesidades:
La propuesta de solución a nuestro problema pasa por crear una base de datos que contendrá los datos de los clientes de la empresa. De cada cliente nos interesa conocer el nombre, los apellidos, el DNI, la fecha de nacimiento, el teléfono, el correo electrónico y la dirección postal. Los servicios de la empresa son contratados por los clientes y su realización queda reflejada en una factura. Para una futura ampliación del proyecto que trabaje con las facturas, se acuerda con el cliente incluir su información en la base de datos, aunque el desarrollo de la aplicación actual no listará estos datos de factura en su código. De un servicio hay que guardar su descripción y su código de la actividad. De la factura hay que conocer el código del cliente, el código del servicio, la fecha en la que se realizó el trabajo y el precio del mismo.
Ya estás en disposición para realizar el diseño conceptual de nuestro reto y modelar el diagrama E-R. Como miembro del equipo debes esbozar una solución y saber explicarla. ¡Adelante con tu diseño! Cuando lo tengas realizado, publícalo en tu blog de la materia para que esté al alcance de todo el equipo de trabajo.
¿Dudas en las relaciones?
Recuerda que no debes crear relaciones circulares ni de tres entidades en la misma relación. Intenta buscar una solución en la que una de las entidades quede entre entre las otras dos y la comunicación de los datos necesarios siga siendo efectiva