カラム(列) からむ
簡単に言うとこんな感じ!
Excelの「列」のことだよ!データベースのテーブルを表として見たとき、縦方向に並ぶ一種類のデータの枠がカラムなんだ。「名前」「年齢」「メールアドレス」それぞれがカラムで、同じ種類のデータだけが縦にずらっと入るってこと!
カラムとは
カラム(Column)とは、リレーショナルデータベースのテーブル(表)を構成する「列」のことです。テーブルを縦横の表と見たとき、縦方向(列方向)に並ぶひとまとまりのデータ項目がカラムにあたります。たとえば「顧客テーブル」であれば「顧客ID」「氏名」「メールアドレス」「登録日」といった各項目がそれぞれ1つのカラムです。
カラムには必ずデータ型(文字列・数値・日付など)が定義されており、そのカラムにどんな種類のデータを入れられるかが決まります。また、カラムに「NULL(値なし)を許可するか」「ユニーク(重複禁止)にするか」といった制約を設けることで、データの品質を保つ仕組みになっています。
ビジネスの現場では「この項目をシステムに持たせたい」という話が出たとき、実際にはデータベースへのカラム追加として実装されます。発注側がシステムの仕様を決める際に「どんな情報を管理するか」を整理することは、カラム設計に直結する重要な作業です。
カラムの構造と役割
テーブルはカラム(列)とロウ(Row:行)の組み合わせで成り立っています。カラムが「項目の種類」を定義し、ロウが「1件分のデータ」を表します。
| 用語 | 別名 | 意味 | 例 |
|---|---|---|---|
| カラム(Column) | 列・フィールド | データの項目定義 | 「氏名」「年齢」 |
| ロウ(Row) | 行・レコード | 1件分のデータ | 「田中太郎、30歳」 |
| テーブル(Table) | 表・リレーション | カラムとロウの集合 | 顧客テーブル全体 |
| セル(Cell) | — | カラムとロウの交点にある値 | 「田中太郎」という値 |
顧客テーブルのイメージ
← カラム(列)→
┌──────────┬────────────┬──────────────────────┬────────────┐
│ 顧客ID │ 氏名 │ メールアドレス │ 登録日 │
├──────────┼────────────┼──────────────────────┼────────────┤
│ 1001 │ 田中太郎 │ tanaka@example.com │ 2024-01-15 │ ← ロウ(行)
│ 1002 │ 鈴木花子 │ suzuki@example.com │ 2024-02-03 │ ← ロウ(行)
│ 1003 │ 佐藤次郎 │ sato@example.com │ 2024-03-10 │ ← ロウ(行)
└──────────┴────────────┴──────────────────────┴────────────┘
覚え方
「カラムは縦、レコードは横」と覚えましょう。Excelで列(縦)を「カラム」、行(横)を「ロウ(レコード)」と呼ぶと覚えると迷いません。英語の「Column」は新聞の縦の段組みを意味する言葉で、縦方向というイメージが語源にあります。
主なデータ型の種類
カラムを定義するときに設定するデータ型の代表例です。
| データ型 | 主な用途 | 例 |
|---|---|---|
VARCHAR / TEXT | 文字列(氏名・住所など) | "田中太郎" |
INTEGER / INT | 整数(年齢・個数など) | 30 |
DECIMAL / NUMERIC | 小数を含む数値(金額など) | 1980.50 |
DATE / DATETIME | 日付・日時 | 2024-01-15 |
BOOLEAN | 真偽値(ON/OFFなど) | TRUE / FALSE |
BLOB | バイナリデータ(画像など) | — |
歴史と背景
- 1970年 — IBMの研究者エドガー・F・コッドが「リレーショナルモデル」を論文で発表。テーブル・カラム・ロウという概念の原型が生まれる
- 1974年 — IBMがSQLの原型となる問い合わせ言語「SEQUEL」を開発。カラムを指定してデータを操作する構文が確立される
- 1979年 — Oracle(旧Relational Software)が最初の商用リレーショナルDBMSを出荷。カラムベースの設計が実用システムへ広がる
- 1986年 — ANSI/ISO標準としてSQLが正式標準化。カラムの定義方法(
CREATE TABLE文)が規格化される - 2000年代以降 — データ分析用にカラム指向データベース(列ストア)が登場。従来の行指向ではなくカラム単位でデータを格納し、集計クエリを高速化する手法が普及
行指向 vs 列(カラム)指向
通常のデータベースは「行(ロウ)」単位でデータを格納しますが、分析用途では「列(カラム)」単位で格納するカラム指向データベースが使われます。
| 比較軸 | 行指向(Row Store) | カラム指向(Column Store) |
|---|---|---|
| 得意な操作 | 1件の挿入・更新・参照 | 特定列の集計・分析 |
| 主な用途 | 業務システム(トランザクション) | データウェアハウス・BI |
| 代表製品 | MySQL / PostgreSQL / Oracle | BigQuery / Redshift / Snowflake |
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| ISO/IEC 9075 | SQL標準規格。カラムの定義方法(CREATE TABLE文・データ型・制約)を規定 |