グラフデータベース
――Neo4jによるグラフデータモデルとグラフデータベース入門

[cover photo]
  • 2015年03月 発行
  • 236ページ
  • ISBN978-4-87311-714-0
  • フォーマット Print PDF ePub mobi
  • 原書: Graph Databases

オライリー・ジャパンで書籍を購入:
定価3,240円

Ebook Storeで電子版を購入:
価格2,592円

SNSの普及や相互依存性の高いデータの増加に伴い、従来型のリレーショナルデータモデルの処理効率の問題を解決するために登場し、近年使われるようになったのが、「グラフデータモデル」です。本書ではこのグラフデータモデルと、このモデルを使ったグラフデータベースについて、グラフデータベースの代表的な存在であるNeo4jを使って解説。Neo4jの中心的な開発者たちによる執筆のため信頼性が高く、また、実例も随所に織り込まれ実用性も高いものとなっています。内部アーキテクチャについてもていねいに書かれており、なぜリレーショナルデータモデルよりもグラフデータモデルの方がグラフ処理に適しているのかを理解できるでしょう。本書は、グラフデータモデルとグラフデータベースの特徴と使い方をまとめた優れた入門書です。

関連書籍

SQLアンチパターン
データベース実践講義
入門 ソーシャルデータ 第2版
ビジュアライジング・データ

序
まえがき

1章 はじめに
    1.1 グラフとは何か
    1.2 グラフ領域の概要
        1.2.1 グラフデータベース
        1.2.2 グラフ計算エンジン
    1.3 グラフデータベースの能力
        1.3.1 パフォーマンス
        1.3.2 柔軟性
        1.3.3 アジャイル性
    1.4 まとめ

2章 つながりのあるデータを格納するための選択肢
    2.1 リレーショナルデータベースには関係が欠如している
    2.2 NoSQLデータベースにも関係が欠如している
    2.3 グラフデータベースは関係を包含する
    2.4 まとめ

3章 グラフでのデータモデリング
    3.1 モデルと目的
    3.2 プロパティグラフモデル
    3.3 グラフのクエリ:Cypher入門
        3.3.1 Cypherの哲学
        3.3.2 START
        3.3.3 MATCH
        3.3.4 RETURN
        3.3.5 その他のCypher句
    3.4 リレーショナルモデリングとグラフモデリングの比較
        3.4.1 システム管理ドメインでのリレーショナルモデリング
        3.4.2 システム管理ドメインでのグラフモデリング
        3.4.3 モデルのテスト
    3.5 クロスドメインモデル
        3.5.1 シェイクスピアのグラフの作成
        3.5.2 クエリの開始
        3.5.3 検索する情報パターンの宣言
        3.5.4 一致の制限
        3.5.5 結果の処理
        3.5.6 クエリの連鎖
    3.6 一般的なモデリングの落とし穴
        3.6.1 メールの発信元の問題ドメイン
        3.6.2 妥当な最初の反復?
        3.6.3 二度目は成功
        3.6.4 ドメインの進化
    3.7 アンチパターンの回避
    3.8 まとめ

4章 グラフデータベースアプリケーションの構築
    4.1 データモデリング
        4.1.1 アプリケーションニーズの観点でのモデルの表現
        4.1.2 物のためのノード、構造のための関係
        4.1.3 粒度の細かい関係と汎用的な関係
        4.1.4 ノードとしての事実のモデリング
        4.1.5 ノードとしての複合値型の表現
        4.1.6 時間
        4.1.7 反復型で漸進的な開発
    4.2 アプリケーションアーキテクチャ
        4.2.1 組み込みかサーバか
        4.2.2 クラスタリング
        4.2.3 負荷分散
    4.3 テスト
        4.3.1 テスト駆動データモデル開発
        4.3.2 パフォーマンステスト
    4.4 キャパシティプランニング
        4.4.1 最適化の基準
        4.4.2 パフォーマンス
        4.4.3 冗長性
        4.4.4 負荷
    4.5 まとめ

5章 実世界のグラフ
    5.1 グラフデータベースを選ぶ理由
    5.2 一般的なユースケース
        5.2.1 ソーシャル
        5.2.2 レコメンデーション
        5.2.3 地理空間
        5.2.4 マスタデータ管理
        5.2.5 ネットワーク管理とデータセンター管理
        5.2.6 認可とアクセス制御(通信)
    5.3 実世界の例
        5.3.1 ソーシャルレコメンデーション(専門家ソーシャルネットワーク)
        5.3.2 認可とアクセス制御
        5.3.3 地理情報(物流)
    5.4 まとめ

6章 グラフデータベースの内部
    6.1 ネイティブグラフ処理
    6.2 ネイティブグラフストレージ
    6.3 プログラミングAPI
        6.3.1 カーネルAPI
        6.3.2 コア(Beans)API
        6.3.3 トラバーサルAPI
    6.4 非機能的な特徴
        6.4.1 トランザクション
        6.4.2 復旧可能性
        6.4.3 可用性
        6.4.4 スケーリング
    6.5 まとめ

7章 グラフ理論を使った予測分析
    7.1 深さ優先探索と幅優先探索
    7.2 ダイクストラ法での経路探索
    7.3 A*アルゴリズム
    7.4 グラフ理論と予測モデリング
        7.4.1 三者閉包
        7.4.2 構造的バランス
    7.5 ローカルブリッジ
    7.6 まとめ

付録 A	NoSQLの概要
    A.1 NoSQLの台頭
    A.2 ACIDとBASEの対比
    A.3 NoSQLの4象限
        A.3.1 ドキュメントストア
    A.4 キーバリューストア
    A.5 カラムファミリー
    A.6 集約ストアでのクエリと処理の比較
    A.7 グラフデータベース
        A.7.1 プロパティグラフ
        A.7.2 ハイパーグラフ
        A.7.3 トリプル

付録 B	Neo4j以外のグラフデータベース
    B.1 商用のグラフデータベース
        B.1.1 InfiniteGraph
        B.1.2 Sparksee
        B.1.3 AllegroGraph
    B.2 オープンソースのグラフデータベース
        B.2.1 OrientDB
        B.2.2 Titan
    B.3 その他のグラフデータベース
        B.3.1 HyperGraphDB
        B.3.2 Sones GraphDB
        B.3.3 InfoGrid
        B.3.4 FlockDB
        B.3.5 Trinity
    B.4 Titanのインストールと使用方法
        B.4.1 Apache Cassandraのインストールと起動
        B.4.2 Titanのインストールと起動
        B.4.3 Gremlinシェルの使用方法
        B.4.4 Rexsterグラフサーバ
        B.4.5 TitanにおけるRexsterの制限事項
    B.5 TinkerPop
        B.5.1 TinkerPop2
        B.5.2 TinkerPop3

索引

Feedback

皆さんのご意見をお聞かせください。ご購入いただいた書籍やオライリー・ジャパンへのご感想やご意見、ご提案などをお聞かせください。より良い書籍づくりやサービス改良のための参考にさせていただきます。
[feedbackページへ]