Relaciones entre entidades

Páginas: 6 (1374 palabras) Publicado: 10 de agosto de 2014
5. RELACIONES ENTRE ENTIDADES
Cuando hablamos de mapeo objeto-relacional nos referimos al establecimiento de
políticas que definen la correspondencia entre las entidades y las tablas de la base de datos,
información ésta que puede suministrarse a través de anotaciones o archivos de configuración.
En los apartados anteriores hemos visto la manera de indicar algunos de estos datos
másbásicos, como asociación de campos a columnas o la definición de claves primarias.
Durante esta sección nos vamos a ocupar de uno de los aspectos más complejos del mapeo
objeto-relacional, como es la definición de relaciones entre entidades.

Las relaciones entre entidades establecen, como su nombre indica, la manera en que
se relacionan las entidades de una aplicación a fin de que el gestor depersistencia pueda
realizar adecuadamente el mapeo de los datos en una base de datos relacional.
Según la manera en que unas entidades se refieren a otras, distinguimos cuatro tipos
de relaciones:


Uno a uno. Se define con la anotación @OneToOne.



Uno a muchos. Se define con la anotación @OneToMany.



Muchos a uno. Se define con la anotación @ManyToOne.



Muchos amuchos. Se define con la anotación @ManyToMany.

Vamos a analizar en qué consisten cada una de estas relaciones y la manera de
definirlas en las entidades mediante el uso de anotaciones.

5.1. RELACIÓN UNO A UNO
Se da una relación uno a uno entre dos entidades cuando un objeto de una entidad
tiene asociado un objeto de la otra. Por ejemplo, en un contexto de entidades que representanelementos de una obra de teatro, una entidad de tipo “Actor” estaría relacionada con la entidad
“Personaje” en una relación uno a uno, pues cada actor interpreta un personaje y un personaje
es interpretado por un único actor.
Desde el punto de vista de las tablas de la base de datos, estas relaciones se traducen
en que una de las tablas contiene una referencia al campo clave de la otra a travésde lo que
se conoce como clave externa. La figura 13 indica un ejemplo de cómo podrían estar
relacionadas las tablas “Actores” y “Personajes”.

Tabla actores
dni
nombre
edad
sexo
id_personaje_actor

Primary key

Foreign key

Tabla personajes
id_personaje
nombre
grado_protagonista

Primary key

Figura. 13.
La entidad cuya tabla asociada contiene la clave externa de laotra tabla se dice que es
la propietaria de la relación, mientras que la otra entidad es el lado inverso de la relación. En
el ejemplo anterior, la entidad “Actor” sería la propietaria de la relación y “Personaje” la inversa.
A la hora de implementar las entidades en una relación uno a uno existen dos
posibilidades que dan lugar a dos tipos de relaciones:


Unidireccionales.

Bidireccionales.

5.1.1. Relaciones uno a uno unidireccionales.
Uno de los campos de una entidad (propietaria) contiene una referencia a un objeto de
la otra entidad. Por ejemplo, el campo “personaje” de la clase Actor sería de tipo Personaje y
contendría una referencia al personaje asociado, sin embargo, la clase Personaje no incluiría
ningún campo que lo relacionase con Actor.
Para moldearestas relaciones utilizaremos las anotaciones @OneToOne y
@JoinColumn en la definición del campo de la entidad propietaria que contiene la referencia a
la otra entidad. La anotación @JoinColumn deberá incluir los siguientes atributos:


name. Nombre de la columna de la tabla propietaria que contiene la clave
externa.



referencedColumnName. Nombre de la columna primary key de latabla
inversa.

El siguiente listado corresponde a la definición de las clases “Actor” y “Personaje” para
el caso de una relación unidireccional uno a uno:
package entidades;
import java.io.Serializable;
import javax.persistence.*;

@Entity
public class Actor implements Serializable {
@Id
private String dni;
private String nombre;
private int edad;
private char sexo;
@OneToOne...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • 2.2.1 Entidades, atributos y relaciones
  • Entidades y relaciones
  • Modelo Entidad Relacion Identificando Entidades tributos
  • Relacion entidades paraestatales
  • Entidades Relacionadas Con El Sector Agropecuario
  • entidades
  • ENTIDADES
  • entidades

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS