第7章:データの混沌に秩序をもたらした数学者
〜エドガー・F・コッド(1923-2003)〜
ドラマチックな導入
1970年6月、ニューヨーク州ヨークタウンハイツ。IBM研究所の静かな一室で、一人の数学者が25ページの論文を仕上げていた。エドガー・フランク・コッド、47歳。論文のタイトルは「A Relational Model of Data for Large Shared Data Banks(大規模共有データバンクのための関係データモデル)」。
当時のデータベースシステムは、プログラマーが複雑なポインタやリンクをたどってデータにアクセスする、まるで迷路のような仕組みだった。データの構造を少し変更するだけで、何百ものプログラムを書き直さなければならない。これでは、コンピュータが普及してもデータ管理のコストは下がらない。
「データとプログラムを分離できないか」
コッドは考えていた。数学の集合論と述語論理を使って、データを「表」として表現し、数学的操作でデータを操る方法はないだろうか。
この論文が、現代のあらゆるデータベースシステムの基盤となった。あなたがWebサイトでショッピングをするとき、銀行でお金を引き出すとき、スマートフォンでSNSを使うとき—その背後では、コッドが50年以上前に考案した「関係データベース」が動いている。
一人の数学者の「美しい理論」が、デジタル社会の記憶装置となった物語。それは、混沌としたデータの世界に、数学的な秩序をもたらした革命の軌跡である。
7.1 数学者からIBM研究者へ
オックスフォード大学での数学専攻
1923年8月19日、エドガー・フランク・コッドはイギリスのダービーシャー州ドーセットで生まれた。父は機械技術者、母は教師という中流家庭で育った。幼い頃から数学に強い関心を示し、特に論理学と集合論に魅力を感じていた。
第二次世界大戦中、コッドは英国空軍でパイロットとして従軍した。戦後、GIベネフィット(復員軍人援助法)を利用してオックスフォード大学に進学し、数学を専攻した。
「数学は真理を表現する最も美しい言語だ」—コッドはよくこう語っていた。彼にとって数学は、複雑な現実世界を単純で美しい構造で表現する手段だった。
1948年にオックスフォード大学を卒業後、コッドはアメリカに移住した。当時のアメリカは、コンピュータ技術の最先端であり、数学者にとって魅力的な研究環境があった。
IBM入社とコンピュータとの出会い
1949年、コッドはIBMに入社した。当初は数学研究者として、純粋数学の問題に取り組んでいた。しかし、1950年代に入ると、IBMが商用コンピュータの開発に力を入れ始め、コッドもコンピュータ科学の研究に関わるようになった。
コッドが接したIBMのコンピュータ:
- IBM 701(1953年):科学計算用の大型コンピュータ
- IBM 702(1955年):ビジネス用データ処理システム
- IBM 704(1956年):FORTRAN言語が動作する初期システム
これらのコンピュータを使った研究の中で、コッドは重要な問題に気づいた。「データの管理」の困難さである。
1960年代のデータ管理問題
1960年代のコンピュータシステムでは、データの管理は非常に原始的だった。データは「ファイル」として保存され、プログラマーがファイルの物理的な構造を詳細に理解してアクセスする必要があった。
当時のデータ管理の問題:
階層データベース(Hierarchical Database):
会社
├── 部門A
│ ├── 従業員1
│ ├── 従業員2
│ └── 従業員3
└── 部門B
├── 従業員4
└── 従業員5
- データは木構造(ツリー)で管理
- 親子関係以外の関係を表現することが困難
- データの追加・削除時にプログラムの大幅修正が必要
ネットワークデータベース(Network Database):
従業員 ←→ 部門
↕ ↕
プロジェクト ←→ 顧客
- データ間の関係をポインタで管理
- 複雑な関係を表現可能だが、プログラマーが全ての関係を理解する必要
- データ構造の変更時に全てのプログラムに影響
共通の問題:
- データ依存性:プログラムがデータの物理的構造に依存
- 保守性の悪さ:データ構造変更時の大量のプログラム修正
- 再利用性の低さ:異なるアプリケーション間でのデータ共有困難
- 複雑性:プログラマーが詳細な構造を理解する必要
コッドは、この状況を数学者の視点で分析した。「データとプログラムの間に、適切な抽象化レイヤーがない」ことが根本問題だと気づいた。
7.2 関係モデルという革命的発想
1970年の歴史的論文
1970年6月、Communications of the ACM誌に掲載されたコッドの論文「A Relational Model of Data for Large Shared Data Banks」は、データベース界に革命をもたらした。
この論文で、コッドは全く新しいデータモデルを提案した。「関係モデル(Relational Model)」である。
関係モデルの基本概念:
表(Table/Relation):
従業員表
+------+--------+------+--------+
| ID | 名前 | 年齢 | 部門ID |
+------+--------+------+--------+
| 001 | 田中 | 35 | D01 |
| 002 | 佐藤 | 28 | D02 |
| 003 | 鈴木 | 42 | D01 |
+------+--------+------+--------+
部門表
+--------+------------+
| 部門ID | 部門名 |
+--------+------------+
| D01 | 営業部 |
| D02 | 開発部 |
+--------+------------+
革新的なアイデア:
- データを表として表現:数学の関係(relation)として扱う
- 物理的構造の隠蔽:ユーザーは表の形だけを知ればよい
- 数学的操作:集合論・述語論理に基づくデータ操作
- 宣言的クエリ:「何を得たいか」を指定(「どう取得するか」ではない)
集合論と述語論理の応用
コッドの天才的な洞察は、データベースの問題を「数学の問題」として捉え直したことだった。彼は、集合論と述語論理を使って、データ操作を数学的に厳密に定義した。
関係代数(Relational Algebra):
選択(Selection):
σ年齢>30(従業員表) = 30歳以上の従業員のみを選択
射影(Projection):
π名前,年齢(従業員表) = 名前と年齢の列のみを取得
結合(Join):
従業員表 ⋈ 部門表 = 従業員と部門の情報を組み合わせ
数学的な美しさ:
- 閉包性:関係に対する操作の結果も関係
- 結合律・分配律:数学的法則が成立
- 最適化可能性:数学的変換による性能最適化
この数学的基盤により、データベース操作は「証明可能な正しさ」を持つようになった。
「正規化」理論の確立
コッドは、関係モデルをさらに発展させ、「正規化(Normalization)」理論を確立した。これは、データの冗長性を排除し、整合性を保つための数学的手法だった。
正規化の例:
非正規化状態(問題のあるデータ設計):
注文表
+--------+----------+----------+----------+----------+
| 注文ID | 顧客名 | 顧客住所 | 商品名 | 商品価格 |
+--------+----------+----------+----------+----------+
| O001 | 田中太郎 | 東京都 | ノートPC | 100000 |
| O002 | 田中太郎 | 東京都 | マウス | 2000 |
| O003 | 佐藤花子 | 大阪府 | ノートPC | 100000 |
+--------+----------+----------+----------+----------+
問題点:
- 顧客情報の重複(田中太郎の住所が2回記録)
- 商品情報の重複(ノートPCの価格が2回記録)
- 更新異常(田中太郎の住所変更時に複数行を更新必要)
正規化後(第3正規形):
顧客表
+--------+----------+----------+
| 顧客ID | 顧客名 | 顧客住所 |
+--------+----------+----------+
| C001 | 田中太郎 | 東京都 |
| C002 | 佐藤花子 | 大阪府 |
+--------+----------+----------+
商品表
+--------+----------+----------+
| 商品ID | 商品名 | 商品価格 |
+--------+----------+----------+
| P001 | ノートPC | 100000 |
| P002 | マウス | 2000 |
+--------+----------+----------+
注文表
+--------+--------+--------+
| 注文ID | 顧客ID | 商品ID |
+--------+--------+--------+
| O001 | C001 | P001 |
| O002 | C001 | P002 |
| O003 | C002 | P001 |
+--------+--------+--------+
正規化の利点:
- データの一貫性:一つの事実は一箇所にのみ記録
- 更新の効率性:情報の変更は一箇所のみ
- 記憶容量の節約:重複データの排除
- 整合性の保証:矛盾したデータの防止
IBMでの社内抵抗
コッドの革新的なアイデアは、IBMの社内で必ずしも歓迎されなかった。当時のIBMは、階層データベース「IMS(Information Management System)」で大きな収益を上げており、新しいモデルは既存事業の脅威と見なされた。
社内抵抗の理由:
- 既存事業への影響:IMSの売上減少への懸念
- 技術的難しさ:関係モデルの実装は困難と考えられた
- 性能への疑問:数学的な美しさより実用性を重視する声
- 市場の成熟度:顧客がそれほど高度な機能を求めていない
コッドの忍耐と信念: しかし、コッドは自分の理論の正しさを確信していた。彼は、IBM内部で関係モデルの普及活動を続け、同時に学術会議での発表を通じて外部の支持を集めた。
「数学的に正しいものは、最終的に実用的にも優れていることが証明される」—コッドの信念だった。
7.3 SQLの誕生と標準化
IBM System Rプロジェクト
1974年、IBMサンノゼ研究所で「System R」プロジェクトが開始された。これは、コッドの関係モデルを実際に実装する野心的なプロジェクトだった。
System Rプロジェクトの目標:
- 関係モデルの実装可能性証明:理論を実用的なシステムとして実現
- 性能問題の解決:階層・ネットワークDBに匹敵する処理速度
- クエリ言語の開発:ユーザーフレンドリーなデータアクセス手段
- 同時実行制御:複数ユーザーによる安全なデータアクセス
このプロジェクトで、画期的なクエリ言語「SEQUEL(Structured English Query Language)」が開発された。後に「SQL」と改名されるこの言語は、コッドの関係代数を実用的な形で表現したものだった。
SEQUEL(後のSQL)の開発
SEQUELの開発は、ドナルド・チェンバリンとレイモンド・ボイスによって行われた。彼らの目標は、「プログラマーでない人でも使えるデータベース言語」の創造だった。
SQL の設計哲学:
- 宣言的言語:「何を得たいか」を記述(「どうやって」ではない)
- 英語に近い構文:自然言語に近い表現
- 数学的基盤:関係代数・関係論理に基づく厳密性
- 最適化可能性:システムが自動的に最適な実行計画を生成
SQL の基本構文例:
データ検索(SELECT文):
-- 30歳以上の従業員の名前と年齢を取得
SELECT 名前, 年齢
FROM 従業員表
WHERE 年齢 >= 30;
-- 従業員と部門の情報を結合
SELECT e.名前, d.部門名
FROM 従業員表 e, 部門表 d
WHERE e.部門ID = d.部門ID;
データ更新(INSERT, UPDATE, DELETE文):
-- 新しい従業員を追加
INSERT INTO 従業員表 (ID, 名前, 年齢, 部門ID)
VALUES ('004', '高橋', 30, 'D01');
-- 年齢を更新
UPDATE 従業員表
SET 年齢 = 36
WHERE ID = '001';
-- 従業員を削除
DELETE FROM 従業員表
WHERE ID = '004';
競合他社の追随
System R の成功により、他のコンピュータメーカーも関係データベースの開発を始めた。
主要な競合製品:
Oracle(1979年):
- ラリー・エリソンが設立したRelational Software Inc.(後のOracle)
- IBM に先駆けて商用関係データベースをリリース
- SQL を標準クエリ言語として採用
Ingres(1980年代):
- カリフォルニア大学バークレー校のマイケル・ストーンブレーカーが開発
- 学術研究から商用化へ
- 後のPostgreSQLの前身
Sybase(1984年):
- クライアント・サーバー型アーキテクチャを採用
- 後のMicrosoft SQL Serverの基盤となる
IBM DB2(1982年):
- IBMの正式な関係データベース製品
- メインフレームからの移行を支援
SQL標準化の推進
1982年、IBM は SQL を国際標準化機構(ISO)に提案した。コッドの理論的基盤があったからこそ、技術的に中立で厳密な標準を策定することができた。
SQL標準化の歴史:
- SQL-86(SQL1):最初のISO標準
- SQL-89(SQL1 Revised):小改訂版
- SQL-92(SQL2):大幅な機能拡張
- SQL:1999(SQL3):オブジェクト指向機能の追加
- SQL:2003:XML機能、標準化関数の追加
- SQL:2023:最新版(JSON、時系列データ対応)
標準化の意義:
- 互換性の確保:異なるデータベース間での移植性
- 技術者育成:共通のスキルセットによる人材流動性
- イノベーション促進:標準基盤上での競争と発展
- 投資保護:ベンダーロックインの回避
SQLの標準化により、関係データベースは真に「ユニバーサル」な技術となった。
7.4 現代データベースシステムの基盤
ACID特性の理論化
コッドは関係モデルとSQLに加えて、データベースシステムの「信頼性」についても重要な理論を提供した。「ACID特性」の概念である。
ACID特性:
Atomicity(原子性):
-- 銀行振込の例:以下の処理は全て成功するか、全て失敗するか
BEGIN TRANSACTION;
UPDATE 口座 SET 残高 = 残高 - 10000 WHERE 口座番号 = 'A001'; -- 送金者
UPDATE 口座 SET 残高 = 残高 + 10000 WHERE 口座番号 = 'B001'; -- 受取者
COMMIT; -- 全て成功
-- または ROLLBACK; -- 全て取り消し
Consistency(一貫性):
- データベース内の制約が常に保たれる
- 残高がマイナスになってはいけない等のビジネスルール
Isolation(分離性):
- 複数の処理が同時実行されても、互いに影響しない
- トランザクション間の適切な分離レベル制御
Durability(永続性):
- 確定した処理結果は、システム障害があっても失われない
- ディスクへの確実な記録とバックアップ
この特性により、ミッションクリティカルなシステム(銀行、証券、医療等)でも関係データベースが安全に使用できるようになった。
分散データベースへの発展
1980年代、コッドは分散データベースの研究にも取り組んだ。複数のコンピュータにまたがるデータベースシステムの理論を構築した。
分散データベースの課題:
- データの分散配置:どのデータをどのサイトに置くか
- 分散クエリ処理:複数サイトのデータを効率的に結合
- 分散トランザクション:複数サイトでのACID特性保証
- 障害時の回復:一部サイトの障害時の継続運用
コッドの分散関係モデル:
- 透明性:ユーザーはデータの物理的配置を意識しない
- 自律性:各サイトが独立して運用可能
- 複製管理:データの複製による可用性向上
この理論は、現在のクラウドデータベースの基盤となっている。
NoSQLとNewSQLへの影響
2000年代以降、インターネットサービスの拡大により、従来の関係データベースでは対応困難な要求が生まれた。
新しい要求:
- スケーラビリティ:数千台のサーバーでの分散処理
- 可用性:99.99%以上の稼働率
- 低レイテンシ:ミリ秒単位の高速応答
- 柔軟なデータモデル:構造化されていないデータの処理
NoSQLデータベースの登場:
- MongoDB:ドキュメント指向データベース
- Cassandra:列指向分散データベース
- Redis:インメモリKVSデータベース
- Neo4j:グラフデータベース
しかし、これらのシステムも、コッドの理論的基盤を参考にしている。特に、データの一貫性や分散処理の概念は、関係モデル理論の応用である。
NewSQLの登場:
- Google Spanner:グローバル分散SQL データベース
- CockroachDB:分散ACID対応データベース
- TiDB:HTAP(ハイブリッド処理)対応データベース
これらは、「関係モデルの利点」と「分散スケーラビリティ」を両立させたシステムである。
現代への影響:ビッグデータとAI
コッドの関係モデル理論は、現代のビッグデータやAI分野でも重要な役割を果たしている。
データウェアハウス:
- スタースキーマ:事実表と次元表による構造化
- OLAP:多次元分析によるビジネスインテリジェンス
- ETL処理:データの抽出・変換・ロード
データレイク:
- 構造化データ統合:関係データとビッグデータの統合
- スキーマオンリード:読み取り時のデータ構造解釈
- データガバナンス:品質管理と一貫性保証
AI・機械学習での活用:
- 特徴量エンジニアリング:SQLによるデータ前処理
- モデル管理:実験結果の体系的管理
- MLOps:機械学習パイプラインの運用管理
現代のデータアーキテクチャ:
データソース → データレイク → データウェアハウス → BIツール
↓ ↓ ↓ ↓
関係DB 構造化+非構造化 関係モデル SQLクエリ
(OLTP) (保管) (OLAP) (分析)
すべての段階で、コッドの関係モデル理論が基盤として機能している。
7.5 データベース理論の遺産
コッドの12の規則
1985年、コッドは「関係データベース管理システム」の定義を明確にするため、「コッドの12の規則」を発表した。これは、真の関係データベースが満たすべき条件を体系化したものだった。
コッドの12の規則(抜粋):
規則0:基本規則
- システムは関係的、データベース的、管理システムでなければならない
規則1:情報規則
- すべての情報は表の値として表現される
規則2:保証されたアクセス規則
- すべてのデータは表名、列名、主キー値の組み合わせでアクセス可能
規則3:null値の系統的扱い
- null値は「情報なし」「該当なし」を表す統一的概念
規則4:関係モデルに基づく動的オンラインカタログ
- システムの構造情報も関係形式で管理される
規則5:包括的データ副言語規則
- データ定義、操作、制約、トランザクション制御を統一的に扱う言語
規則6:ビュー更新規則
- 理論的に更新可能なビューは実際に更新可能でなければならない
これらの規則は、現在でもデータベース製品の品質評価基準として使用されている。
学術界への影響
コッドの業績は、コンピュータサイエンス学術界にも大きな影響を与えた。
データベース理論の発展:
- クエリ最適化理論:SQL文の効率的な実行計画生成
- データベース設計理論:正規化とEr図モデリング
- トランザクション理論:並行制御と回復処理
- 分散データベース理論:分散環境でのデータ管理
著名な研究者・弟子たち:
- マイケル・ストーンブレーカー:Ingres、PostgreSQL開発者
- ジム・グレイ:トランザクション処理理論の権威
- ジェフリー・ウルマン:データベース教科書の著者
- ラグ・ラマクリシュナン:現代データベースシステムの設計者
チューリング賞受賞(1981年)
1981年、コッドはコンピュータサイエンス界最高の栄誉である「チューリング賞」を受賞した。受賞理由は「データベース管理システムの理論的基盤、特に関係データモデルの構築」だった。
受賞講演の要旨: 「データベースシステムは、人間の知識を組織化し、活用するための最も重要な道具の一つです。関係モデルは、この道具を数学的に厳密で、実用的にも優れたものにすることを目指しました。理論と実践の橋渡しこそが、真の技術革新を生むのです」
現代データサイエンスへの影響
コッドの関係モデル理論は、現代のデータサイエンス分野でも基盤技術として活用されている。
データ前処理での活用:
-- データクリーニング
SELECT DISTINCT customer_id,
TRIM(customer_name) as clean_name,
CASE WHEN age < 0 OR age > 150 THEN NULL ELSE age END as valid_age
FROM raw_customer_data
WHERE customer_name IS NOT NULL;
-- データ統合
SELECT c.customer_id, c.name, o.order_date, p.product_name
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id
JOIN products p ON o.product_id = p.product_id
WHERE o.order_date >= '2023-01-01';
機械学習での特徴量作成:
-- 顧客セグメンテーション用特徴量
SELECT customer_id,
COUNT(*) as order_count,
AVG(order_amount) as avg_order_amount,
MAX(order_date) as last_order_date,
DATEDIFF(CURRENT_DATE, MAX(order_date)) as days_since_last_order
FROM orders
WHERE order_date >= DATE_SUB(CURRENT_DATE, INTERVAL 1 YEAR)
GROUP BY customer_id;
現代のデータパイプライン:
- データソース:各種システムからのデータ収集
- データレイク:生データの一時保管
- データ変換:SQLによるETL処理
- データウェアハウス:分析用データマート
- 機械学習:特徴量エンジニアリング
- 可視化:BIツールでのダッシュボード作成
この全てのプロセスで、関係モデルの概念が基盤技術として使用されている。
データガバナンスと品質管理
現代の企業では、「データガバナンス」(データの品質・セキュリティ・コンプライアンス管理)が重要課題となっている。コッドの理論は、この分野でも指針を提供している。
関係モデルによるガバナンス:
- データ品質:正規化による一貫性保証
- セキュリティ:ビューによるアクセス制御
- 監査証跡:トランザクションログによる変更履歴
- メタデータ管理:システムカタログによる構造管理
GDPR等コンプライアンス対応:
-- 個人データの匿名化
UPDATE customer_data
SET name = 'ANONYMIZED_' || customer_id,
email = NULL,
phone = NULL
WHERE consent_flag = 'WITHDRAWN';
-- 忘れられる権利への対応
DELETE FROM customer_data
WHERE customer_id = ?
AND deletion_requested = 'YES';
この章のポイント
キーワード
- 関係データベース:データを表形式で管理し、数学的操作でアクセスするシステム
- SQL:関係データベースの標準クエリ言語
- 正規化:データの冗長性排除と整合性保証のための設計手法
現代への影響
- データベース管理システム:あらゆる情報システムの基盤技術
- ビッグデータ・AI:データ前処理と特徴量エンジニアリングの基盤
- クラウドサービス:分散データベースとしての発展
ビジネスへの示唆
- 理論的基盤の重要性:数学的厳密性が長期的優位性を生む
- 標準化の価値:オープンスタンダードによる市場拡大
- 抽象化の力:複雑さを隠蔽することでユーザビリティ向上
- データの資産価値:構造化されたデータが競争優位の源泉
エドガー・F・コッドの遺産は、現代のデジタル社会の記憶装置として機能している。彼が50年前に確立した関係モデル理論は、スマートフォンアプリからAIシステムまで、あらゆる場所でデータを管理している。一人の数学者の「美しい理論」が、情報化社会の基盤インフラとなった物語である。