SlideShare a Scribd company logo
データベース
第9回
データベース設計
1
2015年6⽉4⽇(⽊) 7・8時限
担当:奥 健太
これから学習する内容
2
 データベース設計について学ぶ
CREATE DATABASE
CREATE TABLE
データベース設計
エンドユーザ
結果
データベース
問合せ(クエリ)
データベース
アプリケーション
要求
応答
復習
データベース設計編での学習⽬標
3
 基礎となるデータモデルを理解する
データベース設計の⽅法を理解する
 何をデータとして表現し,データ間の関係を
どう定義すべきか
 どのように関係データモデルに落とし込むべ
きか
 どのようにテーブルを設計すべきか
 データの冗⻑性と不整合問題の解消⽅法を理解する
 データベースプログラミングの⽅法を理解する
データベース設計編
回 ⽇付 テーマ
8 5/28 関係データモデルと関係代数
9 6/4 データベース設計
10 6/11 正規化
11 6/18 データベースとプログラム
4
本⽇の講義で学ぶこと
5
概念設計
論理設計
物理設計
3層スキーマモデル
図書館データベースを設計せよ
6
ミッション
データベース設計⼿順
7
現実の世界
概念データモデル
1. 概念設計
2. 論理設計
論理データモデル
3. 物理設計
物理データモデル
データベース設計⼿順
8
現実の世界
1. 概念設計
2. 論理設計
論理データモデル
3. 物理設計
物理データモデル
(1) 実体の抽出
(2) 実体間の関連の抽出
(3) 主キーと属性の定義
概念データモデル
(1) 実体の抽出
実体 (entity)
実際にデータベースが対象とする実世界で存在するも
ののうち,データベースとして表現すべき対象物
ひと,組織
場所,建物
もの
会員 図書館員
書籍
施設
9
(2) 実体間の関連の抽出
10
関連 (relationship)
実体同⼠の相互関係
会員
図書館員書籍
施設
返却貸出
購⼊
配架
N N
1
N
M M
1
N
1 1
1 N
M N
カーディナリティ
11
実体間の量的関係
監督と球団
1対1
12
監督 球団契約
1 1
監督
番号
監督名
88 原
86 和⽥
79 緒⽅
球団
記号
球団名
G 読売ジャイアンツ
T 阪神タイガース
C 広島東洋カープ
⼀⼈の監督は⼀つの球団と契約する
⼀つの球団は⼀⼈の監督と契約する
学⽣
番号
学⽣名
19 藤浪
67 岩崎
11 ⼤⾕
学⽣と研究室
1対多,多対1
13
学⽣ 研究室所属
N 1
研究室
番号
研究室名
86 和⽥研
80 栗⼭研
⼀⼈の学⽣は⼀つの研究室に所属する
⼀つの研究室には複数の学⽣が所属する
学⽣
番号
学⽣名
6 ⾦本
39 ⽮野
42 下柳
学⽣とサークル
多対多
14
学⽣ サークル所属
N M
サークル
番号
サークル名
201 釣り
202 トレーニング
203 格闘技
⼀⼈の学⽣は複数のサークルに参加する
⼀つのサークルには複数の学⽣が参加する
⽒名
(3) 主キーと属性の定義
15
会員
図書館員書籍
施設
返却貸出
購⼊
配架
N N
1
N
M M
1
N
⽒名会員番号
図書館員番号
資料番号
書籍名
著者
出版社
施設番号
施設名
所在地
貸出⽇
返却⽇
購⼊⽇
配架⽇
主キーの選定基準
16
値ができるだけ変わらないもの
できるだけ桁数の少ないもの
必ず値が存在すること
(NULLがあってはならない)
ユニークな値を有する
複合キーでの連結が多くならない
⽒名
概念データモデル
17
会員
図書館員書籍
施設
返却貸出
購⼊
配架
N N
1
N
M M
1
N
⽒名会員番号
図書館員番号
資料番号
書籍名
著者
出版社
施設番号
施設名
所在地
E-R (Entity-Relationship) モデル
実体と関連と属性で表現する
データモデルであり,ER図
で記述する
貸出⽇
返却⽇
購⼊⽇
配架⽇
データベース設計⼿順
18
現実の世界
1. 概念設計
2. 論理設計
論理データモデル
3. 物理設計
物理データモデル
(1) 概念データモデルから
論理データモデルへの変換
(2) 正規化
概念データモデル
(1) 概念データモデルから論理データモデルへの変換
19
i) 実体を関係に変換
会員(会員番号,⽒名)
図書館員(図書館員番号,⽒名)
書籍(資料番号,書籍名,著者,
出版社)
施設(施設番号,施設名,所在地)
(1) 概念データモデルから論理データモデルへの変換
20
ii) 多対多の関連を処理
会員(会員番号,⽒名)
図書館員(図書館員番号,⽒名)
書籍(資料番号,書籍名,著者,
出版社)
施設(施設番号,施設名,所在地)
貸出(会員番号,資料番号,貸出⽇)
返却(会員番号,資料番号,返却⽇)
(1) 概念データモデルから論理データモデルへの変換
21
iii) 1対多,多対1の関連を処理
会員(会員番号,⽒名)
図書館員(図書館員番号,⽒名)
施設(施設番号,施設名,所在地)
書籍(資料番号,書籍名,著者,
出版社,施設番号,配架⽇,購
⼊図書館員番号,購⼊⽇)
貸出(会員番号,資料番号,貸出⽇)
返却(会員番号,資料番号,返却⽇)
22
i) 実体を関係に変換
ii) 多対多の関連を処理
 双⽅の実体の主キーと関連の属性を含んだ関係
