- データベースの役割
コンピュータが多種多様な分野で、様々な人に使われるようになり、扱う情報量は年々肥大化しています。大量のデータの中から必要な情報を瞬時に見つけ出すには機器の高速化も含め様々な工夫が必要です。また同じような情報が分散してしている場合は更新漏れを防ぐためにもデータの一元管理が必要です。このようなデータの整理、整頓を手助けしてくれるのがデータベースです。情報社会にはなくてはならないアイテムのひとつです。
- データベースの特徴 (※ファイルとの比較)
- 独立性
プログラム(処理)からデータを分離
- 整合性
データの矛盾、重複の排除
- 障害対策
データの復旧機能
- 機密保護
利用権限(アクセス制御)
- データモデル
- 階層(ツリー)モデル
木構造、親子関係(1:多)
※(IBMのデータベース「IMS」に採用)
単純な構造がXMLなどで活用(HDBMS)
- 網方(ネットワーク)モデル
ネットワーク構造、親子関係(多:多)
※CODASYLモデルとも呼ばれる
(GEのデータベース「IDS」、富士通の「AIM DBMS」などに採用
メインフレームではまだ利用されていることが多い
データベース言語にNDLを利用)(NDBMS)
- 関係(リレーショナル)モデル
表(2次元)構造、表の関連(リレーションシップ)
(RDBMS)
表(テーブル、関係)
|
|
|
↑
列(項目、属性、
カラム、フィールド)
↓ |
|
|
|
|
|
|
← 行(組、レコード)→ |
|
- 主キー(Primary Key)
レコードを特定する項目(複数組合せ可)
※一意(ユニーク)、空値不可(非ヌル)
- 外部キー(Foreign Key)
別表の主キーを参照する項目
※リレーションシップ
- 参照制約
不正な外部キーの防止
※主キー以外は入力不可、
主キー項目利用時は削除不可
(カスケード削除)
(関係演算)
データの絞込み、表の加工
- 射影 カラムの指定
- 選択 レコードの指定
- 結合 表の結合(同項目値)
(集合演算)
表同士の演算(※前提条件:表の構造が同じ)
- 和(OR) 表の合成(A+B)
- 積(AND) 表の共通項目(A・B)
- 差 表の重複排除(A-B)
- その他
オブジェクト関係モデル(ORDBMS)
オブジェクトモデル(OODBMS)
- データの正規化
(目的)
データの重複(冗長)排除 → 更新漏れ、記憶容量
(※誰が行ってもほぼ同じ結果)
(正規化の手順)
3段階(重複度の違い)
- 非正規形
繰り返し項目を含む(帳票)
番号 |
名前 |
学部
CD |
学部名 |
授業
CD |
授業名 |
成績 |
1 |
松山 |
R |
文学 |
K |
国語 |
A |
E |
英語 |
C |
2 |
北条 |
K |
経済 |
S |
数学 |
B |
E |
英語 |
A |
※このまま記憶するとレコードの長さが異なる
(繰り返し項目の数に依存)1〜,K〜,E〜、2〜,S〜,E〜
- 第1正規形
繰り返し項目の排除(単純表)
主キー
※候補キー → 項目の組み合わせ(最小個数)
番号 | 名前 | 学部 CD | 学部名 | 授業
CD | 授業名 | 成績 |
1 |
太郎 |
R |
文学 |
K | 国語 | A |
1 |
太郎 |
R |
文学 |
E | 英語 | C |
2 |
花子 |
K |
経済 |
S | 数学 | B |
2 |
花子 |
K |
経済 |
E | 英語 | A |
※主キーは下線
- 第2正規形
表分割(主キーの組合せ)※主キーに関数従属
(New) 番号 | 名前 | 学部 CD | 学部名 |
1 | 太郎 | R | 文学 |
2 | 花子 | K | 経済 |
|
(New)
|
|
(New) 番号 | 授業CD | 成績 | 1 | K | A | 1 | E | C | 2 | S | B | 2 | E | A |
|
- 第3正規形
表分割(主キー以外の項目)※非キーに関数従属
外部キー
番号 | 名前 | 学部
CD |
1 | 太郎 | R |
2 | 花子 | K |
|
|
|
番号 |
授業CD |
成績 |
1 |
K |
A |
1 |
E |
C |
2 |
S |
B |
2 |
E |
A |
|
|
(New)
|
|