2

私が知る限り、正規化はデータベースの不一致を避けるために行われます。私たちを正規化することによりB.Iデータモデルの非正規化の扱い方

  • は、データの冗長性を削減し、
  • は、データの整合性を保護します。

これは、ほとんどのOLTPデータベースが3NFにある理由です。

OLTPとは異なるデータベースがデータウェアハウスに集約されています。 (DWH、OLAP)。 DWHは非正規化されています(1FN)。DWHのメインテーブルには数百の列があるので、DWHはそのようにする必要があります。そのDWHから

我々は後でBIレポーティングツール(Cognosの、QlikViewを、BO ...)との分析を行うために使用するいくつかのデータマートを構築することができ

問題があることBIレポートのデータモデルであります正規化されていません。

レポートの冗長性とデータ整合性の問題はありませんか?

+2

データウェアハウスをデータベースではなくレポートとして考えます。また、データウェアハウスには、通常のフォームと同じ種類の異常が発生することはありません。通常、データウェアハウスには行が挿入されますが、更新や削除は行われません。 –

答えて

3

OLAPシステム(データウェアハウスなど)では、キーとなる効率のニーズは、クエリとデータ取得にあります。

したがって、更新が長くなる可能性がある場合でも、情報をより迅速に取得するために設計上の考慮事項がいくつかあります。そのようなモデルの

例では、我々は、すべてのデータが1ジョインホップ距離に格納されるような方法でデータを非正規化れるStar-Schemaあります。

トランザクションなどの重要な要素は、外部キーがディメンションを指すように大きな表(ファクト)に配置されます。

次元自体は小さく、正規化されていないデータを含むことがあります。たとえば、addressディメンションでは、通り、近所および市のデータを正規化せずに3NFに格納できます。

Star Schema example

必ず冗長性の問題(あなたが本当に各日付行ごとDay_of_Weekを保存する必要はありません)が、(ストレージは、このシナリオではボトルネックではないので)、それは重要でないためにあります。整合性を1として

- あなただけの更新プログラム(F.E. Dim_StoreState_Provinceあたりcountryの変化のあまり現実的なシナリオ)の上にそれに直面し、DWHのアップデートで私たち自身が非効率的であることができるように稀なケースです。

さらに、完全性はDB(または正規化)ではなく、ETLプロセスの設計と実装によって強制されます。

Read more on Data Warehouses modeling

+0

しかし、ここで問題となるのは、私たちがレポートに使用し、正規化されていないディメンション表であっても、レポートの完全性または冗長性の問題ではないということですか?なぜそうならない?正規化されていない小さなテーブルには何らかの相反があります。 – Enrique

+3

これらの重要なニーズに合わせて、冗長性が意識的に削減されています。そして、完全性はDBによって強制されません。スピードと分かりやすさを報告するという他の目標を達成するには、この方法が必要です。代わりに、一貫性と整合性を維持するためにETLに依存します。冗長性は、完全性と必要な領域の点で問題に過ぎません。 DWは他のものに優先します。すべてのデータに高いETLがあることを保証する非常に優れたETLを持つことができます。 – Rich

+2

冗長性の問題があります(それぞれの '' date''行に '' Day_of_Week''を格納する必要はありません)が、(このシナリオではストレージはボトルネックではないので)重要ではありません。一貫性につきましては、アップデート(製品ごとのF.E.ブランド変更)にのみ直面しており、DWHアップデートではごくまれにしかできない場合があります。 – Dimgold

2

冗長性について:Amazonで赤方偏移のようないくつかのデータウェアハウスのエンジンは、非正規化のために非常に便利であるデータ圧縮を可能にします。 100Mレコードの販売イベントのテーブルがあり、すべての販売に都市があるとします。OLTPデータ・モデルでは、salescities、それにはcity_idが接続されます。圧縮が許可されたOLAPデータモデルでは、cityという属性を圧縮したsalesテーブルを持つ方がはるかに簡単です。あなたは、テーブルを結合することなく都市別の売上を計算することができ、都市価値はエンコードされるため、多くのディスクスペースを占有しません。圧縮について

詳細情報は、Amazonのドキュメントである:データの整合性についてChoosing a Column Compression Type

:あなたは、重複データの可能性を最小限に抑え、また、このような基準に基づいて、重複の予定のチェックを実行するために、あなたのETLルーチンを設計する必要があります。

ここで、組み合わせは一意でなければならない列(人工の主キー)のリストです。

関連する問題