汎化とは、特定のエンティティー (またはサブタイプ) をより一般的なエンティティー (またはスーパータイプ) に関連付ける 2 項関係です。 汎化セットは、スーパータイプをサブタイプに分割する方法を記述する汎化の、特定のグループ化を定義します。 それぞれの汎化セットは、定義セット (または判別プログラム) によって定義されます。例えば、スーパータイプのエンティティーを「Vehicles」とし、これを「Terrain」タイプと「Propulsion」タイプに基づいて (つまりこれらを判別プログラムとして) 2 つのサブタイプの分類に分割することにします。この汎化セットは 2 つの汎化「Land Vehicles」と「Air Vehicles」に分割されます。これは「Terrain」判別プログラムによって定義されます。
それぞれの汎化セットは、汎化セットのスーパータイプ・エンティティーから得られる定義属性によって定義されます。
ここで、車両製造者用のデータ・モデラーの立場で考えることにします。現在、車両の売上と傾向を追跡するためのデータ・モデルに取り組んでいます。 売上、顧客、および従業員のデータに加え、全社内で販売する種々の車両のモデル化も行います。この企業では自動車に加え、航空機も販売しているので、それに応じたデータをモデル化する必要があります。
エンティティー「Vehicles」には、自動車、航空機、および船舶に関する情報をモデル化する多くの属性が含まれます。輸送手段データの追跡を容易にするため、輸送手段を 3 つの判別プログラム (陸上車両、航空機、船舶) にサブタイプ化する汎化を作成することにします。これらのセットは「Terrain」判別プログラムに基づいています。 「Propulsion」判別プログラムに基づくもう一方のサブタイプには、ガソリン車、電気自動車などがあります。ダイアグラム・エディターを使用して、汎化セットを作成します。ここで、定義属性として「Vehicles」エンティティーの「Type」属性を使用します。
「Vehicles」エンティティーは、この汎化セットのスーパータイプ・エンティティーです。ここでは 2 つの汎化セット「TerrainSet」と「PropulsionSet」を持つことにします。これらはスーパータイプ・エンティティー「Vehicles」のサブタイプです。そして、汎化セットの「プロパティー」ビューを使用して、定義属性として「タイプ」属性を定義します。