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