SlideShare a Scribd company logo
データベース
第8回
関係データモデルと関係代数
1
2015年5⽉28⽇(⽊) 7・8時限
担当:奥 健太
これまでに学習した内容
2
 SQLによるデータベース操作⽅法を学んだ
 データの検索
 データの登録,更新,削除
 データベース,テーブルの作成
mysqld
クライアント
プログラム
結果
データベース
エンジン
問合せ(クエリ)
SELECT
INSERT DELETEUPDATE
CREATE DROP
これから学習する内容
3
 データベース設計について学ぶ
CREATE DATABASE
CREATE TABLE
データベース設計
エンドユーザ
結果
データベース
問合せ(クエリ)
データベース
アプリケーション
要求
応答
データベース設計編での学習⽬標
4
基礎となるデータモデルを理解する
データベース設計の⽅法を理解する
データの冗⻑性と不整合問題の解消⽅法
を理解する
データベースプログラミングの⽅法を理
解する
データベース設計編
回 ⽇付 テーマ
8 5/28 関係データモデルと関係代数
9 6/4 データベース設計
10 6/11 正規化
11 6/18 データベースとプログラム
5
関係データモデル
本⽇の講義で学ぶこと
6
関係データモデル
7
関係データベース管理システム
(RDBMS; Relational DataBase Management System)
8
 エドガー・F・コッドが提唱した関係データモデルを
採⽤したデータベース管理システム(DBMS)
 MySQL, Oracle Database, PostgreSQL, SQLiteなどが
ある
利点
 ExcelやCSVなどの簡易データベースより⼤量のデー
タを保存できる
 ⼤量のデータに対し,検索,並べ替え,抽出,集計な
どの処理を⾼速に実⾏できる
 複数の異なるデータを結合して,⼀つのデータのよう
に取り出すことができる
SQLという問合せ⾔語を使ってデータを操作できる
復習
SQLと関係データモデル
9
 SQLは関係データモデルを基礎としている
 データの表現⽅法やデータに対する演算⽅法が関係
データモデルでルールが決められている
関係データモデル
SQL
SELECT INSERT
UPDATE DELETE
関係(リレーショナル)データモデル
10
 1970年にIBM社にいたエドガー・F・コッドが提案
 データを属性値の集合であるタプルとして表現する
表構造を採⽤し,属性を列,タプルを⾏として関連付ける
 ⾒出し(属性の集合)と本体(タプルの集合)を関係とよぶ
 関係データモデルを採⽤しているDBを,関係データベー
ス(RDB; Relational DataBase) とよぶ
関係(リレーション)
11
番号 ⼭名 標⾼ 都道府県
48剱岳 2,999富⼭県
49⽴⼭ 3,015富⼭県
54槍ヶ岳 3,180⻑野県
64⼋ヶ岳 2,899⻑野県
72富⼠⼭ 3,776⼭梨県
87⽩⼭ 2,702岐⾩県
92⼤⼭ 1,729⿃取県
タプル
属性
関係
⽇本百名⼭
関係名
属性値
関係データモデルの⽤語
12
 関係(リレーション)
 ⾒出しと本体の対で構成される
 ⾒出しは0個以上の属性の集合
 本体は0個以上のタプルの集合
 属性(アトリビュート)
 属性名とデータ型の対
 タプル(組)
 ⾒出しに対応した属性値の集合
SQLでの⽤語
13
番号 ⼭名 標⾼ 都道府県
48剱岳 2,999富⼭県
49⽴⼭ 3,015富⼭県
54槍ヶ岳 3,180⻑野県
64⼋ヶ岳 2,899⻑野県
72富⼠⼭ 3,776⼭梨県
87⽩⼭ 2,702岐⾩県
92⼤⼭ 1,729⿃取県
ロウ
カラム
テーブル
復習
⽇本百名⼭
テーブル名
関係データモデルとSQLでの⽤語の⽐較
14
関係データモデル SQL
関係(リレーション) テーブル(表)
タプル(組) ロウ(⾏)
属性(アトリビュート) カラム(列)
関係といえる表はどれ?
15
1時限 2時限
⽉
英語 C501 OS F201
化学 C202 知識⼯学 C109
⽕
SW⼯学 R103 数理解析 C103
DB C202 HI C306
交戦勢⼒
東軍 ⻄軍
指導者・指揮官
徳川家康
徳川秀忠
結城秀康
⽑利輝元
⽯⽥三成
宇喜多秀家
上杉景勝
戦⼒
70,000~104,000 80,000以上
*(参考)http://ja.wikipedia.org/wiki/関ヶ原の戦い
著者 書籍タイトル 出版社 発⾏年
川越恭⼆ 楽しく学べるデータベース 共⽴出版 2014
北川博之 データベースシステム 昭晃堂 1996
増永良⽂ リレーショナルデータベース⼊⾨ サイエンス社 1991
関係データモデルの形式化
16
関係R
タプルti
関係 R の要素 ti∈ R
集合の要素を表す記号
部分集合を表す記号
ドメイン
直積を表す記号
ドメイン(定義域)
17
 属性値がとりうるすべての値の集合
