データベース・オブジェクトの作成

データベース・オブジェクトは、データの格納または参照に使用されるデータベース内のあらゆる定義済オブジェクトです。CREATEコマンドを使用して、データベース・オブジェクトを作成します。データベース・オブジェクトを使用して、データを保持および操作できます。

ネームスペースの作成

ネームスペースは表のグループを定義するもので、その中ですべての表名を一意に識別する必要があります。ネームスペースを使用すると、表権限の管理をグループ操作として実行できます。ネームスペースに認可権限を付与すると、ネームスペースとネームスペース内の表の両方にアクセスできるユーザーを決定できます。ネームスペースを使用すると、データベース・ストアに同じ名前の表を存在させることができます。このような表にアクセスするには、完全修飾の表名を使用します。完全修飾の表名では、表名の前にネームスペースがあり、その後にコロン(:)があります(ns1:table1など)。

すべての表は、ネームスペースの一部です。sysdefaultというデフォルトのOracle NoSQL Databaseネームスペースがあります。すべての表は、他のネームスペースを作成し、そこに新しいテーブルを作成するまで、デフォルトのsysdefaultネームスペースに割り当てられます。既存の表のネームスペースは変更できません。sysdefaultネームスペースの表は、完全修飾名を必要とせず、表名のみで操作できます。

CREATE NAMESPACE文を使用して、新しいネームスペースを追加できます。
CREATE NAMESPACE [IF NOT EXISTS] namespace_name

ノート:

sysで始まるネームスペース名は予約されています。接頭辞sysは、どのネームスペースにも使用できません。
次の文は、ns1という名前のネームスペースを定義します。
CREATE NAMESPACE IF NOT EXISTS ns1

表の作成

表は、ユーザー・データを保持するための基本構造です。CREATE TABLE文を使用して、Oracle NoSQL Databaseで新しい表を作成します。

表を作成するためのガイドライン:
  • 表定義には、少なくとも1つのフィールド定義と、主キー定義を1つのみ含める必要があります。
  • フィールド定義は、列の名前、データ型、列がNULL値可能かどうか、オプションのデフォルト値、または列がIDENTITY列かどうか、およびオプションのコメントを指定します。デフォルトでは、すべてのフィールド(PRIMARY KEY以外)はNULL値可能です。
  • 主キー仕様の構文(key_definition)は、表の主キー列をフィールド名の順序付きリストとして指定します。
  • 存続時間(TTL)値は、行の有効期限を計算するために使用されます。期限切れになった行は問合せ結果に含まれず、最終的にOracle NoSQL Databaseによって表から自動的に削除されます。表の作成時にTTL値を指定すると、この表に挿入されるすべての行のデフォルトのTTLとして適用されます。
  • 作成する表がマルチリージョン表の場合は、REGIONS句を指定します。REGIONS句は、表がまたがるすべてのリージョンをリストします。
例1: 次のCREATE TABLE文は、航空会社のシステムの乗客の手荷物情報を保持するBaggageInfo表を定義します。
CREATE TABLE BaggageInfo (
ticketNo LONG,
fullName STRING,
gender STRING,
contactPhone STRING,
confNo STRING,
bagInfo JSON,
PRIMARY KEY (ticketNo)
)
例2: 次のCREATE TABLE文は、TVストリーミング・アプリケーションからのデータを保持するstream_acct表を定義します。
CREATE TABLE stream_acct(
acct_id INTEGER,
acct_data JSON, 
PRIMARY KEY(acct_id)
)
例3: 次のCREATE TABLE文は、TVストリーミング・アプリケーションからのデータを保持するstream_acct_new 表を定義します。表の行は2日で失効します。
CREATE TABLE stream_acct_new(
acct_id INTEGER,
acct_data JSON, 
PRIMARY KEY(acct_id)) USING TTL 2 days

リージョンの作成

Oracle NoSQL Databaseでは複数のKVStoreに表を作成できるマルチリージョン・アーキテクチャがサポートされ、表がまたがるすべてのリージョンにわたり、挿入、更新および削除が、Oracle NoSQL Databaseによって複数方向に自動的にレプリケートされます。マルチリージョンのNoSQL Database設定においては、各KVStoreクラスタがリージョンと呼ばれます。

例1: 次のCREATE REGION文は、my_region1という名前のリモート・リージョンを作成します。
CREATE REGION my_region1

マルチリージョンのOracle NoSQL Database設定では、各ローカル・リージョンに対してすべてのリモート・リージョンを定義する必要があります。たとえば、マルチリージョン設定に3つのリージョンがある場合、それぞれの参加リージョンで他の2つのリージョンを定義する必要があります。CREATE REGION文を使用して、マルチリージョンのOracle NoSQL Databaseでリモート・リージョンを定義します。

例2: リージョンに表を作成します。

CREATE TABLE stream_acct_region(acct_id INTEGER,
acct_data JSON,
PRIMARY KEY(acct_id)) IN REGIONS my_region1

ノート:

表を作成する前に、リージョンmy_region1をローカル・リージョンとして設定する必要があります。