すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:データベースオブジェクトの論理構造

最終更新日:Sep 27, 2024

データベースオブジェクトの論理構造は、データベースシステムにおいてデータがどのように編成され、互いに関連付けられるかを指す。 AnalyticDB for PostgreSQLデータベースは、テーブル、インデックス、シーケンス、ビュー、データベースなど、多くのデータベースオブジェクトで構成されています。 データベースオブジェクトは論理的に互いに分離されています。 データベースオブジェクトは、他の関連するデータベースオブジェクトを含むこともできる。

AnalyticDB for PostgreSQLインスタンスは、複数のデータベースで構成される場合があります。 テーブルやインデックスなどのデータベースオブジェクトは、対応するデータベースに属します。 データベースオブジェクトの論理構造を次の図に示します。

数据库对象的逻辑结构

データベース

AnalyticDB for PostgreSQLインスタンスは、複数のデータベースで構成される場合があります。 psqlツールで \lステートメントを実行して、既存のデータベースを表示できます。 サンプルクエリ結果:

postgres=# \l
                                      List of databases
   Name    |   Owner    | Encoding |  Collate   |   Ctype    |       Access privileges
-----------+------------+----------+------------+------------+-------------------------------
 diskquota | xiaoxia.zj | UTF8     | en_US.utf8 | en_US.utf8 |
 postgres  | xiaoxia.zj | UTF8     | en_US.utf8 | en_US.utf8 |
 template0 | xiaoxia.zj | UTF8     | en_US.utf8 | en_US.utf8 | =c/"xiaoxia.zj"              +
           |            |          |            |            | "xiaoxia.zj"=CTc/"xiaoxia.zj"
 template1 | xiaoxia.zj | UTF8     | en_US.utf8 | en_US.utf8 | =c/"xiaoxia.zj"              +
           |            |          |            |            | "xiaoxia.zj"=CTc/"xiaoxia.zj"
 zj        | xiaoxia.zj | UTF8     | en_US.utf8 | en_US.utf8 |

テーブル、インデックス、およびビュー

AnalyticDB for PostgreSQLは、一般的なリレーショナルデータベースと同じ方法でテーブルにデータを整理します。 AnalyticDB for PostgreSQLは、インデックス、ビュー、シーケンスなどのオブジェクトも提供します。 詳細については、PostgreSQLの公式ドキュメントをご参照ください。

スキーマ

データベースは、1つ以上の名前付きスキーマで構成されます。 スキーマには、テーブルと、データ型、関数、演算子などの他のオブジェクトが含まれます。

次の文を実行してスキーマを作成します。

CREATE SCHEMA myschema;

テーブルを作成またはクエリするときは、schemaName.tableName形式でテーブルを指定します。 例:

CREATE TABLE myschema.mytable(···)···;
SELECT * FROM myschema.mytable;

search_pathパラメーターを設定して、オブジェクトを検索できるスキーマのリストを指定できます。 デフォルトのスキーマは、リストの最初のスキーマです。 search_pathパラメーターを指定しない場合、publicという名前のスキーマが既定のスキーマとして使用されます。 ステートメントを実行すると、search_pathの値を変更できます。 次の例は、既定のスキーマを変更する方法を示しています。

ALTER DATABASE mydatabase SET search_path TO myschema;

テーブル領域

テーブルスペースを使用すると、データベースオブジェクトを含むデータファイルが存在するファイルシステム上の別の場所を定義できます。 テーブルスペースを使用して、さまざまなデータベースオブジェクトをさまざまな場所に格納できます。 たとえば、頻繁に使用するテーブルをSSDに保存し、その他のテーブルを従来のディスクに保存できます。

論理的には、異なるデータベースオブジェクトを格納するために異なるテーブルスペースが使用される。 たとえば、異なるデータベースを異なるテーブルスペースに格納して、物理的な場所を区別できます。

数据库对象的逻辑结构-表空间

\l + ステートメントを実行して、テーブルスペースを表示できます。

postgres=# \l+
 diskquota | xiaoxia.zj | UTF8     | en_US.utf8 | en_US.utf8 |                               | 69 MB   | pg_default |
 postgres  | xiaoxia.zj | UTF8     | en_US.utf8 | en_US.utf8 |                               | 72 MB   | pg_default | default administrative connection database
 template0 | xiaoxia.zj | UTF8     | en_US.utf8 | en_US.utf8 | =c/"xiaoxia.zj"              +| 69 MB   | pg_default | unmodifiable empty database
           |            |          |            |            | "xiaoxia.zj"=CTc/"xiaoxia.zj" |         |            |
 template1 | xiaoxia.zj | UTF8     | en_US.utf8 | en_US.utf8 | =c/"xiaoxia.zj"              +| 69 MB   | pg_default | default template for new databases
           |            |          |            |            | "xiaoxia.zj"=CTc/"xiaoxia.zj" |         |            |
 zj        | xiaoxia.zj | UTF8     | en_US.utf8 | en_US.utf8 |                               | 1062 MB | pg_default |

テーブルスペースに対するCREATE権限がある場合は、テーブルスペースにテーブル、インデックス、データベースなどのデータベースオブジェクトを作成できます。 例:

CREATE TABLE tablename(options) TABLESPACE spacename;