DocumentDB — это новейшая платформа Microsoft NoSQL для базы данных документов, которая работает на Azure. В этом руководстве мы узнаем все о запросах документов с использованием специальной версии SQL, поддерживаемой DocumentDB.
NoSQL Document Database
DocumentDB является новейшей базой документов Microsoft NoSQL, однако, когда мы говорим о базе данных документов NoSQL, что именно мы подразумеваем под NoSQL, и базой данных документов?
-
SQL означает язык структурированных запросов, который является традиционным языком запросов для реляционных баз данных. SQL часто приравнивают к реляционным базам данных.
-
Действительно, более полезно думать о базе данных NoSQL как о нереляционной базе данных, поэтому NoSQL действительно означает нереляционную.
SQL означает язык структурированных запросов, который является традиционным языком запросов для реляционных баз данных. SQL часто приравнивают к реляционным базам данных.
Действительно, более полезно думать о базе данных NoSQL как о нереляционной базе данных, поэтому NoSQL действительно означает нереляционную.
Существуют различные типы баз данных NoSQL, которые включают хранилища значений ключей, такие как —
- Azure Table Storage
- Основанные на колонках магазины, такие как Кассандра
- Графовые базы данных, такие как NEO4
- Базы данных документов, такие как MongoDB и Azure DocumentDB
Почему синтаксис SQL?
Поначалу это может звучать странно, но в DocumentDB, которая является базой данных NoSQL, мы выполняем запросы с использованием SQL. Как упоминалось выше, это специальная версия SQL, основанная на семантике JSON и JavaScript.
-
SQL — это просто язык, но он также очень популярен, он богат и выразителен. Таким образом, определенно представляется хорошей идеей использовать некоторый диалект SQL, а не придумывать совершенно новый способ выражения запросов, который нам необходимо изучить, если вы хотите получить документы из своей базы данных.
-
SQL предназначен для реляционных баз данных, а DocumentDB является нереляционной базой документов. Команда DocumentDB фактически адаптировала синтаксис SQL для нереляционного мира баз данных документов, и это то, что подразумевается под внедрением SQL в JSON и JavaScript.
-
Язык по-прежнему читается как знакомый SQL, но все семантика основана на документах JSON без схемы, а не на реляционных таблицах. В DocumentDB мы будем работать с типами данных JavaScript, а не с типами данных SQL. Мы будем знакомы с SELECT, FROM, WHERE и т. Д., Но с типами JavaScript, которые ограничены числами и строками, объекты, массивы, логические и нулевые значения намного меньше, чем широкий диапазон типов данных SQL.
-
Точно так же выражения оцениваются как выражения JavaScript, а не как форма T-SQL. Например, в мире денормализованных данных мы имеем дело не со строками и столбцами, а с документами без схемы с иерархическими структурами, которые содержат вложенные массивы и объекты.
SQL — это просто язык, но он также очень популярен, он богат и выразителен. Таким образом, определенно представляется хорошей идеей использовать некоторый диалект SQL, а не придумывать совершенно новый способ выражения запросов, который нам необходимо изучить, если вы хотите получить документы из своей базы данных.
SQL предназначен для реляционных баз данных, а DocumentDB является нереляционной базой документов. Команда DocumentDB фактически адаптировала синтаксис SQL для нереляционного мира баз данных документов, и это то, что подразумевается под внедрением SQL в JSON и JavaScript.
Язык по-прежнему читается как знакомый SQL, но все семантика основана на документах JSON без схемы, а не на реляционных таблицах. В DocumentDB мы будем работать с типами данных JavaScript, а не с типами данных SQL. Мы будем знакомы с SELECT, FROM, WHERE и т. Д., Но с типами JavaScript, которые ограничены числами и строками, объекты, массивы, логические и нулевые значения намного меньше, чем широкий диапазон типов данных SQL.
Точно так же выражения оцениваются как выражения JavaScript, а не как форма T-SQL. Например, в мире денормализованных данных мы имеем дело не со строками и столбцами, а с документами без схемы с иерархическими структурами, которые содержат вложенные массивы и объекты.
Как работает SQL?
Команда DocumentDB ответила на этот вопрос несколькими инновационными способами. Немногие из них перечислены ниже:
Во-первых, предполагая, что вы не изменили поведение по умолчанию для автоматической индексации каждого свойства в документе, вы можете использовать пунктирную нотацию в своих запросах, чтобы найти путь к любому свойству, независимо от того, насколько глубоко оно вложено в документ.
Вы также можете выполнить соединение внутри документа, в котором вложенные элементы массива соединяются со своим родительским элементом в документе способом, очень похожим на способ, которым выполняется соединение между двумя таблицами в реляционном мире.
Ваши запросы могут возвращать документы из базы данных в том виде, в каком они есть, или вы можете проецировать любую произвольную фигуру JSON по своему усмотрению, основываясь на том количестве данных документа, которое вам нужно.
SQL в DocumentDB поддерживает многие из общих операторов, в том числе —
Арифметические и побитовые операции
И и ИЛИ логика
Равенство и диапазон сравнения
Конкатенация строк
Язык запросов также поддерживает множество встроенных функций.