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

26
データベース技術 2回(2015.10.61

Upload: yuka-obu

Post on 14-Apr-2017

459 views

Category:

Education


1 download

TRANSCRIPT

Page 1: データベース技術 2(Database_2)

データベース技術第2回(2015.10.6)

1

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

データとは何か?•データと情報の違い

-データ

• 例:今日の天気は雨、気温25℃、湿度60%

-情報

• 例:今日は雨だから傘が必要だ。湿度が高い。

人間の頭(脳)で解釈された“意味”のある事柄

ある事柄を伝達し易いよう表現したもの

2

Page 3: データベース技術 2(Database_2)

データ管理の課題•データの重複管理による不整合や管理の無駄

-データの更新情報の伝達ミス

-データの更新作業の抜け

-データの矛盾が発生

•新しい変化に対応しにくい-新しい部署や新しいデータへの対応

これらの課題をデータベースを使って解決する

3

Page 4: データベース技術 2(Database_2)

データベース•データベースとは

-様々な目的を考慮して整理整頓されたデータの集まり

•データベースを利用するメリット-データを一元管理し、共有できる

-データの矛盾や重複を防ぐことができる

-データを複数の人が同時に利用できる

4

Page 5: データベース技術 2(Database_2)

データベースに必要なこと•データの容易な追加、削除、更新、検索

•大量のデータを高速で処理できる

•データの安全性、機密性を保つ

•データの整合性を保つ

•データの障害回復機能

DBMS(Database Management System)

5

Page 6: データベース技術 2(Database_2)

社会の中のデータベースの例•前回の提出物から

-図書館蔵書検索システム-美術館所蔵作品データベース

•e-Stat:政府統計の総合窓口- API (Application Programming Interface)の提供-オープンデータ

•ソーシャルデータ- Twitter、Facebook、Google+などの ソーシャルメディア上のデータ

-ブランドや商品の評価に関する分析に利用6

Page 7: データベース技術 2(Database_2)

データベースの必須機能•データ構造が定義できること

•同時実行制御

•トランザクション機能

•障害回復機能

•対話機能・SQL

•機密保護機能

7

Page 8: データベース技術 2(Database_2)

同時実行制御(1)•データベース更新の際にロックをかける機能

Tシャツ500円セール!在庫10枚

ショッピングサイト

Aさん5枚購入

Bさん3枚購入

Cさん3枚購入

Dさん2枚購入

OK OK NG OK

本人たちは9時ちょうどに購入ボタンを押した。実際は、A,Bが少しだけ早かった。Cは「在庫切れ」のメッセージが表示され、買えなかった。DはCより遅かったのに、買うことができた。

8

Page 9: データベース技術 2(Database_2)

同時実行制御(2)•データベース更新の際にロックをかける機能

A:5枚購入

B:3枚購入

C:3枚購入

在庫:10枚

D:2枚購入

在庫:5枚

在庫:2枚

在庫:0枚

更新

ロック

アンロック

更新

ロックアンロック

実際の処理

実際の処理在庫切れ

更新

ロックアンロック

9

Page 10: データベース技術 2(Database_2)

トランザクション機能(1)•トランザクション

-データの登録や更新の1サイクルのこと

•トランザクション機能-トランザクションを保証する機能

-データベースに下書きをし、矛盾がなければ更新する

-処理の始めに「トランザクション開始」を宣言

-処理の修了時に「トランザクション終了」を宣言

-トランザクション終了時にDB更新を行う10

Page 11: データベース技術 2(Database_2)

トランザクション機能(2)•例:A商品が10個注文された場合

-トランザクション開始を宣言

-トランザクション終了を宣言(実際にDBを更新)

在庫数は100個 A商品 100個在庫台帳

A商品を10個注文する A商品10個注文売上帳

在庫数を減らす A商品 90個在庫台帳

トランザクション

11

Page 12: データベース技術 2(Database_2)

トランザクション機能(3)•ロールバック

-途中で処理を中断し、トランザクション開始時点にまで戻る処理

-たとえば下記の場合に実行される• トランザクション終了までにデータに矛盾が生じた

• データの書き込みに失敗した

12

Page 13: データベース技術 2(Database_2)

障害回復機能•障害発生時点まで、データを回復する機能

•データのバックアップとログが利用される

データベース

時間の流れ

バックアップ

ログファイル

DB更新のたびに処理内容がログファイルに書き込まれる

障害発生!

13

Page 14: データベース技術 2(Database_2)

Work:障害回復機能•障害発生時、バックアップとログファイルを 使って、どうやって障害を回復しますか

•手順を考えてみましょう(5分)

データベース

時間の流れ

バックアップ

ログファイル

障害発生!

14

Page 15: データベース技術 2(Database_2)

対話機能・SQL•SQL(Structured Query Language)

-データベースに処理内容を伝えるための言語

•例-「住所録から20歳の女性を探して名前を教えて」

- SQLSELECT 名前 FROM 住所録 WHERE 年齢=20 AND 性別=’女性’

SELECT:探す、検索するという行為FROM :~からというデータの指定WHERE:条件を指定する

15

Page 16: データベース技術 2(Database_2)

機密保護機能•データの機密性を高めるための機能

-データベースへのアクセス制限を設ける

-データごとにアクセス制限を設ける• アクセス権限のある人物のみがデータの検索や更新が可能

-ネットワークに流れるデータを暗号化する

16

Page 17: データベース技術 2(Database_2)

データベースの必須機能•データ構造が定義できること

•同時実行制御

•トランザクション機能

•障害回復機能

•対話機能・SQL

•機密保護機能

17

Page 18: データベース技術 2(Database_2)

データベースとプログラム•プログラムとデータの独立性

- SQLでデータベース処理を行うことにより、プログラムとデータを分けて考えることが可能

-生産性の向上につながる

データベース

DBMSプログラム SQL

18

Page 19: データベース技術 2(Database_2)

クライアントとサーバ(1)•ネットワーク上にデータベースが存在する

-クライアント:データを要求する

-サーバ:データを提供する

•代表的な例- Webシステム

-オンラインゲーム(ドラクエX、FFXIなど)

-スマホアプリ

19

Page 20: データベース技術 2(Database_2)

クライアントとサーバ(2)•クライアント・サーバ方式

データベース

サーバ端末(クライアント)

プログラム

SQLAPI

※API:Application Programming Interface

ネットワークライブラリ

ネットワークライブラリ

リスナー

20

Page 21: データベース技術 2(Database_2)

クライアントとサーバ(3)•Webの場合

-サーバをWebサーバとデータベースサーバに分ける

データベース

データベースサーバWebサーバWebサービス

API

ネットワークライブラリ

ネットワークライブラリ

リスナーWebアプリ

21

Page 22: データベース技術 2(Database_2)

クライアントとサーバ(4)•メリット

- Webサーバを複数設置可能なため、アクセス数が増えても負荷分散ができる

-個人情報などはWebサーバにおかなくてすむため、 セキュリティ強化につながる

22

Page 23: データベース技術 2(Database_2)

データベースのモデル(1)•階層型モデル

-データを親と子の階層構造で表現する-ファイル管理(フォルダ分け)と同じ概念-欠点

• 親は複数の子を持てるが、子は複数の親を持てない(1対多)OX会社

営業部 技術部

第一営業部 第二営業部 第三営業部 設計課 技術課23

Page 24: データベース技術 2(Database_2)

データベースのモデル(2)•ネットワーク型モデル

-データの関係を網目状に表現-欠点

• 関係の定義、変更の複雑さ(多対多)

検索語 A

図書 L

発行所 X

検索語 B 検索語 C

図書 M 図書 N 図書 O

発行所 Y24

Page 25: データベース技術 2(Database_2)

データベースのモデル(3)•リレーショナルモデル

-データを表形式で表す-データの関係を表と表の関係で表す-関係はそれぞれの表で共通の項目(キー)でつなげる-利点

• データの独立性が保ちやすい

• 数学的な考え方で処理が行えるため、プログラムからの操作が容易

-欠点• 処理負荷が大きい → ハードウェアの進歩により解決されつつある

25

Page 26: データベース技術 2(Database_2)

リレーショナルモデルの例•商品管理データベース

-商品コードでふたつの表の関係を示している

商品コード 商品名 単価10 鉛筆 10

20 ボールペン 100

30 ノート 150

売り上げ番号 商品コード 数量1 10 5

2 30 1

3 20 3

4 30 2

5 10 1

商品表売上表

26