Para convertir un diagrama Entidad-Relación a tablas se tienen que seguir 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. Cuando existe una relación “uno a varios” se  va a generar una tabla que incluye los atributos de la entidad del extremo “varios”, es decir una columna por cada uno de los atributos de la entidad varios y una columna del atributo principal de la entidad del extremo “uno”. En otras palabras se toma el campo llave del extremo uno y se inserta en la tabla del extremo varios.
  4. Cuando existe una relación “varios a varios” (binaria) y toda relación donde el grado de participación sea de 2 o más de dos conjuntos de entidades (ternaria, cuaternaria) 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 participan en la relación, más una o más columnas por cada atributo que fueron necesarios para describir la relación.
  5. Si existieran campos compuestos en cualquiera de las entidades, conviene evaluar si se necesitara en la base de datos hacer búsquedas por los elementos individuales o atributos que componen el atributo compuesto, si se requiere hacer dichas búsquedas, entonces cada atributo que compone el atributo compuesto deberá ser un campo de la tabla, en caso de que no, la tabla solo contendrá una campo con el nombre del atributo compuesto y el valor de cada registro de este campo estará formado por los valores de los atributos que lo componen. Esto debido a que para hacer búsquedas en un atributo compuesto, es más fácil si se tiene una columna por cada campo que compone el campo compuesto.
  6. Si existe un atributo multivalorado en una tabla, este se convierte en una tabla que va a estar compuesta por una columna para el campo llave de esta nueva tabla, otro campo que será el campo llave de la tabla de donde proviene el atributo multivalorado (llave foránea) y finalmente un campo que será el que representa al atributo multivalorado, en la tabla habrá un registro por cada valor del atributo multivalorado, con diferente campo llave, y donde se va a repetir la llave foránea para conocer que registros de esta nueva tabla corresponden a un registro de la tabla original.
  7. Los campos derivados se representan como una columna de la tabla.
  8. Si una relación contiene atributos, automáticamente se convierte en tabla, tomando los atributos de la relación como campos de la tabla y  los campos llaves de las tablas que participan en la relación como campos de esta nueva tabla.

Ejemplo:

Vamos a convertir a modelo relacional un segundo diagrama del ejercicio “Sistema de Ventas” el diagrama E-R a convertir es el siguiente:

 

El diagrama presenta 5 entidades, todas ellas fuertes, que son Producto, Proveedor, Venta, Categoría y Cliente.

Siguiendo la regla 1, que dice “Cada conjunto de entidades fuerte se representa con una tabla, cuyas columnas corresponden a los atributos de las entidades.” Tendríamos las primeras 5 tablas iniciales:

Iniciamos con la primera columna que sería el atributo principal de la entidad, que en modelo relacional sería el campo llave de la tabla, después colocamos el resto de los atributos, en este momento, no es necesario establecer el tipo de dato que almacenara cada campo de la tabla.

La segunda tabla sería:

Iniciando con el atributo principal de la entidad, que será el campo llave de la tabla, después el resto de los atributo, aquí en este caso tenemos un atributo compuesto que es el de dirección, que descomponemos en partes que van a formar columnas independientes de la tabla.

La siguiente tabla sería:

Iniciando la tabla con el atributo principal de la entidad, seguido del resto de los atributos. Es preciso recordar que a estas alturas no es necesario determinar el tipo de dato que almacenara cada campo de la tabla.

La siguiente tabla sería:

Iniciamos nuevamente con el atributo principal de la entidad, que será el campo llave de la tabla y le seguimos con el resto de los atributos, que basándonos en la regla 1, serán el resto de los campos de la tabla.

Finalmente la última entidad fuerte sería cliente, y su tabla quedaría de la siguiente forma:

