属性(ぞくせい、)は、関係モデル (リレーショナルモデル) においては、属性名と定義域の名称のペア (属性名と定義域名から構成されるコンポーネント) である。

定義域は、データ型と同じ意味と考えてよい。属性は、その定義域に適合するなんらかの値をもつ。この値を属性値 (attribute value) という。属性値は、スカラ値もしくはより複雑な構造をもつ値である。関係データベースのデータベース言語 SQL では、属性とほぼ同じ意味で列 (カラム、) という用語が使われている。

組 (タプル、行) は、ある特定の属性の順序づけられていない集合とそれぞれの属性値から、構成される。

関係 (リレーション、表、テーブル) の見出しは、順序づけられていない属性の集合から、構成される。

組における属性

組 (タプル、行) は、ある特定の属性の順序づけられていない集合とそれぞれの属性値から、構成される。

複数の属性 (列、カラム) から構成される一つの組の型の例を示す。

+ 3つの属性から構成される組の型の例 属性名 定義域名 ID 整数型 氏名 文字列型 住所 文字列型

この型の実際の組の例を示す。 この例では、便宜的に組を視覚的な図で示している。

+ 3つの属性から構成される実際の組の例 ID : 整数型 氏名 : 文字列型 住所 : 文字列型 101 "ヒュー・ダーウェン" "沖縄県那覇市"

関係における属性

関係 (リレーション、表、テーブル) の見出しは、順序づけられていない属性の集合から構成される。関係は、一つの見出しと0以上の同じ型の組の順序づけられていない集合からなるデータ構造である。見出しを構成する属性の数を、次数 (degree) という。関係の次数は、0もしくは正の整数である。

関係の例を示す。この例では、便宜的に関係を視覚的に表 (テーブル) で示している。

+ 実際の関係の例 ID : 整数型 氏名 : 文字列型 住所 : 文字列型 102 "ヒュー・ダーウェン" "沖縄県那覇市" 202 "エドガー・F・コッド" "宮城県仙台市" 104 "クリス・デイト" "熊本県熊本市" 152 "マイケル・ストーンブレーカー" "沖縄県沖縄市"

属性は、関係モデルの演算体系である関係代数および関係論理において使われる。 関係代数および関係論理は、1つ以上の関係を元にして演算結果として1つの関係を生成する。たとえば、関係代数の射影 (projection) 演算では、1つの関係に対していくつかの属性を指定する。射影演算は、関係を構成する属性集合から、いくつかの属性を抽出する。

射影の例を示す。

+ R: A B C 1 2 3 4 5 6 + R[A,B]: A B 1 2 4 5 + R[A]: A 1 4

関係データベースのデータベース言語 SQL では、CREATE TABLE 構文で属性を指定して関係 (表、テーブル) を定義することができる。

CREATE TABLE 人名録 ( ID INTEGER, 氏名 CHAR(40), 住所 CHAR(200), PRIMARY KEY (ID) )

関連項目 定義域 (ドメイン、型) 関係 (リレーション) 組 (タプル、行) データ管理 データモデル データモデリング データベース設計 一意性制約 候補キー (candidate key) 主キー (primary key) 代理キー (alternate key) スーパーキー (super key) 関係モデル (リレーショナルモデル) 関係データベース (RDB) 関係データベース管理システム (RDBMS) データベース言語/問い合わせ言語 データ定義言語 (DDL) SQL Tutorial D

参考文献