例;⼈名の集合,年齢の集合,学科名の集合
D1 = {x | xは⼈名}
D2 = {x | xは0以上の整数}
D3 = {コミュ,知能,メディア,システム}
ドメインの例
18
番号 ⼭名 標⾼ 都道府県
48剱岳 2,999富⼭県
49⽴⼭ 3,015富⼭県
54槍ヶ岳 3,180⻑野県
64⼋ヶ岳 2,899⻑野県
72富⼠⼭ 3,776⼭梨県
87⽩⼭ 2,702岐⾩県
⽇本百名⼭
D番号 = {x | xは1以上の整数}
D⼭名 = {x | xは⽇本の⼭名}
D標⾼ = {x | xは0以上の整数}
D都道府県 = {x | xは都道府県名}
⽇本百名⼭ 番号 ⼭名 標⾼ 都道府県
ドメインの直積集合とタプル
19
D1 = {1, 2}, D2 = {a, b, c}, D3 = D1
D1× D2 ×D3 =
{(1,a,1), (1,a,2), (1,b,1), (1,b,2), (1,c,1), (1,c,2),
(2,a,1), (2,a,2), (2,b,1), (2,b,2), (2,c,1), (2,c,2)}
1
2
a
b
c
1
2
× ×
タプル:直積集合の各要素
タプルは必ずドメインの直積集合のいずれかの
要素になる
トランプの例
20
D1 = {♠, ♡, ♢, ♣}
D2 = {A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K}
R ⊆ D1× D2
D1× D2 = {
(♠,A), (♠,2), ..., (♠,K),
(♡,A), (♡,2), ..., (♡,K),
(♢,A), (♢,2), ..., (♢,K),
(♣,A), (♣,2), ..., (♣,K)}
次数と濃度
21
番号 ⼭名 標⾼ 都道府県
48剱岳 2,999富⼭県
49⽴⼭ 3,015富⼭県
54槍ヶ岳 3,180⻑野県
64⼋ヶ岳 2,899⻑野県
72富⼠⼭ 3,776⼭梨県
87⽩⼭ 2,702岐⾩県
⽇本百名⼭
⽇本百名⼭ 番号 ⼭名 標⾼ 都道府県
次数:4
濃度:6
関係Rを構成するタプルの数
関係Rのドメインの数
関係スキーマとインスタンス
22
番号 登録名 登録年 所在地
関係スキーマ
インスタンス
 関係の⾒出し部分
 時間的に不変
 タプルの集合
 時間的に変化
2姫路城 1993兵庫県
3屋久島 1993⿅児島県
8厳島神社 1996広島県
13知床 2005北海道
17富⼠⼭ 2013静岡県
18富岡製⽷場 2014群⾺県
世界遺産の関係の例
関係スキーマの記述
23
世界遺産 (番号,登録名,登録年,所在地)
属性名
関係名
例;
主キーには下線をひく
ドメイン
D番号 = {x | xは1以上の整数}
...
関係の特徴(1)
 ⼀つの関係の中で,まったく同じ値をもつ重複
したタプルは存在してはならない
 関係にはNULLを含めることはできない
24
姫路城 兵庫県
姫路城 兵庫県
富⼠⼭ 静岡県
姫路城 兵庫県
富⼠⼭ NULL
関係の特徴(2)
 タプルの順序は関係としては意味をもたない
 属性の順序は意味をもたない
