私の考える
  ドキュメント指向
    ―データに自由を―

2009-06-23 CouchDB 勉強会
    山本陽平 (id:yohei)
自己紹介
氏名: 山本陽平(id:yohei)
職業: RESTエバンジェリスト
    (bogusne.ws 認定)
CouchDB
 との関係
Erlang 分散システム
    勉強会でお話
     2008-06
• 諸君、私は CouchDB が好きだ
• 諸君、私は CouchDB が好きだ
• 諸君、私は CouchDB が大好きだ




                        3
今日の話題
Web時代にデータは
 どうあるべきか
データ
 リソース
ドキュメント
Web 的には
 ほぼ同義
データ
DBMSに入ってい
るデータ。HTML
中のデータ。サービ
スが提供するJSON
リソース
URIで指し示される
データ。表現として
HTMLやJSONや
PNGやPDFを持つ
ドキュメント
構造をもったデータ
RDBのデータと文
章が混在している
HTMLなど
典型的なWeb
 システム
WWW Browser




 Web Server



  RDBMS
Impedance mismatch

WWW Browser


              RESTful (Document)

 Web Server   Object Oriented Model


              Relational Model
  RDBMS
CouchDB
WWW Browser


              RESTful (Document)

 CouchApp     RESTful (Document)


  CouchDB     RESTful (Document)
データの自由度
 について
今の Web アプリ
データと
プログラムの関係
model         schema




        1:1
ドキュメント指向
スキーマフリー
model   ?     document




        1:1
model   !     document




        n:1
複数の見方が
できるドキュメント
複数のモデルから
同一ドキュメント
  を参照
データはデータ
モデルはモデル
CouchRest の
ExtendedDocument
     が一番近い

  couchrest_type オプションにできればなあ
準備時間不足
で CouchRest
 の話は省略
例
イベント情報
   と
スケジュール
{
    “title”: “CouchDB 勉強会”,
    “start_at”: “2009-06-23T19:30:00+0900”,
    “place”: “IT frontier Office”,
    “participants”: [“z.ohnami”, “yohei”, …],
    “comments”: [“hello”, “foo bar”, …]
}
{
    “title”: “CouchDB 勉強会”,
    “start_at”: “2009-06-23T19:30:00+0900”,
    “place”: “IT frontier Office”,
    “participants”: [“z.ohnami”, “yohei”, …],
    “comments”: [“hello”, “foo bar”, …]
}



    イベント情報                         スケジュール




                Replicate/Import
    イベントサイト                        スケジューラ
データに自由を
続きはWebで

http://yohei-y.blogspot.com
  http://github.com/yohei
おしまい

私の考えるドキュメント指向