Existen dos tipos principales de bases de datos: las computacionales y las de consulta. A modo de ejemplo:
El año pasado (2020), Tellusant recibió la visita de un informático. Entre otras cosas, le enseñamos algunas de nuestras bases de datos. Se quedó maravillado y dijo: "esto es una pasada, ¡creo que nunca había visto bases de datos computacionales!".
Le preguntamos a qué se refería. "Las bases de datos se utilizan para hacer consultas. Se cortan los datos para encontrar lo que se busca. Se añaden cálculos complejos a las consultas. Nunca había visto esto tan minuciosamente aplicado".
En 2007, uno de nuestros directores tuvo una reacción similar por parte de un desarrollador al que se le encargó el desarrollo de la base de datos C-GIDD.* Fracasó y se disculpó: "Ni yo ni mi equipo hemos trabajado nunca con cálculos tan extensos dentro de las consultas. No es así como deben utilizarse las bases de datos".
¿Cuál es la diferencia entre bases de datos computacionales y de consulta? La siguiente tabla ofrece una definición de alto nivel.
Empecemos por las bases de datos de consulta más habituales. La ciencia y las matemáticas que las sustentan son bien conocidas y las consultas son, dada la complejidad de su elaboración, asombrosamente rápidas. Pensemos en una búsqueda en Google.
En su forma más pura, una base de datos de consulta selecciona un subconjunto de los datos de la base basándose en una consulta de un usuario (humano o no). Nos encontramos con este tipo de bases de datos muchas veces al día.
Pueden tener algunos cálculos no triviales realizados después de la consulta, pero este no es el objetivo principal.
En su forma más pura, en una base de datos computacional no hay consultas. Se computa sobre todo el conjunto de datos. En la práctica, sin embargo, están dominadas por los cálculos, pero las consultas también desempeñan un papel importante.
¿Por qué no separar las dos tareas lógicas? Empezar con la consulta y luego hacer el cálculo. A menudo es posible, pero no siempre. Para las necesidades de Tellusant, esta separación no suele ser posible.
Esto se debe a que nuestros modelos dependen de cálculos sobre los datos consultados y los no consultados simultáneamente. Y tienen que realizar esos cálculos con rapidez, para que los usuarios no se sientan frustrados.
Estimamos que más del 90% de las bases de datos están orientadas a la consulta, pero las bases de datos computacionales están creciendo. Este crecimiento se debe a que los modelos son cada vez más complejos y a que la prestación de servicios de consulta se está comoditizando.
Este crecimiento es especialmente el caso de procesos cognitivos de orden superior dentro de las empresas globales, especialmente aquellos procesos que deben actualizarse con frecuencia. Hacer que estos procesos sean más eficaces y precisos es exactamente la misión de Tellusant.
La tabla siguiente muestra algunos usos computacionales y de consulta de bases de datos.
Los ejemplos demuestran que las bases de datos informáticas son más importantes cuando los datos son dinámicos, y Las variables dependen unas de otras. También son ventajosas cuando la consulta de un usuario es "libre" y requiere importantes cálculos posteriores a la consulta. Es decir, no se pueden tener tablas precalculadas, ya que la base de datos no sabe lo que quiere el usuario.
Nuestra experiencia es que las bases de datos computacionales se benefician del alojamiento en la nube y que las herramientas de desarrollo estándar manejan bien los cálculos (en nuestro caso, principalmente código Python aplicado a una base de datos PostgreSQL de MS Azure (también realizamos consultas en Python).
A medida que construyamos nuestra plataforma SaaS, este enfoque será crucial para nosotros.
- - -
* Adquirida en 2015 por The Economist Group.