Python の ORM
ORM またはオブジェクトリレーショナルマッピングは、オブジェクト指向パラダイムを使用して、データベースに格納されているデータを作成、クエリ、および操作します。これは、実際のデータベースとデータベース管理に使用されるアプリケーションの間のソフトウェア層です。
ORM を使用すると、プログラミング言語を使用してデータベーステーブルを定義し、オブジェクトとメソッドを使用してクエリを実行し、オブジェクト指向プログラミングを使用してデータを操作できます。舞台裏では、すべてのクエリロジックが SQL または構造化クエリ言語と同等のクエリに変換されます。翻訳されたクエリは特定のアクションに最適な場合とそうでない場合がありますが、ORM は大規模な実際のアプリケーションで優れたパフォーマンスを発揮することが証明されています。
ORM は、テーブル管理を非常にシームレスなタスクにします。一般に、テーブルは ORM のクラスを使用して表されます。したがって、それらの更新、再利用、スケーリング、および保守が容易になります。ORM は多くのものを自動的に処理するため、開発者はアプリケーションの機能により集中できます。
何年にもわたって、テクノロジーは大幅に成長し、最近では、コミュニティで頻繁に使用されるプログラミング言語のほとんどで、ORM が開発されています。一部のプログラミング言語では、リストに複数の ORM が含まれています。この記事では、Python プログラミング言語の市場で入手可能な ORM について説明します。
Python の ORM
Python は、ウェブ開発、データサイエンス、機械学習、アプリ開発など、複数のドメインで最も急速に成長し、使用頻度の高い言語の 1つです。Python は、改善、最適化、言語のライブラリやフレームワークなどの新しいものを構築します。
Python プログラミング言語の市場には多くの ORM がありますが、すべての ORM が堅牢で、スケーラブルで、十分に開発されており、最先端の手法に従い、効率的で、最適化されているわけではないため、この記事では 3つの ORM のみに焦点を当てます。パフォーマンスを提供します。
この記事では、peewee
、SQLAlchemy
、および Storm
の 3つの ORM について説明します。これらの 3つの ORM は業界で広く使用されており、優れた機能を提供します。
peewee
peewee
ORM は、Python 用のシンプルで表現力豊かな小さな ORM です。小さな ORM であるため、小規模なアプリケーションを対象としています。この ORM は、SQLite データベース、MySQL データベース、PostgreSQL データベース、および cockroachdb データベースをサポートします。この ORM は Python 3.6 で開発され、Python 2.7+
および 3.4+
で使用できます。
peewee
ORM の詳細については、公式の GitHub リポジトリでドキュメントとコードスニペットを参照してくださいこちら。
SQLAlchemy
SQLAlchemy
ORM は、Python 用の堅牢な SQL ツールキットです。この ORM は、最適化された方法で Python 開発者に SQL の柔軟性と可能性を最大限に提供します。この ORM は、Python を使用した効率的で高性能なデータベースアクセス用に設計されています。SQLAlchemy
ORM は、大規模なアプリケーションに最適な ORM の 1つです。Yelp!、DropBox、reddit、Survey Monkey、OpenStack Project などの組織は、技術スタックで SQLAlchemy
ORM を使用しています。
通常、SQLAlchemy
ORM は、コミュニティで FlaskWeb フレームワークと一緒に使用されます。大規模なデータベースはパフォーマンスの問題をもたらします。この ORM は、巨大なデータベースに対して複雑な CRUD(作成、読み取り、更新、削除)クエリを簡単かつ効率的に実行するのに役立ちます。
SQLAlchemy
ORM の詳細については、公式ドキュメントこちらを参照してください。
Storm
Storm
ORM は、Python プログラミング言語の SQL サポートを提供するクリーンで軽量な API またはアプリケーションプログラミングインターフェイスです。Storm
ORM は学習曲線が短く、大規模なアプリケーションに適しています。これは、データベースへの効率的なアクセスを提供し、大規模なデータベースに対して複雑なクエリを実行するタスクを容易にする、高速で柔軟な ORM です。この ORM は、同じ Python コードを使用した複数のデータベースへの接続をサポートします。
Storm
ORM の詳細については、公式ドキュメントこちらを参照してください。