« 単語帳をスマートフォンで管理する~勉強法にITツールを導入する効果 | トップページ | ビッグデータだけでは将来は予測できない~シグナル&ノイズの感想 »

2014/02/11

SQLとACIDは別の話、NoSQLというよりNoACID

@akahane37さんのつぶやきから、NoSQLとRDBの比較の資料を見つけたのでメモ。

筑波大学でデータベースの話をしてきました - kuenishi's blog

Twitter / akahane92: モヤモヤが少し晴れた気がする。”SQLとACIDは別のはなし、NoSQLというよりNoACID” / 筑波大学でデータベースの話をしてきました - kuenishi's blog http://kuenishi.hatenadiary.jp/entry/2014/02/01/234447 …

(引用開始)
言いたかったことの流れを僕なりにまとめると

・SQLが登場する前はみんなNoSQLデータベースだった
・NoSQLのポイントは、スケーリングの問題、整合性、可用性が大きなみっつの問題
・スケーリングは二通りの流儀がある
 ・整合性はアトミックブロードキャストプロトコルで頑張る
 ・整合性の話はふたつの文脈がある(トランザクションとレプリケーション)
・死活監視のデモでCrash Failure, Crash Recovery, Timing Failure, Silent Failureなどを体感
・Paxosの説明に失敗
・可用性とCAP定理
・ACIDとBASEは異なる概念なので混同どころか比較できない
・データストアの分類 NoSQLではなくNoACIDがおもしろい
 ・これはよい質問があってそのときはどう答えたのか覚えていないのだけど、今答えると、データベースは関係代数のデータモデルとトランザクション管理のふたつの部分から成っているのだけど、NoSQLは前者に対応するべきで、NoACID的なのは後者に対応すべき。なのだけど世間では混同されているのでここは注意した方がよい
・それなりの分類軸のはなし
・スキーマとかスキーマレスとか、ドキュメント指向とかカラム指向とか
 ・実は、ドキュメント指向DBはJSONだけでなくXMLもドキュメントとして扱うものがおおいのだけど、実はXMLは2階の正規モデルだかなんだか?になっていてふつうにSQLでクエリが書ける…という指摘をいただきまして、確かにドキュメント指向DBがアヤシいところのひとつではある。ただ、これは2000年代のデータベースのトレンドだったと記憶しているんだけど実は現実世界で役に立っているところをあまり見たことがない。

というところで、データベースを知る観点をひととおり説明して、Riakはこうしていますよという話をして終了。
(引用終了)

RDBのスケールアップという問題解決の一つとして、NoSQLが現れた。
NoSQLは、RDB以前の先祖返りに近い。
でも、クラウドによる並列処理とNoSQLを組み合わせると、特にWebサービスのニッチな問題を解決できる。

ACIDとBASEというDBの特性の違いが面白い。
SQLはデータ操作言語、つまりデータ操作のI/Fであり、ACIDとは関係しない。

そして、CAPの定理において、RDBやMongoDBなどがAとC(つまり、可用性と一貫性)を重視し、RiakやCouchDBがAとP(耐障害性と可用性)を重視しているという指摘は分かりやすい。

|

« 単語帳をスマートフォンで管理する~勉強法にITツールを導入する効果 | トップページ | ビッグデータだけでは将来は予測できない~シグナル&ノイズの感想 »

ソフトウェア」カテゴリの記事

ビジネス・歴史・経営・法律」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« 単語帳をスマートフォンで管理する~勉強法にITツールを導入する効果 | トップページ | ビッグデータだけでは将来は予測できない~シグナル&ノイズの感想 »