Обработка с помощью SQL Server и базы данных SQL Azure GraphGraph processing with SQL Server and Azure SQL Database

ОБЛАСТЬ ПРИМЕНЕНИЯ ЭТОЙ СТАТЬИ: даSQL Server (начиная с версии 2017)даБаза данных SQL AzureнетХранилище данных SQL AzureнетParallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL Server (starting with 2017)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

SQL ServerSQL Server предоставляет возможности диаграммы базы данных для моделирования связей многие ко многим. offers graph database capabilities to model many-to-many relationships. Граф связей интегрированы в Transact-SQLTransact-SQL и получать преимущества использования SQL ServerSQL Server как основная база данных системы управления.The graph relationships are integrated into Transact-SQLTransact-SQL and receive the benefits of using SQL ServerSQL Server as the foundational database management system.

Что такое диаграммы базы данныхWhat is a graph database?

Диаграммы базы данных — это совокупность узлов (или вершин) и границ (или связи).A graph database is a collection of nodes (or vertices) and edges (or relationships). Узел представляет сущность (например, человек или организация) и граница представляет связь между двумя узлами, которые он подключается (например для другого подобного места или друзей).A node represents an entity (for example, a person or an organization) and an edge represents a relationship between the two nodes that it connects (for example, likes or friends). Узлы и ребра, может иметь свойства, связанные с ними.Both nodes and edges may have properties associated with them. Ниже приведены некоторые функции, чтобы уникальным диаграммы базы данных.Here are some features that make a graph database unique:

  • Границы или связи — это сущности первого класса в диаграмме базы данных и могут иметь атрибуты или свойства, связанные с ними.Edges or relationships are first class entities in a Graph Database and can have attributes or properties associated with them.
  • Одним краем гибкое можно подключить несколько узлов в диаграмме базы данных.A single edge can flexibly connect multiple nodes in a Graph Database.
  • Легко можно выразить регулярные выражения и запросы навигации мульти-прыжка.You can express pattern matching and multi-hop navigation queries easily.
  • Легко можно выразить транзитивное замыкание и полиморфного запросов.You can express transitive closure and polymorphic queries easily.

Когда следует использовать диаграммы базы данныхWhen to use a graph database

Нет ничего, что можно добиться диаграммы базы данных, которой нельзя сделать с помощью реляционной базы данных.There is nothing a graph database can achieve, which cannot be achieved using a relational database. Тем не менее диаграммы базы данных можно упростить express определенного типа запросов.However, a graph database can make it easier to express certain kind of queries. Кроме того с определенной оптимизации определенных запросов может работать быстрее.Also, with specific optimizations, certain queries may perform better. Решение, чтобы выбрать необходимый сценарий может основываться на следующих факторов:Your decision to choose one over the other can be based on following factors:

  • Ваше приложение имеет иерархических данных.Your application has hierarchical data. Тип данных HierarchyID можно использовать для реализации иерархии, но оно имеет некоторые ограничения.The HierarchyID datatype can be used to implement hierarchies, but it has some limitations. Например он не позволяет хранить несколько родительских элементов для узла.For example, it does not allow you to store multiple parents for a node.
  • Приложение содержит сложные связи многие ко многим; по мере развития приложения добавляются новые связи.Your application has complex many-to-many relationships; as application evolves, new relationships are added.
  • В этом случае необходимо выполнить анализ взаимосвязанных данных и связи.You need to analyze interconnected data and relationships.

График функциям SQL Server 2017 (14.x)SQL Server 2017 (14.x)Graph features introduced in SQL Server 2017 (14.x)SQL Server 2017 (14.x)

Начинаем Добавление расширения graph в SQL Server упрощает хранение и выполнение запросов данных диаграммы.We are starting to add graph extensions to SQL Server, to make storing and querying graph data easier. В первом выпуске добавлены следующие возможности.Following features are introduced in the first release.

Создание графа объектовCreate graph objects

Transact-SQLTransact-SQL расширения позволит пользователям создавать узел или края таблицы. extensions will allow users to create node or edge tables. Узлы и ребра, может иметь свойства, связанные с ними.Both nodes and edges can have properties associated to them. Начиная с узлы и ребра, хранятся в виде таблиц, все операции, которые поддерживаются на реляционных таблицах поддерживаются для узла или края таблицы.Since, nodes and edges are stored as tables, all the operations that are supported on relational tables are supported on node or edge table. Например:Here is an example:

CREATE TABLE Person (ID INTEGER PRIMARY KEY, Name VARCHAR(100), Age INT) AS NODE;
CREATE TABLE friends (StartDate date) AS EDGE;

лицо, друзей, таблицыperson-friends-tables
Узлы и ребра, хранятся в виде таблицыNodes and Edges are stored as tables

Расширения языка запросовQuery language extensions

Новый MATCH предложение вводится для поддержки сопоставления шаблонов и перемещение мульти-прыжка по graph.New MATCH clause is introduced to support pattern matching and multi-hop navigation through the graph. MATCH Функция использует стиль синтаксиса рисунка ASCII сопоставление по шаблону.The MATCH function uses ASCII-art style syntax for pattern matching. Например:For example:

-- Find friends of John
SELECT Person2.Name 
FROM Person Person1, Friends, Person Person2
WHERE MATCH(Person1-(Friends)->Person2)
AND Person1.Name = 'John';

Полностью интегрированная в SQL ServerSQL Server ядраFully integrated in SQL ServerSQL Server Engine

Расширения Graph полностью интегрированы в SQL ServerSQL Server ядра.Graph extensions are fully integrated in SQL ServerSQL Server engine. Мы используем же подсистемы хранилища, метаданных, обработчик запросов, т. д. для хранения и запроса данных диаграммы.We use the same storage engine, metadata, query processor, etc. to store and query graph data. Это позволяет пользователям запрашивать их graph и реляционных данных в одном запросе.This enables users to query across their graph and relational data in a single query. Пользователи также могут выиграть от объединения возможностей диаграммы с другими SQL ServerSQL Server технологии, такие как служб R columnstore высокого уровня ДОСТУПНОСТИ, и т. д. База данных SQL graph также поддерживает все безопасности и соответствия требованиям функции, доступные с SQL ServerSQL Server.Users can also benefit from combining graph capabilities with other SQL ServerSQL Server technologies like columnstore, HA, R services, etc. SQL graph database also supports all the security and compliance features available with SQL ServerSQL Server.

Инструментарий и сообществоTooling and ecosystem

Пользователи могут использовать существующие средства и экосистему, SQL ServerSQL Server предлагает.Users benefit from existing tools and ecosystem that SQL ServerSQL Server offers. Такие средства, как резервное копирование и восстановление, Импорт и экспорт BCP работать без дополнительной настройки.Tools like backup and restore, import and export, BCP just work out of the box. Другие инструменты или службы, такие как службы SSIS, SSRS или PowerBI будет работать с таблицами graph так, как они работают с реляционными таблицами.Other tools or services like SSIS, SSRS or PowerBI will work with graph tables, just the way they work with relational tables.

Следующие шагиNext steps

Чтение диаграммы базы данных SQL — архитектураRead the SQL Graph Database - Architecture