2012-01-11 17 views
1

この質問はPostgreSQLを気にしますが、依然として一般的なDB質問です。データベース構造の分散

というスキーマという用語は、データベースに関連して、私はいつも不思議でした。最近、PostgreSQLの使用に移行しました。PostgreSQLという用語は、基本となるデータベース構造にとって重要な意味を持ちます。 PostgreSQLのランドにおいて

次のように、分散型構造は以下の通りである:

DB Server (`some-server.com:5432`) 
    >> Database (`fizz`) 
     >> Schema (`buzz`) 
      >> Table (`foo`) 

したがって、テーブル[foo]ためのFQDNがfizz.buzz.fooあります。

私は、「データベース」はテーブルの論理的なグループであると理解します。たとえば、すべてのPOJO/VOが永続化される「ドメイン」データベース、すべての販売関連情報が格納される「受注」データベース、および将来の分析のためにすべてのログメッセージが送信される「ロギング」データベース、

データベースとそのテーブルの間にこの「スキーマ」コンストラクトが導入されていると、私は非常に混乱しています。PostgreSQLのマニュアルは、自分自身のような初心者にとってはあまりにも重い手紙ですわかる。

この「スキーマ」構造がPostgreSQLの領域内にある(そしてそれがデータベースとテーブルをどのように関係させるか)ということだけでなく、それがどういう意味であるのか不思議です一般的なデータベース構造。

ありがとうございます!

答えて

1

スキーマを名前空間とみなします。それらを使用してテーブルを論理的にグループ化することができます(Peopleスキーマなど)。さらに、そのスキーマにセキュリティを割り当てることができるので、Customerスキーマを参照できますが、スキーマはEmployeeではありません。これにより、オブジェクトレベルの直ぐ上でデータベースレベルを下回るセキュリティの細かさを制御することができます。

セキュリティはおそらくスキーマを使用する最も重要な理由ですが、論理グループ化にもセキュリティが使用されていることがわかりました。それはあなたのために必要なものだけに依存します。

+0

ありがとうエリック!素晴らしい応答! – IAmYourFaja

関連する問題