Siguiente: SQL Subir: Modelamiento Básico de Datos Anterior: Relaciones entre más de   Índice General

Conversión a un modelo de tablas

En estricto rigor, lo que aquí corresponde es explicar en detalle todo lo concerniente al modelo relacional: cálculo relacional, álgebra relacional, etc. No se intenta explicar esta teoría aquí; más bien nos abocaremos directamente a la sencilla tarea de convertir un modelo E-R en un modelo de tablas que pueda ser implementado en un motor de bases de datos.

Para la conversión de un diagrama E-R en un modelo de tablas utilizamos las siguientes reglas:

  1. Cada conjunto de entidades fuerte se representa con una tabla, cuyas columnas corresponden a los atributos de las entidades.

  2. Cada conjunto de entidades débil se representa con una tabla, con una columna por cada atributo de las entidades más una columna por cada atributo de la llave primaria de la entidad fuerte de la cual el conjunto de entidades débil depende.

  3. Cada relación ``uno a varios'' se representa incluyendo en la tabla del extremo ``varios'' las columnas de la llave primaria del extremo ``uno''. Alternativamente, se puede representar usando la regla siguiente:

  4. Cada relación ``varios a varios'' y toda relación que involucre más de dos conjuntos de entidades se representa con una tabla, la cual tiene una columna por cada atributo de las llaves primarias de los conjuntos de entidades a los que está ligada, más una columna por cada atributo descriptivo de la relación.

Veamos unos pocos ejemplos. La primera regla es muy sencilla y se ilustra con una tabla autores que tendrá las columnas nombre, nacionalidad y fecha de nacimiento. La llave primaria de esta tabla será nuestro ID ficticio.

autor_id nombre nacionalidad fecha de nacimiento
       
       

La segunda regla se ilustra con el conjunto experimentos. Recuérdese que este conjunto es débil, por lo que no tiene una identificación única propia: debe heredarla desde la relación fuerte de la que depende, artículos. A eso agrega su propio identificador.

articulo_id codigo experimento nombre descripcion
       
       

Para ilustrar el caso de las relaciones, veamos cuatro ejemplos, partiendo por el más sencillo: la relación autor pertenece a institución. Para esta relación agregamos una columna institucion_id a la tabla autores.

La relación artículo es escrito por autor se representa de la misma manera, agregando un nuevo atributo a la tabla articulos. Observe que no es necesario hacerlo con la tabla experimentos.

Para el segundo ejemplo, tomemos la relación artículo cita a artículo. Esto es lo mismo que lo anterior, con la salvedad que ambas tablas son la misma; por lo tanto, no podemos usar la manera sencilla. Es obligatorio crear una tabla adicional para almacenar esta información. Una de las columnas indicará el artículo que cita, y la otra será el artículo citado. No se pueden tener dos columnas del mismo nombre, por lo que llamamos a la primera articulo_id, y a la segunda, ref_articulo_id.

articulo_id ref_articulo_id
   
   

El último ejemplo es el de la relación ternaria, en la cual una institución financia a un autor para que trabaje en un artículo. Esto se implementa creando una tabla que lleva las llaves primarias de las tres tablas, y una columna adicional para la fecha de recepción y el monto.

autor_id articulo_id institucion_id monto fecha de recepcion
         
         

Con esto queda completo el proceso de conversión, y se han ilustrado los principales ejemplos. A continuación se muestra cómo hacer todo esto en un gestor de bases de datos.


Siguiente: SQL Subir: Modelamiento Básico de Datos Anterior: Relaciones entre más de   Índice General
Alvaro Herrera 2004-10-04

Valid HTML 3.2