1.3 概念データモデル

1.3 概念データモデル

概念データモデルを学習しました。その内容をアウトプットします。

目次

1.3.1データモデル機能要件

E-Rモデルなどのデータモデル機能には、対象とする世界のデータの意味関係を忠実に記述でき、分析・設計した結果を的確に第三者に伝えることができる機能が求められる

(1)概念データモデル機能の機能要件

概念データモデル機能には、データ定義と整合性制約の二つの機能が求められる

①データ定義機能

  • 誰がモデリングしても同じ結果になること
  • 視覚的に理解しやすいこと(ダイアグラム表現)
  • 複合オブジェクト(繰り返し項目、階層構造)や繁華・特化関係などのデータの意味関係を表現できること
  • 概念データモデル機能自身に矛盾がないこと(完全性)

②整合性制約機能

データベース(データモデル)内のデータが政党で矛盾がない状態を整合性があるという。整合性制約はその状態を維持するために設定する様々な制約のこと。E-Rモデルなどの概念データモデル機能で直接表現できる整合性制約には、識別子制約、存在制約、参照制約、多重度制約、導出制約がある

(2)論理データモデル機能の機能要件

①データ定義機能

論理データモデル機能も、概念データモデル機能同様、複合オブジェクトや繁華・特化関係などのデータ構造を表現できなければならない。例えば関係モデルの場合、汎化・特化関係はそれらをフラットなテーブルへマッピングして表現

②データ操作機能

データモデル(データベース)上のデータに対する登録、更新、問い合わせを行う機能

③整合性制約機能

論理データモデル機能の整合性制約には、概念データモデル機能で上げた識別子制約、存在制約、参照制約、多重度制約、導出制約のほかに、形式製薬や更新制約がある。関係モデルでいえば、形式製薬はドメイン制約、更新制約はトリガやストアドプロシージャで定義できる

(3)複合オブジェクト、汎化・特化関係など

データモデル機能は、複合オブジェクト(繰り返し項目、階層構造)や汎化・特化関係などのデータの意味関係を表現できなければならない

①複合オブジェクト(繰り返し項目、階層構造)

複合オブジェクト(composite object)は、アプリケーションプログラムで使われる階層構造(木構造)や繰り返し項目などの複雑なデータ構造を表現したもの

②汎化・特化関係

汎化(generalization)は、複数の対象物に共通する属性(特性)に注目して、それらを一つのものにまとめる(抽象化、一般化する)

特化(specialization)は、ある対象物の共通部分以外の固有の属性に着目し、その属性に基づいて再分類(特殊化、具体化)する。

汎化・特化関係はis-a関係、汎化関係、汎化階層ともいう

③集約化・分解関係

汎化・特化関係は対象の性質に注目した意味関係、対象の構成に注目したものが集約化・分解関係。集約化・分解関係には、全体と部分の構成関係を表現する集約(part-of関係)と、強い所有関係を表現するコンポジット集約(has-a関係)の二つがある

汎化・特化関係
集約化・分解関係

1.3.2E-Rモデル

E-Rモデル(Entity-Relationshipモデル:実体関連モデル)はネットワークモデル、関係モデル、エンティティセットモデルの3モデルを統合するデータモデルとして1976年に発表。E-Rモデルは現実世界をエンティティ(実体)とエンティティ間のリレーションシップ(関連)としてとらえ、E-R図を用いて表現。理解しやすい、意味表現できる、様々なデータ構造を表現できる、あるいは関係モデルとの親和性が高い

(1)E-Rモデルの表現

E-Rモデルではエンティティ、リレーションシップ、属性、ロール(役割)、多重度などの概念を用いて現実世界の意味関係を表現する

①エンティティタイプ(実体型)とインスタンス

エンティティとは、モデル化対象世界の対象物のこと。物理的な実体(特定の車や商品、顧客など)と抽象的な実体(特定の組織や売り上げ・発注などの事象)がある。エンティティはそれ自体を説明する幾つかの属性を持つ。エンティティはまたインスタンス(instance:実現値)あるいはオカレンス(occurrence)ともいわれる。このエンティティが属する集合を表現する概念(抽象化したが概念)がエンティティタイプ(entity type:実体型)である。エンティティは、そこに所属するエンティティに共通な属性を持つ。その属性がある特定の値(具体的な値)を持つとき、それがエンティティである。インスタンス(またはエンティティ)とエンティティタイプとの間の関係は、オブジェクト指向では is an instance of 関係(分類、グループ化)と呼ばれる

is an instance of 関係

②リレーションシップタイプ(関連型)とインスタンス

リレーションシップ(関連)とは、業務上の規則(ビジネスルール)によって発生するエンティティ間の意味的な関係。リレーションシップは属性を持つことができるが、持たなくても構わない。リレーションシップの属する集合を表す概念がリレーションシップタイプ(relationship type:関連型)。リレーションシップタイプの属性がある具体的な値をもつとき、それをインスタンスという。なお、二つのエンティティタイプ間に複数のリレーションシップが存在してもよい

