2011年2月9日水曜日

Datastore 概要まとめ (Google App Engine)

Datastore Java API 概要」のまとめ

エンティティ

エンティティ単位でデータを操作
エンティティはプロパティを持つ
プロパティは別のエンティティへの参照を持つこともできる
トランザクションが使える
トランザクションで複数の操作ができる
エンティティにはスキーマがない
JDO, JPAでアクセスできる
低レベルAPIもある
エンティティにはキーがある
キーか、プロパティに適合するクエリでエンティティをフェッチできる
クエリの結果はプロパティ値で並び替えることができる
プロパティは複数の値を持つこともできる

クエリとインデックス

クエリは指定されたクラスに対してキーとプロパティに対するフィルタと並び替えを指定できる
すべてのクエリはインデックスを使用する
インデックスは設定ファイルで定義する

トランザクションとエンティティグループ

エンティティの作成、更新、削除のすべての操作はトランザクションで実行される
1つのトランザクションで複数のエンティティを変更できる
同じエンティティグループに属するエンティティは同時に変更できる
エンティティグループに参加するには、そのエンティティグループのエンティティの子になればいい
親を持たないエンティティはルートエンティティになる
トランザクションはオプティミスティック・コンカレンシで実行される
エンティティグループの変更中はそのグループへのほかの更新はすぐにエラーになる
リトライはアプリケーションが行う

SQLとの違い

join が使えない
複数プロパティでの不等式のフィルタリングやサブクエリが使えない
データが一貫したプロパティを持っている必要はない
クエリで取得できるのはキーまたはエンティティ全体だけ