Presentation is loading. Please wait.

Presentation is loading. Please wait.

第3章 関係データベースの基礎 3.1 関係とは 3.2 関係代数.

Similar presentations


Presentation on theme: "第3章 関係データベースの基礎 3.1 関係とは 3.2 関係代数."— Presentation transcript:

1 第3章 関係データベースの基礎 3.1 関係とは 3.2 関係代数

2 3.1 関係とは 直積とは C : サークル名の集合 N : 取りうるすべての部員数の集合 集合:
3.1 関係とは 直積とは C : サークル名の集合 N : 取りうるすべての部員数の集合 集合: を C と N の直積といい、以下のように書く。

3 n項関係とは 集合G1, G2, ・・・, Gn が与えられたとき、 その直積集合
の部分集合を、 G1, G2, ・・・, Gn の n項関係または単に関係もしくはリレーションという。 もっと直感的には・・・

4 スキーマの形式 サークル表 サークル(サークル名,部員数) 一般に、 と書く。
R : 関係名,Ai : 属性( i = 1 ~ n), n: 次数 サークル表は属性が2つあるので2項関係という。 (1つの場合、単項関係)

5 属性のドメイン その属性が取りうるあらゆる値の集合を、 その属性のドメインという 【例】 サークル名 : 文字列として表現可能なあらゆる名称
【例】  サークル名 : 文字列として表現可能なあらゆる名称 部員数 : 数値として表記されるすべての数字 【注】  部員数と活動年数は共にドメインは数値である。 一方、電話番号のドメインは数字の並びではあるが、 数値とはみなさない。

6 タプル 関係の各要素 (v1, v2, ・・・, vn)を n 組、または 単にタプルという。 関係は単なる集合であり、
その要素同士に順序関係を持たない。 【例】  サークルにおけるサークル名と部員数の間には 順序関係はない。 どちらが先にきても構わない。

7 リレーションではない表の例 以下は、一般的な表ではあるが、 属性値に複数の値を持つような表は リレーションではない。
以下は、一般的な表ではあるが、 属性値に複数の値を持つような表は リレーションではない。 学生ID サークル名 活動年数 卓球部 1 サッカー部 美術部, 卓球部 1, 2 剣道部 2 音楽部, 空手部 2, 1 「第1正規形(後述)の制約を満たしていない」という言い方をする。

8 ナル値(空値:NULL) 属性のうち値が未知のものを ナル値(NULL)という。 【例】NULLを指定したタプル

9 キー属性 そのリレーション内で NULL値以外の属性値が 2つ以上一致することがないような属性値 (キー属性、候補キーという) 【例】
学生ID 学科ID

10 主キー 候補キーのうち 属性値としてNULLをとりえないものをひとつ選び、 検索するためのキーとするものを 主キーという。 【例】 学生ID

11 外部キー NULLでないかぎり、 必ず関係における属性の値として 登録されているもの 【例】
「サークル活動」における「サークル名」属性の値として 登録されている値を用いる。 この場合、「サークル名」を外部キー(foreign key)と呼ぶ

12 関数従属性 ある属性が決まれば、 他の属性値も決まってしまうような関係 Rの属性Xに対してただ一つのYの値が
【例】 「学科ID」が決まれば、「学科名」は一意に決まる。 「学生番号」が決まれば「氏名」は一意にきまる。

13 第3章 関係データベースの基礎 3.1 関係とは 3.2 関係代数

14 3.2 関係代数 (1) 操作 A. 基本操作 (a) 制限(選択)
関係から条件を満たすタプルを抜き出す (restriction, selection)

15 関係から指定属性のみを取り出す (projection)
(b) 射影 関係から指定属性のみを取り出す (projection)

16 2つの関係からタプルを取り出し、 そのすべての組み合わせを求める。 (Cartesian product : Cは大文字で書くこと)

17 2つの関係の和集合をとる。 (union) (d) 和
属性およびそのドメインが同じでなければならない(union compatible条件)

18 2つの関係の差集合をとる。 (difference)

19 2つの関係の共通部分をとる。 (intersection)
(f) 積 2つの関係の共通部分をとる。 (intersection)

20 2つの関係の直積をとり、条件を満たすタプルのみを抜き出す(join)
B. 基本操作の組み合わせ (g) 結合 2つの関係の直積をとり、条件を満たすタプルのみを抜き出す(join) 条件 直積

21 (h) 商,除算(division) 【条件】 以下のとき除算できる。 ① 2つの関係R1, R2が与えられている。 ② R1には、R2が持つすべての属性(R2との共通属性)が定義されている。

22 ① R1のタプルであって、その共通属性値がR2のタプルであるようなものを選ぶ。 集められたタプルを固有属性値が同じものごとにグループ化する。
除算の方法(1) ① R1のタプルであって、その共通属性値がR2のタプルであるようなものを選ぶ。 集められたタプルを固有属性値が同じものごとにグループ化する。 ③ 各グループにおける共通属性値の集合がR2を含んでいる場合、その固有属性値を取り出す。

23 除算の方法(2) 除算の方法 R1 同じ値A R2 R2 A B 同じ値B R2

24 (2) 関係代数操作の記法と操作例 (a) 制限(選択)
【書式】 Rest [op1 comp op2] (R) R : 捜査対象となる関係、 op1, op2:属性または定数 Comp : 比較演算子(=, ≦, ≠, <・・・) 【例】部員数21名以上の大規模サークル Rest [部員数 > 20] (サークル)

25 【書式】 Proj [A1, A2, ・・・, An] (R)
(b) 射影 【書式】 Proj [A1, A2, ・・・, An] (R) R : 捜査対象となる関係、 A1, A2,・・・An:属性 【例】関係「学生」から学生IDと氏名の対応表を作成  Proj [学生ID, 氏名] (学生)

26 本来は記号  で表すが ここではJoinで表記 (c) 結合 【書式】 R1 Join [条件] R2 【例】関係「学生」と「学科」から所属学科一覧を作成  学科 Join [学科ID=所属学科ID] 学生

27 結合の例 【例】関係「学生」と「学科」から所属学科一覧を作成 学科 Join [学科ID=所属学科ID] 学生 学科ID 学科名 所属学部
E01 機械 工学部 E02 電気電子 E03 情報 S01 物理 理学部 学生ID 氏名 所属学科ID 山田隆夫 E01 岸田光一 E02 山崎誠司 S01 宮崎洋一 学科ID 学科名 所属学部 学生ID 氏名 所属学科ID E01 機械 工学部 山田隆夫 E02 電気電子 岸田光一 S01 物理 理学部 山崎誠司 宮崎洋一

28 (d) 除算 【書式】 R1 ÷ R2 【例】  サークル活動 ÷ 学科

29 以下サークル名には卓球部、サッカー部、野球部しかないことを前提とする 除算の例
学生ID サークル名 野球部 卓球部 サッカー部 サークル名 卓球部 サッカー部 野球部 ÷ 万能学生 学生ID


Download ppt "第3章 関係データベースの基礎 3.1 関係とは 3.2 関係代数."

Similar presentations


Ads by Google