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.
| Relacional | Orientado a objetos | |
|---|---|---|
| Unidad | La tupla (fila) | El objeto, con OID propio |
| Identidad | Por el valor de la clave primaria | Independiente de los valores |
| Relaciones | Claves ajenas | Referencias entre objetos |
| Lenguaje | SQL (estándar ISO) | OQL (estándar ODMG) |
| Herencia | No 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