を作成
iii) 1対多,多対1の関連を処理
 1側の実体の主キーと関連の属性を,多側の実
体に対応した関係に追加
iv) 1対1の関連を処理
 ⽚⽅の実体の主キーと関連の属性を,他⽅の実
体に対応した関係に追加
(1) 概念データモデルから論理データモデルへの変換
論理データモデル
23
会員(会員番号,⽒名)
図書館員(図書館員番号,⽒名)
施設(施設番号,施設名,所在地)
書籍(資料番号,書籍名,著者,出版社,施設
番号,配架⽇,購⼊図書館員番号,購⼊⽇)
貸出(会員番号,資料番号,貸出⽇)
返却(会員番号,資料番号,返却⽇)
 関係データモデルは論理データモデルの⼀つ
データベース設計⼿順
24
現実の世界
1. 概念設計
2. 論理設計
論理データモデル
3. 物理設計
物理データモデル
(1) 概念データモデルから
論理データモデルへの変換
(2) 正規化
概念データモデル
正規化
回 ⽇付 テーマ
8 5/28 関係データモデルと関係代数
9 6/4 データベース設計
10 6/11 正規化
11 6/18 データベースとプログラム
25
 第10回(次回)講義で詳しく学ぶ
 データの冗⻑性と不整合問題の解消⽅法を
理解する
データベース設計⼿順
26
現実の世界
1. 概念設計
2. 論理設計
論理データモデル
3. 物理設計
物理データモデル
(1) DBMSの選定
(2) テーブル設計
(3) インデックス設計
概念データモデル
(1) DBMSの選定
27
DBMSによって機能や特⻑が異なる
機能や特⻑を踏まえ,DBMSを選定する
(2) テーブル設計
28
カラム名 データ型 制約
member_id INT PRIMARY KEY,
REFERENCES member(id)
resource_id INT PRIMARY KEY,
REFERENCES resource(id)
checkout_date DATE NOT NULL
CREATE TABLE checkout (
member_id INT REFERENCES member(id),
resourc_id INT REFERENCES resource(id),
checkout_date DATE NOT NULL,
PRIMARY KEY(member_id, resource_id)
);
貸出(会員番号,資料番号,貸出⽇)
回 ⽇付 テーマ
12 6/25 トランザクションと同時実⾏制御
13 7/2 トランザクションと障害回復
14 7/9 データベース構造とインデックス
(3) インデックス設計
29
 第14回講義で詳しく学ぶ
 インデックスを設計することで効率的な
