Leccion 3 - Modelo Entidad-Relacion
Tiempo estimado de lectura: 3 minutos
Que es un modelo entidad-relacion?
En esta leccion vamos a explicar con un ejemplo el modelo Entidad-Relacion (ER), que no es otra cosa que utilizamos los profesionales de datos para representar el diseño, o modelo, de una base de datos de manera que podemos entender facilmente los diferentes elementos que componen una base de datos, como sus entidades, sus columnas (atributos) y la manera en que se relacionan las diferentes tablas que la componen. Tambien es muy util a la hora de diseñar una base de datos antes de su implementacion.
Ejemplo modelo entidad-relacion
En un modelo de entidad-relacion las tablas no muestran sus filas, de manera que transponemos las columnas para verlas en vertical de manera apilada. Por ejemplo, una base de datos sobre ventas puede tener 3 tablas (normalmente una base de datos de ventas tiene mas tablas, pero para el ejemplo nos sirve), esto es, una primera tabla de Ordenes, una segunda tabla de Clientes y una tercera tabla de Productos.
La tabla Ordenes tiene los siguientes campos (recuerda que en un modelo entidad-relacion las columnas de una tabla estan traspuestas a como las veriamos en su forma original con filas y columnas):
- IdOrden
- IdCliente
- FechaOrden
- IdProducto
- Cantidad
- Importe
Bien, como puedes ver no nos hace falta pintar la tabla con filas y columnas para entender cual es la estructura de la tabla Ordenes, si no que hemos simplemente listado sus campos.
La segunda tabla Clientes, tendria los siguientes campos:
- IdCliente
- Nombre
- Apellidos
Y por ultimo la tabla Productos, tendria los siguientes campos:
- IdProducto
- Categoria
- PrecioUnidad
Debemos hablar un poco sobre la logica de negocio de esta base de datos de 3 tablas. La tabla Ordenes registra los datos de las ventas de manera que un cliente puede hacer un pedido de uno o mas productos en una fecha determinada. La tabla Productos registra la informacion de los diferentes productos que se venden. Y por ultimo la tabla Clientes contendra asi mismo la informacion de los diferentes Clientes del negocio.
Ahora, si nos fijamos bien, te daras cuenta de que hay nombres de campos que se repiten entre las tablas, por ejemplo IdProducto en la tabla Productos e IdProducto en la tabla Ordenes. Te preguntaras, por que es esto asi, bien, esta es la forma mas facil de identificar como relacionar dos tablas, cuando los nombres de los campos entre dos tablas se repiten esto te da pistas para saber como se relacionan, en este las tablas Ordenes y Producto se relacionan por el campo IdProducto. La tabla Productos contiene un registro unico por cada producto, y la tabla Ordenes contiene la informacion de las ventas en las que los clientes pueden hacer una o mas compras de uno o varios productos en una o varias fechas.
Por lo tanto las relaciones entre las tablas se dan como sigue. La relacion entre la tabla Cliente y Ordenes sera uno a muchos (1:n), y la relacion entre las tablas Producto y Ordenes sera tambien uno a muchos (1:n). Las tablas Productos y Clientes no se relacionan entre si directamente si no a traves de la tabla Ordenes.
Recuerda las tablas pueden tener una clave primaria (PK), y una o mas claves foraneas (FK). Siguiendo el ejemplo de nuestra base de datos de ventas, las tabla Productos tendra una clave primaria que se corresponde con el campo IdProducto, que sera el identificador unico del producto en nuestro sistema. Asi mismo la tabla Clientes tendra una clave primaria dada por el campo IdCliente para identificar de manera univoca cada cliente en nuestro sistema. Y que pasa con la tablas Ordenes? Pues que esta contendra las foreign keys o claves foraneas que apuntaran a las tablas Productos y Clientes dadas por IdProducto e IdCliente respectivamente.
Si ilustramos todo lo que hemos comentado anteriormente, nuestro modelo entidad-relacion de nuestra base de datos Ventas se podria representar de la siguiente manera.
Ventajas del modelo Entidad-Relacion
- Organizacion y facilidad al visualizar el diseño del modelo datos. De esta manera permite comprender como estan estructuradas las entidades y como se relacionan entre si.
- Facilita el poder evitar redundancia en los datos.
- Facilita la implementacion del modelo datos.