SlideShare a Scribd company logo
データベース技術
第4回(2015.10.20)
1
リレーショナルデータベース
•用語(1)
- 表(テーブル、table):リレーションとも呼ぶ
- 行(row、レコード):1件のデータこと
- 列(column、フィールド):各項目のこと
商品コード 商品名 単価 備考
10 鉛筆 100 黒のみ
20 赤ボールペン 110
30 ノート 200 30ページ
40 黒ボールペン 110
商品表(商品テーブル)
行
列
2
リレーショナルデータベース
•用語(2)
- 空値である(null):値が空であること
- 一意である(ユニーク、unique):同じ値がないこと
- キー:重要な役割りを持つフィールド
- 主キー(primary key):データを識別するフィールド
• キーと主キーは一意であり、空値をとりません
商品表 商品コード 商品名 単価 備考
10 鉛筆 100 黒のみ
20 赤ボールペン 110
30 ノート 200 30ページ
40 黒ボールペン 110
空値
空値
主キー
3
リレーショナルデータベースの操作
•操作の種類
- 和(union)
- 差(difference)
- 積(intersection)
- 直積(Cartesian product)
- 射影(projection)
- 選択(selection)
- 結合(join)
- 商(division)
集合演算
と呼ばれる
関係演算
と呼ばれる
4
関係モデルと関係データベース
•関係モデル(リレーショナルモデル)
- データを表形式で表す
- データの関係を表と表の関係で表す
- 関係はそれぞれの表で共通の項目(キー)でつなげる
•関係データベース(リレーショナルデータベース)
- リレーショナルモデルに基づいて設計、開発される  
データベース
5
関係モデルと関係データベース
•関係モデル
- 例:「商品」を「輸出先」に”売る”という関係
•関係モデルの考え方を使って関係データベース
を設計する
商品コード 商品名 単価
101 メロン ¥800
102 いちご ¥150
輸出先コード 輸出先名
12 アメリカ
23 中国
25 フランス
「商品」表 「輸出先」表
6
データベース設計の手順
•データとその関連(ER)を分析する
•表を作る
•表を正規化する
- 第一正規形
- 第二正規形
- 第三正規形
7
データとその関連(ER)の分析
•ERモデル
- 現実世界をEntity(実体)とRelationship(関連)  
という概念を使って考える
- 現状の世界からにEntity(実体)をとらえる
• 例:商品(商品コード、商品名、単価)
• 例:輸出先(輸出先コード、輸出先名)
- 実体同士のRelationship(関連)について考える
• 例:売上
8
ERモデル
•Entity(実体)とRelationship(関連)
商品
商品コード
商品名
単価
輸出先
輸出先コード
輸出先名
売上 個数
M
N
・多数の商品が多数の輸出先
 に売られる
・多数の輸出先は多数の商品
 を買っている
多対多の関係
※商品がひとつの場合、
 1対多の関係となります
※商品ひとつ輸出先ひとつの場合、
 1対1の関係となります
