ArangoDB - Modelos de datos y modelado
En este capítulo, nos centraremos en los siguientes temas:
- Interacción con la base de datos
- Modelo de datos
- Recuperación de datos
ArangoDB admite el modelo de datos basado en documentos, así como el modelo de datos basado en gráficos. Primero describamos el modelo de datos basado en documentos.
Los documentos de ArangoDB se parecen mucho al formato JSON. Un documento contiene cero o más atributos y se adjunta un valor a cada atributo. Un valor es de tipo atómico, como un número, booleano o nulo, una cadena literal, o de un tipo de datos compuesto, como un documento / objeto incrustado o una matriz. Las matrices o subobjetos pueden constar de estos tipos de datos, lo que implica que un solo documento puede representar estructuras de datos no triviales.
Además, en la jerarquía, los documentos se organizan en colecciones, que pueden no contener documentos (en teoría) o más de un documento. Se pueden comparar documentos con filas y colecciones con tablas (aquí, las tablas y filas se refieren a las de los sistemas de gestión de bases de datos relacionales - RDBMS).
Pero, en RDBMS, definir columnas es un requisito previo para almacenar registros en una tabla, llamando a estas definiciones esquemas. Sin embargo, como característica novedosa, ArangoDB no tiene esquema; no hay una razón a priori para especificar qué atributos tendrá el documento.
Y a diferencia de RDBMS, cada documento se puede estructurar de una manera completamente diferente a otro documento. Estos documentos se pueden guardar juntos en una sola colección. Prácticamente, pueden existir características comunes entre los documentos de la colección, sin embargo, el sistema de base de datos, es decir, ArangoDB en sí, no lo vincula a una estructura de datos en particular.
Ahora intentaremos entender el [graph data model], que requiere dos tipos de colecciones: la primera son las colecciones de documentos (conocidas como colecciones de vértices en lenguaje teórico de grupos), la segunda son las colecciones de borde. Existe una sutil diferencia entre estos dos tipos. Las colecciones Edge también almacenan documentos, pero se caracterizan por incluir dos atributos únicos,_from y _topara crear relaciones entre documentos. En la práctica, un documento (borde de lectura) vincula dos documentos (vértices de lectura), ambos almacenados en sus respectivas colecciones. Esta arquitectura se deriva del concepto de teoría de grafos de un grafo dirigido y etiquetado, excluyendo los bordes que pueden tener no solo etiquetas, sino que pueden ser un documento completo tipo JSON en sí mismo.
Para calcular datos nuevos, eliminar documentos o manipularlos, se utilizan consultas, que seleccionan o filtran documentos según los criterios dados. Ya sean simples como una "consulta de ejemplo" o tan complejas como "uniones", las consultas se codifican en AQL - ArangoDB Query Language.