Document

データベースII
第3回
掛下 哲郎
[email protected]
あらまし


リレーショナルDBに対する質問
リレーショナル代数演算




選択(Selection)
射影(Projection)
結合(Join)
質問の設計
データベースII講義資料:掛下
2
リレーショナル代数

Relational Algebra


選択(Selection)


指定された条件を満たす組を1つのリレーションから
抽出する。
射影(Projection)


リレーションに対する操作
指定された属性の値だけを1つのリレーションから抽
出する。
自然結合(Natural Join)

2つのリレーションを1つにまとめる。
データベースII講義資料:掛下
3
自然結合(組同士の結合)
共通属性(結合属性)の値が等しいs,t
の組を集めてリレーションを定義する。
SPJの全ての組t
Sの全ての組s
s
s
S#
SNAME
STATUS
CITY
S#
P#
J#
QTY
S1
:
S5
Smith
:
Adams
20
:
30
London
:
Athens
S1
S1
:
P1
P1
:
J1
J4
:
200
700
:
t
S#
SNAME
STATUS
CITY
P#
J#
QTY
S1
Smith
20
London
P1
J4
700
データベースII講義資料:掛下
t
4
自然結合
S
SPJ
S#
SNAME
STATUS
CITY
P#
J#
QTY
S1
S1
S2
S2
S2
S2
S2
S2
S2
:
S5
Smith
Smith
Jones
Jones
Jones
Jones
Jones
Jones
Jones
:
Adams
20
20
10
10
10
10
10
10
10
:
30
London
London
Paris
Paris
Paris
Paris
Paris
Paris
Paris
:
Athens
P1
P1
P3
P3
P3
P3
P3
P3
P3
:
P6
J1
J4
J1
J2
J3
J4
J5
J6
J7
:
J4
200
700
400
200
200
500
600
400
800
:
500
データベースII講義資料:掛下
5
選択
S
SPJ [CITY=“London”]
選択条件
S#
SNAME
STATUS
CITY
P#
J#
QTY
S1
S1
S4
S4
Smith
Smith
Clark
Clark
20
20
20
20
London
London
London
London
P1
P1
P6
P6
J1
J4
J3
J7
200
700
300
300
選択条件を満たす組だけを残す
データベースII講義資料:掛下
6
射影
S
SPJ [CITY=“London”]
[P#]
射影属性
P#
P1
P6
• 射影属性で指定された属性値だけを残す
• 値が同一の組は1つにまとめる
データベースII講義資料:掛下
7
リレーショナル代数の性質

リレーショナル代数演算の結果は、いずれ
もリレーション


複数のリレーショナル代数演算を組み合わせ
て適用できる。
多くの検索処理は、リレーショナル代数演
算の組み合わせで記述できる。(リレーショ
ナル完備性)
データベースII講義資料:掛下
8
リレーショナル代数を用いた
質問の記述
1. 質問を処理するために必要なリレーションを結
合演算で1つにまとめる。


スキーマグラフから決定する。
選択・射影に必要な属性を含む最小限のリレーショ
ン集合
2. 1つにまとめたリレーションに選択演算を施して、
必要な組だけを抽出する。
3. 抽出されたリレーションに射影演算を施して、
必要な属性だけを抽出する。
データベースII講義資料:掛下
9
質問の設計例
使用テーブル S、SPJ
結合条件
SとSPJのS#が一致すること
選択条件
CITY=“London”
射影属性
P#
注意事項
• 質問の設計は、結果の正しさが保証できる範囲で、
できるだけ単純化すること。
データベースII講義資料:掛下
10
クエリー作成の基本手順
Step 1
クエリー
設計
使用テーブル、結合条件、選択条件、
射影属性などを決定する。
Step 2
クエリー
の実装
クエリー設計で決定した事項に従って
実装する。
※ 設計が完了してから実装すること
データベースII講義資料:掛下
11
サンプルデータベースへの質問
1. Londonで製造されている全ての製品の詳細情
報を求めよ。
2. 製品J1を製造している業者の番号を求めよ。
3. Londonの業者が保管している部品番号を全て
求めよ。
4. Londonの業者がLondonで製造している製品
のために保管している部品の番号を全て求め
よ。
5. 業者S1が製造している製品の名前を全て求め
よ。
データベースII講義資料:掛下
12