9
ER図
•ERモデルをよりデータベースの設計に近い形で
図式化したもの
•様々な書き方がある
商品コード
商品名
単価
輸出先コード
輸出先名
商品コード
輸出先コード
個数
商品 輸出先売上
1 * 1*
10
Work:ERモデルを書いてみよう
•問1
- 部員は1人で複数の顧客を担当しています。    
顧客が2人以上の部員によって担当されることはあり
ません。
•問2
- 学生は複数の書籍の貸出を受けることができます。 
書籍は複数の学生に貸し出されます。
11
Work解答
•問1       ・問2
部員
顧客
担当
1
N
書籍
学生
貸出
M
N
12
Work:ERモデルを書いてみよう
•問3
- 各学生は複数の講義を受講しています。      
1つの講義は複数の学生が受講しています。     
1人の教師は複数の講義を担当しています。     
1つの講義は1人の教師が担当します。
13
Work解答
•問3
学生
講義
受講
M
N
担当
教師
M
1
14
Work:ERモデルを書いてみよう
•問4
- 各顧客は複数の預金口座を開設できます。      
1つの預金口座は1人の顧客によって開設されています。
各銀行は複数の預金口座を管理しています。     
1つの預金口座は1つの銀行によって管理されています。
15
Work解答
•問4
顧客
預金口座
開設
1
N
管理
銀行
M
1
16
データベース設計の手順
•データとその関連(ER)を分析する
•表を作る
•表を正規化する
- 第一正規形
- 第二正規形
- 第三正規形
17
表を作成する
•売上報告書から表を作成してみる
報告書コード 日付 輸出先コード 輸出先名 商品コード 商品名 単価 個数
1101 3/5 12 アメリカ
101 メロン ¥800 1,100
1101 3/5 12 アメリカ
102 いちご ¥150 300
1102 3/7 23 中国 103 りんご ¥120 1,700
1103 3/8 25 フランス 104 レモン ¥200 500
18
非正規形
•繰り返し項目が排除されていない表
•リレーショナルデータベースでは、非正規形の
表はうまく処理できない
報告書コード 日付 輸出先コード 輸出先名 商品コード 商品名 単価 個数
1101 3/5 12 アメリカ
101 メロン ¥800 1,100
1101 3/5 12 アメリカ
102 いちご ¥150 300
1102 3/7 23 中国 103 りんご ¥120 1,700
1103 3/8 25 フランス 104 レモン ¥200 500
1行分のデータの中に2つの商品のデータが存在する
正規化する:1行に1つの値が入る表にすること
19
データベース設計の手順
•データとその関連(ER)を分析する
•表を作る
•表を正規化する
- 第一正規形
- 第二正規形
- 第三正規形
20
正規化
•現実世界のデータをリレーショナルデータベース
の表に落とし込む作業
•1行に1つの値が入る表の形にする
•非正規形の表をデータの矛盾が発生しないよう
複数の表に分割する
21
第一正規形を作る
•1行に1つの値が入るように表を分割する
報告書コード 日付 輸出先コード 輸出先名 商品コード 商品名 単価 個数
1101 3/5 12 アメリカ
101 メロン ¥800 1,100
1101 3/5 12 アメリカ
102 いちご ¥150 300
1102 3/7 23 中国 103 りんご ¥120 1,700
1103 3/8 25 フランス 104 レモン ¥200 500
報告書コード 日付 輸出先コード 輸出先名
1101 3/5 12 アメリカ
1102 3/7 23 中国
1103 3/8 25 フランス
報告書コード 商品コード 商品名 単価 個数
1101 101 メロン ¥800 1,100
1101 102 いちご ¥150 300
1102 103 りんご ¥120 1,700
1103 104 レモン ¥200 500
「売上」表 「売上明細」表(第一正規形①) (第一正規形②)
表の関連がわかるよう
報告書コードは両方の表に残す
22
第一正規形
•表を2次元の単純な表としたもの
•1行に1つの値が入るようにした表
報告書コード 日付 輸出先コード 輸出先名
1101 3/5 12 アメリカ
1102 3/7 23 中国
1103 3/8 25 フランス
報告書コード 商品コード 商品名 単価 個数
1101 101 メロン ¥800 1,100
1101 102 いちご ¥150 300
1102 103 りんご ¥120 1,700
1103 104 レモン ¥200 500
「売上」表 「売上明細」表(第一正規形①) (第一正規形②)
23
第二正規形を作る(1)
•「売上明細」(第一正規形②)の問題点
- 商品に関するデータと売上に関するデータが混在  
→新しい商品でまだ売っていない商品は追加できない
「売上明細」表(第一正規形②)
報告書コード 商品コード 商品名 単価 個数
1101 101 メロン ¥800 1,100
1101 102 いちご ¥150 300
1102 103 りんご ¥120 1,700
1103 104 レモン ¥200 500
報告書コード 日付 輸出先コード 輸出先名
1101 3/5 12 アメリカ
1102 3/7 23 中国
1103 3/8 25 フランス
「売上」表(第一正規形①)
24
第二正規形を作る(2)
•「売上明細」(第一正規形②)を分割する
「売上明細」表(第一正規形②)
報告書コード 商品コード 商品名 単価 個数
1101 101 メロン ¥800 1,100
1101 102 いちご ¥150 300
1102 103 りんご ¥120 1,700
1103 104 レモン ¥200 500
商品コード 商品名 単価
101 メロン ¥800
102 いちご ¥150
103 りんご ¥120
104 レモン ¥200
報告書コード 商品コード 個数
1101 101 1,100
1101 102 300
1102 103 1,700
1103 104 500
「商品」表 「売上明細」表(第二正規形①) (第二正規形②)
25
第二正規形を作る(3)
•主キーによって他の列の値がきまる
- 「商品」表は、「商品コード」列の値が決まると 
「商品名」と「単価」の値が決まる
- 「売上明細」表は、「報告書コード」列と「商品コー
ド」列の値が決まると「個数」の値が決まる
商品コード 商品名 単価
101 メロン ¥800
102 いちご ¥150
103 りんご ¥120
104 レモン ¥200
報告書コード 商品コード 個数
1101 101 1,100
1101 102 300
1102 103 1,700
1103 104 500
「商品」表 「売上明細」表(第二正規形①) (第二正規形②)
26
第二正規形
•主キーによってほかの列の値が決まるように 
した表
•関数従属している
- 「ある列の値によってほかの列の値が決まる」こと
•第二正規形では、主キーにほかの列が関数従属
するように表を分割する
27
第二正規形の表まとめ
- 「売上」(第一正規形①)はそのままで第二正規形 
として扱える
• 主キーの「報告書コード」が決まると他の値が決まる
商品コード 商品名 単価
101 メロン ¥800
102 いちご ¥150
103 りんご ¥120
104 レモン ¥200
報告書コード 商品コード 個数
1101 101 1,100
1101 102 300
1102 103 1,700
1103 104 500
「商品」表 「売上明細」表(第二正規形①) (第二正規形②)
報告書コード 日付 輸出先コード 輸出先名
1101 3/5 12 アメリカ
1102 3/7 23 中国
1103 3/8 25 フランス
「売上」表(第二正規形③)
28
第三正規形を作る(1)
•「売上」(第二正規形③)の問題点
- 「売上」表には、輸出先に関するデータと売上に関する
データが混在                   
→ 1度も輸出していないが輸出先には存在するイタリア
を管理できない!
報告書コード 日付 輸出先コード 輸出先名
1101 3/5 12 アメリカ
1102 3/7 23 中国
1103 3/8 25 フランス
「売上」表(第二正規形③)
29
第三正規形を作る(2)
•「売上」表(第二正規形③)を分割する
報告書コード 日付 輸出先コード 輸出先名
1101 3/5 12 アメリカ
1102 3/7 23 中国
1103 3/8 25 フランス
「売上」表(第二正規形③)
報告書コード 日付 輸出先コード
1101 3/5 12
1102 3/7 23
1103 3/8 25
輸出先コード 輸出先名
12 アメリカ
23 中国
25 フランス
「売上」表(第三正規形①) 「輸出先」表(第三正規形②)
30
第三正規形
•各項目の値が、主キーのみで決まる表
•推移従属している
- 「ある列の値にによって間接的にほかの列の値が  
決まる」こと
•第三正規形では、推移従属を除くように表を 
分割する
31
第三正規形(補足)
•「売上」表(第二正規形③)では
- 「報告書コード」が決まれば、「輸出先コード」が 
決まり、それによって間接的に「輸出先名」が決まっ
ていた
報告書コード 日付 輸出先コード 輸出先名
1101 3/5 12 アメリカ
「売上」表(第二正規形③)
報告書コード 日付 輸出先コード
1101 3/5 12
輸出先コード 輸出先名
12 アメリカ
「売上」表(第三正規形①) 「輸出先」表(第三正規形②)
間接的に決まる部分を排除
32
第三正規形にまでにした表
•リレーショナルデータベースではこの表を使う
報告書コード 日付 輸出先コード
1101 3/5 12
1102 3/7 23
1103 3/8 25
輸出先コード 輸出先名
12 アメリカ
23 中国
25 フランス
「売上」表 「輸出先」表
商品コード 商品名 単価
101 メロン ¥800
102 いちご ¥150
103 りんご ¥120
104 レモン ¥200
報告書コード 商品コード 個数
1101 101 1,100
1101 102 300
1102 103 1,700
1103 104 500
「商品」表「売上明細」表
参照
参照
参照
33
Work:練習問題1
•次の表は、部署に所属する部員ごとの月別売上高
を表す表です。1つの部署には複数の部員が所属
します。部員は複数の部署に所属することはあり
ません。第三正規形に正規化してください。
部員コード 部員名 月 部員売上 部署コード 部署名
34
練習問題1:解答
部員コード 月 部員売上
部員コード 部員名 部署コード
部署コード 部署名
35
Work:練習問題2
•次の表は受注システムを表現したものです。第
三正規形に正規化してください。ただし、1件の
受注で1つの得意先を処理します。また、1件の
受注コードで複数の商品を処理することができ
ます。さらに1件の受注は1人の担当者が担当す
るものとします。
受注
コード
日付
得意先
コード
得意先名 商品コード 商品名 単価
担当者
コード
担当者名 個数
36
練習問題2:解答
受注コード 日付 担当者コード 得意先コード
得意先コード 得意先名
受注コード 商品コード 個数
商品コード 商品名 単価
担当者コード 担当者名
37

