<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: _GIAN_</title>
    <description>The latest articles on DEV Community by _GIAN_ (@_gian__c01de657218cfba0ea).</description>
    <link>https://dev.to/_gian__c01de657218cfba0ea</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3810703%2F4a343af1-85cc-4402-9f69-0d826b77b3b2.jpg</url>
      <title>DEV Community: _GIAN_</title>
      <link>https://dev.to/_gian__c01de657218cfba0ea</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/_gian__c01de657218cfba0ea"/>
    <language>en</language>
    <item>
      <title>A Evolução do Modelo Relacional para Objeto-Relacional</title>
      <dc:creator>_GIAN_</dc:creator>
      <pubDate>Fri, 06 Mar 2026 23:55:07 +0000</pubDate>
      <link>https://dev.to/_gian__c01de657218cfba0ea/a-evolucao-do-modelo-relacional-para-objeto-relacional-4jhd</link>
      <guid>https://dev.to/_gian__c01de657218cfba0ea/a-evolucao-do-modelo-relacional-para-objeto-relacional-4jhd</guid>
      <description>&lt;p&gt;Introdução&lt;br&gt;
Os sistemas de gerenciamento de banco de dados evoluíram significativamente ao longo das últimas décadas para acompanhar as mudanças nas necessidades do desenvolvimento de software. Durante os anos 1970 e 1980, os bancos de dados relacionais dominaram o cenário da computação, oferecendo uma forma estruturada e confiável de armazenar e manipular informações. Esse modelo foi proposto por Edgar F. Codd e revolucionou a forma como dados eram organizados em sistemas computacionais.&lt;/p&gt;

&lt;p&gt;Os bancos de dados relacionais, conhecidos como RDBMS (Relational Database Management Systems), utilizam tabelas compostas por linhas e colunas para organizar informações. Cada linha representa um registro e cada coluna representa um atributo do dado armazenado. Para manipular esses dados, utiliza-se a linguagem SQL, que se tornou padrão para consulta e manipulação de bancos relacionais.&lt;/p&gt;

&lt;p&gt;Entretanto, com o crescimento da programação orientada a objetos na década de 1990, surgiram novos desafios para integrar aplicações modernas com bancos de dados relacionais tradicionais. Linguagens como Java, C++ e Python utilizam estruturas baseadas em objetos, que possuem atributos, métodos e relações complexas. Essa diferença estrutural entre objetos de programação e tabelas relacionais gerou um problema conhecido como “Impedance Mismatch”.&lt;/p&gt;

&lt;p&gt;Como consequência dessa incompatibilidade, novas abordagens foram desenvolvidas para melhorar a integração entre aplicações e bancos de dados. Entre elas surgiram os bancos de dados orientados a objetos (OODBMS) e posteriormente os bancos de dados objeto-relacionais (ORDBMS), que combinam características dos dois modelos.&lt;/p&gt;

&lt;p&gt;O Problema da Impedância&lt;br&gt;
O termo Impedance Mismatch refere-se à incompatibilidade estrutural entre dois sistemas que precisam interagir. No contexto de bancos de dados, ele descreve a diferença entre a forma como os dados são representados em linguagens de programação orientadas a objetos e como são armazenados em bancos de dados relacionais.&lt;/p&gt;

&lt;p&gt;Nas linguagens orientadas a objetos, os dados são organizados em objetos que possuem atributos e métodos. Além disso, esses objetos podem herdar propriedades de outras classes, possuir relacionamentos complexos e representar estruturas hierárquicas de forma natural dentro da aplicação.&lt;/p&gt;

&lt;p&gt;Por outro lado, nos bancos de dados relacionais os dados são organizados em tabelas bidimensionais. Os relacionamentos entre entidades são representados por meio de chaves primárias e chaves estrangeiras. Para reconstruir relações entre diferentes entidades é necessário utilizar operações de JOIN.&lt;/p&gt;

&lt;p&gt;Essa diferença estrutural gera diversas dificuldades no desenvolvimento de sistemas. Objetos complexos precisam ser convertidos em tabelas, estruturas hierárquicas devem ser quebradas em múltiplas tabelas e o desenvolvedor precisa realizar o mapeamento entre objetos e registros do banco de dados.&lt;/p&gt;

&lt;p&gt;Esse processo é conhecido como Object Relational Mapping (ORM). Embora existam ferramentas que auxiliem nesse processo, ele ainda representa uma camada adicional de complexidade entre a aplicação e o banco de dados.&lt;/p&gt;

