Newest Viewed Downloaded

データベース 基本情報技術概論 (第13回) 埼玉大学 理工学研究科 堀山 貴史 DB 期末試験 2/10 (水) 5,6限 教室未定

1

データベース 基本情報技術概論 (第13回) 埼玉大学 理工学研究科 堀山 貴史 DB 期末試験 2/10 (水) 5,6限 教室未定 ‹#› 2010/1/27

2

利用者 データに構造を与えて管理し、   更新や検索などが容易に行えるようにしたもの 例) 列車の切符販売、商品の販売管理、銀行の送金処理 データベース 注文表 伝表 番号 0001 0002 0003 0004 受注日 2007/07/07 2007/07/07 2007/07/08 2007/07/10 顧客 番号 100 200 300 200 数量 130 50 80 240 商品 番号 S20 T10 S10 S20 DBMS 7/7 に注文された商品は? S20 と T10 ※ データベース管理システム (Database Management System) DB 基本情報技術概論(第13回) ‹#› 2010/1/27

3

論理データモデル データを、どのような形で表現するか (データの論理的構造とその内容を定義したもの) 階層モデル 木構造(階層構造)で、データの構造を表現 ネットワークモデル 木構造を発展させ、ネットワークでデータの構造を表現 関係モデル (リレーショナル モデル) 2次元の表で、データの構造を表現 関係データベース (リレーショナル DB) で採用 ________________ ________________ ________________

4

注文表 関係データベースの例 伝表番号 受注日 顧客番号 商品番号 数量 0001 2007/07/07 100 S20 130 0002 2007/07/07 200 T10 50 0003 2007/07/08 300 S10 80 0004 2007/07/10 200 S20 240 顧客表 住所 商品表 ○○○ △△△ 顧客番号 100 200 300 □□□ 氏名 赤塚不二夫 手塚治虫 藤子不二雄 単価 100 50 500 商品名 鉛筆 消しゴム ノート 商品番号 S10 S20 T10

5

関係データベースの用語 属性 (列、項目) 行 (組) 注文表 伝表番号 受注日 顧客番号 商品番号 数量 0001 2007/07/07 100 S20 130 0002 2007/07/07 200 T10 50 0003 2007/07/08 300 S10 80 0004 2007/07/10 200 S20 240 関係 ドメイン(定義域) … 属性が取りえる値の集合 例) 商品番号のドメイン: S10,S20,T10,…

6

関係データベースの用語 (続き) 注文表 伝表番号 受注日 顧客番号 商品番号 数量 0001 2007/07/07 100 S20 130 0002 2007/07/07 200 T10 50 0003 2007/07/08 300 S10 80 0004 2007/07/10 200 S20 240 主キー … 表の行を一意に識別する            1つの表に主キーが同じ行は存在しない 外部キー … 他の表を参照する (関連付ける) 参照される側の表では、これが主キー ____________ 顧客表の「主キー」 200 の行を参照すると、氏名と住所が分かる 顧客表 顧客 番号 100 200 300 住所 ○○○ △△△ □□□ 氏名 赤塚不二夫 手塚治虫 藤子不二雄

7

SQL 関係データベースを定義・操作するためのデータベース言語 データベース定義 表の定義 … CREATE TABLE 表名 属性の定義 ビュー定義 … CREATE V I EW ビュー名 ビューの定義 etc. データベース操作 データ挿入 … I NSERT I NTO 表名 (各属性の値) データ削除 … DELETE FROM 表名 削除の指定 データ更新 … UPDATE 表名 SET 属性名 = 更新値 etc. データベース制御 SELECT

8

データ操作 (関係演算) 射影 指定した属性(列)を取り出す ____________ 例) SELECT 商品番号,数量 FROM 注文表 注文表 伝表 番号 0001 0002 0003 0004 受注日 2007/07/07 2007/07/07 2007/07/08 2007/07/10 顧客 番号 100 200 300 200 数量 130 50 80 240 商品番号 S20 T10 S10 S20 数量 130 50 80 240 商品 番号 S20 T10 S10 S20 取り出す属性

9

関係データベースの操作 (関係演算) 選択 条件を満たす行を取り出す ____________ 例) SELECT * FROM 注文表 WHERE 数量 >= 100 注文表 伝表 番号 0001 0002 0003 0004 受注日 2007/07/07 2007/07/07 2007/07/08 2007/07/10 顧客 番号 100 200 300 200 数量 130 50 80 240 商品 番号 S20 T10 S10 S20 伝表 番号 0001 0004 受注日 2007/07/07 2007/07/10 顧客 番号 100 200 数量 130 240 商品 番号 S20 S20 すべての属性 条件

10

関係データベースの操作 (関係演算) 結合 複数の表を、共通の属性でくっつける ____________ 例) SELECT 伝票番号,顧客番号,商品名,数量 FROM 注文表,商品表 WHERE 注文表.商品番号 = 商品表.商品番号 注文表 伝表 番号 受注日 顧客 番号 数量 商品 番号 0001 2007/07/07 100 130 S20 商品表 商品番号 単価 商品名 S20 50 消しゴム 200 50 T10 0002 2007/07/07 500 伝表 番号 0001 顧客 番号 100 数量 130 商品名 消しゴム 0002 200 50 ノート 複数の表 複数の表にある属性は、表の名をつけて区別 T10 ノート

