SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
データベース技術
第3回(2015.10.13)
1
データベースの必須機能
•データ構造が定義できること
•同時実行制御
•トランザクション機能
•障害回復機能
•対話機能・SQL
•機密保護機能
2
トランザクション機能(1)
•トランザクション
- データの登録や更新の1サイクルのこと
•トランザクション機能
- トランザクションを保証する機能
- データベースに下書きをし、矛盾がなければ更新する
- 処理の始めに「トランザクション開始」を宣言
- 処理の修了時に「トランザクション終了」を宣言
- トランザクション終了時にDB更新を行う
3
トランザクション機能(2)
•例:A商品が10個注文された場合
- トランザクション開始を宣言
- トランザクション終了を宣言(実際にDBを更新)
在庫数は100個 A商品 100個
在庫台帳
A商品を10個注文する A商品10個注文
売上帳
在庫数を減らす A商品 90個
在庫台帳
トランザクション
4
トランザクション機能(3)
•ロールバック
- 途中で処理を中断し、トランザクション開始時点にま
で戻る処理
- たとえば下記の場合に実行される
• トランザクション終了までにデータに矛盾が生じた
• データの書き込みに失敗した
5
障害回復機能
•障害発生時点まで、データを回復する機能
•データのバックアップとログが利用される
データ
ベース
時間の流れ
バック
アップ
ログ
ファイル
DB更新のたびに処理内容がログファイルに
書き込まれる
障害発生!
6
クライアントとサーバ(1)
•クライアント・サーバ方式
データ
ベース
サーバ端末(クライアント)
プログラム
SQL
API
※API:Application Programming Interface
ネットワーク
ライブラリ
ネットワーク
ライブラリ
リスナー
7
クライアントとサーバ(2)
•Webの場合
- サーバをWebサーバとデータベースサーバに分ける
データ
ベース
データベースサーバWebサーバ
Webサービス
API
ネットワーク
ライブラリ
ネットワーク
ライブラリ
リスナーWebアプリ
8
クライアントとサーバ(3)
•Webの場合(2)
- Webサーバをさらに分けると
データ
ベース
データベースサーバ
Webサービス Webアプリ
アプリケーション
サーバ
Webサーバ
Webサイトの見た目を作る
クライアントとの窓口
計算をする データを管理する
役割り:
9
データベースのモデル
•階層型モデル
•ネットワーク型モデル
•リレーショナルモデル
- 階層型モデル、ネットワーク型モデルは、ホストコン
ピュータやメインフレームで使われていた
- 現在は、使われていない
10
リレーショナルデータベース
•用語(1)
- 表(テーブル、table):リレーションとも呼ぶ
- 行(row、レコード):1件のデータこと
- 列(column、フィールド):各項目のこと
商品コード 商品名 単価 備考
10 鉛筆 100 黒のみ
20 赤ボールペン 110
30 ノート 200 30ページ
40 黒ボールペン 110
商品表(商品テーブル)
行
列
11
リレーショナルデータベース
•用語(2)
- 空値である(null):値が空であること
- 一意である(ユニーク、unique):同じ値がないこと
- キー:重要な役割りを持つフィールド
- 主キー(primary key):データを識別するフィールド
• キーと主キーは一意であり、空値をとりません
商品表 商品コード 商品名 単価 備考
10 鉛筆 100 黒のみ
20 赤ボールペン 110
30 ノート 200 30ページ
40 黒ボールペン 110
空値
空値
主キー
12
リレーショナルデータベースの操作
•リレーショナルデータベースの操作は    
数学の概念に基づいた演算でデータを操作する
•操作の種類
- 和(union)
- 差(difference)
- 積(intersection)
- 直積(Cartesian product)
- 射影(projection)
- 選択(selection)
- 結合(join)
- 商(division)
13
和(union)
•2つの表に存在する全てのレコードを抽出
商品名 単価
メロン ¥800
いちご ¥150
りんご ¥120
レモン ¥200
商品名 単価
メロン ¥800
いちご ¥150
くり ¥200
かき ¥350
商品名 単価
メロン ¥800
いちご ¥150
りんご ¥120
レモン ¥200
くり ¥200
かき ¥350
和
「商品1」表 「商品2」表
りんご
レモン
メロン
いちご
くり
かき
商品1 商品2
和のイメージ図
14
差(difference)
•片方の表のみに存在するレコードを抽出
- どの表を基準にするかによって、結果が異なる
商品名 単価
メロン ¥800
いちご ¥150
りんご ¥120
レモン ¥200
商品名 単価
メロン ¥800
いちご ¥150
くり ¥200
かき ¥350
商品名 単価
くり ¥200
かき ¥350
差
「商品1」表 「商品2」表
商品1 商品2
差のイメージ図
メロン
いちご
りんご
レモン
くり
かき
15
積(intersection)
•2つの表に共通して存在するレコードを抽出
商品名 単価
メロン ¥800
いちご ¥150
りんご ¥120
レモン ¥200
商品名 単価
メロン ¥800
いちご ¥150
くり ¥200
かき ¥350
商品名 単価
メロン ¥800
いちご ¥150
積
「商品1」表 「商品2」表
商品1 商品2
積のイメージ図
メロン
いちご
りんご
レモン
くり
かき
16
直積(Cartesian product)
•2つの表の行の組み合わせをすべて組み合わせる
商品コード 商品名 単価
101 メロン ¥800
102 いちご ¥150
輸出先コード 輸出先名
12 アメリカ
23 中国
25 フランス
直積
「商品」表 「輸出先」表
商品コード 商品名 単価 輸出先コー
ド
輸出先名
101 メロン ¥800 12 アメリカ
101 メロン ¥800 23 中国
101 メロン ¥800 25 フランス
102 いちご ¥150 12 アメリカ
102 いちご ¥150 23 中国
102 いちご ¥150 25 フランス
17
Work:練習問題
•商品表1、2の和・差・積を求めてみましょう
•商品表2と販売店表の直積を求めてみましょう
商品コード 商品名 単価
10 鉛筆 10
20 ボールペン 100
30 ノート 150
店番号 店名
1 佐藤商店
2 山田書店
商品表1
販売店表
商品コード 商品名 単価
10 鉛筆 10
21 フェルトペン 100
商品表2
18
Work解答(1)
•和
•差
•積
商品コード 商品名 単価
10 鉛筆 10
20 ボールペン 100
30 ノート 150
21 フェルトペン 100
商品コード 商品名 単価
20 ボールペン 100
30 ノート 150
商品コード 商品名 単価
10 鉛筆 10
19
Work解答(2)
•直積
商品コード 商品名 単価 店番号 店名
10 鉛筆 10 1 佐藤商店
10 鉛筆 10 2 山田書店
21 フェルトペン 100 1 佐藤商店
21 フェルトペン 100 2 山田書店
20
射影(projection)
•表中の列を抽出する
商品名 単価
メロン ¥800
いちご ¥150
りんご ¥120
レモン ¥200
くり ¥200
かき ¥350
商品名
メロン
いちご
りんご
レモン
くり
かき
射影
「商品」表
21
選択(selection)
•表中の行を抽出する
商品名 単価
メロン ¥800
いちご ¥150
りんご ¥120
レモン ¥200
くり ¥200
かき ¥350
選択
「商品」表
商品名 単価
りんご ¥120
レモン ¥200
22
結合(join)(1)
•表をつなぎ合わせる
- 「商品」表の主キーである「商品コード」を参照する
- このとき「売上」表の商品コードを外部キーと呼ぶ
商品コード 商品名 単価
101 メロン ¥800
102 いちご ¥150
103 りんご ¥120
104 レモン ¥200
「商品」表
日付 商品コード 個数
11/1 102 1,100
11/1 101 300
11/5 103 1,700
11/8 101 500
「売上」表
主キー 外部キー
23
結合(join)(2)
•表をつなぎ合わせる
商品コード 商品名 単価
101 メロン ¥800
102 いちご ¥150
103 りんご ¥120
104 レモン ¥200
「商品」表
日付 商品コード 個数
11/1 102 1,100
11/1 101 300
11/5 103 1,700
11/8 101 500
「売上」表
日付 商品コード 商品名 単価 個数
11/1 102 いちご ¥150 1,100
11/1 101 メロン ¥800 300
11/5 103 りんご ¥120 1,700
11/8 101 メロン ¥800 500
結合
24
商(division)
•割られる方の表から、割る方の表の全ての行を
含むものを取り出し、そこから割る方の行を除
く
輸出先コード 輸出先名 日付
12 アメリカ 3/5
12 アメリカ 3/10
23 中国 3/5
25 フランス 3/21
30 イタリア 3/25
「売上」表
輸出先コード 輸出先名
12 アメリカ
23 中国
「輸出先」表
日付
3/5
商
25
商(division)(手順1)
•割られる方の表から、割る方の表の全ての行を
含むものを取り出す
輸出先コード 輸出先名 日付
12 アメリカ 3/5
12 アメリカ 3/10
23 中国 3/5
25 フランス 3/21
30 イタリア 3/25
「売上」表(割られる方の表)
輸出先コード 輸出先名
12 アメリカ
23 中国
「輸出先」表(割る方の表)
輸出先コード12と23(アメリカと中国)
の両方を含む行を取り出す
輸出先コード 輸出先名 日付
12 アメリカ 3/5
23 中国 3/5
日付 3/10 は中国を含まないので
取り出さない
26
商(division)(手順2)
•割る方の行を除く
輸出先コード 輸出先名 日付
12 アメリカ 3/5
12 アメリカ 3/10
23 中国 3/5
25 フランス 3/21
30 イタリア 3/25
「売上」表(割られる方の表)
輸出先コード 輸出先名
12 アメリカ
23 中国
「輸出先」表(割る方の表)
輸出先コードと輸出先名を除く
輸出先コード 輸出先名 日付
12 アメリカ 3/5
23 中国 3/5
日付
3/5
手順1の結果得られた表
27
リレーショナルデータベースの操作
•操作の種類
- 和(union)
- 差(difference)
- 積(intersection)
- 直積(Cartesian product)
- 射影(projection)
- 選択(selection)
- 結合(join)
- 商(division)
集合演算
と呼ばれる
関係演算
と呼ばれる
28
練習問題
•商を求めてみましょう
輸出先コード 輸出先名
12 アメリカ
23 中国
25 フランス
輸出先コード 輸出先名 日付
12 アメリカ 3/1
23 中国 3/1
12 アメリカ 3/3
25 フランス 3/5
12 アメリカ 3/6
25 フランス 3/1
「売上」表(割られる方の表)「輸出先」表(割る方の表)
29
練習問題
•直積を求めてみましょう
商品コード 商品名 単価
101 メロン ¥800
102 いちご ¥150
103 りんご ¥120
104 レモン ¥200
輸出先コード 輸出先名
12 アメリカ
23 中国
「商品」表 「輸出先」表
30

