Database Lecture 5/27
Database Lecture 5/27
前回の復習
- 表の分割
- 正規形 (第一、第二、第三)
- 関数従属性
- E-R図
問題5は、来週までに、 kono@ie.u-ryukyu.ac.jp
まで、[database lecture 5/17] というsubjectを付けたメール
で送ること。
関数従属性の復習
ある属性の値が決まると、他の属性の値も決まるという性質を関数従属性
という。
属性(複数) -> 属性(複数)
問題 1
次の属性集合の関数従属性を指摘せよ。
- 商品名、卸先名、卸値、仕入値、仕入先
- 学生名、学籍番号、科目、担当教官、担当教官番号、成績
- 学生名(ID)、所属学科名、学生室名、研究課題、先生名(ID)、先生室名
問題 2
以下のリレーション(商品名、卸先名、卸値、仕入値)
を考えよう。(下線はキー属性を表す)
- (1) スカーフを仕入値10で仕入れた。このデータを表に入力して見よう。
考えられる不都合を示せ。
- (2) C社との取り引きを停止したとする。C社のデータを削除するのには
どうしたら良いか? 考えられる不都合を示せ。(ヒント: 卸先がなくても、
仕入先はまだある)
- (3) この不都合を修正するには表を分割すれば良い。分割の方法と、
その根拠を示せ。
複数の表に対する操作
複数の表に分割したあと、その複数の表の連係からデータを探しだすことに
なる。この時、複数の表を処理する方法には以下の手順がある。
これらは、集合の形で表現することができる。例えば、属性XYZを持つ関係
R(XYZ)と、属性XWを持つ関係S(XW)を考える。
結合の時に、一部の共通の属性をまとめない、あるいは、同じものをまとめる
のではなく、大小関係などをもちいるものもある。すべての共通の属性の
等しい値をまとめたものを特に自然結合(Natural join)という。ここでは、
自然結合しか扱わない。
問題 3
上の関係の自然結合を求めよ。
このとき結合の相手がいないタプルは消えてしまう。このような
タプルを結合不能タプル(dangling tuple)という。
問題 4
上の関係RをS(工場名,部品),T(部品、供給元)の二つの関係に射影せよ。
そして、その二つの自然結合を求めよ。
このように射影と結合をした結果がもとの関係に一致しない場合がある。
これを結合のわな(connection trap)といういう。
関係Rを、属性Xと属性Yに射影して、再結合した時に、もとのRに戻る時、
その結合を無損失結合(lossless join)という。したがって、
関係を分割していく時は、その分割が無損失結合になっているかどうか
が重要になる。これはデータベースの設計の一つの基準となる。
多値従属(Multi Value Dependency)
問題3の関係を考えよう。関係供給において、供給元を一つ決めると、
扱っている部品の集合が得られる。このように、ある属性Xを決めると、
属性Yの集合が決まる時、YはXに多値従属するという。これを
と書く。これは関数従属性ではない従属性の例である。
データベース設計の例
- 属性を見つける
- 質問と変更操作について考察する
- 従属性を見つける
- E-R図を書く
- 冗長性や、情報の損失がないかどうかを考える
- 質問に対する操作を考える
問題 5
Prev
Next
Kono's home page