訳:Amazon DynamoDB : データモデル
http://aws.amazon.com/jp/dynamodb/#details
Amazon DynamoDBはテーブル内のデータを、アイテムの集合として保持する。各アイテムは1つ以上の属性を持つ。
属性 ( Attributes )
属性は、名前/値のペアとなる。名前は文字列の必要があるが、値は文字列、数値、文字列か数値の配列が利用できる。属性の例としては以下のようになる。
"ImageID" = 1 "Title" = "flower" "Tags" = "flower", "jasmine", "white" "Ratings" = 3, 4, 2
アイテム ( Item )
属性の集合がアイテムを構成し、アイテムは主キーで識別される。アイテムの属性は、名前/値ペアの任意の順序で並んだ集合となる。アイテム中の属性は疎で、同一テーブル内の別のアイテムの属性とは無関係である。主キー以外の属性はオプショナルである。従来のDBと違い、テーブルには主キー以外のスキーマ制限が無い。アイテムはテーブルに保存される。テーブルにアイテムを追加するには、最低1つの属性を主キーとして明示する必要がある。DynamoDBにおいて、主キーはアイテムを一意に同定する。以下の図では、ImageID属性が明示された主キーとなる。
注)このテーブルは "my table"という名前を持つが、アイテムは名前を持たない。主キー"ImageID"=1が、特定のアイテムを指定している。
テーブル ( Tables )
テーブルはアイテムを保持し、その情報を不連続の領域上に組織化する。テーブル内のすべてのアイテムは同じ主キーの形式(primary key scheme)で保持される。テーブル作成時に、主キーとして使う属性名を明示する。テーブル内の各アイテムは、一意の主キー値を持つ必要がある。DynamoDBにデータを書き込む最初の手順は、テーブル名と主キー名を明示してテーブルを作成する。以下は、ImageIDをアイテムを識別する主キーとする大きなテーブルである。
Table: My Images | |||||||
Primary Key | Other Attributes | ||||||
ImageID = 1 | ImageLocation = https://s3.amazonaws.com/bucket/img_1.jpg | Date = 1260653179 | Title = flower | Tags = Flower, Jasmine | Width = 1024 | Depth = 768 | |
ImageID = 2 | ImageLocation = https://s3.amazonaws.com/bucket/img_2.jpg | Date = 1252617979 | Rated = 3, 4, 2 | Tags = Work, Seattle, Office | Width = 1024 | Depth = 768 | |
ImageID = 3 | ImageLocation = https://s3.amazonaws.com/bucket/img_3.jpg | Date = 1285277179 | Price = 10.25 | Tags = Seattle, Grocery, Store | Author = you | Camera = phone | |
ImageID = 4 | ImageLocation = https://s3.amazonaws.com/bucket/img_4.jpg | Date = 1282598779 | Title = Hawaii | Author = Joe | Colors = orange, blue, yellow | Tags = beach, blanket, ball |