質問

この質問にはすでに答えがあります:

誰か論文/本などを知っていますか?データベースのパターンを文書化することですか?たとえば、一般的な経験則の 1 つは、すべてのテーブルには主キーが必要であり、そのキーは 情報コンテンツが欠けている. 。そこで、リレーショナル データベースを設計するための設計パターンに関する本を書いたり、論文を出版したりした人はいるだろうかと疑問に思いました。


@ガイウス、

それは、データベース設計者が考慮する必要がある問題です。つまり、データベース構造の安定性の可能性はどのくらいでしょうか?十分に長い視野を考えると、安定したものは何もありません。逆に言えば、十分に長い視野を考えれば、すべてが変化する可能性があります。代理キーは、最初から意味を持たなかったので、(理論上) 決してその意味を変更すべきではありません。

その特定の設計シナリオで考慮すべきもう 1 つのことは、主キーを参照するのは誰なのかということだと思います。主キーがエンドユーザーが実際に参照する必要があるものである場合、エンドユーザーが理解できるものにするのは理にかなっています。しかし、エンドユーザーが主キーを確認する必要があるケースはあまり思いつきません。通常、主キーは、DB エンジンが特定の操作を高速化できるようにするために存在します。

この質問をした当初の私の考えは、簡単に回避できるエラーを回避できるように、私よりも経験豊富なデータベース設計者によって体系化されたデータベース設計の設計パターンを見つけることでした。誰かがデータベース設計のアンチパターンを体系化したことがあれば、読むのは興味深いでしょう。

役に立ちましたか?

解決

具体的には、キーに関しては次のとおりです。私は、キーには意味がなければならないという奇妙な考えに強く反対します。一般に、私はデータベースを事実の集合であると考えています。任意の数値 (生成されたキーなど) やその他の無関係な情報を追加し始めたら、それは警告サインであるはずです。お勧めします これはジョー・セルコによる芸術作品です キーの詳細については、

より一般的な注意事項:

さまざまなビジネス向けのスキーマ設計/データ モデルの提案:デビッド C.ヘイ:データモデルのパターン:かなり古い思考の慣習ですが、それがまだ印刷されている理由があります
http://www.dorsethouse.com/books/dmp.html

あまりパターンらしくないかもしれませんが、それでも非常に良いものです。ステファン・ファロー、ピーター・ロブソン:SQL の芸術http://oreilly.com/catalog/9780596008949/

もう一つお勧めできるのは、ワディム・トロパシコ:SQL 設計パターン - SQL プログラミングのエキスパート ガイドhttp://www.rampant-books.com/book_2006_1_sql_coding_styles.htm

データモデリングに関する体系的な教科書:Graeme Simsion と Graham Witt、「データ モデリングの要点」http://www.elsevierdirect.com/product.jsp?isbn=9780126445510

もしかしたら、あなたは実際に「スタイルガイド」を探しているのかもしれません。私はその場合:ジョー・セルコ:SQL プログラミング スタイルhttp://www.elsevierdirect.com/product.jsp?isbn=9780120887972

他のヒント

E.F.の書籍コッドとC.J.最も明白な答えは日付です。私はこの本を読んだことはありませんが、著者のことはよく知っているので、おそらくかなり良い本だと思います。

データベース専門家のための応用数学 レックス・デ・ハーンとトゥーン・コッペラーズ著。

実際、経験則としては、可能な限りサロゲートではなく自然キーを使用するのが一般的だと思います...

したがって、たとえば、Invoice テーブルと InvoiceDetail テーブルがある場合、おそらく最初のテーブルの主キーとして InvoiceNumber を使用できます。これはデータ内にすでに存在しており、一意であると思われます。ただし、2 番目のテーブルについては、複合キーとして請求書番号に結合されているかどうかに関係なく、代理キーが必要になる可能性があります。

いずれにせよ、最初の質問に戻ります...hometoast のリンクから始めることができます。

-- ケビン・フェアチャイルド

正確に答えると: はい. 。「優れた」データベース設計については、膨大な量の情報が書かれています。あなたの例の経験則には確かに疑問があります。

SQL アンチパターン Bill Karwin 著は非常に読みやすく (無味乾燥ではありません)、かなり明確な言葉で、さまざまな潜在的な落とし穴、それをどのように使用するか、および物事を正しく行う方法と理由を説明しています。

ビジネス上の意味を持つ主キー (「自然キー」) を使用することには確かに利点がありますが、データベースのリファクタリングが困難になる可能性があります。 とても 難しい。特にデータベース構造が時間の経過とともに変化すると思われる理由がある場合は、注意してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top