25
姫路城 兵庫県
屋久島 ⿅児島県
富⼠⼭ 静岡県
富⼠⼭ 静岡県
姫路城 兵庫県
屋久島 ⿅児島県
番号 登録名 登録年 所在地
所在地 登録名 番号 登録年
同じ関係
同じ関係スキーマ
姫路城 兵庫県
姫路城 兵庫県
富⼠⼭ 静岡県
SQLの特徴(1)
 制約がなければ,⼀つのテーブルの中で重複し
たロウは存在しても良い
 テーブルにはNULLを含めることができる
26
姫路城 兵庫県
富⼠⼭ NULL
SQLの特徴(2)
 ロウの順序は存在する(ソートなど)
 カラムの順序は存在する(データ登録時など)
27
姫路城 兵庫県
屋久島 ⿅児島県
富⼠⼭ 静岡県
富⼠⼭ 静岡県
姫路城 兵庫県
屋久島 ⿅児島県
番号 登録名 登録年 所在地
所在地 登録名 番号 登録年
異なる結果
異なるカラムの
定義位置
28
関係代数の演算
29
関係代数の演算 説明
和集合演算 ⼆つの関係の和集合を求める演算
差集合演算 ある関係から他の関係の差集合を求める演算
共通集合演算 ⼆つの関係の両⽅に存在するものを抽出する演算
直積演算 ⼆つの関係のすべての組合せを求める演算
関係代数の演算 説明
射影演算 関係から指定属性集合のみの値を抜き出す演算
選択演算 関係から指定条件を満たすタプル集合を抜き出す演算
結合演算 複数の関係を指定条件によって結合する演算
商演算 ⼆つの関係の商を求める演算
集合演算
関係代数特有の演算
関係代数の演算
30
関係代数の演算 説明
和集合演算 ⼆つの関係の和集合を求める演算
差集合演算 ある関係から他の関係の差集合を求める演算
共通集合演算 ⼆つの関係の両⽅に存在するものを抽出する演算
直積演算 ⼆つの関係のすべての組合せを求める演算
集合演算
⼆つの関係の両⽅または⽚⽅に現れるタプル
からなる関係を求める
和集合演算 P∪Q
名前 所在地
姫路城 兵庫県
屋久島 ⿅児島県
富⼠⼭ 静岡県
P P∪Q
名前 所在地
⼤阪城 ⼤阪府
姫路城 兵庫県
彦根城 滋賀県
名前 所在地
姫路城 兵庫県
屋久島 ⿅児島県
富⼠⼭ 静岡県
⼤阪城 ⼤阪府
彦根城 滋賀県
Q
※PとQが和両⽴であること
和集合演算 P∪Q
32
P
P∪Q
Q
(姫路城, 兵庫県)
(富⼠⼭, 静岡県)
(⼤阪城, ⼤阪府)
(彦根城, 滋賀県)
(屋久島, ⿅児島県)
和両⽴
⼆つの関係P(A1, A2, ..., An)とQ(B1, B2, ..., Bm)が次の⼆
つの条件を満たすとき,⼆つの関係PとQは和両⽴
であるという
i. PとQの次数が等しい
ii. 各i (1≦i≦n)について,
AiとBiのドメインが等しい
A1 A2 ... An
B1 B2 ... Bm
各ドメインが等しい
n = m
P
Q
⼆つの関係のうち,⼀つ⽬の関係だけに現れる
タプルからなる関係を求める
差集合演算 P-Q, Q-P
名前 所在地
姫路城 兵庫県
屋久島 ⿅児島県
富⼠⼭ 静岡県
P
P-Q
名前 所在地
⼤阪城 ⼤阪府
姫路城 兵庫県
彦根城 滋賀県
名前 所在地
屋久島 ⿅児島県
富⼠⼭ 静岡県
Q
Q-P
名前 所在地
⼤阪城 ⼤阪府
彦根城 滋賀県
※PとQが和両⽴であること
差集合演算 P-Q
35
P-Q
(屋久島, ⿅児島県)
(姫路城, 兵庫県)
(富⼠⼭, 静岡県)
(⼤阪城, ⼤阪府)
(彦根城, 滋賀県)
P Q
差集合演算 Q-P
36
Q-P
(姫路城, 兵庫県)
(富⼠⼭, 静岡県)
(⼤阪城, ⼤阪府)
(彦根城, 滋賀県)
P Q
(屋久島, ⿅児島県)
⼆つの関係の両⽅に現れるタプルからなる関
係を求める
共通(積)集合演算 P∩Q
37
名前 所在地
姫路城 兵庫県
屋久島 ⿅児島県
富⼠⼭ 静岡県
P
P∩Q = P-(P-Q)
名前 所在地
⼤阪城 ⼤阪府
姫路城 兵庫県
彦根城 滋賀県
名前 所在地
姫路城 兵庫県
Q
※PとQが和両⽴であること
共通(積)集合演算 P∩Q
38
P∩Q
(姫路城, 兵庫県)
(富⼠⼭, 静岡県)
(⼤阪城, ⼤阪府)
(彦根城, 滋賀県)
P Q
(屋久島, ⿅児島県)
⼆つの関係における,すべてのタプルの組合
せを求める
直積演算 P×Q
名前 所在地
屋久島 ⿅児島県
富⼠⼭ 静岡県
P
名産
薩摩芋
静岡茶
御座候
名前 所在地 名産
屋久島 ⿅児島県 薩摩芋
屋久島 ⿅児島県 静岡茶
屋久島 ⿅児島県 御座候
富⼠⼭ 静岡県 薩摩芋
富⼠⼭ 静岡県 静岡茶
富⼠⼭ 静岡県 御座候
Q
P×Q
濃度:2
濃度:3
濃度:
2×3=6
次数:2+1=3
次数:2
次数:1
直積の次数と濃度
40
A1 A2 ... An B1 B2 ... BmP Q
A1 A2 ... An B1 B2 ... BmP×Q
次数n+m
濃度k 濃度l
濃度k×l
次数n 次数m
関係代数の演算
41
関係代数の演算 説明
射影演算 関係から指定属性集合のみの値を抜き出す演算
選択演算 関係から指定条件を満たすタプル集合を抜き出す演算
結合演算 複数の関係を指定条件によって結合する演算
商演算 ⼆つの関係の商を求める演算
関係代数特有の演算
ある関係から⼀部の属性を取り出したタプル
からなる関係を求める
射影演算(Projection)
42
P
π 都道府県 P
※重複したタプルは
除去される
番号 ⼭名 標⾼ 都道府県
48剱岳 2,999富⼭県
49⽴⼭ 3,015富⼭県
54槍ヶ岳 3,180⻑野県
64⼋ヶ岳 2,899⻑野県
72富⼠⼭ 3,776⼭梨県
都道府県
富⼭県
⻑野県
⼭梨県
ある属性の値に条件θ(=, ≠, <, >, ≦, ≧)を付加し,
その条件を満たすすべてのタプルの集合を求める
選択演算(Selection)
43
σ 都道府県='⻑野県' P
P 番号 ⼭名 標⾼ 都道府県
48剱岳 2,999富⼭県
49⽴⼭ 3,015富⼭県
54槍ヶ岳 3,180⻑野県
64⼋ヶ岳 2,899⻑野県
72富⼠⼭ 3,776⼭梨県
番号 ⼭名 標⾼ 都道府県
54槍ヶ岳 3,180⻑野県
64⼋ヶ岳 2,899⻑野県
※⽐較対象の属性がθ
⽐較可能であること
選択演算(Selection)
44
σ 都道府県='⻑野県' and 標⾼ >3000 P
P 番号 ⼭名 標⾼ 都道府県
48剱岳 2,999富⼭県
49⽴⼭ 3,015富⼭県
54槍ヶ岳 3,180⻑野県
64⼋ヶ岳 2,899⻑野県
72富⼠⼭ 3,776⼭梨県
番号 ⼭名 標⾼ 都道府県
54槍ヶ岳 3,180⻑野県
σ 都道府県='⻑野県' or 標⾼ <3000 P
番号 ⼭名 標⾼ 都道府県
48剱岳 2,999富⼭県
54槍ヶ岳 3,180⻑野県
64⼋ヶ岳 2,899⻑野県
※⽐較対象の属性がθ
⽐較可能であること
θ⽐較可能
θを(=, ≠, <, >, ≦, ≧)のいずれかの2項⽐較演算
⼦とするとき,その⽐較演算が可能となる条件をθ
⽐較可能であるという.
θ⽐較可能である条件
46
I. 関係P(A1, A2, ..., An)の⼆つの属性AiとAjとがθ⽐較可能であ
るとは,次の⼆つの条件を満たしていることをいう
i. AiとAjのドメインが等しい
ii. ⽐較演算(Aiの任意の値 θ Ajの任意の値)の真偽が常に定まる
II. 関係P(A1, A2, ..., An)の属性Aiと関係Q(B1, B2, ..., Bm)の属性Bj
とがθ⽐較可能であるとは,次の⼆つの条件を満たしてい
ることをいう
i. AiとBjのドメインが等しい
ii. ⽐較演算(Aiの任意の値 θ Bjの任意の値)の真偽が常に定まる
III. 関係P(A1, A2, ..., An)の属性Aiと定数cとがθ⽐較可能であると
は,次の⼆つの条件を満たしていることをいう
i. Aiのドメインにcがある
ii. ⽐較演算(Aiの任意の値 θ c)の真偽が常に定まる
⼆つの属性値AiとBjとが等しいタプルを結びつける
等結合演算(equi-Join)
47
P 番号 ⼭名 標⾼
54槍ヶ岳 3,180
64⼋ヶ岳 2,899
72富⼠⼭ 3,776
※⽐較対象の属性がθ
⽐較可能であること
Q ⼭番号 都道府県
54⻑野県
54岐⾩県
64⻑野県
64⼭梨県
72⼭梨県
72静岡県
番号 ⼭名 標⾼ ⼭番号 都道府県
54槍ヶ岳 3,180 54⻑野県
54槍ヶ岳 3,180 54岐⾩県
64⼋ヶ岳 2,899 64⻑野県
64⼋ヶ岳 2,899 64⼭梨県
72富⼠⼭ 3,776 72⼭梨県
72富⼠⼭ 3,776 72静岡県
P 番号=⼭番号Q
⽐較演算⼦θを「=」以外に⼀般化させた結合演算
θ結合演算(Join)
48
P 番号 ⼭名 標⾼
54槍ヶ岳 3,180
64⼋ヶ岳 2,899
※⽐較対象の属性がθ
⽐較可能であること
P.番号 P.⼭名 P.標⾼ Q.番号 Q.⼭名 Q.標⾼
54槍ヶ岳 3,180 48剱岳 2,999
54槍ヶ岳 3,180 49⽴⼭ 3,015
P P.標⾼>Q.標⾼Q
Q 番号 ⼭名 標⾼
48剱岳 2,999
49⽴⼭ 3,015
⼆つの関係の共通属性Cで結びつける
⾃然結合演算(Natural Join)
49
P 番号 ⼭名 標⾼
54槍ヶ岳 3,180
64⼋ヶ岳 2,899
72富⼠⼭ 3,776
※⽐較対象の属性がθ
⽐較可能であること
Q 番号 都道府県
54⻑野県
54岐⾩県
64⻑野県
64⼭梨県
72⼭梨県
72静岡県
番号 ⼭名 標⾼ 都道府県
54槍ヶ岳 3,180⻑野県
54槍ヶ岳 3,180岐⾩県
64⼋ヶ岳 2,899⻑野県
64⼋ヶ岳 2,899⼭梨県
72富⼠⼭ 3,776⼭梨県
72富⼠⼭ 3,776静岡県
P Q
関係Pがもつタプルのうち,関係Qのすべての
要素を含んでいるタプルを抽出する演算
商演算 P÷Q
50
A B C D
a イ 甲 ⼦
a イ ⼄ 寅
b ロ ⼄ 丑
c ハ 甲 ⼦
c ハ ⼄ 丑
c ハ ⼄ 寅
P
C D
甲 ⼦
⼄ 寅
Q P÷Q
A B
a イ
c ハ
商の求め⽅(1/3)
i. 関係PをQの含まれない属性でグループ化
51
A B C D
a イ 甲 ⼦
a イ ⼄ 寅
b ロ ⼄ 丑
c ハ 甲 ⼦
c ハ ⼄ 丑
c ハ ⼄ 寅
P
C D
甲 ⼦
⼄ 寅
Q
C D
甲 ⼦
⼄ 寅
商の求め⽅(2/3)
ii. Qのタプルが全て含まれているグループを残す
52
A B C D
a イ 甲 ⼦
a イ ⼄ 寅
b ロ ⼄ 丑
c ハ 甲 ⼦
c ハ ⼄ 丑
c ハ ⼄ 寅
P Q
商の求め⽅(3/3)
iii. Qに含まれていない属性のみを残す
53
A B C D
a イ 甲 ⼦
a イ ⼄ 寅
c ハ 甲 ⼦
c ハ ⼄ 丑
c ハ ⼄ 寅
P
C D
甲 ⼦
⼄ 寅
Q P÷Q
A B
a イ
c ハ
※重複したタプルは
除去される
レシピの関係Pから「じゃがいも」と「たまねぎ」を
⾷材にしたレシピ集合を求める
商演算の例
54
レシピ ⾷材
カレー じゃがいも
カレー たまねぎ
カレー ⽜⾁
パスタ たまねぎ
パスタ パスタ
パスタ ベーコン
⾁じゃが じゃがいも
⾁じゃが たまねぎ
⾁じゃが 豚⾁
じゃがバター じゃがいも
じゃがバター バター
P
⾷材
じゃがいも
たまねぎ
Q P÷Q
レシピ
カレー
⾁じゃが
関係代数の演算まとめ
55
関係代数の演算 説明
和集合演算 ⼆つの関係の和集合を求める演算
差集合演算 ある関係から他の関係の差集合を求める演算
共通集合演算 ⼆つの関係の両⽅に存在するものを抽出する演算
直積演算 ⼆つの関係のすべての組合せを求める演算
関係代数の演算 説明
射影演算 関係から指定属性集合のみの値を抜き出す演算
選択演算 関係から指定条件を満たすタプル集合を抜き出す演算
結合演算 複数の関係を指定条件によって結合する演算
商演算 ⼆つの関係の商を求める演算
集合演算
関係代数特有の演算
関係代数とSQLによる問合せ(1)
56
P∪Q
SELECT * FROM P UNION SELECT * FROM Q;
P∩Q
SELECT * FROM P INTERSECT SELECT * FROM Q;
SELECT * FROM P WHERE EXISTS (SELECT * FROM Q
WHERE P.名前 = Q.名前 AND P.所在地 = Q.所在地);
P-Q
SELECT * FROM P WHERE NOT EXISTS (SELECT * FROM Q
WHERE P.名前 = Q.名前 AND P.所在地 = Q.所在地);
SELECT * FROM P EXCEPT SELECT * FROM Q;
MySQLではサポート外
MySQLではサポート外
関係代数とSQLによる問合せ(2)
57
P×Q
SELECT * FROM P CROSS JOIN Q;
SELECT P.*, Q.* FROM P, Q;
関係代数とSQLによる問合せ(3)
58
SELECT 都道府県 FROM P;
π 都道府県 P
σ 都道府県='⻑野県' P
SELECT * FROM P WHERE 都道府県='⻑野県';
関係代数とSQLによる問合せ(4)
59
SELECT * FROM P JOIN Q ON 番号=⼭番号;
P 番号=⼭番号Q
SELECT * FROM P JOIN Q ON P.標⾼>Q.標⾼;
P P.標⾼>Q.標⾼Q
SELECT * FROM P NATURAL JOIN Q;
P Q
関係データモデル
まとめ
60
まとめ
和集合演算 差集合演算
共通集合演算
射影演算 選択演算 結合演算 商演算
関係データモデルと関係
関係データモデルの形式化とドメイン
関係スキーマとインスタンス
関係とSQLの特徴
集合演算
直積演算
関係代数特有の演算
本⽇学習したキーワード
〜データベース設計編〜
62
1事実1箇所 繰返しグループ 第三正規形
3層スキーマモデル 更新不整合問題 第⼆次正規化
ER図 削除不整合 第⼆正規形
E-Rモデル 差集合演算 タプル(組)
JDBC θ結合演算 直積演算
インスタンス θ⽐較可能 等結合演算
カーディナリティ 次数 導出属性
概念スキーマ ⾃然結合演算 ドメイン(定義域)
概念設計 実体 内部スキーマ
概念データモデル 射影演算 濃度
外部スキーマ 修正不整合 ⾮正規形
関係(リレーション) 商演算 物理設計
関係スキーマ 推移関数従属性 物理的データ独⽴性
関係代数 選択演算 部分関数従属性
関係データベース(RDB) 挿⼊不整合 論理設計
関係(リレーショナル)
データモデル
属性(アトリビュート) 論理データモデル
関係名 属性値 論理的データ独⽴性
完全関数従属性 第⼀次正規化 和集合演算
関連 第⼀正規形 和両⽴
共通(積)集合演算 第三次正規化
これまでに学習したキーワード
〜データベース設計編〜
63
1事実1箇所 繰返しグループ 第三正規形
3層スキーマモデル 更新不整合問題 第⼆次正規化
ER図 削除不整合 第⼆正規形
E-Rモデル 差集合演算 タプル(組)
JDBC θ結合演算 直積演算
インスタンス θ⽐較可能 等結合演算
カーディナリティ 次数 導出属性
概念スキーマ ⾃然結合演算 ドメイン(定義域)
概念設計 実体 内部スキーマ
概念データモデル 射影演算 濃度
外部スキーマ 修正不整合 ⾮正規形
関係(リレーション) 商演算 物理設計
関係スキーマ 推移関数従属性 物理的データ独⽴性
関係代数 選択演算 部分関数従属性
関係データベース(RDB) 挿⼊不整合 論理設計
関係(リレーショナル)
データモデル
属性(アトリビュート) 論理データモデル
関係名 属性値 論理的データ独⽴性
完全関数従属性 第⼀次正規化 和集合演算
関連 第⼀正規形 和両⽴
共通(積)集合演算 第三次正規化

