かんけい‐データベース〔クワンケイ‐〕【関係データベース】
読み方:かんけいでーたべーす
リレーショナルデータベース
【英】relational database, RDB
リレーショナルデータベースとは、データベースの形式の一つで、関係モデルと呼ばれる概念に基づいてデータを扱うデータベースのことである。
リレーショナルデータベースでは、データにカラム(列)とレコード(行)が与えられ、テーブル(表)の中に配置して整理されている。それぞれのカラムやレコードを中心にデータを整理し直すことで、データの抽出操作を容易にできる。
リレーショナルデータベースは現在最も普及しており、単にデータベースといった場合にはリレーショナルデータベースを指していることも多い。
リレーショナルデータベースを操作・管理するためのシステムは、リレーショナルデータベース管理システム(RDBMS)と呼ばれる。代表的なリレーショナルデータベース管理システムとしては、Oracle社のOracleや、Microsoft社のSQL Server、OSSとして配布されているMySQLやPostgreSQLなどがある。
参照リンク
Oracle
Microsoft SQL Server
MySQL
PostgreSQL
関係データベース
関係データベース
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/06/02 09:04 UTC 版)
関係データベース(かんけいデータベース、リレーショナルデータベース、英: relational database)は、関係モデル(リレーショナルデータモデル、後述)にもとづいて設計、開発されるデータベースである。関係データベースを管理するデータベース管理システム (DBMS) を関係データベース管理システム (RDBMS) と呼ぶ。
Oracle Database、Microsoft SQL Server、MySQL、PostgreSQL、DB2、FileMaker、H2 Database などがRDBMSである[1] 。
関係モデル

関係モデルは、IBMのエドガー・F・コッドが考案し[2]、現在もっとも広く用いられるデータモデルである。データベースの利用者は、クエリ(問い掛け)をデータベースに与え、データを検索したり、変更することができる。
データは表に似た構造で管理されるが、関係(リレーション)と呼ぶ概念でモデル化される。関係(リレーション)は組(タプル、表における行に相当する)、属性(アトリビュート、表における列に相当する)、定義域(ドメイン)、候補キー(主キー)、外部キーなどによって構成される。SQLなどに代表されるデータベース言語(問い合わせ言語)を用いて、関係に対して制限・射影・結合・和・差・交わりなどの関係代数演算(集合演算を含む)ないし関係論理演算を行うことで結果を取り出す。
関係を複数持つことも可能で、互いを関連させることも可能である。
例
例えばある食品を扱う(架空の)通信販売会社における顧客管理データベースでは、顧客リストと物品販売リストは別々のデータ群であるが、顧客管理番号や顧客名などで連結して情報を抽出することが可能である。これを図表であらわすと、以下の通りになる。
- 食品通信販売会社におけるデータベースの例(※データは架空のもの)
顧客番号 | 顧客氏名 | 住所1 | 住所2 | 電話番号 |
---|---|---|---|---|
00001 | 相田孝之 | 東京都新宿区 | 歌舞伎町x-x-x | 03-xxxx-xxxx |
00002 | 伊藤美香 | 神奈川県横浜市 | 中区山下町xx | 045-xxx-xxxx |
00003 | 内田浩二 | 埼玉県さいたま市 | 高砂xx-xx | 048-xxx-xxxx |
⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
販売日 | 顧客番号 | 商品1 | 商品2 | 商品3 | …… |
---|---|---|---|---|---|
050115 | 00002 | 吟醸灘一本 | 特選おつまみ | ||
050116 | 00001 | 神戸和牛セット | |||
050116 | 00003 | 特売・生ハム | 粒マスタード | マリーローランサン | |
050117 | 00001 | 薩摩黒豚ハム | |||
⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
この2つのデータ群を顧客番号で関連付け、顧客番号の代わりに顧客氏名のデータを要求すると、以下の表になる。通販会社は、これを参照して顧客の嗜好を判断し、新商品案内の送付を判断が可能となる。
顧客氏名 | 商品1 | 商品2 | 商品3 | …… |
---|---|---|---|---|
相田孝之 | 神戸和牛セット | |||
相田孝之 | 薩摩黒豚ハム | |||
伊藤美香 | 吟醸灘一本 | 特選おつまみ | ||
内田浩二 | 特売・生ハム | 粒マスタード | マリーローランサン | |
⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
販売日を050116(2005年1月16日)で限定して、顧客番号で関連付け、商品と送り先(顧客住所)のデータを要求すると以下のとおり。通販会社はこれを参照して、注文された商品を箱に入れ、宅配便の送り状に宛先を記入して商品発送を行う。
送り先住所1+2 | 顧客氏名 | 商品1 | 商品2 | 商品3 | …… |
---|---|---|---|---|---|
東京都新宿区歌舞伎町x-x-x | 相田孝之 | 神戸和牛セット | |||
埼玉県さいたま市高砂xx-xx | 内田浩二 | 特売・生ハム | 粒マスタード | マリー | …… |
⋮ | ⋮ | ⋮ | ⋮ | ⋮ | ⋮ |
目的に合わせてデータを連結して求める表が得られことが関係データベースの最大の特徴である。データを連結する際の目安となる項をキーと呼ぶが、このキーは、全てのデータに一貫して一意である必要がある。この例では顧客番号がキーであるが、同じ顧客番号で複数の会員が登録されていると、データの抽出に異常が発生する。実際は不適切な重複キーを登録する時点で、クエリエラーとして返信される。
この様式は、相互のデータベースが個々に存在していることで、各々のデータベース内容の変更に対応させやすく、相互連結をクエリによって行うことで、逐次的に部分的な登録内容の変更がなされても、随時最新の情報を利用できる点で優れている。上記の例で例えるなら、顧客番号00001の相田氏が引越しをして住所が変った際に、顧客データベースだけを変更して、再び各々の同じクエリ(問い掛け)をデータベースに送信すれば、住所変更後のデータに更新されたものが返信されてくることとなる。
例について(備考)
上記例は、顧客データベースと販売データベースの2テーブル(上に述べたリスト状のデータ群)に分けたが、実際に業務を処理するデータベースは、さらに商品リストのテーブルが別に設けられ、この商品データベースでは各々の商品定価などの情報が管理される(もっといえば、商品データベースも様々な要素でいくつものテーブルに分解されるだろう)など、いくつものテーブルが連携して利用者にデータ提供を設計する。これはテーブル上のデータが重複する冗長性を避け、よりデータを管理しやすくするためである。これらもやはりキーによって相互連結されて利用される。
一度きちんと設計されたデータベースでは、複数のクエリもあらかじめ定型文(定型クエリ)の形で用意され、利用者は何も考えずに用意された定型のクエリを投げ掛けることで、随時最新のデータを元にした表を見ることができる。
これが実際の業務に利用されるアプリケーションソフトウェアの形ともなると、グラフィカルユーザインターフェース (GUI) などの操作画面を持ち、利用者は画面上のボタンをクリックすることで、プログラム内部でクエリ文が組み合わせによって生成され、データベースに投げ掛けられ、戻ってきたデータをアプリケーション側で処理し、適切な画面上に表示されたり、表計算ソフトで開くためのファイル形式で答えが出力・提供されたりすることとなるため、最終的な利用者側ではクエリや関係 (リレーション) 等は全くと言ってよいほどに意識されていないことが多い。
脚注
- ^ E. F. Codd(1969) "A Relational Model of Data for Large Shared Data Banks" IBM Research Laboratory, California. 全文:http://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf
関連項目
- 関係モデル(リレーショナルモデル)
- 関係(リレーション)
- 候補キー
- 主キー
- 外部キー
- 関係の正規化
- 関係代数 (関係モデル)
- 関係論理(関係計算)
- 関係データベース管理システム - 関係データベース管理システムの比較
- トランザクション
- データ完全性(一貫性制約)
- データベース言語/問い合わせ言語
- データベース設計
- データモデリング
- オブジェクト関係データベース
- オブジェクトデータベース
- 射影
- 結合(関係代数)
- 和(関係代数・関係モデル)
- 選択(関係代数・選択演算)
関係 (データベース)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/12/27 17:36 UTC 版)
![]() | この記事に雑多な内容を羅列した節があります。 |

