SQLはいまいち理解できなかったので、今日の講義は勉強になった
データベース No Comments »午後問題にはSQLが出題されやすいですよ。
基本的なところをおさえておくだけでも、かなりの得点になります。
SQLのルールを知らない人は以外に多いからねー。
午後問題にはSQLが出題されやすいですよ。
基本的なところをおさえておくだけでも、かなりの得点になります。
SQLのルールを知らない人は以外に多いからねー。
第2正規形は部分関数従属するものを、他の表に追い出します。
第3正規形は推移的関数従属するものを、他の表に追い出します。
P345の問7は、主キーが製品コード+部品コードになります。
この連結キーの属性をひとつずつ分解して、従属する関係を探していきます。
製品コード → 製品名
部品コード → 部品名、購入先コード、購入先名
製品コード+部品コード → 必要数
第2正規化を行うと、以下の表のようになります。
製品コード、部品コード、必要数
製品コード、製品名
部品コード、部品名、購入先コード、購入先名
第3正規化は、X → Y → Z になる推移的関数従属するものを見つけ出し、別な表に追い出します。
ここでは、部品コード → 購入先コード → 購入先名が推移的関数従属になるので、これを別な表に追い出します。
部品コード、部品名、購入先コード
購入先コード、購入先名
となります。
ここで、Yになる属性は分離する元の表に残しておきます。
商品表.商品コードでも間違いではありません。販売表.商品コードでもどちらでもOKです。ただし、表名.をかならずつけましょう。
えーーと、どこの内容のことでしょうか?タプルというのは行のことですが・・・。わからないところは聞きに来てくださいね。
すいません、P314のどこの部分でしょうか?わからないところは、聞きにきてくださいね。
社員番号が決まると部署名は決まります。しかし、部署名が決まると部署コードが決まるという明確なルールはありません。部署コードは部署名ごとに決められているので、部署コードが決まると部署名が決まるのは明示されています。
部署名が決まると部署コードが決まるということはありません。普通考えると、部署名で部署コードも決まることがありますが、100%そうなるということはありません。たとえば、同じ部署名で部署コードが違うというケースもありえないとは言えませんね^^
第2正規化は、部分関数従属するものを別な表に追い出します。この前の例では主キーが社員番号、資格コードになるので、社員番号に従属するものと資格コードに従属するものをみつけて、それを別な表に追い出します。
第3正規化は、第2正規化された時点で推移的関数従属するものを見つけ出して、別な表に追い出します。この前の例では社員番号→部署コード→部署名となります。