Un modelo de datos es una colección de herramientas conceptuales
para la descripción de datos, relaciones entre datos, semántica de los
datos y restricciones de consistencia. Podemos citar dos
modelos de datos —el modelo entidad-relación y el modelo relacional.
El modelo entidad-relación (E-R) es un modelo de datos de alto nivel. Está
basado en una percepción de un mundo real que consiste en una colección de
objetos básicos, denominados entidades, y de relaciones entre estos objetos.
El modelo relacional es un modelo de menor nivel. Usa una colección de tablas
para representar tanto los datos como las relaciones entre los datos. Su simplicidad
conceptual ha conducido a su adopción general; actualmente, una vasta
mayoría de productos de bases de datos se basan en el modelo relacional. Los
diseñadores formulan generalmente el diseño del esquema de la base de datos
modelando primero los datos en alto nivel, usando el modelo E-R, y después
traduciéndolo al modelo relacional.
Otro modelo de
datos es el orientado a objetos, por ejemplo, extiende la representación de entidades
añadiendo nociones de encapsulación, métodos (funciones) e identidad de
objeto. El modelo de datos relacional orientado a objetos combina características
del modelo de datos orientado a objetos y del modelo de datos relacional.
Se desarrolló para facilitar el diseño de bases de datos permitiendo la especificación
de un esquema de la empresa que representa la estructura lógica completa de una base
de datos. El modelo de datos E-R es uno de los diferentes modelos de datos semánticos; el
aspecto semántico del modelo yace en la representación del significado de los datos. El modelo
E-R es extremadamente útil para hacer corresponder los significados e interacciones de las
empresas del mundo real con un esquema conceptual. Debido a esta utilidad, muchas herramientas
de diseño de bases de datos se basan en los conceptos del modelo E-R.
Hay tres nociones básicas que emplea el modelo de datos
E-R: conjuntos de entidades, conjuntos de relaciones y
atributos.
Una entidad es una «cosa» u «objeto» en el mundo real
que es distinguible de todos los demás objetos. Por ejemplo,
cada persona en un desarrollo es una entidad. Una
entidad tiene un conjunto de propiedades, y los valores
para algún conjunto de propiedades pueden identificar
una entidad de forma unívoca. Por ejemplo, el D.N.I.
67.789.901 identifica unívocamente una persona particular
en la empresa. Análogamente, se puede pensar
en los préstamos bancarios como entidades, y un número
de préstamo P-15 en la sucursal de Castellana identifica
unívocamente una entidad de réstamo. Una entidad
puede ser concreta, como una persona o un libro, o
puede ser abstracta, como un préstamo, unas vacaciones
o un concepto.
Un conjunto de entidades es un conjunto de entidades
del mismo tipo que comparten las mismas propiedades,
o atributos.
El conjunto de todas las personas
que son clientes en un banco dado, por ejemplo, se pueden
definir como el conjunto de entidades cliente.
Las entidades individuales
que constituyen un conjunto se llaman la extensión del
conjunto de entidades. Así, todos los clientes de un banco
son la extensión del conjunto de entidades cliente.
Una entidad se representa mediante un conjunto de
atributos. Los atributos describen propiedades que
posee cada miembro de un conjunto de entidades. La
designación de un atributo para un conjunto de entidades
expresa que la base de datos almacena información
similar concerniente a cada entidad del conjunto de entidades;
sin embargo, cada entidad puede tener su propio
valor para cada atributo. Posibles atributos del conjunto
de entidades cliente son id-cliente, nombre-cliente,
calle-cliente y ciudad-cliente. En la vida real, habría
más atributos, tales como el número de la calle, el número
del portal, la provincia, el código postal, y la comunidad
autónoma, pero no se incluyen en el ejemplo simple.
Posibles atributos del conjunto de entidades
préstamo son número-préstamo e importe.
Para cada atributo hay un conjunto de valores permitidos,
llamados el dominio, o el conjunto de valores,
de ese atributo. El dominio del atributo nombrecliente
podría ser el conjunto de todas las cadenas de
texto de una cierta longitud. Análogamente, el dominio
del atributo número-préstamo podría ser el conjunto de
todas las cadenas de la forma «P-n», donde n es un entero
positivo.
Ejemplo:
Entidad: Empleado
Nombre de atributo: Código
• Descripción: Código único por empleado
asignado por la empresa
• Función: Identificación (+Definición)
• Dominio: Números positivos de dos cifras
Atributos monovalorados y multivalorados. Los
atributos que se han especificado en los ejemplos
tienen todos un valor sólo para una entidad concreta.
Por ejemplo, el atributo número-préstamo
para una entidad préstamo específico, referencia a
un único número de préstamo. Tales atributos se
llaman monovalorados. Puede haber ocasiones en
las que un atributo tiene un conjunto de valores para
una entidad específica. Considérese un conjunto de
entidades empleado con el atributo número-teléfono.
Cualquier empleado particular puede tener cero,
uno o más números de teléfono. Este tipo de atributo
se llama multivalorado. En ellos, se pueden
colocar apropiadamente límites inferior y superior
en el número de valores en el atributo multivalorado.
Como otro ejemplo, un atributo nombresubordinado
del conjunto de entidades empleado sería multivalorado, ya que un empleado en concreto
podría tener cero, uno o más subordinados.
Cuando sea apropiado se pueden establecer
límites superior e inferior en el número de valores
de un atributo multivalorado. Por ejemplo, un banco
puede limitar el número de números de teléfono
almacenados para un único cliente a dos. Colocando
límites en este caso, se expresa que el
atributo número-teléfono del conjunto de entidades
cliente puede tener entre cero y dos valores.
Considérese que el conjunto
de entidades empleado tiene un atributo edad,
que indica la edad del cliente. Si el conjunto de
entidades cliente tiene también un atributo fechade-nacimiento, se puede calcular edad a partir de
fecha-de-nacimiento y de la fecha actual. Así, edad
es un atributo derivado.
Un atributo toma un valor nulo cuando una entidad
no tiene un valor para un atributo. El valor nulo también
puede indicar «no aplicable», es decir, que el valor
no existe para la entidad. Por ejemplo, una persona puede
no tener segundo nombre de pila. Nulo puede también
designar que el valor de un atributo es desconocido.
Un valor desconocido puede ser, bien perdido (el
valor existe pero no se tiene esa información) o desconocido
(no se conoce si el valor existe realmente o no).
Por ejemplo, si el valor nombre para un cliente particular
es nulo, se asume que el valor es perdido, ya que
cada cliente debe tener un nombre. Un valor nulo para
el atributo piso podría significar que la dirección no
incluye un piso (no aplicable), que existe piso pero no
se conoce cuál es (perdido), o que no se sabe si el piso
forma parte o no de la dirección del cliente (desconocido).
Una relación es una asociación entre diferentes entidades.
Por ejemplo, se puede definir una relación que
asocie al cliente López con el préstamo P-15. Esta relación
especifica que López es un cliente con el préstamo
número P-15.
Un conjunto de relaciones es un conjunto de relaciones
del mismo tipo. Formalmente es una relación
matemática con n > = 2 de conjuntos de entidades (posiblemente
no distintos). Si E1, E2,…,En son conjuntos de
entidades, entonces un conjunto de relaciones R es un
subconjunto de:
{(e1, e2,…,en) | e1 ∈ E1, e2 ∈ E2,…,en ∈ En}
donde (e1,e2,…en) es una relación.
Considérense las dos entidades cliente y préstamo. Se define el conjunto de relaciones
prestatario para denotar la asociación entre clientes y
préstamos bancarios que los clientes tengan. Esta asociación
se describe en la siguiente figura:



La función que desempeña una entidad en una relación
se llama papel de la entidad.
Debido a que los conjuntos de entidades que participan
en un conjunto de relaciones son generalmente distintos,
los papeles están implícitos y no se especifican
normalmente. Sin embargo, son útiles cuando el significado
de una relación necesita aclaración. Tal es el caso
cuando los conjuntos de entidades de una relación no
son distintos; es decir, el mismo conjunto de entidades
participa en una relación más de una vez con diferentes
papeles. En este tipo de conjunto de relaciones, que se
llama algunas veces conjunto de relaciones recursivo,
es necesario hacer explícitos los papeles para especificar
cómo participa una entidad en un ejemplar de relación.
Por ejemplo, considérese una conjunto de entidades
empleado que almacena información acerca de todos
los empleados del banco. Se puede tener un conjunto de
relaciones trabaja-para que se modela mediante pares
ordenados de entidades empleado. El primer empleado
de un par toma el papel de trabajador, mientras el segundo
toma el papel de jefe. De esta manera, todas las relaciones
trabaja-para son pares (trabajador, jefe); los pares
(jefe, trabajador) están excluidos.

El número de conjuntos de entidades que participan
en un conjunto de relaciones es también el grado del
conjunto de relaciones. Un conjunto de relaciones binario
tiene grado 2; un conjunto de relaciones ternario tiene
grado 3.
Otro ejemplo:
Una relación tiene sentido al
expresar las entidades que relaciona. En el ejemplo anterior, un
huesped(entidad), se aloja(relación) en una habitacion(entidad).
Dados los conjuntos de entidades
"Habitación" y "Huésped", todas las relaciones de la forma
habitación-huésped, permiten obtener la información de los huéspedes y
sus respectivas habitaciones.
La dependencia o asociación entre los conjuntos de entidades es llamada participación. En el ejemplo anterior los conjuntos de entidades "Habitación" y "Huésped" participan en el conjunto de relaciones habitación-huésped.
Restricciones
Una restricción es una condición que obliga el
cumplimiento de ciertas condiciones en la base de datos. Algunas no
son determinadas por los usuarios, sino que son inherentemente
definidas por el simple hecho de que la base de datos sea relacional.
Algunas otras restricciones las puede definir el usuario, por ejemplo,
usar un campo con valores enteros entre 1 y 10.
Las restricciones proveen un método de implementar
reglas en la base de datos. Las restricciones restringen los datos que
pueden ser almacenados en las tablas. Usualmente se definen usando
expresiones que dan como resultado un valor booleano, indicando si los
datos satisfacen la restricción o no.
Las restricciones no son parte formal del modelo
relacional, pero son incluidas porque juegan el rol de organizar mejor
los datos.
Un esquema de desarrollo E-R puede definir ciertas restricciones
a las que los contenidos de la base de datos
se deben adaptar.
Examinemos la correspondencia
de cardinalidades y las restricciones de participación,
que son dos de los tipos más importantes de
restricciones.
La correspondencia de cardinalidades, o razón de cardinalidad,
expresa el número de entidades a las que otra
entidad puede estar asociada vía un conjunto de relaciones.
Uno a uno. Una entidad en A se asocia con a lo
sumo una entidad en B, y una entidad en B se asocia
con a lo sumo una entidad en A.
Ej. Una persona tiene un coche y un coche es de una sola persona.
Uno a varios. Una entidad en A se asocia con cualquier
número de entidades en B (ninguna o varias).
Una entidad en B, sin embargo, se puede asociar con
a lo sumo una entidad en A
Ej. Una persona tiene varios coches y un coche es de una sola persona.
Varios a uno. Una entidad en A se asocia con a lo
sumo una entidad en B. Una entidad en B, sin embargo,
se puede asociar con cualquier número de entidades
(ninguna o varias) en A
Ej. Una persona tiene un coche y un coche es de varias personas.
Varios a varios. Una entidad en A se asocia con
cualquier número de entidades (ninguna o varias)
en B, y una entidad en B se asocia con cualquier
número de entidades (ninguna o varias) en A.
Ej. Una persona tiene varios coches y un coche es de varias personas.
Como ilustración considérese el conjunto de relaciones
prestatario. Si en un banco particular un préstamo
puede pertenecer únicamente a un cliente y un cliente
puede tener varios préstamos, entonces el conjunto
de relaciones de cliente a préstamo es uno a varios. Si
un préstamo puede pertenecer a varios clientes (como
préstamos que se toman en conjunto por varios socios
de un negocio) el conjunto de relaciones es varios a
varios.
Restricciones Parciales
La participación de un conjunto de entidades E en un
conjunto de relaciones R se dice que es total si cada
entidad en E participa al menos en una relación en R.
Si sólo algunas entidades en E participan en relaciones
en R, la participación del conjunto de entidades E en la
relación R se llama parcial. Por ejemplo, se puede esperar
que cada entidad préstamo esté relacionada con al primamenos
un cliente mediante la relación prestatario. Por
lo tanto, la participación de préstamo en el conjunto de
relaciones prestatario es total. En cambio, un individuo
puede ser cliente de un banco tenga o no tenga un préstamo
en el banco. Así, es posible que sólo algunas de
las entidades cliente estén relacionadas con el conjunto
de entidades préstamo mediante la relación prestatario,
y la participación de cliente en el conjunto de relaciones
prestatario es por lo tanto parcial.