More Related Content

PDF
データベース技術 5(Database_5)
PDF
データベース技術 2(Database_2)
PDF
データベース技術 1(Database_1)
PDF
データベース技術 11(Database 11)
PDF
Indicadors de qualitat
PDF
データベース技術 12(Database 12)
PDF
Gerencia
PPT
El petit negre. Claude Debussy
データベース技術 5(Database_5)
データベース技術 2(Database_2)
データベース技術 1(Database_1)
データベース技術 11(Database 11)
Indicadors de qualitat
データベース技術 12(Database 12)
Gerencia
El petit negre. Claude Debussy

Viewers also liked (18)

PPTX
Prezi
PDF
MAPA CONCEPTUAL DE GESTIÓN DE PROYECTOS
PPT
Śniadanie Daje Moc
PPT
Neptu
PPT
Śniadanie Daje Moc
PPT
Śniadanie Daje Moc
DOCX
DEMO Doc
PPT
Śniadanie Daje Moc
ODP
Hobbim
PPTX
Linda Magee - Manchester Academic Health Sciences Network (MAHSC) overview
PPT
Śniadanie Daje Moc
PPTX
1. gli adempimenti amministrativi
DOCX
La stabile organizzazione
PDF
データベース技術 3(Database_3)
PDF
データベース技術 8(Database_8)
PDF
データベース技術 13(Database 13)
PDF
A Biblioteca no teu computador - sessão 2
PDF
MySQLアーキテクチャ図解講座
Prezi
MAPA CONCEPTUAL DE GESTIÓN DE PROYECTOS
Śniadanie Daje Moc
Neptu
Śniadanie Daje Moc
Śniadanie Daje Moc
DEMO Doc
Śniadanie Daje Moc
Hobbim
Linda Magee - Manchester Academic Health Sciences Network (MAHSC) overview
Śniadanie Daje Moc
1. gli adempimenti amministrativi
La stabile organizzazione
データベース技術 3(Database_3)
データベース技術 8(Database_8)
データベース技術 13(Database 13)
A Biblioteca no teu computador - sessão 2
MySQLアーキテクチャ図解講座
Ad

