データベース基本概念

リレーショナルデータベース りれーしょなるでーたべーす

SQLテーブルRDBMS正規化主キー外部キー
リレーショナルデータベースについて教えて

簡単に言うとこんな感じ!

Excelの表みたいなシートがいくつもあって、それぞれが「顧客ID」などの共通の列でつながっているイメージだよ。この「表(テーブル)の集まり+つながり」がリレーショナルデータベースなんだ!


リレーショナルデータベースとは

リレーショナルデータベース(Relational Database、略して RDB)とは、データを**行と列からなる表(テーブルの形式で格納し、テーブル同士を関係(リレーション)**で結び付けて管理する仕組みです。1970年にIBMの研究者 エドガー・F・コッド が発表した「関係モデル(リレーショナルモデル)」を理論的な基礎としています。

ビジネスの現場では、顧客情報・注文履歴・商品マスタといったデータをバラバラに管理するのではなく、テーブルを分けて持ちながら必要なときに組み合わせて取り出せる点が強みです。たとえば「Aさんが先月注文した商品の一覧」のような複雑な問い合わせも、SQL(Structured Query Language) という言語を使って柔軟に引き出せます。

RDBを動かすソフトウェアのことを RDBMS(リレーショナルデータベース管理システム) と呼びます。MySQL・PostgreSQL・Oracle Database・Microsoft SQL Server などが代表例で、企業のシステム基盤として広く使われています。


テーブルとリレーションの構造

RDBの中心概念は「テーブル」と「キー」、そしてテーブル同士の「リレーション(関係)」です。

用語意味Excelで例えると
テーブルデータを格納する表1枚のシート
カラム(列)データの項目(属性)列ヘッダー(氏名・金額など)
レコード(行)1件分のデータ1行分のデータ
主キー(Primary Key)各レコードを一意に識別するID行ナンバー(重複なし)
外部キー(Foreign Key)別テーブルの主キーを参照する列別シートのIDを参照するVLOOKUP的な列
リレーションテーブル同士のつながりシート間の参照関係

覚え方:「表と橋」

RDBは 「表(テーブル)」と「橋(リレーション)」 でできていると覚えましょう。データは表に収め、表と表の間には共通のID(キー)という橋を渡します。橋があるおかげで、別々の表の情報を瞬時に組み合わせて取り出せます。

テーブルの例

【顧客テーブル】
顧客ID | 氏名       | 住所
-------+------------+--------
  1    | 田中 太郎  | 東京都
  2    | 鈴木 花子  | 大阪府

【注文テーブル】
注文ID | 顧客ID | 商品名   | 金額
-------+--------+----------+------
 101   |   1    | ノートPC | 80000
 102   |   2    | マウス   |  3000
 103   |   1    | キーボード| 5000

↑ 顧客IDが「橋」となって2つのテーブルがつながっている

歴史と背景

  • 1970年 — IBM研究員エドガー・F・コッドが論文「大規模共有データバンクのためのデータの関係モデル」を発表。RDBの理論的基礎が誕生
  • 1974年 — IBMがSQL(当初はSEQUEL)の原型を開発。表をまたいだデータ操作を標準化する言語として設計された
  • 1979年 — Oracle社がRDBMSの商用製品第1号を発売。企業向けデータベース市場が本格的に始まる
  • 1987年 — ANSI/ISO によりSQLが国際標準規格として制定。異なるRDBMS製品間の互換性が高まる
  • 1990年代 — MySQL・PostgreSQLなどのオープンソースRDBMSが登場。Webアプリケーションの普及とともに一気に広まる
  • 2000年代以降 — ビッグデータ時代の到来とともに NoSQL が台頭するも、RDBは基幹業務系システムの標準として引き続き主役であり続ける

RDB vs NoSQL:何が違うのか

近年は NoSQL(非リレーショナルDB) という選択肢も増えています。両者は「どんなデータをどう使うか」で使い分けます。

RDB vs NoSQL 比較 リレーショナルDB(RDB) データ構造:表(テーブル) スキーマ:固定(事前定義必須) クエリ言語:SQL 得意:複雑な結合・集計・整合性 例:MySQL / PostgreSQL / Oracle NoSQL データ構造:文書・KV・グラフ等 スキーマ:柔軟(後から変更可) クエリ言語:製品ごとに異なる 得意:大量データ・高速読み書き 例:MongoDB / Redis / DynamoDB vs

正規化:データの重複をなくす設計ルール

正規化(Normalization) とは、テーブル設計において「同じデータを1か所にだけ持つ」ようにして、矛盾や無駄を排除する作業です。たとえば顧客名を注文テーブルにも顧客テーブルにも持っていると、名前が変わったときに両方を更新しなければならず、片方だけ変えると矛盾が生じます。正規化によりテーブルを適切に分割することで、こうした問題を防ぎます。


関連する規格・RFC

規格番号内容
ISO/IEC 9075SQLの国際標準規格。SQL:2023 が最新版。SELECT・INSERT・JOINなどの構文を定義
ISO/IEC 10026分散トランザクション処理(DTP)の標準。RDB間をまたいだトランザクション整合性に関わる

関連用語

  • SQL — RDBに対してデータの検索・追加・更新・削除を行う標準的な問い合わせ言語
  • 主キー(Primary Key) — テーブル内の各レコードを一意に識別するための列
  • 外部キー(Foreign Key) — 別テーブルの主キーを参照して、テーブル間のリレーションを実現する列
  • 正規化 — データの重複や矛盾をなくすためのテーブル設計ルール
  • トランザクション — 複数のデータ操作をひとまとめにして、すべて成功かすべて失敗かを保証する仕組み
  • ACID特性 — トランザクションの信頼性を保証する4つの性質(原子性・一貫性・独立性・永続性)
  • NoSQL — テーブル形式に縛られない非リレーショナル型データベースの総称
  • インデックス — テーブルの検索を高速化するための索引構造