スタースキーマでは、テーブル名の前にディメンションまたはファクトテーブルを付けるのが一般的ですか?列名の前にテーブル名を付けることも一般的な方法ですか?
私の通常のOLTPデータベースでは、これを行いませんが、スタースキーマでこのタイプの名前付けの例を確認しています。
データウェアハウススキーマとOLTPスキーマに異なる命名基準のセットを用意することは理にかなっていますか?
ありがとうドワイト
スタースキーマでは、テーブル名の前にディメンションまたはファクトテーブルを付けるのが一般的ですか?列名の前にテーブル名を付けることも一般的な方法ですか?
私の通常のOLTPデータベースでは、これを行いませんが、スタースキーマでこのタイプの名前付けの例を確認しています。
データウェアハウススキーマとOLTPスキーマに異なる命名基準のセットを用意することは理にかなっていますか?
ありがとうドワイト
テーブル名:
列名:
ウェアハウスと OLTP の命名:
tablename_column 命名規則は、データベース内のすべてのフィールドが一意であることを保証するために使用されますが、一意の名前付けの標準/要件がある場合に使用できます (一部のクライアント IT 部門が要求します)。
Product.Name => Product.Product_Name
Part.Name => Part.Part_Name
名前がどこから来るのかについてのあいまいさを取り除きます。
テーブルに接頭辞を付けないことを好みます (それが企業のローカル基準に違反しないと仮定して)。これは、今日はテーブルである可能性がありますが、明日ビューまたは分割ビューとして再実装される可能性がありますが、同じスキーマで、間違った接頭辞が付いたオブジェクトを受け入れるか、全員の参照を新しい名前に更新するか、シノニムを作成する必要があります。
一貫性を持つことが勝者になる傾向がありますが、すべての DBA / 開発者が独自のバージョンを実装すると混乱するため、会社の標準を見つけて適用する傾向があります。
DW では、列に「長い名前」を付けるのが一般的です。これらの列は最終的にレポート (クエリ結果) の列ヘッダーになり、ビジネス ユーザーにとって使いやすいはずだからです。そのため、両方とも「名前」として表示される代わりにProduct.Name
(Customer.Name
エイリアスが使用されていない場合)、使用するのが一般的であり、レポート (クエリ) の一番上の行に星印Product.ProductName
をCustomer.CustomerName
付けると「ProductName」および「CustomerName」として表示されます。結合によって平坦化されます。DB で許可されている場合、キャメルケースや空白の代わりにアンダースコアが頻繁に使用されます。大規模な DW では、スキーマ内でのテーブルの役割が明確でない可能性がある場合に、接頭辞 dim と fact を使用することをお勧めします。私は実際にそれらが好きです。
ケン、私はあなたの [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) を付けることをお勧めします。 ) サフィックス。