O que é um ORM?
Jhonatam Santos
Posted on May 17, 2022
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).
Posted on May 17, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.