リレーショナルデータベース入門

SRA OSS, Inc. 日本支社

Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

1

「データベース」とは？
 データ（Data）の基地（Base）
 実世界のデータを管理するいれもの
例えば・・・

電話帳

辞書

メーラー

検索エンジンもデータベースである
Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

2

データ
 データベースに保存するデータ

顧客名
商品名
在庫数

塩基配列

売掛金
ドキュメント

言語

電話番号
画像
メールアドレス座標
音声

 データを加工して必要な情報を取り出す
Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

3

「DBMS」とは？
 データベースをコンピュータ上で管理するシステム
 「システム」としていろいろな機能が提供される
データの操作（収集、蓄積、加工、提供）
トランザクション（操作一貫性）の管理
同時実行制御セキュリティ管理
障害回復機能Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

4

DBMS のメリット
 ユーザはデータの状態を気にする必要がない
 データ構造 物理的なデータ配置
 OS、ファイルシステム、メモリ、I/O、etc...

 アプリケーションとデータを分離できる
 アプリケーション内でデータを管理しようとすると、上記のデータの状態（物理的構造）を理解する必要がある
Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

5データモデル DBMSに格納されるデータの論理構造 ハイアラキカルデータモデル
 ネットワークデータモデル
 リレーショナルデータモデル

Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

6ハイアラキカル（階層型）データモデル
 データを木構造で表現
SRA OSS

技術部

鈴木

マーケティング部

佐藤佐藤
データの重複！

Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

7

ハイアラキカル（階層型）データモデル
 目的のデータに到達するパスは１つのみ
 データ抽出には階層構造を理解する必要がある

 親と子は「１対Ｎ」の関係にあるので・・・ 複数の親に所属する子データが重複してしまう 更新は重複するデータ全てを書き換える必要がある
Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

8

ネットワークデータモデル
 データを「Ｎ対Ｎ」の構造で表現
SRA OSS

技術部

鈴木

マーケティング部

佐藤

Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

9

ネットワークデータモデル
 目的のデータに到達するパスは複数あるが・・・
 親子関係を表現するポインタや多重リンクが複雑
 データ抽出にはネットワーク構造を理解する必要がある

Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

10階層型、ネットワーク型ともに
 物理構造と論理構造に密接な繋がりがある

 構造が変わるとデータ抽出方法が変わる

 アプリケーションに変更が必要になる
そこで・・・
Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

11リレーショナルデータモデル
 数学の集合論に基づいてデータを表現
社員テーブルSRA OSS 組織テーブル

社員番号

社員名

１

鈴木

２

佐藤

部署番号

所属社員

１

１

１

２

部署テーブル

２

２

部署番号

部署名

１

技術部

２

マーケティング部

データとデータ間に関連を持たせ、２次元の表で表現する
Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

12リレーショナルデータモデル
 階層構造のようなデータの重複を防げる
 ネットワーク構造よりも直感的に構造を理解できる 物理構造と論理構造が完全に独立している データ操作方法が論理構造に縛られない ただしネットワーク構造に比べて処理が遅い
Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

13

リレーショナルデータモデルの歴史
 1970年に E.F.Codd 氏が提案
 当時はコンピュータの性能が悪く、リレーショナルデータベースは実用化が難しかった １９８０年代からリレーショナルデータモデルの利点が認知されだし、実用にも耐えられるものが出てくる
 現在では一番普及しているデータモデル
 PostgreSQL, Oracle, DB2, MySQL, SQL Server...
Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

14

リレーショナルデータモデルの用語
社員ドメイン 部署ドメイン

直積

リレーション（鈴木, 技術部）
鈴木
佐藤

技術部

ｘマーケ
ティング部

（鈴木,技術部）⊇ （佐藤,技術部）（鈴木, マーケティング部）＝（佐藤, 技術部）（佐藤, マーケティング部）

タプル（佐藤, マーケティング部）

属性

Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

15

リレーショナルデータベース
 リレーション
 属性
 タプル
 ドメイン→→→→

表 / テーブル
列 / カラム
行 / レコード
データ型
外部参照

部署番号

所属社員

１

１

１

２

２

２
外部キー社員番号社員名

１

鈴木

２

佐藤主キー

Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

16

リレーショナル代数
 リレーショナルデータベースを操作する言語
 リレーショナル代数は５つの演算から成り立つ
和集合
差集合
直積集合
射影
選択
Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

17リレーショナル代数
和集合 （全体）

R ∪ S

R

差集合

R － S

S

積集合

R ∩ S = R － （R － S）
Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

18リレーショナル代数
R

部署番号

所属社員

１

直積集合

R Ｘ S

