10

スタースキーマでは、テーブル名の前にディメンションまたはファクトテーブルを付けるのが一般的ですか?列名の前にテーブル名を付けることも一般的な方法ですか?

私の通常のOLTPデータベースでは、これを行いませんが、スタースキーマでこのタイプの名前付けの例を確認しています。

データウェアハウススキーマとOLTPスキーマに異なる命名基準のセットを用意することは理にかなっていますか?

ありがとうドワイト

4

4 に答える 4

14

テーブル名:

  • 私はこの規則が好きです: [タイプ] [件名] [名前]
  • type は 'dim' または 'fact' (または集計の場合は 'facts') です。
  • ここで、サブジェクトはウェアハウス内のサブジェクト エリアです (共通の場合は「comm」、ファイアウォールの場合は「fw」、「ids」など)。
  • ここで、name は理想的には 1 つの単語の名前、または集計テーブルの場合はディメンションの省略形です
  • 例: 組織ディメンションの dim_comm_org
  • 例: スキャン ファクト テーブルの fact_scan
  • 例: fact_scan_org_sev_daily - 組織、重大度、および日レベルでグループ化されたファクト スキャンの要約テーブル

列名:

  • テーブル名全体を前に付けないでください。長すぎます。
  • 意味のある部分だけを前に付けます。これは、クエリを書いたり読んだりするときに非常に役立ちます。

ウェアハウスと OLTP の命名:

  • 2つは非常に異なります。ウェアハウスのテーブルと列の名前は、多くの場合、開発者とユーザーの両方によって読み取られる、レポートのメタデータになります。OLTP ではそれほどではありません。
  • テーブル プレフィックスは OLTP でも有用だと思いますが、事実/次元の区別ではなく、モデルのそのサブセットについて意味のあるものであることが最善だと思います。
于 2009-12-02T05:47:25.400 に答える
2

tablename_column 命名規則は、データベース内のすべてのフィールドが一意であることを保証するために使用されますが、一意の名前付けの標準/要件がある場合に使用できます (一部のクライアント IT 部門が要求します)。

Product.Name => Product.Product_Name
Part.Name => Part.Part_Name

名前がどこから来るのかについてのあいまいさを取り除きます。

テーブルに接頭辞を付けないことを好みます (それが企業のローカル基準に違反しないと仮定して)。これは、今日はテーブルである可能性がありますが、明日ビューまたは分割ビューとして再実装される可能性がありますが、同じスキーマで、間違った接頭辞が付いたオブジェクトを受け入れるか、全員の参照を新しい名前に更新するか、シノニムを作成する必要があります。

一貫性を持つことが勝者になる傾向がありますが、すべての DBA / 開発者が独自のバージョンを実装すると混乱するため、会社の標準を見つけて適用する傾向があります。

于 2009-11-11T19:27:33.843 に答える
2

DW では、列に「長い名前」を付けるのが一般的です。これらの列は最終的にレポート (クエリ結果) の列ヘッダーになり、ビジネス ユーザーにとって使いやすいはずだからです。そのため、両方とも「名前」として表示される代わりにProduct.Name(Customer.Nameエイリアスが使用されていない場合)、使用するのが一般的であり、レポート (クエリ) の一番上の行に星印Product.ProductNameCustomer.CustomerName付けると「ProductName」および「CustomerName」として表示されます。結合によって平坦化されます。DB で許可されている場合、キャメルケースや空白の代わりにアンダースコアが頻繁に使用されます。大規模な DW では、スキーマ内でのテーブルの役割が明確でない可能性がある場合に、接頭辞 dim と fact を使用することをお勧めします。私は実際にそれらが好きです。

于 2009-11-12T03:23:27.950 に答える
0

ケン、私はあなたの [type] [subject] [name] 規則が好きです。ここで、type は 'dim' または 'fact' (または集計の場合は 'facts') です。問題は、Oracle Business Intelligence リポジトリでスター スキーマ モデルを作成するときに、ベスト プラクティスでは、ディメンション テーブルとファクト テーブルに DIM_ (またはdim) および FACT (または fact_) プレフィックスを付けて、ディメンション テーブルとファクト テーブルのエイリアス名を作成することをお勧めします。エイリアス ディメンションとファクト テーブルを dim_dim[table name] または fact_fact_fact_[table_name) で読み取ることを回避するには、ディメンション テーブルに _DM (または _dm) 接尾辞を付け、ファクト テーブルに _FT (または _ft) を付けることをお勧めします。 ) サフィックス。

于 2015-07-31T14:09:32.587 に答える