データベーススペシャリストの
勉強を今回はまじめにやろうと、キーワードをメモリング。
とりあえず、以下暫定で、随時更新
■データモデル
- 概念データモデル:実業務の中から必要なデータの集まりとそれらの関係を洗い出し、まとめたもの。
- 論理データモデル:概念データモデルで作成したものを、テーブル、レコードといったコンピュータで実装可能な論理的データ構造として定義したもの。データのアクセス用件に基づきデータベースの種類が決定される。特定のハード、OS、DBMSには依存しない。
- 物理データモデル:ハードウェアやDBMS製品を含む、実装方法の定義。
- スキーマ:データ構造を定義したもの。
- 3層スキーマアーキテクチャ:データ構造の独立性を観点とした設計原理。ユーザに近い部分から、外部スキーマ、概念スキーマ、内部スキーマとなる。それぞれのスキーマは独立しており、ある層の変更がほかの層に影響しない。
■関係モデル
- キー
- スーパーキー:タプルを一意に識別できる属性集合、複数存在する可能性あり、NULLを含んでOK。
- 候補キー:スーパーキーの中で極小の属性集合のもの(つまり、真部分集合がスーパーキーとならないもの)、複数存在する可能性あり、NULLを含んでOK
- 主キー:候補キーの中で主に使用するものとして定めたキー、表に対して1つのみ、主キーを成すどの列もNULLを含んではいけない
- 代替キー:主キーでない候補キー
- 複合キー:2つ以上の属性からなるキー
- 代用キー:連番などをつけて主キーの代わりにする、複合キーを連番などの意味のないキーに置き替えることで、複合キーを構成している属性はすべて非キー属性に替え,代替キーとして指定する
- 非キー属性:候補キーに含まれないフィールド
- 外部キー:他テーブルを参照している属性集合、参照先テーブルでは候補キーとなっている必要がある
■関数従属
- 関数従属:属性集合Xの値が定まると属性集合Yの値が1つに定まるとき、YはXに関数従属するといい、X→Yと表す。Xを決定項、Yを被決定項という。
- 自明な関数従属:YがXの部分集合のとき、X→Yを自明な関数従属という。
- 完全関数従属:X→Yが成立し、Xの全ての真部分集合X'に対してX'→Yが成立しないとき、YはXに完全関数従属するという。
- 部分関数従属:X→Yが成立し、Xのある真部分集合X'に対してX'→Yが成立するとき、YはXに部分関数従属するという。
- 推移的関数従属:X→Y、Y→Zが成立し、Y→Xが成立しないような属性集合Yがあるとき、ZはXに推移的関数従属するという。ただし、X→Y、Y→Zは自明でないとする。
- 結合従属性:関係Rの属性集合の族X1、…、Xnに対して、RのX1、…、Xnへの射影の自然結合がR自身になるとき、Rは結合従属性*(X1,X2,…Xn)をもつという。
- 自明な結合従属性:あるiに対してXi=Rの場合
- 多値従属:関係Rの属性集合X、Yが次を満たすとき、YはXに多値従属するといい、X→→Yと表す。関係Rのタプルtに対して、tの属性集合Xに関する部分をt(X)で表す。このとき、任意の2つのタプルt1, t2に対してt1(X)=t2(X)ならば、あるタプルt3が存在してt3(X)=t1(X)、t3(Y)=t1(Y)、t3(R-X∪Y)=t2(R-X∪Y)。またこのとき、対照的に次のようなt4が存在する:t4(X)=t1(X)、t4(Y)=t2(Y)、t4(R-X∪Y)=t1(R-X∪Y)。またまたこのときRは、X,YとX,Zに分解できる。
- 自明な多値従属:Y⊆XもしくはR=X∪Yの場合
- 対称性のある多値従属:自明でない多値従属
■正規化
- 正規化:1事実1箇所(1 fact in 1 place)を目指して、テーブルの整合性を保ったまま、テーブルの冗長性を排除し、データを効率的に管理できるようにすること。冗長性を排除するためにテーブルの分解という方法をとる。また分解後のテーブルを自然結合すると元のテーブルに戻るよう(結合従属性)に分解(情報無損失分解)を行う。
-
- 非正規形:同じ意味を持つ属性集合が重複して現れる(繰返項目)ような関係、(社員番号、氏名、所属プロジェクト1、所属プロジェクト2、…)など
- 第1正規形:非正規形から繰返し項目を分解して得られる関係。
- 第2正規形:第1正規形から、候補キーに部分関数従属する非キー属性を分解して得られる関係。第1正規形であり、どの非キー属性も全ての候補キーに対して完全関数従属している関係。
- 第3正規形:第2正規形から、候補キーに推移的関数従属する非キー属性を分解して得られる関係。第2正規形であり、候補キーと非キー属性間に推移的関数従属が成立しない関係。
- ボイス・コッド正規形:第3正規形から、非キー属性を決定項とする関数従属を分解して得られる関係。第3正規形であり、自明でない全ての関数従属性の決定項が候補キーであるような関係。第1、2、3、5正規形であるが、第4正規形であるとは限らない。
- 第4正規形:ボイスコッド正規形から、対象性のある多値従属を分解して得られる関係。ボイスコッド正規形であり、対象性のある多値従属を持たない関係。
- 第5正規形:第4正規形から、自明でない結合従属性を分解して得られる関係。第4正規形であり、自明でない結合従属性を持たない関係。
■SQL
■埋込みSQL
■トランザクション管理
■一貫性、独立性の保障(排他制御)
- 2相ロック:
■独立性の保障(直列可能性)
■耐久性の保障(障害回復)
■分散データベースシステム
■インデックス
■データウェアハウス