Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


5.2.6 表の正規化【ローストア表】

表をローストア表として定義する場合は,表の正規化を検討してください。

表中の重複するデータを別表に移動することを,表の正規化といいます。表の格納効率や処理効率を向上させるために,表の正規化を行ってください。表の正規化を繰り返し行うことで,複雑なデータベースを最適な形にできます。

なお,表中に重複データが多く存在する場合は,表に配列型の列を定義することも検討してください。詳細については,「5.2.13 配列型の列の定義【カラムストア表】」を参照してください。

〈この項の構成〉

(1) 表の格納効率を向上させる場合

1つの表に同じような情報を持つ列が複数ある場合は,この表を複数の表に分けて,それぞれの表に同じような情報を持つ列が1つだけになるように正規化します。これによって,表に対するデータの格納効率が向上します。

表に同じような情報を持つ列が複数ある場合の正規化を次の図に示します。

図5‒3 表に同じような情報を持つ列が複数ある場合の正規化の例

[図データ]

[説明]

正規化前のSTOCK表のPCODE列とPNAME列,PCODE列とPRICE列はそれぞれ1対1で対応しているため,それぞれの列の情報は冗長になっています。このような場合は,STOCK表から,PCODE列,PNAME列とPRICE列で構成されるPRODUCT表をほかに作成します。

このとき,PRODUCT表では,PCODE列,PNAME列およびPRICE列に重複した情報を持たないようにします。

(2) アクセス頻度の高い列と低い列がある場合

1つの表に,アクセス頻度が高いと考えられる列と,アクセス頻度が低いと考えられる列がある場合は,この表をアクセス頻度が高い列で構成した表と,アクセス頻度が低い列で構成した表に正規化します。

アクセス頻度が高い列と低い列がある場合の正規化の例を次の図に示します。

図5‒4 アクセス頻度が高い列と低い列がある場合の正規化の例

[図データ]

[説明]

正規化前のSTOCK表は,アクセス頻度の高い列(PNO列,およびQUANTITY列)と,アクセス頻度の低い列(PNAME列,およびPRICE列)が混在しています。このような場合は,STOCK表をアクセス頻度の高い列を集めた表(STOCK表)と,アクセス頻度の低い列を集めた表(PRODUCT表)の2つの表に正規化します。

これによって,全体としての処理効率が向上します。