非正規化は、以前に正規化されたデータベースでパフォーマンスを向上させるために使用される戦略です。コンピューティングにおいて、非正規化とは、冗長なデータのコピーを追加したり、データをグループ化したりすることで、書き込みパフォーマンスをいくらか犠牲にして、データベースの読み取りパフォーマンスを改善しようとするプロセスです。 [1] [2]これは、非常に多くの読み取り操作を実行する必要があるリレーショナルデータベースソフトウェアのパフォーマンスまたはスケーラビリティによって動機付けられることがよくあります。非正規化は、非正規化の利点が完全に実現されるのは、それ以外の点では正規化されたデータモデル上のみであるという点で、 非正規化形式とは異なります。
実装
正規化された設計では、多くの場合、異なるが関連する情報を別の論理テーブル (リレーションと呼ばれる) に「保存」します。これらのリレーションが物理的に別のディスク ファイルとして保存されている場合、複数のリレーションから情報を取得するデータベースクエリ(結合操作) の実行に時間がかかることがあります。結合されているリレーションが多い場合は、非常に遅くなる可能性があります。非正規化によってこれに対処するには、次の 2 つの方法があります。
- 「DBMSサポート」:データベース管理システムはバックグラウンドで冗長コピーを保存し、DBMSソフトウェアによって一貫性が保たれます。
- 「DBA実装」:データベース管理者(または設計者)は、論理データ設計を非正規化することで問題を回避します。
DBMS サポート
このアプローチにより、データベース管理者は論理設計を正規化したまま、データベース管理システム(DBMS) が追加の冗長情報をディスクに保存してクエリ応答を最適化できるようになります。この場合、冗長コピーの一貫性を保つのは DBMS ソフトウェアの責任です。この方法は、多くの場合、SQLでインデックス ビュー ( Microsoft SQL Server ) またはマテリアライズド ビュー( Oracle、PostgreSQL ) として実装されます。ビューは、他の要素の中でも、クエリに便利な形式で情報を表すことができ、インデックスにより、ビューに対するクエリが物理的に最適化されます。
DBA実装
このアプローチでは、データベース管理者または設計者は、論理データ設計を非正規化する必要があります。注意すれば、クエリ応答において同様の改善を達成できますが、コストがかかります。非正規化されたデータベースが不整合にならないようにすることがデータベース設計者の責任になるからです。これは、データベース内に制約と呼ばれるルールを作成することによって行われます。制約は、情報の冗長コピーをどのように同期させておく必要があるかを指定しますが、これにより、非正規化手順が簡単に無意味になる可能性があります。このアプローチを危険なものにしているのは、データベース設計の論理的な複雑さが増し、追加の制約によってさらに複雑になることです。さらに、制約によってトレードオフが生じ、読み取り (SQL の場合) が高速化される一方で、書き込み ( 、、および)SELECTが遅くなります。つまり、書き込み負荷が大きい非正規化データベースは、機能的に同等の正規化されたデータベースよりもパフォーマンスが低下する可能性があります。
INSERTUPDATEDELETE
非正規化データと正規化されていないデータ
非正規化されたデータ モデルは、正規化されていないデータ モデルと同じではありません。非正規化は、十分なレベルの正規化が行われ、設計に固有の異常に対処するために必要な制約やルールが作成された後にのみ行う必要があります。たとえば、すべての関係は第 3 正規形であり、結合依存関係や複数値の依存関係を持つ関係は適切に処理されます。
非正規化手法の例には次のものがあります。
- 1対多の関係における「多」要素の数を「1」の関係の属性として「保存」する
- 結合される別のリレーションからリレーションに属性を追加する
- スタースキーマは、ファクトディメンションモデルとも呼ばれ、スノーフレークスキーマに拡張されています。
- 事前構築された要約またはOLAP キューブ
ストレージ、処理能力、帯域幅の 3 つすべてがあらゆるレベルで継続的に劇的に増加したことで、データベースの非正規化は、珍しいまたは拡張的な手法から、一般的な、さらには標準へと移行しました。[いつ? ]たとえば、非正規化の具体的な欠点の 1 つは、単純に「より多くのストレージを使用する」(つまり、データベース内の列が文字通りより多く使用される) ことです。本当に巨大なシステムを除いて、ストレージ要件の増加は 2020 年代には比較的小さな問題と見なされています。
参照
参考文献
- ^ GL Sanders および SK Shin。RDBMS のパフォーマンスに対する非正規化の影響。2001 年 1 月の HICSS カンファレンスの議事録。
- ^ SK ShinとGL Sanders。データウェアハウスからのデータ取得のための非正規化戦略。意思決定支援システム、42(1):267-282、2006年10月。
