データベースの正規化はまだ「重要」ですか?
データベースのコースで勉強したとき、すべてのレベルの正規化を教えられ、常にそれを行う必要があると言われました。
NoSQLの動きが活発化する今、ノーマライゼーションはもはややるべきことではないように思われますか?
データベースの正規化はまだ「重要」ですか?
データベースのコースで勉強したとき、すべてのレベルの正規化を教えられ、常にそれを行う必要があると言われました。
NoSQLの動きが活発化する今、ノーマライゼーションはもはややるべきことではないように思われますか?
データベースを使用しているアプリケーションのタイプによって異なります。
OLTP アプリ (主にデータ入力、多くの INSERT、UPDATE、DELETE、および SELECT) の場合、正規化は一般的に良いことです。
OLAP およびレポート アプリの場合、正規化は役に立ちません。SELECT クエリは、非正規化されたスキーマに対してはるかに高速に実行されます。これは、ビューで実現できます。
また、非常によくある同様の質問で役立つ情報を見つけることもできます。
データベースに関して言えば、「正確さのために正規化し、パフォーマンスのために非正規化する」というのは正しいマントラですか?
NoSQLは特効薬ではありません。NoSQL は特定の状況にはるかに適したテクノロジにすぎません。リレーショナル形式のデータの場合、RDBMS がすぐになくなることはありません。
経験則として、「JOIN は処理能力が高くつく」というものがあります。大小のプロジェクトのデータベースを作成するときに使用します。ユーザー名、アドレスなどのデータを保持するテーブルは、最近アクセスされる頻度が低いため、常に正規化する必要があります。近年、web2.0 のデータ、アプリ、モバイル サービスなどは実際には異なる種類のデータを取得しており、メモリ コードの量がさらに少ないため、処理能力を節約してそれらすべてを同じ「テーブル」に保持することができます。それを正常化します。
yes, for a transactional system always normalise, or chances are you're going to have major headaches further down the road. For a database that will be used for reporting/OLAP denormalising the schema can be very helpful.