データベースにおける「組」とは
データベースにおける「組(くみ)」、または「タプル(tuple)」とは、
関係モデル(リレーショナルモデル)において、データを構成する基本的な要素となる
データ構造です。具体的には、非負整数個の属性の
集合から成り立ちます。
組の構成要素
組は、複数の属性から構成されます。それぞれの属性は、属性名とその属性が取りうる値の範囲(定義域またはドメイン)のペアで定義されます。定義域は、
データ型(例えば、
整数型、文字列型など)と同じ意味で捉えることができます。
各属性は、定義域に適合する値を持ちます。つまり、組は、各属性に対して、その属性の
データ型に合った具体的な値を持つことになります。属性値は、単一の値(スカラ値)であることもあれば、より複雑な構造を持つ値であることもあります。
数学における組との違い
数学における組とは異なり、
関係モデルにおける組を構成する属性には順序がありません。この点は重要なポイントです。つまり、属性がどの順番で並んでいるかは、組の本質的な意味には影響を与えません。
次数について
組を構成する属性の数を「次数(degree)」と呼びます。次数は、0または正の整数です。次数がnである組をn組(n-tuple)と表現します。例えば、3つの属性を持つ組は3組となります。
関係(リレーション)における組
同じ型の組の
集合を「関係(リレーション)」と呼びます。関係は、0個以上の組から構成されます。
関係データベースでは、この関係がテーブルとして表現されます。
関係データベースの
データベース言語である
SQLでは、「組」とほぼ同じ意味で「行(row)」という用語が使われます。
SQLで行を生成する際には、行値構築子を利用します。
例
具体例として、ID(
整数型)、氏名(文字列型)、住所(文字列型)の3つの属性からなる組を考えてみましょう。
例えば、以下の様なデータが、この組の具体例となります。
ID: 101
氏名: ヒュー・ダーウェン
住所: 沖縄県那覇市
この例では、組の次数は3です。この組を構成する属性には順序がないため、「氏名の右側に住所がある」といった表現は誤りです。属性は、概念的に集合として存在すると捉えるべきです。
関係の例
同じ型の組が複数集まることで、関係が形成されます。例えば、以下のようなデータは関係の一例です。
ID | 氏名 | 住所 |
---|
- | --- | -- |
101 | ヒュー・ダーウェン | 沖縄県那覇市 |
102 | アリス・スミス | 東京都新宿区 |
103 | ボブ・ジョンソン | 大阪府大阪市 |
104 | キャロル・ブラウン | 福岡県福岡市 |
この関係には、同じ構造を持つ4つの組が含まれています。
まとめ
組は、データベースにおける基本的なデータ構造であり、属性と属性値の集合としてデータを表現します。関係モデルにおいて、組は関係(テーブル)を構成する要素として重要な役割を果たします。組の概念を理解することは、データベースの設計や操作を行う上で不可欠です。
関連項目
定義域 (ドメイン、型)
関係 (リレーション)
属性 (データベース)
データ管理
データモデル
データモデリング
データベース設計
関係の正規化 (リレーションの正規化、データベースの正規化)
関係モデル (リレーショナルモデル)
関係データベース (RDB)
関係データベース管理システム (RDBMS)
データベース言語/問い合わせ言語
データ定義言語 (DDL)
SQL
Tutorial D
参考文献
『データベースシステム概論 原著第6版』丸善、東京、1997年。ISBN 4-621-04276-9。
『データベース実践講義—エンジニアのためのリレーショナル理論』
オライリー・ジャパン、東京、2006年。
ISBN 4-87311-275-3。
* Database in Depth : Relational Theory for Practitioners. 北京: O'Reilly Media. (2005).
ISBN 0596100124