データアクセスを可能にする
データベース設計⼿順
30
現実の世界
1. 概念設計
2. 論理設計
論理データモデル
3. 物理設計
物理データモデル
概念データモデル
データとアプリケーションの接続
31
物理的な記憶領域
アプリケーション側からみると,
いくつもの⾒え⽅が存在
データの構造やアクセス⽅法を変更すると,
アプリケーション側も作り替える必要が発⽣
アプリケーション1 アプリケーション2
データとアプリケーションの接続
32
内部スキーマ
物理的な記憶領域
概念スキーマ
外部スキーマ1 外部スキーマ2
アプリケーション1 アプリケーション2
3層スキーマモデル
33
内部スキーマ
物理的な記憶領域
概念スキーマ
外部スキーマ1 外部スキーマ2
アプリケーション1 アプリケーション2
3層スキーマ
• 概念スキーマ
– 開発者側の視点からデータベースをみたもの.デー
タベース全体を表現した構造.特定のアプリケー
ションに依存しない構造を定義する.論理データモ
デルに対応する.
• 外部スキーマ
– アプリケーションやユーザ側の視点からデータベー
スをみたもの.アプリケーションで必要な部分のみ
の構造を定義する.ビューとよぶこともある.
• 内部スキーマ
– 物理的な視点からデータベースをみたもの.データ
の物理的な格納表現を⽰す構造.データベース内の
構造を定義する. 34
概念スキーマ = 論理データモデル
35
会員(会員番号,⽒名)
図書館員(図書館員番号,⽒名)
施設(施設番号,施設名,所在地)
書籍(資料番号,書籍名,著者,出版社,施設
番号,配架⽇,購⼊図書館員番号,購⼊⽇)
貸出(会員番号,資料番号,貸出⽇)
返却(会員番号,資料番号,返却⽇)
例;図書館データベース
 アプリケーションで必要な部分のみの構造を定義
 アプリケーションの数だけ外部スキーマが存在
外部スキーマ
CREATE VIEW 貸出状況
AS SELECT 貸出日, 書籍名, 施設名
FROM 貸出, 書籍, 施設
WHERE 会員番号=1234
AND 書籍.資料番号=貸出.資料番号
AND 書籍.施設番号=施設.施設番号;
例;会員番号1234の貸出状況ビュー
施設
書籍
貸出
貸出状況ビュー
CREATE VIEW貸出⽇ 書籍名 施設名
2015.04.10 MySQL メディアセンター
... ... ...
フィールド
レコード
ファイル
内部スキーマ
37
会員番号 ⽒名
1 ⿃⾕
3 関本
4 上本
1 ⿃⾕
3 関本
4 上本
ディスク関係
 データの物理的な格納表現を⽰す構造
 ファイル編成法やインデックスに関連
※ファイル編成法やインデックスの詳細ついては第14回講義で学ぶ
3層スキーマモデル
38
内部スキーマ
物理的な記憶領域
概念スキーマ
外部スキーマ1 外部スキーマ2
アプリケーション1 アプリケーション2
3層スキーマモデル
39
内部スキーマ
物理的な記憶領域
概念スキーマ
外部スキーマ1 外部スキーマ2
論理的データ独⽴性
概念スキーマが変更されても,アプリケーション側の
データ利⽤⽅法には影響しない
アプリケーション1 アプリケーション2
アプリケーション1 アプリケーション2
3層スキーマモデル
40
内部スキーマ
物理的な記憶領域
概念スキーマ
外部スキーマ1 外部スキーマ2
物理的データ独⽴性
物理的なファイル編成や実装⽅式の変更があっても,
その変更が概念スキーマには影響しない
3層スキーマとデータモデル
41
現実の世界
論理データモデル
物理データモデル
対応
内部スキーマ
概念スキーマ
外部スキーマ
概念データモデル
まとめ
42
概念設計
論理設計
物理設計
3層スキーマモデル
まとめ
43
実体と関連の抽出
概念データモデルとE-R図
概念データモデルから論理データモデルへの変換
DBMSの選定,テーブル設計,インデックス設計
概念スキーマ,外部スキーマ,内部スキーマ
論理的データ独⽴性と物理的データ独⽴性
3層スキーマとデータモデル
本⽇学習したキーワード
〜データベース設計編〜
44
1事実1箇所 繰返しグループ 第三正規形
3層スキーマモデル 更新不整合問題 第⼆次正規化
ER図 削除不整合 第⼆正規形
E-Rモデル 差集合演算 タプル(組)
JDBC θ結合演算 直積演算
インスタンス θ⽐較可能 等結合演算
カーディナリティ 次数 導出属性
概念スキーマ ⾃然結合演算 ドメイン(定義域)
概念設計 実体 内部スキーマ
概念データモデル 射影演算 濃度
外部スキーマ 修正不整合 ⾮正規形
関係(リレーション) 商演算 物理設計
関係スキーマ 推移関数従属性 物理的データ独⽴性
関係代数 選択演算 部分関数従属性
関係データベース(RDB) 挿⼊不整合 論理設計
関係(リレーショナル)
データモデル
属性(アトリビュート) 論理データモデル
関係名 属性値 論理的データ独⽴性
完全関数従属性 第⼀次正規化 和集合演算
関連 第⼀正規形 和両⽴
共通(積)集合演算 第三次正規化
これまでに学習したキーワード
〜データベース設計編〜
45
1事実1箇所 繰返しグループ 第三正規形
3層スキーマモデル 更新不整合問題 第⼆次正規化
ER図 削除不整合 第⼆正規形
E-Rモデル 差集合演算 タプル(組)
JDBC θ結合演算 直積演算
インスタンス θ⽐較可能 等結合演算
カーディナリティ 次数 導出属性
概念スキーマ ⾃然結合演算 ドメイン(定義域)
概念設計 実体 内部スキーマ
概念データモデル 射影演算 濃度
外部スキーマ 修正不整合 ⾮正規形
関係(リレーション) 商演算 物理設計
関係スキーマ 推移関数従属性 物理的データ独⽴性
関係代数 選択演算 部分関数従属性
関係データベース(RDB) 挿⼊不整合 論理設計
関係(リレーショナル)
データモデル
属性(アトリビュート) 論理データモデル
関係名 属性値 論理的データ独⽴性
完全関数従属性 第⼀次正規化 和集合演算
関連 第⼀正規形 和両⽴
共通(積)集合演算 第三次正規化

