3. ER 図,関連,異状, テーブル分解

340 Views

January 12, 22

スライド概要

(リレーショナルデータベースの基本)(全15回)
URL: https://www.kkaneko.jp/cc/ds/index.html

profile-image

金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko

シェア

埋め込む »CMSなどでJSが使えない場合

各ページのテキスト
1.

3. ER 図,関連,異状, テーブル分解 URL: https://www.kkaneko.jp/cc/ds/index.html 金子邦彦 謝辞:この資料では「いらすとや」のイラストを使用しています 1

2.

アウトライン 番号 項目 説明時間の 目安 3-1 ER図 11分 3-2 テーブル間の関連 4分 3-3 一対多の関連 2分 3-4 多対多の関連 3分 3-5 リレーショナルデータベースの異状 7分 3-6 テーブル分解による異状の防止 8分 2

3.

今日の内容 • ER図は,リレーショナルデータベースの全体像(テーブルの 属性、テーブル間の関連など)の図示法 • 関連には,一対一,一対多,多対多の3種類がある • 異状とは,データベース内のデータが、つじつまの合わない状 態あるいは記録したいデータが記録できない状態になり、しか も、修復できない状態に陥ること • 異状は,ヒューマンエラーで起きる場合がある.異状を抑制す るために,良いデータベース設計が必要. • 1つのテーブルを、複数のテーブルに分解することで、異状を 起きにくくすることができる場合がある. 3

4.

3-1. ER図 URL: https://www.kkaneko.jp/data/ds/index.html 金子邦彦 謝辞:この資料では「いらすとや」のイラストを使用しています 4

5.

リレーショナルデータベースシステム データベースシステムの一種 コンピュータ 記憶 装置 リレーショナル リレーショナル データベース データベース 管理システム たくさんのテーブルが格納される あわせて リレーショナルデータベースシステム 5

6.

テーブルの例 テーブル名:社員 テーブル名:部 ID 氏名 住所 所属 ID 部名 所在地 1 x aaa 1 1 XX AAAAA 2 y bbb 2 2 YY BBBBB 3 z ccc 1 x と z は,XX に所属 y は,YY に所属 テーブル名:商品 ID 1 2 3 商品名 みかん りんご メロン 単価 50 100 500 6

7.

ER図 • ER図は,リレーショナルデータベースの全体像 (テーブルの属性、テーブル間の関連など)の図 示法 リレーショナル データベース ER図 7

8.

ER図の書き方 テーブル名, 属性名, 主キーの指定を書く (主キーは別の回で 説明予定) 書き方 ER図 1対多 多対多 縦線は 「1」 の印 ひげは「多」 の印 • IE記法の ER図(ER図にはさまざまな記法あり) 8

9.

オンラインで ER図の作図ができるサイトの紹介 • https://www.draw.io/ • ER図,その他さまざまなチャートを作成できるオ ンラインのサイト • 画像(PNG, JPEG など)、PDFファイル形式、 XML形式でのエクスポート機能も. 9

10.

3-2. テーブル間の関連 URL: https://www.kkaneko.jp/data/ds/index.html 金子邦彦 10

11.

テーブル間の関連 • テーブルは互いに「関連」しあっている テーブル名:部 テーブル名:社員 1対多 テーブル名:商品 多対多 x と z は,XX に所属 y は,YY に所属 • テーブル社員の複数行が,テーブル部の1行と関 連 • テーブル部の複数行が,テーブル商品の複数行と 関連 11

12.

関連の種類 • 一対一 テーブルの1行が,別のテーブルの1行と関連 • 一対多 テーブルの1行が,別のテーブルの複数行と関連 • 多対多 テーブルの複数行が,別のテーブルの複数行と関連 12

13.

3-3. 一対多の関連 URL: https://www.kkaneko.jp/data/ds/index.html 金子邦彦 13

14.

1対多のイメージ 複数のオブジェクト 14

15.

1対多のイメージ 部 社員 ID 氏名 住所 所属 ID 部名 所在地 1 x aaa 1 1 XX AAAAA 2 y bbb 2 2 YY BBBBB 3 z ccc 1 15

16.

1対多のイメージ 社員 部 一対多 の関連 ID 氏名 住所 所属 ID 部名 所在地 1 x aaa 1 1 XX AAAAA 2 y bbb 2 2 YY BBBBB 3 z ccc 1 16

17.

3-4. 多対多の関連 URL: https://www.kkaneko.jp/data/ds/index.html 金子邦彦 17

18.

多対多のイメージ 複数のオブジェクト 18

19.

多対多のイメージ 商品 部 ID 部名 所在地 1 XX AAAAA 2 YY BBBBB ID 1 2 3 商品名 みかん りんご メロン 単価 50 100 500 19