More Related Content

What's hot

データベース10 - 正規化
データベース10 - 正規化データベース10 - 正規化
データベース10 - 正規化
Kenta Oku
 
データベース01 - データベースとは
データベース01 - データベースとはデータベース01 - データベースとは
データベース01 - データベースとは
Kenta Oku
 
やってはいけない空振りDelete
やってはいけない空振りDeleteやってはいけない空振りDelete
やってはいけない空振りDelete
Yu Yamada
 
SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)Tomoaki Uchida
 
データベース05 - SQL(SELECT:結合,副問合せ)
データベース05 - SQL(SELECT:結合,副問合せ)データベース05 - SQL(SELECT:結合,副問合せ)
データベース05 - SQL(SELECT:結合,副問合せ)
Kenta Oku
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
 
データベース入門1
データベース入門1データベース入門1
データベース入門1
tadaaki hayashi
 
データベース設計徹底指南
データベース設計徹底指南データベース設計徹底指南
データベース設計徹底指南
Mikiya Okuno
 
全部Excelだけで実現しようとして後悔するデータ分析 2nd Edition
全部Excelだけで実現しようとして後悔するデータ分析 2nd Edition 全部Excelだけで実現しようとして後悔するデータ分析 2nd Edition
全部Excelだけで実現しようとして後悔するデータ分析 2nd Edition
__john_smith__
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual TalksYuya Unno
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
 
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
yoku0825
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類Shintaro Fukushima
 
