推奨されます, 2021

エディターズチョイス

DBMSにおける汎化と特殊化の違い

一般化と特殊化はどちらもオブジェクト指向テクノロジではより一般的であり、 データベースでも同じ機能を使用しています。 一般化は、相違を無視し、下位のエンティティ、子クラス、またはリレーション(DBMSのテーブル)間の類似性を認識して上位のエンティティを形成するときに発生します。 しかし、スペシャライゼーションに移ったときには、上位エンティティから下位エンティティを作成することで、下位エンティティ間の違いがわかりました。

汎化と特殊化は互いに正反対です。 さらに、一般化と特殊化の違いを比較表を使って説明します。

比較表

比較基準一般化特化
基本それはボトムアップ方式で進みます。それはトップダウン方式で進みます。
関数汎化は、複数のエンティティの共通の機能を抽出して新しいエンティティを形成します。スペシャライゼーションはエンティティを分割して、分割エンティティの機能を継承する複数の新しいエンティティを形成します。
実体上位レベルのエンティティは下位レベルのエンティティを持つ必要があります。上位レベルのエンティティに下位レベルのエンティティがない場合があります。
サイズ汎化はスキーマのサイズを縮小します。特殊化はスキーマのサイズを大きくします。
応用エンティティのグループ上の汎化エンティティ。特殊化は単一のエンティティに適用されます。
結果汎化により、複数のエンティティから単一のエンティティが形成されます。専門化により、単一のエンティティから複数のエンティティが形成されます。

汎化の定義

一般化 、この用語は、リレーショナルスキーマを設計する際によく使用されます。 設計がボトムアップ方式で進めば、それは一般化として取り上げられます。 スキーマを作成するために考え出されたエンティティがいくつかの同様の機能を共有している場合は、それらが組み合わされてより高レベルのエンティティを形成します。

一般化では、いくつかの下位レベルのエンティティが共通の特性を持っている場合、新しい上位レベルのエンティティを形成するためにいくつかのエンティティとさらに結合する新しい上位レベルのエンティティを形成するためにそれらがクラブされます。 一般化では、下位のエンティティなしに上位のエンティティが存在することはあり得ません。

一般化は常にエンティティのグループに適用され、概説するとスキーマのサイズが小さくなるようです。

一般化の例を議論しましょう。 私があなたにいくつかの家具を挙げるように頼むならば、それは勉強台ダイニングテーブルコンピュータテーブル肘掛け椅子折りたたみ椅子オフィスチェアダブルベッドシングルベッドと言うのが一般的ですそしてリストはそうです。

今、私達はこれらの家具を一般化します、ここでは、勉強台、ダイニングテーブル、コンピューターテーブル、すべてテーブルの一種ですので、私はこれらの実体を新しい上位実体テーブルに一般化します。 エンティティアームチェア、折りたたみチェア、オフィスチェアは、一種のチェアなので、新しい上位エンティティエンティティチェアを形成します。 エンティティダブルベッド、シングルベッドを組み合わせた、より高いレベルのエンティティベッド 。 今、私たちは3つのより高いレベルのエンティティテーブル、椅子、そしてベッドを持っています。

家具実体は、上で論じたすべての実体の一般化実体です。

専門の定義

スペシャライゼーションは、 トップダウン方式で進行する設計手順です。 特殊化は一般化とは正反対です。 専門化では、エンティティを分割して複数の下位レベルのエンティティを形成します。 これらの新しく形成された下位レベルのエンティティは、上位レベルのエンティティのいくつかの機能を継承します。

上位レベルのエンティティがそれ以上分割されない可能性があるため、下位レベルのエンティティが存在しない可能性があります。 特殊化は常に単一のエンティティに適用され、概説するとスキーマのサイズが大きくなります。

例として、特殊化について説明します。 動物というエンティティを取り、それに特殊化を適用しましょう。 実体の動物はさらに、 両生類爬虫類鳥類哺乳類など 、リストが長い場合がありますが、特殊化を説明するにはこれで十分です。

今エンティティの両生類はさらにワニワニカエルに分割することができます。エンティティの爬虫類はヘビトカゲに分割します。 実体の鳥はスズメハトオウムに分けることができます。 ほ乳類は、 トラライオンゾウにもれます。

これは、特殊化によってエンティティの数が増え、スキーマのサイズが大きくなることです。

一般化とDBMSの特殊化の主な違い

  1. 汎化と特殊化の根本的な違いは、汎化がボトムアップアプローチであるということです。 ただし、特殊化はトップダウンアプローチです。
  2. 一般化クラブは、いくつかの共通の特性を共有するすべてのエンティティを新しいエンティティを形成するために使用します。 その一方で、特殊化はエンティティをこぼして、分割されたエンティティの一部のプロパティを継承する複数の新しいエンティティを形成しました。
  3. 一般化では、上位エンティティは下位エンティティをいくつか持つ必要がありますが、特殊化では、上位エンティティに下位エンティティが存在しないことがあります。
  4. 一般化はスキーマのサイズを縮小するのに役立ちますが、特殊化はエンティティの数を増やすことでスキーマのサイズを大きくするのとは正反対です。
  5. 汎化は常にエンティティのグループに適用されますが、特殊化は常に単一のエンティティに適用されます。
  6. 汎化は単一のエンティティの形成をもたらしますが、特殊化は複数の新しいエンティティの形成をもたらします。

結論:

汎化と特殊化はどちらも設計手順であり、どちらもスキーマを設計するために同様に重要です。 どちらを使用するかは、ユーザーの要件によって異なります。

Top