Una base de datos de correlación es un sistema de administración de bases de datos (DBMS) que es independiente del modelo de datos y está diseñado para manejar de manera eficiente consultas ad hoc no planificadas en un entorno de sistema analítico.
A diferencia de los sistemas de gestión de bases de datos relacionales orientados a filas , que utilizan un enfoque de almacenamiento basado en registros, o las bases de datos orientadas a columnas que utilizan un método de almacenamiento basado en columnas, una base de datos de correlación utiliza una arquitectura de almacenamiento basada en valores (VBS) en la que cada dato único El valor se almacena solo una vez y un sistema de indexación generado automáticamente mantiene el contexto para todos los valores. [1]
Estructura
Debido a que un DBMS de correlación almacena cada valor de datos único solo una vez, el tamaño de la base de datos física es significativamente menor que el de las bases de datos relacionales u orientadas a columnas, sin el uso de técnicas de compresión de datos . Por encima de aproximadamente 30 GB, un DBMS de correlación puede volverse más pequeño que el conjunto de datos sin procesar. [ cita requerida ]
El modelo VBS utilizado por un CDBMS consta de tres conjuntos físicos principales de objetos que se almacenan y administran:
- un diccionario de datos ( metadatos );
- un conjunto de datos de indexación y vinculación (metadatos adicionales); y
- los valores de datos reales que comprenden la información almacenada.
En el modelo VBS, cada valor único en los datos brutos se almacena solo una vez; por lo tanto, los datos siempre se normalizan al nivel de valores únicos. [2] Esto elimina la necesidad de normalizar conjuntos de datos en el esquema lógico.
Los valores de datos se almacenan juntos en conjuntos ordenados basados en tipos de datos: todos los números enteros en un conjunto, caracteres en otro, etc. Esto optimiza los procesos de manejo de datos que acceden a los valores.
Además de los valores de datos típicos, el almacén de valores de datos contiene un tipo especial de datos para almacenar relaciones entre tablas. Esto funciona de manera similar a las claves externas en las estructuras RDBMS, pero con un CDBMS, la relación es conocida por el diccionario y almacenada como un valor de datos, lo que hace que la navegación entre tablas sea completamente automática.
El diccionario de datos contiene metadatos típicos más datos estadísticos adicionales sobre las tablas, columnas y ocurrencias de valores en el esquema lógico . También mantiene información sobre las relaciones entre las tablas lógicas. El almacenamiento de índice y enlace incluye todos los datos utilizados para localizar el contenido de un registro a partir de los valores ordenados en el almacén de datos.
Si bien no es un sistema de almacenamiento basado en RAM , un CDBMS está diseñado para usar tanta RAM como el sistema operativo pueda proporcionar. Para bases de datos grandes, la RAM adicional mejora el rendimiento. Generalmente, 4 GB de RAM proporcionarán tiempos de acceso optimizados hasta alrededor de 100 millones de registros. 8 GB de RAM son adecuados para bases de datos de hasta 10 veces ese tamaño. [3] Debido a que la RAM incremental consumida disminuye a medida que crece la base de datos, 16 GB de RAM generalmente admitirán bases de datos que contengan hasta aproximadamente 20 mil millones de registros.
Comparación de estructuras de almacenamiento DBMS
Los registros de muestra que se muestran a continuación ilustran las diferencias físicas en las estructuras de almacenamiento utilizadas en las bases de datos relacionales, orientadas a columnas y de correlación.
ID de cliente | Nombre | Ciudad | Expresar |
---|---|---|---|
12222 | ABC Corp | Minneapolis | Minnesota |
19434 | A1 Mfg | Duluth | Minnesota |
20523 | J&J Inc | San Pablo | Minnesota |
Almacenamiento en RDBMS
La estructura basada en registros utilizada en un RDBMS almacena elementos en la misma fila adyacentes entre sí. Las variaciones como la indexación agrupada pueden cambiar la secuencia de las filas, pero todas las filas, columnas y valores se almacenarán como en la tabla. La tabla anterior se puede almacenar como:
12222, ABC Corp, Minneapolis, MN; 19434, A1 Mfg, Duluth, MN; 20523, J & J Inc, St. Paul, MN
Almacenamiento en bases de datos orientadas a columnas
En la estructura basada en columnas, los elementos de la misma columna se almacenan adyacentes entre sí. Los duplicados consecutivos dentro de una sola columna pueden eliminarse automáticamente o comprimirse de manera eficiente.
12222,19434,20523; ABC Corp, A1 Mfg, J & J Inc; Minneapolis, Duluth, St. Paul; MN, MN, MN
Almacenamiento en CDBMS
En la estructura VBS utilizada en un CDBMS, cada valor único se almacena una vez y se le asigna un identificador abstracto (numérico), independientemente del número de ocurrencias o ubicaciones en el conjunto de datos original. Luego, el conjunto de datos original se construye haciendo referencia a esos identificadores lógicos. El índice de correlación puede parecerse al almacenamiento siguiente. Tenga en cuenta que el valor "MN" que aparece varias veces en los datos anteriores solo se incluye una vez. A medida que aumenta la cantidad de datos repetidos, este beneficio se multiplica.
1: 12222,2: 19434,3: 20523,4: ABC Corp, 5: A1 Mfg, 6: J&J Inc, 7: Minneapolis, 8: Duluth, 9: St. Paul, 10: MN
Los registros en nuestra tabla de ejemplo anterior se pueden expresar como:
11: [1,4,7,10], 12: [2,5,8,10], 13: [3,6,9,10]
Este proceso de correlación es una forma de normalización de la base de datos . Así como se pueden lograr algunos beneficios del almacenamiento orientado a columnas dentro de un RDBMS, también se pueden lograr algunos beneficios de la base de datos de correlación a través de la normalización de la base de datos. Sin embargo, en un RDBMS tradicional, este proceso de normalización requiere trabajo en forma de configuración de tablas, procedimientos almacenados y declaraciones SQL. Decimos que una base de datos es una base de datos de correlación cuando expresa naturalmente un esquema completamente normalizado sin esta configuración adicional. Como resultado, una base de datos de correlación puede tener optimizaciones más enfocadas para esta estructura completamente normalizada.
Este proceso de correlación es similar a lo que ocurre en un índice invertido orientado a la búsqueda de texto .
Ventajas y desventajas
Para aplicaciones de almacenamiento de datos analíticos , un CDBMS tiene varias ventajas sobre estructuras de bases de datos alternativas. Primero, debido a que el motor de la base de datos indexa todos los datos y genera automáticamente su propio esquema sobre la marcha mientras se carga, se puede implementar rápidamente y es fácil de actualizar. No hay necesidad de un diseño previo físico ni de reestructurar la base de datos. En segundo lugar, un CDBMS permite la creación y ejecución de consultas complejas, como consultas asociativas ("mostrar todo lo que está relacionado con x ") que son difíciles, si no imposibles, de modelar en SQL . La principal ventaja del CDBMS es que está optimizado para ejecutar consultas ad hoc, consultas no previstas durante la fase de diseño del almacén de datos. [4]
Un CDBMS tiene dos inconvenientes en comparación con las alternativas de bases de datos. A diferencia de las bases de datos relacionales, que se pueden utilizar en una amplia variedad de aplicaciones, una base de datos de correlación está diseñada específicamente para aplicaciones analíticas y no proporciona funciones de gestión de transacciones; no se puede utilizar para el procesamiento transaccional . En segundo lugar, debido a que indexa todos los datos durante el proceso de carga, la velocidad de carga física de un CDBMS es más lenta que las estructuras relacionales u orientadas a columnas. Sin embargo, debido a que elimina la necesidad de un diseño previo lógico o físico, el "tiempo de uso" general de un CDBMS es generalmente similar o algo más rápido que las estructuras alternativas.
Referencias
- ^ Raab, David M. "Opciones de base de datos analítica" . Revista Information Management 1 de julio de 2008.
- ^ Raden, Neil. "Bases de datos VIVAS" . Intelligent Enterprise 18 de abril de 2008.
- ^ Powell, James E. "La base de datos de correlación de Illuminate acelera, expande las consultas de BI" . Enterprise Systems Journal, 9 de abril de 2008.
- ^ Swoyer, Steven. "En profundidad: cerrar la brecha de rendimiento de consultas ad hoc para siempre" . Enterprise Systems Journal, 9 de julio de 2008.