tobiraura :2011/9/8(13:36)

Connection to the Future with Digital Series
未来へつなぐ デジタルシリーズ

編集委員長：

白鳥則郎（ 東北大学）

編集委員：

水野忠則（ 愛知工業大学）
高橋 修（ 公立はこだて未来大学）
岡田謙一（ 慶應義塾大学）

編集協力委員：片岡信弘（ 東海大学）
松平和也（ 株式会社 システムフロンティア）
宗森 純（ 和歌山大学）
村山優子（ 岩手県立大学）
山田圀裕（ 東海大学）
吉田幸二（ 湘南工科大学）（ 50 音順）

main :

2014/11/4(9:41)

未来へつなぐ デジタルシリーズ

刊行にあたってデジタルという響きも，皆さんの生活の中で当たり前のように使われる世の中となりました．

20 世紀後半からの科学・技術の進歩は，急速に進んでおりまだまだ収束を迎えることなく，日々加速しています．そのようなこれからの 21 世紀の科学・技術は ，ますます少子高齢化へ向かう社会の変化と地球環境の変化にど う向き合うかが問われています．このような新世紀をより良く生きるためには ，20 世紀までの読み書き（ 国語），そろばん（ 算数）に加えて「デジタル」（情報）に関する基礎と教養が本質的に大切となります．さらには ，いかにして人と自然が「共生」するかにむけた ，新しい科学・技術のパラダ イムを創生することも重要な鍵の 1 つとなることでしょう．そのために ，これからますますデジタル化していく社会を支える未来の人材である若い読者に向けて ，その基本となるデジタル社会に関連する新たな教科書の創設を目指して本シリーズを企画しました ．
本シリーズでは , デジタル社会において必要となるテーマが幅広く用意されています．読者はこのシリーズを通して，現代における科学・技術・社会の構造が見えてくるでしょう．また，実際に講義を担当している複数の大学教員による豊富な経験と深い討論に基づいた，いわば みんなの知恵 を随所に散りばめた「日本一の教科書」の創生を目指しています．読者はそうした深い洞察と経験が盛り込まれたこの「新しい教科書」を読み進めるうちに ，自然とこれから社会で自分が何をすればよいのかが身に付くことでしょう．さらに ，そういった現場を熟知している複数の大学教員の知識と経験に触れることで ，読者の皆さんの視野が広がり，応用への高い展開力もきっと身に付くことでしょう．
本シリーズを教員の皆さまが ，高専，学部や大学院の講義を行う際に活用して頂くことを期
待し , 祈念しております．また読者諸賢が ，本シリーズの想いや得られた知識を後輩へとつな
ぎ ，元気な日本へ向けそれを自らの課題に活かして頂ければ ，関係者一同にとって望外の喜び
です．最後に ，本シリーズ刊行にあたっては ，編集委員・編集協力委員, 監修者の想いや様々な注文に応えてくださり，素晴らしい原稿を短期間にまとめていただいた執筆者の皆さま方に ,この場をお借りし 篤くお礼を申し 上げます．また, 本シリーズの出版に際しては ，遅筆な著者を励まし辛抱強く支援していただいた共立出版のご協力に深く感謝いたします．
「未来を共に創っていきましょう．
」

編集委員会
白鳥則郎
水野忠則
高橋 修
岡田謙一

main :2016/7/26(9:33)

はじめに

データベースとは，コンピュータを利用して大量のデータをまとめ，さまざまな用途に活用できるよう，保存，管理されたデータの集まりである．コンピュータの普及拡大にともなって，コンピュータが扱うデータ量は急激に増大しており，データベースの役割はますます重要になっている．蓄積された膨大なデータ「ビッグデータ」が，企業の意思決定に利用され始めている
が，これも重要なデータベースの用途の 1 つである．
本書は，データベースの中で最も利用されているリレーショナルデータベースを対象としており，本シリーズ 26 巻『データベース—ビッグデータ時代の基礎—』（以下，本シリーズ『データベース』）の第 8 章（データモデリング）をさらに深く掘り下げ，実際の業務システムの実装の演習まで行う内容となっている．本シリーズ『データベース』でデータベースの基礎理論を学び，本書『データベース応用—データモデリングから実装まで—』で，データベースの実践的な応用方法を演習によって学ぶことで，リレーショナルデータベースの理論から実践までの習得を目指す．
本書は，必要となるデータベースの基礎を学習した後に，本題の演習に入る構成になっており，データベースの基本の習得と演習ができる．本書の学習中や学習後，さらにデータベース
全体または個別のテーマを深く知りたいときは，本シリーズ『データベース』を学習することをお勧めする．
本書の対象者は，大学理系学部の学生だけでなく，大学文系学部の学生や社会人など，多くの読者を対象とする．システムの開発者は必ずしも業務を知っているわけでなく，企業のシステム開発には，そのシステムの業務を知る利用者の参加を求められることがある．その意味で，大学文系学部の学生や社会人が本書を学習する価値は大きい．
本書の特徴として次のものがあげられる．

