24

論文/本などを知っている人はいますか。データベースのそのドキュメントパターン?たとえば、一般的な経験則の1つは、すべてのテーブルに主キーが必要であり、そのキーには情報コンテンツが含まれていない必要があるというものです。では、リレーショナルデータベースを設計するためのデザインパターンに関する本を書いたり、論文を発表したりした人はいないでしょうか。


@ガイウス、

これは、データベース設計者が検討する必要のある質問です。データベース構造の安定性はどの程度でしょうか。十分に長い期間を考えると、安定したものはありません。または、逆に言えば、十分な期間が与えられている場合、すべてが変更される可能性があります。代理キー(理論上)は、そもそも意味がなかったため、その意味を変更してはなりません。

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

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

4

6 に答える 6

10

具体的には、キーについて:キーは無意味でなければならないという奇妙な考えには強く反対します。一般的に、私はデータベースを事実の集まりと見なします。任意の数字(生成されたキーなど)やその他の無関係な情報を追加し始めるとすぐに、それは警告サインになるはずです。キーの詳細については、JoeCelkoによる芸術的な方法をお勧めします。

より一般的な注意:

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

おそらくパターンのようなものではありませんが、それでも非常に優れています:Stephane Faroult、Peter Robson:The Art of SQL http://oreilly.com/catalog/9780596008949/

私がお勧めできるもう1つのもの:Vadim Tropashko:SQLデザインパターン-SQLプログラミングのエキスパートガイド http://www.rampant-books.com/book_2006_1_sql_coding_styles.htm

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

たぶんあなたは実際に「スタイルガイド」を探していますか?その場合:Joe Celko:SQLプログラミングスタイル http://www.elsevierdirect.com/product.jsp?isbn=9780120887972

于 2008-09-04T18:48:03.143 に答える
5

EF Codd と CJ Date の本が最も明白な答えです。私はこの特定の本を読んだことはありませんが、著者についてはよく知っています。

Lexx de Haan と Toon Koppelaars によるデータベース プロフェッショナルのための応用数学。

于 2008-09-04T17:55:17.573 に答える
4

実際、経験則では、通常、可能な限り代理ではなく自然キーを使用することだと思います...

したがって、たとえば、InvoiceテーブルとInvoiceDetailテーブルがある場合、最初のキーの主キーとしてInvoiceNumberを使用できます。それは私たちのデータにすでに存在していて、(私は推測しますか?)ユニークでしょう。2番目の表では、代理キーが必要になる可能性がありますが、複合として請求書番号に結合されているかどうかは関係ありません。

いずれにせよ、元の質問に戻ってください...hometoastのリンクから始めることができます。

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

于 2008-09-04T17:59:51.057 に答える
3

Bill Karwin によるSQL Anti-Patternsは非常に読みやすく (無味乾燥ではありません)、さまざまな潜在的な落とし穴、それらを使用する方法、および正しく行う方法/理由をかなり明確な言葉で説明しています。

于 2012-10-30T14:06:03.513 に答える
1

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

于 2008-09-04T18:22:02.050 に答える
1

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

于 2008-09-04T17:50:40.737 に答える