Powered by SmartDoc

11 (6/30):集合演算と関係演算

11.1 はじめに

11.1.1 グループ発表

なし

11.1.2 今回の学習目標

・正規化復習

・データ型;CHAR(30),INTEGER,DATE,など

・RDB演算;4つの集合演算(和,差,積,直積)と4つの関係演算(選択,射影,結合,商)

・RDBの表の操作は,集合演算や関係演算で表される.

11.2 本題

11.2.1 正規化復習

・第2正規化の問題;(☆学生ID,学生氏名,☆履修した科目ID,履修した科目の評価)

・第3正規化の問題;(☆学生ID,☆履修した科目ID,その科目の単位数)

・第2正規化の問題;(☆学生番号,氏名,学年,学部,学部所在地,☆科目名,成績,担当教員)

・第3正規化の問題;(☆学生番号,氏名,学年,学部,学部所在地,☆科目名,成績,担当教員)

・正規化の問題;(☆商品コード,商品名,単価,☆仕入先コード,仕入先社名,仕入先住所)

・正規化の問題;(☆学生コード,学生名,☆授業コード,授業名,履修年度,成績)

11.2.2 SQLの3種類の言語

SQLにも,スキマーの定義と,データの入力編集という2種類の操作+1がある.

DDL (Data Definition Language);
データベースのデータ構造(スキマー)を定義する言語.ここで主キーを定めたり,外部キー制約を課したりする.
DML (Data Manipulation Language);
データベースのデータを操作する言語.
DCL (Data Control Language);
データベース自身を制御する言語.

11.2.3 集合演算

最初の3つの集合演算は,同じドメイン(属性)から作った同じ次数(列の数)のテーブルの間でしか成立しない.

和集合(union)演算
差集合(difference)演算
積(共通)(intersection)集合演算
直積(direct product)演算
直積演算は,別のドメインからなるテーブルでも演算できる.

11.2.4 関係演算

射影(projection)演算
テーブルから列を抜き出す演算になる.このとき,重複した行は取り除く.(集合は重複した要素を含まない.)
選択(selection)演算

テーブルから条件を満たす行を取り出す演算になる.

選択条件;同じドメインに属する2つの属性を比較する,タプルの別の属性を比較する.

結合(join)演算

ドメインが等しい列を張り合わせて2つのテーブルをつなぎ合わせる演算.直積と選択の組合せになる.

等結合(equal join)演算;同じドメインの属性値が等しいもの同士を結合する.

自然結合(natural join)演算;等結合した結果から(等結合するときのノリ代として使った)重複する属性の一方を取り除いたもの.

商演算

R/Sという商演算は,Rの中に商を示すタプルとSとの直積(t×S)が含まれている場合に,tを取り出すような演算.

商演算は,直積・差・射影の各演算を用いて書き換えることもできる.

11.3 おわりに

11.3.1 課題

  1. 正規化の演習:Q1-Q3,Q5,Q7,Q8,Q9
  2. 4章の復習

11.3.2 次回の学習目標

・SQL実習

・SQLの命令と今日学習した演算の関係

11.3.3 予習範囲

  1. 5章