DDBMSのコンテキストでは、垂直フラグメンテーションと水平フラグメンテーションの違いは何ですか?
関係の拡張が垂直方向の断片化のために断片化され、意図の断片化が水平方向の断片化であるようなものですか?
学生の関係があるとします。
関係Studentを2つのセット(set1とset2と呼びます)に分割し、Studentの属性の半分がset1に、半分がset2にあるようにします。リレーションシップは列に沿って断片化されるため、これは「垂直断片化」と呼ばれます(ページを垂直に引き裂くのに似ています)。元の関係は、すべてのセットの自然な結合を取得することによって取得されます。自然結合には、すべてのセットに共通の属性が少なくとも1つ必要です(通常は主キーです)。
しかし、リレーションが分割され、行のサブセット(ここですべての属性が行に存在する)がsite1に存在する場合(たとえば)、別のサブセットがsite2に存在するなど、これは「水平断片化」と呼ばれます。元の関係は、すべてのセットの和集合を取ることによって取得されます。それはページを水平に引き裂くようなものです。
明らかなように、これは分散DBMSのコンテキストです。
この関係があるとしましょう
customer_id | Name | Area | Payment Type | Sex
1 | Bob | London | Credit card | Male
2 | Mike | Manchester | Cash | Male
3 | Ruby | London | Cash | Female
フラグメント1
customer_id | Name | Area | Payment Type | Sex
1 | Bob | London | Credit card | Male
2 | Mike | Manchester | Cash | Male
フラグメント2
customer_id | Name | Area | Payment Type | Sex
3 | Ruby | London | Cash | Female
フラグメント1
customer_id | Name | Area | Sex
1 | Bob | London | Male
2 | Mike | Manchester | Male
3 | Ruby | London Female
フラグメント2
customer_id | Payment Type
1 | Credit card
2 | Cash
3 | Cash
垂直断片化は、分散データベースにのみ必要です。リレーションRの1つにいくつかの属性があるとします。これらの属性の一部はR1で構成され、その他はR2で構成されます。次に、ページを垂直に結合します。これは垂直フラグメンテーションと呼ばれます。
データの断片化は、分散データベース管理システム(DDBMS)の重要な機能ですHorizontal Fragmentationは、テーブルを水平方向にタプルまたは行に分割します。たとえば、1000個のレコードを持つCOMPANYテーブルは、各フラグメントが100個の一意のレコードを持つ10個のフラグメントに水平方向にフラグメント化できます。
Vertical Fragmentationは、テーブルをsetまたはsiteとして知られる列に断片化します。すべてのサイトには、主キー属性列などの共通の列が少なくとも1つ必要です。 (必要なときに断片化されたサイトを、共通列を使用して(親)テーブル全体に再び形成できるようにするため)。たとえば、ENO(PRIMARY KEY)、ENAME、ADDRESS、EMAIL&SALARYなどの属性を持つEMPLOYEEテーブル。このテーブルを、site1やsite2などの2つのサイトに垂直に断片化します。 site1の列はENO、ENAMEおよびADDRESSです。 site2の列はENO、EMAILおよびSALARYです。
基本的に水平フラグメンテーションは、行ごとにテーブルを分割します。垂直フラグメンテーションの場合、テーブルは列ごとに分割されます。
水平フラグメンテーションテーブルでは、前と同じままです。行のみが分割されます。垂直フラグメンテーションでは、1つのテーブルが2つ以上のテーブルに分割されます。
水平フラグメンテーションは、テーブルを行ごとに分割します。キー列と非キー列の関係が同じであるという点で、垂直フラグメンテーションとは異なります。テーブルの内容はキー値によって異なります。
水平断片化:たとえば、会社は各部門に独自のデータを維持することを望んでいます。この例では、各部門のDepartmentテーブルには1行しかなく、他のテーブルには部門の従業員のデータのみが含まれます。
水平フラグメンテーションは、リレーションを行と呼ばれるタプルに分割します
垂直フラグメンテーションは、リレーションを列と呼ばれる属性に分割します。
アプリケーションビューの要件に応じて、リレーションを水平または垂直に分割できます。
アプリケーションビューに基づいた断片化および正確性ルールの程度
水平フラグメンテーションの簡単な言葉では、テーブルをタプルに分割します。つまり、行のテーブルの構造は1つまたは2つの行を分割するだけで同じままです。垂直断片化では、元のテーブルからモアテーブルを作成する属性列に関してテーブルを分割します