データベース技術 2(database_2)
TRANSCRIPT
データベース技術第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歳の女性を探して名前を教えて」
- SQLSELECT 名前 FROM 住所録 WHERE 年齢=20 AND 性別=’女性’
SELECT:探す、検索するという行為FROM :~からというデータの指定WHERE:条件を指定する
15
機密保護機能•データの機密性を高めるための機能
-データベースへのアクセス制限を設ける
-データごとにアクセス制限を設ける• アクセス権限のある人物のみがデータの検索や更新が可能
-ネットワークに流れるデータを暗号化する
16
データベースの必須機能•データ構造が定義できること
•同時実行制御
•トランザクション機能
•障害回復機能
•対話機能・SQL
•機密保護機能
17
データベースとプログラム•プログラムとデータの独立性
- SQLでデータベース処理を行うことにより、プログラムとデータを分けて考えることが可能
-生産性の向上につながる
データベース
DBMSプログラム SQL
18
クライアントとサーバ(1)•ネットワーク上にデータベースが存在する
-クライアント:データを要求する
-サーバ:データを提供する
•代表的な例- Webシステム
-オンラインゲーム(ドラクエX、FFXIなど)
-スマホアプリ
19
クライアントとサーバ(2)•クライアント・サーバ方式
データベース
サーバ端末(クライアント)
プログラム
SQLAPI
※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
発行所 Y24
データベースのモデル(3)•リレーショナルモデル
-データを表形式で表す-データの関係を表と表の関係で表す-関係はそれぞれの表で共通の項目(キー)でつなげる-利点
• データの独立性が保ちやすい
• 数学的な考え方で処理が行えるため、プログラムからの操作が容易
-欠点• 処理負荷が大きい → ハードウェアの進歩により解決されつつある
25
リレーショナルモデルの例•商品管理データベース
-商品コードでふたつの表の関係を示している
商品コード 商品名 単価10 鉛筆 10
20 ボールペン 100
30 ノート 150
売り上げ番号 商品コード 数量1 10 5
2 30 1
3 20 3
4 30 2
5 10 1
商品表売上表
26