C
データベース//Lesson 01

データベース完全攻略

30分·theory

データベース完全攻略

🎯 このレッスンを読み終えたら

このレッスンを読み終えると、以下の3つを自信を持って実践できるようになります。

  • ✅ 「データベース (データを保存・照会するシステム) 完全攻略」のSQL (データベースに命令を送る標準言語) / 実務への応用
  • ✅ EXPLAIN (クエリがどのように実行されるかを示すコマンド) を使った検証方法
  • ✅ 面接でよく聞かれる質問3つ

学習目標をチェックリストとして手元に置き、すべて答えられるようになったらレッスンを閉じてください。

🗄️ データベースを作った人々 — 4人4コマ

01
Edgar F. Coddエドガー・コッド
Father of Relational DatabasesIBM Research1923~2003

「A Relational Model of Data」— 30行の論文が50年のDB産業を作り上げた

  • 1970 IBM Research — 関係モデルに関する論文を発表
  • 1972 関係モデルの12のルール(Coddの12規則)を定義
  • 1981 ACMチューリング賞を受賞
  • 1990 「The Relational Model for Database Management v2」を出版
SQL・Oracle・PostgreSQL・MySQL — すべてのRDBMSの理論的基盤RELATIONAL MODEL · 関係型DBの父
02
Larry Ellisonラリー・エリソン
Founder of OracleOracle Corporation1944年〜現在

Coddの論文1本を読んで世界第2位のソフトウェア企業を創業した

  • 1977 Software Development Laboratoriesを創設(現Oracle)
  • 1979 世界初の商用RDBMSであるOracle V2をリリース
  • 2010 Sun Microystemsを買収 → JavaとMySQLを同時に獲得
  • 2024 Oracleの時価総額が4,000億ドル超え、エンタープライズデータベース世界首位を維持
Oracle DB — 世界中の銀行・政府・大企業のインフラ標準ORACLE · エンタープライズDBの王
03
Michael Stonebrakerマイケル・ストーンブレーカー
Creator of PostgreSQL (INGRES · POSTGRES)UC Berkeley → MIT CSAIL1943年〜現在

30年にわたる執念 — INGRESからPostgreSQLまでDB史を自ら書き続けた学者

  • 1974 UC BerkeleyでINGRESプロジェクトが始動
  • 1986 POSTGRES — オブジェクト関係型データベースの研究プロジェクト
  • 1996 POSTGRES → PostgreSQLとしてオープンソース公開
  • 2014 ACMチューリング賞を受賞
PostgreSQL — Stack Overflow 2024年開発者が最も好むDB第1位POSTGRESQL · オープンソースDBの王
04
Monty Wideniusモンティ・ワイデニウス
Creator of MySQL / MariaDBMySQL AB → Sun → MariaDB Foundation1962年〜現在

フィンランドの開発者が作った無料DBがインターネットを席巻した

  • 1995 フィンランドのMySQL AB — MySQLを創設
  • 2001 MySQLがLAMPスタックの「M」の位置を占め、ウェブの標準となる
  • 2008 Sun MicroystemsがMySQL ABを10億ドルで買収
  • 2009 Oracle合併に反対 → MariaDBフォークを結成、オープンソースの精神を継承
MySQL → WordPress → インターネットの43%。MariaDBでオープンソースのDNAを継承MYSQL · インターネットDBの普及
一言で
Coddの理論(1970年) → Ellisonの商用化 → Stonebrakerのオープンソース化 → Wideniusの普及。4人がDBの50年を作った。
🔬 PostgreSQL推奨: BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY (自動連番)

なぜデータベースを知らなければならないのか

一言で: あらゆるサービスのデータはどこかに保存される。その保存方法こそがサービスの限界を決める。


ツールマッピング — 各セルの英語はツール名にすぎません。隣の説明だけを見てください

用途DB標準
テーブル形式DBPostgreSQL · MySQL · Oracle (RDBMS — 行と列のテーブルで保存)
高速一時保存Redis · Memcached (メモリに置いて1ms以下で読めるキャッシュ)
自由形式DBMongoDB · DynamoDB (NoSQL — テーブルではなくドキュメント/キーバリュー形式)
検索エンジンElasticsearch · OpenSearch (テキスト内の単語を素早く検索)
時系列記録TimescaleDB · InfluxDB (時系列 — 時間順に積み重なるデータ)
大規模分析BigQuery · Snowflake · ClickHouse (数億行の集計に対応する分析DB)

5つの核心的な理由

理由意味
インデックス (高速検索のための索引)100万行の検索が0.001秒 vs 10秒。B+Tree (データをソートして保持するデータ構造) 1行で決まる
トランザクション (一括処理のまとまり)振込・決済の安全性。ACID(原子性・一貫性・分離性・永続性の4つの保証) がなければお金が消える
分離レベル同時リクエスト1000件でのデータ一貫性を保証
JOIN (複数のテーブルを結合) · 正規化 (重複なくテーブルを分割)データ重複の排除 + 効率的なクエリ
N+1・実行計画同じ結果で100倍の差。EXPLAIN(クエリがどのように実行されるかを示すコマンド) こそが実力の証

核心: SQL1行で数万行を扱う能力 = すべてのバックエンド開発者の基礎スキル

🤖 AIにこう依頼してみよう

このレッスンの概念を知れば、AIに具体的に指示できます。漠然とした「直して」ではなく、語彙を持ったリクエスト — それがトークン(AIが一度に処理する文字単位) 節約の出発点です。

  • 「users・orders・products 3テーブル + FK (外部キー — 別のテーブルの行を指すカラム) + インデックス付きスキーマを設計して。MySQL 8基準で。」
  • 「このクエリにEXPLAIN (クエリがどのように実行されるかを示すコマンド) を付けて実行計画を解釈し、インデックスを推薦して。」
  • 「RDBMS (リレーショナルDB) とRedis (メモリキャッシュ) の組み合わせでユーザーセッション + キャッシュアーキテクチャを描いて。」

なぜこれがトークンを節約するのか

DBの基本語彙(テーブル・FK・インデックス・トランザクション・EXPLAIN)を知っていれば、AIの回答を一度で完結させられます。「インデックスとは何ですか?」から尋ね直すと、トークンが2〜3倍かかります。

データベース - データベース