←【ファイルとデータベース】シラバスへ
←講義のツボメニューへ

データモデル

【2000.04.28 1限 第3回】

データモデル

リレーショナルモデルのデータ定義

リレーショナルモデルの一貫性制約

リレーショナルモデルのデータ操作
1.関係代数(リレーショナル代数) 関係代数(リレーショナル代数)の各演算
  1. 和(union)∪
     ドメインが一致する2つのリレーションR1,R2に含まれるすべてのタプルのことを、R1とR2の「和」という。いわゆる∪(カップ)を求めるもの。
    Q1.図1において、R1∪R2を実際にリレーションとして書き出せ。
    図1:ドメインが一致する2つのリレーションR1,R2の和、差、共通
    R1
    品目名 単価
    コーヒー
    500
    紅茶
    500
    アイスコーヒー
    550
    ソーダ水
    550
    カレーライス
    900
    R2
    品目名
    単価
    カレーライス
    900
    スパゲティ
    950
    ピザトースト
    800

  2. 共通(intersection)∩
     ドメインが一致する2つのリレーションR1,R2に共通に含まれるすべてのタプルのことを、R1とR2の「共通」という。いわゆる∩(キャップ)を求めるもの。
    Q2.図1において、R1∩R2を実際にリレーションとして書き出せ。
  3. 差(difference)−
     ドメインが一致する2つのリレーションR1,R2に置いて、R1にのみ含まれR2には含まれないタプルのことを、R1とR2の「差」という。和、共通と異なり、R1−R2とR2−R1は一般に、同じタプル集合とはならない。
    Q3.図1において、R1−R2を実際にリレーションとして書き出せ。
    ※和、共通、差では、ドメインが一致していれば演算は可能で、例えば「品目名」と「食品名」のように、属性名が異なっても良い。
  4. 直積(Cartesian product)×
     2つのリレーションから一つづつタプルを取り出してきて、すべての組み合わせでつなぐ。これをR1とR2の「直積」と呼ぶ。実際には後述の「結合」が使われることのほうが多い。
  5. 射影(projection)
     あるリレーションの中からいくつかの属性を指定して取り出すのが「射影」。必要な属性のみに絞りたい場合に使われることが多い。
  6. 選択(selection)
     あるリレーションの中に対して条件を指定して、条件を満たすタプルのみ取り出すのが「選択」。
  7. 結合(join)
     直積に置いて、結びつけた2つの属性間である条件を満たすタプルのみを残したものを、「結合」という。図5は、2つの属性の値が等しいタプルについて、重複を排除し属性を一つに絞ったもので、「自然結合(natural join)」と呼ばれる。2つのリレーションを結びつけるために頻繁に使われる。
     重複を排除せず、そのまま2つ属性を残した場合は、「凍結号(equi join)」と呼ばれる。また、2つとも残す場合で、属性の値が等しい場合以外に、シータ関係(>、<、≧、または≦や、文字列の大小関係など)が成立するものを残す場合を、「シータ結合(theta join)」と呼ぶ。 換言すると、2つのリレーションの直積の中から、シータ関係が成立するタプルだけを選択するものである。
  8. 商(division)
     2つのリレーションR1,R2があるとき、以下の演算によって導出されるもののことを、R1÷R2、つまり「商」という。ここで実施される演算とは、R2のリレーションのすべてのタプルを含むR1側のタプルを取り出して、そのタプルからR2の属性を除く。 図6の例では、コーヒー500円とトースト200円の両方を注文した人の名前は、大木と後藤です、ということになる。

    問1、2、3の答えはここ。


    ←【ファイルとデータベース】シラバスへ
    ←講義のツボメニューへ
    ←鈴木研究室ホームへ