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

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
おしまい

More Related Content

What's hot

Phpcon kansai 2011 ichikaway
Phpcon kansai 2011 ichikawayPhpcon kansai 2011 ichikaway
Phpcon kansai 2011 ichikaway
ichikaway
 
Indexed DBについて(書きかけ)
Indexed DBについて(書きかけ)Indexed DBについて(書きかけ)
Indexed DBについて(書きかけ)
iPride Co., Ltd.
 
Webスライスから始めるmicroformats
Webスライスから始めるmicroformatsWebスライスから始めるmicroformats
Webスライスから始めるmicroformats
Koji Ishimoto
 
Mongo db勉強会
Mongo db勉強会Mongo db勉強会
Mongo db勉強会
otmb
 
スキーマとURI
スキーマとURIスキーマとURI
スキーマとURI
Fumihiro Kato
 
Programming under capability mode
Programming under capability modeProgramming under capability mode
Programming under capability mode
Yuichiro Naito
 
Gtug girls meetup web socket handson
Gtug girls meetup   web socket handsonGtug girls meetup   web socket handson
Gtug girls meetup web socket handson
Jxck Jxck
 
php+smarty (初心者向け)
php+smarty (初心者向け)php+smarty (初心者向け)
php+smarty (初心者向け)
Kohki Nakaji
 
BMXUG つきじ#4
BMXUG つきじ#4BMXUG つきじ#4
BMXUG つきじ#4
K Kimura
 
DBFluteハンズオンで学んだこと etc.
DBFluteハンズオンで学んだこと etc.DBFluteハンズオンで学んだこと etc.
DBFluteハンズオンで学んだこと etc.
Masato Tokuda
 
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
Kosuke Kida
 
3-1
3-13-1
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜
Masakazu Matsushita
 
MongoDB: システム可用性を拡張するインデクス戦略
MongoDB: システム可用性を拡張するインデクス戦略MongoDB: システム可用性を拡張するインデクス戦略
MongoDB: システム可用性を拡張するインデクス戦略
ippei_suzuki
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
 
データベース01 - データベースとは
データベース01 - データベースとはデータベース01 - データベースとは
データベース01 - データベースとは
Kenta Oku
 
GraphQL with scala
GraphQL with scalaGraphQL with scala
GraphQL with scala
Yoshiteru Takeshita
 
Web班番外編
Web班番外編Web班番外編
Web班番外編
XMLProJ2014
 
textsearch groonga v0.1
textsearch groonga v0.1textsearch groonga v0.1
textsearch groonga v0.1
Takahiro Itagaki
 
PinQAでのMongoDB活用事例
PinQAでのMongoDB活用事例PinQAでのMongoDB活用事例
PinQAでのMongoDB活用事例
Misa Kondo
 

What's hot (20)

Phpcon kansai 2011 ichikaway
Phpcon kansai 2011 ichikawayPhpcon kansai 2011 ichikaway
Phpcon kansai 2011 ichikaway
 
Indexed DBについて(書きかけ)
Indexed DBについて(書きかけ)Indexed DBについて(書きかけ)
Indexed DBについて(書きかけ)
 
Webスライスから始めるmicroformats
Webスライスから始めるmicroformatsWebスライスから始めるmicroformats
Webスライスから始めるmicroformats
 
Mongo db勉強会
Mongo db勉強会Mongo db勉強会
Mongo db勉強会
 
スキーマとURI
スキーマとURIスキーマとURI
スキーマとURI
 
Programming under capability mode
Programming under capability modeProgramming under capability mode
Programming under capability mode
 
Gtug girls meetup web socket handson
Gtug girls meetup   web socket handsonGtug girls meetup   web socket handson
Gtug girls meetup web socket handson
 
php+smarty (初心者向け)
php+smarty (初心者向け)php+smarty (初心者向け)
php+smarty (初心者向け)
 
BMXUG つきじ#4
BMXUG つきじ#4BMXUG つきじ#4
BMXUG つきじ#4
 
DBFluteハンズオンで学んだこと etc.
DBFluteハンズオンで学んだこと etc.DBFluteハンズオンで学んだこと etc.
DBFluteハンズオンで学んだこと etc.
 
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
 
3-1
3-13-1
3-1
 
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜
 
