web-dev-qa-db-ja.com

正規化されたデータベース

データベースが正規化されすぎていることをどのように判断できますか?例:従業員用のデータベースがあります。関連する次の表は次のとおりです。

ユーザー-電子メール、パスワード、companyIdが含まれています

プロファイル-従業員のプロファイル(名、姓、住所)

グループ-部門リスト

会社-会社のリスト

ポジション-ポジションのリスト

従業員-ID番号、身長、体重、契約情報などの従業員情報。

1
mateeyow

まず、壊れていない場合は、修正しないでください。システムの速度について誰も不満を言っていない場合は、そのままにしておきます。他のことに時間とお金を費やします。

第二に、いいえ、私は過度に正規化することは可能ではないと思います。つまり、アプリケーションが必要とするよりも多くの時間を正規化プロセスに費やすことができると思いますが、そうするのに数十、数十、数十時間を費やさない限り、時間は本当に無駄になるとは思いません。 3番目の正規形に到達する時間は、間違いなく無駄になることはありません。

私の(確かに限られた)経験では、問題は通常、正規化不足であり、「怠惰」としても知られています。データベース設計者は、それがスピードの目的であると主張することが多く、「非正規化」という用語を聖なるマントラのように投げかけますが、よく調べてみると、実際に行ったのは半分の仕事だけです。

非正規化は、「特定の正規形に到達する前に停止する」ことではありません。それは、「特定の形式(通常は3NFまたはBCNF)に到達し、十分に文書化され、十分にベンチマークされた理由で、その正規化の一部を元に戻す」ことです。

リンク

Tony Davis、 過剰正規化の神話

Louis Davidson、 過度に正規化できますか?

2