Mais conteúdo relacionado

Destaque

Whirlygig patterns
Whirlygig patternsWhirlygig patterns
Whirlygig patternsLuz Milagro
 
Samuel Dailey Intel nmdl final
Samuel Dailey Intel nmdl finalSamuel Dailey Intel nmdl final
Samuel Dailey Intel nmdl finaldaileysa
 
データベース技術 13(Database 13)
データベース技術 13(Database 13)データベース技術 13(Database 13)
データベース技術 13(Database 13)Yuka Obu
 
Akidah mila
Akidah milaAkidah mila
Akidah milamila_aza
 
Udtalelse Sune Johnsen
Udtalelse Sune JohnsenUdtalelse Sune Johnsen
Udtalelse Sune JohnsenSune Johnsen
 
ソーシャルメディアリスク対策と積極運用
ソーシャルメディアリスク対策と積極運用ソーシャルメディアリスク対策と積極運用
ソーシャルメディアリスク対策と積極運用Leung Man Yin Daniel
 
Hydal power plant
Hydal power plantHydal power plant
Hydal power plantJUNAID SK
 
Astrolab gérer ses projets avec le mind mapping
Astrolab gérer ses projets avec le mind mappingAstrolab gérer ses projets avec le mind mapping
Astrolab gérer ses projets avec le mind mappingAstrolab Consulting
 
