DocumentDB SQL - Visão geral
DocumentDB é a plataforma de banco de dados de documentos NoSQL mais recente da Microsoft que é executada no Azure. Neste tutorial, aprenderemos tudo sobre como consultar documentos usando a versão especial do SQL suportada pelo DocumentDB.
Banco de dados de documentos NoSQL
DocumentDB é o mais novo banco de dados de documentos NoSQL da Microsoft, no entanto, quando dizemos banco de dados de documentos NoSQL, o que exatamente queremos dizer com NoSQL e banco de dados de documentos?
SQL significa Structured Query Language, que é uma linguagem de consulta tradicional de bancos de dados relacionais. SQL é freqüentemente equiparado a bancos de dados relacionais.
É realmente mais útil pensar em um banco de dados NoSQL como um banco de dados não relacional, então NoSQL realmente significa não relacional.
Existem diferentes tipos de bancos de dados NoSQL que incluem armazenamentos de valores-chave, como -
- Armazenamento de Tabela Azure
- Lojas baseadas em colunas, como Cassandra
- Bancos de dados gráficos, como NEO4
- Bancos de dados de documentos, como MongoDB e Azure DocumentDB
Por que Sintaxe SQL?
Isso pode parecer estranho à primeira vista, mas no DocumentDB, que é um banco de dados NoSQL, fazemos consultas usando SQL. Conforme mencionado acima, esta é uma versão especial do SQL com base na semântica JSON e JavaScript.
SQL é apenas uma linguagem, mas também é uma linguagem muito popular, rica e expressiva. Portanto, definitivamente parece uma boa ideia usar algum dialeto do SQL em vez de criar uma maneira totalmente nova de expressar consultas que precisaríamos aprender se você quisesse retirar documentos de seu banco de dados.
O SQL foi projetado para bancos de dados relacionais e o Banco de Dados de Documentos é um banco de dados de documentos não relacional. A equipe do DocumentDB, na verdade, adaptou a sintaxe SQL para o mundo não relacional dos bancos de dados de documentos, e é isso que significa fazer o root de SQL em JSON e JavaScript.
A linguagem ainda é conhecida como SQL, mas a semântica é toda baseada em documentos JSON sem esquemas, em vez de tabelas relacionais. No Banco de Dados de Documentos, trabalharemos com tipos de dados JavaScript em vez de tipos de dados SQL. Estaremos familiarizados com SELECT, FROM, WHERE e assim por diante, mas com os tipos JavaScript, que são limitados a números e strings, objetos, arrays, Boolean e null são muito menos do que a ampla variedade de tipos de dados SQL.
Da mesma forma, as expressões são avaliadas como expressões JavaScript em vez de alguma forma de T-SQL. Por exemplo, em um mundo de dados desnormalizados, não estamos lidando com as linhas e colunas, mas documentos sem esquema com estruturas hierárquicas que contêm matrizes e objetos aninhados.
Como funciona o SQL?
A equipe do DocumentDB respondeu a essa pergunta de várias maneiras inovadoras. Poucos deles estão listados a seguir -
Primeiro, supondo que você não alterou o comportamento padrão para indexar automaticamente todas as propriedades em um documento, você pode usar a notação pontilhada em suas consultas para navegar por um caminho para qualquer propriedade, não importa o quão profundamente aninhada ela possa estar dentro do documento.
Você também pode realizar uma junção intra-documento na qual elementos de matriz aninhados são juntados com seu elemento pai em um documento de uma maneira muito semelhante à forma como uma junção é realizada entre duas tabelas no mundo relacional.
Suas consultas podem retornar documentos do banco de dados como estão, ou você pode projetar qualquer formato JSON customizado que desejar com base nos dados de documento que desejar.
O SQL em DocumentDB suporta muitos dos operadores comuns, incluindo -
Operações aritméticas e bit a bit
Lógica AND e OR
Comparações de igualdade e alcance
Concatenação de string
A linguagem de consulta também oferece suporte a uma série de funções integradas.