17. Query
2018/06/28
Neo4J graph db vs rdbms より
• SQL
SELECT name FROM Person
LEFT JOIN Person_Department
ON Person.Id = Person_Department.PersonId
LEFT JOIN Department
ON Department.Id = Person_Department.DepartmentId
WHERE Department.name = "IT Department"
20. Graph processing with SQLServer2017
2018/06/28
CREATE TABLE Person (ID INTEGER PRIMARY KEY, Name
VARCHAR(100), Age INT) AS NODE;
CREATE TABLE friends (StartDate date) AS EDGE;
SQL Server と Azure SQL Database を使用した処理グラフより
21. Query
2018/06/28
SQL Server と Azure SQL Database を使用した処理グラフより
-- Find friends of John
SELECT Person2.Name
FROM Person Person1, Friends, Person Person2
WHERE MATCH(Person1-(Friends)->Person2)
AND Person1.Name = 'John’;
※MATCHパターンで NOT や OR はサポートされていません。
ので Recommend クエリ等は Cypher に比べて少し複雑になり
ます。
23. おしまい
2018/06/28
引用・参考
• データベースの理論とその発展
• (論文) A Relational Model of Data for Large Shared Data Banks
• (英wiki) Graph database
• (MS) Azure Cosmos DB の概要: Graph API
• (wiki) 関係の正規化
• (MS) データベースの正規化の基礎
• (Neo4j) From Relational to Neo4j
• (AWS) Amazon Neptune
• (MS) SQL Server と Azure SQL Database を使用した処理グラフ
• (MS) Graph extensions in Microsoft SQL Server 2017 and Azure
SQL Database
• (MS) MATCH (Transact-SQL)
• (MS) SQL Graph のアーキテクチャ
• (wiki) パナマ文書
• 「パナマ文書」解析の技術的側面
• Analyzing the Panama Papers with Neo4j: Data Models, Queries &
More