Saltar la navegación

4.1. El superpoder intelectual crea el modelo conceptual

1. El equipo debe organizarse

Las 3 fases del diseño de una base de datos: modelo conceptual-modelo lógico-modelo físico

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:

  1. Anotad sus nombres y cread una breve frase que las explique.
  2. Buscad tres características de cada uno de los tres modelos que componen las fases del diseño.
  3. De las siguientes afirmaciones, investigad cual pertenece a cada modelo:
    1. Es independiente del SGBD (sistema gestor de bases de datos) que se utilice después.
    2. Depende del SGBD pero es independiente del lenguaje de programación que se utilice finalmente.
    3. Depende del SGBD y utiliza un lenguaje de programación concreto.

Lumen dice ¿Necesitáis sugerencias?

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

Mano dibujando un diagrama en una pizarra.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

Reconocimiento de entidades del ejemplo: cliente y tarjeta

¿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: Representación de la entidad: Un rectángulo con el nombre dentro.

PASO 2: Atributos

MODELO

Reconocimiento de atributos del ejemplo para cliente y tarjeta.
(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:Representación de los atributus: elipse con el nombe dentro

PASO 3: Relaciones

MODELO

Relación entre las entidades Cliente y tarjeta: rombo con el nombre
(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: Representación de la relación con un rombo con el nombre dentro.

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:

Esquema de generalización de entidad usuario en invitado, cliente o administrador.

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:

Las 3 entidades detectadas en el problema: taxi, propietario y conductor.
(Clic para ampliar)

Paso 2: Identificamos los atributos

En cada entidad asociamos los atributos que se almacenarán de ella:

Asignamos los atributos a cada entidad en el dibujo realizado.
(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:

Marcamos en el esquema los atributos que son identificadores subrayándolos.
(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:

Establecimiento de relaciones entre entidades mediante su símbolo del rombo.
(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:

Asignamos la cardinalidad a las entidades y marcamos en el diagrama.
(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.

Trabajamos con el caso de una Universidad en la que existen varios Departamentos a los que pertenecen los Profesores. Los Departamentos son dirigidos por un profesor y los Profesores se contratan por el Departamento al que pertenecen. Sin embargo, aunque un Profesor esté contratado por un Departamento, puede dar clases en asignaturas que pertenezcan a otro Departamento, en colaboración.

Imagen

Tipo de correspondencia

Cardinalidad de las entidades

Relación: Profesor dirige Departamento

Relación: Profesor pertenece a Departamento.

Relación: Profesor enseña en Departamento.





Habilitar JavaScript

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:

  1. Una entidad puede estar relacionada con varias entidades pero con rombos separados.
  2. No puede haber dos entidades iguales.
  3. El orden de las entidades y el del nombre de los atributos no importa.
  4. Cada atributo solo puede tomar un valor en el dominio en el cual está inscrito.
  5. Dos entidades no se pueden conectar directamente entre sí, se deben hacer a través de una relación.
  6. La cardinalidad debe escribirse sobre la línea de la relación.
  7. Evitar diseños con relaciones circulares.
  8. No puede haber entidades o relaciones independientes.
  9. Un rombo sólo puede unir dos entidades.

Imagen de tres entidades con tres relaciones formando un círculo..

No cumple la restricción nº

Imagen de tres entidades con solamente dos unidas por relación.

No cumple la restricción nº

Imagen de tres entidades unidas por la misma relación.

No cumple la restricción nº

Imagen de cuatro entidades con una repetida.

No cumple la restricción nº

Imágen con la cardinalidad escrita en las propias entidades.

No cumple la restricción nº

Imagen de dos entidades unidas sin relación.

No cumple la restricción nº

Habilitar JavaScript

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:

Mujeres en un comercio adquiriendo un producto.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