48
データベース 第1回 データベースとは 1 2015年4⽉9⽇(⽊) 7・8時限 担当:奥 健太

データベース01 - データベースとは

Embed Size (px)

Citation preview

データベース第1回

データベースとは

1

2015年4⽉9⽇(⽊) 7・8時限担当:奥 健太

本⽇の講義で学ぶこと

2

⾝の回りのデータベース

データベースシステム

⾝の回りのデータベース

3

銀⾏ATM

4

これで美味しいものでもお⾷べ

ありがとう!

⺟から息⼦への仕送り

振込み引出し

新幹線の座席予約

5

京都から東京への切符の購⼊

図書館の貸出管理

6

貸出をお願いします

オンラインショッピングサイト

7

ゲームデータの管理

8

さまざまなWebアプリケーション

9

インフラを⽀えるデータベース

10

データベースシステム

11データベースシステム(DBS)

データベース管理システム(DBMS)

データベース(DB)

ユーザ群 アプリケーション群

データベースシステムの⽤語

12

データベース(DB; DataBase) データの集合そのもの データ(data):ディジタル化された情報 ベース(base):⼟台,基盤,基地

データベース管理システム(DBMS; DataBase Management System) データベースを操作し管理するために必要なソフト

ウェア(システム) データベースシステム

(DBS; DataBase System) データベースとデータベース管理システムから構成

される情報システム

データベース管理システムの機能

13

データの⼀元管理と共有化 同時実⾏制御 効率的なデータ

アクセス機構

整合性維持 機密保護 障害回復

データ独⽴性

データの⼀元管理機能

14

vs.

データの⼀元管理機能

15

本店

⾐笠店 びわこ店 朱雀店

いちご 500円バナナ300円ぶどう 200円メロン 800円

データの⼀元管理機能

16

本店

⾐笠店

いちご 500円バナナ300円ぶどう 200円メロン 800円

びわこ店

いちご 500円バナナ300円ぶどう 200円メロン 800円

朱雀店いちご 500円バナナ300円ぶどう 200円メロン 800円

いちご 500円バナナ300円ぶどう 200円メロン 800円

データの重複

データの⼀元管理機能

17

本店

⾐笠店

いちご 500円バナナ300円ぶどう 200円メロン 800円

びわこ店

いちご 500円バナナ300円ぶどう 200円メロン 800円

朱雀店いちご 500円バナナ300円ぶどう 200円メロン 800円

いちご 500円バナナ300円ぶどう 200円メロン 800円

バナナの値段を400円に変更せよ

400円

400円 400円 400円

更新の⼿間データの重複

データの⼀元管理機能

18

本店

⾐笠店

いちご 500円バナナ300円ぶどう 200円メロン 800円

びわこ店

いちご 500円バナナ300円ぶどう 200円メロン 800円

朱雀店いちご 500円バナナ300円ぶどう 200円メロン 800円

いちご 500円バナナ300円ぶどう 200円メロン 800円

400円 300円 500円

バナナの値段を400円に変更せよ

400円更新の⼿間データの重複

データの⽭盾

データの⼀元管理機能

19

本店

⾐笠店

いちご 500円バナナ300円ぶどう 200円メロン 800円

びわこ店

いちご 500円バナナ300円ぶどう 200円メロン 800円

朱雀店いちご 500円バナナ300円ぶどう 200円メロン 800円

いちご 500円バナナ300円ぶどう 200円メロン 800円

くさつ店

いちご 500円バナナ300円ぶどう 200円メロン 800円

更新の⼿間データの重複

データの⽭盾

データの⼀元管理機能

20

本店

⾐笠店

いちご 500円バナナ300円ぶどう 200円メロン 800円

びわこ店

いちご 500円バナナ300円ぶどう 200円メロン 800円

朱雀店いちご 500円バナナ300円ぶどう 200円メロン 800円

いちご 500円バナナ300円ぶどう 200円メロン 800円

データベース データの⼀元管理データの共有

更新の⼿間データの重複

データの⽭盾

データの⼀元管理機能回 ⽇付 テーマ8 5/28 関係データモデルと関係代数9 6/4 データベース設計10 6/11 正規化11 6/18 データベースとプログラム

21

関係データモデルについて学ぶ 正規化,1事実1箇所について学ぶ

同時実⾏制御

22

vs.

同時実⾏制御

23

¥20,000引出 ¥50,000振込READ READ

WRITE

Y=Y-¥20,000

Y=¥20,000

Y=¥0 Y=Y+¥50,000

Y=¥70,000

WRITE

更新の喪失¥50,000でなければおかしい…

同時実⾏制御

24

¥20,000引出

¥50,000振込

READ

READ

WRITE

Y=Y-¥20,000

Y=¥20,000

Y=¥0

