ソースデータにアクセスせずにデータベースを正規化しますか?


8

大量の関連データを扱う新しい役割を開始しました。このすべてのデータのソースは、アクセスできないデータベースから抽出されたさまざまなExcelダンプです。この役割を担当する以前の人物は、数十個のExcelファイルを使用して、これらのデータファイルを収集し、操作し、レポートを作成しました。

ダンプをAccessデータベースに移動し始めました。Excelデータの多くが関連しており、おそらく正規化されているはずです。私が現在行っていることは、すべてのデータダンプのテーブルを作成し、それらをAccessにインポートし、多数のクエリを使用して、数十のデータ操作とレポートを複製することです。

私の唯一のソースが倉庫からのExcelダンプである場合、データを正規化することにまだ利点がありますか?

ダンプの送信方法の形式を変更できない場合、データを正規化するにはどうすればよいですか?

さらに、私の計画(予算によって異なります)はAccessからMS SQLデータベースに移行することです。


4
通常、非トランザクションであり、レポート作成にのみ使用されるデータを正規化する必要はありません。データがデータウェアハウスから出てくる場合、彼らはすでにあなたのために大変な仕事をしました。Accessに読み込み、クエリを実行するだけです。
HardCode、2013年

明確にするために、Excelダンプには生データが含まれていますか、それとも事前集計/レポートデータですか?データソースは、ある種のベンダーエクスポートからのものですか(つまり、関係するデータ構造を設計した人と通信できますか)?
Jon Seigel 2013年

Excelダンプはベンダーまたは自社のデータウェアハウスのいずれかからのものであるため、生データ、または最小限の変換(例:0/1の「はい/いいえ」への変更、またはアカウントコードにマッピングされたアカウントコード)の生データです。データ構造を設計したが、どのように設計されたのか分からない人とコミュニケーションをとることができます。状況を説明するために、私はDBAではありませんが、予算と政治的制約を考慮して、チームに最適なソリューションを見つけようとしています。
pedram 2013年

回答:


6

はい、データの正規化には、それを達成および維持するための作業を行う意思がある場合、大きなメリットがあります。正規化の2つの基本的な利点は次のとおりです。

  • データの整合性
  • クエリの柔軟性

正規化の簡単な方法は、人、場所、物、概念、またはイベントごとにテーブルを作成することです。これにより、データベース内の1か所だけに、興味のある各人、場所、物、概念、またはイベントのそれぞれの特性があります。データ整合性の利点は、データを挿入および更新するときに得られます。正規化したので、データベース全体の多くの場所に同じ特性の冗長コピーがなく、それぞれが異なる値を持っているため、更新して同期を保つことを忘れないでください。次に、データの有効性を確認するためにデータを挿入または更新するときにプログラムチェックをプログラムするデータベース内の場所は1つだけです。データは多数のExcelスプレッドシートから取得されるため、データを正規化すると、負荷にデータ整合性チェックを実装して、分析が正確なデータに基づいていることを確認できます。クエリの柔軟性の利点は、データを読み取って分析する場合に得られます。データを正規化したので、特定の質問に回答するために必要なものだけを含め、回答したいデータに関する質問に基づいて柔軟な方法でテーブルを接続できます。次に、これにより、データベースは、質問に関連しないデータを含むすべてのデータを非正規化テーブルでスキャンする必要があった場合よりもはるかに速く質問への回答を返すことができます。データを正規化したので、特定の質問に回答するために必要なものだけを含め、回答したいデータに関する質問に基づいて柔軟な方法でテーブルを接続できます。次に、これにより、データベースは、質問に関連しないデータを含むすべてのデータを非正規化テーブルでスキャンする必要があった場合よりもはるかに速く質問への回答を返すことができます。データを正規化したので、特定の質問に回答するために必要なものだけを含め、回答したいデータに関する質問に基づいて柔軟な方法でテーブルを接続できます。次に、これにより、データベースは、質問に関係のないデータを含むすべてのデータを非正規化テーブルでスキャンする必要があった場合よりもはるかに速く質問への回答を返すことができます。

Accessは単純化されたDBMSであり、クエリを記述して正規化されたデータの利点を活用できるようにする基本的なSQLプロセッサが含まれています。最終的にフル機能のDBMSであるSQL Serverに移行する場合、データを正規化すると移行が容易になり、SQL Serverの全機能とSQLの非常に豊富な実装を利用できるようになります。

最初に述べたように、これらの利点を実現するには、事前のプログラミングを行って、さまざまなExcelダンプから受け取ったデータを変換し、それらのスプレッドシートの行と列を正規化されたテーブルにマップする必要があります。これは簡単な演習ではありませんが、Accessプログラミングを使用して実行できます。1つのアプローチは、ソースのようにデータを複製するテーブルを作成し、そこにデータをロードすることです。これらはステージとして知られていますテーブル。Accessテーブルに正規化されていないデータがあると、SQLを使用してアクセスコードをより簡単に記述して、それらのステージテーブルからデータを抽出し、正規化し、データ品質の問題を特定できます(たとえば、2つの異なるExcelダンプに同じ特性があるはずです同じ値ですが、そうではありません)、正規化されたテーブルにロードします。これは、サブジェクトエリアベースのデータウェアハウスで非常に一般的な非正規化ソースからのデータを正規化する一般的な方法です。

高品質の正規化されたデータがアクセスデータベースにあるとしたら、この追加レベルの努力はそれだけの価値があることがわかります。データの質が悪い例を示すと、消費者はあなたが本当のデータの専門家であることがわかり、ソースで修正できるようにその事実を発見しました。同様に、非常に異なる方法でデータを分析する新しいレポートを求められた場合、SQLを使用して新しいレポートをすばやく作成し、元々予期されていなかったこの非常に異なる方法で正規化されたテーブルのデータを組み合わせることができます。彼らはあなたがこれを素早く簡単に行うことができることに非常に感動します!

これが、正規化がなぜあなたにとって有益であるかを説明する助けとなることを願っています。


どうもありがとうございました!この混乱を一掃するために前もって努力することを私は確信している美しい答え。データベースの正規化やその他の重要な概念のベストプラクティスについて読むための推奨書籍やその他の情報源はありますか。
pedram 2013年

3
お役に立てて嬉しいです。一般的なデータベースの設計と正規化に関する適切なリンクを以下に示します-sqa.org.uk/e-learning/MDBS01CD/page_01.htm。これは物事をシンプルに保ち、私が見た多くの例を理解するのが最も簡単であるため、これはかなり良いことです。特にSQL Serverに移行する可能性があるので、良い本はLouis Davidsonの「Pro SQL Server 2012 Relational Database Design and Implementation」です。この本には、正規化に加えてベストプラクティスが含まれ、SQL Serverの例が示されています。ステージングについては、Ralph Kimballによる「The Data Warehouse ETL Toolkit」をチェックしてください。幸運を!
トッドエベレット2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.