データの正規化と保存
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/02/11 03:45 UTC 版)
「スノーフレークスキーマ」の記事における「データの正規化と保存」の解説
正規化は、データを分割して、一般的に繰り返されるデータのグループを新しいテーブルに移動することにより、冗長性(重複)を回避する。したがって、正規化は、特定のクエリを実行するために結合する必要のあるテーブルの数を増やす傾向があるが、データを保持するために必要なスペースと、データが変更された場合に更新する必要がある場所の数は減る。 ストレージスペースの観点から、ディメンションテーブルは通常、ファクトテーブルと比較して小さい。これは、スタースキーマのスノーフレークスキーマに対しての潜在的なストレージスペースの利点を打ち消すことがよくある。例:220か国の300店舗で100万件の販売トランザクションを行うと、スタースキーマに1,000,300レコードが生成される(ファクトテーブルに1,000,000レコード、ディメンションテーブルに300レコードがあり、各国はその国の各ショップに対して明示的にリストアップされる)。国テーブルを参照する国キーを持つより正規化されたスノーフレークスキーマは、同じ1,000,000レコードのファクトテーブル、220レコードのある国テーブルへの参照を持つ300レコードのショップテーブルで構成される。この場合、スタースキーマはさらに非正規化されるが、数またはレコードを(無視できる)係数〜0.9998(= [1,000,000 +300]を[1,000,000+ 300 + 220]で割ったもの)だけ減らすことになる。 一部のデータベース開発者は、スタースキーマをシミュレートするために必要な結合の多くを実行するビューをその上に構築して、基盤となるスノーフレークスキーマを作成することで妥協する。これにより、スタースキーマが提供するクエリの容易さを備えたディメンションの正規化によって達成されるストレージの利点が提供される。そのトレードオフは、サーバーに基礎となる結合を自動的に実行するように要求すると、クエリ時にパフォーマンスが低下するだけでなく、特定のクエリを実行するために必要でない可能性のあるテーブルへの追加の結合が発生する可能性があることである。
※この「データの正規化と保存」の解説は、「スノーフレークスキーマ」の解説の一部です。
「データの正規化と保存」を含む「スノーフレークスキーマ」の記事については、「スノーフレークスキーマ」の概要を参照ください。
- データの正規化と保存のページへのリンク