Y=Y+¥50,000Y=¥50,000

WRITE

同時実⾏制御回 ⽇付 テーマ12 6/25 トランザクションと同時実⾏制御13 7/2 トランザクションと障害回復14 7/9 データベース構造とインデックス

25

トランザクション,ロック,同時実⾏制御について学ぶ

効率的なデータアクセス機構

26

vs.

効率的なデータアクセス機構

27

2分経過…

ユーザは1分も待ってくれない…

検索中…

効率的なデータアクセス機構

28

0.01秒後!

⽬的のものが瞬時に検索される

効率的なデータアクセス機構回 ⽇付 テーマ12 6/25 トランザクションと同時実⾏制御13 7/2 トランザクションと障害回復14 7/9 データベース構造とインデックス

29

データベース構造,ファイル編成,インデックスについて学ぶ

整合性維持機能

30

vs.

整合性維持機能

31

商品番号 商品名110 ノートPC250 外付けHDD330 USBメモリ420 ディスプレイ

伝票番号 商品番号 売上数123 330 10124 250 5125 420 2126 110 1

商品表 売上表

商品番号を330→340に変更

商品番号 商品名110 ノートPC250 外付けHDD340 USBメモリ

商品番号420を削除

整合性がとれなくなる

整合性維持機能

32

商品番号 商品名110 ノートPC250 外付けHDD330 USBメモリ420 ディスプレイ

伝票番号 商品番号 売上数123 330 10124 250 5125 420 2126 110 1

商品表 売上表

商品番号 商品名110 ノートPC250 外付けHDD340 USBメモリ420 ディスプレイ

整合性を維持

340

売上表も変更商品番号を330→340に変更商品番号420を削除

整合性維持機能回 ⽇付 テーマ3 4/23 SQL(CREATE, INSERT, DELETE, UPDATEなど)4 4/30 SQL(SELECT:基本)5 5/7 SQL(SELECT:結合,副問合せ)6 5/14 SQL(VIEW, ALTER, GRANTなど)

33

参照整合性制約について学ぶ Consistency(整合性)について学ぶ

回 ⽇付 テーマ12 6/25 トランザクションと同時実⾏制御13 7/2 トランザクションと障害回復14 7/9 データベース構造とインデックス

機密保護機能

34

vs.

機密保護機能

35

会員DB不正アクセス

クレジットカード情報GET

個⼈情報などの機密情報が不正にアクセスされる

X社,会員3万⼈のクレジットカード情報流出!

機密保護機能

36

会員DB不正アクセス

アクセス権限がありません!

アクセス権限を設定し,操作できるユーザを制御

OK 管理者

機密保護機能回 ⽇付 テーマ3 4/23 SQL(CREATE, INSERT, DELETE, UPDATEなど)4 4/30 SQL(SELECT:基本)5 5/7 SQL(SELECT:結合,副問合せ)6 5/14 SQL(VIEW, ALTER, GRANTなど)

37

アクセス権限について学ぶ

障害回復機能

38

vs.

障害回復機能

39

座席予約DB

Y航空,10万⼈の座席予約データ紛失!

座席予約DB

座席予約DB

障害回復機能

40

ミラーリング

ミラーデータベース

ミラーデータベースにまったく同じデータが保存されているため,データ復旧が可能

障害回復機能回 ⽇付 テーマ12 6/25 トランザクションと同時実⾏制御13 7/2 トランザクションと障害回復14 7/9 データベース構造とインデックス

41

トランザクション,Durability(耐久性),障害回復について学ぶ

データ独⽴性

42

vs.

データ独⽴性

43

public class HelloDb {public static void main(String[] args) {.........

}}

110, ノートPC250, 外付けHDD330, USBメモリ

プログラムの仕様変更

データの記述⽅法変更ファイルの保存場所変更

プログラムの仕様やデータファイルの内容に合わせて,相互的に修正する必要がある

アプリケーション

相互依存

データ独⽴性

44

public class HelloDb {public static void main(String[] args) {.........

}}

それぞれ独⽴に実装,運⽤が可能

DB

独⽴

アプリケーション

データ

データ独⽴性回 ⽇付 テーマ8 5/28 関係データモデルと関係代数9 6/4 データベース設計10 6/11 正規化11 6/18 データベースとプログラム

45

3層スキーマモデル,データ独⽴性について学ぶ

データベースプログラミングについて学ぶ

まとめ

46

⾝の回りのデータベース

データベースシステム

データベースシステム

47データベースシステム(DBS)

データベース管理システム(DBMS)

データベース(DB)

ユーザ群 アプリケーション群

データベース管理システムの機能

48

データの⼀元管理と共有化 同時実⾏制御 効率的なデータ

アクセス機構

整合性維持 機密保護 障害回復

データ独⽴性