# 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 |