データベース(1)
データベース
データベースの種類
リレーショナル(関係)データベース
行と列からなる表の形式を持つデータ。個々のデータは特定の関係を持たず、表の各項目を手掛かりとして表と表との関係付けを行う。そのため、網状構造を対象を表現するときは、冗長な表現となる。

ツリー(階層)型データベース
項目がツリー構造を形成するデータベース。親→子の関係を持ち、一対多の対応関係を持たせることが可能。レコード間の関連付けはあらかじめ設計する必要はなく、データ操作の中で動的に行うことが可能
ネットワーク(網)型データベース
複数の項目がお互いにリンクし合う形式のデータベース。子データは複数の親を持つことができ、多対多の関係を持たせることができる

構造型データベース
データ同士に階層やつながりを持たせることで、データを管理するデータベース。階層型データベースや網型データベースは、構造型データベースのひとつ
その他のデータベース
オブジェクト指向データベース | オブジェクト指向の考え方でデータ(オブジェクト)を管理するデータベース |
---|---|
ハイパーテキストデータベース | テキスト内にあるキーワードから別のテキストを関連付けるハイパーテキスト形式のデータを管理するデータベース |
マルチメディアデータベース | 静止画像が動画像、音声などのデータを管理するデータベース。マルティメディアの種類を認識して管理する |
XMLデータベース | XML形式のデータを管理するデータベース。XML形式のタグの情報を認識して管理する |
分散データベース
データベースサイトを分散して配置し、一つのデータベースとして運用するもの
分散データベースでは、データの整合性の確保が最も問題になる
整合性確保の方法
レプリケーション
データベースを複製し、各サイトで利用し、定期的に更新情報を交換し合う
各サイトで同時に同じデータを異なる内容に変更することはNG
更新頻度の高いデータベース向きではない
2相コミットメント
複数のデータベースにまたがって処理を行う際に、すべてのデータベースで整合性が確実に保たれるようにする手法
処理全体を司るマスターサーバが、対象となるデータベースサーバに対し、コミットが実行可能であるかを問い合わせる。更新準備が整っているサーバは「準備完了」の応答を返し、すべてのサーバが準備を終えたことを確認した上で、マスターサーバはコミット開始を通知、データベースが一斉に書き換えられる。書き換え中にいずれかのデータベースで異常が発生した場合、異常が生じたサーバは失敗を伝え、マスターサーバはすべてのサーバに処理撤回を通知して、データを復元する「ロールバック」処理を行うよう指示する。障害が発生するタイミングによっては、その回復処理が終わらない限り、参加者全員がコミットもロールバックも行えない状態が発生する
データベースの透過性
データベースの分散を意識することなく、統一的なインタフェースによりアクセスすることが可能
(あたかも一つのデータベースのように利用可能←基本要件)
関係データベース
構造
リレーショナルデータベースのこと。行と列からなる表の形式を持つデータベース。個々のデータは特定の関係を持たず、表の各項目を手掛かりとして表と表との関係づけ行う
主キーと候補キー
候補キー
行の識別のために必要な項目
主キー
候補キーの中の任意の一つ。データベースに実装するうえで有利なものを選ぶ(例:行数が少ない、更新が少ない)
主キーと外部キー
外部キー
あるテーブルにおいて主キー以外の項目が、別のテーブルの主キーである項目

関係従属
キー属性【候補キー】と【非キー属性】の法則的な関係を表す
ある項目が決まれば他の項目が決まること
推移従属
Aが決まるとBが決まり、その結果Cが決まるという関係。「A→B→C」
(ただしB→Aは不成立)
関係演算
集合演算
和 | :2つの表のいずれかに属するものを取り出す(表を併合する) |
積 | :2つの表のどちらにも属するものを抜き出す(共通するレコードを抽出する) |
差 | :2つの表の一方のみに属しているものを取り出す |
(共通するレコードを除いたレコードを抽出する) | |
直積 | :2つの表のすべての組合せを求める |

関係演算
選択 | :表から特定の行を取り出す |
射影 | :表から特定の列を取り出す |
結合 | :複数の表を結合して1つの表にする |
商 | :母表Rから条件表Sを満たすものを取り出す(R÷S) |
データの正規化の手順
非正規形
繰り返し項目を持つデータの形
第1正規形
列の値の繰り返しを取り除いた表
第2正規形
主キーの一部によって決まる項目を別の表に分割する
第3正規形
主キー以外の項目で、キーになりえる列を別の表に分割する
参照制約
外部キーに存在する値が、参照される主キー側にも必ず存在するように、テーブル間の整合性を保つために設定する制約
参照整合性を設定すると適用される規則
●一側テーブルに登録されていない値を、多側テーブルに入力できない
●多側テーブルにリレーションされたレコードがあると、一側テーブルのレコードを削除できない
●多側テーブルにリレーションされたレコードがあると、一側テーブルの主キーの値を変更できない
オブジェクト指向データベース
オブジェクト指向プログラミングにおけるオブジェクトの概念を取り入れたデータベースのこと。データと手続き(操作)を一体化したオブジェクトで管理する。利用者は、特定の指示(メッセージ)を与えるだけでデータベースを利用することができる
データモデル
データベースの構造
データベースの構造を設計する考え方には、「データモデル」「3層スキーマ」がある
データモデル
データベースの各設計を完了した段階で作成されるデータ構造
名称 | 説明 |
---|---|
概念データモデル | データベースの概念設計を完了した段階で作成されるデータモデル。業務で必要なデータについてどのようなデータか、どのような関係にあるかを定義 |
論理データモデル (外部モデル) | データベースの概念設計を完了した段階で作成されるデータモデル。概念データモデルに対して、表間の主キー、外部キーの関係等を詳細に定義 |
物理データモデル (内部モデル) | データベースの概念設計を完了した段階で作成されるデータモデル。データの容量、使用頻度等を考量し、表の配置などデータの物理的構造を定義 |
3層スキーマ
3層スキーマとは、データベースシステムの基本的な構成を3つの構造により定義したもの。現在ほとんどのDBMS製品で取り入れられている。3層スキーマでは、各層が以下のように定義されている
名称 | 説明 |
---|---|
概念スキーマ | データベースで管理する対象の定義。テーブルなど |
外部スキーマ | データベース利用者に必要なデータの定義。ビューなど |
内部スキーマ | データの物理的な格納方法。インデックスやデータファイル配置など |

ビュー
既に定義されているテーブル構造などを基にして、論理的なデータ構造を提供する仕組み。セキュリティを高めたり表操作を容易にするため
メタデータ
スキーマに定義されている項目や属性などのデータ。あらかじめ定義情報としてスキーマに記述される
E-R図
E-R図とデータベース
実体である「エンティティ(Entitiy)」の関連を表す「リレーションシップ(Relationship)」を使い、データの関連を図で表す手法。実体関連図とも呼ばれる。DBMSに依存せずに記念モデルを記述可能な図式技法
※実体:管理対象となるデータのこと
E-R図の書き方

テーブル間を結びつける共通のフィールドが 主キーのあるテーブル:矢印の元 外部キーのあるテーブル:矢印の先 |
データベースの物理設計/作成手順/評価
パーティション分割機能
テーブルをデータベース内部で複数の領域(指定キー)に分割する機能>テーブルは1つとしてデータを分割されるように管理できるので、いかに示すように効率よくアクセスできる。これはテーブルと索引のどちら可能
●パーティション・プルーニング:分割されたパーティションのサブセットにのみアクセスすれば結果が得られる場合、表全体ではなくサブセットのみに絞り込んでアクセスする。選択率が高い場合でも有効
●パーティション単位のメンテナンス:テーブル全体に影響を及ぼすことなくメンテナンスが実行できる(特にパーティションの削除はDROP PARTITIONで可能になる)
●パーティション・ワイズ結合:パーティション化された2つの表をパラレル結合の時にオーバーヘッドが少なくなるように最適化されている
キーレンジ方式
分割に使用するキーの値をあらかじめ決めておき、分割する
ハッシュ方式
分割に使用するキーの値にハッシュ関数を適用し、分割する
データベース評価
再現率と精度はデータベースなどを利用した情報検索システムの検索性能の評価指標として用いられる
再現率
検索対象の全データの中から正解データ(質問に適合するデータ)をいくつ検索できたかを示す値。検索の網羅性の評価指標として用いられる
精度
検索結果のデータ中に、正解データ(質問に適合するデータ)が幾つ含まれているかを示す値。検索の正確性の評価指標として用いられる
 

