データベース技術
第2回(2015.10.6)
1
データとは何か?
•データと情報の違い
- データ
• 例:今日の天気は雨、気温25℃、湿度60%
- 情報
• 例:今日は雨だから傘が必要だ。湿度が高い。
人間の頭(脳)で解釈された“意味”のある事柄
ある事柄を伝達し易いよう表現したもの
2
データ管理の課題
•データの重複管理による不整合や管理の無駄
- データの更新情報の伝達ミス
- データの更新作業の抜け
- データの矛盾が発生
•新しい変化に対応しにくい
- 新しい部署や新しいデータへの対応
これらの課題をデータベースを使って解決する
3
データベース
•データベースとは
- 様々な目的を考慮して整理整頓されたデータの集まり
•データベースを利用するメリット
- データを一元管理し、共有できる
- データの矛盾や重複を防ぐことができる
- データを複数の人が同時に利用できる
4
データベースに必要なこと
•データの容易な追加、削除、更新、検索
•大量のデータを高速で処理できる
•データの安全性、機密性を保つ
•データの整合性を保つ
•データの障害回復機能
DBMS(Database Management System)
5
社会の中のデータベースの例
•前回の提出物から
- 図書館蔵書検索システム
- 美術館所蔵作品データベース
•e-Stat:政府統計の総合窓口
- API (Application Programming Interface)の提供
- オープンデータ
•ソーシャルデータ
- Twitter、Facebook、Google+などの
ソーシャルメディア上のデータ
- ブランドや商品の評価に関する分析に利用
6
データベースの必須機能
•データ構造が定義できること
•同時実行制御
•トランザクション機能
•障害回復機能
•対話機能・SQL
•機密保護機能
7
同時実行制御(1)
•データベース更新の際にロックをかける機能
Tシャツ500円セール!
在庫10枚
ショッピングサイト
Aさん
5枚購入
Bさん
3枚購入
Cさん
3枚購入
Dさん
2枚購入
OK OK NG OK
本人たちは9時ちょうどに購入ボタンを押した。
実際は、A,Bが少しだけ早かった。
Cは「在庫切れ」のメッセージが表示され、買えなかった。
DはCより遅かったのに、買うことができた。
8
同時実行制御(2)
•データベース更新の際にロックをかける機能
A:5枚購入
B:3枚購入
C:3枚購入
在庫:10枚
D:2枚購入
在庫:5枚
在庫:2枚
在庫:0枚
更
新
ロック
アンロック
更
新
ロック
アンロック
実際の処理
実際の処理
在庫切れ
更
新
ロック
アンロック
9
トランザクション機能(1)
•トランザクション
- データの登録や更新の1サイクルのこと
•トランザクション機能
- トランザクションを保証する機能
- データベースに下書きをし、矛盾がなければ更新する
- 処理の始めに「トランザクション開始」を宣言
- 処理の修了時に「トランザクション終了」を宣言
- トランザクション終了時にDB更新を行う
10
トランザクション機能(2)
•例:A商品が10個注文された場合
- トランザクション開始を宣言
- トランザクション終了を宣言(実際にDBを更新)
在庫数は100個 A商品 100個
在庫台帳
A商品を10個注文する A商品10個注文
売上帳
在庫数を減らす A商品 90個
在庫台帳
トランザクション
11
トランザクション機能(3)
•ロールバック
- 途中で処理を中断し、トランザクション開始時点にま
で戻る処理
- たとえば下記の場合に実行される
• トランザクション終了までにデータに矛盾が生じた
• データの書き込みに失敗した
12
障害回復機能
•障害発生時点まで、データを回復する機能
•データのバックアップとログが利用される
データ
ベース
時間の流れ
バック
アップ
ログ
ファイル
DB更新のたびに処理内容がログファイルに
書き込まれる
障害発生!
13
Work:障害回復機能
•障害発生時、バックアップとログファイルを 
使って、どうやって障害を回復しますか
•手順を考えてみましょう(5分)
データ
ベース
時間の流れ
バック
アップ
ログ
ファイル
障害発生!
14
対話機能・SQL
•SQL(Structured Query Language)
- データベースに処理内容を伝えるための言語
•例
- 「住所録から20歳の女性を探して名前を教えて」
- SQL
SELECT 名前 FROM 住所録 WHERE 年齢=20 AND 性別=’女性’
SELECT:探す、検索するという行為
FROM :∼からというデータの指定
WHERE:条件を指定する
15
機密保護機能
•データの機密性を高めるための機能
- データベースへのアクセス制限を設ける
- データごとにアクセス制限を設ける
• アクセス権限のある人物のみがデータの検索や更新が可能
- ネットワークに流れるデータを暗号化する
16
データベースの必須機能
•データ構造が定義できること
•同時実行制御
•トランザクション機能
•障害回復機能
•対話機能・SQL
•機密保護機能
17
データベースとプログラム
•プログラムとデータの独立性
- SQLでデータベース処理を行うことにより、プログラ
ムとデータを分けて考えることが可能
- 生産性の向上につながる
データ
ベース
DBMSプログラム
SQL
18
クライアントとサーバ(1)
•ネットワーク上にデータベースが存在する
- クライアント:データを要求する
- サーバ:データを提供する
•代表的な例
- Webシステム
- オンラインゲーム(ドラクエX、FFXIなど)
- スマホアプリ
19
クライアントとサーバ(2)
•クライアント・サーバ方式
データ
ベース
サーバ端末(クライアント)
プログラム
SQL
API
※API:Application Programming Interface
ネットワーク
ライブラリ
ネットワーク
ライブラリ
リスナー
20
クライアントとサーバ(3)
•Webの場合
- サーバをWebサーバとデータベースサーバに分ける
データ
ベース
データベースサーバWebサーバ
Webサービス
API
ネットワーク
ライブラリ
ネットワーク
ライブラリ
リスナーWebアプリ
21
クライアントとサーバ(4)
•メリット
- Webサーバを複数設置可能なため、アクセス数が増え
ても負荷分散ができる
- 個人情報などはWebサーバにおかなくてすむため、 
セキュリティ強化につながる
22
データベースのモデル(1)
•階層型モデル
- データを親と子の階層構造で表現する
- ファイル管理(フォルダ分け)と同じ概念
- 欠点
• 親は複数の子を持てるが、子は複数の親を持てない(1対多)
OX会社
営業部 技術部
第一営業部 第二営業部 第三営業部 設計課 技術課
23
データベースのモデル(2)
•ネットワーク型モデル
- データの関係を網目状に表現
- 欠点
• 関係の定義、変更の複雑さ(多対多)
検索語 A
図書 L
発行所 X
検索語 B 検索語 C
図書 M 図書 N 図書 O
発行所Y
24
データベースのモデル(3)
•リレーショナルモデル
- データを表形式で表す
- データの関係を表と表の関係で表す
- 関係はそれぞれの表で共通の項目(キー)でつなげる
- 利点
• データの独立性が保ちやすい
• 数学的な考え方で処理が行えるため、プログラムからの操作が容易
- 欠点
• 処理負荷が大きい → ハードウェアの進歩により解決されつつある
25
リレーショナルモデルの例
•商品管理データベース
- 商品コードでふたつの表の関係を示している
商品コード 商品名 単価
10 鉛筆 10
20 ボールペン 100
30 ノート 150
売り上げ番号 商品コード 数量
1 10 5
2 30 1
3 20 3
4 30 2
5 10 1
商品表
売上表
26

データベース技術 2(Database_2)