PR:この記事にはアフィリエイトリンクが含まれます。
SQLAlchemyの本にはORMの基本を扱うものもあれば、FastAPIでAPIを作りながら学ぶものもあります。実務で読み返すなら、モデル定義に加えてSessionの開始から終了まで追える本が役立ちます。
紹介するのはFastAPIを軸にした2冊と、SQLAlchemy 2を英語で扱う1冊です。各書の範囲は、Webアプリ全体、セッション管理の入口、ORMの機能とそれぞれ異なります。
3冊の早見表
3冊の内容と価格を並べました。FastAPIを中心に扱う2冊とSQLAlchemy 2そのものを主題にする本では、学べる範囲が違います。
| 書籍 | 主な内容 | 向いている人 | 参考価格 |
|---|---|---|---|
Python Web開発実践入門 ――FastAPIによるWeb API開発と非同期処理 | FastAPI、SQLAlchemy 2.x、非同期処理、Alembic | Pythonの基礎があり、APIとDBを一緒に作りたい人 | 3,520円(税込・定価)。実売は時期や店で変動 |
Python FastAPI本格入門 | FastAPIのAPI開発、ORMとセッションの基礎 | FastAPIを基礎から学びたい人 | 3,300円(税込・定価)。実売は時期や店で変動 |
| SQLAlchemy 2 In Practice: Learn to program relational databases in Python step-by-step | SQLAlchemy 2のモデル、セッション、クエリ、関連付け | 英語でSQLAlchemyを順に学びたい人 | 販売店の表示を確認 |
最初の2冊はFastAPIのアプリ作成を軸にORMも扱います。英語書はSQLAlchemy 2が中心で、モデルやリレーション、非同期処理まで取り上げます。
2冊の価格欄は税込定価で、実売は時期や店で変わります。英語書は取り扱い店ごとの販売価格を確認してください。
セッションの役目
SQLAlchemyのSessionはPython側でORMオブジェクトの状態を管理し、必要なデータベース操作をまとめる役割です。DB接続そのものを指すConnectionとは機能が異なります。
注文登録ならSessionに注文オブジェクトを加えて、在庫も同じトランザクションで更新できます。成功時にコミットすれば変更が確定し、途中で例外が起きた場合はロールバックします。
ConnectionはSQLを実行するためのDB接続で、SessionはORMオブジェクトやトランザクションの状態を扱います。接続を使い回す感覚でSessionも共有すると、処理ごとの状態が混ざるおそれがあります。
Web APIではリクエストごとにSessionを用意し、処理の終了時に閉じる設計が基本です。同じSessionを次の処理まで持ち越すと、前の問い合わせ結果や未確定の変更が残り不具合につながります。
2.0の書き方
SQLAlchemy 2.0では型注釈を使うMapped Classでモデルを定義し、select()で問い合わせを組み立てます。旧来の書き方を知っている人も、新しいコードでは2.0スタイルにそろえると読みやすくなります。
結果は用途に応じてscalars()などで取り出します。返るものが複数行なのかモデルの一覧なのかを意識すると、受け取った値の取り違えを防ぎやすくなります。
flush()は変更をトランザクション内のSQLとして送りますが、コミットとは異なります。処理が進んでも、変更がまだ確定していない場合があります。
session.begin()を使うと、トランザクションの開始から成功時のコミット、失敗時のロールバックまでをひとまとまりにできます。エンドポイントごとに例外処理を繰り返さず、処理の境界をコードで示せるのが実務上の利点です。
実務での注意点
Sessionは必要な処理の間だけ開き、終わったら閉じます。FastAPIでは依存関係などを利用してリクエストごとに作成と終了を管理し、バックグラウンド処理には別のSessionを用意する形が堅実です。
Sessionには処理中のオブジェクトやトランザクションの状態が含まれます。複数スレッドや非同期タスクで一つのSessionを共有せず、それぞれの処理に専用のものを渡しましょう。
非同期処理にはAsyncSessionを使います。同期処理を非同期に置き換えるだけで速くなるわけではなく、DBドライバーとアプリ全体の入出力を非同期にそろえる必要があります。AsyncSessionは並行タスク間で共有できません。
ORMを使ってもDBの制約やインデックス、マイグレーションは必要です。重複注文の防止ではデータベース側の制約も組み合わせ、Alembicで変更を記録しておくと開発環境と本番環境のスキーマ差を抑えられます。
実践入門
『Python Web開発実践入門 ――FastAPIによるWeb API開発と非同期処理』は技術評論社から2026年8月13日に発売されたA5判・344ページの書籍で、対象はPythonの基礎知識がありFastAPIを初めて使うWebエンジニアです。
SQLAlchemyの基本操作に加えて、FastAPIでの利用やMapped Classを扱います。SQL文の構築と実行、Alembicも内容に含まれます。一つのWeb開発例を追いながらAPI実装まで進める構成です。
試し読みにはAsyncSessionとsession.begin()の例があり、非同期セッションやトランザクションの境界をコードで確かめられます。FastAPIとSQLAlchemy 2.xを一緒に学びたい人には、3冊の中でこの本を最初にすすめます。
FastAPI本格入門
『Python FastAPI本格入門』は技術評論社から2024年10月26日に発売されたB5判・256ページの書籍です。FastAPIでAPIを作る基礎から学びたい人を対象にしています。
SQLAlchemyは本全体の一部として登場し、ORMの概要やアプリケーション作成例の中で扱われます。コネクションとセッションを分ける理由も学べるため、両者の役割を整理する入口になります。
試し読みのインストール例はSQLAlchemy 2.0.29です。現行環境で細かなAPIを使う際は、バージョン差を確かめながら読むとよいでしょう。FastAPIとDBをつなぐ基本を学ぶ本で、定価は税込3,300円です。
英語のSQLAlchemy本
『SQLAlchemy 2 In Practice: Learn to program relational databases in Python step-by-step』はMiguel Grinberg著の英語書で、2023年刊です。ペーパーバックは192ページで、SQLAlchemy 2を中心に扱います。
モデル、セッション、クエリ、インデックス、制約を扱い、一対多と多対多のリレーションにも進みます。遅延読み込みと先行読み込み、関連オブジェクトのカスケードも含まれ、モデル間の関係を学べる範囲が広めです。
商品カタログや注文機能を題材に、クエリ例と演習を通して実装を進めます。asyncioを使うSQLAlchemy 2の章が含まれている点も特徴です。英語の技術書を読みながらORMの理解を深めたい人にすすめます。
SQLAlchemy 2 In Practice: Learn to program relational databases in Python step-by-step
Independently Published
Amazonで探す結論
FastAPIとSQLAlchemy 2.xを一緒に学び、Mapped Classや非同期セッション、Alembicまで扱いたい人には『Python Web開発実践入門』をおすすめします。APIとDBの実装を通して読み進められ、学んだ内容を実務に結び付けやすい本です。
FastAPIの基礎とセッション、コネクションの役割を一緒に学ぶなら『Python FastAPI本格入門』を選んでください。英語で関連付けやasyncioまで学びたい人には『SQLAlchemy 2 In Practice』をおすすめします。
Sessionを短い処理単位で扱い、トランザクションの終了を明示することがセッション管理の要点です。本は設計をコードで確かめる助けになります。自分のアプリに近い構成を追えば、知識を実装につなげやすくなります。
Amazon の PC をスコア化してみた
Amazonにある8〜14インチの小型WindowsタブレットやノートPCを、スペック別にスコア化して比較・ランキング。



