arroba más más - Programación e Internet  arroba más más - Programación e Internet
Estás en: Inicio > Cursos > Bases de datos > Introducción a las bases de datos > Modelo entidad-relación
 
CAPÍTULOS

SECCIONES

SITIOS RECOMENDADOS

OTROS SITIOS DE LA AUTORA

En línea desde el 7 de noviembre de 2000

El modelo entidad-relación

Es una técnica de diseño de bases de datos gráfica, que incorpora información relativa a los datos y la relación existente entre ellos, para poder así plasmar una visión del mundo real sobre un soporte informático. Sus características fundamentales son:

  • Reflejan tan sólo la existencia de los datos sin expresar lo que se hace con ellos.
  • Es independiente de las bases de datos y de los sistemas operativos
  • Incluye todos los datos que se estudian sin tener en cuenta las aplicaciones que se van a tratar

Las entidades se representan como rectángulos, los atributos como elipses y las relaciones como rombos. El significado de estas palabras así como de otras también importantes las vemos a continuación.

Conceptos fundamentales

Entidad: Una entidad es un objeto concreto o abstracto que presenta interés para el sistema y sobre el que se recoge información la cual va a ser representada en un sistema de base de datos. La mayoría de las entidades modelan objetos o eventos del mundo real, por ejemplo, clientes, productos o llamadas de pedidos.

Atributo: Es una unidad básica e indivisible de información acerca de una entidad o una relación y sirve para identificar y describir a las mismas. Por ejemplo, si se va a modelar un evento como una llamada al servicio de asistencia, probablemente se querrá saber quién era el cliente, quién hizo la llamada y cuándo, así como si se resolvió o no el problema. La determinación de los atributos que hay que incluir en el modelo es un problema semántico (de significado). Se deben tomar decisiones basadas en el significado de los datos y en cómo se utilizarán.

Dominio: Un dominio es el conjunto de valores que puede tomar cada uno de los atributos.

La mayoría de las ocasiones se confunde dominio con tipo de datos, así que vamos a ver un ejemplo que ponga de manifiesto la diferencia: si tomamos como atributo para una entidad persona su grupo sanguíneo, está claro que el tipo de dato que tendremos que usar será de tipo cadena, sin embargo, los únicos valores que puede tomar son los del conjunto {A+, A-, B+, B-, AB+, AB-, 0+, 0-}; este sería el dominio del atributo grupo sanguíneo.

Tabla: Organización de los datos en forma de filas y columnas. Cada fila se llama tupla, y cada columna dentro de una tupla corresponde al valor de un atributo para esa tupla.

Relación: Asociación entre entidades. Por ejemplo, un "alumno" "tiene" una "asignatura".

Tabla relacional: Es una tabla que debe cumplir las siguientes características:

  • Cada fila debe ser única
  • Cada columna debe ser única
  • Los valores de las columnas deben pertenecer al dominio de cada atributo
  • Debe tener un solo tipo de fila, cuyo formato está definido por el esquema de la tabla o relación
  • El valor de la columna para cada fila debe ser único

Clave candidata: Atributo o atributos que pueden distinguir de forma unívoca una tupla dentro de una tabla. Puede haber varias claves candidatas para distinguir una misma entidad. Se elegirá como clave candidata aquel atributo que posea un dominio en el que se tenga valores únicos. Si esto no es posible, entonces usaremos como clave candidata la combinación de varios atributos, de manera que esta combinación sí sea única.

Clave principal: Aquella de las claves candidatas que es designada para distinguir de forma unívoca una tupla dentro de una tabla.

Clave ajena: Se trata de un atributo que es clave principal en otra tabla.

Vista: Una vista es una tabla ficticia cuya definición y tuplas se obtiene a partir de una o más tablas base. Sus características son:

  • Sus columnas se obtienen a partir de varias tablas base
  • Pueden estar definidas a partir de otras vistas
  • Sus datos se obtienen como resultado de una consulta a la base de datos
  • Se puede almacenar su estructura

Así pues, vemos que se trata de una tabla virtual que no existe como tabla en el disco.

Inconsistencia: Se da cuando se encuentra un valor en una clave ajena no existente en la entidad donde ésta sea clave principal.

Asociaciones entre entidades

Además de los atributos de cada entidad, un modelo de datos debe especificar las asociaciones existentes entre las entidades. Estas asociaciones son las relaciones entre entidades. Por ejemplo, la frase "los clientes compran productos" nos dice que hay dos entidades, "Clientes" y "Productos", que están relacionadas por "comprar".

La gran mayoría de las asociaciones son binarias, como "los clientes compran productos" o "los empleados venden productos". Entre las dos hay una asociación ternaria implícita: "los empleados venden productos a los clientes". Con las dos asociaciones binarias independientemente no podríamos saber a qué clientes se han vendido los productos que ha vendido un cierto empleado: en este caso necesitamos de la asociación ternaria.

Las asociaciones entre dos entidades cualesquiera pueden ser de tres tipos: uno-a-uno, uno-a-muchos y muchos-a-muchos.

Asociaciones uno-a-uno: Si es cierto que cualquier ejemplar de la entidad X se puede asociar con tan sólo un ejemplar de la entidad Y, entonces decimos que la asociación es uno-a-uno. Cuando elegimos una asociación uno-a-uno debemos asegurarnos de que o bien se mantiene la asociación en todo momento, o en caso de que cambie no nos interesan los valores pasados.

Por ejemplo: si asumimos que en los despachos de un edificio hay uno por persona, entonces la asociación será uno-a-uno. Pero esta asociación sólo es cierta en un momento dado. A lo largo del tiempo, se irán asignando diferentes empleados en el edificio. Habrá que valorar si el mantenimiento de esta información es útil en nuestro modelo o no.

Asociaciones uno-a-muchos: Es el tipo de asociación más común, donde un solo ejemplar de una entidad se puede asociar con cero, uno o muchos ejemplares de otra entidad. Por ejemplo, una persona puede tener varios números de teléfono.

Asociaciones muchos-a-muchos: Los clientes compran en muchas tiendas, una tienda tiene muchos clientes. Como este tipo de relaciones no se puede modelar directamente en una base de datos relacional, se modela usando una tabla intermedia que tenga una asociación uno-a-muchos con cada uno de los participantes originales. Por ejemplo, un pedido puede tener muchos tipos de confección, y un tipo de confección puede aparecer en varios pedidos.

IntroBD08

Veremos en los siguientes capítulos unos conceptos fundamentales sobre el diseño de bases de datos: operaciones sobre tablas y normalización. Estos conceptos nos aportarán una serie de técnicas que nos ayudarán a que el diseño de nuestra base de datos sea el más óptimo posible.

Autor: Lola Cárdenas Luque
Última actualización: 22 de abril de 2003
Introducción | Operaciones entre tablas
Copyright © 2000 - 2005, Lola Cárdenas Luque - Todos los derechos reservados