Saltar al contenido

SGBD relacionales y de objetos

Qué es un sistema de gestión de bases de datos, de qué componentes se compone por dentro, qué caracteriza al relacional y qué proponen los orientados a objetos.

Qué es un SGBD y qué funciones cumple

Un sistema de gestión de bases de datos es el software que se interpone entre los datos y los programas que los usan: sin él, cada aplicación leería y escribiría sus propios ficheros, con los formatos y los errores de cada una. Sus funciones clásicas son tres, y coinciden con los sublenguajes de SQL: definición (describir la estructura), manipulación (consultar y modificar) y control (seguridad, concurrencia y recuperación).

El gran servicio que presta es la independencia entre los datos y los programas: la estructura se describe una sola vez en el catálogo, y las aplicaciones consultan sin saber cómo se almacena. A eso se suman la reducción de la redundancia, la integridad, el control de la concurrencia, las copias y la recuperación ante fallos.

Para el examen

  • Las tres funciones: definición, manipulación y control

  • Su gran servicio: independencia entre los datos y los programas

  • Qué evita: que cada aplicación gestione sus propios ficheros con su propia redundancia

Los componentes de un SGBD

Por dentro, todos los gestores comparten la misma anatomía: un procesador de consultas que analiza y optimiza las sentencias, un motor de almacenamiento que lee y escribe las páginas del disco, un gestor de transacciones que garantiza el todo-o-nada, un gestor de concurrencia y bloqueos, un gestor de recuperación apoyado en el diario (log) y el catálogo o diccionario de datos, donde el gestor se describe a sí mismo.

Anatomía de un SGBD

Procesador de consultas

  • Analiza la sentencia y el optimizador elige el plan

Motor de almacenamiento

  • Páginas, índices y caché de datos (buffer)

Gestor de transacciones

  • ACID: atomicidad y durabilidad con el diario (log)

Gestor de concurrencia

  • Bloqueos o multiversión para que los usuarios no choquen

Catálogo o diccionario de datos

  • Los metadatos: el gestor descrito en sus propias tablas

El catálogo es la seña de identidad relacional: los metadatos se consultan con el mismo SQL que los datos, tal y como exige la regla 4 de Codd.

Para el examen

  • Procesador de consultas: analiza la sentencia; el optimizador elige el plan de ejecución

  • Gestor de recuperación: se apoya en el diario (log) para deshacer o rehacer tras un fallo

  • Catálogo o diccionario: los metadatos, consultables con el mismo lenguaje que los datos

Qué caracteriza al SGBD relacional

El relacional, formulado por Codd en 1970, organiza todo en tablas enlazadas por valores y se manipula con SQL, un lenguaje declarativo. Sus señas: esquema previo y estricto, integridad declarativa (claves primarias y ajenas, CHECK), transacciones ACID y una teoría matemática detrás, el álgebra relacional. Es el modelo por defecto de la Administración: Oracle, PostgreSQL, MySQL, SQL Server.

Sus costuras aparecen en dos frentes: el desajuste de impedancia con los lenguajes orientados a objetos (la aplicación piensa en objetos y la base en tablas, y de ahí los ORM como Hibernate) y el escalado horizontal, que es el hueco por el que entró NoSQL.

Para el examen

  • Quién y cuándo: Edgar F. Codd, 1970

  • Señas del relacional: tablas enlazadas por valores, esquema estricto, integridad declarativa, ACID y SQL

  • Desajuste de impedancia: objetos en la aplicación frente a tablas en la base; lo puentean los ORM

Los SGBD orientados a objetos

El SGBD orientado a objetos guarda directamente objetos: clases con atributos y métodos, identidad propia (OID) independiente de los valores, herencia y relaciones por referencia en vez de por claves ajenas. Su estándar es el del grupo ODMG, con el lenguaje de consulta OQL, y sus productos históricos (ObjectStore, db4o, y hoy ObjectDB o Realm en el móvil) nunca desplazaron al relacional.

La vía que sí prosperó es la intermedia: el gestor objeto-relacional, un relacional que adopta rasgos de objetos, como tipos definidos por el usuario, herencia entre tablas y métodos. PostgreSQL es el ejemplo canónico y así se define a sí mismo. En el examen, los orientados a objetos caen como concepto: identidad OID, ODMG y OQL son las tres respuestas que hay que reconocer.

RelacionalOrientado a objetos
UnidadLa tupla (fila)El objeto, con OID propio
IdentidadPor el valor de la clave primariaIndependiente de los valores
RelacionesClaves ajenasReferencias entre objetos
LenguajeSQL (estándar ISO)OQL (estándar ODMG)
HerenciaNo la hay entre tablas (salvo objeto-relacional)Nativa, entre clases

Para el examen

  • Identidad en el orientado a objetos: el OID, independiente de los valores del objeto

  • Su estándar y su lenguaje: ODMG y OQL

  • Objeto-relacional: relacional con tipos de usuario y herencia; PostgreSQL es el ejemplo

  • Su realidad de mercado: nicho: el relacional siguió dominando y NoSQL cubrió el escalado

Quién trabaja con el SGBD

Alrededor del gestor conviven cuatro perfiles con papeles distintos: el administrador (DBA), que instala, asegura, respalda y afina; el diseñador, que modela el esquema; el desarrollador, que programa las aplicaciones que lo consultan; y el usuario final, que ni sabe que hay un gestor debajo. El examen pregunta el reparto: diseñar no es administrar, y administrar no es programar.

Para el examen

  • Los cuatro perfiles: administrador, diseñador, desarrollador y usuario final

  • El reparto que se pregunta: diseñar no es administrar, y administrar no es programar