Article image
Valdir Alves
Valdir Alves07/03/2023 20:15
Compartilhe

Quem é esse tal ORM?

    Quem é esse tal ORM?

    O conceito de ORM(Object Relational Mapping) surgiu aproximadamente no início dos anos 90, quando os sistemas de banco de dados relacionais (RDBMS) começaram a se tornar populares. Naquela época, a maioria dos sistemas de software eram baseados em linguagens de programação orientadas a objetos, como C++, mas os dados ainda eram armazenados em bancos de dados relacionais.

    A primeira implementação de ORM foi criada em 1989 pelo renomado pesquisador francês  e cientista da computação Serge Abiteboul, enquanto trabalhava no INRIA (Institut national de recherche en informatique et en automatique) em Paris. 

    Abiteboul criou um sistema chamado O2, que permitia que os desenvolvedores escrevessem código em uma linguagem de programação orientada a objetos e, em seguida, o sistema traduzia automaticamente esse código para SQL para interagir com o banco de dados. O sistema forneceu recursos como herança, polimorfismo e encapsulamento, que são fundamentais na programação orientada a objetos.

    No entanto, o ORM só se tornou mais popular e amplamente utilizado em meados dos anos 2000, quando a programação orientada a objetos e os bancos de dados relacionais se tornaram ainda mais difundidos e a necessidade de uma maneira mais fácil de manipular dados do banco de dados em objetos tornou- se evidente. Desde então, o ORM se tornou uma técnica comum em muitos sistemas de software modernos.

    Quais benefícios em usar ORM ?

    • Abstração do Banco de Dados
    • Maior Produtividade
    • Portabilidade
    • Segurança
    • Gerenciamento de Relacionamentos

    Abstração do banco de dados: Ele permite que os desenvolvedores trabalhem com objetos e propriedades em vez de tabelas e colunas do banco de dados, o que torna o código mais legível e fácil de entender.

    Maior produtividade: Ele pode auxiliar os desenvolvedores a escrever código mais rapidamente, reduzindo a quantidade de código necessário para interagir com o banco de dados e eliminando a necessidade de escrever instruções SQL complexas.

    Portabilidade: Ele  pode ajudar a tornar o código mais portátil entre diferentes bancos de dados, pois o código que usa o ORM é geralmente independente do banco de dados subjacente.

    Segurança: Ele  ajuda a evitar vulnerabilidades de segurança, como injeção de SQL, ao garantir que as consultas sejam construídas de forma segura.

    Gerenciamento de relacionamentos: Ele pode gerenciar automaticamente relacionamentos complexos entre tabelas, o que pode ser difícil e propenso a erros se feito manualmente em instruções SQL.

    Desvantagem do Uso de ORM

    • Desempenho
    • Complexidade
    • Restrições
    • Mapeamento Imperfeito

    Desempenho: Em alguns casos, o uso de ORM pode afetar o desempenho do sistema, pois o ORM adiciona uma camada extra de abstração e processamento que pode ser mais lento do que as instruções SQL diretas. Isso pode ser especialmente importante em sistemas que lidam com grandes volumes de dados ou em sistemas que precisam de tempos de resposta muito rápidos.

    Complexidade: ORM pode adicionar uma camada extra de complexidade ao sistema, tornando-o mais difícil de entender e manter. Isso é especialmente verdadeiro em sistemas com modelos de dados complexos ou em que a lógica de negócios é altamente dependente dos detalhes de implementação do ORM.

    Restrições: O ORM pode impor restrições em como os desenvolvedores trabalham com o banco de dados, limitando sua flexibilidade e controle. Por exemplo, o ORM pode não permitir que os desenvolvedores otimizem consultas de banco de dados para um desempenho melhor.

    Mapeamento imperfeito: Em alguns casos, o ORM pode não mapear perfeitamente objetos em tabelas do banco de dados ou vice-versa, o que pode resultar em inconsistências ou comportamento inesperado.

    No entanto, é importante lembrar que essas desvantagens não se aplicam a todos os casos e que o uso de ORM pode ser vantajoso em muitas situações. Os desenvolvedores devem avaliar cuidadosamente as necessidades de seus projetos e escolher a técnica de acesso a dados que melhor atenda a essas necessidades.

    ORMs populares e respeitados no Mercado

    • Hibernate
    • Entity Framework
    • Django ORM
    • Prisma

    O Hibernate é um ORM popular para Java que fornece uma ampla gama de recursos avançados, como suporte para caching de segundo nível, estratégias de carregamento preguiçoso e gerenciamento de transações. Ele suporta uma variedade de bancos de dados relacionais e oferece recursos avançados de mapeamento objeto-relacional.

    O Entity Framework é um ORM popular para a plataforma .NET que fornece recursos avançados de mapeamento objeto-relacional e gerenciamento de entidades. Ele suporta vários bancos de dados relacionais e oferece recursos como carregamento preguiçoso e transações.

    O Django é um ORM para o framework de desenvolvimento web Django em Python. Ele fornece uma interface simples para interagir com o banco de dados e suporta vários bancos de dados relacionais. Ele também oferece recursos avançados de gerenciamento de relacionamentos e mapeamento objeto-relacional.

    O Prisma é um ORM para desenvolvimento em TypeScript ou JavaScript. E também é fácil de usar, pois ele oferece uma API simples e intuitiva para acessar o banco. Ele suporta vários bancos de dados, incluindo MySQL, PostgreSQL e SQLite, e pode ser facilmente integrado a estruturas populares de aplicativos, como o Express.js. Além disso, ele inclui recursos adicionais, como controle de transação, migrações de banco de dados e suporte a assinaturas em tempo real.

    Em resumo, existem vários ORMs respeitados no mercado, cada um com suas vantagens e desvantagens, dependendo do caso de uso específico. Os exemplos acima são apenas alguns dos ORMs populares que os desenvolvedores podem usar para simplificar a interação entre a aplicação e o banco de dados.

    Compartilhe
    Comentários (0)