関係 (データベース)

関係（かんけい、リレーション、）とは関係モデル（リレーショナルモデル）において、一つの見出しと0以上の同じ型の組 (タプル、行) の順序づけられていない集合からなるデータ構造のことである。
値としての関係を関係値 (relation value) といい、関係値を値としてもつ変数を関係変数 (relvar, relation variable) という。
関係データベースのデータベース言語であるSQL では、関係変数とほぼ同じ意味で表 (テーブル) という用語が使われている。文脈によって、関係変数を関係と呼ぶこともあり、また関係値を関係と呼ぶこともある。
その他、データベースにおける関係には以下のことが言える。
例.
複数の属性 (列、カラム) から構成される一つの見出しの例を示す。
この見出しとこの見出しに適合する複数の組 (タプル、行) から構成される一つの関係値の例を示す。
この例では、便宜的に関係値を視覚的に表 (テーブル) で示している。
この例の関係値には、同じ型の組が4つ含まれている。
先述したように、見出しを構成する属性は順序づけられていない。
つまり、この例の見出しで「氏名の右側に住所がある」と述べることはまちがいであり、「住所は3番目の属性である」と述べることもまちがいである。
同じく先述したように、関係を構成する組は順序づけられていない。
つまり、この例の関係値で「 "マイケル・ストーンブレーカー" の組の前に "クリス・デイト" の組がある」と述べることはまちがいであり、「 "エドガー・F・コッド" の組は2番目の組である」と述べることもまちがいである。
基底関係変数と導出関係変数.
関係変数には、基底関係変数と導出関係変数の、2つの種類がある。
関係変数に、関係代数あるいは関係論理の式を適用すると、新たに一つの関係値を導出することができる。
基底関係変数 (base relation variable) は、どの関係変数からも導出されていない、元になる関係変数をいう。
関係データベースのデータベース言語 SQL では、基底関係変数とほぼ同じ意味で基底表 (基底テーブル) という用語が使われている。
基底関係変数は、データ定義言語 (DDL) を使って定義することができる。
SQL では、codice_1 構文で基底関係変数を次のように定義することができる。
CREATE TABLE 人名録 (
 ID INTEGER,
 氏名 CHAR(40),
 住所 CHAR(200),
 PRIMARY KEY (ID)
導出関係変数 (derived relation variable) は、一つもしくは複数の関係変数を元にして関係代数あるいは関係論理の式を適用して導出された、関係変数をいう。
導出関係変数とほぼ同じ意味でビューという用語が使われている。
導出関係変数は、データ定義言語 (DDL) を使って定義することができる。
SQL では、codice_2 構文で導出関係変数を次のように定義することができる。
CREATE VIEW 沖縄県人名録 AS (
 SELECT ID, 氏名, 住所
 FROM 人名録
 WHERE 住所 LIKE '沖縄県%'