データウェアハウス入門 (マーケティングデータ分析基盤技術勉強会)
データウェアハウス入門 (マーケティングデータ分析基盤技術勉強会)データウェアハウス入門 (マーケティングデータ分析基盤技術勉強会)
データウェアハウス入門 (マーケティングデータ分析基盤技術勉強会)
Takeshi Mikami
 
リクルートが実践で学んできた“セルフBI”推進に求められる3つの要素
リクルートが実践で学んできた“セルフBI”推進に求められる3つの要素リクルートが実践で学んできた“セルフBI”推進に求められる3つの要素
リクルートが実践で学んできた“セルフBI”推進に求められる3つの要素
Recruit Technologies
 
データサイエンティストのつくり方
データサイエンティストのつくり方データサイエンティストのつくり方
データサイエンティストのつくり方
Shohei Hido
 
Power BI のいろいろな活用パターン
Power BI のいろいろな活用パターンPower BI のいろいろな活用パターン
Power BI のいろいろな活用パターン
Yugo Shimizu
 
初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか
初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか
初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか
Techon Organization
 
Elasticsearch勉強会#44 20210624
Elasticsearch勉強会#44 20210624Elasticsearch勉強会#44 20210624
Elasticsearch勉強会#44 20210624
Tetsuya Sodo
 