5 Appel D Offres Et Cahier Des Charges
5 Appel D Offres Et Cahier Des Charges5 Appel D Offres Et Cahier Des Charges
5 Appel D Offres Et Cahier Des ChargesStéphane Bordage
 

Destaque (10)

Whirlygig patterns
Whirlygig patternsWhirlygig patterns
Whirlygig patterns
 
Samuel Dailey Intel nmdl final
Samuel Dailey Intel nmdl finalSamuel Dailey Intel nmdl final
Samuel Dailey Intel nmdl final
 
データベース技術 13(Database 13)
データベース技術 13(Database 13)データベース技術 13(Database 13)
データベース技術 13(Database 13)
 
Akidah mila
Akidah milaAkidah mila
Akidah mila
 
Śniadanie Daje Moc
Śniadanie Daje MocŚniadanie Daje Moc
Śniadanie Daje Moc
 
Udtalelse Sune Johnsen
Udtalelse Sune JohnsenUdtalelse Sune Johnsen
Udtalelse Sune Johnsen
 
ソーシャルメディアリスク対策と積極運用
ソーシャルメディアリスク対策と積極運用ソーシャルメディアリスク対策と積極運用
ソーシャルメディアリスク対策と積極運用
 
Hydal power plant
Hydal power plantHydal power plant
Hydal power plant
 