More Related Content

PDF
データベース03 - SQL(CREATE, INSERT, DELETE, UPDATEなど)
PDF
データベース10 - 正規化
PDF
データベース12 - トランザクションと同時実行制御
PDF
データベース01 - データベースとは
PDF
データベース02 - SQL概要
PDF
データベース13 - トランザクションと障害回復
PDF
データベース14 - データベース構造とインデックス
PDF
データベース08 - 関係データモデルと関係代数
データベース03 - SQL(CREATE, INSERT, DELETE, UPDATEなど)
データベース10 - 正規化
データベース12 - トランザクションと同時実行制御
データベース01 - データベースとは
データベース02 - SQL概要
データベース13 - トランザクションと障害回復
データベース14 - データベース構造とインデックス
データベース08 - 関係データモデルと関係代数

What's hot (20)

PDF
アクセスプラン(実行計画)の読み方入門
PDF
データベース入門1
PDF
雑なMySQLパフォーマンスチューニング
PPTX
データベース入門
PDF
データベース04 - SQL(SELECT:基本)
PDF
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLアンチパターン
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
PPTX
Sql server のバックアップとリストアの基礎
PDF
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PDF
ソーシャルゲーム案件におけるDB分割のPHP実装
PDF
外部キー制約に伴うロックの小話
PDF
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
PDF
SQL Server パフォーマンス問題対処 Deep Dive
PPTX
SQLアンチパターン メンター用資料
PDF
Google Cloud ベストプラクティス:Google BigQuery 編 - 01 : BigQuery とは?
PDF
Where狙いのキー、order by狙いのキー
PDF
Azure Synapse Analytics 専用SQL Poolベストプラクティス
PDF
これから機械学習エンジニアとして戦っていくみなさんへ ~MLOps というマインドセットについて~
PDF
DB2の使い方 管理ツール編
アクセスプラン(実行計画)の読み方入門
データベース入門1
雑なMySQLパフォーマンスチューニング
データベース入門
データベース04 - SQL(SELECT:基本)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLアンチパターン
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Sql server のバックアップとリストアの基礎
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
ソーシャルゲーム案件におけるDB分割のPHP実装
外部キー制約に伴うロックの小話
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
SQL Server パフォーマンス問題対処 Deep Dive
SQLアンチパターン メンター用資料
Google Cloud ベストプラクティス:Google BigQuery 編 - 01 : BigQuery とは?
Where狙いのキー、order by狙いのキー
Azure Synapse Analytics 専用SQL Poolベストプラクティス
これから機械学習エンジニアとして戦っていくみなさんへ ~MLOps というマインドセットについて~
DB2の使い方 管理ツール編
Ad

