Diseño lógico relacional
El modelo relacional fue formulado por Edgar Frank Codd (IBM, 1970) en su artículo "A Relational Model of Data for Large Shared Data Banks". Es el fundamento teórico de las bases de datos relacionales y de su lenguaje asociado (el álgebra relacional y, después, SQL).
Niveles de abstracción
El estándar ANSI/SPARC define tres niveles de abstracción de una base de datos:
-
Externo (de vistas): cómo ven los datos los distintos usuarios/aplicaciones.
-
Conceptual (lógico): qué datos se almacenan y qué relaciones existen entre ellos, con independencia del soporte físico.
-
Interno (físico): cómo se almacenan realmente los datos (ficheros, índices, bloques).
El nivel "sintáctico" NO existe como nivel de abstracción de bases de datos: es un distractor típico.
Fases del diseño: conceptual, lógico y físico
El diseño de una base de datos se aborda en tres etapas encadenadas:
-
Diseño conceptual: produce un esquema conceptual independiente del SGBD (habitualmente un modelo Entidad/Relación con entidades, atributos y relaciones).
-
Diseño lógico: su objetivo principal es transformar el esquema conceptual en un esquema lógico compatible con el modelo de datos del SGBD elegido (aquí, el relacional). El esquema lógico actúa como puente entre el esquema conceptual y el diseño físico, adaptando las estructuras de datos al modelo escogido.
-
Diseño físico: materializa el esquema lógico en estructuras concretas de almacenamiento y acceso.
El diseño conceptual y lógico tiene carácter iterativo: ambos procesos requieren refinamiento continuo, lo que contribuye a una comprensión más profunda del funcionamiento de la organización y de sus datos.
La relación: tuplas, grado y cardinalidad
En el modelo de Codd, una relación (tabla) es un conjunto de n-tuplas, donde cada n-tupla es una lista ordenada de valores atómicos. Una relación es, por tanto, un conjunto de tuplas. Dos medidas la describen:
-
Grado: número de atributos (columnas).
-
Cardinalidad: número de tuplas (filas).
Así, una entidad con 4 columnas y 7 filas tiene grado 4 y cardinalidad 7.
Claves: superclave, candidata, primaria y ajena
-
Superclave: subconjunto de atributos del esquema R(A1,…,An) tal que no puede haber dos tuplas con la misma combinación de valores para dicho subconjunto (identifica unívocamente).
-
Clave candidata: superclave mínima (sin atributos redundantes). Toda relación tiene al menos una clave candidata (en el peor caso, el conjunto de todos sus atributos); por tanto es FALSO afirmar que "una relación puede no tener clave candidata".
-
Clave primaria: clave candidata elegida como identificador principal; conjunto de atributos que hacen único el acceso a cada ocurrencia de la entidad. Tanto la clave primaria como una clave candidata encajan con la definición de "atributos que identifican de forma única las filas".
-
Clave ajena o foránea (foreign key): atributo(s) que referencian la clave primaria de otra relación. Las claves ajenas SÍ pueden ser nulas (salvo restricción explícita); afirmar que "nunca pueden ser nulas" es incorrecto.
Reglas de integridad
El modelo relacional impone dos reglas de integridad básicas:
-
Integridad de entidad(es): ningún atributo que compone la clave primaria puede ser nulo, de modo que cada entidad sea única e identificable.
-
Integridad referencial: el valor de una clave ajena, si no es nulo, debe coincidir con un valor existente de la clave primaria a la que referencia (o bien ser nulo). Garantiza que las relaciones entre tablas permanezcan sincronizadas durante inserciones, actualizaciones y borrados, evitando "filas hijas huérfanas". Si una clave externa apunta a una fila inexistente, se viola la integridad referencial; borrar una fila padre con hijos es un riesgo típico de violación.
Otras restricciones habituales: datos requeridos (campos NOT NULL que no pueden quedar vacíos) y restricciones de dominio.
Propiedades ACID de las transacciones
Las transacciones de un SGBD deben cumplir las propiedades ACID: Atomicidad, Consistencia, Aislamiento (Isolation) y Durabilidad/Persistencia.
Las 12 reglas de Codd
Codd definió 12 reglas (más la regla 0) para calificar un sistema como relacional. Entre las más preguntadas:
-
Regla 2 — Acceso garantizado: todo dato es accesible mediante la combinación de nombre de tabla, valor de clave primaria y nombre de columna (implica clave primaria única en cada relación).
-
Regla 5 — Sublenguaje de datos completo: el sistema debe soportar al menos un lenguaje de manipulación de datos con sintaxis bien definida (definición de datos, vistas, manipulación, integridad, autorizaciones y transacciones).
-
Regla 7 — Inserción, actualización y borrado de alto nivel: el sistema debe permitir operar sobre conjuntos de tuplas (no fila a fila) tanto en consulta como en inserción/actualización/borrado.
-
Regla 11 — Independencia de la distribución: que la base de datos se almacene de forma distribuida NO debe afectar a las aplicaciones. Por eso una "dependencia de la distribución" NO es una de las 12 reglas (es la inversión del enunciado real).
Reglas de transformación (paso al modelo lógico/físico)
Al pasar del modelo conceptual al lógico relacional se aplican reglas de transformación:
-
Transformación de entidades en tablas y de atributos en columnas.
-
Transformación de relaciones N:M: se crea una tabla intermedia (de intersección o de enlace) cuyas claves foráneas son las claves primarias de las entidades participantes.
-
Transformación de relaciones de grado n (n-arias): dividir las relaciones de grado n en relaciones binarias.
-
Transformación de entidades débiles.
-
Transformación de atributos compuestos (un atributo que contiene otros).
-
Transformación de atributos multivalorados: se llevan a una tabla separada.
La "transformación de funciones" NO es una regla de transformación (distractor).
Álgebra relacional
Las operaciones fundamentales (primitivas) del álgebra relacional son: selección (σ), proyección (π), unión (∪), diferencia de conjuntos (−) y producto cartesiano (×) —a veces se añade el renombrado—. Son fundamentales porque ninguna puede eliminarse sin perder poder expresivo. La intersección NO es fundamental: es una operación derivada (se obtiene a partir de la diferencia).
Modelo dimensional (Kimball)
En el modelo dimensional de Kimball (data warehousing), una dimensión outrigger es una tabla de dimensión enlazada desde otra tabla de dimensión (una dimensión que cuelga de otra), utilizada de forma limitada para normalizar atributos correlacionados.
Fuentes
-
Codd, E. F. — A Relational Model of Data for Large Shared Data Banks, ACM: https://dl.acm.org/doi/10.1145/362384.362685
-
Codd's 12 rules — Wikipedia: https://en.wikipedia.org/wiki/Codd%27s_12_rules
-
Codd's 12 Rules (Rule 2, 5, 7) — OLAP.com: https://olap.com/learn-bi-olap/codds-paper/
-
Relational algebra (operadores primitivos) — Wikipedia: https://en.wikipedia.org/wiki/Relational_algebra
-
Kimball Group — Outrigger Dimension (Data Warehouse glossary): https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/
-
ANSI/SPARC three-schema architecture — ISO/IEC: https://en.wikipedia.org/wiki/Three-schema_approach