Que es?
El mapeo objeto-relacional (m谩s conocido por su nombre en ingl茅s, Object-Relational mapping, o sus siglas O/RM, ORM, y O/R mapping) es una t茅cnica de programaci贸n para convertir datos entre el sistema de tipos utilizado en un lenguaje de programaci贸n orientado a objetos y el utilizado en una base de datos relacional, utilizando un motor de persistencia. En la pr谩ctica esto crea una base de datos orientada a objetos virtual, sobre la base de datos relacional. Esto posibilita el uso de las caracter铆sticas propias de la orientaci贸n a objetos (b谩sicamente herencia y polimorfismo). Hay paquetes comerciales y de uso libre disponibles que desarrollan el mapeo relacional de objetos, aunque algunos programadores prefieren crear sus propias herramientas ORM.
mas informaci贸n en wikipedia
Threads relacionados en PyAr
Alternativas
Sqlalchemy
SQLAlchemy es el toolkit SQL python y mapeador objeto relacional que provee a desarrolladores con el poder completo y la flexibilidad de SQL.
Provee un conjunto completo de conocidos patrones de persistencia de nivel enterprise, diseniados para acceso a base de datos eficiente y de alta performance, adaptado en un lenguaje de dominio especifico simple y pitonico.
Notas
MarianoGuerra: muy poderoso, pero a veces muy complejo para lograr cosas simples. A mi entender el mas mantenido y completo de todos los ORMs independientes de un framework.
SQLObject
SQLObject es un gestor objeto relacional que provee interfaces de objetos a tu base de datos con tablas como clases, filas como instancias y columnas como atributos.
SQLObject incluye un lenguaje de consultas basado en objetos Python que hace SQL mas abstracto, y provee independencia sustancial de la base de datos para aplicaciones.
Elixir
Elixir es una capa declarativa sobre la librer铆a SQLAlchemy, es una capa bastante fina, que provee la habilidad de crear simples clases en python que mapean directamente a tablas de una base de datos relacionales (este patr贸n es conocido como el patr贸n de disenio Active Record), proveyendo muchos de los beneficios de las bases de datos tradicionales sin perder la conveniencia de los objetos python.
Elixir tiene la intenci贸n de reemplazar la extensi贸n ActiveMapper de SQLAlchemy, y el proyecto TurboEntity pero no intena reemplazar las caracter铆sticas b谩sicas de SQLAlchemy, en su lugar se enfoca en proveer una sintaxis mas simple para definir modelos de objetos cuando no necesitas la expresividad del mapeo manual de definiciones de SQLAlchemy.
Notas
MarianoGuerra: una herramienta muy 煤til para facilitar el uso de SQLAlchemy, seg煤n tengo entendido no esta siendo activamente mantenido.
Peewee
peque帽o orm
escrito en python
provee una interfaz de consulta liviana sobre sql
usa conceptos sql en las consultas, como joins y clausulas where
soporta sqlite, mysql, postgresql
Espec铆ficos de un framework
Django ORM
ORM del framework web de django.
Un modelo es la fuente 煤nica y definitiva de informaci贸n sobre tus datos, contiene los campos esenciales y comportamientos de los datos que almacenas. Generalmente, cada modelo mapea a una tabla 煤nica en la base de datos.
Documentaci贸n Mas documentaci贸n
Notas
MarianoGuerra: La mejor opci贸n si vas a hacer una aplicaci贸n en django ya que provee buena integraci贸n con el resto de django, si eleg铆s otra opci贸n podes perder esta integraci贸n.
Web2py ORM
web2py incluye una capa de abstracci贸n de base de datos (DAL), una API que mapea objetos python a objetos de la base de datos como queries, tablas, registros.
El DAL genera SQL din谩micamente en tiempo real usando el dialecto especifico de la base de datos, de manera que no tenes que escribir SQL o aprender diferentes dialectos (el termino SQL es usado gen茅ricamente), y la aplicaci贸n sera portable entre distintos tipos de bases de datos.
Al momento de escribir esto las bases de datos soportadas son SQLite (que viene con python y por lo tanto web2py), PostgreSQL, MySQL, Oracle, MSSQL, FireBird, DB2, Informix, Ingres y (parcialmente) Google App Engine (SQL y NoSQL).
Experimentalmente soporta mas bases de datos, visita el sitio web de web2py y la lista de correos para adaptadores mas recientes.