お知らせツイートこんにちは、佐藤です。私事ですが、Neo4jというグラフ型データベースの入門書執筆にユーザグループの一員として参加しました。良い機会ですのでSendGridとの関連はありませんが、本記事ではneo4jについて紹介したいと思います。Technology社が提供するグラフ型データベースです。リレーショナルデータベース(RDB)がこれまで考慮できていなかった問題への解として、近年、キーバリュー型、列指向型、ドキュメント型、グラフ型など様々なタイプのデータベースが開発・利用されています。Neo4jはこの中のグラフ型に分類される製品です。グラフ型データベースとはグラフ型データベースとは、データを「ノード」と「リレーションシップ」といった要素で構成されるグラフモデルで表現するデータベースのことを指します。Neo4jが採用するプロパティ付き有向グラフでは、次のようにデータを表現します。この例では、山手線と東京から中野までの中央線の各駅をデータ化しています。ノード(駅)は円、リレーションシップ(路線)は2ノード間を結ぶ線で表現します。リレーションシップには方向性があります。ノードとリレーションシップはそれぞれキーと値のペアから構成されるプロパティを持つことができます。Neo4jの特徴データ表現RDBではデータをテーブル、列、行などで表現しますが、Neo4jではグラフモデルで表現します。RDBでは多対多のレコード間の関連をテーブルで表現して、SQLのJOINを利用して関連するデータを取得しますが、Neo4jでは、データ間の関連をリレーションシップという形で表現してたどっていくことができます。このため、複雑なネットワーク構成を持つデータを直感的に表現したり、高速かつシンプルに取り扱うことができます。Query)Neo4jはデータベースを操作するのに「サイファークエリ」という宣言型のクエリ言語をサポートしています。サイファークエリはSQLライクな形式となっており、強力かつ多彩なデータ表現を行うことができます。上述の例で東京から中野までの中央線の各駅と路線データを取得するサイファークエリは次の通りです。ss,r,sfACID特性Neo4jはRDBと同様のACID特性を持ちます。このため、トランザクションを利用してデータベースへの複数の変更をまとめて処理(コミット、ロールバック)することができます。APIをサポートしています。APIではトランザクション機能も利用できるため、アプリケーションの実行環境に依存せず様々な環境からデータベースを利用できます。WebベースのDB管理ツールNeo4jはWebベースのDB管理ツールを標準で提供しています。サイファークエリの発行と実行結果および実行計画の確認などを行うことができます。さいごにいかがだったでしょうか?RDBとはだいぶ様相が異なりますが、テーブルで表現するのに違和感のあるデータに出くわしたり、JOINが多すぎるSQLが辛い、もしくはJOINの回数が不確定のクエリと戦わなくてはいけない場面で、選択肢の1つとして思い出していただけると幸いです。詳しくは書籍でもご紹介していますので是非ご覧ください。ネタ翻訳アーカイブ2017年1月2016年12月2016年11月2016年10月2016年9月2016年8月2016年7月2016年6月2016年5月2016年4月2016年3月2016年2月2016年1月2015年12月2015年11月2015年10月2015年9月2015年8月2015年7月2015年6月2015年5月2015年4月2015年3月2015年2月2015年1月2014年12月2014年11月2014年10月2014年9月2014年8月2014年7月2014年6月2014年5月2014年4月2014年3月2014年2月2014年1月2013年12月まずは無料ではじめるプランを見る。