Saltar al contenido

Los tres niveles de diseño

Qué se hace exactamente al modelar datos, la diferencia entre modelo conceptual, lógico y físico, la arquitectura ANSI/SPARC de un SGBD y los modelos lógicos que existen.

Qué es modelar datos

Modelar datos es traducir un enunciado escrito en lenguaje corriente a una descripción precisa de qué información hay que guardar y cómo se relaciona entre sí. Es análisis estructural: se ocupa de la forma de los datos, no de lo que el programa hace con ellos.

Esa distinción importa porque en el análisis de un sistema conviven dos miradas. El análisis estructural responde a la pregunta de qué datos existen y cómo se conectan. El análisis funcional responde a qué procesos los transforman. Un diagrama entidad-relación pertenece a la primera; un diagrama de flujo de datos, a la segunda. En este tema solo se trabaja la primera.

El modelado se hace antes de escribir una sola sentencia de creación de tablas, y por una razón muy práctica: los errores de modelado son los más caros de corregir. Cambiar una consulta cuesta una tarde; cambiar la clave primaria de una tabla con dos millones de filas y quince programas encima cuesta un proyecto.

Modelar datos es análisis estructural: qué información hay y cómo se relaciona. Lo que el sistema hace con esa información es análisis funcional y va por otro camino.

Para el examen

  • Modelar datos: análisis estructural; ahí vive el diagrama entidad-relación

  • Análisis funcional: los procesos que transforman los datos; ahí vive el diagrama de flujo de datos

Modelo conceptual, lógico y físico

El diseño de una base de datos se hace en tres pasadas, cada una menos abstracta que la anterior. El modelo conceptual se convierte en modelo lógico aplicando reglas de transformación conocidas, y el modelo lógico se convierte en modelo físico al escribirlo en el lenguaje del gestor concreto que se vaya a usar.

ModeloDe qué dependeQué se decide en élCómo se expresa
ConceptualDe nada: es independiente de cualquier tecnologíaQué entidades hay, qué atributos tienen y cómo se relacionanDiagrama entidad-relación, o diagrama de clases en UML
LógicoDel tipo de base de datos elegidoCómo se representa todo eso con las piezas que ofrece ese tipoEsquema relacional: relaciones, atributos, claves primarias y ajenas
FísicoDel gestor concreto (Oracle, PostgreSQL, SQL Server, MySQL)Tipos de dato, índices, particiones, almacenamiento y rendimientoSentencias de definición de datos del propio gestor

La normalización, que se ve al final de este tema, es una técnica que se aplica sobre el modelo lógico: sobre relaciones ya definidas, no sobre entidades del diagrama conceptual y no sobre tablas ya creadas en el gestor.

Conceptual, independiente de todo. Lógico, dependiente del tipo de base de datos. Físico, dependiente del gestor concreto. Esa gradación de dependencia es lo que se pregunta.

Modelo conceptual

Entidades, atributos y relaciones. Independiente de toda tecnología: el diagrama entidad-relación.

Modelo lógico

Reglas de transformación: relaciones, claves primarias y ajenas. Aquí se normaliza.

Modelo físico

Sentencias del gestor concreto: tipos de dato, índices, secuencias y particionado.

Para el examen

  • Modelo conceptual: independiente de toda tecnología: el entidad-relación

  • Modelo lógico: depende del TIPO de base de datos: el esquema relacional

  • Modelo físico: depende del gestor concreto

  • Dónde se normaliza: sobre el modelo lógico

La arquitectura ANSI/SPARC de un SGBD

ANSI/SPARC es la arquitectura de referencia de un sistema gestor de bases de datos. Propone describir la misma base de datos en tres niveles de abstracción, de forma que cada uno pueda cambiar sin arrastrar a los demás.

NivelQué describeCon qué se corresponde
ExternoLo que ve cada grupo de usuarios, cada uno su porciónLas vistas
ConceptualLa descripción completa y única de los datos de la organizaciónLas tablas y sus relaciones
InternoCómo se almacena de verdad sobre el soporteFicheros, índices, bloques y detalles de infraestructura

