★2013/04/08追記
◆正規化
データの冗長性を少なくし、関連性の強いデータ項目(属性)をまとめて、一事実一箇所(1 fact in 1 place)にすること。
正規化を行うと、複数の項目で構成される属性は、単一の項目を持つ属性に分解される。
第一正規化
集団項目や繰り返し項目を別表にすること。
複数の項目で構成される属性は,単一の項目をもつ属性に分解される。
第二正規化
全ての項目が完全関数従属である状態にすること。
一つのデータが決まると、従属的に決まるデータを別グループにすること。
第三正規化
非キー項目に関数従属している項目を別の表に分割し、推移的関数従属を解消した状態にすること。
ボイスコッド正規化
第三正規形の条件を満たし、かつ、全ての属性が候補キーに完全関数従属している正規形。
※従属について
関数従属
BがAに関数従属するとは、A(例:社員番号)を決めるとB(社員名)が一意に決定するというもの。
Aを決定項、Bを従属項といいA→Bであらわす。
完全関数従属
決定項に余分なものがないときにいう。社員番号→社員名など。
部分関数従属
決定項に余分なものがあるときにいう。
{社員番号、部署番号}→社員名など(部署番号がなくても社員名を特定できる)。
推移関数従属
主キー以外に従属するものをいう。
{社員番号}→{部署番号、部署名、社員名}のとき部署名は、部署番号にも従属しているので推移従属となる。
データベース方式
【データベースの3層スキーマ構造】
データベースの基本的な構成を3つの構造により定義したもの。
外部スキーマ
データベースの利用者に必要なデータの定義。ビューなど。
利用者の必要とするデータの見方を表現する。
概念スキーマ
データベースで管理する対象の業務とデータの内容を論理的な構造として表現したもの。
テーブルやテーブルの正規化など。
内部スキーマ
検索速度向上のためのデータの物理的な格納方法の定義。
インデックスやデータファイル配置など。
データベース設計
【関数従属性】
レコードのある項目が決まれば、ほかのデータ項目も一意に決まる関係の事。
【キーの種類】
スーパキー
標柱の行を一意に特定できる属性、あるいは属性の組のこと。
候補キー(Candidate Key)
スーパキーの中で余分な属性は含まない、行を一意に識別するための必要最小限の属性によって構成されるスーパキーのこと。
主キーの「候補」となる。
主キー(Primary Key)
複数存在する候補キーの中から任意に選んだ一つの候補キーのこと。
主キーに選ばれなかった残りの候補キーを代替キー(Alternate Key)と呼ぶ。
【データベースの整合性管理】
データベース内に格納されたデータが矛盾のない状態である(=整合性がある)ことを保つための制約。
一意性制約
レコードの一意性を保障する制約
参照制約
データベースの参照関係、すなわち複数の表における相互関連の整合性に関する制約。
RESTRICT指定:親の行を削除するとき子がいれば削除不可
CASCADE指定:親の行を削除するとき子の行も同時に削除
SET NULL指定:親の行を削除したとき子の行の外部キーにNULLを設定
SET DEFAUTL指定:親の行を削除したとき子の行の外部キーに規定値を設定
存在制約
あるデータが存在するためには他のデータの存在が必要とされるという制約。
データの追加、削除に関する制約条件といえる。
参照制約で代替出来る。
更新制約
データベース中のデータの更新に関する制約。
データ更新時に、更新後のデータがとり得る値の範囲内に収まっているかという検証を行う。
形式制約
データ項目や定義域におけるデータ型や桁数などについての制約。
データ操作
【導出表】
1つ以上の基礎となる表(実表)から関係データベース操作によって作成される仮想の表のこと。
SQLにおいては「CREATE VIEW」文で作成される。
データベース応用
【ツール】
ETL(Extract、Transorm、Load)ツール
Extract、Transrom、Loadというデータウェアハウス構築における3つの工程の頭文字を合わせたもの。
データを抽出(Extract)し、変換・加工(Transorm)し、ロード・書き出し(Load)する。
OLAPツール
データウェアハウスなどの多次元データベースを分析するための
ソフトウェア。
データマイニングツール
統計解析手法を用いてデータウェアハウスの膨大なデータの中から隠れた関係性などを導く作業を支援するツール。
統計ツール
データ群に対して様々な統計分析を行うことができるソフトウェア。
【ストアドプロシージャ】
一連のSQL命令からなるデータベース処理手続き(プログラム)を、あらかじめ実行可能な状態でデータベース内に格納しておき、クライアントからCall文により呼び出し、実行する方式。
ストアドプロシージャの利点
- 1つずつSQL文を送信する必要がない。
- クライアントとサーバ間の通信量を軽減できる。
- 共通のSQL文によるデータベースアクセス手続きをクライアントに提供できる。
- 機密性の高いデータに対する処理をプロシージャすることで、セキュリティを向上させることが出来る。
【2相コミットプロトコル】
分散システム内の全ノードがコミットに合意するという
プロトコル。
複数のトランザクションの中から調停者(Coordinator)が選ばれ、残りが参加者(Participant)となる。
<1相(Phase 1)>
調停者がコミット可否の問い合わせを実施。(Prepare)
↓
全参加者がコミット可の応答。
↓
調停者からのCommitまたはAbortの実行指示待ちのブロック状態。
↓
<2相(Phase 2)>
調停者がコミット実行指示。
↓
全参加者がコミット実行の応答。
※2相で行うコミットまたはロールバックの指示の直前に調停者に障害や通信障害が発生した場合、調停者の指示が参加者に届かなくなる。
その場合、調停者の回復処理が終わるまで全参加者がコミットもロールバックも行えない状態となる。
この状態をブロック状態と呼ぶ。
【障害回復管理】
障害の種類
- 媒体障害:データベースが格納されている記憶媒体にディスク損傷やアクセス故障が発生してデータが使えない状態になること。
- システム障害:OSのバグによりシステムがダウンする状態のこと。
- トランザクション障害:アプリケーションプログラムのバグやデッドロック発生によるトランザクション強制終了のこと。
システムが媒体障害以外の原因によって停止した場合は、チェックポイントの取得以前に終了したトランザクションについての回復作業は不要である。
※チェックポイントとは
データベースでの更新処理は,主記憶で更新内容を保存している状態からディスクに書込むことで確定する。
チェックポイントとは,このディスクに書き込むタイミングのこと。
チェックポイントを設定することで,障害発生時に直近のチェックポイントの時点からリスタートできる。
最終更新:2013年04月08日 14:31