What's hot (20)

データベース10 - 正規化
データベース10 - 正規化データベース10 - 正規化
データベース10 - 正規化
 
データベース01 - データベースとは
データベース01 - データベースとはデータベース01 - データベースとは
データベース01 - データベースとは
 
やってはいけない空振りDelete
やってはいけない空振りDeleteやってはいけない空振りDelete
やってはいけない空振りDelete
 
SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)
 
データベース05 - SQL(SELECT:結合,副問合せ)
データベース05 - SQL(SELECT:結合,副問合せ)データベース05 - SQL(SELECT:結合,副問合せ)
データベース05 - SQL(SELECT:結合,副問合せ)
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
 
データベース入門1
データベース入門1データベース入門1
データベース入門1
 
データベース設計徹底指南
データベース設計徹底指南データベース設計徹底指南
データベース設計徹底指南
 
全部Excelだけで実現しようとして後悔するデータ分析 2nd Edition
全部Excelだけで実現しようとして後悔するデータ分析 2nd Edition 全部Excelだけで実現しようとして後悔するデータ分析 2nd Edition
全部Excelだけで実現しようとして後悔するデータ分析 2nd Edition
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類
 
データウェアハウス入門 (マーケティングデータ分析基盤技術勉強会)
データウェアハウス入門 (マーケティングデータ分析基盤技術勉強会)データウェアハウス入門 (マーケティングデータ分析基盤技術勉強会)
データウェアハウス入門 (マーケティングデータ分析基盤技術勉強会)
 
