3 レコードの設計に関する考察

Oracle NoSQL DatabaseのKVStoreでは、キーと値のペアの格納場所が提供されます。各ペアはデータベースの1つのレコードとみなされ、キーは値の検索に使用されます。キーと値の両方とも、Oracle NoSQL Databaseによる一定の制限を前提に、アプリケーションで定義されます。

KVStore内の各キーは、文字列のリストです。すべてのキーに、1つ以上のメジャー・コンポーネントが必要です。キーは必要に応じてマイナー・コンポーネントを持つこともできます。

レコードの値部分は単純にバイト配列にすることも、Avroを使用してそのスキーマを識別することもできます。値部分は、必要に応じて単純にも複雑にもできます。

注意:

Avroは非推奨です。固定スキーマでレコードの値部分を定義する場合は、表APIの使用をお薦めします。このAPIには、Avroを使用するキー/値APIにはない2次索引などの利点があります。

非常に簡単な例として、ストアに人に関する情報を含めるとします。次のようにするとします。

  • メジャー・キー: 電子メール・アドレス。

  • マイナー・キー: ユーザーの住所、電話番号、写真、名前などの様々なプロパティ。

  • 値: メジャー・キー・コンポーネントとマイナー・キー・コンポーネントの組合せに関連するAvro定義の情報。たとえば、電子メール・アドレスと住所の組合せに対する値は、市、町名、番地などに関する複数フィールドです。

これは、Oracle NoSQL Databaseに格納する内容の非常に簡単な例です。ただし、パフォーマンスの点から言えば、この例はデータの編成方法として最適ではない場合があります。キーと値の設計方法は、パフォーマンスに大きく影響する可能性があります。

この章の後半で、Oracle NoSQL Databaseのスキーマ設計に関連するパフォーマンスの問題について説明します。