Iniciando con el atributo principal de la entidad, que será el campo llave, seguido del nombre del cliente, aquí en esta entidad se tiene un campo compuesto que es el de dirección, cuyas partes vienen a formar columnas independientes de la tabla. Existe en esta entidad también un campo multivalorado que es el de teléfono, dicho campo no se incluye en la tabla porque, siguiendo la regla 6, “Si existe un atributo multivalorado en una tabla, este se convierte en una tabla que va a estar compuesta por una columna para el campo llave de esta nueva tabla, otro campo que será el campo llave de la tabla de donde proviene el atributo multivalorado (llave foránea) y finalmente un campo que será el que representa al atributo multivalorado, en la tabla habrá un registro por cada valor del atributo multivalorado, con diferente campo llave, y donde se va a repetir la llave foránea para conocer que registros de esta nueva tabla corresponden a un registro de la tabla original.“.

Dicha tabla quedaría de la siguiente forma:

De esta forma podremos almacenar varios teléfonos para una sola “Clave_Cliente” cada una con diferente “Clave_Tel_Cliente”.

Ahora vamos a analizar las relaciones para determinar cuáles de estas se convertirán en tablas:

Existe una relación llamada provee, de tipo binaria (grado 2), en donde los participantes son las entidades Proveedor y Producto, es de cardinalidad “Uno a varios”, un proveedor provee muchos productos, y muchos productos son provistos por un único proveedor. Siguiendo la regla “Cuando existe una relación “uno a varios” se  va a generar una tabla que incluye los atributos de la entidad del extremo “varios”, es decir una columna por cada uno de los atributos de la entidad varios y una columna del atributo principal de la entidad del extremo “uno” En otras palabras se toma el campo llave del extremo uno y se inserta en la tabla del extremo varios.”

Por lo anterior, el campo llave de la tabla proveedor se inserta en la tabla productos, de esta forma en cada registro de la tabla productos, vamos a conocer que proveedor lo surte.

De esta forma quedaría la tabla producto, el campo “Clave_proveedor” se conoce con el nombre de llave foránea.

La siguiente relación a analizar es “Se Clasifica”, también es binaria, participan las entidades categoría y producto, es de cardinalidad 1 a Varios, en donde en una sola categoría se clasifican varios productos y varios productos son ordenados en una sola categoría. Se aplica la misma regla de la anterior, tomando el campo llave de la tabla del extremo uno “Categoria” e insertándolo en el extremo muchos.

De esta forma el campo llave de la tabla categoría se inserta en la tabla producto, para saber por cada registro de producto, la categoría en la que fue clasificado.

 

La siguiente relación es la de “Compra”, es de tipo binaria, donde participan las entidades CLIENTE y VENTA, esta relación es de uno a muchos, donde se relaciona cada  CLIENTE participa en muchas ventas (es decir hace muchas compras), y muchas compras son hechas por un solo cliente. Se sigue el mismo procedimiento de los anteriores, tomamos el campo llave del extremo uno, que en este caso es “cliente” y lo insertamos en la tabla del extremo muchos “venta”:

De esta forma podremos saber por cada venta, que cliente participo en la operación. El campo Clave_Cliente es considerado como llave foránea.

 

Finalmente la ultima relación es llamada “Detalle”, también es de grado 2, binaria. En este caso la cardinalidad es de uno a uno. Se ocupa esta relación para determinar en cada venta que productos salieron, es decir, los movimientos de salida del almacen, esta relación tiene un atributo (cantidad), por lo que se crea una tabla de esta relación, con los campos llaves de las entidades participantes y un campo llave para identificar cada movimiento y el atributo de la relación.

Así podremos saber, en cada venta que productos salieron y en qué cantidad, y todos ellos registrados con una clave de movimiento de almacen.

Finalmente las tablas completas nos quedarían 7 tablas de la siguiente forma:

 

Cualquier error en la redacción de este post, o en el procedimiento favor de comentarmelo, quedando a la espera.

SaluLINUX

 


Powered By DT Author Box

Written by chris

Convertir diagrama E-R a tablas. Segundo Ejemplo.

Leave a Reply

Follow

Get every new post delivered to your Inbox

Join other followers:

%d bloggers like this: