Artigo original: What is an ORM – The Meaning of Object Relational Mapping Database Tools

O mapeamento objeto-relacional (ou ORM, do inglês Object-relational mapping) é uma técnica usada na criação de uma "ponte" entre programas orientados a objetos e, na maioria dos casos, bancos de dados relacionais.

De outro modo, você pode ver o ORM como a camada que conecta a programação orientada a objetos (OOP, do inglês Object-Oriented Programming) aos bancos de dados relacionais.

Ao interagir com um banco de dados usando linguagens OOP, você terá que realizar diferentes operações como criar, ler, atualizar e excluir (CRUD, do inglês Create-Read-Update-Delete) dados de/em um banco de dados. Por padrão, você usa a linguagem SQL para realizar essas operações em bancos de dados relacionais.

Embora usar SQL para esse propósito não seja necessariamente uma má ideia, o ORM e as ferramentas ORM ajudam a simplificar a interação entre bancos de dados relacionais e diferentes linguagens OOP.

O que é uma ferramenta ORM?

Uma ferramenta ORM é um software projetado para ajudar desenvolvedores de OOP a interagir com bancos de dados relacionais. Então, em vez de criar seu próprio software ORM do zero, você pode fazer uso dessas ferramentas.

Aqui está um exemplo de código SQL que recupera informações sobre um usuário específico de um banco de dados:

"SELECT id, name, email, country, phone_number FROM users WHERE id = 20"

O código acima retorna informações sobre um usuário — name, email, country e phone_number — de uma tabela chamada users. Usando a cláusula WHERE, especificamos que as informações devem ser as do usuário com o id 20.

Por outro lado, uma ferramenta ORM pode fazer a mesma consulta acima com métodos mais simples. Isso é:

users.GetById(20)

Então, o código acima faz o mesmo que a consulta SQL. Observe que cada ferramenta ORM é construída de maneira diferente, então os métodos nunca são os mesmos, mas o propósito geral é semelhante.

As ferramentas ORM podem gerar métodos como o do último exemplo.

A maioria das linguagens OOP tem uma variedade de ferramentas ORM que você pode escolher. Aqui estão algumas das mais populares para desenvolvimento em Java, Python, PHP e .NET:

Ferramentas ORM populares para Java

1. Hibernate

O Hibernate permite que os desenvolvedores escrevam classes de dados persistentes seguindo conceitos OOP como herança, polimorfismo, associação, composição. Ele é altamente eficiente e também escalável.

2. Apache OpenJPA

O Apache OpenJPA também é uma ferramenta de persistência do Java. Pode ser usado como uma camada de persistência em POJO (do inglês, plain old Java object – o objeto típico de Java) independente.

O EclipseLink é uma solução de persistência de código aberto do Java para serviços da Web relacionais, XML e banco de dados.

4. jOOQ

O jOOQ gera código em Java a partir de dados armazenados em um banco de dados. Você também pode usar essa ferramenta para criar consultas SQL com a segurança da tipagem.

Você pode usar o Oracle TopLink para criar aplicações de alto desempenho que armazenam dados persistentes. Os dados podem ser transformados em dados relacionais ou elementos XML.

Ferramentas ORM populares para Python

1. Django

O Django é uma ótima ferramenta para criar aplicações da web rapidamente.

2. web2py

O web2py é um framework full-stack de código aberto do Python para criar aplicações da web rápidas, escaláveis, seguras e orientadas a dados.

3. SQLObject

O SQLObject é um gerenciador relacional de objetos que fornece uma interface de objeto para seu banco de dados.

4. SQLAlchemy

O SQLAlchemy fornece padrões de persistência projetados para acesso a banco de dados eficiente e de alto desempenho.

Ferramentas ORM populares para PHP

1. Laravel

O Laravel vem com um gerenciador relacional de objetos chamado Eloquent que facilita a interação com bancos de dados.

2. CakePHP

O CakePHP fornece dois tipos de objetos: repositórios que fornecem acesso a uma coleção de dados e entidades que representam registros individuais de dados.

3. Qcodo

O Qcodo fornece diferentes comandos que podem ser executados no terminal para interagir com bancos de dados.

4. RedBeanPHP

O RedBeanPHP é um mapeador relacional de objetos que não necessita de configuração.

Ferramentas ORM populares para .NET

1. Entity Framework

O Entity Framework é um mapeador de banco de dados de objetos de vários bancos de dados. Ele suporta SQL, SQLite, MySQL, PostgreSQL e Azure Cosmos DB.

2. NHibernate

O NHibernate é um mapeador relacional de objetos de código aberto com diversos plug-ins e ferramentas para tornar o desenvolvimento mais fácil e rápido.

3. Dapper

O Dapper é um micro-ORM. É usado principalmente para mapear consultas para objetos. Essa ferramenta não faz a maioria das coisas que uma ferramenta ORM faria, como geração de SQL, armazenamento em cache de resultados, carregamento lento (do inglês, lazy loading) e assim por diante.

4. Base One Foundation Component Library (BFC)

O BFC é uma estrutura para criar aplicações de banco de dados em rede com Visual Studio e com software DBMS da Microsoft, Oracle, IBM, Sybase e MySQL.

Você pode ver mais ferramentas ORM aqui.

Agora, vamos discutir algumas das vantagens e desvantagens de se usar ferramentas ORM.

Vantagens de se usar ferramentas ORM

Aqui estão algumas das vantagens de usar uma ferramenta ORM:

  • Acelera o tempo de desenvolvimento para equipes.
  • Diminui o custo de desenvolvimento.
  • Lida com a lógica necessária para interagir com os bancos de dados.
  • Melhora a segurança. As ferramentas ORM são construídas para eliminar a possibilidade de ataques de injeção de SQL.
  • Você escreve menos código ao usar ferramentas ORM do que com SQL.

Desvantagens de se usar ferramentas ORM

  • Aprender a usar ferramentas ORM pode ser demorado.
  • Elas provavelmente não terão um desempenho melhor quando consultas muito complexas estiverem envolvidas.
  • As ferramentas de ORMs são geralmente mais lentas do que usar SQL.

Resumo

Neste artigo, falamos sobre Mapeamento Objeto-Relacional. Essa é uma técnica usada para conectar programas orientados a objetos a bancos de dados relacionais.

Listamos algumas das ferramentas ORM populares para diferentes linguagens de programação.

Concluímos com algumas das vantagens e desvantagens de se usar ferramentas ORM.

Bons estudos em programação para você!