Astrolab gérer ses projets avec le mind mapping
Astrolab gérer ses projets avec le mind mappingAstrolab gérer ses projets avec le mind mapping
Astrolab gérer ses projets avec le mind mapping
 
5 Appel D Offres Et Cahier Des Charges
5 Appel D Offres Et Cahier Des Charges5 Appel D Offres Et Cahier Des Charges
5 Appel D Offres Et Cahier Des Charges
 

Mais de Yuka Obu

データベース技術 14(Database 14)
データベース技術 14(Database 14)データベース技術 14(Database 14)
データベース技術 14(Database 14)Yuka Obu
 
データベース技術 12(Database 12)
データベース技術 12(Database 12)データベース技術 12(Database 12)
データベース技術 12(Database 12)Yuka Obu
 
データベース技術 11(Database 11)
データベース技術  11(Database 11)データベース技術  11(Database 11)
データベース技術 11(Database 11)Yuka Obu
 
データベース技術 10(Database 10)
データベース技術 10(Database 10)データベース技術 10(Database 10)
データベース技術 10(Database 10)Yuka Obu
 
データベース技術 9(Database 9)
データベース技術 9(Database 9)データベース技術 9(Database 9)
データベース技術 9(Database 9)Yuka Obu
 
データベース技術 8(Database_8)
データベース技術 8(Database_8)データベース技術 8(Database_8)
データベース技術 8(Database_8)Yuka Obu
 
データベース技術 7(Database 7)
データベース技術 7(Database 7)データベース技術 7(Database 7)
データベース技術 7(Database 7)Yuka Obu
 
データベース技術 6(Database_6)
データベース技術 6(Database_6)データベース技術 6(Database_6)
データベース技術 6(Database_6)Yuka Obu
 
データベース技術 5(Database_5)
データベース技術 5(Database_5)データベース技術 5(Database_5)
データベース技術 5(Database_5)Yuka Obu
 
データベース技術 4(Database_4)
データベース技術 4(Database_4)データベース技術 4(Database_4)
データベース技術 4(Database_4)Yuka Obu
 
