DEV Community

Cover image for O que é um ORM?
Jhonatam Santos
Jhonatam Santos

Posted on

O que é um ORM?

O mapeamento relacional de objeto (orm), é uma técnica programacional que permite consultar e manipular dados de um banco utilizando um paradigma orientado a objetos. Ao falar sobre orm estamos nos referindo a uma biblioteca que implementa esta técnica de mapeamento de objeto relacional (Object-Relational Mapping), daí a sigla orm.

  • A parte Object é aquela que você usa com sua linguagem de programação (python neste caso).
  • A parte relacional é um sistema gerenciador de banco de dados relacional (um banco de dados que é) existem outros tipos de bancos de dados, mas o mais popular é o relacional (você conhece tabelas, colunas, pk fk etc, por exemplo, Oracle MySQL, MS-SQL).
  • E finalmente a parte de Mapeamento é onde você faz uma ponte entre seus objetos e suas tabelas.

Aqui temos um exemplo fictício.

Você tem uma classe de livros, deseja recuperar todos os livros cujo autor é "Linus". Manualmente, você faria algo assim:

book_list = new List();
sql = "SELECT book FROM library WHERE author = 'Linus'";
data = query(sql); // I over simplify ...
while (row = data.next())
{
book = new Book();
book.setAuthor(row.get('author');
book_list.add(book);
}

Com uma biblioteca orm ficario assim:

book_list = BookTable.query(author="Linus");

A parte mecânica é tratada automaticamente através da biblioteca ORM.

Como aprender sobre ORM?

Bem, use um. Qualquer que seja a biblioteca ORM que você escolher, todas elas usam os mesmos princípios. Existem muitas bibliotecas ORM por aqui:

  • Java: Hibernate.
  • PHP: Propel or Doctrine (I prefer the last one).
  • Python: the Django ORM or SQLAlchemy (My favorite ORM library ever).
  • C#: NHibernate or Entity Framework.

Se você quiser experimentar uma biblioteca ORM na programação da Web, seria melhor usar uma pilha de estrutura inteira como:

  • Symfony (PHP, usando Propel ou Doctrine).
  • Django (Python, usando um ORM interno).

Top comments (0)