* 5 リレーショナル代数
自分なりの言葉で書く
- リレーショナル代数の演算の特徴
- 閉包である。
- 非破壊的である。
- 関係変数は普通の意味での変数である。
- つまり、普通の代数ってことだろうな。
- こういうことを強調せざるを得ないのは、SQLがそう
じゃないから、と予測する。
- Tutorial D の設計について
- unionやjoinのように、オペランドの属性どうしが一
致しなければならない演算においては、該当属性は
型と属性名が一致していることを求める。例えば、
P JOIN S
としたとき、PとSにそのような属性があることをユー
ザが気をつけなければいけない。
- SQLにあるようなドット表記の名前は禁止。
** 5.1 閉包
- 閉包である、ということは、リレーショナル代数演
算にて演算子が連なるとき、それぞれの入出力が関
係であるということであった。
- しかしこれは概念上のことであり、実際の処理にお
いては、効率のために、処理系はなるべく中間の関
係を実体化しないように工夫するであろう。
- 閉包ということは、関係が持つ見出しの推論と関連が
ある。
- Tutorial Dにて、
---
(P JOIN S)
WHERE PNAME > SNAME
---
- という文を考えると、PNAME > SNAMEというのが問わ
れているのは、PでもSでもなく、(P JOIN S)が返す
関係だ。なので(P JOIN S)の見出しがなんなのかがP
とSから特定されねばならない。これが見出しの推論
である。
- 具体的には、そのJOINによって作られる集合の見出
しは、Pの見出しとSの見出しの和集合になる。
- Tutorial Dでは、代数演算において属性名が役割り
を果たすので、属性名の書き換えは重要である。そ
れはRENAMEで実施する。
S RENAME (CITY AS SCITY)
こつこつ。
0 件のコメント:
コメントを投稿