logo

関係代数

関係代数は手続き型クエリ言語です。クエリの結果を取得するための段階的なプロセスが示されています。演算子を使用してクエリを実行します。

リレーショナル演算の種類


DBMS 関係代数

1. 操作を選択します。

  • 選択操作は、指定された述語を満たすタプルを選択します。
  • それはシグマ(σ)で表されます。
 Notation: σ p(r) 

どこ:

p 選択予測に使用されます
r 関係に使用されます
p は、AND OR や NOT などの結合子を使用する命題論理式として使用されます。これらの関係演算子は、=、≠、≧、、、≦ などの関係演算子として使用できます。

例: ローン関係

支店名 ローン_いいえ
ダウンタウン L-17 1000
セコイア L-23 2000年
ペリーライド L-15 1500
ダウンタウン L-14 1500
マイアヌス L-13 500
ラウンドヒル L-11 900
ペリーライド L-16 1300

入力:

 σ BRANCH_NAME='perryride' (LOAN) 

出力:

25/100
支店名 ローン_いいえ
ペリーライド L-15 1500
ペリーライド L-16 1300

2. プロジェクトの運営:

  • この操作により、結果に表示したい属性のリストが表示されます。残りの属性はテーブルから削除されます。
  • ∏で表します。
 Notation: ∏ A1, A2, An (r) 

どこ

A1A2A3 リレーションの属性名として使用されます r

例: 顧客関係

名前 通り
ジョーンズ 主要 ハリソン
スミス ライ麦
ヘイズ 主要 ハリソン
カレー ライ麦
ジョンソン ブルックリン
ブルックス 上院議員 ブルックリン

入力:

 ∏ NAME, CITY (CUSTOMER) 

出力:

名前
ジョーンズ ハリソン
スミス ライ麦
ヘイズ ハリソン
カレー ライ麦
ジョンソン ブルックリン
ブルックス ブルックリン

3. ユニオンの操作:

  • R と S という 2 つのタプルがあるとします。ユニオン演算には、R または S のいずれか、または R と S の両方にあるすべてのタプルが含まれます。
  • 重複したタプルを削除します。それは∪で示されます。
 Notation: R ∪ S 

結合演算は次の条件を保持する必要があります。

  • R と S は同じ番号の属性を持たなければなりません。
  • 重複したタプルは自動的に削除されます。

例:

預金者関係

文字列から整数へのJava
顧客名 アカウントなし
ジョンソン A-101
スミス A-121
メイズ A-321
ターナー A-176
ジョンソン A-273
ジョーンズ A-472
リンジー A-284

借入関係

顧客名 ローン_いいえ
ジョーンズ L-17
スミス L-23
ヘイズ L-15
ジャクソン L-14
カレー L-93
スミス L-11
ウィリアムズ L-17

入力:

 ∏ CUSTOMER_NAME (BORROW) ∪ ∏ CUSTOMER_NAME (DEPOSITOR) 

出力:

顧客名
ジョンソン
スミス
ヘイズ
ターナー
ジョーンズ
リンジー
ジャクソン
カレー
ウィリアムズ
メイズ

4. 交差点を設定します。

  • R と S という 2 つのタプルがあるとします。交差集合演算には、R と S の両方にあるすべてのタプルが含まれます。
  • それは交点∩で示されます。
 Notation: R ∩ S 

例: 上記の DEPOSITOR テーブルと BORROW テーブルを使用する

入力:

 ∏ CUSTOMER_NAME (BORROW) ∩ ∏ CUSTOMER_NAME (DEPOSITOR) 

出力:

顧客名
スミス
ジョーンズ

5. セット差:

  • R と S という 2 つのタプルがあるとします。交差集合演算には、R にはあるが S には含まれていないすべてのタプルが含まれます。
  • 交差マイナス(-)で表されます。
 Notation: R - S 

例: 上記の DEPOSITOR テーブルと BORROW テーブルを使用する

JavaScript グローバル変数

入力:

 ∏ CUSTOMER_NAME (BORROW) - ∏ CUSTOMER_NAME (DEPOSITOR) 

出力:

顧客名
ジャクソン
ヘイズ
ウィリアムズ
カレー

6. デカルト積

  • デカルト積は、1 つのテーブルの各行と他のテーブルの各行を結合するために使用されます。外積とも呼ばれます。
  • それは X で示されます。
 Notation: E X D 

例:

従業員

EMP_ID EMP_NAME EMP_DEPT
1 スミス
2 ハリー C
3 ジョン B

部門

DEPT_NO DEPT_NAME
マーケティング
B 販売
C 法律上の

入力:

 EMPLOYEE X DEPARTMENT 

出力:

Javaのtostringメソッド
EMP_ID EMP_NAME EMP_DEPT DEPT_NO DEPT_NAME
1 スミス マーケティング
1 スミス B 販売
1 スミス C 法律上の
2 ハリー C マーケティング
2 ハリー C B 販売
2 ハリー C C 法律上の
3 ジョン B マーケティング
3 ジョン B B 販売
3 ジョン B C 法律上の

7. 操作の名前を変更します。

名前変更操作は、出力リレーションの名前を変更するために使用されます。で表されます ロー (p)。

例: rename 演算子を使用して、STUDENT 関係の名前を STUDENT1 に変更できます。

 ρ(STUDENT1, STUDENT) 

注: これらの一般的な操作とは別に、関係代数を結合操作で使用できます。