Mapeamento objeto-relacional

Mapeamento objeto-relacional (ou ORM, do inglês: Object-relational mapping) é uma técnica de desenvolvimento utilizada para reduzir a impedância da programação orientada aos objetos utilizando bancos de dados relacionais.[1][2] As tabelas do banco de dados são representadas através de classes e os registros de cada tabela são representados como instâncias das classes correspondentes.

Com esta técnica, o programador não precisa se preocupar com os comandos em linguagem SQL; ele irá usar uma interface de programação simples que faz todo o trabalho de persistência.

Não é necessária uma correspondência direta entre as tabelas de dados e as classes do programa. A relação entre as tabelas onde originam os dados e o objecto que os disponibiliza é configurada pelo programador, isolando o código do programa das alterações à organização dos dados nas tabelas do banco de dados.

A forma como este mapeamento é configurado depende da ferramenta que estamos a usar. Como exemplo, o programador que use Hibernate na linguagem Java pode usar arquivos XML ou o sistema de anotações que a linguagem providencia. Em outros casos o mapeamento é feito diretamente no código, através de herança de classes especiais como é o caso do ORM do Django e do SqlAlchemy na linguagem Python. Algumas ferramentas gráficas podem ser usadas para gerar o código que representa o modelo do banco, como o ORM Pony também da linguagem Python.

Ver também

Referências

  1. «What is Object/Relational Mapping? - Hibernate ORM». hibernate.org. Consultado em 2 de dezembro de 2020 
  2. «O que é ORM?». Blog da TreinaWeb. 19 de novembro de 2019. Consultado em 2 de dezembro de 2020 

Ligações externas

  • peewee- Para a linguagem de programação Python
  • Pony- Para a linguagem de programação Python
  • «EntityCloud». – Um ORM tipificado para .NET 
  • Doctrine (PHP)- Para a linguagem de programação PHP
  • TMS Aurelius- Para a linguagem de programação Delphi
  • «EntityDAC». - Delphi ORM 
  • «ORMBr Framework». - Para a linguagem de programação Delphi-Embarcadero 
  • v
  • d
  • e
Modelagem  · Normalização  · Estrutura de banco de dados  · GDBS distribuídos  · Integridade referencial  · Álgebra relacional  · Cálculo relacional  · Banco de dados relacional  · Mapeamento objeto-relacional  · Modelo relacional  · Banco de dados objeto-relacional  · Processamento de transação
Conceitos
Banco de dados  · ACID  · CRUD  · Null  · Chave candidata  · Chave estrangeira  · Chave primária  · Superkey  · Surrogate key  · Axiomas de Armstrong  · NoSQL
Objetos
Relação (Tabela)  · Vista  · Trigger  ·  · Cursor  · Log de transação  · Transação  · Índice  · Procedimento armazenado  · Partição
Componentes
Controle de concorrência  · Dicionário de dados  · JDBC  · ODBC  · Linguagem de consulta  · Query optimizer  · Query plan
Funções
Gestão e automatização  · Otimização de consulta  · Replicação
Produtos disponíveis no mercado: Orientados a objeto (Comparativo)  · Relacionais (Comparativo)  · Orientados a documento  · NoSQL  · NewSQL
Ícone de esboço Este artigo sobre banco de dados é um esboço. Você pode ajudar a Wikipédia expandindo-o.
  • v
  • d
  • e