18

私は現在、データの非常に大きな割合が一時的なものであるデータベースを作成しようとしています。これを行うための多くのテクニック(ほとんどは6nfの正規化を含む)を読んだ後、アンカーモデリングに遭遇しました。

私が開発していたスキーマは、特にユースケース(時間データ+既知の未知数)が非常に似ているため、アンカーモデリングモデルに非常に似ていたため、完全に採用したいと思っています。

私が抱えている2つの最大の問題は、このアプローチの欠点を詳しく説明しているものが見つからないことと、戦争の物語や落とし穴の制作にこのアプローチを使用している組織への言及が見つからないことです。

ここにいる誰かが、いくつかのネガティブ(ポジティブは研究論文とそのサイトで非常によく宣伝されているため)と、それを本番環境で使用した経験について簡単に説明するのに十分な知識があるかどうか疑問に思います。

4

5 に答える 5

16

anchormodeling.comを参照してください。

ここで私が知っているいくつかのポイントがあります

  1. DB オブジェクトの数は手動で管理するには多すぎるため、常にデザイナーを使用してスキーマを進化させてください。

  2. 現在、デザイナーは MS SQL Server を完全にサポートしているため、常にコードを移植する必要がある場合は、ターゲット DB が完全にサポートされるまで待つことをお勧めします。ドロップダウンボックスにOracleがあることは知っていますが...

  3. 開発者がそれを理解することを期待 (または要求) しないでください。開発者は 5NF ビューを介してモデルにアクセスする必要があります。これは良いことです。問題は、テーブルがビューの (代わりに) トリガーを介してロードされることです。これは、パフォーマンスの問題である場合もあれば、そうでない場合もあります。

  4. (まだ) 自動生成されていない追加のメンテナンス プロシージャを (一時的な属性ごとに) 記述する必要がある場合があることを想定してください。たとえば、2 つの連続する時間イベントで同じ ID の同じ値のレコードを削除するために、時間属性のプルーニング手順が必要になることがよくあります。

  5. 生成されたビューとビューに対するクエリは適切に解決されます。おそらく、今後作成するものもすべてそうなるでしょう。ただし、「他の人」は、views-over-views-over-views でクエリを作成します。これは、常にうまく解決するとは限りません。そのため、通常よりも多くのクエリをポリシングする必要があると考えてください。

悲しいことに、私は最近、このアプローチを使用して倉庫のセクションをリファクタリングしましたが、それは魅力的に機能しました。確かに、ウェアハウスには、ここで概説した問題のほとんどはありません。

デモシステムを作成し、テスト、テスト、テスト...、特にポイント3-トリガーを介したロードが不可欠であることをお勧めします。

于 2012-05-06T15:39:12.943 に答える
8

上記のポイント番号4に関して。言い換え制御はほぼ完了しているため、時間の経過とともに 2 つの連続した同一の値を防ぐことができます。

一般的なコメントとして、結合は必ずしも悪いことではありません。読む:結合が良い理由.

アンカー モデリングにおける 6NF の大きな利点の 1 つは、非破壊的なスキーマの進化です。つまり、データベース モデルの以前のバージョンはすべて、現在のモデルのサブセットとして使用できます。また、変更はスキーマの拡張機能 (新しいテーブル) によって表されるため、データベースのアップグレードはほぼ瞬時に行われ、オンラインで安全に行うことができます (実稼働環境であっても)。この利点は、5NF では失われます。

于 2012-05-21T09:40:41.980 に答える
5

私はそれに関する論文を読んだことはありませんが、6NF に基づいているため、6NF に続くあらゆる問題に悩まされると思います。

6NF では、各テーブルが候補キーと 1 つ以下の非キー列で構成される必要があります。したがって、最悪の場合、10 列の結果セットを生成するには 9 つの結合が必要になります。ただし、たとえば、5NF にある 200 個のテーブル、BCNF にある 30 個のテーブル、および 6NF にある 5 個だけのテーブルを使用するデータベースを設計することもできます。(すべてのテーブルを 6NF に配置するように見えるアンカー モデリング自体ではなくなると思いますが、それについては間違っている可能性があります。)

神話上の人月は、ここでも関連しています。

したがって、管理上の問題は、パイロット システムを構築してそれを破棄するかどうかではありません。あなたはそれをします。唯一の問題は、使い捨てを事前に計画するか、それとも顧客に使い捨てを提供することを約束するかです.

フレッド・ブルックス・ジュニア著『The Mythical Man-Month』、116 ページ。

予想される最悪のケースをテストするためのプロトタイプをどれだけ安く構築できますか?

于 2012-05-04T22:59:23.327 に答える