第1章 RDBとは何か

更新日:2025年12月28日

🎧

この章を音声で聴く

再生速度:
本章では、リレーショナルデータベース(RDB)の基本概念と歴史的背景を解説する。ファイルシステムによるデータ管理の限界から始まり、階層型・ネットワーク型データベースを経てRDBが登場した経緯を説明する。また、NoSQLやKVSとの比較を通じて、RDBの特徴と適用領域を明確にする。

1. データベースの歴史

1.1 ファイルシステムからDBへ

コンピュータの黎明期、データはファイルシステム上のテキストファイルやバイナリファイルとして管理されていた。この方式には以下の問題があった。

Table 1. ファイルシステム管理の問題点

問題 説明
データ冗長性 同じデータが複数ファイルに重複して保存される
データ不整合 重複データの一部のみ更新されると矛盾が発生
プログラム依存性 ファイル形式変更時に全プログラムの修正が必要
同時アクセス困難 複数ユーザーの同時読み書きで競合が発生
セキュリティ不足 細かいアクセス制御が困難

これらの問題を解決するため、データを一元管理し、アプリケーションから独立した形で提供する「データベース管理システム(DBMS)」が開発された。

1.2 階層型・ネットワーク型

1960年代、最初に実用化されたDBMSは階層型とネットワーク型であった。

階層型データベース:データを木構造(ツリー)で表現する。親子関係が明確で高速だが、多対多の関係を表現できない。IBMのIMS(Information Management System, 1966年)が代表例である。

ネットワーク型データベース:データをグラフ構造で表現する。多対多の関係を表現できるが、構造が複雑でプログラミングが困難。CODASYLが標準化を推進した。

Table 2. 初期DBMSの比較

項目 階層型 ネットワーク型
データ構造 木構造(1:N) グラフ構造(M:N)
ナビゲーション 上から下へ ポインタを辿る
柔軟性 低い 中程度
プログラミング 比較的容易 複雑
代表製品 IBM IMS IDMS

2. RDBの登場

2.1 Coddの関係モデル

1970年、IBMの研究者E.F.Codd(エドガー・フランク・コッド)は論文「A Relational Model of Data for Large Shared Data Banks」を発表した。この論文で提唱された「関係モデル(Relational Model)」は、データベース技術に革命をもたらした。

Coddの関係モデルは、数学の集合論と述語論理に基づいている。データを「リレーション(関係)」として表現し、リレーション間の操作を「関係代数」として定義した。この数学的な基盤により、データの整合性を理論的に保証できるようになった。

Coddの12規則
1985年、CoddはRDBMSが満たすべき12の規則を発表した。完全に準拠する製品は存在しないが、RDBMSの評価基準として参照される。主な規則として「情報規則(すべての情報はテーブルで表現)」「アクセス保証規則(テーブル名、主キー、列名でデータにアクセス可能)」などがある。

2.2 RDBの特徴

RDBの主要な特徴を以下に示す。

Table 3. RDBの特徴

特徴 説明 利点
テーブル構造 データを行と列の表形式で表現 直感的で理解しやすい
SQL言語 宣言的なデータ操作言語 「何を」取得するかを記述(「どうやって」は不要)
データ独立性 物理的格納方法とアプリケーションの分離 スキーマ変更がアプリに影響しにくい
ACID特性 トランザクションの信頼性保証 データ整合性の確保
正規化理論 データ冗長性を排除する設計手法 更新異常の防止

3. 他のDBとの比較

3.1 NoSQL

NoSQL(Not Only SQL)は、2000年代後半にWebサービスの大規模化に伴い普及したデータベースの総称である。RDBの制約を緩和し、スケーラビリティと柔軟性を重視する。

Table 4. NoSQLの種類

種類 データモデル 代表製品 用途
ドキュメント型 JSON/BSON文書 MongoDB, CouchDB コンテンツ管理、カタログ
カラム型 列ファミリー Cassandra, HBase 時系列データ、ログ分析
グラフ型 ノードとエッジ Neo4j, Amazon Neptune SNS、レコメンデーション

3.2 KVS

KVS(Key-Value Store)は、キーと値のペアでデータを格納する最もシンプルなデータベースである。複雑なクエリは不可能だが、極めて高速な読み書きが可能。

Table 5. 主要KVS製品

製品 特徴 主な用途
Redis インメモリ、データ構造サポート キャッシュ、セッション、リアルタイム分析
Memcached シンプル、分散キャッシュ Webアプリケーションキャッシュ
Amazon DynamoDB フルマネージド、自動スケーリング サーバーレスアプリケーション

3.3 使い分け

データベースの選択は、要件に応じて行う必要がある。以下に選択の指針を示す。

RDBを選択すべき場合

データの整合性が最重要(金融、会計、在庫管理)、複雑なクエリが必要、トランザクション処理が必要、スキーマが明確に定義できる場合はRDBが適している。

NoSQLを選択すべき場合

スキーマが頻繁に変更される、大量の非構造化データを扱う、水平スケーリングが必要、高速な読み書きが優先される場合はNoSQLが適している。

KVSを選択すべき場合

単純なキーアクセスのみ、極めて高いスループットが必要、データの永続性より速度が優先される場合はKVSが適している。

実践ポイント

現代のシステムでは、RDBとNoSQL/KVSを組み合わせる「ポリグロット・パーシステンス」が一般的である。例えば、マスターデータはRDBで管理し、セッション情報はRedisでキャッシュ、ログデータはMongoDBに格納するといった構成が取られる。

4. まとめ

本章で解説した概念を整理する。

Table 6. 第1章のまとめ

概念 内容
ファイルシステムの限界 データ冗長性、不整合、プログラム依存性
初期DBMS 階層型(IMS)、ネットワーク型(IDMS)
関係モデル 1970年、Coddが提唱。集合論に基づく
RDBの特徴 テーブル構造、SQL、データ独立性、ACID
NoSQL ドキュメント型、カラム型、グラフ型
KVS キーと値のペア、高速アクセス
使い分け 要件に応じた選択、ポリグロット・パーシステンス
参考・免責事項
本コンテンツは2025年12月時点の情報に基づいて作成されています。各製品の機能や仕様は変更される可能性があります。最新情報は公式ドキュメントをご確認ください。