SlideShare a Scribd company logo
カウチなやつら
 -CouchDB in the room-

 OSC 2009 Tokyo/Fall
    15:15 - 16:00
本日の打順

1. 基本のRelaxation(z.ohnami)
2. Social Relaxation(佐々木 さん)
3. CMS Relaxation(藤田さん)
まずは、タイムリーな情報を

    コンニチハ。
0.8.0 (incubating)
0.8.1 (incubating)
0.9.0
0.9.1
0.10.0 Beta
Windows版インストーラー

         http://wiki.apache.
org/couchdb/Windows_binary_installer
RainDrop

http://mozillalabs.com/raindrop
Ubuntu One
          https://one.ubuntu.com/
http://damienkatz.net/pics/ubuntu_couchdb.
                     png
提供


    CouchDB JP
http://groups.google.co.jp/group/couchdb-jp?hl=ja
基本のRelaxation
CouchDBとは? by z.ohnami
そもそもz.ohnamiとは?
ゼットオオナミと読みます
もとはメインフレームの戦士
   DBA
   z/OS,DB2
現在のお仕事
   DB設計の標準化 社内指導
   仮想開発環境の構築
CouchDBが好きな人
    @IT「ゆったリラックス!
   CouchDBのあるところ」
      第一回~二回 連載中です
    http://www.atmarkit.co.jp/fdb/rensai/09_couchdb/01/couchdb01.html
    http://www.atmarkit.co.jp/fdb/rensai/09_couchdb/02/couchdb01.html
最近はAndroidにも興味があります。 
z.ohnami
z-ohnami
z_ohnami
その1 CouchDBの基本

    まずはここから
利用者はHTTPメソッドでアクセスします


  GET(参照)
  POST(追加)
  PUT(追加/更新)
  DELETE(削除)
ドキュメント(データ)はURIでマッピング

http://サーバー名:5984/DB名/ドキュメント名

(例)
 http://z.ohnami.com:5984/my-memo/good-idea
JSON形式でのやり取り
{
    "_id":"good-idea",
    "title":"休日の過ごし方",
    "date":"2009-10-31",
    "descripiton":"そうだ、OSCに行こう。",
    "equipment":["ネットブック","名刺","Poken"],
    "status":{
       "ガッツ":3,
       "スルー力":40,
       "緊張":80
     }
}
基本のまとめ
  利用者はHTTPメソッド
  でアクセス
    GET
    PUT
    POST
    DELETE



JSON形式の              http://サーバー名:5984/
データが返ってくる。           DB名/ドキュメント名
{
  name:"z.ohnami",
  phone:"555",
  blood:"AA"
}
CouchDBの構造
 CouchDB
  DB1 ドキュメント1     DB2 ドキュメント3
      ドキュメント2         ドキュメント4    ・・・
           ・             ・
           ・             ・
           ・             ・




   "HTTP://サーバー名:5984/DB名/ドキュメント名"
     http://xxx.net:5984/DB1/ドキュメント1
     http://xxx.net:5984/DB2/ドキュメント3 ・・・
その2 Design Document

     (「・ω・)「ガオー
ドキュメントを様々な形に加工する
ドキュメントを様々な形に加工する
viewを使ってみましょう
 ドキュメントのKeyを変更し、指定できる
   ドキュメントのデフォルトKeyは_id
   パラメータを指定できます。
    .../_design/d01/_view/gin-by-proof?key=30'
    .../_design/d01/_view/gin-by-proof?startkey=20&endkey=60'
    .../_design/d01/_view/gin-by-proof?descending=true'
    .../_design/d01/_view/gin-by-proof?descending=true&limit=10'
 Map & Reduce
   1ドキュメント → それぞれにMap関数を実行
   Reduceを入れれば集計処理!!
showとlist
  show
       ドキュメントの体裁を整える
          JSON形式 → HTML形式 など。お好みで!!
  list
       viewの出力結果を整える
          JSON形式 → HTML形式 など。お好みで!!
       データ一覧 → 詳細表示(list → show) というパターン
その3 Replication

   遠いところへ
Push and Pull !!
  CouchDB "HTTP://サーバー名:5984/_replicate"
   DB1 ドキュメント1
                               DB2' ドキュメント3
       ドキュメント2
            ・
                                   ドキュメント4
            ・
            ・                         ・
                                      ・
                                      ・




                DB1' ドキュメント1
  他の
  CouchDB           ドキュメント2     DB2 ドキュメント3
                      ・
                      ・             ドキュメント4
                      ・
                                          ・
                                          ・
                                          ・
その4 アプリケーション開発

    どう使えるか?
どういうデータに向いているか?

  先生、データを入れたいです・・・
ドキュメント指向

CouchDBの肩書き。
紙一枚にまとめ
たときに不自然
ではないデータ
はCouchDBだ!
紙一枚に書いて不自然でないものの例

書類(設計書、申請書、履歴書・・・・)
名刺、PokenのサイトはCouchDBを使うといいよ
本のページ(添付ファイルで写真も大丈夫)
ソースコードだって
設定ファイル(iniっぽいやつとか)
どういう構成にするか?

    座。
よくある構造
これでもOK
これでもOK
さらにこんなのでも
まとめ

sum(基本のRelaxation);
CouchDBを使ってみよう!!

紙一枚に書いて問題ないデータはCouchDBでガ
ンガン電子化しましょう!!
HTTPメソッドAPIやReplicationでゆるーくデータを
共有してみましょう
用途に応じて柔軟に構成を変えてみましょう
Be relaxed !!

続きもごゆるりと。

More Related Content

カウチなやつら CouchDB in the room