関係(かんけい、リレーション、英: relation)とは関係モデル(リレーショナルモデル)において、一つの見出しと0以上の同じ型の組 (タプル、行) の順序づけられていない集合からなるデータ構造のことである。
値としての関係を関係値 (relation value) といい、関係値を値としてもつ変数を関係変数 (relvar, relation variable) という。
関係データベースのデータベース言語であるSQL では、関係変数とほぼ同じ意味で表 (テーブル) という用語が使われている。文脈によって、関係変数を関係と呼ぶこともあり、また関係値を関係と呼ぶこともある。
その他、データベースにおける関係には以下のことが言える。
- 関係変数が値としてもつ関係値は、時間とともに変化する。
- 関係変数はデータ定義言語 (DDL) を使って定義することができる。
- 見出し (heading) は、特定の属性 (列、カラム) の順序づけられていない集合である。
- 関係値を構成する組の集合を本体 (body) という。
- すなわち関係値は、見出しと本体から構成されている。
- 組は、0以上の属性の集合からなるデータ構造である。
- 属性は、属性名と定義域の名称のペアである。
- 定義域は、データ型と同じ意味と考えてよい。
- 属性は、その定義域に適合するなんらかの属性値をもつ。
- 属性値は、スカラ値[要曖昧さ回避]もしくはより複雑な構造をもつ値である。
- 見出しを構成する属性の数を、次数 (degree) という。
- 関係値の次数は、0もしくは正の整数である。
- 次数が n である関係値を n 項関係 (n-ary relation) という。
- 関係値を構成する組の数を濃度 (cardinality) という。
- 関係値の濃度は、0もしくは正の整数である。
- 関係値では、重複する組は存在しない。
- 関係値を構成するおのおのの組は特定の一つ以上の属性の集合で識別される。
- この属性集合を候補キー (candidate key) という。
例
複数の属性 (列、カラム) から構成される一つの見出しの例を示す。
属性名 : 定義域名 |
---|
ID : 整数型 |
氏名 : 文字列型 |
住所 : 文字列型 |
この見出しとこの見出しに適合する複数の組 (タプル、行) から構成される一つの関係値の例を示す。 この例では、便宜的に関係値を視覚的に表 (テーブル) で示している。
ID : 整数型 | 氏名 : 文字列型 | 住所 : 文字列型 |
---|---|---|
102 | "ヒュー・ダーウェン" | "沖縄県那覇市" |
202 | "エドガー・F・コッド" | "宮城県仙台市" |
104 | "クリス・デイト" | "熊本県熊本市" |
152 | "マイケル・ストーンブレーカー" | "沖縄県沖縄市" |
この例の関係値には、同じ型の組が4つ含まれている。 先述したように、見出しを構成する属性は順序づけられていない。 つまり、この例の見出しで「氏名の右側に住所がある」と述べることはまちがいであり、「住所は3番目の属性である」と述べることもまちがいである。 同じく先述したように、関係を構成する組は順序づけられていない。 つまり、この例の関係値で「 "マイケル・ストーンブレーカー" の組の前に "クリス・デイト" の組がある」と述べることはまちがいであり、「 "エドガー・F・コッド" の組は2番目の組である」と述べることもまちがいである。
基底関係変数と導出関係変数
関係変数には、基底関係変数と導出関係変数の、2つの種類がある。 関係変数に、関係代数あるいは関係論理の式を適用すると、新たに一つの関係値を導出することができる。
基底関係変数 (base relation variable) は、どの関係変数からも導出されていない、元になる関係変数をいう。
関係データベースのデータベース言語 SQL では、基底関係変数とほぼ同じ意味で基底表 (基底テーブル) という用語が使われている。
基底関係変数は、データ定義言語 (DDL) を使って定義することができる。
SQL では、CREATE TABLE
構文で基底関係変数を次のように定義することができる。
CREATE TABLE 人名録 (
ID INTEGER,
氏名 CHAR(40),
住所 CHAR(200),
PRIMARY KEY (ID)
)
導出関係変数 (derived relation variable) は、一つもしくは複数の関係変数を元にして関係代数あるいは関係論理の式を適用して導出された、関係変数をいう。
導出関係変数とほぼ同じ意味でビューという用語が使われている。
導出関係変数は、データ定義言語 (DDL) を使って定義することができる。
SQL では、CREATE VIEW
構文で導出関係変数を次のように定義することができる。
CREATE VIEW 沖縄県人名録 AS (
SELECT ID, 氏名, 住所
FROM 人名録
WHERE 住所 LIKE '沖縄県%'
)
関連項目
- 二項関係
- 定義域 (ドメイン、型)
- 属性 (列、カラム)
- 組 (タプル、行)
- データ管理
- データモデル
- データモデリング
- データベース
- データベース設計
- 関係の正規化 (リレーションの正規化、データベースの正規化)
- 一意性制約
- 関係モデル (リレーショナルモデル)
- 関係データベース (RDB)
- 関係データベース管理システム (RDBMS)
- データベース言語/問い合わせ言語
- データ定義言語 (DDL)
- SQL
- Tutorial D
参考文献
![]() | 出典は列挙するだけでなく、脚注などを用いてどの記述の情報源であるかを明記してください。 |
- 『データベースシステム概論 原著第6版』丸善、東京、1997年。ISBN 4-621-04276-9。
- Introduction to Database Systems. Addison–Wesley. (1994). ISBN 978-0201824582
- 『データベース実践講義—エンジニアのためのリレーショナル理論』オライリー・ジャパン、東京、2006年。ISBN 4-87311-275-3。
- Database in Depth : Relational Theory for Practitioners. 北京: O'Reilly Media. (2005). ISBN 0596100124
関係データベース
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/26 00:13 UTC 版)
関係データベースにおけるデータ完全性とは、データベース内のデータの正確性や妥当性を指す。多くの関係データベース管理システム (RDBMS) では、データベース内のデータ完全性を保証するために一意性制約やCHECK制約、あるいはエンティティ間に参照整合性を保つための制約などを設ける機能がある。 参照整合性とは、女Aと男Bが夫婦であるならば女Aの配偶者の配偶者が女Aである、ということを言う。女Aの配偶者の配偶者が女Cであったら、そのデータの正確性や妥当性に問題がある。つまりデータ完全性に問題がある。なお、この配偶者の例は相互参照と呼ばれる関係の正規化が不充分な状態であり、関係の正規化が不充分であるとデータ完全性を保つことが困難になる。 参照整合性を保つための制約は一般に、親子関係にあるエンティティ同士で、親データを持たない子データが存在しないように、例えば子データがある親データの抹消などの違反するデータ操作を拒否する仕組みである。
※この「関係データベース」の解説は、「データ完全性」の解説の一部です。
「関係データベース」を含む「データ完全性」の記事については、「データ完全性」の概要を参照ください。
「関係データベース」の例文・使い方・用例・文例
関係データベースと同じ種類の言葉
- 関係データベースのページへのリンク