情報処理の登竜門5 データベースの整理(正規化)の手順...
TRANSCRIPT
1
情報処理の登竜門
リレーショナルデータベースに対する基本知識
データベースは、世界各地の兵数や武器に関する情報を集めてコンピュータで管理していた「データ基地」を語源としている。
2
データベースの管理形態
本社
支社B 支社C
支社A
支社A本社
支社B
支社C
DBMS
共有データベース
本社用データベース
支社A用データベース
支社B用データベース
支社C用データベース
DBMS
共通データベース
DBMS
共通データベース
DBMS
共通データベース
DBMS
共通データベース
支社A
支社B
支社C
本社
整合性の確保
個別分散型データベース統合型データベース
分散・共有型データベース
DBMSの役割・物理的データ管理・各種問い合わせ処理・データの一貫性管理・機密保護・同時アクセス制御・障害修復処理
データベースが壊れても全体への影響は少ない
管理は楽だがデータベース障害が全体に影響
勝手に管理できるが、全体の整合性が取り難い
3
データベース構造モデルとリレーショナルデータベースの3層スキーマ
個々のデータの関係を表現(抽象化)する為のモデル
データをデータベースに格納する時の視点
4
リレーショナルデータベースの基本体系
レコードとも定義される
項目とも定義される
リレーショナルデータベースは関連(リレーション)を持った複数の表から構成されている
外部キーは、他の表との整合性を取る為に定義される
主キーは、表の中の行(レコード)を特定する為に定義される
外部キーは、他のテーブルの主キーでもある
5
データベースの整理(正規化)の手順
何れかの項目を主キーとした場合(例えば、講座番号)、主キーに対する項目が繰り返して出現する形態を非正規化形式という
表を、一つの候補キー(行を特定可能なキー)により特定(行を特定)できる形式に分割します一つの表の中に一つの主
キーのみがあるテーブル
表中で重複した行(1項目n件形式)をなくし、独立した行(1行1件形式)とします
6
講座Noと受講生Noを特定できるので、これらを主キーとすればデータベースとして活用することもできます。⇒データ格納上の無駄が発生します。
部分関数従属とは、候補キー(主キーとなりえるキー)が複数存在し、その各々の候補キーに対して従属する(特定される)項目が存在する形式です。講座Noに対する講座名や講座金額、及び、受講生Noに対する受講生名等を指します。
7
③第3正規表現形
表の項目中に、主従の関係がある項目(講師番号、講師名)を抜き出して別表とします
講座金額 開講日
③第2正規形
特定の項目(主キー候補)に対応して必然的に特定される(部分関数従属関係)項目を分類して別の表にします。
受講生Noは、受講生個々人に個別に設定される講師Noは、講師個々人に個別に設定される受講生は、複数の異なる講座を受講できる講師は複数の異なる講座を担当できる
一つの項目で項目を特定できない場合は、複数の項目を組み合わせて主キーとします
8
データの整合性確保の為に参照制約
講座表
受講表講師表
受講生表
9
DBMSの提供するデータベースアクセス言語SQL
○
○
○
○
○
◎
○
10
データベースの定義の型と整合性定義
11
定義構文(SQL-DDL)を使った表の定義
実表の定義 仮想表(ビュー表)の定義
12
参考構文(DML)を使った表の検索(1)
講座金額が20万円以上で、講座No,
講座名、講師No,講師名を抽出する受講生に人数を抽出する
13
参考構文(DML)を使った表の検索(2)
受講表
受講生区分毎の受講生人数を抽出する
受講生が5人以上の講座の、講座No
と人数を抽出する
14
参考構文(DML)を使った表の検索(3)
受講Noが“001”を受講している受講者の名前を抽出する
15
参考構文(DML)を使った表の検索(4)
2001年中に講座申し込みを行っていない受講生Noと受講生名を抽出する
16
参考構文(DML)を使った表の検索(5)
指定された日(Hiduke変数に登録)に申し込みを行った受講生を抽出
17
参考構文(DML)を使った表の検索(6)
講座表を、講座金額順(降順)に抽出する
申し込み日が“2001/12/1”~“2001/12/5”の行の項目を全て抽出する
2001年中に申し込みを行っていない受講生Noと受講生名を抽出する
18
SQLその他の主な構文(データベース更新)
19
SQLその他の主な構文(カーソルの定義)
20
SQLの基本的な構文
21
データベースの概念設計、物理設計に活用されるER図
Entity-Relationship Diagram
22
DBMSにおける競合アクセスからのデータの保障
23
DBMSにおける各種障害・回復処理
24
複数サイトからの同時書き込み要求に対するデータの保障を可能とする為のデータベース書き込み(コミット)制御
DBMSにおけるACID特性と2相コミットメント制御
DBMSのトランザクション処理で重要となるACID属性