11

練習問題: SQL SELECT 氏名 FROM 学生 WHERE 住所 = ‘新宿’ SELECT COUNT(氏名) FROM 学生 WHERE 住所 = ‘新宿’ 行数を数える 学生 所属 理 工 経済 人文 氏名 合田知子 青木俊介 川内聡 坂口祐子 住所 新宿 渋谷 渋谷 新宿

12

練習問題: SQL SELECT 氏名,学部名,所在地 FROM 学生,学部 WHERE 所属 = 学部名 学生 学部 学部名 理 工 経済 所在地 新宿 新宿 渋谷 氏名 合田知子 青木俊介 川内聡 坂口祐子 所属 理 経済 経済 工 住所 新宿 渋谷 渋谷 新宿

13

練習問題: SQL SELECT 氏名 FROM 学生,学部 WHERE 所属 = 学部名 AND 所在地 = ‘新宿’ 学生 学部 学部名 理 工 経済 所在地 新宿 新宿 渋谷 氏名 合田知子 青木俊介 川内聡 坂口祐子 所属 理 経済 経済 工 住所 新宿 渋谷 渋谷 新宿

14

練習問題: SQL SELECT 数量 FROM 注文 WHERE 数量 >= 70 SELECT AVG (数量) FROM 注文 WHERE 数量 >= 70 SELECT 商品番号, SUM(数量) FROM 注文 WHERE 数量 >= 70 GROUP BY 商品番号 AVG( ) … 平均を求める … 商品番号ごとに それぞれ集計 注文 伝表 顧客番号 商品番号 数量 0001 100 S10 130 0002 200 T10 50 0003 300 S20 80 0004 200 S20 240

15

論理データ独立性 利用者が見るデータ構造は、論理データモデル(論理的なデータ構造)から 独立させたい 顧客表 商品表 顧客番号 商品番号 氏名 商品名 例) 顧客番号 住所 単価 論理データモデル 受注日 注文表 伝表番号 ビュー 売場担当 発送担当 商品名 氏名 受注日 伝表番号 単価 数量 商品名 氏名 伝表番号 数量 住所 商品番号 数量 ________________

16

データベースの3層スキーマ 外部スキーマ 利用者が見るデータ構造 「ビュー」に相当 概念スキーマ 論理的なデータ構造 「論理データモデル」に相当 内部スキーマ データを、記憶装置上にどう記録するか (物理的構造) ________________ ________________ ________________ 論理データ独立性 物理データ独立性

以下のビュー定義により定義される、ビュー「収益商品」表を示せ CREATE VIEW 収益商品 AS SELECT * FROM 商品 WHERE 売値 – 仕入値 >= 40 以下の更新操作をした後の、ビュー「収益商品」表を示せ 商品コードが S 3 の行の売値を 250 に更新する

17 練習問題: SQL (ビュー) S08 R08 形式 T08 商品 200 140 売値 150 170 80 仕入値 100 パソコンS パソコンR 品名 パソコンT S 3 S 5 商品コード S 1

18

参考: トランザクション 一連のデータベース操作 (これ以上は分解できない) 例) 銀行: 顧客Aの普通預金1万円を定期預金に 普通預金の表で、 顧客Aの預金 -1万円 定期預金の表で、 顧客Aの預金 +1万円 一連の操作が終了後、まとめて確定する (コミット) トランザクションが異常終了した場合には、 一連の操作をすべて取り消す (ロールバック) INSERT UPDATE UPDATE COMMIT DELETE ROLLBACK トランザクション 1 トランザクション 2

19

参考: その他、知っておくべき事項 データの正規化 同じデータの繰り返しを排除するように、表を設計 第1正規形、第2正規形、第3正規形、主キーの選択 SQL 文 (もう少し複雑な SQL 文もある) データベースの障害回復 ロール フォワード … バックアップとログから復元 ロール バック … 異常終了からの回復 ウォーム スタート / コールド スタート トランザクション処理 排他制御 … 同一資源に対し、1つのトランザクションが 更新中は、他に更新を許さない

20

Showing 1 - 20 of 29 items Details

Name: 
13_2010_0127
Author: 
Takashi HORIYAMA
Company: 
N/A
Description: 
データベース 基本情報技術概論 (第13回) 埼玉大学 理工学研究科 堀山 貴史 DB 期末試験 2/10 (水) 5,6限 教室未定
Tags: 
2007 | s20 | 200 | select | from | 商品番号 | 100 | where
Created: 
3/28/2003 6:23:08 AM
Slides: 
29
Views: 
3
Downloads: 
0
Rating: 
0


> Comment



Share this presentation
|

Comments

Share this presentation:

|
Sitemap