SQLとACIDは別の話、NoSQLというよりNoACID
@akahane37さんのつぶやきから、NoSQLとRDBの比較の資料を見つけたのでメモ。
筑波大学でデータベースの話をしてきました - kuenishi's blog
(引用開始)
言いたかったことの流れを僕なりにまとめると
・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(耐障害性と可用性)を重視しているという指摘は分かりやすい。
| 固定リンク
「ソフトウェア」カテゴリの記事
- Javaのモジュールシステムの考え方をまとめてみた(2022.10.21)
- Javaのenum型はシングルトンクラスみたいだ(2022.06.20)
- テスラが従来の自動車メーカーと異なるところは工場までソフトウェア化すること(2022.02.09)
- 「RubyやRailsは終わった」という記事のリンク(2022.01.09)
- 実践した後に勉強するのがエンジニアの本来の道(2022.01.09)
「ビジネス・歴史・経営・法律」カテゴリの記事
- ビジネス書の名著はどれ?(2023.09.18)
- 営業は顧客の”購買代理人”である(2023.08.16)
- 第85回IT勉強宴会の感想~概念データモデルからビジネスモデルを構築すべきという考え方(2023.05.13)
- 令和4年度春期試験のITストラテジスト試験第4問をastahでモデル化してみた(2023.04.15)
- ChatGPTで起きている事象の意味は何なのか(2023.04.02)
コメント