DocumentDB SQL: descripción general
DocumentDB es la plataforma de base de datos de documentos NoSQL más nueva de Microsoft que se ejecuta en Azure. En este tutorial, aprenderemos todo sobre la consulta de documentos utilizando la versión especial de SQL compatible con DocumentDB.
Base de datos de documentos NoSQL
DocumentDB es la base de datos de documentos NoSQL más nueva de Microsoft, sin embargo, cuando decimos base de datos de documentos NoSQL, ¿qué queremos decir exactamente con NoSQL y base de datos de documentos?
SQL significa lenguaje de consulta estructurado, que es un lenguaje de consulta tradicional de bases de datos relacionales. SQL se equipara a menudo con bases de datos relacionales.
Es realmente más útil pensar en una base de datos NoSQL como una base de datos no relacional, por lo que NoSQL realmente significa no relacional.
Hay diferentes tipos de bases de datos NoSQL que incluyen almacenes de valores clave como:
- Almacenamiento de tablas de Azure
- Tiendas basadas en columnas, como Cassandra
- Bases de datos gráficas, como NEO4
- Bases de datos de documentos, como MongoDB y Azure DocumentDB
¿Por qué la sintaxis SQL?
Esto puede sonar extraño al principio, pero en DocumentDB, que es una base de datos NoSQL, consultamos usando SQL. Como se mencionó anteriormente, esta es una versión especial de SQL arraigada en la semántica JSON y JavaScript.
SQL es solo un lenguaje, pero también es un lenguaje muy popular que es rico y expresivo. Por lo tanto, definitivamente parece una buena idea usar algún dialecto de SQL en lugar de crear una forma completamente nueva de expresar consultas que necesitaríamos aprender si quisiera obtener documentos de su base de datos.
SQL está diseñado para bases de datos relacionales y DocumentDB es una base de datos de documentos no relacional. El equipo de DocumentDB ha adaptado la sintaxis SQL para el mundo no relacional de las bases de datos de documentos, y esto es lo que se entiende por rootear SQL en JSON y JavaScript.
El lenguaje todavía se lee como SQL familiar, pero la semántica se basa en documentos JSON sin esquema en lugar de tablas relacionales. En DocumentDB, trabajaremos con tipos de datos JavaScript en lugar de tipos de datos SQL. Estaremos familiarizados con SELECT, FROM, WHERE, etc., pero con los tipos de JavaScript, que se limitan a números y cadenas, objetos, matrices, booleanos y nulos son mucho menos que la amplia gama de tipos de datos SQL.
De manera similar, las expresiones se evalúan como expresiones de JavaScript en lugar de alguna forma de T-SQL. Por ejemplo, en un mundo de datos desnormalizados, no se trata de filas y columnas, sino de documentos sin esquema con estructuras jerárquicas que contienen matrices y objetos anidados.
¿Cómo funciona SQL?
El equipo de DocumentDB ha respondido a esta pregunta de varias formas innovadoras. Algunos de ellos se enumeran a continuación:
Primero, asumiendo que no ha cambiado el comportamiento predeterminado para indexar automáticamente todas las propiedades en un documento, puede usar la notación con puntos en sus consultas para navegar por una ruta a cualquier propiedad sin importar cuán profundamente anidada pueda estar dentro del documento.
También puede realizar una unión dentro del documento en la que los elementos de matriz anidados se unen con su elemento principal dentro de un documento de una manera muy similar a la forma en que se realiza una unión entre dos tablas en el mundo relacional.
Sus consultas pueden devolver documentos de la base de datos tal como están, o puede proyectar cualquier forma JSON personalizada que desee en función de la mayor o menor cantidad de datos del documento que desee.
SQL en DocumentDB admite muchos de los operadores comunes, incluidos:
Operaciones aritméticas y bit a bit
Lógica Y y O
Comparaciones de igualdad y rango
Concatenación de cadenas
El lenguaje de consulta también admite una gran cantidad de funciones integradas.