Young man, in mathematics you don’t understand things. You just get used to them.
John von Neumann
学習目標¶
- 和両立を理解し,与えられたリレーションが和両立か判定できる.
- リレーション代数の基本演算を理解し,計算できる.
- 与えられたリレーションに対して,目的に応じた演算を適用できる.
リレーショナル代数¶
リレーショナル代数(relational algebra)はエドガー・F・コッドによって提案された,リレーションとして表現されたデータを操作するための代数的な演算の体系である.それを実装したデータベース言語はSQLである.
リレーション代数は次の基本演算から構成される.
- 和集合演算
- 差集合演算
- 共通集合演算
- 直積演算
- 射影演算
- 選択演算
- 結合演算
- 商演算
和両立¶
和集合演算¶
差集合演算¶
共通集合演算¶
直積演算¶
射影演算¶
選択演算¶
結合演算¶
商演算¶
リレーショナル代数表現¶
実リレーション(base relation)はデータベースに実際に格納されているリレーションである.リレーション演算から得られた結果もリレーションである.そのようなリレーションを導出リレーション(derived relation)と呼ぶ.
演習¶
リレーション学生(学籍番号,学生名,学部),内定(学籍番号,法人番号,職種),会社(法人番号,会社名,所在地)があるとする.
問1 すべての学生の全データを求めよ.
学生
問2 理工学部の学生の全データを求めよ.
学生[学部 = ‘理工’]
問3 内定先を決まっている学生の学籍番号を求めよ.
内定[‘学籍番号’]
問4 内定先を決まっていない理工学部の学生の学籍番号を求めよ.
学生[学部 = ‘理工’][‘学籍番号’] - 内定[‘学籍番号’]
問5 理工学部の学生の内定先の法人番号を求めよ.
((学生[‘学籍番号’ = ‘学籍番号’]内定)[学生.学部 = ‘理工’])[内定.法人番号]
問6 法人番号が’0001’の会社の内定を受けた学生の学籍番号と学生名を求めよ.
((学生[‘学籍番号’ = ‘学籍番号’]内定)[内定.法人番号 = ‘0001’])[学生.学籍番号, 学生.学生名]
練習問題¶
自由に設定したテーマに基づいてリレーショナルデータベースのスキーマを定義し、それを用いてすべての基本的なリレーショナル代数演算を含む例題を作成し、その解答を示しなさい。