関係代数は手続き型クエリ言語です。クエリの結果を取得するための段階的なプロセスが示されています。演算子を使用してクエリを実行します。
リレーショナル演算の種類
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)
どこ
A1 、 A2 、 A3 リレーションの属性名として使用されます 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)