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(耐障害性と可用性)を重視しているという指摘は分かりやすい。
| 固定リンク
「ソフトウェア」カテゴリの記事
- Redmine AI HelperプラグインはRedmineをAI駆動プロジェクト管理に変える可能性を秘めている #Redmine(2025.12.31)
- 「RedmineのUbuntu+Docker構築への移行」の感想 #redmineT(2024.11.24)
- Javaのモジュールシステムの考え方をまとめてみた(2022.10.21)
- Javaのenum型はシングルトンクラスみたいだ(2022.06.20)
- テスラが従来の自動車メーカーと異なるところは工場までソフトウェア化すること(2022.02.09)
「ビジネス・歴史・経営・法律」カテゴリの記事
- 【読書メモ】ミアシャイマーに学ぶイラン情勢と、社会科学における仮説検証の醍醐味(2026.03.29)
- 自動車業界におけるA-SPICE・機能安全・サイバーセキュリティの規格に対応したプロセス改善とは何か?(2026.02.15)
- E-BOMとM-BOMの違いは何か?(2026.02.08)
- 製造業におけるPLM製品とMES製品の違いは何か?(2026.02.08)
- 日本の半導体産業はなぜ凋落したのか(2026.02.07)


コメント