3

私は、この SQL を処理するために Sqlite3 をいじっています。このトピックについていくつか質問があります。

データベースが従う基本的な構造はありますか? 巨大な辞書に沿っているかのようにデータベースをモデル化するかどうか興味があります。

私が考えていた問題:

任意の都市の郵便番号やその他の一般情報を取得できるプログラムが必要な場合は、ネストされたテーブルのような構造を考えていました。すなわち:

Countries Table:
+----+--------+--------+---------+
| US | Canada | Mexico |  Etc... |
+----+--------+--------+---------+
  |
  |
  |
  |
  | States Table:
  +---------+----------+---------+--------+
  | Alabama | Arkansas | Georgia | Etc... |
  +---------+----------+---------+--------+
                  |
                  |
                  |
                  |
                  | Cities Table:
                +-----------+---------+--------+---------+
                | Alexander | Bauxite | Benton | Etc ... |
                +-----------+---------+--------+---------+
                                           |
                                           |
                     +-----+------------+---------+------+--------------------+                    
                     | Key | population | zipcode | size | other random stuff |
                     +-----+------------+---------+------+--------------------+ 

しかし、入れ子が多すぎますか..?それは設計が悪いのでしょうか?先端的なことですが、countriesテーブルは実際にはあまり機能しません。データベースを使用すると、非常に複雑なことを簡単に実行できるはずだと頭に浮かんでいました。私が自分のデザインで行った場合、最終的に欲しいものにたどり着く前に、たくさんのものをループしているように思えます. ですから、この全体について間違っているかどうか、私はただ興味があります.

データベースの基本的な使用法に関する優れた入門書を知っている人はいますか?

4

2 に答える 2

2

リレーショナル データベースは、 Entity-Relationship Modelに基づいています。RDBSM の背後にある概念を理解したい場合は、まずその理論に慣れることを検討してください。具体的には、リレーショナル スキーム (テーブル、列、外部キーによる関係など) は、ERM の (または) アプリケーションです。

検索する別のキーワードはNormalization. 正規化にはさまざまな「グレード」と、あるグレードから別のグレードに変換するルールがあります。そのトピックは、テーブル構造に関する質問に直接関係しています。一般的な答えは、場合によるということです。一般に、正規化はデータの一貫性を維持するのに役立ちますが、完全に正規化されたテーブル構造はパフォーマンスの低下を招く可能性があります (たとえば、頻繁に使用されるクエリの多くの結合)。

最初により厳密な正規化を行ってから、パフォーマンスを確認することをお勧めします。選択的非正規化は、パフォーマンスの向上に役立つ場合があります

于 2012-12-12T22:18:45.510 に答える
2

多くの正規形 (1NF、2NF、3NF、BCNF...) があります。フォームが高い = 粒度が高い (冗長性が少なく、関係性が優れている...)。

些細なことかもしれません。国と州があります。しかし、私見では、米国は世界の特定のケースです(他の同様のケースはあまりありません)。テーブルの州、都市で十分です(+大陸)。

また、設計は目的に依存します (場合によっては、より低い NF がより効率的である必要があり、多くの要因 (レコード数、目的など) に依存します)。いくつか質問する必要があります。このデータベースの目的は何ですか? テーブル都市で十分ですか、それとも村も使用したいので、テーブル自治体にする必要がありますか? 等。しかし、あなたのデザインはほぼ良いです ;)

于 2012-12-12T22:19:33.877 に答える