MENU DESPLEGABLE

Modelo de datos relacional

2.2. MODELO DE DATOS RELACIONAL

En el modelo de datos relacional, propuesto por Codd, los datos se estructuran lógicamente en forma de  relaciones (tablas).  El  objetivo  fundamental  del  modelo  es  mantener  la  independencia  de  esta estructura lógica respecto al modo de almacenamiento y a cualquier característica de tipo físico.

Los objetivos que se persiguen con el modelo son:

Independencia física: Es decir, que el modo en el que se almacenan los datos no influya en su manipulación lógica y por tanto, los usuarios que acceden a los datos no tengan que modificar sus programas por cambios en el almacenamiento físico.

Independencia lógica: Esto es, que el añadir, eliminar o modificar objetos de la base de datos no repercuta en los programas y/o usuarios que están accediendo a la misma.

Flexibilidad:  En  el  sentido  de  poder  presentar  al  usuario  los  datos  de  la  forma  en  que  este prefiera.

2.2.1. METODOLOGÍA DE DISEÑO DE UNA BASE DE DATOS

El diseño de una base de datos se descompone en diseño conceptual, diseño lógico y diseño físico. 

En el diseño conceptual se parte de las especificaciones de usuario y se consigue una representación del mundo real. Esta imagen del mundo real se denomina modelo conceptual. En él se describen las entidades y sus propiedades, además de las relaciones entre ellos.

El diseño lógico consiste en transformar el modelo conceptual obtenido en otro esquema que puede procesar el SGBD concreto (Relacional, Jerárquico, red). Ejemplo (El modelo E/R -> modelo de datos).

En el diseño físico se parte del esquema lógico y da como resultado el esquema físico. Consiste en la implementación del modelo de datos,  dando lugar a estructuras de datos de almacenamiento en uno o varios soportes físicos.

2.2.2. VENTAJAS DEL MODELO

·         El  modelo  conceptual  aporta  claridad  y  evita  confusiones  que  surgen  de  intentar  definir  algo  tan complejo como la estructura de una organización utilizando únicamente el lenguaje natural. 

·         Una ventaja de la modelación conceptual de datos es que contribuye a detectar los posibles errores desde el principio, ya que permite al diseñador, una amplia visión de los datos y sus relaciones 

·         Otra ventaja es que mediante la modelización conceptual de datos se obtiene una representación  de datos independientes del entorno físico y. Lo que permite la fácil exportación del mismo a o diferentes SGBD o a versiones del mismo.

2.2.3. TÉCNICA DESCRIPTIVA: MODELO ENTIDAD / RELACIÓN

El modelo ER, propuesto por CHEN es, sin duda el modelo de datos conceptual más extendido en las metodologías de diseño de base de datos y en las herramientas CASE. 

Esta  técnica  descriptiva,  permite  representar,  en  lo  que  se  llama  diagrama  ER,  un  sistema  de  información, siguiendo una metodología gráfica basada en reglas, símbolos y métodos para diseñar bases de datos. 

El objetivo es obtener un modelo abstracto que represente la información obtenida del mundo real gráficamente.  Para ello hace uso, fundamentalmente, de tres conceptos: entidad, atributo y relación. 

Además,  para  aumentar  la  capacidad  expresiva  del  modelo  también  se  contempla  la  definición  de  objetos compuestos mediante la agregación de entidades y la definición de objetos especializados (o generalizados). 

ELEMENTOS DEL MODELO ENTIDAD-RELACIÓN

ENTIDAD

Las entidades representan cosas u objetos, 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ángulo, como los siguientes.



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 que descienden de una entidad, y no es necesario representarlos todos, sino los más significativos, como 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.

RELACIÓN

Es un vínculo que nos permite definir una dependencia entre varias entidades, es decir, nos permiten 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.




 Empleados
Nombre
DNI
Cargo
Carlos Sánchez
45338600L
001
Pepe Sánchez
02405068K
002
Juan Sánchez
40588860J
002

Cargo del empleado
ID del cargo
Descripción
001
Jefe de taller
002
Mecánico

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.



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.

2.2.4. CONSTRUCCIÓN DEL MODELO CONCEPTUAL DE DATOS

El  objetivo  de  este  apartado  es  exponer  cómo  se  puede  abordar  la  tarea  del  diseño  conceptual  de bases de datos utilizando el modelo ER presentado, es decir, proponer una metodología de diseño.

Para obtener un diagrama adecuado y fiable a partir del análisis de la realidad y de los requerimientos de la organización hay que realizar las siguientes actividades:
·         Identificar tipos de entidad y atributos
·         Identificar generalizaciones/especializaciones
·         Identificar tipos de relación entre entidades
·         Identificar tipos de entidad débiles

Estas  actividades  se  realizan  de  forma  iterativa  hasta  conseguir  definir  un  diagrama  ER  lo  más  fiel posible a la realidad. 

Ø  RECOPILACIÓN DE INFORMACIÓN

El  primer  paso  para  obtener  un  modelo  conceptual  de  datos  es  proceder  a  recoger  la  información relevante del universo que se quiere representar. 

La forma de llevar a cabo esta tarea es mediante la elaboración de un diccionario de datos. En realidad, con  las  herramientas  CASE  se  trabaja  con  un  depósito  CASE,  donde  se  guarda  toda  la  información relevante del modelo.



Ø  IDENTIFICAR ENTIDADES Y ATRIBUTOS

Una  vez  concretada  la  información  descriptiva  que  se  desea  almacenar,  se  define  una  entidad  en  el diagrama, por cada tipo de objeto (personas, actividades, etc.) de la realidad. Una entidad viene definida por  un  conjunto  de  atributos  que  representan  la  información  que  se  desea  conocer  de  cada  tipo  de objeto.

