El modelo de datos.

La modelización consiste en representar el problema realizándo múltiples abstracciones para asimilar la información de un problema y, de ésta manera generar un mapa donde estén identificados todos los objetos de la bbdd. Hay que tener en cuenta los siguiente conceptos:

● Casi con total probabilidad, la persona que realiza la modelización es un profesional informático, pero no implica que sea un experto en las áreas que quiere modelizar. El futuro usuario de la bbdd será conocedor de los pormenores del negócio y, a su vez, puede no tener conocimientos informáticos.
● Hay que modelizar siguiendo unas directrices y estándares para que el resto de la comunidad informática pueda entender y comprender lo escrito.
● Las bbdd estarán gestionadas por un sgbd que tendrá unas características técnicas, de esta manera, no se tratará igual a la implementación de la bbdd a un sistema MySQL que a un sistema ACCESS.

En la actualidad se recurre a tres modelados principales:

Modelo conceptual:

Es un modelo ideal para comunicarse con el usuario no experto en informática ya que tiene la forma de expresar el dominio del problema al usuario de manera sencilla.

Modelo lógico:

Este modelo es más técnico que el anterior. Los conceptos suelen ser más complejos y se suelen traducir directamente al modelo físico que entiende el sgbd.

Modelo físico:

Es el resultado de aplicar el modelo lógico a un sgbd concreto. Esta expresado en un lenguaje de programación tipo SQL.

interacción entre modelos

La interacción entre estos tres modelos es fundamental para un diseño de calidad teniendo tres fases de desarrollo entre ellos. Primero se negocia con el usuario el modelo conceptual. Segundo, se pasa el modelo conceptual al modelo lógico, realizándo una serie de transformaciones necesarias para adaptar el lenguaje al sgbd. Tercero se transforma el modelo lógico en físico obteniendo de esta forma la bbdd final.

Diagrama entidad - relación.

Para el modelo conceptual se utilizará el diagrama entidad - relación. Éste modelo consiste en plasmar el resultado del análisis del problema mediante diagramas entidad - relación.

Este modelo fue propuesto por Peter P. Chen a mediados de los años 70 para la representación conceptual de los datos y establecer relaciones entre ellos.

La notación es muy sencilla y permite representar el mundo real de forma que el usuario pueda validar si el modelo propuesto se ajusta a la resolución del problema.

Para conocer el modelo entidad relación deberás de conocer los siguientes conceptos:

Entidad.

Es cualquier objeto o concepto sobre el que se recoge información. Se representa mediante un cuadrado.

Entidad se representa mediante cuadrado

Hay dos tipos de entidades: fuertes o débiles. Las segundas necesitan de las primeras para existir. Por ejemplo, una entidad transacciones, es una entidad débil de otra entidad cuenta, ya que las transacciones van ligadas a una cuenta.

Las entidades débiles se representan mediante dos cuadrados (uno interno y otro externo).

Entidad debil se representa mediante cuadrado doble

Relación.

Una relación es una iteracción entre las dos o más entidades. Cada relación tiene un nombre que describe su función y suele utilizarse un nombre que puede significar muchas cosas y siempre en modo verbal (hacer, tener, calcular), por ejemplo. Se representan graficamente mediante un rombo y su nombre aparece en el interior. Suelen además, describir acciones entre las entidades.

relación entre dos entidades

Las relaciones se clasifican según su grado, es decir, según el número de entidades que participan en con la relación. Así en el ejemplo anterior la relación es de grado 2 porque participan dos entidades. También se llaman relaciones binarias.

Pero también existen las relaciones ternarias, que son aquellas en las que participan tres entidades:

relació ternaria

Y relaciones reflexivas, que solo interviene una entidad que se auto relaciona.

relació unaria

Existen también relaciones de mayor grado que las ternarias, pero no las vamos a ver en este tutorial.

Participación.

La participación es el mínimo y máximo que puede aparecer una relación en una entidad y viceversa. Así por ejemplo, fijate en la entidad - relación siguiente:

ejemplo de participación

Un empleado puede trabajar en ningún proyecto (no lo tiene asignado o está de vacaciones), o en uno o varios proyectos al mismo tiempo, por lo que la participación sería 0, n (siendo n el número X que indica que es mayor que 1). Por el otro lado, un proyecto constará de por lo menos 1 empleado y un máximo de n. Así pues la participación se queda como ves en pantalla.

