← Rust

LESSON / ARTICLE

データベースとトランザクション設計

データベースとトランザクション設計を学び、実務での設計判断につなげます。

永続化

データベースは検索・更新・同時アクセス・整合性を扱います。トランザクションのACIDはAtomicity(一括性)、Consistency(一貫性)、Isolation(分離性)、Durability(永続性)です。

SQLとパラメーター化

ユーザー入力をSQL文字列へ直接連結せず、プレースホルダーで値を渡します。

// 擬似コード。実際のAPIはDBクレートに依存します。
// query("SELECT id FROM users WHERE name = ?").bind(user_name)

RustではSQLxやDieselなどを検討し、接続プール、トランザクション境界、マイグレーション、タイムアウトを設計します。

設計演習

口座AからBへの送金について、残高確認・引き落とし・入金をどこで確定またはロールバックするか、同時送金時に守る条件を説明してください。