データベーススペシャリストの

勉強を今回はまじめにやろうと、キーワードをメモリング。
とりあえず、以下暫定で、随時更新

■データモデル

  • 概念データモデル:実業務の中から必要なデータの集まりとそれらの関係を洗い出し、まとめたもの。
    • トップダウンアプローチ:現状に関係なく、特定の業務に依存しない、データ本来のあるべき姿を基にデータモデルを作成する方法。
    • ボトムアップアプローチ:現状改善型のアプローチで、現行システムを分析し、現状のデータモデルを作成してから、それを新しいデータモデルに変換していく方法。
  • 論理データモデル:概念データモデルで作成したものを、テーブル、レコードといったコンピュータで実装可能な論理的データ構造として定義したもの。データのアクセス用件に基づきデータベースの種類が決定される。特定のハード、OS、DBMSには依存しない。
  • 物理データモデル:ハードウェアやDBMS製品を含む、実装方法の定義。

■3層スキーマアーキテクチャ

  • 3層スキーマアーキテクチャ:データ構造の独立性を観点とした設計原理。ユーザに近い部分から、外部スキーマ、概念スキーマ、内部スキーマとなる。それぞれのスキーマは独立しており、ある層の変更がほかの層に影響しない。
    • 外部スキーマ:ユーザやアプリケーション視点でのデータ構造を定義したもの。この定義により、業務(アプリケーション仕様)が変更になっても、概念スキーマの変更がない。RDBではビューに相当。
    • 概念スキーマ:データベース化する対象が業務のデータ構造を定義したもので、特定のハード、OS、DBMSに依存しない。データモデルの論理データモデルに相当。RDBではテーブルに相当。
    • 内部スキーマ:実装の観点からデータ構造を定義したもので、データの物理的格納構造、ファイル配置、ファイル編成法などに相当。この定義により、チューニングなど実装上の変更が生じても、概念スキーマへの影響が無い。データモデルの物理データモデルに相当。

■関係モデル

  • キー
    • スーパーキー:タプルを一意に識別できる属性集合、複数存在する可能性あり、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相ロック:
      • (第1相)参加者に対し、コミット可否問合せ実施
      • (第2相)参加者からOK応答があったら、コミット実行指示
      • 一度ロックを解除すると、同トランザクション内ではロックをかけ直すことはできない、デッドロックは起きにくいが、完全には防げない。

■独立性の保障(直列可能性)

■耐久性の保障(障害回復)

■分散データベースシステム

■インデックス

■データウェアハウス