組 (くみ、タプル、英: tuple)とは関係モデル (リレーショナルモデル) において、非負整数個の属性 の集合からなるデータ構造のことである。
データベースにおける組においては、次のことが言える。
- 関係データベースのデータベース言語であるSQLでは、組とほぼ同じ意味で行 (row) という用語が使われている。
- 属性は、属性名と定義域 (ドメイン、型) の名称のペアである。
- 定義域は、データ型と同じ意味と考えてよい。
- 属性は、その定義域に適合するなんらかの属性値をもつ。
- すなわち、一つの組においては、その組に含まれる属性それぞれが、その属性の定義域の属性値をもつ。
- 属性値は、スカラ値[要曖昧さ回避]もしくはより複雑な構造をもつ値である。
- 数学における組とは異なり、関係モデルにおける組を構成する属性は順序づけられていない。
- 組を構成する属性の数を、次数 (degree) という。
- 組の次数は、0もしくは正の整数である。
- 次数が n である組を n 組 (n-tuple) という。
- 関係値 (あるいは単に関係、リレーション) は、0以上の同じ型の組の集合から構成される。
例
複数の属性から構成される一つの組の型の例を示す。
3つの属性から構成される組の型の例
属性名 : 定義域名
|
ID : 整数型
|
氏名 : 文字列型
|
住所 : 文字列型
|
この型の実際の組の例を示す。
この例では、便宜的に組を視覚的な図で示している。
3つの属性から構成される実際の組の例
ID : 整数型 |
氏名 : 文字列型 |
住所 : 文字列型
|
101 |
"ヒュー・ダーウェン" |
"沖縄県那覇市"
|
この例の組は、IDという属性名である整数型の101という属性値をもつ属性と、氏名という属性名である文字列型の "ヒュー・ダーウェン" という属性値をもつ属性と、住所という属性名である文字列型の "沖縄県那覇市" という属性値をもつ属性の、3つの属性から構成されている。
この例の組の次数は、3である。
先述したように、組を構成する属性は順序づけられていない。
つまり、この例の組で「氏名の右側に住所がある」と述べることはまちがいであり、「住所は3番目の属性である」と述べることもまちがいである。
関係における組
同じ型の組の特定の集合は、関係 (リレーション) を構成する。
関係を構成する組の数 (濃度) は、0以上である。
関係の例を示す。
同じ型の組から構成される実際の関係の例
ID : 整数型 |
氏名 : 文字列型 |
住所 : 文字列型
|
101 |
"ヒュー・ダーウェン" |
"沖縄県那覇市"
|
202 |
"エドガー・F・コッド" |
"宮城県仙台市"
|
104 |
"クリス・デイト" |
"熊本県熊本市"
|
152 |
"マイケル・ストーンブレーカー" |
"沖縄県沖縄市"
|
この例の関係には、同じ型の組が4つ含まれている。
関係データベースのデータベース言語 SQL では、行値構築子で組を次のように生成することができる。
(101, "ヒュー・ダーウェン", "沖縄県那覇市")
関連項目
参考文献