1

リレーショナルデータベースの基本概念

データベースとは

データベース(DB)は、体系的に整理された大量のデータを効率よく保存・管理・検索するためのシステムです。ブログ、SNS、Eコマース、銀行システムなど、現代のほぼすべてのアプリケーションはデータベースを活用しています。

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

リレーショナルデータベースは、データを「表(テーブル)」形式で管理するデータベースの標準的なモデルです。Excelのスプレッドシートのような構造で、行と列にデータが整理されます。

graph LR A["📊 テーブル(表)"] --> B["行:1件のレコード"] A --> C["列:データ属性"] B --> D["例: 顧客ID=1, 名前=太郎"] C --> E["例: 顧客ID, 名前, メール"]

テーブルの基本用語

用語 説明
テーブル データを行と列で管理する表 usersテーブル
行(レコード) 1件のデータ 太郎さんの情報
列(カラム) 特定の属性を表す nameemail
主キー(PK) 各レコードを一意に識別するカラム user_id
スキーマ テーブルの構造定義 各カラムの型・制約
users テーブル
┌─────────┬────────┬──────────────────┬─────────────────┐
│ user_id │  name  │      email       │   created_at    │
├─────────┼────────┼──────────────────┼─────────────────┤
│    1    │  太郎  │ taro@example.com │ 2026-01-15      │
│    2    │  花子  │ hanako@ex.com    │ 2026-02-10      │
│    3    │  次郎  │ jiro@example.com │ 2026-03-05      │
└─────────┴────────┴──────────────────┴─────────────────┘

データ型(型付け)

データベースは各カラムに「どんな形式のデータが入るか」を事前に定義します。主なデータ型は以下の通りです:

graph TB A["🔤 データ型"] --> B["数値"] A --> C["文字列"] A --> D["日付時刻"] A --> E["その他"] B --> B1["INTEGER: 整数"] B --> B2["DECIMAL: 小数"] B --> B3["FLOAT: 浮動小数点"] C --> C1["VARCHAR: 可変長文字列"] C --> C2["TEXT: 長いテキスト"] C --> C3["CHAR: 固定長文字列"] D --> D1["DATE: 日付"] D --> D2["TIMESTAMP: 日時"] E --> E1["BOOLEAN: 真偽値"] E --> E2["JSON: JSON形式"]

リレーション(関連性)

リレーショナルデータベースの名称の由来は、複数のテーブル間に関連性(リレーション)を作れる ことにあります。

例:ユーザーと注文の関係

users テーブル
┌─────────┬────────┐
│ user_id │  name  │
├─────────┼────────┤
│    1    │  太郎  │
│    2    │  花子  │
└─────────┴────────┘

orders テーブル
┌──────────┬─────────┬──────────────┐
│ order_id │ user_id │ product_name │
├──────────┼─────────┼──────────────┤
│   101    │    1    │   りんご     │
│   102    │    1    │   みかん     │
│   103    │    2    │   バナナ     │
└──────────┴─────────┴──────────────┘

orders.user_idusers.user_id を紐付けることで、「どのユーザーがどの商品を注文したか」を効率的に管理 できます。このリレーションが、複雑なビジネスロジックを支える強力な機能です。

graph LR A["users テーブル"] -->|主キー: user_id| B["user_id = 1"] C["orders テーブル"] -->|外部キー: user_id| B B -->|紐付け| D["太郎の注文一覧"]

主要なRDBMS(データベース管理システム)

Excelと同じように、RDBMSも複数のソフトウェアから選べます:

DBMS 特徴 用途
PostgreSQL オープンソース、高機能、信頼性高 中~大規模システム
MySQL 高速、軽量、シンプル Webアプリ、スタートアップ
SQLite ファイルベース、セットアップ不要 モバイルアプリ、組込
Oracle Database エンタープライズ向け、超大規模対応 金融機関、大企業
Microsoft SQL Server Windows統合、ビジネス向け Windowsサーバー環境

なぜリレーショナルデータベースなのか?

graph TB A["リレーショナルデータベースの強み"] --> B["🎯 データの一貫性"] A --> C["🚀 高速検索"] A --> D["🔒 トランザクション"] A --> E["📈 拡張性"] B --> B1["重複データを排除(正規化)"] B --> B2["データの矛盾を防ぐ"] C --> C1["インデックスで高速検索"] C --> C2["複雑な条件検索も効率的"] D --> D1["複数操作の原子性確保"] D --> D2["データの安全性向上"] E --> E1["テーブルの拡張が容易"] E --> E2["新しい関係性の追加が簡単"]

まとめ

  • リレーショナルデータベースは、行と列からなるテーブルでデータを管理します
  • 複数テーブル間のリレーションにより、複雑なデータ関係を効率的に表現できます
  • スキーマでデータ型と構造を事前に定義し、データの一貫性を保ちます
  • 高速検索トランザクションにより、大規模システムでも信頼できる運用が可能です

次の章では、効率的で一貫性のあるテーブル設計に不可欠な 正規化 について学びます。