SQL – Modelo Entidad Relación (MER)

¿Qué es el Modelo Entidad-Relación (MER)?
El Modelo Entidad-Relación es una técnica de diseño utilizada para representar datos y sus relaciones de manera visual antes de implementarlos en una base de datos relacional.
Propósito del MER:
✅ Facilitar el diseño lógico de bases de datos.
✅ Identificar correctamente las entidades y sus relaciones.
✅ Minimizar errores en la estructura de la base de datos.
Componentes del Modelo Entidad-Relación
El MER se compone de entidades, atributos, claves y relaciones, que se representan en diagramas utilizando símbolos específicos.
1. Entidades

Una entidad representa un objeto del mundo real con existencia propia. Puede ser una persona, un lugar, un evento o un concepto.
1.1 Entidades fuertes vs. Entidades débiles
Entidad fuerte: Tiene una clave primaria propia. (Ejemplo: Cliente, Producto).
Entidad débil: No tiene clave primaria propia y depende de otra entidad. (Ejemplo: Factura, Detalle de pedido).
2. Claves Primarias y Claves Foráneas
Las claves primarias y foráneas permiten la identificación única y la relación entre tablas.
2.1 Clave Primaria (PK – Primary Key)
2.2 Clave Foránea (FK – Foreign Key)
3. Atributos
Son las características o propiedades de una entidad.
3.1 Tipos de atributos:
- Atributos simples: No pueden dividirse. (Ejemplo: Nombre, Edad).
- Atributos compuestos: Se pueden dividir en subcomponentes. (Ejemplo: Dirección → Calle, Ciudad, País).
- Atributos derivados: Se obtienen a partir de otros. (Ejemplo: Edad calculada a partir de la fecha de nacimiento).
- Atributos multivaluados: Pueden tener varios valores. (Ejemplo: Teléfonos de contacto).
4. Relaciones y Cardinalidad
La cardinalidad en bases de datos SQL define la relación entre dos entidades en un modelo entidad-relación (MER). Especifica cuántas instancias de una entidad pueden o deben estar relacionadas con instancias de otra entidad.
4.1 Importancia de la Cardinalidad
- Ayuda a diseñar correctamente la estructura de una base de datos.
- Define restricciones en las relaciones para mantener la integridad referencial.
- Optimiza consultas SQL al comprender las conexiones entre entidades.
4.2 Tipos de Cardinalidad
Existen tres tipos principales de cardinalidad en una base de datos relacional:
Relación 1:1 (Uno a Uno)
- Cada entidad en una tabla se asocia con, como máximo, una entidad en otra tabla.
- Se usa cuando una entidad tiene atributos que se deben separar en una tabla secundaria.
Ejemplo: Cada empleado tiene un solo casillero, y cada casillero pertenece a un solo empleado.

Relación 1:N (Uno a Muchos)
- Un registro en la primera tabla puede estar relacionado con múltiples registros en la segunda tabla, pero no al revés.
- Se usa para relaciones comunes como clientes y pedidos.
Ejemplo: Un cliente puede realizar muchas compras, pero cada compra pertenece a un solo cliente.

Relación N:M (Muchos a Muchos)
- Un registro en una tabla puede estar relacionado con múltiples registros en otra tabla y viceversa.
- Se implementa con una tabla intermedia.
Ejemplo: Un estudiante puede estar en varios cursos, y un curso puede tener varios estudiantes.