20.

多対多のイメージ 多対多 部 の関連 ID 部名 所在地 1 XX AAAAA 2 YY BBBBB 部 商品 1 1 1 2 ID 2 1 1 2 3 2 多対多の関連情報 を扱うための追加 3 テーブル 商品 商品名 みかん りんご メロン 単価 50 100 500 20

21.

3-5. リレーショナルデータベー スの異状 URL: https://www.kkaneko.jp/data/ds/index.html 金子邦彦 謝辞:この資料では「いらすとや」のイラストを使用しています 21

22.

異状とは • データベースで,一番困ることは何でしょうか? データベース内のデータが、 ◆ つじつまの合わない状態 あるいは ◆ 記録したいデータが記録できない状態 になり、しかも、修復できない状態に陥ること = 異状という(「異常」の書き間違いではない) 私の見解:異状が一番困る 22

23.

異状の例 このバスは無料です このバスは運賃1000円です 23

24.

異状が起きやすいリレーショナルデータベースの例 名前 A B C 朝食 カレー ライス うどん カレー ライス テーブル 値段 400 250 400 • カレーライスは、400円 • うどんは、250円 • Aさんはカレーライスを食べた • Bさんはうどんを食べた • Cさんはカレーライスを食べた 情報 24

25.

異状が起きやすいリレーショナルデータベースの例 情報の更新 名前 A B C 朝食 カレー ライス うどん カレー ライス テーブル カレーライスが 400円から 350円に値下げ 350 値段 • カレーライスは、400円 400 350 • うどんは、250円 250 • Aさんはカレーライスを食べた 400 • Bさんはうどんを食べた 350 • Cさんはカレーライスを食べた 情報 25

26.

異状が起きやすいリレーショナルデータベースの例 情報の更新 名前 A B C 朝食 カレー ライス うどん カレー ライス カレーライスが 400円から 350円に値下げ 値段 400 250 400 350 書き換え忘れして しまうかも! テーブル 26

27.

異状が起きやすいリレーショナルデータベースの例 情報の更新 名前 A B C 朝食 カレー ライス うどん カレー ライス テーブル カレーライスが 400円から 350円に値下げ 値段 400 250 350 異状が起きている ◆朝食の値段が1つのはずなの に、違った値段が記録 されていてつじつまが合わない 27

28.

3-6. テーブル分解による 異状の防止 URL: https://www.kkaneko.jp/data/ds/index.html 金子邦彦 28

29.

テーブル分解 テーブル 分解 テーブル テーブル 29

30.

テーブルと ER図(分解前) 名前 A B C 朝食 カレー ライス うどん カレー ライス 値段 400 250 400 テーブル ER図 30

31.

分解前のテーブルは,異状が起きやすい 名前 A B C 朝食 カレー ライス うどん カレー ライス 値段 400 テーブル 250 350 異状が起きている ◆朝食の値段が1つのはずなの に、違った値段が記録 されていてつじつまが合わない 31

32.

テーブル分解 名前 A B C 朝食 カレー ライス うどん カレー ライス 名前 A B C 値段 400 250 400 分解 朝食 カレーライス うどん カレーライス 朝食 カレーライス うどん 値段 400 250 分解後、情報は失わ れていない 32

33.

テーブルと ER図(分解後) 名前 A B C 朝食 カレーライス うどん カレーライス 朝食 カレーライス うどん 値段 400 250 ER図 テーブル 33

34.

分解後のテーブルは,異状が起きやすい カレーライスが 名前 A B C 朝食 カレーライス うどん カレーライス 朝食 カレーライス うどん 400円から 350円に値下げ 異状はない 値段 350 250 テーブル 34

35.

設計変更による異状の防止 名前 A B C 朝食 値段 情報は カレー 400 350 同じ ライス うどん 250 カレー 400 350 ライス 異状が起きやすいデータベース 名前 A B C 朝食 カレーライス うどん カレーライス 朝食 値段 カレーライス 400 350 うどん 250 カレーライスの値下げのとき、 異状が起きにくいデータベース 片方を書き忘れると → 異状 35

36.

1つのテーブルを、複数のテーブルに分解す ることで、異状を起きにくくすることができ る場合がある. 36

37.

関連資料 • リレーショナルデータベース序論(全4回) 全体を知る. https://www.kkaneko.jp/cc/di/index.html • リレーショナルデータベースの基本(全15回) 基礎を学ぶ. https://www.kkaneko.jp/cc/ds/index.html • リレーショナルデータベース演習(全15回) 演習により修得する. https://www.kkaneko.jp/cc/de/index.html 37