Глава 7. Введение

Обзор языка Cypher дан в параграфе 7.1 (“Что такое Cypher?”). Остальная часть этой главы посвящена контексту выполнения операторов Cypher, в частности, управлению транзакциями и правилам использования параметров. За справкой относительно непосредственно языка Cypher обратитесь к другим главам Части III (“Язык запросов Cypher”).

Содержание главы

7.1.1 Введение

Cypher является декларативным графовым языком запросов, который позволяет писать выразительные и эффективные запросы на получение данных из хранилища графов и их изменение. Cypher является относительно простым, но весьма мощным языком. Очень сложные запросы к базе данных могут быть легко выражены посредством Cypher. Это позволяет вам сфокусироваться на предметной области, не тратя время на доступ к базе данных.

Cypher разрабатывался с прицелом на естественный язык запросов, который был бы удобен как разработчикам, так и (что важно) конечным пользователям. Наша главная цель – сделать простые вещи легкими, а сложные - возможными. Структурно Cypher опирается на естественный английский язык и точные иллюстрации, которые помогают сделать запросы самоочевидными. Мы постарались оптимизировать язык с точки зрения чтения, а не записи.

Будучи декларативным языком, Cypher сфокусирован на ясности выражения того, что требуется получить из графа, а не на том, как это сделать. Это отличает его от императивных языков, подобных Java, скриптовых языков типа Gremlin и JRuby Neo4j bindings. Такой подход делает оптимизацию запросов деталью выполнения, а не обременяет этим пользователя и не требует от него обновлять все обходы (графа) только потому, что изменилась физическая структура базы данных (новые индексы и т.д.).

Cypher вдохновлен большим числом различных подходов и построен на устоявшейся практике выразительных запросов. Большинство ключевых слов, подобных WHERE или ORDER BY, заимствованы из SQL. Выражение сопоставления с образцом заимствует подходы из SPARQL . Некоторая семантика коллекций была заимствована из языков типа Haskell и Python.

Предыдущая | Следующая