&lt;p&gt;Como tentativa de resolver esse problema surgiram os bancos de dados orientados a objetos (OODBMS). Esses sistemas permitem armazenar objetos diretamente no banco de dados, preservando conceitos fundamentais da programação orientada a objetos, como encapsulamento, herança e identidade de objeto.&lt;/p&gt;

&lt;p&gt;Apesar dessas vantagens conceituais, os OODBMS não tiveram grande adoção comercial devido à falta de padronização e à forte presença dos bancos de dados relacionais no mercado. Dessa forma, surgiu um novo modelo híbrido: os bancos de dados objeto-relacionais.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzff3bxvtpkiefvnnmz0z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzff3bxvtpkiefvnnmz0z.png" alt=" " width="800" height="216"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O modelo relacional permanece amplamente utilizado devido à sua confiabilidade e padronização. Sistemas como MySQL, Oracle e SQL Server são exemplos de bancos baseados nesse modelo.&lt;/p&gt;

&lt;p&gt;Os bancos orientados a objetos, por outro lado, foram projetados para lidar diretamente com estruturas complexas de dados. No entanto, sua adoção foi limitada pela falta de padrões amplamente aceitos.&lt;/p&gt;

&lt;p&gt;Os bancos objeto-relacionais surgiram como uma solução intermediária. Eles mantêm a estrutura relacional tradicional, mas adicionam suporte a tipos de dados mais complexos e extensões que permitem maior flexibilidade.&lt;/p&gt;

&lt;p&gt;Arquitetura do PostgreSQL&lt;br&gt;
O PostgreSQL é um exemplo importante de banco de dados objeto-relacional. Ele é frequentemente descrito como um sistema “catalogue-driven”, ou seja, guiado por catálogo.&lt;/p&gt;

&lt;p&gt;Isso significa que grande parte das informações internas do banco de dados é armazenada em tabelas especiais chamadas catálogos do sistema. Esses catálogos armazenam informações sobre tabelas, colunas, índices, tipos de dados, funções e permissões.&lt;/p&gt;

&lt;p&gt;Na prática, esses catálogos funcionam como um banco de dados interno que descreve a estrutura do próprio sistema. Essa abordagem permite que o PostgreSQL seja altamente extensível.&lt;/p&gt;

&lt;p&gt;Os desenvolvedores podem criar novos tipos de dados personalizados, definir funções específicas, implementar operadores próprios e instalar extensões que adicionam funcionalidades ao sistema. Tudo isso pode ser feito sem necessidade de recompilar o banco de dados.&lt;/p&gt;

&lt;p&gt;Além disso, o PostgreSQL permite a criação de funções em diversas linguagens de programação, incluindo SQL, PL/pgSQL, Python e C. Essa característica amplia significativamente as possibilidades de personalização do banco de dados.&lt;/p&gt;

&lt;p&gt;Outro recurso importante é o sistema de extensões, que permite adicionar módulos completos ao banco de dados. Um exemplo conhecido é o PostGIS, que adiciona suporte a dados geoespaciais e transforma o PostgreSQL em uma poderosa plataforma para aplicações de geolocalização.&lt;/p&gt;

&lt;p&gt;Conclusão&lt;br&gt;
A evolução dos bancos de dados reflete as mudanças nas necessidades do desenvolvimento de software. O modelo relacional estabeleceu uma base sólida para armazenamento e manipulação de dados, tornando-se padrão na indústria durante várias décadas.&lt;/p&gt;

&lt;p&gt;Com o avanço da programação orientada a objetos, surgiram desafios relacionados à integração entre aplicações e bancos de dados relacionais. O problema da incompatibilidade de impedância destacou a necessidade de novas abordagens para lidar com estruturas complexas de dados.&lt;/p&gt;

&lt;p&gt;Os bancos orientados a objetos tentaram resolver esse problema armazenando objetos diretamente, mas enfrentaram dificuldades de adoção no mercado. Como resultado, os bancos objeto-relacionais surgiram como uma solução híbrida que combina as vantagens dos dois modelos.&lt;/p&gt;

&lt;p&gt;O PostgreSQL representa um exemplo bem-sucedido dessa evolução, oferecendo uma arquitetura extensível e baseada em catálogo que permite grande flexibilidade no armazenamento e manipulação de dados.&lt;/p&gt;

&lt;p&gt;Dessa forma, os ORDBMS representam uma síntese eficiente entre os paradigmas relacionais e orientados a objetos, oferecendo uma plataforma poderosa para o desenvolvimento de aplicações modernas.&lt;/p&gt;

</description>
      <category>backend</category>
      <category>computerscience</category>
      <category>database</category>
      <category>sql</category>
    </item>
  </channel>
</rss>
