# Bloque 3 · Tema 1
# Modelado de datos, metodologías y reglas. Entidades, atributos y relaciones. Diseño de bases de datos. Diseño lógico y físico. El modelo lógico relacional. Normalización.

---

# Esquema resumen

**Modelado de datos**

→ Representación conceptual de la información de un sistema.

**Elementos básicos**

- Entidades
- Atributos
- Relaciones

**Diseño de bases de datos**

1. Diseño conceptual
2. Diseño lógico
3. Diseño físico

**Modelo relacional**

- Tablas (relaciones)
- Filas (tuplas)
- Columnas (atributos)
- Claves primarias
- Claves foráneas

**Normalización**

Proceso para:

- eliminar redundancias
- evitar anomalías de inserción, actualización y borrado
- mejorar la integridad y consistencia de los datos

Formas normales principales:

| Forma normal | Condición que debe cumplir |
|---|---|
| **1FN** | Todos los atributos son atómicos (sin listas ni grupos repetidos) |
| **2FN** | Cumple 1FN + cada atributo no clave depende de **toda** la clave primaria (sin dependencias parciales) |
| **3FN** | Cumple 2FN + ningún atributo no clave depende de otro atributo no clave (sin dependencias transitivas) |
| **BCNF** | Forma más estricta de 3FN: todo determinante es clave candidata |

> **Truco para recordar el orden:** "Átomos Parciales Transitivos Candidatos" → 1FN (atómico), 2FN (sin parciales), 3FN (sin transitivas), BCNF (candidatos).

---

# 1. Modelado de datos

## 1.1 Qué es el modelado de datos

El **modelado de datos** es el proceso mediante el cual se analiza y representa la información que debe gestionar un sistema de información.

Permite definir:

- qué datos existen
- cómo se relacionan
- qué reglas deben cumplir

Se utiliza principalmente en el **diseño de bases de datos**.

### Objetivos del modelado

- Representar la realidad del negocio.
- Facilitar el diseño de bases de datos.
- Reducir redundancias.
- Garantizar integridad de datos.
- Facilitar mantenimiento y evolución del sistema.

---

## 1.2 Niveles de modelado

El modelado se divide normalmente en **tres niveles**.

| Nivel | Objetivo | Características |
|-----|-----|-----|
| Conceptual | Representar la realidad del negocio | Independiente del SGBD |
| Lógico | Adaptar el modelo al tipo de base de datos | Define tablas y relaciones |
| Físico | Implementación real | Optimización de almacenamiento |

---

### Miniresumen

El modelado de datos:

- describe la información del sistema
- se divide en **conceptual, lógico y físico**
- es la base del **diseño de bases de datos**

---

# 2. Entidades, atributos y relaciones

El **modelo Entidad-Relación (E-R)** es uno de los modelos más utilizados para el diseño conceptual de bases de datos.

Sus elementos fundamentales son:

- entidades
- atributos
- relaciones

---

# 2.1 Entidades

Una **entidad** es cualquier objeto del mundo real sobre el que se desea almacenar información.

Ejemplos:

- Cliente
- Producto
- Pedido
- Empleado

Las entidades suelen representarse con **rectángulos en diagramas E-R**.

---

### Tipos de entidades

**Entidad fuerte**

- tiene clave propia
- existe por sí misma

Ejemplo: `EMPLEADO`, `CLIENTE`

**Entidad débil**

- no tiene clave propia
- depende de una entidad fuerte para existir

Ejemplo: `DEPENDIENTE` (depende de `EMPLEADO`)

---

## 2.2 Atributos

Un **atributo** es una característica o propiedad de una entidad.

| Tipo de atributo | Descripción | Ejemplo |
|---|---|---|
| **Clave** | Identifica unívocamente cada instancia | DNI de un empleado |
| **Multivaluado** | Puede tener varios valores | Teléfonos de un cliente |
| **Derivado** | Se calcula a partir de otros atributos | Edad (calculada desde fecha de nacimiento) |
| **Compuesto** | Formado por subatributos | Dirección (calle, ciudad, CP) |

---

## 2.3 Relaciones y cardinalidad

Una **relación** es una asociación entre dos o más entidades.

La **cardinalidad** define cuántas instancias de una entidad pueden asociarse con instancias de otra.

| Cardinalidad | Significado | Ejemplo |
|---|---|---|
| **1:1** | Uno a uno | Una persona tiene un único pasaporte |
| **1:N** | Uno a muchos | Un departamento tiene muchos empleados |
| **N:M** | Muchos a muchos | Un alumno cursa muchas asignaturas y una asignatura tiene muchos alumnos |

La **participación** puede ser:

- **Total**: toda instancia de la entidad participa en la relación (obligatoria)
- **Parcial**: puede haber instancias que no participen (opcional)

---

### Miniresumen

El modelo E-R usa:

- **entidades** (fuertes y débiles)
- **atributos** (clave, multivaluado, derivado, compuesto)
- **relaciones** con cardinalidades **1:1, 1:N y N:M**

---

# 3. Diseño de bases de datos

El proceso de diseño de bases de datos sigue **tres fases** secuenciales.

---

## 3.1 Diseño conceptual

Se crea el **modelo E-R** que captura la realidad del negocio de forma abstracta.

- Es independiente del SGBD que se vaya a usar.
- Resultado: diagrama E-R.

---

## 3.2 Diseño lógico

Se transforma el modelo conceptual en un **esquema de base de datos** adaptado al modelo elegido (habitualmente el relacional).

- Se definen tablas, columnas y relaciones.
- Las entidades pasan a ser tablas.
- Las relaciones N:M se convierten en tablas intermedias.
- Se identifican claves primarias y foráneas.

---

## 3.3 Diseño físico

Se optimiza el esquema para su implementación en un **SGBD concreto**.

- Se definen índices, particiones y estructuras de almacenamiento.
- Depende del sistema gestor (Oracle, PostgreSQL, MySQL…).

---

### Miniresumen

| Fase | Herramienta | Dependencia del SGBD |
|---|---|---|
| Conceptual | Diagrama E-R | No |
| Lógico | Esquema de tablas | Parcial (tipo de modelo) |
| Físico | Índices, particiones | Sí (SGBD concreto) |

---

# 4. El modelo lógico relacional

El **modelo relacional** representa los datos en forma de **tablas** (también llamadas relaciones).

| Término formal | Término coloquial |
|---|---|
| Relación | Tabla |
| Tupla | Fila |
| Atributo | Columna |
| Grado | Número de columnas |
| Cardinalidad | Número de filas |

---

## 4.1 Tipos de claves

| Clave | Descripción |
|---|---|
| **Primaria** | Identifica unívocamente cada fila; no puede ser nula ni repetida |
| **Foránea** | Referencia la clave primaria de otra tabla; garantiza la integridad referencial |
| **Alternativa** | Atributo que podría ser clave primaria pero no ha sido elegido como tal |
| **Candidata** | Cualquier atributo (o conjunto) que puede actuar como clave primaria |

---

## 4.2 Integridad referencial

La **integridad referencial** garantiza que los valores de una clave foránea siempre correspondan a valores existentes en la tabla referenciada.

Ejemplo: si `PEDIDO.id_cliente` es clave foránea de `CLIENTE.id`, no puede existir un pedido con un `id_cliente` que no exista en la tabla `CLIENTE`.

---

### Miniresumen

El modelo relacional organiza los datos en **tablas** con:

- **clave primaria** para identificar filas
- **clave foránea** para relacionar tablas
- **integridad referencial** para mantener la consistencia

---

# 5. Normalización

La **normalización** es el proceso de organizar las tablas de una base de datos para:

- eliminar redundancias
- evitar anomalías de inserción, actualización y borrado
- mejorar la integridad y consistencia de los datos

---

## 5.1 Dependencia funcional

Se dice que **B depende funcionalmente de A** (notación: A → B) cuando para cada valor de A existe un único valor de B.

Ejemplo: `DNI → Nombre` (dado un DNI hay un único nombre)

---

## 5.2 Formas normales

| Forma normal | Condición |
|---|---|
| **1FN** | Todos los atributos son **atómicos** (sin listas ni grupos repetitivos) |
| **2FN** | Cumple 1FN + todos los atributos no clave dependen de **toda** la clave primaria (sin dependencias parciales) |
| **3FN** | Cumple 2FN + no existen **dependencias transitivas** (ningún atributo no clave depende de otro no clave) |
| **BCNF** | Todo **determinante** de una dependencia funcional no trivial es una superclave |

> **Importante:** La 2FN solo es relevante cuando la clave primaria es compuesta.

> **Truco:** "Átomos Parciales Transitivos Candidatos" → 1FN, 2FN, 3FN, BCNF.

---

### Miniresumen

La normalización elimina redundancias mediante cuatro formas normales:

- **1FN**: valores atómicos
- **2FN**: sin dependencias parciales
- **3FN**: sin dependencias transitivas
- **BCNF**: todo determinante es superclave

---

# Miniresumen final del tema

| Punto | Idea clave |
|---|---|
| **1. Modelado de datos** | Tres niveles: conceptual, lógico y físico |
| **2. Modelo E-R** | Entidades, atributos y relaciones con cardinalidades 1:1, 1:N, N:M |
| **3. Diseño de BD** | Fases: conceptual (E-R) → lógico (tablas) → físico (SGBD) |
| **4. Modelo relacional** | Tablas con claves primarias y foráneas; integridad referencial |
| **5. Normalización** | 1FN (átomo) → 2FN (sin parciales) → 3FN (sin transitivas) → BCNF |