More from Yuka Obu (11)

PDF
データベース技術 14(Database 14)
PDF
データベース技術 10(Database 10)
PDF
データベース技術 9(Database 9)
PDF
データベース技術 7(Database 7)
PDF
データベース技術 6(Database_6)
PDF
ソーシャルメディアワークショップ1
PDF
企業によるソーシャルアカウント運用のために
PDF
Sns 2
PDF
Twitter in Hitachiohta 3
PDF
Twitter in Hitachiohta 2
PDF
Twitter in Hitachiohta 1
データベース技術 14(Database 14)
データベース技術 10(Database 10)
データベース技術 9(Database 9)
データベース技術 7(Database 7)
データベース技術 6(Database_6)
ソーシャルメディアワークショップ1
企業によるソーシャルアカウント運用のために
Sns 2
Twitter in Hitachiohta 3
Twitter in Hitachiohta 2
Twitter in Hitachiohta 1
Ad

Recently uploaded (17)

PDF
共同売店から考える沖縄の新しい流通のしくみ2025琉球大学流通原論講義資料.pdf
PDF
3_「本当の『悪者』って何?」鷗友学園女子中学校_福島 雪乃さんinspirehigh.pdf
PDF
12_星の杜中学校小倉ももこ『家族ってなに』inspirehigh発表物.pdf
PDF
My Inspire High Award 2024(岡田秀幸).pptx.pdf
PDF
10_「孤独は敵なのか?」 桜花学園高等学校堀川愛可さんinspirehigh.pdf
PDF
12_「家族とは何か」星の杜中学校小倉ももこ『家族ってなに』inspirehigh.pdf
PDF
8_「世の中の流行はどのようにして生まれるのか」学校法人聖ドミニコ学園竹野はるいpptx.pdf
PDF
9_前田音葉さん:「Yakushima Islandってなんか変じゃない?」.pdf
PDF
13_「他者と自分、対立を防ぐには?」市原中央高等学校 大野リリinspirehigh.pdf
PDF
7_「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」明治大学付属中野八王子中学校宮本ゆりかさん.pdf
PDF
14_「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」公文国際学園高等部古澤琴子.pdf
PDF
6_「老いることは不幸なこと?」植草学園大学附属高等学校森 珠貴さんinspirehigh.pdf
PDF
「なぜ、好きなことにいつかは飽きるの?」大塚莉子 - My Inspire High Award 2024.pdf
PDF
外国人が日本のテーブルマナーに驚く理由は?_公文国際学園高等部 角田 恵梨佳さん
PPTX
PPT KANJI IRODORI SHOKYUU 1 BAB 9 (FURIGANA)
PDF
11_「なぜ議会への関心が低いのか?」長野県長野西高等学校 片桐 菜々美さん.pdf
PDF
5_「AIと仲良くなるには?」日本大学東北高等学校南梨夢乃さんinspirehigh.pdf
共同売店から考える沖縄の新しい流通のしくみ2025琉球大学流通原論講義資料.pdf
3_「本当の『悪者』って何?」鷗友学園女子中学校_福島 雪乃さんinspirehigh.pdf
12_星の杜中学校小倉ももこ『家族ってなに』inspirehigh発表物.pdf
My Inspire High Award 2024(岡田秀幸).pptx.pdf
10_「孤独は敵なのか?」 桜花学園高等学校堀川愛可さんinspirehigh.pdf
12_「家族とは何か」星の杜中学校小倉ももこ『家族ってなに』inspirehigh.pdf
8_「世の中の流行はどのようにして生まれるのか」学校法人聖ドミニコ学園竹野はるいpptx.pdf
9_前田音葉さん:「Yakushima Islandってなんか変じゃない?」.pdf
13_「他者と自分、対立を防ぐには?」市原中央高等学校 大野リリinspirehigh.pdf
7_「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」明治大学付属中野八王子中学校宮本ゆりかさん.pdf
14_「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」公文国際学園高等部古澤琴子.pdf
6_「老いることは不幸なこと?」植草学園大学附属高等学校森 珠貴さんinspirehigh.pdf
「なぜ、好きなことにいつかは飽きるの?」大塚莉子 - My Inspire High Award 2024.pdf
外国人が日本のテーブルマナーに驚く理由は?_公文国際学園高等部 角田 恵梨佳さん
PPT KANJI IRODORI SHOKYUU 1 BAB 9 (FURIGANA)
11_「なぜ議会への関心が低いのか?」長野県長野西高等学校 片桐 菜々美さん.pdf
5_「AIと仲良くなるには?」日本大学東北高等学校南梨夢乃さんinspirehigh.pdf

データベース技術 4(Database_4)