Hay que tener en cuenta que:

·  En un diagrama ER todas las entidades tienen identificador o bien son débiles o especializaciones.
·         No puede haber entidades con el mismo nombre que otra entidad o que otra relación.
·      No hay que pensar en que antes de avanzar en el diseño hay que definir un conjunto de entidades que sea fijo, sino que éste puede cambiar a medida que se tomen ciertas decisiones de diseño. Por ejemplo es  posible  que  algunos  atributos  inicialmente  considerados  desaparezcan  luego  y  se  conviertan  en entidades

Ø  IDENTIFICAR GENERALIZACIONES/ESPECIALIZACIONES

La  especialización  es  el  proceso  por  el  que  se  clasifica  una  clase  de  objetos  en  subclases  más especializadas.  La  generalización  es  el  proceso  inverso  por  el  que  se  generalizan  varias  clases  para obtener una abstracta de más alto nivel que incluya los objetos de todas estas clases. 
En  cualquiera  de  estos  casos  generalización/especialización  los  atributos  identificadores  y  los descriptores  que  son  comunes  a  todas  las  entidades  estén  en  la  entidad  general,  quedándose  los atributos específicos y las relaciones específicas en cada una de las entidades especializadas.

Ø  IDENTIFICAR LAS RELACIONES ENTRE ENTIDADES

Una  vez  definido  un  conjunto  inicial  de  entidades  que,  como  ya  se  ha  comentado,  podrá  ser reconsiderado a lo largo del todo el diseño, hay que estudiar las relaciones existentes entre el as, ya que  raramente  existirán  entidades  sin  conexiones  con  otras. 
Para  definir  una    relación  hay  que especificar:
·         Entidades implicadas
·         Cardinalidades máximas y mínimas y Atributos propios de la relación (con sus restricciones si las tienen).

Las relaciones redundantes deben ser eliminadas. Dos o más relaciones se consideran redundantes si representan  el  mismo  concepto;  sin  embargo,  es  posible  que  entre  las  mismas  entidades  se  pueden definir más de una relación siempre que tengan significados diferentes.

Ø  IDENTIFICAR ENTIDADES DÉBILES

Una entidad débil sufre dependencia de identificación, ya que no puede identificarse con sus propios atributos, por este motivo sus ocurrencias son distinguibles gracias a su relación con otras entidades.

Cuando en el diagrama ER aparezcan entidades de este tipo, hay que especificar con qué relaciones se identifica (pueden ser una o más de una).  

Ø  DOCUMENTACIÓN

Toda la información recopilada durante esta fase de análisis queda definida en un diccionario de datos. En él, el diseñador debe incluir el modelo gráfico utilizado (por ejemplo E/R) para la representación del esquema de base de datos y una descripción de cada elemento del modelo, que incluye:
Ø  Catálogo de requisitos
Ø  Especificación detallada del problema
Ø  Nombres de las relaciones y sus atributos indicando las claves
Ø  Dominios de los atributos
Ø  Nombres y definiciones de las vistas
Ø  Todo tipo de documentación adicional, como por ejemplo restricciones entre entidades y comentarios que se consideren oportunos

En el caso de utilizar una herramienta CASE, existe un repositorio donde se guarda toda la información relevante del modelo.

2.2.5. EJERCICIOS PRÁCTICOS

Objetivo: Comprender  los  conceptos  de  la  modelación  de  datos,  utilizando  la  técnica  descriptiva Entidad / Relación.

BASE DE DATOS HOSPITAL.
Un paciente puede acudir al  médico muchas veces en la vida. En cada visita que realiza el paciente le puede atender un médico distinto por motivos distintos. Un médico a su vez atiende a muchos pacientes. Cada médico tiene una especialidad. De los pacientes se quiere almacenar un código que los identifique, el nombre del paciente, fecha de nacimiento, dirección y  teléfono. De los médicos  un código que los identifique, nombre,  dirección, y teléfono. De las especialidades un Código identificador y la Descripción de la especialidad

BASE DE DATOS ENTIDAD BANCARIA.
Crear un modelo E/R para controlar los datos de un banco, en el que necesitamos: El banco tiene sucursales por todo el país. Se quiere almacenar un número que las identifique, teléfono y dirección. El nombre, apellidos, DNI, dirección y calle de los clientes del banco. Número de cuenta y el saldo de cada cliente y la fecha en la que se creó la cuenta. En  el  banco  trabajan  empleados  de  los  cuales  uno  de  ellos  es  el  director  del  banco.  Se  desea almacenar el DNI, nombre, dirección, nómina y cargo

BASE DE DATOS RECETAS DE COCINA.
Crear un modelo entidad / relación para controlar una base de datos de recetas de cocina. Debe incluir Información  sobre  los  platos,  tipos  de  plato,  ingredientes,  cantidades,  etc.  Hacer  el  primer  paso  de establecimiento de atributos utilizando los atributos más apropiados.  Añadir información sobre vinos recomendados en los platos (incluidas las denominaciones de origen).

BASE DE DATOS GESTIÓN DE UN TEATRO.
En el teatro se venden entradas, la entrada se refiere a una butaca y un día concreto. La base de datos debe  almacenar  todas  las  entradas  vendidas.  Almacenar  y  relacionar  también  la  información concerniente a las obras de teatro representadas (título, sinopsis,..) y las fechas en las que se realizan.  En obras trabajan actores, se desea almacenar su nombre, DNI y fecha de nacimiento. Una obra puede ser  escrita  por  uno  o  más  autores,  de  los  cuales  se  desea  almacenar  su  fecha  de  nacimiento  y nacionalidad.

No hay comentarios:

Publicar un comentario