情報処理技術者試験DB対策 第1回(データモデル1)
今年の春試験は震災の影響で6月に延期されました。
今から勉強しても十分間に合うので、勉強したことをまとめていきます。
たぶん、全10回くらいになるかもしれません。
データモデルとは
試験に出るデータモデルは以下の3つ。
- 概念データモデル
- 論理データモデル
- 物理データモデル
大雑把な説明だと
- 概念データモデル -> E-R図、DBMSに依存しない
- 論理データモデル -> 階層、ネットワーク、関係、オブジェクト指向モデル
- 物理データモデル -> インデックス、ページサイズ、チェックポイントのパラメータ
論理データモデルでは関係モデルが出題されることが多い。
物理データモデルは出題されないので無視。(DBMS依存なので)
E-R図
登場人物
- エンティティ
- リレーションシップ
- インスタンス
- カーディナリティ
大雑把な説明だと
- エンティティ
情報の最小単位である属性のグループ
E-R図ではエンティティを四角、属性を円で描く
例:商品というエンティティの属性は商品名、商品番号、原価などになる
- リレーションシップ
エンティティとエンティティの関係
E-R図ではエンティティどうしを線で結びその上に菱形でリレーションシップを描く
例:商品と顧客というエンティティのリレーションシップは受注などになる
エンティティの実際のデータ
例:唐揚げ(商品)のインスタンスはジューシー唐揚げNo1(商品名)、001(商品番号)、100円(原価)
- カーディナリティ
エンティティ同士をリレーションシップで結んだ時の数の関係
1:1、1:多、多:1、多:多の4種類
例:商品は複数の顧客に買われる、顧客は複数の商品を買う、よって商品と顧客は多:多
試験には拡張E-R図が出題される。
見かけが変わるだけなので省略。
概念データモデル
もう少し細かく説明
- 概念データモデル=E-R図(Entity Relationship Diagram)
- インスタンス=属性の集まり
- インスタンスを一意に識別する属性が主キー
- 主キーが2つ以上の場合は複合キーという
- リレーションシップ=関連=エンティティ同士の関係
- カーディナリティ=デグリー=多重度=エンティティ同士の数の関係(4種類)
- 連関エンティティ
関連の多重度が多:多の場合、1:多と多:1に分解し、2つのエンティティの間に新しくエンティティを追加する
このエンティティを連関エンティティという
例:商品、顧客エンティティ多:多の関係なので間に注文エンティティを追加する
- 強エンティティ、弱エンティティ
あるエンティティがなくなった場合、そのエンティティに関連する別のエンティティが存在しなくなるとき、前者を強エンティティ、後者を弱エンティティという
いわゆる明細系のエンティティが弱エンティティ
例:注文エンティティがなくなると注文明細エンティティもなくなる
- ループ構造
あるエンティティが自分自身に関連を持つ構造
例:プロジェクトは複数の子プロジェクトを持つ、各プロジェクトは1対多で関連している
- ロール
エンティティの役割を書いたメモ
書いても書かなくてもいい
例:顧客は商品を注文する