データベースオブジェクト(つまりスキーマオブジェクト)は、特定のスキーマに属します。スキーマとはデータベースオブジェクトの集合であり、ユーザーごとにデフォルトのスキーマが設定されており、そのスキーマ名はユーザー名と同じです。ユーザーは他のスキーマにもアクセスし、使用することができます。あるスキーマ内のオブジェクトにアクセスする際に、そのオブジェクトがどのスキーマに属しているかを指定しない場合、システムは自動的にオブジェクトにデフォルトのスキーマ名を付与します。
OceanBaseデータベースのOracleモードにおけるデータベースオブジェクトの詳細情報は、以下の表に示されています。
| オブジェクトタイプ | 説明 |
|---|---|
| テーブル(Table) | データベースにおける最も基本的なストレージ単位であり、テーブル内のデータは行と列によって構成されています。 |
| ビュー(View) | ビューは仮想的なテーブルであり、その内容はクエリによって定義されます。実際のテーブルと同様に、ビューには名前付きの列と行データが含まれます。ただし、ビューはデータベース内にストレージされたデータ値の集合として存在するわけではありません。行と列のデータは、ビューのクエリで参照されるテーブルを自由に定義でき、ビューを参照する際に動的に生成されます。 |
| インデックス(Index) | インデックスとは、データベーステーブルの1列または複数の列の値をソートするための構造であり、インデックスを使用することでデータベーステーブル内の特定の情報へのアクセスを高速化できます。例えば、指定された職員の姓に基づいてその人物を検索する場合、テーブル内のすべての行を検索するのと比較して、インデックスは情報の取得をより迅速にします。 |
| パーティション(Partition) | OceanBaseデータベースでは、通常のテーブルのデータを一定のルールに従って異なるブロックに分割し、同一ブロックのデータを物理的にまとめて格納することができます。このようにブロックに分割されたテーブルをパーティションテーブルと呼びます。OracleのPartition概念と同じで、OceanBaseデータベースでは水平パーティションのみが存在し、テーブルの各パーティションには一部のレコードが含まれます。行データとパーティションとのマッピング関係によって、Hashパーティション、Rangeパーティション(範囲)、Listパーティションなどに分類されます。また、各パーティションはさらに異なる次元で複数のパーティションに分割することができ、これをサブパーティションと呼びます。例えば、取引記録テーブルをユーザーIDに基づいて複数のHashパーティションに分割し、各Hashパーティションを取引時間に基づいて複数のサブRangeパーティションに分割することができます。 |
| シーケンス(Sequence) | シーケンス(Sequence)とは、シリアルナンバー生成器であり、自動的にシリアルナンバーを生成し、等間隔の数値(数値型は数字)を生成します。各Sequenceオブジェクトインスタンスは1つのデータシーケンスを生成可能であり、スタンドアロン環境でもマルチマシン環境でも、生成される各データが互いに異なることを保証します。同時に、異なるアプリケーションシナリオのニーズを満たすため、各データが互いに異なることを保証しつつ、Sequenceはユーザーにより豊富なオプションを提供します。例えば、データが生成された順序に従って増加することを保証し、2つのデータ間の差が大きくなることをできるだけ避けるなどです。ただし、Sequenceに対する要件が厳しくなるほど、データベースが支払うパフォーマンスコストも大きくなる点に注意が必要です。 |
| シノニム(Synonyms) | シノニムとは、データベースオブジェクトの別名であり、Schemaオブジェクトへのアクセスを簡素化し、オブジェクトアクセスの安全性を向上させるために使用されます。シノニムを使用する際、OceanBaseデータベースのOracleモードでは、それが対応するSchemaオブジェクトの名前に翻訳されます。ビューと同様に、シノニムは実際のストレージ領域を占有せず、データディクショナリにシノニムの定義のみが保存されます。テーブル、ビュー、シノニム、シーケンスなど、データベースのほとんどのデータベースオブジェクトについて、データベース管理者は実際の状況に応じてシノニムを定義できます。 注意 PLにおけるオブジェクト、例えばストアドプロシージャやパッケージなどは、現在シノニムの作成をサポートしていません。 |
| トリガー(Trigger) | トリガーとは、指定されたイベントが発生した際にシステムが自動的に呼び出す一連のストアドプロシージャです。通常のストアドプロシージャとは異なり、トリガーは有効または無効にすることができ、明示的に呼び出すことはできません。 |
| PLオブジェクト(PLサブルーチンとパッケージ) | PLとは、手続き型言語(Procedural Language)のことです。SQLの拡張であり、通常のSQL文にプログラミング言語の特徴を追加し、データ操作とクエリ文をPLコードの手続き型コード内に組織化し、論理判断やループなどの操作を通じて複雑な機能を実現します。PLソースプログラムの基本単位はブロックであり、宣言と文から構成され、内部では変数や定数を宣言し、式で使用することが許可されています。PLプログラムパッケージは、論理的に関連するPL型、変数、定数、サブルーチン、カーソル、例外から構成されます。 |