(1) 誰もが利用したことがあるカジュアルウェアショッブを想定した商品販売システムという具体的なシステムを事例として，データモデリングから開発・運用までの一連のシステム
開発のプロセスを解説している．

(2) 本書で利用するデータベースツールとして，理系学生向けに MySQL（MySQL for Excel含む）を，文系学生または社会人向けにマイクロソフト社の MS Access を使用しており，スキルや目的に応じたシステム開発の学習が可能となっている．

(3) 各章末には，演習問題を配置しており，本文の理解を深めることができる．本文のデータ

main :

2016/7/26(9:33)

vi

◆

はじめに

は，出版社のサイトからダウンロードできる．また，第 15 章には本文の例題とは別のシス
テム開発を課題とする総合演習問題を提供して，知識の定着を図っている．
本書は，以下のような構成になっている．

• 第 1 章は，データベースの役割と機能の概要，本書の事例として利用する「カジュアルウェ
アショップシステム」について解説する．

• 第 2 章は，データベースの基本概念について解説する．SQL (Structured Query Language)の基本的な機能を使用して，データベースの操作（選択，射影，結合，集計）を解説する．

• 第 3 章から第 5 章は，事例に基づいて，データモデリングを実施する．データモデリングの表記方法である ER 図の作成，データモデリングの手順（実体の抽出，関連の設定，属性の設定，正規化，最適化）によるデータベースの設計を演習する．

• 第 6 章から第 13 章は，前章で設計したデータベースを使用して，システム機能を実装し，最後に業務全体の運用テストを行う．これらの章を順次学習することで，本書で取り上げる業務のシステムを完成することができる．データベースツールは，MySQL (MySQL for Excel)
または MS Access を使用して作成する．

• 第 14 章と第 15 章は，データの活用方法と総合演習問題からなる．
• 付録 1 から付録 6 は，MySQL，MS Access，本書で使用するその他のツールについて，インストール方法や使用方法を記述している．
本書は，大学の 15 回の授業に合わせて各章の内容をまとめ，1 章ごとに 1 回の授業で講義できるようにしている．また，各章には，学習のポイントや演習問題をあげると共に，第 15 章に全体の演習問題をあげ，さらに巻末に用語集を入れて活用しやすくした．なお，本文記載のシステムを動作確認するためのデータ，および演習問題の解答例とそのデータを用意しており，教員が出版社の Web サイトからダウンロードして活用できるようにしている．
ぜひ，本書を多くの大学の情報系や経営系などの学科での講義や演習などで，ご活用いただ
けるよう，何卒よろしくお願い申し上げます．
また，本書をまとめるにあたって，大変ご協力を戴きました，未来へつなぐデジタルシリー
ズの編集委員長の白鳥則郎先生，編集委員の水野忠則先生，高橋修先生，岡田謙一先生，および編集協力委員の松平和也先生，宗森純先生，村山優子先生，山田圀裕先生，吉田幸二先生，ならびに共立出版の編集部の島田誠氏，他の方々に深くお礼を申し上げます．

2016 年 7 月
執筆者

片岡

信弘

宇田川佳久
工藤

司

五月女健治

main :

2016/7/26(9:33)

本書を有効に活用いただくために授業を担当される教員の方々のための補足説明を示します．

1．授業方法について(1) 第 1 章から第 14 章まで，14 回で実施するよう構成している．なお，各章末には演習問題を設定しているので，1 回 2 時限，または 1 年間 28 回で実施するときは，1 時限目を講義，

2 時限目を演習にするなどの方法がある．
(2) 第 6 章から第 13 章は，MySQL と Access で独立した構成としているので，いずれか一方だけの学習も可能である．

(3) 本書のねらいは，「演習」によって実践的なデータベースの知識を学習することである．以
下のような 3 段階の演習によって知識が確実なものになるよう構成されている．

• 本文の「カジュアルウェアショップシステム」を，本文に従って構築することで，設計・実装の方法・手順を学ぶ．

• 第 15.5 節「成績管理システム」を第 3 章から第 13 章の各章の演習問題として実施して，設計・実装の方法・手順を習得する．

• 本書の 15.1 節〜15.4 節の総合演習問題のシステムを構築して，実践的な応用力を付ける．
(4) MySQL で演習する場合は，授業を始める前に，付録 1 と付録 5 を参照してインストールと環境の構築を行っておくこと．

(5) 第 15 章の総合演習問題は，期末レポートまたはゼミなどにおける発展課題として利用す
る．各演習問題の設問とその解答の特徴を以下の表 1 に示すので，目的や難易度に応じて問題を選択できる．解答の文書とデータの入手方法は，以下の 3.(2) を参照とする．

(6) 15.5 節の「成績管理システム」は，第 3 章から第 13 章までの各章ごとに問題を配分しているので，各章の演習問題としても利用できる．

(7) 本書では，できるだけ容易にシステムの実装を行うことができるよう，以下の方針で実装例を作成している．

• MySQL においては MySQL for Excel を利用する．MySQL for Excel は，Excel で対話的に，テーブルデータの登録・参照・更新・削除，集計などの検索結果の表示を可能にするツールである．本書では，MySQL for Excel と，入力データのチェックや集計
結果の取得などのために SQL 文を使用する．通常のシステムの実装にはプログラミン
グ言語を必要とするが，本書の例は，MySQL for Excel と SQL 文だけで，システムのmain :

2016/7/26(9:33)

◆

viii

本書を有効に活用いただくために

表1

総合演習問題節

システム名MySQL/Access

設問と解答の特徴

難易度

15.1

スケジュール
調整

MySQL
Access

比較的簡単．問題の中に解答の多くが示されている．

易

比較的簡単．問題の中に解答の多くが示されている．

易

15.2 所要量計算

MySQL
Accessレポートのための Select 文が充実している．

難

レポート機能を使った帳票が充実している．

中15.3 履修管理

MySQL
Access

比較的簡単なシステムである．

易

比較的簡単なシステムである．

易

15.4 図書館

MySQL
Access

データモデリングの解答が充実している．

中

データモデリングとフォーム機能が充実している．

難

15.5 成績管理

MySQL
Access

本文のシステムの基礎的な機能を使用したシステムである．

中

本文のシステムの基礎的な機能を使用したシステムである．

中

実装ができることを示す実装例である．このシステムの実装方法をさらに演習したいときは，第 15 章の総合演習問題「15.2 所要量計算システム（MySQL 版）」を実施する．

• Access においては，標準的なクエリ作成機能，フォーム機能，レポート機能を使用して実装する．Access のシステムでは，プログラミング言語 VBA (Visual Basic for Ap-

plications) を使用することがあるが，本書の例は，標準的な機能だけを使用して，システムの実装ができることを示す実装例である．なお，必要な個所でマクロを補完的に使用する．このシステムの実装方法をさらに演習したいときは，第 15 章の総合演習問題「15.4 図書館システム（Access 版）」を実施する．

2．本書で使用するソフトウェアについて(1) OS 環境
本書で使用する PC の OS（オペレーティングシステム）は，MS Windows を前提とする．

(2) MySQL 利用環境
本書に示す MySQL 利用環境は，MySQL for Excel を含む MySQL Community Server（無償で利用できる GPL ライセンス）を使用する．

• MySQL は，以下から入手する．
http://dev.mysql.com/downloads/mysql/• インストール方法を付録 1，環境設定と使用方法を付録 5 に示す．
(3) MS Access 2013
本書に示す Access 2013 の製品版を利用できない場合は，一時的に Microsoft Oﬃce Pro-

fessional Plus 2013（60 日間の評価版）を使用することができる．
• Microsoft Oﬃce Professional Plus 2013（60 日間の評価版）は，以下から入手する．
https://www.microsoft.com/ja-jp/oﬃce/2013/trial/default.aspx• Microsoft 教育機関向け DreamSpark の DreamSpark Premium サブスクリプションに登録すると，MS Access 2013 の製品版の入手が可能である．

main :

2016/7/26(9:33)

本書を有効に活用いただくために◆

ix

https://www.dreamspark.com/Default.aspx• Microsoft Oﬃce Professional Plus 2013 のインストール方法を付録 4，使用方法を付
録 6 に示す．

(4) ER 図
本書に示す ER 図は，A5:SQL Mk-2（フリーソフト）を使用する．

• A5:SQL Mk-2 は，以下から入手する．
http://www.wind.sannet.ne.jp/m matsu/developer/a5m2/• インストールおよび使用方法を付録 2 に示す．
(5) MS Excel
本書で使用している Excel は，Excel 2013 である．

(6) テキストエディタ
SQL 文などの作成・編集を行うために適切なテキストエディタを使用することが望ましい．本書では，Mery（フリーソフト）を使用する．

