

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# RDBMS テーブルスキーマとマッピング
<a name="rdbms-schema"></a>

次の図は、ソース RDBMS スキーマのテーブルと関係を示しています。

 ![RDMS schema](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/modernization-rdbms-dynamodb/images/rdbms-table.png) 

前の図に示すように、`production_apps`テーブルには `id`および `version`列があり、 `production_app_properties`および `production_app_configs`テーブルと one-to-manyの関係があります。したがって、DynamoDB 設計では、次の JSON コードに示すように`production_app item`、 テーブル`production_app_properties`と `production_app_configs`テーブルが 内に埋め込まれます。`production_app_properties` と は複数の値を持つ`production_app_configs`ことができるため、これらのテーブルは JSON コードに配列として追加されます。テーブル`changed_apps`と `test_apps`テーブルも同様にマッピングされます。

 ![Mapping from RDMS schema to DynamoDB](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/modernization-rdbms-dynamodb/images/table-mapping.png) 

## シングルテーブル設計
<a name="single-tables"></a>

DynamoDB は関係を維持しません。固定テーブルスキーマをサポートします。その結果、異なるタイプの項目 (SQL テーブルなど) を 1 つの DynamoDB テーブルに保存し、項目のタイプを識別する属性 (`ItemType`) を指定できます。

DynamoDB では、パーティションキー (PK) とソートキー (SK) の組み合わせが一意である必要があるため、これらのキーは項目タイプによって異なります。

 ![Single table design in DynamoDB](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/modernization-rdbms-dynamodb/images/single-table-design.png) 

## グローバルセカンダリインデックス
<a name="gsi"></a>

インデックスは、データの取得を高速化し、アプリケーションのパフォーマンスを向上させるのに役立ちます。サンプルアプリケーションでは、次のインデックスが作成されました。PKsと SKs は、異なる項目を特定する方法に基づいて選択されました。


****  

| **インデックス名** | **説明** | **パーティションキー (PK)** | **ソートキー (SK)** | **Projected\_Attributes** | 
| --- | --- | --- | --- | --- | 
| Version-index | 特定の のすべての本稼働アプリケーションを取得しますversion。 | version |  | id, name | 
| Release-index | 特定の のすべてのテストアプリケーションを取得しますrelease-id。 | release-id |  | id, name | 
| Change-index | に関連付けられているすべての (変更された) アプリケーションを取得しますchange-id。 | change-id |  | id, modified-by, date | 