MongoDB: システム可用性を拡張するインデクス戦略
MongoDB: システム可用性を拡張するインデクス戦略MongoDB: システム可用性を拡張するインデクス戦略
MongoDB: システム可用性を拡張するインデクス戦略
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
データベース01 - データベースとは
データベース01 - データベースとはデータベース01 - データベースとは
データベース01 - データベースとは
 
GraphQL with scala
GraphQL with scalaGraphQL with scala
GraphQL with scala
 
Web班番外編
Web班番外編Web班番外編
Web班番外編
 
textsearch groonga v0.1
textsearch groonga v0.1textsearch groonga v0.1
textsearch groonga v0.1
 
PinQAでのMongoDB活用事例
PinQAでのMongoDB活用事例PinQAでのMongoDB活用事例
PinQAでのMongoDB活用事例
 

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

Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
moai kids
 
MongoDB
MongoDBMongoDB
分散データベース gun について調べた
分散データベース gun について調べた分散データベース gun について調べた
分散データベース gun について調べた
keisunagawa
 
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
decode2016
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
弘毅 露崎
 
AI・HPC・ビッグデータで利用される分散ファイルシステムを知る
AI・HPC・ビッグデータで利用される分散ファイルシステムを知るAI・HPC・ビッグデータで利用される分散ファイルシステムを知る
AI・HPC・ビッグデータで利用される分散ファイルシステムを知る
日本ヒューレット・パッカード株式会社
 
[db tech showcase Tokyo 2018] Azure Cosmos DB Technical Deep Dive ~グローバル分散型マル...
[db tech showcase Tokyo 2018] Azure Cosmos DB Technical Deep Dive ~グローバル分散型マル...[db tech showcase Tokyo 2018] Azure Cosmos DB Technical Deep Dive ~グローバル分散型マル...
[db tech showcase Tokyo 2018] Azure Cosmos DB Technical Deep Dive ~グローバル分散型マル...
Naoki (Neo) SATO
 
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
decode2016
 
Search on AWS - IVS CTO Night and Day 2016 Spring
Search on AWS - IVS CTO Night and Day 2016 SpringSearch on AWS - IVS CTO Night and Day 2016 Spring
Search on AWS - IVS CTO Night and Day 2016 Spring
Eiji Shinohara
 
chapter6
chapter6chapter6
chapter6
ymk0424
 
Redis Intro Osc2010 Tokyo Spring
Redis Intro Osc2010 Tokyo SpringRedis Intro Osc2010 Tokyo Spring
Redis Intro Osc2010 Tokyo Spring
Makoto Ohnami
 
DOI勉強会@nii
DOI勉強会@niiDOI勉強会@nii
Dominoアクセスサービスを使用したRESTサービスのプレイブック
Dominoアクセスサービスを使用したRESTサービスのプレイブックDominoアクセスサービスを使用したRESTサービスのプレイブック
Dominoアクセスサービスを使用したRESTサービスのプレイブック
Mitsuru Katoh
 
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
Shun Shiramatsu
 
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Toru Kawamura
 
CouchDB JP & BigCouch
CouchDB JP & BigCouchCouchDB JP & BigCouch
CouchDB JP & BigCouch
Yohei Sasaki
 
Code4Lib 2013 報告会
Code4Lib 2013 報告会Code4Lib 2013 報告会
Code4Lib 2013 報告会
Fumihiro Kato
 

Similar to 私の考えるドキュメント指向 (20)

Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
MongoDB
MongoDBMongoDB
MongoDB
 
分散データベース gun について調べた
分散データベース gun について調べた分散データベース gun について調べた
分散データベース gun について調べた
 
Linked Open Dataとは
Linked Open DataとはLinked Open Dataとは
Linked Open Dataとは
 
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
 
Linked Open Dataとは
Linked Open DataとはLinked Open Dataとは
Linked Open Dataとは
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
 
AI・HPC・ビッグデータで利用される分散ファイルシステムを知る
AI・HPC・ビッグデータで利用される分散ファイルシステムを知るAI・HPC・ビッグデータで利用される分散ファイルシステムを知る
AI・HPC・ビッグデータで利用される分散ファイルシステムを知る
 
