ORM (Object Relational Mapping): маалыматтарды жазууну автоматташтыруу

ORM (маалымат базасы жана баштапкы коддун логотиби)

Баштапкы код объектилеринен маалыматтарды мазмунуна же маалымат базасына өткөрүп берүүнү ойлонуп көрдүңүз беле? Автоматтык түрдө жасай турган курал бар болсо, аны кол менен жасабай эле койсоңуз болот, туурабы? Бирок мүмкүн болуш үчүн, ал баалуулуктар тийиштүү форматта болушу керек. Эгер муну жасаш керек болсо, сиз ORM (Object Relational Mapping) билишиңиз керек.

ORM менен объектилердин маалыматтары аларды картага түшүрүп, маалымат базасында сактап калуу үчүн туура форматка өткөрүлөт. Виртуалдык маалымат базасын түзүп, анда колдонмодогу баалуулуктар кодуңузда түзүлдү, демек ушул маалымат базасына байланыштуу аларга туруктуу болуу жана ушул жөнөкөй жол менен аларды каттоого алуу. Бул катталган маалыматты сактоого, анализдөөгө, жаздырууга же кийинчерээк колдонууга мүмкүнчүлүк берип, туруктуу бойдон берет.

Por EjemploDHT11 сенсорунан температураны жана нымдуулукту жазуучу маанилерди окуу үчүн жооптуу Python программасы бар деп элестетип көрсөңүз. Бирок сиз бул баалуулуктарды чөйрөдөн жазгыңыз келбейт. Жөнөкөй жол менен сиз керектүү нерсени программалоо үчүн баштапкы кодду түзүп, сенсор алган баалуулуктарды окуп, аларды экранга чыгарсаңыз болот. Бирок, эгерде сиз ушул баалуулуктардын туу чокусу болгон учурду же башка пайдалуу программаларды талдоо үчүн баалуулуктарды сактоону кааласаңызчы?

Мындай учурда, ошол маалыматтар базасында бир эле учурда сакталып кала турган мүмкүнчүлүгүңүз болушу керек жана бул жерде ORM жардам берет. Сиздин DIY долбооруна кошумча керектүү нерсеңизди сактап, баалуулуктарга мамиле жасай аласыз аларды кол менен же башка программалык камсыздоо аркылуу маалымат базасына түшүргөнүңүз үчүн ...

ORM деген эмне?

El объект-реляциялык карта же ORM Англис тилиндеги кыскартуу үчүн, бул программалоо ыкмасы, объектке багытталган программалоо тилинде же программада колдонулган маалыматтарды жана реляциялык маалыматтар базасын (SQL түрү) туруктуу кыймылдаткыч катары которууга кызмат кылат. Бул программанын баалуулуктары сизге керектүү маалыматтарды сактоо үчүн виртуалдык объектке багытталган маалымат базасын түзүүгө мүмкүндүк берет.

Эгерде сиз буга чейин кандайдыр бир маалымат базасына туташкан тиркемени программалаган болсоңуз, анда маалыматты маалымат базасына ылайыкташтыруу же аны тескерисинче өзгөртүү кыйын экендигин түшүнгөн болосуз. Тактап айтканда, карта түзүү жадатма нерсе сиз ORM колдонууну автоматташтыра аласыз, аны колдонууну каалаган маалымат базасынан көз карандысыз кылуудан тышкары, маалымат базасынын кыймылдаткычын да көйгөйсүз өзгөртө аласыз.

Un практикалык мисал - F1 унаасы, анда басым, температура, керектөө, RPM, ылдамдык, ылдамдануу, редуктордун өзгөрүшү, руль кыймылын, май жана башка нерселерди өлчөөчү бир катар сенсорлор бар. Бул баалуулуктардын бардыгын инженерлер өз компьютерлеринде телеметриянын жардамы менен реалдуу убакытта көрө алышат. Бирок сессия бүткөндөн кийин, инженерлер орнотууну кантип өркүндөтүү керектигин түшүнүү үчүн, ошол маалыматтарды изилдеп, талдап чыгышы керек, унааны өркүндөтүп же эмне себептен иштебей калгандыгын. Бул мүмкүн болушу үчүн, аларды маалымат базасына экспорттоо керек.

ORM артыкчылыктары жана кемчиликтери

Мен буга чейин эле айтып кеткендей, менен ORM абстракциялоого мүмкүндүк берет маалымат базасынан жана керектүү булак кодун кыйла жөнөкөйлөтүү. Картага түшүрүү автоматтык түрдө жүргүзүлөт жана программалоо учурунда бир топ кыйынчылыктарды кетирүүнү билдирет. Колдонуунун жөнөкөйлүгүнөн жана ылдамдыгынан тышкары, маалыматка кирүү катмарынын чабуулдарга каршы коопсуздугун камсыз кылат.

Бирок бардыгы эле жакшы эмес ORMдин терс жактары да бар. Оор жүктөлгөн чөйрөлөрдө, ал тутумга кошумча катмар кошуп жаткандыктан, иштин көрсөткүчүн төмөндөтүшү мүмкүн. Ошондой эле, ORMди колдонуп, аны колдонууга болот, бул туура түшүнүү жана артыкчылыктардан пайдалануу үчүн убакыт талап кылынат.

Программалоо тилдери үчүн ORM

Сиз колдонгон программалоо тилине жараша сиз ORM колдоно аласыз. Сиз эч кандай ORM колдоно албайсыз, анын туура түрүн колдонушуңуз керек. Мисалы:

  • Java: Уйку режим, MyBatis, iBatis, Ebean ж.б.
  • .NET: Entity Framework, nHibernate, MyBatis.Net ж.б.
  • PHP: Doctrine, Propel, Rocks, Torpor ж.б.
  • Python: Peewee, SQLAlchemy, PonyORM, Elixir ж.б.

Python жана ORM менен мисал

Peewee бул Python менен колдонуу үчүн жөнөкөй жана кыскартылган ORM. Көбүрөөк маалыматты сизден алсаңыз болот расмий сайты. Ошондой эле, Peewee ар кандай МББны, башкача айтканда, 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 &gt; modelo.py<br data-mce-bogus="1">

 

 


Макаланын мазмуну биздин принциптерге карманат редакциялык этика. Ката жөнүндө кабарлоо үчүн чыкылдатыңыз бул жерде.

Комментарий биринчи болуп

Комментарий калтырыңыз

Сиздин электрондук почта дареги жарыяланбайт. Милдеттүү талаалар менен белгиленет *

*

*

  1. Маалыматтар үчүн жооптуу: Мигель Анхель Гатан
  2. Маалыматтын максаты: СПАМды көзөмөлдөө, комментарийлерди башкаруу.
  3. Мыйзамдуулук: Сиздин макулдугуңуз
  4. Маалыматтарды берүү: Маалыматтар үчүнчү жактарга юридикалык милдеттенмелерден тышкары билдирилбейт.
  5. Маалыматтарды сактоо: Occentus Networks (ЕС) тарабынан уюштурулган маалыматтар базасы
  6. Укуктар: Каалаган убакта маалыматыңызды чектеп, калыбына келтирип жана жок кыла аласыз.