ORM (Object Relational Mapping): i-automate ang pag-record ng data

ORM (logo ng database at source code)

Naisip mo ba o kailangan upang ipasa ang data mula sa iyong mga object ng source code sa isang talaan ng nilalaman o database? Napaka praktikal na magkaroon ng isang tool upang magawa iyon nang awtomatiko at hindi ito gawin nang manu-mano, tama ba? Ngunit upang posible iyon, ang mga halagang iyon ay dapat na nasa tamang format. Kung kailangan mong gawin ito, dapat mong malaman ang ORM (Object Relational Mapping).

Sa ORM ang data ng iyong mga bagay ay ipapasa sa isang tamang format upang mai-save ang lahat ng impormasyong iyon sa isang database sa pamamagitan ng pagmapa sa kanila. Lumilikha iyon ng isang virtual database kung saan ang mga halagang nahanap sa application na iyong nilikha sa iyong code, at sa gayon naka-link sa database na ito upang bigyan sila ng pagtitiyaga at irehistro ang mga ito sa simpleng pamamaraan na ito. Pinagkalooban nito ang nakarehistrong impormasyon nang may pagtitiyaga upang maimbak, masuri, maitala o magamit sa paglaon.

Por ejemploIsipin na mayroon kang isang programa ng Python na namamahala sa mga halaga ng pagbabasa mula sa isang sensor ng DHT11 na nagtatala ng temperatura at halumigmig. Ngunit hindi mo nais na maitala ang mga halagang ito mula sa isang kapaligiran. Sa isang simpleng paraan maaari kang lumikha ng isang source code upang mai-program kung ano ang kailangan mo at basahin ang mga halagang kinuha ng sensor at ipakita ang mga ito sa screen. Ngunit paano kung nais mong iimbak ang mga halaga upang pag-aralan kung kailan naganap ang mga taluktok ng mga halagang ito o para sa anumang ibang gamit?

Sa kasong iyon, dapat magkaroon ka ng kakayahang mai-save ang data na iyon nang sabay-sabay sa isang database at dito magagamit ang ORM. Bilang karagdagan sa iyong proyekto sa DIY maaari mong iimbak kung ano ang kailangan mo at gamutin ang mga halaga manu-mano o sa pamamagitan ng iba pang software salamat sa katotohanan na nakuha mo ang mga ito sa isang database ...

Ano ang ORM?

El object-relational mapping o ORM para sa pagpapaikli nito sa Ingles, ito ay isang diskarte sa pagprogram na nagsisilbi upang ibahin ang data na ginamit sa wika o programa na nakatuon sa object na nakatuon sa object at ang kaugnayang database (uri ng SQL) bilang isang engine ng pagtitiyaga. Gagawa iyon ng mga halaga ng programa na lumikha ng isang virtual na oriented na object na database upang hawakan ang data na kailangan mo.

Kung na-program mo na dati ang isang application na konektado sa isang database, mapagtanto mo na medyo mahirap ibahin ang impormasyon upang maiakma ito sa database o kabaligtaran. Namely, ang pagmamapa ay isang nakakapagod na bagay na maaari mong i-automate ang paggamit ng ORM, bilang karagdagan sa paggawa nito na independyente sa database na nais mong gamitin at maaari mo ring baguhin ang database engine nang walang problema.

Un praktikal na halimbawa ay isang F1 na kotse, kung saan mayroon itong isang serye ng mga sensor na sumusukat sa mga halaga ng presyon, temperatura, pagkonsumo, RPM, bilis, pagbilis, mga pagbabago sa gear, paggalaw ng pagpipiloto, langis, atbp. Ang lahat ng mga halagang ito ay nakikita sa real time ng mga inhinyero sa kanilang mga computer salamat sa telemetry. Ngunit kapag natapos ang sesyon, kailangang pag-aralan at suriin ng mga inhinyero ang data na iyon upang maunawaan kung paano pagbutihin ang pag-set up, i-evolve ang kotse o kung ano ang sanhi ng pagkabigo. Upang maging posible ito, kailangan nilang i-export sa isang database.

Mga kalamangan at dehado ng ORM

Tulad ng naibigay ko na, kasama Pinapayagan ka ng ORM na mag-abstract mula sa database at lubos na gawing simple ang kinakailangang source code. Ang pagmamapa ay magiging awtomatiko at nangangahulugan ito ng pagkuha ng maraming problema sa iyong balikat kapag nag-program. Bilang karagdagan sa kadalian at bilis ng paggamit, nagbibigay ito ng seguridad ng layer ng pag-access ng data laban sa mga pag-atake.

Ngunit hindi lahat ay mabubuting bagay Ang ORM ay mayroong mga kabiguan din. Sa mabibigat na-load na mga kapaligiran maaari itong mabawasan ang pagganap habang nagdaragdag ka ng isang labis na layer sa system. Nagsasangkot din ito ng pag-aaral ng ORM upang magamit mo ito, na maaaring tumagal ng oras upang maunawaan nang maayos at samantalahin.

ORM para sa mga wika ng programa

Depende sa ginagamit mong wika ng programa maaari kang gumamit ng isang ORM. Hindi ka maaaring gumamit ng anumang ORM, dapat mong gamitin ang tama. Halimbawa:

  • Java: Hibernate, MyBatis, iBatis, Ebean, atbp.
  • . NET: Entity Framework, nHibernate, MyBatis.Net, atbp.
  • PHP: Doktrina, Propel, Rocks, Torpor, atbp.
  • Sawa: Peewee, SQLAlchemy, PonyORM, Elixir, atbp.

Halimbawa sa Python at ORM

Ang Peewee ay isang simple at pinaikling ORM para magamit sa Python. Maaari kang makakuha ng karagdagang impormasyon mula sa iyong opisyal na website. Gayundin, dapat mong malaman na sinusuportahan ng Peewee ang iba't ibang DBMS, iyon ay, maraming mga sistema ng pamamahala ng database, tulad ng SQLite, MySQL at Postgresql. Kailangan mo lang baguhin ang paunang deklarasyon ng bbdd at iyon na.

Halimbawa, sa ang iyong mabilis na gabay o quickstart Mula sa site maaari mong makita ang mga simpleng halimbawa ng code sa Peewee tulad nito:

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.

Kung sakaling parang maliit sa iyo iyon, mayroon kang kakayahan ang pwiz tool, isang programa na kumukuha ng mga modelo ng Peewee mula sa mga database. Halimbawa:

<br data-mce-bogus="1">

python -m pwiz -e postgresql basedatos &gt; modelo.py<br data-mce-bogus="1">


Maging una sa komento

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.