ejemplo de participación

Observa que la participación se expresa en la entidad contraria.

Cardinalidad.

La cardinalidad es la participación de las entidades en una relación. Siempre se coge la máxima participación de cada entidad. Así en el ejemplo anterior, en empleado teníamos como máximo n, y en proyecto también n. Por lo tanto la cadinalidad sería N:N (por nomenclatura no se repite la segunda N, sino que se pone una M para diferenciar). Además las 'ns' de las participaciones se ponen en minúsculas y las 'ns' de la cardinalidad se ponen en mayúsculas por nomenclatura.

ejemplo de participación

Para calcular la cardinalidad en relaciones no binarias (terciarías, o mayores), se tomará una de las tres entidades y se combinarán con las otras dos (pero siempre se tomarán las de mayor rango). En las relaciones reflexivas, la misma entidad entra en juego y juega dos papeles diferentes. Para extraer las cardinalidades hay que extraer las poarticipaciones según los roles existentes.

relació unaria

En el ejemplo, la entidad empleado aparece con dos roles. El primer rol es como jefe y el segundo rol es como empleado subordinado. Las participaciones se calcularán preguntando como sigue:

¿Cuántos subordinados pueden tener un jefe? Un jefe puede tener un mínimo de 1 y un máximo de n (1,n).

¿Cuántos jefes puee tener un subordinado? Un subordinado no tiene porque tener jefes o puede tener 1 (0,1), por lo tanto la relación sería:

calculo de la cardinalidad

Atributos.

Los atributos de una entidad son las propiedades que la definen como entidad.

atributos de una entidad y relación

Puedes ver que cada entidad tiene una srie de atributos y que, en cada uno de ellos, uno de los atributos tiene una línea negra sobre ellos. Eso indica que ese atributo es un atributo clave. Ese atributo identifica univócamente a la entidad. Por normalización, todas las entidades fuertes deberán de tener un atributo clave.

También puedes ver que existe un atributo de relación. Este es propio de la relación y no puede ser cedido a las entidades que intervienen en la relación.

Los atributos se pueden clasificar según su tipo en:

● Atributos obligatorios.
● Atributos opcionales.
● Atributos compuestos.
● Atributos univaluados.
● Atributos multivaluados.
● Atributos derivados.

En los primeros el atributo debe de tomar un valor obligatoriamente, por lo general todos lo son a menos que sea opcional, ya que en el momento específico su valor puede ser indeterminado. Un atributo compuesto es aquel que puede subdividirse en más atributos. Por ejemplo un atributo contacto tendrá otro atributo llamado movil, correo, email. Los atributos univaluados y multivaluados, podrán tener un único valor o varios valores respectivamente. Los atributos derivados son aquellos que se pueden obtener a raíz de otro atributo.

atributo opcional atributo multivaluado atributo derivado

atributo compuesto

Dependencias en las entidades débiles.

Las entidades débiles dependen de las entidades fuertes mediante una relación. La relación que une ambas entidades también es débil, puesto que también desaparecerá si desaparece la entidad fuerte. En este caso, la relación tiene una dependencia con la entidad fuerte que puede ser:

Dependencia de existencia:
Este tipo de dependencia indica que los atributos de la entidad débil no tienen sentido en la bbdd sin los atributos de la entidad fuerte con la que se relacionan.

dependencia de existencia

Dependencia de identificación.
Además de las propiedades de la anterior, la entidad débil necesita a la fuerte para poder crear una clave.

dependencia de existencia

Generalización y especialización.

Se pueden dar circunstancias en las que necesitemos modelar entidades con subtipos que comparten gran parte de sus atributos con el general.

generalización y especialización

Existen 4 tipos de especialización:

Exclusiva: Cada ocurrencia de la superclase solo puede materializarse en una de las especializaciones.
Inclusiva: Cada ocurrencia de la superclase puede materializarse simultáneamente en varios subtipos.
Total: Se produce cuando una de las ocurrencias de la superclase deben especializarse eobligatoriamente en una de las especialidades.
Parcial: La entidad superclase no tiene porque materializarse en una de las especializaciones.

representación de las especializaciones y generalizaciones

Bueno, creo que ya está mas que completo la teoría. Ahora pasa a la zona de prácticas para que podamos ir practicando con lo aprendido hasta ahora.