データベース基本概念

カラム(列) からむ

フィールドテーブルデータ型スキーマリレーショナルデータベース
カラムについて教えて

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

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 列(カラム)指向

通常のデータベースは「行(ロウ)」単位でデータを格納しますが、分析用途では「列(カラム)」単位で格納するカラム指向データベースが使われます。

行指向 vs カラム指向 — データ格納のちがい 行指向(Row Store) 通常のRDB(MySQL, PostgreSQL など) ID 氏名 金額 1001 田中 5,000 1002 鈴木 8,200 1003 佐藤 3,100 ← 1行まるごとディスクに並べて格納 1件の登録・更新が速い カラム指向(Column Store) 分析DB(BigQuery, Redshift など) ID 1001 1002 1003 氏名 田中 鈴木 佐藤 金額 5,000 8,200 3,100 ↑ 列ごとにまとめてディスクに格納 「金額の合計」など集計クエリが速い どちらもカラムという概念は同じ。格納の仕方が異なる
比較軸行指向(Row Store)カラム指向(Column Store)
得意な操作1件の挿入・更新・参照特定列の集計・分析
主な用途業務システム(トランザクション)データウェアハウス・BI
代表製品MySQL / PostgreSQL / OracleBigQuery / Redshift / Snowflake

関連する規格・RFC

規格・RFC番号内容
ISO/IEC 9075SQL標準規格。カラムの定義方法(CREATE TABLE文・データ型・制約)を規定

関連用語

  • テーブル — データを格納する表の単位。カラムとロウで構成される
  • ロウ(レコード) — テーブルの行。1件分のデータのまとまり
  • プライマリキー — 各行を一意に識別するカラム(または複数カラムの組み合わせ)
  • データ型 — カラムに格納できる値の種類(文字列・数値・日付など)
  • インデックス — 特定カラムの検索を高速化する仕組み
  • スキーマ — テーブルやカラムの構造定義全体を指す設計図
  • NULL — カラムに値が存在しない状態を示す特殊な値
  • カラム指向データベース — カラム単位でデータを格納し分析クエリを高速化するDB