• Mery は，以下から入手する．
http://www.haijin-boys.com/• インストールおよび使用方法は，付録 3 に示す．
3．データなどの入手方法について(1) 本文記載のシステムを動作確認するためのデータ（誰でも入手可能である）
出版社ホームページ (http://www.kyoritsu-pub.co.jp/) で図書検索し入手する．
入手できるデータの概要は以下である．

• ER 図（A5:SQL Mk-2 ファイル）• MySQL 用入力データ（excel ファイル）• MySQL 用 SQL 文（テキストファイル）• MySQL 用完成システム作成 SQL 文（テキストファイル）• Access 用入力データ（excel ファイル）• Access 用完成システム（Access ファイル）(2) 演習問題解答
本書を教科書として採用した教員は，共立出版教科書課へメール (mail!text@kyoritsu-

pub.co.jp) で請求することで入手する．

main :

2016/7/26(9:33)

main :

2016/7/26(9:33)

目

次

はじめに

v

本書を有効に活用いただくために

第1章

1.1

データベースとは 1

データベースの目的

vii

1

1.2
データベース管理システム (DBMS) が実
現する機能
2

1.3
データベース操作のための機能

4

1.4
データベース管理システムの種類

4

1.5
例題業務の説明

4

1.6
本書の流れ

8

1.7
本書での演習環境

第2章

2.1

リレーショナルデータモデル 10

データベースとリレーショナルモデル

8

10

2.2
リレーショナルモデルの構成

112.3
標準言語としての SQL

15

2.4
SQL の基本機能

16

2.5
ビュー

25

main :

2016/7/26(9:33)

xii

◆

目

次

第3章

3.1

データモデリング 28

データモデリングとは

28

3.2
データモデリングの手順

29

3.3
実体関連図（ER 図）

30

3.4
実体の抽出

31

3.5
関連の設定

34

3.6
属性の設定

36

3.7
業務の視点でのデータモデルの完成

37

3.8
データモデルの確認作業

第4章

4.1

データモデルパターン 40

データモデルパターンとは

39

40

4.2
1 対多

41

4.3
1対1

46

4.4
1 対多の連鎖（1 対多対多）47

4.5
1 対多対 148

4.6
多対 1 対多50

main :

2016/7/26(9:33)

目

次

◆

xiii

4.7
多対多

50

4.8
集計値をもつ実体のパターン

第5章

5.1

正規化と最適化 55

正規化

52

55

5.2
正規化の反映と多対多の解消

61

5.3
最適化

第6章

6.1

商品管理サブシステム

商品管理サブシステムとは

その 1 66

6.2
テーブル設計

63

66

67

6.3
MySQL による実装

69

6.4
MS Access による実装

75

第7章

7.1

商品管理サブシステム

この章の範囲80

7.2
MySQL による実装

80

7.3
MS Access による実装

86

その 2 80main :

2016/7/26(9:33)

xiv

◆

目

次

第8章

8.1

販売管理サブシステム

販売管理サブシステムの機能と構造

その 1 918.2
テーブル設計

91

93

8.3

第9章
販売管理サブシステム
その 2 103MySQL による実装

94

8.4
MS Access による実装

98

9.1
販売管理情報入力機能における入力誤りの
検出
103

9.2
MySQL による実装

104

9.3
MS Access による実装

114

第 10 章10.1

販売管理サブシステム

レポート一覧

その 3 122

10.2
MySQL による実装

122

123

10.3
MS Access による実装

第 11 章11.1

在庫管理サブシステム

在庫管理サブシステムとは

その 1 132

11.2

126

132

在庫管理サブシステムの要件とデータベー
ス設計
133

main :

2016/7/26(9:33)

目

次

◆

xv

11.3
MySQL による実装

134

11.4
MS Access による実装

138

第 12 章12.1

在庫管理サブシステム

この章の範囲その 2 142

12.2

142

MySQL による実装

143

12.3
MS Access による実装

147

第 13 章13.1

システム運用方式とシステム運用方式

運用テスト 155

13.2
運用テストとは

155

156

13.3
MySQL による実装システムの運用テスト 157
13.4
MS Access で実装したシステムの運用テ
スト

第 14 章14.1

データの活用 168

データ活用とは

163

168

14.2
データの取込み169

14.3
ピボットテーブルによる集計

171

14.4
ピボットテーブルによる分析

174

main :

2016/7/26(9:33)

xvi

◆

目

次

第 15 章15.1

総合演習問題 181

スケジュール調整システム

181

15.2
所要量計算システム

184

15.3
履修管理システム

188

15.4
図書館システム

190

15.5
成績管理システム（各章演習問題）

付録 1

194

1.1

MySQL のインストール方法 199 概要

199

1.2
ダウンロード199

1.3
インストール

200

1.4
Path の設定

201

1.5
MySQL for Excel のパスワードの設定

202

1.6
MySQL のアンインストール

203

付録 2

2.1

A5M2 インストール方法と概要

使用方法 204

2.2
インストール

204

204

2.3
起動

204

main :

2016/7/26(9:33)

目

次

◆

xvii

2.4
実体の作成

205

2.5
リレーションシップの作成

207

2.6
本文の ER 図に表記を合わせる方法

208

2.7
図の調整

210

2.8

付録 3

Mery のインストールと使用
方法 212

DDL の作成

211

3.1
Mery のインストールと設定

212

3.2
MySQL 文での利用方法

213

付録 4

4.1

MS Access 評価版インストール

概要

方法 214

4.2
評価版の入手

214

214

4.3
インストール

215

4.4

付録 5

MySQL の使い方 217

Access の最初の起動

216

5.1
MySQL による実装環境

217

5.2
SQL 文の実行方法

218

main :

2016/7/26(9:33)

xviii

◆

目

次

5.3
データベースの保存と復元

222

5.4
ビューによる検索223

5.5
MySQL for Excel による入出力

223

5.6
本書で使用している高度な SQL 文

付録 6

6.1

MS Access の使い方 231

データベースの作成

225

231

6.2
テーブル新規作成231

6.3
テーブルのデザインビュー表示

232

6.4
テーブルのフィールド作成

232

6.5
テーブル間のリレーションシップ設定

233

6.6
テーブルのフォーム作成とレイアウト調整 235

6.7
クエリ作成

236

6.8
拡張フォームの作成（クエリに対するフ
237
ォーム）

6.9
項目へのプルダウンメニュー設定

238

6.10
Excel シートからのインポートによる新規
テーブル作成241

main :

2016/7/26(9:33)

目

次

◆

xix

6.11
既存のテーブルに Excel シートからデータ
242
を追加

6.12
レポート作成243

6.13
テーブルのレコード一覧フォーム作成

245

6.14
レコード一覧表示フォームと関連する他のフォームの連携作成
247

6.15
メインメニュー作成

249

6.16
レコードの操作ボタン設定

250

6.17
フィルターの設定によるレコードの選択

251

6.18
テーブルに対する複数の主キー (PK) の設
定方法
252

6.19
サブフォームの追加方法

参考文献

254

用語解説表

255

索

257

引

253

main :

2016/7/26(9:33)

main :

2016/7/26(9:33)

第1章

データベースとは□ 学習のポイント

世の中には，さまざまなデータが存在するが，これを有効活用するためには，収集し蓄積することが必要である．データが蓄積されたものが，データベースであり，データの蓄積や蓄積したものを管理するシステムがデータベース管理システムである．大量のデータを効率よく管理するためには各種の機能が必要であり，データベース管理システムはこれのための機能を提供している．

• 本書が対象としているのは，定型データであることを理解する．
• データベース管理システム (DBMS) が実現する機能を理解する．
• 利用者がデータベースを操作する機能を理解する．
• 本書の流れと演習中心に授業が進められることを理解する．
• 本書の演習で想定するカジュアルウェアショップシステムの概要を理解する．
• 本書の演習環境として MySQL と MS Access の 2 つが存在するが，通常はどちらか一方のみを利用するため他方のことは考慮する必要がないことを理解する．


□ キーワード

データベース，定型データ，非定型データ，データベース管理システム (DBMS)，外部スキーマ，
概念スキーマ，内部スキーマ， MySQL， MS Access

1.1 データベースの目的
世の中のデータには，定型データと非定型データがある．定型データとは，構造化データとも呼ばれ，伝票などに記載された「商品名」，「単価」，「販売個数」などのデータや，住民票に記載されている「氏名」，「生年月日」，「住所」など，データの構造が事前に定義されているデー
タである．一方の非定型データとは，非構造化データとも呼ばれ，文書，画像，動画，音声などがこれに相当する．これらは，アプリケーションソフトなどを用いて解釈しないと内容が確認できない点が，特徴である．また，インターネット上のブログやビッグデータなども非定型データである．非定型データの処理は，最近目覚ましい進歩を遂げているが，コンピュータでの処理の基本は，定型データであり，本書では，定型データを対象としている．

main :

2016/7/26(9:33)

2

◆

第1章

データベースとはデータを有効活用するためには，収集し蓄積することが必要である．データが蓄積されたものが，データベースであり，データの蓄積や蓄積したものを管理するシステムがデータベース
管理システムである．定型データの場合は，各項目やデータの型式などを予め設定し，これに合うデータを収集しデータベースを作成する．また，データは集められているだけでは価値がなく，データの価値はその利用のされ方により決まる．したがって，どのようにデータを利用するかを考慮してデータベースを作成する必要がある．重要な意思決定に必要なデータがデー
タベースのどこかにあっても，それが必要なときに取り出すことができないとそのデータの価値はないに等しい．
一方，データベースは多目的に共同で使用される．各利用者は，データベースの中のデータをすべて理解する必要はなく，自分に必要なデータだけを理解すればよい．一人のユーザが認識するデータの範囲を設定する機能をデータベース管理システムがもつことにより，利用者の利用するデータベースをより理解しやすくすることができる．
また，データベースに蓄積されるデータには，リソース系のデータとイベント系のデータが存在する．リソース系のデータとは，「商品」，「会員」などといった比較的変動の少ないデータである．イベント系のデータとは，「注文」，「在庫」などといった企業活動により，日々発生し，変化するデータである．これらのデータが処理されることにより，企業活動の結果がデータベースに反映される．また，これらのデータは，販売動向把握などのための分析にも利用される．

1.2 データベース管理システム (DBMS) が実現する機能
大量のデータを効率よく管理するためにデータベース管理システムが必要であるが，これが実現しなければならない機能としては次のものがある．

(1) 大量のデータを効率よく管理すること
企業活動の多くのデータがデータベースとして管理されるが，取引件数，顧客数が多くなればなるほどデータの件数は増大する．したがって，これらのデータを効率よく管理できる必要がある．

(2) データの同時アクセス制御ができること
通常のファイルでは，複数の人や複数のアプリケーションソフトウェア（アプリケーション）
が同時に利用することはない．しかし，データベースでは，複数の人や複数のアプリケーショ
ンが同時に利用することが必要である．例えば，複数の端末から同時に販売処理がなされるときは，複数の販売処理アプリケーションにより同時に販売関連のデータベースが同時に参照，
更新される．また，このデータは，別のアプリケーション，例えば，在庫管理のアプリケーショ
ンからも同時に参照，更新される可能性がある．これらの複数の同時の参照や更新に対して矛
盾なく処理ができる機能が必要である．

main :

2016/7/26(9:33)

1.2 データベース管理システム (DBMS) が実現する機能◆3(3) 使いやすく機能の高い言語の実現
データベースを利用したアプリケーションを実現するためには，アプリケーション開発言語
からデータベース管理システムを通じてデータベースを利用するための手段が必要である．現在，広く利用されており，本書で取り上げるリレーショナルデータベース (RDB) では，SQL(Structured Query Language) が利用されるが，シンプルな構文で効率よく目的とするデー
タをアクセスすることが可能である．また，これは，ISO（国際標準化機構）により世界の標
準規格となっている．

(4) データをコンピュータで扱うための方式の確立
実世界のデータをコンピュータで扱うためモデル化が行われる．このモデル化は，図 1.1 に示すように，外部レベル，概念レベル，内部レベルの 3 層で定義されるのが一般的である．

• 外部レベルは，外部スキーマで定義されるが，利用者やアプリケーションから見たデータ構造の定義である．MySQL のビューあるいは Access のクエリに対応するものである．

• 概念レベルは，概念スキーマで定義されるが，これは，テーブルに対応する．本書では，
データモデリングによって，概念スキーマを作成する．また，その表記法に ER 図を利用する．

• 内部レベルは，内部スキーマで定義されるが，記憶装置やデータファイル上での物理的デー
タの配置や格納方法について定義するものであり，通常利用者からは見えない世界である．
これは，MySQL あるいは Access の設定をそのまま使用するので，本書では，特に説明しない．
また，これらの 3 つのレベルは互いに独立しており，一方が変化しても，他方が変化する必要がないことが求められる．

アプリケーション(MySQLやAccess)で利用
外部レベル
概念レベルか
らの独立性

外部スキーマ外部スキーマ外部スキーマ

ビュー1

ビュー2

ビュー3

テーブル

概念レベル

概念スキーマテーブル

内部レベルか
らの独立性

物理ファイル
内部レベル

図 1.1

テーブル

内部スキーマ
物理ファイル

3 層のスキーマ構造

main :

2016/7/26(9:33)

4

◆

第1章

データベースとは(5) データの安全性を保障する
障害でのデータの消滅防止や，権利のないものからのデータのアクセスを防止する必要がある．このため，データベース全体のバックアップを取る機能や，データを更新したときにその更新履歴（ジャーナル）を取る機能などが必要である．また，利用者ごとにアクセス可能なデータを設定するなど，よりきめ細かなデータアクセス管理機能が必要である．

1.3 データベース操作のための機能
利用者がデータベースを利用するためには，次の機能が必要である．

(1) データベース定義機能
データベース定義機能は，データを登録するテーブルの定義，データの項目あるいはキーとなる項目およびテーブル間の関連の定義である．これらの機能は通常，データベースをアクセスする言語機能を通じて行われる．また，これは，概念スキーマに基づき行われる．

(2) データ操作機能
データの登録，更新，削除，参照は，通常，概念スキーマを利用してデータベースをアクセスする言語機能により行われる．外部スキーマを利用してデータを参照する場合は，この外部
スキーマの定義に基づくアクセスとなる．

1.4 データベース管理システムの種類
世の中には，ネットワーク型データベース，階層型データベース，リレーショナルデータベー
ス，オブジェクト指向データベースなどさまざまなものがあるが，本書で扱うのは，現在最も一般的に利用されているリレーショナルデータベースである．
リレーショナルデータベースは，データを表形式で所持し，この表の関係により管理するものである．商用データベース管理システムの代表的なものには，IBM 社の DB2，オラクル社の ORACLE，マイクロソフト社の SQL Server や MS Access がある．また，オープンソー
スとしては，MySQL，PostgreSQL などがある．

1.5 例題業務の説明
本書の演習の例題として利用する「カジュアルウェアショップシステム」について説明する．

1.5.1 概要
商店街でカジュアルウェアを扱う小さな衣料品販売店を営んできた．若者向けカジュアルウェ
アの販売は，店舗よりインターネット上で販売する方が売り上を伸ばすことができると考え，
ネットショップによる規模の拡大を目指すこととした．
ネットショップの開店は，クラウドサービスとして提供されるネットショップ開設サービス

main :

2016/7/26(9:33)

1.5 例題業務の説明◆

5を利用する．システムを独自開発するには大きな費用と時間を有するが，このサービスを利用すると，安価な初期費用で，ショップを短期間に立ち上げられるというメリットがある．採用したサービスには，決済代行の機能があり，クレジットカード決済と後払いに対応している．
ネットショップサービスは，顧客から注文を受けて，代金を回収する．カジュアルウェアショッ
プは，ネットショップサービスから，注文情報を受けて，自社の倉庫から商品を顧客に発送す
る．倉庫の設置に伴って，取り扱う商品の種類を増やすことにする．現在の衣料品販売店の業務をコンピュータ化して業務効率を上げる．図 1.2 は，ネットショップ運用時の商品，情報，金の流れを示す．

䝛䝑䝖䝅䝵䝑䝥

䜹䝆䝳䜰䝹䜴䜵䜰
䝅䝵䝑䝥
䜸䝣䜱䝇
㢳ᐈ

ฟⲴ౫㢗

಴ᗜ
㐠㏦఍♫

಴ᗜ
಴ᗜ

௙ධ䜜ඛ

図 1.2

カジュアルウェアショップ

1.5.2 現在の業務内容
現在は，通常の店頭販売を行っており，POS 端末以外は特にコンピュータは利用していな
い．業務で管理する情報には，商品台帳，レシート（控え）がある．倉庫はもっておらず，店頭の商品が在庫商品である．在庫数量は，商品台帳に記載している．顧客が商品を購入すると
き，POS 端末を使用し，POS 端末が出力したレシートの控え（図 1.3）を保管している．

1.5.3 ネットショップ開店までの作業(1) 倉庫の準備と商品の仕入れ
全国からの注文に対して，できるだけ商品が早く届くこと，および輸送コストを抑えるために，札幌，東京，大阪，福岡に，倉庫を設置する．現在の在庫商品と新しく仕入れた商品を各倉庫に入庫する．

main :

2016/7/26(9:33)

6

◆

第1章

データベースとはカジュアル衣料品販売店
レシート
伝票番号：0101
日付：2014年11月16日15時30分

商品ID 商品名 サイズ 数量

価格

MT08M ＴシャツM

1 ¥1,500

WT28M ブラウスM

2 ¥6,000

合計：¥7,500

現金：¥10,000

釣銭：¥2,500

図 1.3

現在業務のレシート(2) ネットショップへの商品の登録
ネットショップサービスに対して，ネットショップ開店の諸手続きを実施し，商品を登録して，開店する．

1.5.4 カジュアルウェアショップシステムの業務
カジュアルウェアショップのシステムに関わる業務とその内容は，以下である．実際の商品の販売や代金の受取は，ネットショップサービスで行われ，当システムは，そのバックボーン
として動作するものである．商品の登録は，当システムで行われ，ネットショップサービスに反映される．会員登録は，ネットショップサービスの機能で行い，そのデータを当該システムが受け取るものとする．売上金や支払金の管理も，別の方法で行うものとする．

(1) 商品管理部門業務
商品管理サブシステムを利用して商品の登録を下記のような分類で行う．

(a) カテゴリー登録
取扱商品の種類を増やしたため，商品の対象者の分類情報であるカテゴリーを導入する．
カテゴリーは，男性，女性，子供からなる．この業務は，新しいカテゴリーを設定するとき，カテゴリー情報を登録する作業である．カテゴリー情報を参照，更新，削除する作業も含む．
カテゴリー情報は，カテゴリー ID，カテゴリー名からなる．

(b) グループ登録
カテゴリーに属する商品をさらに衣類の種類ごとに分類するグループを導入する．グルー
プには，トップス，ボトムス，アウターなどがある．商品をカテゴリーおよびグループで分類することによって，商品の種類による売り上を確認して，次の仕入れの判断材料にすることmain :

2016/7/26(9:33)

1.5 例題業務の説明◆

7が狙いである．この業務は，新しいグループを設定するとき，グループ情報を登録する作業である．グループ情報を参照，更新，削除する作業も含む．グループ情報は，グループ ID，
グループ名，所属するカテゴリー ID からなる．

(c) 商品登録
新しい商品を取り扱うとき，商品情報を登録する作業である．商品情報を参照，更新，削除する作業も含む．商品情報は，商品 ID，商品名，サイズ，標準価格，所属するグループ ID
からなる．商品名としては，ハーフコート，T シャツなどがある．サイズは，S，M，L からなる．

(2) 販売管理部門業務
販売管理サブシステムを利用して下記の業務を行う．

(a) 会員登録
顧客がネットショップで会員登録を行うと，ネットショップから会員情報が送付されるので，その会員情報を登録する作業である．会員情報を参照，更新，削除する作業も含む．
会員情報は，会員 ID，会員名，性別，メールアドレス，郵便番号，住所からなる．

(b) 注文処理
顧客がネットショップで商品の注文を行うと，ネットショップから注文情報が送付されるので，その注文情報をカジュアルウェアショップシステムに登録する．注文情報は，注文 ID，会員 ID，会員名，メールアドレス，郵便番号，住所，注文日，合計，1 つ以上の注文商品の情報（商品 ID，商品名，サイズ，販売価格，数量，小計）からなる．
注文がされると，商品の発送指示のため，在庫管理部門へ注文 ID を通知する．

(c) 支払処理
顧客がネットショップで支払いを行うと，ネットショップから支払情報が送付されるので，その支払情報をカジュアルウェアショップシステムに登録する．支払情報は，注文 ID，支払日からなる．

(3) 在庫管理部門業務
在庫管理部門は，在庫管理サブシステムを利用して下記の業務を行う．

(a) 倉庫管理
倉庫 ID，倉庫名，倉庫住所を倉庫情報として倉庫の管理を行う．

(b) 在庫管理
各倉庫の在庫管理を行う．在庫情報は，倉庫 ID，商品 ID，在庫数量からなる．販売部門
から商品の注文通知が来ると，注文会員の住所に最も近い倉庫の在庫を確認する．その倉庫に在庫がないときは，その次に近い倉庫の在庫を確認する．在庫が確認できると，在庫数量の削減を行い，当該倉庫に出荷指示のため注文 ID を受け渡す．

(4) その他の業務
その他の業務とし，入金一覧や在庫一覧など各種の帳票の作成がある．

main :

2016/7/26(9:33)

◆

8

第1章

データベースとは

1.6 本書の流れ
本書の流れは，次のとおりである．最初に本書が対象としているリレーショナルデータベースの基本やデータモデリングについて説明する．1.5 節で説明した「カジュアルウェアショッ
プシステム」を順次実装するステップに対応して各章が記述されている．具体的には，商品管理サブシステム，販売管理サブシステム，在庫管理サブシステムを順次実装し，最後に完成したシステムの運用テストを行うという演習を中心とした流れとなる．

1.7 本書での演習環境
本書の演習で利用するリレーショナルデータベースは下記の 2 つであり，この 2 つの説明は独立しており，他方を特に意識する必要がないような記述としている．受講者に応じて 2 つを使い分けることができる．

(1) MySQLMySQL は，フリーソフトでは，最も広く利用されているリレーショナルデータベース管理システムである．Windows や各種 UNIX 系 OS など，多くのプラットフォームで動作する．
高速で使いやすいことが特徴であり，本格的なデータベース管理システムとして利用可能である（本書の演習は，Windows を前提としている）．

MySQL には以下の 2 種類がある．
• MySQL Community Server 版 : GPL1) 方式のフリーソフト（本書はこれを利用する）• MySQL Enterprise 版 : 商用利用版
MySQL のダウンロードやインストールについては，付録 1 参照のこと．
(2) マイクロソフト社 Access (MS Access)Access は，マイクロソフト社が提供しているデータベース管理システムである．リレーショ
ナルデータベースの機能と共に，その上で動作するアプリケーションを作成する機能を提供している．利用者は，プログラムを作成することなく，ビジブルなインタフェースで，データベースを作成し，データベースをアクセスするアプリケーションを作成することができるのが特徴
である．