[db tech showcase Tokyo 2018] Azure Cosmos DB Technical Deep Dive ~グローバル分散型マル...
[db tech showcase Tokyo 2018] Azure Cosmos DB Technical Deep Dive ~グローバル分散型マル...[db tech showcase Tokyo 2018] Azure Cosmos DB Technical Deep Dive ~グローバル分散型マル...
[db tech showcase Tokyo 2018] Azure Cosmos DB Technical Deep Dive ~グローバル分散型マル...
 
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
 
Search on AWS - IVS CTO Night and Day 2016 Spring
Search on AWS - IVS CTO Night and Day 2016 SpringSearch on AWS - IVS CTO Night and Day 2016 Spring
Search on AWS - IVS CTO Night and Day 2016 Spring
 
chapter6
chapter6chapter6
chapter6
 
Redis Intro Osc2010 Tokyo Spring
Redis Intro Osc2010 Tokyo SpringRedis Intro Osc2010 Tokyo Spring
Redis Intro Osc2010 Tokyo Spring
 
はやわかりHadoop
はやわかりHadoopはやわかりHadoop
はやわかりHadoop
 
DOI勉強会@nii
DOI勉強会@niiDOI勉強会@nii
DOI勉強会@nii
 
Dominoアクセスサービスを使用したRESTサービスのプレイブック
Dominoアクセスサービスを使用したRESTサービスのプレイブックDominoアクセスサービスを使用したRESTサービスのプレイブック
Dominoアクセスサービスを使用したRESTサービスのプレイブック
 
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
リンクトオープンデータ(LOD)の紹介と、その先にある参画・協働・復興促進
 
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
Hypermedia: The Missing Element to Building Adaptable Web APIs in Rails (増補日本語版)
 
CouchDB JP & BigCouch
CouchDB JP & BigCouchCouchDB JP & BigCouch
CouchDB JP & BigCouch
 
Code4Lib 2013 報告会
Code4Lib 2013 報告会Code4Lib 2013 報告会
Code4Lib 2013 報告会
 

More from Yohei Yamamoto

WebAPIのこれまでとこれから
WebAPIのこれまでとこれからWebAPIのこれまでとこれから
WebAPIのこれまでとこれから
Yohei Yamamoto
 
リコーUCSの開発をリーンスタートアップ的視点でふりかえる
リコーUCSの開発をリーンスタートアップ的視点でふりかえるリコーUCSの開発をリーンスタートアップ的視点でふりかえる
リコーUCSの開発をリーンスタートアップ的視点でふりかえる
Yohei Yamamoto
 
CAPとBASEとEventually Consistent
CAPとBASEとEventually ConsistentCAPとBASEとEventually Consistent
CAPとBASEとEventually Consistent
Yohei Yamamoto
 
Rubykaigi2008: REST 信者から見た Ruby と Rails
Rubykaigi2008: REST 信者から見た Ruby と RailsRubykaigi2008: REST 信者から見た Ruby と Rails
Rubykaigi2008: REST 信者から見た Ruby と Rails
Yohei Yamamoto
 
良い Xml の見分け方 2007
良い Xml の見分け方 2007良い Xml の見分け方 2007
良い Xml の見分け方 2007
Yohei Yamamoto
 

More from Yohei Yamamoto (8)

WebAPIのこれまでとこれから
WebAPIのこれまでとこれからWebAPIのこれまでとこれから
WebAPIのこれまでとこれから
 
リコーUCSの開発をリーンスタートアップ的視点でふりかえる
リコーUCSの開発をリーンスタートアップ的視点でふりかえるリコーUCSの開発をリーンスタートアップ的視点でふりかえる
リコーUCSの開発をリーンスタートアップ的視点でふりかえる
 
CAPとBASEとEventually Consistent
CAPとBASEとEventually ConsistentCAPとBASEとEventually Consistent
CAPとBASEとEventually Consistent
 
Rubykaigi2008: REST 信者から見た Ruby と Rails
Rubykaigi2008: REST 信者から見た Ruby と RailsRubykaigi2008: REST 信者から見た Ruby と Rails
Rubykaigi2008: REST 信者から見た Ruby と Rails
 
良い Xml の見分け方 2007
良い Xml の見分け方 2007良い Xml の見分け方 2007
良い Xml の見分け方 2007
 
Rest 勝利宣言
Rest 勝利宣言Rest 勝利宣言
Rest 勝利宣言
 
イントロ
イントロイントロ
イントロ
 
REST 入門
REST 入門REST 入門
REST 入門
 

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