Similar to データベース09 - データベース設計 (20)

PDF
データベース技術 6(Database_6)
PDF
データベース技術 11(Database 11)
PDF
リレーショナルデータベースとの上手な付き合い方 long version
PDF
データベースシステム論02 - データベースの歴史と今
PDF
20200629 データベース基礎~データベースの扱いとデータ設計~
PPTX
千葉大学情報検索演習2018 データベースとは何か(事前学習教材)
PDF
データベース技術 1(Database_1)
PDF
Database smells
PDF
TAM 新人ディレクター システムスキルアップ プログラム 第6回 「データベース」
PDF
データベースシステム論14 - 総復習!
PDF
データベースシステム論15 - 関係データモデル以外のデータベース
PDF
データベースシステム論11 - データベースの構成
PDF
データベース技術 2(Database_2)
PDF
データベースシステム論06 - SQL基礎演習1 データの定義と操作
PDF
データベース技術 3(Database_3)
PDF
経済学のための実践的データ分析 4.SQL ことはじめ
PPTX
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
PPTX
Webシステムプログラミング設計書2015
PDF
データベース11 - データベースとプログラム
PDF
データベース設計の基本編.pdf
データベース技術 6(Database_6)
データベース技術 11(Database 11)
リレーショナルデータベースとの上手な付き合い方 long version
データベースシステム論02 - データベースの歴史と今
20200629 データベース基礎~データベースの扱いとデータ設計~
千葉大学情報検索演習2018 データベースとは何か(事前学習教材)
データベース技術 1(Database_1)
Database smells
TAM 新人ディレクター システムスキルアップ プログラム 第6回 「データベース」
データベースシステム論14 - 総復習!
データベースシステム論15 - 関係データモデル以外のデータベース
データベースシステム論11 - データベースの構成
データベース技術 2(Database_2)
データベースシステム論06 - SQL基礎演習1 データの定義と操作
データベース技術 3(Database_3)
経済学のための実践的データ分析 4.SQL ことはじめ
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
Webシステムプログラミング設計書2015
データベース11 - データベースとプログラム
データベース設計の基本編.pdf
Ad

Recently uploaded (10)

PDF
8_「世の中の流行はどのようにして生まれるのか」学校法人聖ドミニコ学園竹野はるいpptx.pdf
PDF
外国人が日本のテーブルマナーに驚く理由は?_公文国際学園高等部 角田 恵梨佳さん
PDF
My Inspire High Award 2024(岡田秀幸).pptx.pdf
PDF
6_「老いることは不幸なこと?」植草学園大学附属高等学校森 珠貴さんinspirehigh.pdf
PDF
5_「AIと仲良くなるには?」日本大学東北高等学校南梨夢乃さんinspirehigh.pdf
PDF
3_「本当の『悪者』って何?」鷗友学園女子中学校_福島 雪乃さんinspirehigh.pdf
PDF
9_前田音葉さん:「Yakushima Islandってなんか変じゃない?」.pdf
PDF
「なぜ、好きなことにいつかは飽きるの?」大塚莉子 - My Inspire High Award 2024.pdf
PPT
日本語test日本語test日本語test日本語test日本語test日本語test.ppt
PDF
7_「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」明治大学付属中野八王子中学校宮本ゆりかさん.pdf
8_「世の中の流行はどのようにして生まれるのか」学校法人聖ドミニコ学園竹野はるいpptx.pdf
外国人が日本のテーブルマナーに驚く理由は?_公文国際学園高等部 角田 恵梨佳さん
My Inspire High Award 2024(岡田秀幸).pptx.pdf
6_「老いることは不幸なこと?」植草学園大学附属高等学校森 珠貴さんinspirehigh.pdf
5_「AIと仲良くなるには?」日本大学東北高等学校南梨夢乃さんinspirehigh.pdf
3_「本当の『悪者』って何?」鷗友学園女子中学校_福島 雪乃さんinspirehigh.pdf
9_前田音葉さん:「Yakushima Islandってなんか変じゃない?」.pdf
「なぜ、好きなことにいつかは飽きるの?」大塚莉子 - My Inspire High Award 2024.pdf
日本語test日本語test日本語test日本語test日本語test日本語test.ppt
7_「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」明治大学付属中野八王子中学校宮本ゆりかさん.pdf

データベース09 - データベース設計