第14章. データベース、データサイエンス、そして少しのAI
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
プレビュー
この章では、FastAPI を使用してデータをストアおよび取得する方法について説明し ます。10 章の単純な SQLite の例を次のように拡張します:
-
その他のオープンソースデータベース(リレーショナルデータベースとそうでないもの)
-
SQLAlchemyの上位レベルの使用法
-
エラーチェックの改善
データ・ストレージの選択肢
注
データベースという言葉は、残念ながら3つのものを指すのに使われる:
-
サーバの種類(PostgreSQL、SQLite、MySQLなど)。
-
そのサーバの実行中のインスタンス
-
サーバ上のテーブルのコレクション
、上記の最後の箇条書きのインスタンスを「PostgreSQLデータベース・データベース」と呼ぶという混乱を避けるために、どのデータベースのことを指しているのかを示すために、他の用語を添付しておく。
Webサイトとデータベースはピーナッツバターとゼリーのようなもので、他の方法でデータをストアすることも考えられるが(あるいはピーナッツバターとピクルスを組み合わせることもできる)、本書ではデータベースにこだわることにする。
データベースは、コードで解決しなければならないような多くの問題を処理してくれる:
-
マルチプルアクセス
-
インデックス作成
-
データの一貫性
データベースの一般化は以下の通りである:
-
SQLクエリ言語によるリレーショナルデータベース
-
様々なクエリ言語による非リレーショナルデータベース
リレーショナルデータベースとSQL
Python には DB-API と呼ばれる標準リレーショナル API 定義があり、主要な データベースの Python ドライバパッケージによってサポートされている。表14-1に、いくつかの著名なリレーショナルデータベースとその主なPythonドライバパッケージのリストを示します。
| データベース | Pythonドライバー |
|---|---|
オープンソース |
|
コマーシャル |
|
リレーショナルデータベースとSQLのための主なPythonパッケージは以下の通りである:
- SQLAlchemy
-
多くのレベルで使用できるフル機能のライブラリ
- SQLModel
-
FastAPIの作者によるSQLAlchemyとPydanticの組み合わせ。
- 記録
-
Requestsパッケージの作者である 、シンプルなクエリAPIである。
SQLAlchemy
PythonのSQLパッケージの中で最もポピュラーなものはSQLAlchemyだ。 SQLAlchemyの説明の多くはORMだけを取り上げているが、SQLAlchemyには複数のレイヤーがある。
コア
SQLAlchemy ののベースはCore と呼ばれ、以下のものからなる:
-
DB-API 標準を実装した
Engine ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access