③属性

属性(attribute)はエンティティタイプやリレーションシップタイプの特性・性質を表現する要素・データ項目のこと

④ロール(役割)

ロール(role)は、リレーションシップタイプにおいてエンティティタイプが果たす役割を記述

⑤E-Rモデルの表記法(E-R図)

E-R図(E-R diagram)では、エンティティタイプを四角のボックス、リレーションシップタイプを菱形のボックスで記述。属性は円のボックスで表す。エンティティのインスタンス間に1対1、1対N(1対多)、N対M(多対多)の関連がある場合、これを表現するたに1やN、Mを実践上に記述。この記述を多重度という。片方のエンティティが相手のエンティティに対して果たす役割(ロール)も必要に応じ実践上に記述

(2)属性

①単純属性・複合属性

E-Rモデルは関係モデルとの統合を意識し、エンティティタイプや関連型は単純属性(simple attribute)から構成。単純属性は、単独で意味を持つ原子的な属性(スカラー項目)のこと。単純属性外の配列や繰り返しグループなどを複合属性(composite attribe)という。

②主キー

エンティティタイプや関連型のインスタンスを一意に識別する属性または属性の組み合わせを主キー(primary key)という。複数の属性の組み合わせは複合キー(composite key)または連結キー(concatenated key)という

④強エンティティと弱エンティティ

①強エンティティ

エンティティタイプがインスタンスを一意に識別する属性(主キー)を持つ場合、これを強エンティティ(strong entity)という。独立している

②弱エンティティ

エンティティタイプがそれ自体としてはインスタンスを一意に識別する属性を持たない場合、これを弱エンティティ(weak entity)という。弱エンティティは自分と関連する強エンティティとキーを共有することで、インスタンスを色部宇できる。弱エンティティは親にあたる強エンティティの存在なしには存在できない(存在制約)

(4)リレーションシップ

①多重度

インスタンスの数を示す数字(1やN)のことを多重度

②リレーションシップの基本対応関係

(a)1対1関連

多重度はインスタンスレベルで考える

エンティティタイプ間の多重度がわからなくなったら、インスタンスレベルで考えてみる。課と社員など具体的に考える。

(b)1対多関連

(c)多対多関連

(d)多対多の1対多への変換

関連型をエンティティタイプとみなせば、多対多関連は1対多関連に変換できる

③2項関連

二つのエンティティタイプ間の関連を2項関連という

④n項関連

三つ以上のエンティティタイプ間の関連をn項関連という

⑤複合2項関連

⑥ループ構造の表現

ループ構造(あるいは再帰構造)とは、ある点ティティが自分自身に関連を持つデータ構造のこと

(5)E-Rモデルの特徴

①長所

E-Rモデルの特徴は認識したこを率直に表現できる。

②短所

E-Rモデルでは、多対多関連を1対多関連で表現できる。関連型はエンティティタイプとみなせる。共通理解できるようなエンティティを設定しにくい

リレーションシップを2項関連に限定し1対1、1対多関連で表現。ただし、概略レベルでは多対多関連も許す。現時点では現場、試験では拡張E-Rモデルが使われている。

1.3.3拡張E-Rモデル

(1)拡張E-Rモデルの表記法

拡張E-Rモデルでは、一般的にエンティティタイプを四角のボックスで表し属性をボックスの中に記述。リレーションシップについては様々な表記法がある。代表的なものを次に示す。

①からすの足跡法

②バックマン線図

DB試験ではE-R図の表記にはバックマン線図を用いる

③矢印法

④IDEFIX

(2)エンティティタイプの種類

①各エンティティ

そのインスタンスの主キーで識別される基本になるエンティティのこと。強エンティティに相当。

②連関エンティティ

多対多関連がある場合、これを1対多に変換するためのエンティティタイプ

③記述エンティティ

繰り返しグループがある場合、繰り返しグループのために新しく作られるエンティティタイプ。

④スーパタイプ/サブタイプ

拡張E-Rモデルでは汎化・特化関係も表現できるが、これにはスーパタイプ、サブタイプというエンティティタイプを用いる。汎化・特化関係の親側がスーパタイプであり子側がサブタイプ。スーパタイプとサブタイプの主キーは共通。サブタイプ間にはインスタンスの重複がない排他的サブタイプとインスタンスが重複する共通的サブタイプがある。スーパタイプはサブタイプを識別するための属性を持つが、これをカテゴリ識別子(IDEFIXでの呼び方)あるいはサブタイプ識別子という。

(3)E-Rモデルから関係モデルへの変換

E-Rモデルなど外部キーは含まれないが、関係モデルにおいて、二つの関係の間に1対1関連や1対多関連がある場合は、これを主キーと外部キーによる参照関係で表現しなければならない