ソースコードオブジェクトから目次またはデータベースにデータを渡すことを考えた、または必要としたことがありますか? それを手動で行うのではなく、自動的に行うことができるツールがあると非常に実用的ですよね? しかし、それを可能にするためには、それらの値は適切な形式である必要があります。 これを行う必要がある場合は、 ORM(オブジェクトリレーショナルマッピング)を知っている必要があります.
ORMを使用すると、オブジェクトのデータが正しい形式に渡され、それらをマッピングしてデータベースにすべての情報を保存できるようになります。 これにより、コードで作成したアプリケーションで見つかった値、つまり仮想データベースが作成されます。 このデータベースにリンクされています それらに永続性を与え、この簡単な方法でそれらを登録します。 これにより、記録された情報に永続性が与えられ、後で保存、分析、記録、または使用できるようになります。
POR ejemplo温度と湿度を記録するDHT11センサーからの値の読み取りを担当するPythonプログラムがあると想像してください。 しかし、環境からこれらの値を記録することは望ましくありません。 簡単な方法で、必要なものをプログラムするためのソースコードを作成し、センサーが取得した値を読み取って画面に表示することができます。 しかし、これらの値のピークがいつ発生したかを分析するために、または他のユーティリティのために値を保存したい場合はどうなりますか?
その場合、そのデータをデータベースに同時に保存する機能が必要です。ここでORMが役立ちます。 あなたのDIYプロジェクトに加えて 必要なものを保存し、値を処理できます データベースにそれらをキャプチャしたという事実のおかげで、手動または他のソフトウェアを介して...
ORMとは何ですか?
El オブジェクトリレーショナルマッピングまたはORM 英語での頭字語の場合、オブジェクト指向プログラミング言語またはプログラムで使用されるデータと、永続性エンジンとしてのリレーショナルデータベース(SQLタイプ)を変換するのに役立つプログラミング手法です。 これにより、プログラムの値によって、必要なデータを保持するための仮想オブジェクト指向データベースが作成されます。
データベースに接続されたアプリケーションをプログラムしたことがある場合は、情報をデータベースに適合させるために、またはその逆に変換することは非常に難しいことに気付くでしょう。 つまり、 マッピングは退屈なものです ORMを使用して自動化できることに加えて、使用するデータベースから独立させることができ、データベースエンジンを問題なく変更することもできます。
Un 実用例はF1カーです、圧力、温度、消費量、RPM、速度、加速度、ギアチェンジ、ステアリングの動き、オイルなどの値を測定する一連のセンサーがありますこれらの値はすべて、テレメトリのおかげで、エンジニアがコンピューター上でリアルタイムに確認できます。 しかし、セッションが終了すると、エンジニアはそのデータを調査および分析して、セットアップを改善する方法、車を進化させる方法、または障害の原因を理解する必要があります。 これを可能にするには、データベースにエクスポートする必要があります。
ORMの長所と短所
私がすでにコメントしたように、 ORMを使用すると、抽象化できます データベースから取得し、必要なソースコードを大幅に簡素化します。 マッピングは自動的に行われるため、プログラミング時に多くの問題を抱えることになります。 使いやすさとスピードに加えて、攻撃に対するデータアクセス層のセキュリティを提供します。
しかし、すべてが良いことではありません ORMにも欠点があります。 負荷の高い環境では、システムにレイヤーを追加するため、パフォーマンスが低下する可能性があります。 また、ORMを使用できるように学習する必要があります。これには、適切に理解して活用するのに時間がかかる場合があります。
プログラミング言語のORM
使用するプログラミング言語によって異なります ORMを使用できます。 ORMだけを使用することはできません。正しいものを使用する必要があります。 例えば:
- Java:Hibernate、MyBatis、iBatis、Ebeanなど。
- .NET:Entity Framework、nHibernate、MyBatis.Netなど。
- PHP:教義、推進力、岩石、休眠状態など。
- Python: Peewee、SQLAlchemy、PonyORM、Elixirなど。
PythonとORMの例
Peeweeは、Pythonで使用するためのシンプルで短縮されたORMです。。 あなたはあなたからより多くの情報を得ることができます 公式サイト。 また、PeeweeはさまざまなDBMS、つまりSQLite、MySQL、Postgresqlなどのいくつかのデータベース管理システムをサポートしていることを知っておく必要があります。 最初のbbdd宣言を変更するだけで、それだけです。
例えば クイックガイドまたはクイックスタート このサイトから、次のようなPeeweeの簡単なコード例を見ることができます。
from peewee import * db = SqliteDatabase('people.db') class Person(Model): name = CharField() birthday = DateField() class Meta: database = db # This model uses the "people.db" database.
それがあなたにほとんど思われない場合には、あなたはあなたの処分で持っています pwizツール、データベースからPeeweeモデルを取得するプログラム。 例えば:
<br data-mce-bogus="1"> python -m pwiz -e postgresql basedatos > modelo.py<br data-mce-bogus="1">