リクルートが実践で学んできた“セルフBI”推進に求められる3つの要素
リクルートが実践で学んできた“セルフBI”推進に求められる3つの要素リクルートが実践で学んできた“セルフBI”推進に求められる3つの要素
リクルートが実践で学んできた“セルフBI”推進に求められる3つの要素
 
データサイエンティストのつくり方
データサイエンティストのつくり方データサイエンティストのつくり方
データサイエンティストのつくり方
 
Power BI のいろいろな活用パターン
Power BI のいろいろな活用パターンPower BI のいろいろな活用パターン
Power BI のいろいろな活用パターン
 
初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか
初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか
初めてのデータ分析基盤構築をまかされた、その時何を考えておくと良いのか
 
Elasticsearch勉強会#44 20210624
Elasticsearch勉強会#44 20210624Elasticsearch勉強会#44 20210624
Elasticsearch勉強会#44 20210624
 

Similar to データベース08 - 関係データモデルと関係代数

20150329 tokyo r47
20150329 tokyo r4720150329 tokyo r47
20150329 tokyo r47
Takashi Kitano
 
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用までデータサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
Shunsuke Nakamura
 
Model seminar shibata_100710
Model seminar shibata_100710Model seminar shibata_100710
Model seminar shibata_100710
Kazuya Nishina
 
