属性 (データベース)
属性(ぞくせい、英語: attribute)は、関係モデル (リレーショナルモデル) においては、属性名と定義域の名称のペア (属性名と定義域名から構成されるコンポーネント) である。
定義域は、データ型と同じ意味と考えてよい。属性は、その定義域に適合するなんらかの値をもつ。この値を属性値 (attribute value) という。属性値は、スカラ値[要曖昧さ回避]もしくはより複雑な構造をもつ値である。関係データベースのデータベース言語 SQL では、属性とほぼ同じ意味で列 (カラム、英語: column) という用語が使われている。
組における属性
編集組 (タプル、行) は、ある特定の属性の順序づけられていない集合とそれぞれの属性値から、構成される。
複数の属性 (列、カラム) から構成される一つの組の型の例を示す。
属性名 | 定義域名 |
---|---|
ID | 整数型 |
氏名 | 文字列型 |
住所 | 文字列型 |
この型の実際の組の例を示す。 この例では、便宜的に組を視覚的な図で示している。
ID : 整数型 | 氏名 : 文字列型 | 住所 : 文字列型 |
---|---|---|
101 | "ヒュー・ダーウェン" | "沖縄県那覇市" |
関係における属性
編集関係 (リレーション、表、テーブル) の見出しは、順序づけられていない属性の集合から構成される。関係は、一つの見出しと0以上の同じ型の組の順序づけられていない集合からなるデータ構造である。見出しを構成する属性の数を、次数 (degree) という。関係の次数は、0もしくは正の整数である。
関係の例を示す。この例では、便宜的に関係を視覚的に表 (テーブル) で示している。
ID : 整数型 | 氏名 : 文字列型 | 住所 : 文字列型 |
---|---|---|
102 | "ヒュー・ダーウェン" | "沖縄県那覇市" |
202 | "エドガー・F・コッド" | "宮城県仙台市" |
104 | "クリス・デイト" | "熊本県熊本市" |
152 | "マイケル・ストーンブレーカー" | "沖縄県沖縄市" |
属性は、関係モデルの演算体系である関係代数および関係論理において使われる。 関係代数および関係論理は、1つ以上の関係を元にして演算結果として1つの関係を生成する。たとえば、関係代数の射影 (projection) 演算では、1つの関係に対していくつかの属性を指定する。射影演算は、関係を構成する属性集合から、いくつかの属性を抽出する。
射影の例を示す。
|
|
|
関係データベースのデータベース言語 SQL では、CREATE TABLE
構文で属性を指定して関係 (表、テーブル) を定義することができる。
CREATE TABLE 人名録 (
ID INTEGER,
氏名 CHAR(40),
住所 CHAR(200),
PRIMARY KEY (ID)
)
関連項目
編集- 定義域 (ドメイン、型)
- 関係 (リレーション)
- 組 (タプル、行)
- データ管理
- データモデル
- データモデリング
- データベース設計
- 一意性制約
- 関係モデル (リレーショナルモデル)
- 関係データベース (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