関係論理

関係論理とは



関係論理(Relational Calculus)は、関係データベースにおけるデータ操作を宣言的に記述するための理論体系です。これは、データをどのように取得するかではなく、どのようなデータを取得したいかを記述するアプローチです。関係論理は、関係代数と並び、関係データベースの基盤となる重要な概念です。

関係論理には、組関係論理(タプル関係論理)定義域関係論理の2種類があります。どちらも同等の表現能力を持ち、関係データベースのクエリ言語の基礎となっています。

関係モデル



関係論理は、関係モデルに基づいてデータを扱います。関係モデルでは、データは関係(リレーション、表、テーブル)として表現されます。関係は、見出し(属性の集合)と本体(組の集合)から構成されます。

  • - 関係値:値としての関係
  • - 関係変数 (relvar):関係値を値として持つ変数
  • - 見出し:属性の順序づけられていない集合
  • - 組 (タプル):属性の集合からなるデータ構造
  • - 属性:属性名と定義域のペア
  • - 定義域データ型と同じ意味
  • - 候補キー:関係値を構成する組を識別する属性の集合

関係代数との対比



関係論理と関係代数は、どちらも関係データベースのデータ操作を扱う体系ですが、アプローチが異なります。

  • - 関係代数:手続き的。データを取得する手順を記述する。
  • - 関係論理:宣言的。取得したいデータを記述する。

例えば、書籍データベースから特定の書名の書籍を在庫としてもつ書店の店名と電話番号を問い合わせる場合、関係代数では結合、制限、射影といった具体的な手順を記述する必要があります。一方、関係論理では、「書籍関係と書店関係の書店IDが一致し、かつ指定された書名を持つ店名と電話番号を取得する」というように、取得したいデータを直接記述します。

関係代数と関係論理は表現能力が等価であり、互いに変換可能です。

関係完備



関係モデルの提唱者であるエドガー・F・コッドは、関係データベース言語の表現能力を評価するための概念として関係完備を定義しました。これは、一階述語論理に関して完全な言語であることを意味します。関係論理と関係代数は関係完備を満たしています。

組関係論理



組関係論理は、組変数を用いてクエリを記述する形式です。`{t | φ(t)}`という形式で表され、`t`は組変数、`φ`は条件式を表します。データベース述語は`R(t)`または`t∈R`として記述されます。

演算子



組関係論理では、以下の論理演算子が使用されます。


存在記号全称記号は変数を束縛するために使用されます。



  • - 顧客がいる場所:
`{t.場所 | 顧客(t)}`
  • - ブレーメン内のすべての顧客:
`{t | 顧客(t) ∧ t.場所="ブレーメン"}`
  • - 注文した顧客:
`{t | 顧客(t) ∧ ∃s(注文(s) ∧ s.顧客番号=t.顧客番号)}`
  • - 注文されていない商品:
`{t | 商品(t) ∧ ¬∃s(注文(s) ∧ s.商品番号=t.商品番号)}`

組関係論理では、結合条件は明示的に記述されます。

定義域関係論理



定義域関係論理は、定義域変数を用いてクエリを記述する形式です。`{ | p()}`という形式で表され、`Xi`は定義域変数または定数、`p`は条件式を表します。



A、B、Cをそれぞれランク、名前、IDとし、D、E、Fをそれぞれ名前、部署名、IDとします。

  • - 恒星船USSエンタープライズの全ての船長を問い合わせる:
`{ | in エンタープライズ ∧ A = "船長" }`

  • - エンタープライズの船員で星図作成の部署に属する人の名前を問い合わせる:
`{ | ∃ A, C ( in エンタープライズ ∧ ∃ D, E, F( in 部署 ∧ F = C ∧ E = "星図作成" ))}`
または
`{ | ∃ A, C ( in エンタープライズ ∧ ∃ D ( in 部署))}`

定義域関係論理では、属性名や結合条件を明確に記述する必要があります。

まとめ



関係論理は、データベースのデータ操作を宣言的に記述するための強力なツールです。組関係論理と定義域関係論理は、それぞれ異なるアプローチを持ちますが、表現能力は等価です。これらの概念を理解することは、データベース技術を深く理解する上で不可欠です。

関係論理は、SQLなどのクエリ言語の基礎となっており、データベースを扱う上で重要な概念と言えるでしょう。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。