2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)
Yuya Matsumura
 
2017年3月版データマエショリスト入門
2017年3月版データマエショリスト入門2017年3月版データマエショリスト入門
2017年3月版データマエショリスト入門
Yuya Matsumura
 
Feature Selection with R / in JP
Feature Selection with R / in JPFeature Selection with R / in JP
Feature Selection with R / in JP
Sercan Ahi
 
連環データ分析へのご招待
連環データ分析へのご招待連環データ分析へのご招待
連環データ分析へのご招待
DataCakeBaker corp
 
kagamicomput201706
kagamicomput201706kagamicomput201706
kagamicomput201706
swkagami
 

Similar to データベース08 - 関係データモデルと関係代数 (9)

20150329 tokyo r47
20150329 tokyo r4720150329 tokyo r47
20150329 tokyo r47
 
実践データ分析基礎
実践データ分析基礎実践データ分析基礎
実践データ分析基礎
 
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用までデータサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで
 
Model seminar shibata_100710
Model seminar shibata_100710Model seminar shibata_100710
Model seminar shibata_100710
 
2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)2017年3月版データマエショリスト入門(誤植修正版)
2017年3月版データマエショリスト入門(誤植修正版)
 
2017年3月版データマエショリスト入門
2017年3月版データマエショリスト入門2017年3月版データマエショリスト入門
2017年3月版データマエショリスト入門
 
Feature Selection with R / in JP
Feature Selection with R / in JPFeature Selection with R / in JP
Feature Selection with R / in JP
 
連環データ分析へのご招待
連環データ分析へのご招待連環データ分析へのご招待
連環データ分析へのご招待
 
kagamicomput201706
kagamicomput201706kagamicomput201706
kagamicomput201706
 

データベース08 - 関係データモデルと関係代数