El valor de la arquitectura está en las dos independencias que hace posibles. La independencia física significa que se puede cambiar el nivel interno (añadir un índice, mover un fichero, reorganizar el almacenamiento) sin tocar el nivel conceptual ni las aplicaciones. La independencia lógica significa que se puede cambiar el nivel conceptual (añadir un atributo, dividir una tabla) sin tocar las vistas que ya usan las aplicaciones existentes.

La independencia lógica es notablemente más difícil de conseguir que la física, porque una vista no siempre puede seguir ofreciendo lo mismo cuando el esquema que hay debajo cambia de forma. Ese detalle es una pregunta de examen frecuente.

Tres niveles: externo (vistas), conceptual (tablas) e interno (almacenamiento). El sistema aguanta mejor los cambios porque los niveles están desacoplados.

Para el examen

  • Nivel externo: las vistas de cada usuario

  • Nivel conceptual: las tablas

  • Nivel interno: el almacenamiento físico

  • Independencia física: cambiar el nivel interno sin tocar el resto: crear un índice

  • Independencia lógica: la difícil de conseguir

Los modelos lógicos: jerárquico, en red, relacional y de objetos

El modelo lógico depende del tipo de base de datos, y a lo largo de la historia han existido cuatro grandes familias. Conocerlas sirve para entender por qué ganó el modelo relacional.

  • Jerárquico: los datos se organizan como un árbol, cada registro tiene un único padre. Rápido de recorrer hacia abajo y muy rígido: representar que un dato depende de dos padres obliga a duplicarlo.
  • En red: generaliza el anterior permitiendo que un registro tenga varios padres. Gana flexibilidad y pierde sencillez, porque el programador tiene que navegar explícitamente por los punteros.
  • Relacional: propuesto por Edgar F. Codd. Todo son relaciones (tablas) y los enlaces no son punteros, sino valores que coinciden. Es el modelo dominante y el que se supone en el resto del tema.
  • Orientado a objetos: guarda directamente objetos con su estado y su comportamiento, sin traducir a filas y columnas. Encaja bien con los lenguajes orientados a objetos y nunca llegó a desplazar al relacional.

La ventaja decisiva del modelo relacional para este tema es que el paso desde un diagrama entidad-relación está resuelto: existe un juego de reglas de transformación cerrado y mecánico, que se ve más adelante. Con los otros modelos esa traducción es artesanal.

Para el examen

  • Jerárquico: un solo padre por registro

  • En red: admite varios padres

  • Relacional (Codd): tablas enlazadas por VALORES, no por punteros

  • Orientado a objetos: guarda los objetos directamente

Otros modelos conceptuales además del entidad-relación

El entidad-relación no es el único modelo conceptual, aunque sí el que se pregunta. Conviene reconocer los otros nombres cuando aparecen en una opción de respuesta.

  • Modelo RM/T, de Codd y Date. Es una extensión del modelo relacional que le añade capacidad semántica, es decir, la posibilidad de expresar en el propio modelo cosas como la herencia o la agregación, que el relacional puro no sabe representar.
  • Modelos semánticos. Familia de modelos que persiguen recoger el significado de los datos y no solo su estructura. El entidad-relación extendido pertenece a esta familia.
  • Diagrama de clases de UML. Es el equivalente del entidad-relación dentro del lenguaje unificado de modelado. Donde el E/R dice entidad y relación, UML dice clase y asociación.
  • Métrica versión 3. No es un modelo, es una metodología pública de planificación, desarrollo y mantenimiento de sistemas de información. Aparece aquí porque prescribe qué modelos usar en el análisis y el diseño.

Al diagrama entidad-relación le corresponde, dentro de UML, el diagrama de clases. Confundirlo con el diagrama de objetos o con el de componentes es el fallo típico.

Para el examen

  • Equivalente UML del E/R: el diagrama de clases

  • RM/T: extensión semántica del relacional, de Codd y Date

  • Métrica v3: no es un modelo: es una metodología