ORM (Object Relational Mapping): automatitza el registre de dades

ORM (logo de base de dades i de codi font)

Alguna vegada has pensat o necessitat passar les dades dels objectes de la teva codi font en una taula de contingut o base de dades? Seria molt pràctic tenir una eina per poder fer això de forma automàtica i no fer-ho manualment oi? Però perquè això sigui possible, aquests valors haurien d'estar en el format adequat. Doncs si necessites fer això, has de conèixer ORM (Object Relational Mapping).

Amb ORM les dades dels teus objectes es passaran a un format correcte per poder guardar tota aquesta informació en una bbdd mapeándolos. Això crea una base de dades virtual on els valors que es troben en l'aplicació que has creat al teu codi, i d'aquesta manera queden vinculats a aquesta base de dades per donar-los persistència i registrar-los d'aquesta manera tan senzilla. Això dota la informació registrada de persistència per a poder-la emmagatzemar, analitzar, registrar o utilitzar posteriorment.

Per EXEMPLE, Imagina que tens un programa en Python encarregat de llegir valors d'un sensor DHT11 que registra temperatura i humitat. Però no vols registrar aquests valors d'un entorn. D'una forma senzilla podries crear un codi font per programar el que necessites i que vagi llegint els valors que pren el sensor i els mostrarà a la pantalla. Però què passa si vols emmagatzemar els valors per analitzar quan s'han produït pics d'aquests valors o per a qualsevol altra utilitat?

En aquest cas, hauries de tenir la capacitat que aquestes dades es vagin guardant alhora en una base de dades i aquí és on ORM es torna útil. A més del teu projecte DIY podràs emmagatzemar el que necessitis i tractar els valors de forma manual o mitjançant un altre programari gràcies al fet que els has capturat en una base de dades ...

Què és ORM?

El mapatge objecte-relacional o ORM per les sigles en anglès, és una tècnica de programació que serveix per transformar dades usats en el programa o llenguatge de programació orientat a objectes i la base de dades (tipus SQL) relacional com a motor de persistència. Això farà que els valors de el programa creï una base de dades orientada a objectes virtual per contenir les dades que necessites.

Si alguna vegada has programat una aplicació connectada a una base de dades t'hauràs adonat que és bastant complicat transformar la informació per adaptar-la a la base de dades o viceversa. És a dir, el mapatge és una mica tediós que pots automatitzar fent servir ORM, a més de fer-ho independent de la base de dades que vulguis fer servir i fins i tot pots canviar de motor de base de dades sense problema.

Un exemple pràctic és un cotxe de F1, On té una sèrie de sensors que van mesurant valors de pressió, temperatura, consum, RPM, velocitat, acceleració, canvi de marxes, moviments de la direcció, oli, etc. Tots aquests valors els veuen en temps real els enginyers en els seus ordinadors gràcies a la telemetria. Però quan acaba la sessió, els enginyers necessiten estudiar i analitzar aquestes dades per a comprendre com millorar el setup, evolucionar el cotxe o què s'ha produït la fallada. Perquè això sigui possible calen exportar a una base de dades.

Avantatges i desavantatges de ORM

Com ja he comentat, amb ORM et permet abstreure't de la base de dades i simplificar molt el codi font necessari. El mapejat serà automàtic i això significa llevar-te un munt de problemes de sobre quan programes. A més de la facilitat i velocitat d'ús, aporta seguretat de la capa d'accés de dades contra atacs.

Però no tot són coses bones, ORM també té els seus desavantatges. En entorns amb gran càrrega pot reduir el rendiment, ja que estàs afegint una capa extra a el sistema. També implica aprendre ORM per poder-lo utilitzar, el que pot portar el seu temps per comprendre-adequadament i treure partit d'ell.

ORM per a llenguatges de programació

Segons el llenguatge de programació que utilitzis pots fer servir un ORM. No es pot emprar qualsevol ORM, has d'usar l'adequat. Per exemple:

  • Java: Hibernate, MyBatis, iBatis, Ebean, etc.
  • . NET: Entity Framework, NHibernate, MyBatis.Net, etc.
  • PHP: Doctrine, Propel, Rocks, torpor, etc.
  • Python: Peewee, SQLAlchemy, PonyORM, Elixir, etc.

Exemple amb Python i ORM

Peewee és un ORM simple i reduït per usar amb Python. Pots obtenir més informació des de la seva pàgina web oficial. A més, has de saber que Peewee suporta diferents SGBD, és a dir, diversos sistemes gestors de bases de dades, com SQLite, MySQL i Postgresql. Només cal canviar la declaració inicial de bbdd i llest.

Per exemple, en seva guia ràpida o quickstart de el lloc pots veure exemples senzills de codi amb Peewee com aquest:

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.

Per si això et sembla poc, tens a la teva disposició l'eina pwiz, Un programa que obté models Peewee a partir de bases de dades. Per exemple:

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

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


Sigues el primer a comentar

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.