1)

GPL とは，General Public License のことで，ソフトウェアのコピーや再配布，ソースコードの改変などを第三者に認めるが，ソフトウェアの著作権は開発者に帰属しているとする．GPL に基づいて公開されたソフトウェアを改変して再頒布する場合は，GPL に従ってそのソースコードを公開することが求められる．

main :

2016/7/26(9:33)

演習問題

◆


演習問題
設問 1

データベースはなぜ必要かを 2 点挙げ，簡単に説明せよ．

設問 2

データベース管理システムが果たさなければならない機能を 3 点上げて，簡単に

9



説明せよ．





main :

2016/7/26(9:33)

第2章

リレーショナルデータモデル
□ 学習のポイント



本章では，本書で対象とするリレーショナルデータモデルについて学習する．リレーショナルデー
タモデルでは， 1 件のデータを複数の属性の集合として表現し，これをタプル（組み， tuple）と呼ぶ．リレーションはタプルの集合として定義される．リレーションを構成するタプルを一意に識別す
る属性の集合をキーと呼ぶ．リレーションを操作するためにリレーショナル代数と呼ばれる演算の体系がある．
リレーショナル代数を，実務的な観点から言語として体系化したものが ISO 規格である SQL であり，多くのデータベース管理システムが SQL に準拠している．

• リレーショナルモデルの概念を理解する．
• リレーショナル代数を理解する．
• リレーショナルモデルをコンピュータ上に実装したものがリレーショナルデータベースであることを理解する．

• SQL を使ったテータベースの操作方法を理解する．


□ キーワード

リレーション，タプル，属性，キー，リレーショナル代数，テーブル，行，列，キー制約，参照整
合性制約，第 1 正規形， SQL， create table， insert， select， update， delete

2.1 データベースとリレーショナルモデル
第 1 章では，データベースの概要について述べた．データベースとは，データを有効活用するために蓄積したものである．そのためには，データやデータ同士の結びつきを蓄えるための枠組みを用意しなければならない．この枠組みをデータモデルと呼ぶが，第 2 章では，この枠組みの論理的な仕組みの説明を行い，データベースの理解を深める．リレーショナルモデルは，現実世界のデータを n 項のリレーション（関係）で表現するものである．直感的には n 個の項目で構成されている 2 次元の表を使ってデータを管理する．
リレーショナルモデルをコンピュータで稼動させ，データベースを有効活用するために，数