テーブル てーぶる
リレーショナルデータベース行(レコード)列(カラム)SQLスキーマ主キー
テーブルについて教えて
簡単に言うとこんな感じ!
データベースの中にある「Excelのシート」みたいなものだよ!縦の列が「項目名(名前・年齢・住所など)」、横の行が「1件1件のデータ」で、この表の形でデータを整理して保存するのがテーブルなんだ!
テーブルとは
テーブル(Table)とは、リレーショナルデータベース(RDB) においてデータを格納するための基本単位です。行(レコード)と列(カラム / フィールド)で構成された表形式の構造を持ち、同じ種類のデータをまとめて管理します。たとえば「顧客テーブル」には顧客ID・氏名・メールアドレス・登録日といった列が並び、顧客1人分のデータが1行として格納されます。
テーブルはデータベースを構成する最も重要な要素であり、SQL(Structured Query Language) を使って検索・追加・更新・削除といった操作を行います。業務システムの設計では「どんなテーブルをどう設計するか」がシステム全体の品質を大きく左右するため、発注・選定の際にも意識しておくべき概念です。
テーブルの構造
テーブルは大きく「列(カラム)の定義」と「行(レコード)のデータ」の2要素で成り立っています。
| 構成要素 | 別名 | 役割 | Excelで例えると |
|---|---|---|---|
| 列(カラム) | フィールド / 属性 | データの「種類・項目名」を定義 | 1行目のヘッダー行 |
| 行(レコード) | タプル / レコード | 実際の1件分のデータ | ヘッダー以外の各行 |
| セル | — | 特定の行×列の値 | Excelのセル |
| 主キー(PK) | プライマリキー | 行を一意に識別する列 | 通し番号・IDなど |
| 外部キー(FK) | フォーリンキー | 他のテーブルと結びつける列 | 参照用の番号 |
テーブルのイメージ(顧客テーブルの例)
customers テーブル
┌────────────┬────────────┬──────────────────────┬────────────┐
│ 顧客ID(PK) │ 氏名 │ メールアドレス │ 登録日 │
├────────────┼────────────┼──────────────────────┼────────────┤
│ 1001 │ 山田 太郎 │ yamada@example.com │ 2024-01-10 │
│ 1002 │ 鈴木 花子 │ suzuki@example.com │ 2024-02-05 │
│ 1003 │ 田中 一郎 │ tanaka@example.com │ 2024-03-22 │
└────────────┴────────────┴──────────────────────┴────────────┘
テーブルの主なデータ型(カラムに設定できる種類)
| データ型 | 内容 | 例 |
|---|---|---|
| INTEGER / INT | 整数 | 1, 100, -5 |
| VARCHAR(n) | 可変長の文字列(最大n文字) | “山田太郎” |
| DATE / DATETIME | 日付・日時 | 2024-01-10 |
| BOOLEAN | 真偽値(True/False) | TRUE, FALSE |
| DECIMAL / NUMERIC | 小数を含む数値 | 12345.67 |
歴史と背景
- 1970年 — IBMの研究者エドガー・F・コッドが「リレーショナルモデル」を提唱。データを表(テーブル)の形で扱うというアイデアを論文で発表
- 1974年 — IBMがリレーショナルDB向けの問い合わせ言語「SEQUEL」を開発(後のSQL)
- 1979年 — Oracle社が商用RDBMSを初リリース。テーブルという概念が実用化される
- 1986年 — ANSI/ISO がSQLを標準化。テーブル操作の共通言語が確立
- 1990年代〜 — MySQL・PostgreSQLなどオープンソースRDBMSが台頭し、Webシステムの普及とともにテーブルが当たり前の概念に
- 2000年代〜 — NoSQLデータベースが登場。テーブル形式ではないデータ管理も選択肢に加わるが、業務システムではRDBのテーブルが依然主流
テーブルとスキーマ・データベースの関係
テーブル単体ではなく、データベース全体の構造(スキーマ) の中でテーブルがどう位置づけられるかを把握しておくと、システム発注・設計のコミュニケーションがスムーズになります。
テーブル・スキーマ・データベースの違い
| 概念 | 役割 | 例え |
|---|---|---|
| データベース | テーブルをまとめて管理するコンテナ | 会社全体のキャビネット |
| スキーマ | テーブルの構造・定義を記述した設計図 | キャビネットの引き出しの目次 |
| テーブル | 実際にデータが入った表 | 1つの引き出しの中のファイル |
| レコード(行) | テーブルの1件分のデータ | ファイルの1枚の書類 |
よくある業務テーブルの例
業務システムでよく登場するテーブルの種類を知っておくと、ベンダーとの会話に役立ちます。
| テーブル名 | 役割 |
|---|---|
| 顧客マスタ | 顧客情報を一元管理 |
| 商品マスタ | 商品・サービスの定義情報 |
| 注文ヘッダ | 注文1件の基本情報(日時・顧客・合計) |
| 注文明細 | 注文1件に含まれる商品の一覧 |
| ユーザーマスタ | システムへのログインユーザー情報 |
| ログテーブル | 操作履歴・エラー履歴の記録 |
関連する規格・RFC
| 規格番号 | 内容 |
|---|---|
| ISO/IEC 9075 (SQL標準) | SQLのテーブル操作(CREATE TABLE・SELECT等)を定義する国際標準規格 |
関連用語
- データベース — データを体系的に格納・管理するシステム全体
- SQL — テーブルを操作するための標準的な問い合わせ言語
- 主キー(プライマリキー) — テーブル内の行を一意に識別するための列
- 外部キー(フォーリンキー) — 別テーブルの主キーを参照してテーブル間を結びつける列
- リレーショナルデータベース — テーブル形式でデータを管理するデータベースの種類
- スキーマ — データベースやテーブルの構造・定義を記述した設計図
- インデックス — テーブルの検索を高速化するための仕組み
- 正規化 — テーブル設計を整理し、データの重複・矛盾をなくす設計手法