GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

zzzeek

sqlalchemy – 貢献ガイドラインの開発リンクを参照して

投稿日:

貢献ガイドラインの開発リンクを参照して ください。http://sqlalchemy.org/develop.html

SQLAlchemy

Python SQL ToolkitとObject Relational Mapper

前書き

SQLAlchemyは、Python SQLツールキットとObject Relational Mapperであり、アプリケーション開発者にSQLのフルパワーと柔軟性を提供します。 SQLAlchemyは、効率的で高性能なデータベースアクセスのために設計された、よく知られているエンタープライズレベルの永続パターンの完全なスイートを提供し、単純でPythonのドメイン言語に適合します。

主なSQLAlchemyの機能は次のとおりです。

  • アイデンティティ・マップ、作業単位、およびデータ・マッパー・パターンのコアから構築された業界の強みORM。 これらのパターンは、宣言的な構成システムを使用してオブジェクトの透過的な永続性を可能にします。 ドメインモデルは自然に構築および操作でき、変更は現在のトランザクションと自動的に同期します。
  • オブジェクトモデルの観点から、ジョイン、サブクエリ、相関、その他ほとんどのものを含め、SQLの機能のすべてを明示的に公開する、リレーショナル指向のクエリシステム。 ORMを使用して問合せを作成すると、SQLを作成する際に使用するリレーショナル構成と同じ手法が使用されます。 あなたはいつでもリテラルSQLに入ることができますが、事実上必要なことはありません。
  • 関連するコレクションやオブジェクトの読み込みを包括的で柔軟なシステム。 コレクションはセッション内にキャッシュされ、個々のアクセス、結合を使用して一度にロード、または完全な結果セットにわたるコレクションごとのクエリによってロードできます。
  • コアSQL構築システムとDBAPIインタラクションレイヤー。 SQLAlchemy CoreはORMとは別のもので、独自の権利で完全なデータベース抽象化レイヤーであり、拡張可能なPythonベースのSQL式言語、スキーマメタデータ、接続プーリング、型変換、およびカスタム型が含まれています。
  • すべての主キー制約と外部キー制約は、複合で自然なものとみなされます。 代理整数型の主キーはもちろん標準ですが、SQLAlchemyはこのモデルを想定したりハードコーディングすることはありません。
  • データベースのイントロスペクションと生成。 データベーススキーマは、データベースメタデータを表すPython構造体に1つのステップで反映されます。 それらの同じ構造体は、ORMとは無関係に、コア内のすべてのCREATE文をすぐに生成することができます。

SQLAlchemyの哲学:

  • SQLデータベースは、オブジェクトコレクションの動作がますます少なくなり、サイズとパフォーマンスの向上が重要になります。 オブジェクトコレクションはテーブルや行の動作がますます少なくなり、抽象度の向上が重要になります。 SQLAlchemyは、これらの原則の両方に対応することを目指しています。
  • ORMは “R”を隠す必要はありません。 リレーショナルデータベースは、完全に公開されるべき、豊富なセットベースの機能を提供します。 SQLAlchemyのORMは、開発者がドメインモデルとリレーショナルスキーマの間にカスタムメディエーションレイヤーを構築し、いわゆる「オブジェクトリレーショナルインピーダンス」の問題を遠隔のメモリに変えるオープンエンドのパターンを提供します。
  • すべての場合、開発者は、オブジェクトモデルとリレーショナルスキーマの両方の設計、構造、および命名規則に関するすべての決定を行います。 SQLAlchemyは、これらの決定の実行を自動化する手段のみを提供します。
  • SQLAlchemyには、「ORMによって不正なクエリが生成されました」というようなものはありません。結合の構成、サブクエリと相関の使用方法、要求される列など、クエリの構造を完全に制御できます。 SQLAlchemyが行うすべてのことは、最終的には開発者主導の決定の結果です。
  • 問題がない場合は、ORMを使用しないでください。 SQLAlchemyは、コアと別のORMコンポーネントで構成されています。 Coreは、ターゲットデータベースのSQL文字列に直接レンダリングするPython構造のSQL構造を可能にする完全なSQL式言語を提供し、基本的に拡張されたDBAPIカーソルである結果セットを返します。
  • トランザクションは標準でなければなりません。 SQLAlchemyのORMでは、commit()が呼び出されるまで何も永続的な記憶領域にはなりません。 SQLAlchemyは、一連の操作の開始と終了を明確にするための一貫した手段をアプリケーションに作成することを奨励しています。
  • SQL文にリテラル値を表示しないでください。 バインドされたパラメータは可能な限り使用され、クエリオプティマイザがクエリプランを効果的にキャッシュし、SQLインジェクション攻撃を問題にならないようにします。

ドキュメンテーション

最新のドキュメントは次の場所にあります:

http://www.sqlalchemy.org/docs/

インストール/要件

インストールの詳細は、「 インストール」を参照してください

ヘルプ/開発/バグ報告の取得

SQLAlchemyコミュニティガイドを参照してください。

ライセンス

SQLAlchemyは、 MITライセンスの下で配布されます。







-zzzeek

執筆者: