Verticaの代表的なデータベースオブジェクトの単位にはデータベース、スキーマ、テーブル、プロジェクションがあります。
データベース
Verticaの起動/停止は通常はデータベースの起動/停止で管理します。データベースは複数作成することもできますが、起動できるデータベースはクラスタ全体で1つのみです。起動中のデータベースを停止することで、別のデータベースが起動できるようになります。
スキーマ
Verticaではテーブルを管理する単位としてスキーマがあります。デフォルトではpublicという名前のスキーマが存在します。スキーマを複数作成することで、ユーザごとに参照できるスキーマを限定してセキュリティレベルを高めたり、アプリケーションごとにスキーマを分けることで管理がしやすくなります。
テーブル
SQLを実行する際にFROM句で検索、更新対象として指定します。しかし、Verticaのテーブルは実際にはデータを保持していない論理スキーマであり、SQLがテーブルに対して発行された場合は、オプティマイザが対応するプロジェクションにアクセスし、データの検索等を行います。
プロジェクション
プロジェクションは自動でテーブルデータを最適な形でソート、圧縮して保持しており、Verticaの検索パフォーマンスを向上させる上で重要なオブジェクトです。クエリのパフォーマンスを向上させるために様々な種類のプロジェクションが用意されており、実行したいクエリに合せてこれらのプロジェクションを使い分けることができます。また、1つのテーブルに対して複数のプロジェクションを作成できます。
