資料(1) - Fukumori

2016/4/30
DATA BASEとは
データベースのモデル
米軍の基地A
情報の基地
(代表的な3つのモデル)
米軍の基地B
基地Aの情報
基地Bの情報
基地Cの情報
米軍の基地C
福森 俊一郎
テキスト No.2 第2章
DATA BASE とは
情報の集約(効率化)
マルチアクセス
障害対策
機密保持
第二次大
戦後
ファイルとプログラム
住所変更
名前変更
家族変更
所属変更
職位変更
勤務地変更
etc
人事管理
プログラム
労務管理
プログラム
給与計算
プログラム
人事管理用
従業員ファイル
労務管理用
従業員ファイル
給与計算用
従業員ファイル
データの重複 = 一貫性の問題
社員コード、社員名、住所、電話番号、年齢、入社年、所属、勤務地、勤務状況
銀行口座、家族、残業時間
データベースとプログラム
人事管理
プログラム
データベースの役割
労務管理
プログラム
給与計算
プログラム
1.データのプログラムからの独立性
プログラムの変更がデータに影響を及ぼさない
データの変更がプログラムに影響を及ぼさない
2.データの非重複
統合インターフェース(論理表現)
ビュー
ビュー
ビュー
労務データ
複数ユーザからのアクセス、
更新を伴う場合、一貫性の確保
共有データ
人事データ
3.データの共有 = 同時アクセス
給与データ
4.機密保持
5.データの安全性
データベース
1
2016/4/30
データベースシステムの構成
データの論理表現と物理表現
アプリケーション
(応用プログラム)
データ
モデル
Data Base System
検索言語(クエリ)、データ操作言語
データの物理表現
データの論理表現
論理的
DBMS
データベース管理システム
(DBMS)
プログラム
アプリケーション
(例)販売システム
検索言語(クエリ)
Data Base
媒体操作手順
物理的 (実際のデータ)
データベース
DBMS:Data Base Management System
データベース管理システム
DBMS : DataBase Management System
テキスト P38
(テキスト P244)
データの論理表現
業務に必要な
項目だけ
データベースの起源
型
社員データベース
○ 氏名、生年月日、性別、連絡先
× 性格、趣味、好みの食べ物
年
1950年代
1963
3.関係モデル(RDB)
DMS-100(ユニシス)
ADMS(NEC)
IDMS(カリネーン社)
E-DMS(三菱)
IDS/2(ハネウェル社)
IDS(GE社)
CODASYL発足
取込み
1968
マギー氏論文発表
2.ネットワークモデル
TOTAL
(シンコム
システムズ社)
DBTG発足
1959
1.階層モデル
1970年代
1968
1967
ネットワーク(網)
型
(CODASYL型)
現実の世界
モデル化
(抽象化)
1960年代
MARK Ⅳ
(インフォマティックス社)
1959
APM(日立製作所)
1968
階層型
MUMPS(MGH)
IMS(IBM社)
1969
SYSTEM2000
(MRIシステムズ社)
データベース
1970
関連(RDB)型
コッド氏リレーショナルの論文発表
テキスト P246
3層スキーマ
モデル化(抽象化)
データベースが管理するデータの枠組み
人事管理
プログラム
労務管理
プログラム
給与計算
プログラム
例 社員データ
個々のプログラムとのインターフェース
枠組み(仕様)・・・・・・・スキーマ
(テキスト P246)
データベースの構造を定義したもの
社員番号、氏名、住所
論理表現
現実世界の抽象化
統合インターフェース(論理表現)
概念スキーマ
共有データ
内部スキーマ
データの格納形態
データが格納されたもの・・・・・・・インスタンス
(テキスト P315)
12345 山田太郎
大阪市
外部スキーマ
(ビュー)
人事データ
労務データ
給与データ
データベース
スキーマ:データベースの構造を定義したもの(仕様)
2
2016/4/30
テキスト P246
3層モデルアーキテクチャ
テキスト P246
標準スキーマ
ANSI(American National Standards Institude : アメリカ規格協会)
外部スキーマ1
(利用目的向け)
外部スキーマn
(利用目的向け)
外部レベル
(ビュー)
3層スキーマ ANSI/X3/SPARC
外部スキーマ:論理的なデータ構造の一部を表したもの
概念スキーマ:論理的なデータ構造を表す(狭義でのスキーマ)
内部スキーマ:物理的環境に依存するデータ構造を定義したもの
概念スキーマ
(データの論理表現)
概念レベル
目的
内部レベル
内部スキーマ
(物理的な格納形式の規定)
スキーマ:Schema
論理データの独立性:
論理的データ構造の変更が、他のスキーマに影響を及ぼさない
物理データの独立性:
物理的データ構造の変更が、他のスキーマに影響を及ぼさない
データベースの構造を定義したもの
テキスト P254
階層モデル
モデル化
ルートノード(根)
階層型、ネットワーク型、関連型 別に見る
ノード(節)
リーフ(葉)
最初
階層型
木構造(ツリー構造)
テキスト P254
階層モデルでは、レコードの親子関係を階層として表しているが、
子レコードから見て親レコードは必ず1つであるという点が特徴である
現実世界の制約
1人学生は1つの学部・学科
1:n
木構造
階層モデル
例:ある大学の学部学科構成と学生の関係
学部
工学部
階層モデル
木構造ではない
n:m
任意加入のサークル
理学部
医学部
野球
サッカー
空手
親ノード
サークル
学部レコードタイプ
学科
機械工学
電気工学
情報工学
学科レコードタイプ
舟木
学生
階層型データモデルによるスキーマ表現
花岡
花岡
/1
岸田
/1/2
舟木
/1
山崎
/2
宮崎
/1/2
子ノード
学生/活動年数
岸田
学生レコードタイプ
親が2つ
階層型データモデルの例
(インスタンス)
3
2016/4/30
階層モデル
階層モデル
強引に木構造にする
n:m
任意加入のサークル
工学部
理学部
機械工学
野球
サッカー
岸田
/1
岸田
/2
舟木
/1
山崎
/2
宮崎
/2
子ノード
学生/活動年数
この場合、岸田と宮崎は冗長(むだが多くて長い)になる。
階層モデル
学部レコード
学科レコード
情報工学
親ノード
サークル
空手
宮崎
/1
医学部
電気工学
舟木
花岡
/1
赤の破線はポインター
花岡
/1
花岡
岸田
/1
岸田
/2
野球
岸田
舟木
/1
山崎
宮崎
/1
学生レコード
宮崎
山崎
/2
サッカー
宮崎
/2
学生/活動年
レコード
サークルレコード
空手
論理的親子関係を含めた階層スキーマ
学部
学科
サークル
ネットワーク型
テキスト P256
学生
論理親
学生/活動年
論理子
ネットワークモデル
(階層モデルの拡張)
階層モデルとの違い
ネットワークモデル
レコード集合
学部
構成
1. 子レコードは任意数の親レコードを持つことができる
サークル
学科
2. データベースは通常のレコード集合と、レコード間のリンク(繋が
り)をより明示的に扱ったリンク集合とからなる
所属
リンク集合
学生
活動年
ネットワークモデルに基づくスキーマ(バックマンダイアグラム)
4
2016/4/30
ネットワークモデル
学生レコード
機械工学
工学部
電気工学
活動年レコード
花岡
1
岸田
1
サークルレコード
野球
1.階層モデル
利点 単純で分かり易い 定型処理のアクセス高速化が可能
欠点 親を一つしか定義できないので現実の世界を表現しきれない
2
理学部
階層モデルとネットワークモデルの利点と欠点
情報工学
舟木
1
宮崎
1
サッカー
利点 親を複数定義できる(階層モデルの改善)
空手
2
医学部
山崎
この欠点を克服しようとするとモデルが冗長になる
2.ネットワークモデル
欠点 網の目のような構造のため、アクセス処理が複雑で低速になる
どちらも複雑な構造が定義された場合、操作手続が複雑になる点が欠点
2
ネットワークモデルのインスタンス例
関連モデル(RDB)
学科
関連(RDB)型
学科ID
学科名
所属学部
d001
機械
工学部
d002
電気
工学部
d003
情報
工学部
数学
理学部
学生
学生ID
学生名
学科ID
001
花岡
d002
002
舟木
d002
003
岸田
d002
004
山崎
d003
005
宮崎
d003
住所
生年月日
・・・
・・・
d012
サークル活動
・・・
テキスト P258
サークル
学生ID
サークルID
活動年数
001
s01
1
002
s02
1
003
s01
1
サークルID
サークル名
部員数
003
s02
2
s01
野球
21
004
s03
2
s02
サッカー
16
005
s02
1
s03
空手
8
005
s03
2
・・・
・・・
関連モデル:リレーション(関係、2次元の表)によってデータ構造を表すモデル
関連モデル
おさらい
関連モデルは、リレーション(関係、2次元の表)によってデータ構造を表すモデルである
属性(アトリビュート)
支店表
組(タプル)
支社コード
支店コード
支店名
B1
S1
金沢支店
B1
S2
富山支店
B1
S3
福井支店
リレーションの組と属性
5
2016/4/30
業務に必要な
項目だけ
データの論理表現
社員データベース
○ 氏名、生年月日、性別、連絡先
× 性格、趣味、好みの食べ物
現実の世界
スキーマとインスタンス
スキーマー:データベースの構造を定義したもの(仕様)
データベースが管理するデータの枠組み
例:従業員番号、名前、住所、年齢・・・・・
1.階層モデル
モデル化
(抽象化)
2.ネットワークモデル
3.関係モデル(RDB)
インスタンス:スキーマーに基づいて格納された個々のデータ
例:12345、山田太郎、大阪市北区・・・、45歳
データベース
3層モデルアーキテクチャ
標準スキーマ
ANSI(American National Standards Institude : アメリカ規格協会)
外部スキーマ1
(利用目的向け)
3層スキーマ ANSI/X3/SPARC
外部スキーマ:論理的なデータ構造の一部を表したもの
外部スキーマn
(利用目的向け)
外部レベル
(ビュー)
概念スキーマ:論理的なデータ構造を表す(狭義でのスキーマ)
内部スキーマ:物理的環境に依存するデータ構造を定義したもの
概念スキーマ
(データの論理表現)
概念レベル
目的
内部スキーマ
(物理的な格納形式の規定)
論理データの独立性:
論理的データ構造の変更が、他のスキーマに影響を及ぼさない
物理データの独立性:
物理的データ構造の変更が、他のスキーマに影響を及ぼさない
スキーマ:Schema
内部レベル
データベースの構造を定義したもの
3層スキーマ
人事管理
プログラム
労務管理
プログラム
給与計算
プログラム
プログラムとのインターフェース
論理表現
外部スキーマ
統合インターフェース(論理表現)
データの格納形態
人事データ
内部スキーマ
共有データ
労務データ
概念スキーマ
給与データ
データベース
スキーマ:データベースの構造を定義したもの(仕様)
6