← チャプター一覧
第11章 · データベースの仕組み
🗄️ なぜデータベースは速く検索できる?
SNSには数十億件の投稿がある。でも検索したら0.1秒で結果が出てくる。普通にファイルを全部調べたら何年もかかるはずなのに…データベースの魔法を解き明かそう!🔍
📄
ファイル検索
全件を1つずつチェック
O(n) 遅い!
😰
VS
🌳
B木インデックス
ツリー構造で探索
O(log n) 速い!
🚀
💡 1億件のデータ検索: ファイル検索→約1億回比較 / B木→約27回比較
(log₂(100,000,000) ≈ 27)インデックスの力!
第11章 · Step 1/4
📊 Step 1:テーブルとSQL
データベースはデータをテーブル(表)で管理する。SQLという言語で「こういうデータを取り出して」と指示する。試してみよう!
👥 users テーブル
idnameagecity
1Alice25東京
2Bob30大阪
3Carol22東京
4Dave28名古屋
5Eve25東京
6Frank35大阪
SQL クエリを選ぼう
第11章 · Step 2/4
🌳 Step 2:B木インデックス — 速い検索の秘密
インデックス(索引)は本の巻末索引と同じ。B木という木構造でデータの場所を記録しておき、二分探索で爆速検索!クリックして探索を体験しよう。
id インデックス(B木)— 値をクリックして探索!
👆 ノードをクリックするとB木探索のステップを表示します
第11章 · Step 3/4
🔒 Step 3:トランザクション — 「全部成功か全部失敗」
銀行振込を想像して。「口座Aから1万円引く」と「口座Bに1万円加える」の途中でクラッシュしたら?トランザクションは全部成功(COMMIT)か全部なかったこと(ROLLBACK)を保証する!
✅ 成功パターン(COMMIT)
BEGIN TRANSACTION
口座A: 10,000 → 0円 ✓
口座B: 0 → 10,000円 ✓
COMMIT — 確定!💾
❌ 失敗パターン(ROLLBACK)
BEGIN TRANSACTION
口座A: 10,000 → 0円 ✓
💥 サーバークラッシュ!
ROLLBACK — 全部元に戻す!↩️
🎯 ACID特性(トランザクションの4つの保証)
Atomicity(原子性)
全部か0か
Consistency(一貫性)
制約を常に満たす
Isolation(分離性)
同時実行を安全に
Durability(永続性)
COMMITは永続保存
第11章 · クイズ
📝 理解度チェック!
Q1. データベースで高速検索を実現するデータ構造は? 🤔
配列(Array)
B木インデックス
リンクリスト
スタック
🎉

第11章クリア!

データベースがどうやってデータを
速く・安全に管理するかを学んだ!

📚 今日学んだこと

  • SQLでデータを取得・集計できる
  • B木インデックスでO(log n)の高速検索
  • 1億件でも約27回の比較で見つかる!
  • トランザクションで全部成功か全部失敗を保証
  • ACID特性でデータの信頼性を守る