S

社員番号

社員名

１

１

鈴木

１

２

２

佐藤２

２
部署番号

所属社員

社員番号

社員名

１

１

１

鈴木

１

１

佐藤

１

２

２
わせ合１
２

佐藤１

鈴木２

佐藤１２２プルタ
２の全て
２

みの組

２

Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

鈴木19

リレーショナル代数
T

射影

部署番号
１１
１
１２２
社員名
鈴木佐藤
鈴木佐藤
鈴木佐藤

所属社員
１
１２２
２
２

社員番号
１
２
１２
１
２

社員名
鈴木佐藤
鈴木
佐藤
鈴木佐藤

縦・横方向の切り取り

選択

部署番号
１
１２所属社員１
２
２

Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

社員番号
１
２
２

社員名
鈴木佐藤
佐藤
20

DBMS の機能 （１）

データの操作

Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

21

SQL
 リレーショナルデータベースを操作する言語 ISO標準規格
 多くのRDBMSで共通規格として取り入れられている

 DDL
 DML
 DCLテーブルなどの構造を定義する
データを操作する
データ操作の確定、制御などを行う

Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

22

DML (Data Manipulation Language)
 データの検索、演算結果の抽出 SELECT [カラム, ...] FROM [テーブル, ...] WHERE

 データの挿入
 INSERT INTO [テーブル] VALUES (値, ...)

 データの更新
 UPDATE [テーブル] SET [列=値, ...] WHERE

 データの削除
 DELETE FROM [テーブル] WHERE
Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

23

SELECTの種類
 Simple Query SELECT ... FROM ... WHERE ...

 Join Query （結合） SELECT ... FROM t1 JOIN t2 ON ... WHERE ...

 Nested Query （サブクエリー）
 SELECT ... FROM ... WHERE ... IN (SELECT ...）
 SELECT ... FROM (SELECT ... ) WHERE ...
Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

24

DBMS の機能 （２）トランザクション

Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

25トランザクションとは？
 複数のSQL文を、１つの処理単位にまとめたもの １トランザクション内のSQLは全て成功か、全て失敗かのいずれかであることが保証される

１つの処理単位

BEGIN ・・・・・・ トランザクション開始
INSERT ～SELECT ～UPDATE ～COMMIT ・・・・・・ トランザクション終了
Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

データベース26

トランザクションを利用した例 １Aさんの口座から、Bさんの口座へ１００万円振り込む
Aさんの口座Bさんの口座

残高： １１０万円

残高： ０円トランザクション開始
１． 更新： 口座Ａ －１００万円
２． 更新： 口座Ｂ ＋１００万円

残高： １０万円

トランザクション終了

Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

残高： １００万円
27トランザクションを利用しなかった例
Aさんの口座から、Bさんの口座へ１００万円振り込む
Aさんの口座Bさんの口座

残高： １１０万円

残高： ０円
１． 更新： 口座Ａ －１００万円
停電！

お金が消えた！
残高： １０万円

残高： ０万円
Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

28

トランザクションを利用した例 ２
Aさんの口座から、Bさんの口座へ１００万円振り込む
Aさんの口座Bさんの口座

残高： １１０万円

残高： ０円トランザクション開始
１． 更新： 口座Ａ －１００万円
停電！

残高： １１０万円

トランザクション取り消し
Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

残高： ０万円
29

DBMS の機能 （３）同時実行制御Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

30

同時実行制御とは？
 複数のユーザが同じデータを操作した際に、矛盾が生じないようにする ロックによる制御が暗黙的に行われる
１行をロックする「行ロック」
テーブル全体をロックする「テーブルロック」
がある
Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

31

同時実行制御をしていない例
給料日前のAさんの口座
Ｘ Ｘ 商事Ａさん○○ローン

残高： ５万円

食事代５万円

１． 参照： 残高確認
２． 更新： 給与振込 ＋２０万円

残高： ５万円

３． 更新： 残高 － ５万円

残高： ０円Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

32

同時実行制御をしている例
Ｘ Ｘ 商事Ａさん○○ローン

残高： ５万円

食事代５万円

１． 参照： 残高確認ロック獲得

残高： ５万円

２． 更新： 給与振込 ＋２０万円
ブロック

３． 更新： 残高 － ５万円
ロック解除

ロック獲得

残高： ２０万円
Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

33

DBMS の機能 （４）セキュリティ管理
障害回復機能... はこの後の「PostgreSQL 入門」でCopyright © 2008 SRA OSS, Inc. Japan All rights reserved.

34

ご清聴ありがとうございました

Copyright © 2008 SRA OSS, Inc. Japan All rights reserved.

35