データモデリング
汎用データモデルは、汎用的な実体の集合から構成される。汎用的な実体としては、「事物インスタンス」、「クラス」、「関連」などがあり、さらにおそらくはこうした実体に多くのサブタイプが存在するであろう。
あらゆる事物インスタンスは、「事物インスタンス」と呼ばれる汎用的な実体のインスタンスであるか、そのサブタイプのインスタンスである。
あらゆる事物インスタンスは、事物の種類 (「クラス」) により、明示的な分類関連を使うことで、明示的に分類される。
分類のために使われる実体は、他の種類の実体とは別に、「クラス」という実体もしくはそのサブタイプの実体の標準的なインスタンスとして、定義される。「クラス」のサブタイプとしては「関連クラス」などがある。こうした標準的なクラス群は、「参照データ」と呼ばれることが多い。すなわち、領域に固有の知識は、このような標準的なクラス群のインスタンスとして表現することが可能である、ということである。例えば、自動車、車輪、建物、船、温度、長さなどの概念は標準的なインスタンスである。また、「—から構成される」や「—に参加する」のような標準的な関連の実体もまた、標準的なインスタンスである。
こうした汎用データモデルによるデータモデリングの方法を採ることで、標準的な実体や標準的な関係型をインスタンスとして追加することができるようになる。 そしてデータモデルに柔軟性をもたせ、アプリケーションソフトウェアのスコープの変更があったときにも、データモデルの変更を抑制することができる。
汎用データモデルは、次の規則に従っている。
属性は、他の実体への関連を表現するものとして扱われる。
データモデルは、対象とする領域におけるデータの構造を記述し、また結果としてその領域自体の基礎となる構造を記述する。 これは、データモデルは、対象とする領域のための専用の人工言語の文法を、実際に規定しているということを意味する。
データモデルは、実体のクラス (事物の種類) の集合を表現する。 対象となる組織は、実体クラスの集合について、情報と情報の属性と実体間の関連と属性間の関連を、保持して管理しようと考える。 データモデルは、データをコンピュータシステムで表現する方法とはあまり関係ない形で、データを組織化して記述する。 データモデルによって表現される実体は、有形物の実体である場合がある。 しかしそうした具象的な実体クラスを含むデータモデルは、時を経ると、モデルが変更される傾向がある。 堅牢なデータモデルでは、そうした実体の抽象を同定することが多い。 例えば、あるデータモデルでは「人物」という名前の実体クラスを含んでいるかもしれない。 そのデータモデルにおける「人物」の実体は、ある組織と相互作用する全ての人物を表現する。 このような抽象的な実体クラスは、多くの場合、「売り手」や「従業員」という名前の具象的な実体クラスと比べて、適切である。 なおここで、「売り手」や「従業員」の実体クラスは、そうした人々によって行われる特定の役割を同定している。
一部の人々は、データモデルを設計することは、トランザクションデータと参照用データを区別するために役立つと、考えている。