ORM (ou Mapeamento de Objecto Relacional) é uma técnica de desenvolvimento utilizada converter tabelas do banco de dados em classes e reduzir a dificuldade na manipulação de bancos de dados relacionais.
Micro ORM é um subconjunto de um ORM, isto é, possui menos funcionalidades.
Porque usar um ORM?
Os ORMs trazem muitas vantagens, entre elas:
- Mapeamento classe – tabela da base de dados;
- O registo da base, torna-se um objecto;
- Abstração de consultas SQL, evitando repetição
- Uso de SQL bruto (Raw SQL), quando necessário;
- Abstração das configurações da base de dados;
- Migração de dados;
Como construir um Micro ORM ?
Para construir um micro orm precisamos dos seguintes itens:
- Configuração: Host, Porta, nome da base dados e palavra passe;
- Conexão: Conexão com um ou mais bases de acordo a configuração;
- Classe para representar a tabela, com a sua chave e as operações básicas;
- Classe para construção de consultas mais complexas (Query Builder);
- Mecanismo de serialização de dados vindo da BD.
Exemplos de ORMs
A maioria das linguagens possuem ORMs conceituados entre elas:
- PHP: Doctrine e Eloquent;
- Elixir: Ecto;
- Java: Hibernate e JPA;
- C#: Entity e Dapper;
- Python: SQLAlchemy e Django ORM;
- Ruby: ActiveRecord e DataMaper;
- Go: Gorm;
Observação: Em muitos casos, os ORMs exigem uma configuração complexa além de serem difíceis de manusear. Alguns programadores sentem-se presos na estrutura do ORM. Noutros alguns casos a configuração é feita num arquivo XML ou anotações (Ex: Hibernate) e noutros uma simples operação é necessário invocar muitos objectos.
Há linguagens facilitam a uso de ORMs, devido a facilidade de serialização de objectos e a manipulação de estrututuras com chave valor (arrays associativos ou dicionários). Nessas linguagens o acesso ao dados torna-se natural, tais como: Javascript, PHP e Python.
Exemplo: Neste exemplo vamos criar um micro ORM em PHP para os bancos MySQL e PostgreSQL.
Problema: Criar uma base de dados para Clientes. Os clientes possuem dados pessoais e contactos.
Modelo Lógico (Clientes e Contactos)
Código disponível em: https://www.github.com/ortizdavid/php-micro-orm
Para mais artigos:
https://www.dev.to/ortizdavid
https://www.medium.com/@ortizaad1994