Métodos - Gestión eficaz de los datos
Introducción
Existe una amplia gama de motores de bases de datos que permiten almacenar y luego acceder a los datos («serializar» los datos) y que pueden utilizarse cuando se considera útil ir más allá de los archivos «planos», como los archivos .csv. Cierto número de bases de datos respetan restricciones muy estrictas para garantizar la coherencia de los datos y son accesibles a través de diversos dialectos, el más conocido de los cuales es SQL (Structured Query Language). Otras prescinden de algunas de estas restricciones para ganar en rendimiento y en capacidad de integrar información poco o nada estructurada (texto, imágenes, vídeos, música, etc.).
Puede familiarizarse fácilmente con el manejo de varias bases de datos instalando localmente una herramienta genérica de acceso a bases de datos como DBeaver.
En Windows, que, naturalmente, no dispone de una gestión de paquetes tan eficaz como Linux, puede instalar un gran número de paquetes de software de forma sencilla y reversible utilizando la herramienta chocolatey. Con esta herramienta, DBeaver se instala con una sola línea de comandos a través del terminal de Windows: choco install dbeaver.
Veamos ahora los principales conceptos utilizados para calificar las estructuras más internas de sus bases de datos.
Los conceptos CRUD, 3NF, ACID, OLTP (¡y no OLAP!)
1. CRUD
CRUD representa las cuatro operaciones básicas de gestión de la persistencia de datos en una base de datos:
-
Create: crear;
-
Read: leer;
-
Update: actualizar;
-
Delete: suprimir.
En las arquitecturas decisionales (BI), se evitan las operaciones Update y Delete. En su lugar, los registros se duplican añadiéndoles índices de marca de tiempo en forma de fecha/hora/min/segundo (una timestamp que típicamente se expresa en el formato de fecha estándar POSIX) que estipula su fecha de creación y, si es necesario, añadiendo un registro específico con su timestamp para indicar que los registros con el mismo índice ya no son válidos. De este modo, se conserva la trazabilidad completa de los cambios en el sistema de información y se puede combinar con seguridad varias tablas del mismo tipo extraídas de sistemas transaccionales en fechas diferentes, eliminando los duplicados. La base de datos HBase de Hadoop es muy eficaz en este tipo de contexto de actualización incremental del data lake.
2. Formas normales (limitación al nivel 3NF)
a. Relaciones (asociaciones)
Antes de explorar el concepto de forma normal, cabe señalar que una tabla siempre representa una relación entre los atributos descritos en sus columnas.
En una relación (asociación) bien construida, se dispone del nombre de la relación, representado por el nombre de la tabla en la representación relacional, el determinante de la relación (una lista coherente de atributos que identifican el sujeto de la relación) y el determinado de la relación (una lista coherente de atributos que identifican el objeto de la relación).
Pueden encontrarse conceptos similares en otros contextos de representación y almacenamiento de información:
-
Las relaciones/asociaciones remiten a la noción de predicado en la web semántica y en la representación del conocimiento (knowkledge), a menudo almacenado en tripletas RDF (Resource Description Framework).
-
Las relaciones también corresponden a enlaces (aristas) entre nodos (vértices) en representaciones gráficas, a veces guardadas en bases de datos gráficas...
Conceptos relacionados con las bases de datos de la BI y el BigData
La BI (Business Intelligence) es en realidad un término de marketing que engloba las técnicas de reporting, interactivas o no. A veces se denomina analytics o «decisorio» para subrayar el hecho de que las buenas estadísticas e informes conducen a buenas decisiones.
Los almacenes de datos (data warehouse) solían ser el núcleo de las arquitecturas de BI. Desde que los volúmenes de datos se han disparado, estos almacenes de datos estructurados y centralizados han tenido que complementarse con clústeres masivos de datos paralelos a través de numerosos nodes. Cuando estos datos se recopilan sin conocer su uso futuro, a menudo se almacenan de una forma un tanto genérica que se denomina datalake.
Mientras tanto, la llegada del Machine Learning, una rama de la inteligencia artificial que puede hacer inferencias (previsiones) a partir de datos masivos o encontrar similitudes entre datos (clustering), ha hecho más complejas las arquitecturas.
Esta aceleración continúa en la actualidad, ya que los modelos actuales evolucionan rápidamente en términos de consumo de energía y recursos, como demuestra el auge de las redes neuronales profundas (deep learning).
Por último, la IA generativa, como ChatGPT, completa ahora el panorama, aunque ha tenido poca influencia en la arquitectura técnica subyacente a nuestros sistemas de información (¡hasta la fecha!).
Cuando los datos proceden de sistemas relacionales, nos gusta agregarlos de forma potente y centralizada mediante data warehouses bien depurados y estructurados, que solo tratan datos que contienen una gran proporción de datos numéricos, y que reciben el atractivo nombre de «hipercubo OLAP».
1. OLAP
No hay que confundir OLTP con OLAP. Esta confusión se debe al hecho de que algunas arquitecturas de almacenamiento muy modernas gestionan ambos igual de bien (como las máquinas Exadata de Oracle). Para que conste, OLAP (Online Analytic Processing) es un tipo de presentación de datos en forma de hipercubo, muy utilizado en Business Intelligence.
Cada celda del hipercubo contiene un dato elemental indexado por todas las dimensiones del hipercubo, un poco como un array en el paquete Numpy, muy utilizado en Python, o un array en el lenguaje...