無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

21.1. 概要

データベースとは、 SQL オブジェクト( "データベースオブジェクト" )の集合に名前を付けたものです。 一般的には、すべてのデータベースオブジェクト(テーブル、関数など)は、1つのデータベースのみに属します (しかし、例えば、 pg_database といったシステムカタログのごく一部には、クラスタ全体に属するものもあり、そのクラスタ内のすべてのデータベースからアクセスすることができます)。 より正確には、データベースはスキーマの集合であって、スキーマにテーブル、関数などが含まれます。 したがって階層の全体像は、サーバ、データベース、スキーマ、テーブル(や関数などの何らかのオブジェクト)となります。

データベースサーバに接続する時、クライアントはその接続要求の際に接続するデータベース名を指定しなければなりません。 1つの接続で複数のデータベースにアクセスすることはできません。 しかし、アプリケーションには同じデータベースや他のデータベースへの接続に接続数の制限はありません。 複数のデータベースは物理的に分離されていて、アクセス制御は接続レベルで管理されています。 したがって、分離して、ほとんどの場面で互いに見えないようにする必要のある複数のプロジェクトやユーザを単一の PostgreSQL サーバインスタンスに収容する場合、これらを別々のデータベースに含めることが推奨されます。 もし、複数のプロジェクトやユーザが相互に関連していて互いのリソースを使用できる必要がある場合、これらは同じデータベースに含めるべきですが、スキーマを別にすることは可能です。 スキーマは純粋に論理的な構造で、誰が何にアクセスできるかは権限システムによって管理されます。 スキーマの管理についての詳細は 項5.7 に記載されています。

データベースは CREATE DATABASE コマンド( 項21.2 を参照)で作成され、 DROP DATABASE コマンド( 項21.5 を参照)で破棄されます。 既存のデータベース群を求めるには、以下の例のように pg_database システムカタログを確認してください。

SELECT datname FROM pg_database;

また、 psql プログラムの \l メタコマンドや -l コマンドラインオプションも既存のデータベースを列挙する際に役に立ちます。

注意: 標準 SQL では、データベースを "カタログ" (catalog)と呼ぶこともありますが、実際のところ違いはありません。


powered by SEO.CUG.NET