データベース技術 2(Database_2)
データベース技術 2(Database_2)データベース技術 2(Database_2)
データベース技術 2(Database_2)Yuka Obu
 
データベース技術 1(Database_1)
データベース技術 1(Database_1)データベース技術 1(Database_1)
データベース技術 1(Database_1)Yuka Obu
 
ソーシャルメディアワークショップ1
ソーシャルメディアワークショップ1ソーシャルメディアワークショップ1
ソーシャルメディアワークショップ1Yuka Obu
 
企業によるソーシャルアカウント運用のために
企業によるソーシャルアカウント運用のために企業によるソーシャルアカウント運用のために
企業によるソーシャルアカウント運用のためにYuka Obu
 
Twitter in Hitachiohta 3
Twitter in Hitachiohta 3Twitter in Hitachiohta 3
Twitter in Hitachiohta 3Yuka Obu
 
Twitter in Hitachiohta 2
Twitter in Hitachiohta 2Twitter in Hitachiohta 2
Twitter in Hitachiohta 2Yuka Obu
 
Twitter in Hitachiohta 1
Twitter in Hitachiohta 1Twitter in Hitachiohta 1
Twitter in Hitachiohta 1Yuka Obu
 

Mais de Yuka Obu (18)

データベース技術 14(Database 14)
データベース技術 14(Database 14)データベース技術 14(Database 14)
データベース技術 14(Database 14)
 
データベース技術 12(Database 12)
データベース技術 12(Database 12)データベース技術 12(Database 12)
データベース技術 12(Database 12)
 
データベース技術 11(Database 11)
データベース技術  11(Database 11)データベース技術  11(Database 11)
データベース技術 11(Database 11)
 
データベース技術 10(Database 10)
データベース技術 10(Database 10)データベース技術 10(Database 10)
データベース技術 10(Database 10)
 
データベース技術 9(Database 9)
データベース技術 9(Database 9)データベース技術 9(Database 9)
データベース技術 9(Database 9)
 
データベース技術 8(Database_8)
データベース技術 8(Database_8)データベース技術 8(Database_8)
データベース技術 8(Database_8)
 
データベース技術 7(Database 7)
データベース技術 7(Database 7)データベース技術 7(Database 7)
データベース技術 7(Database 7)
 
データベース技術 6(Database_6)
データベース技術 6(Database_6)データベース技術 6(Database_6)
データベース技術 6(Database_6)
 
データベース技術 5(Database_5)
データベース技術 5(Database_5)データベース技術 5(Database_5)
データベース技術 5(Database_5)
 
データベース技術 4(Database_4)
データベース技術 4(Database_4)データベース技術 4(Database_4)
データベース技術 4(Database_4)
 
データベース技術 2(Database_2)
データベース技術 2(Database_2)データベース技術 2(Database_2)
データベース技術 2(Database_2)
 
データベース技術 1(Database_1)
データベース技術 1(Database_1)データベース技術 1(Database_1)
データベース技術 1(Database_1)
 
ソーシャルメディアワークショップ1
ソーシャルメディアワークショップ1ソーシャルメディアワークショップ1
ソーシャルメディアワークショップ1
 
企業によるソーシャルアカウント運用のために
企業によるソーシャルアカウント運用のために企業によるソーシャルアカウント運用のために
企業によるソーシャルアカウント運用のために
 
Sns 2
Sns 2Sns 2
Sns 2
 
Twitter in Hitachiohta 3
Twitter in Hitachiohta 3Twitter in Hitachiohta 3
Twitter in Hitachiohta 3
 
Twitter in Hitachiohta 2
Twitter in Hitachiohta 2Twitter in Hitachiohta 2
Twitter in Hitachiohta 2
 
Twitter in Hitachiohta 1
Twitter in Hitachiohta 1Twitter in Hitachiohta 1
Twitter in Hitachiohta 1
 

Último

UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptyuitoakatsukijp
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ssusere0a682
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 

Último (7)

UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 

データベース技術 3(Database_3)