Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Graph DB のユニークさについて考えてみた

627 views

Published on

PGX ユーザーグループ グラフ・データベース完全入門! LT

Published in: Software
  • Login to see the comments

Graph DB のユニークさについて考えてみた

  1. 1. ULS Copyright © 2011-2018 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by PGX ユーザーグループ グラフ・データベース完全入門! LT Graph DB のユニークさについて考えてみた 2018/12/01
  2. 2. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 1 自己紹介 – 名前: 田上 悠樹 – 職業: ITエンジニア – 所属: ウルシステムズ株式会社 – 活動: PGX ユーザーグループでのLTなど
  3. 3. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 2 各Databaseの魅力 堅牢な構造 / 多機能・高機能 直感的な構造 / クールなクエリ 柔軟な構造 / 圧倒的な非機能性能 ー RDB ー ー No SQL DB ー ー Graph DB ー
  4. 4. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 3 ― こういった特徴差は、どこから来るのか考えてみた ―  データ構造の視点  データ検索の視点 Question
  5. 5. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 4 データ構造に対するアプローチ Table, Bucket, Collection など呼び方は色々あるが、基本的に 1種類の構造物からなる。 リソースやイベントを保持するNode と その関係性を保持するEdge の 2種類の構造物からなる。 Table 1 Table 2 Table 3 Node 1 Node 3 Node 2 Node 4 Edge 1 Edge 2 Edge 3 ー RDB / No SQL DB ー ー Graph DB ー ※ FKは、構造物というより制約と捉えた。
  6. 6. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 5 データ構造の表現の差 – 部署と 従業員の関係性の表現方法(兼務ありのケース) 従業員 従業員番号 氏名 部署 部署コード 部署名 所属 部署コード 従業員番号 所属期間 From 所属期間 To 1 * * 1 人事部 総務部 A さん C さん B さん 所属: XX年Y月 ~ XX年Y月 所属: XX年Y月 ~ XX年Y月 所属: XX年Y月 ~ XX年Y月 RDBの場合: Graph DBの場合: 本来、関係性の役割を果たすデータも Table として表現せざるを得ないので人工的な表現。 Edgeが関係性の役割を 果たすことで、直接的に 繋がりを表現できる。 構造物が2つあることで 表現の幅が広がる。
  7. 7. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 6 データ検索に対するアプローチ Graph DBは、Database が従来果たしてきた『抽出』、『集計』という検索機能に 加えて、『辿る(トラバース)』 という新しい検索の切り口を与えてくれた。 ある集合の中から特定の条件を 満たす要素を抽出したり、集計 すること。 ある要素を起点に特定の条件を 満たす要素を辿ること。 ー RDB / No SQL DB ー ー Graph DB ー SELCT 要素 FROM 集合 MATCH (要素) -> (要素) -> (要素)
  8. 8. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 7 データを辿るということ - ネットワークを辿る - - 階層を辿る - - 好みを辿る - [購入] [購入] [購入] [購入] [購入] [購入] [購入] 本人 (商品) [友人] [友人] [友人] [友人] [友人] [友人] 上長を辿る 部品構成を辿る [構成] [構成] [構成] (部品) (部品) (部品) (部品) [構成] (商品) (商品) (人物) (人物) (人物) (ユーザー) (ユーザー)
  9. 9. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 8 データを辿るときの主役 – MATCH 句  従来のFROM句と異なり、データのアクセス先を可変的に指示できる。  同じLabelに対しても再帰的に辿れる。 N 対 Nのリレーションも辿れる。 – Edge  Edgeを介して、データの繋がりを 直接的かつ “流ちょう” に記述できる。  逆にNodeがたくさんあっても、Edgeがないと辿れない。。Edgeの存在が重要。 (※ その点 RDBの JOINはデータさえ投入すれば、すぐにJOINできる手軽さは素晴らしい。) MATCH句に従いデータの荒野を 駆け巡るイメージ FROM句にある巨大なデータの集塊を ろ過するイメージ FROM table1 JOIN table2 ON xxxxx JOIN table3 ON xxxxx アクセス先を最初に固定する MATCH (node1) –[2..5]-> (node2), (node2) –[1..*]-> (node3) 可変的なアクセスが可能
  10. 10. ULS Copyright © 2011-2017 UL Systems, Inc. All rights reserved. Proprietary & Confidential Powered by 9 まとめ – データ構造の視点  Node(リソース)とEdge(関係性)の2種類の構造物があることで、表現の幅が広がる。 (※ 反面、Nodeにすべきか Edgeにすべきか 新しい悩みが発生することも… ) – データ検索の視点  Graph DBは、データを『辿る』という新しい検索の切り口を与えてくれた。  Match句の可変的なアクセスや Edgeの存在が、流ちょうなクエリ記述と合う。 Graph DBで、データが『連鎖』していく感覚が味わえると楽しい ♪

×