O que é um banco de dados relacional?
Conheça a plataforma de IA e dados da IBM
Em uma tela com fundo azul estão números e letras, representando um banco de dados pesado
O que é um banco de dados relacional?

Um banco de dados relacional organiza dados estruturados em uma tabela criada pela relação entre linhas e colunas que podem ser unidas por meio de uma chave primária ou estrangeira.

Esses identificadores exclusivos demonstram os diferentes relacionamentos existentes entre as tabelas, e esses relacionamentos são geralmente ilustrados por meio de diferentes tipos de modelos de dados. Os analistas usam consultas SQL para combinar diferentes pontos de dados e resumir o desempenho dos negócios, permitindo que as organizações obtenham insights, otimizem fluxos de trabalho e identifiquem novas oportunidades.

Por exemplo, imagine que sua empresa mantém uma tabela de banco de dados com informações do cliente, que contém dados da empresa no nível da conta. Também pode haver uma tabela diferente, que descreve todas as transações individuais que se alinham a essa conta. Juntas, essas tabelas podem fornecer informações sobre os diferentes setores que compram um produto de software específico.

As colunas (ou campos) para a tabela de clientes podem ser ID do ClienteNome da empresaEndereço da empresaSetor etc.; as colunas para uma tabela de transação podem ser Data de transaçãoID do clienteValor da transaçãoMétodo de pagamento etc. As tabelas podem ser unidas com o campo comum ID do Cliente . Você pode, portanto, consultar a tabela para produzir relatórios valiosos, como relatórios de vendas por setor ou empresa, que podem informar mensagens para clientes em potencial.

Os bancos de dados relacionais também são normalmente associados a bancos de dados transacionais, que executam comandos ou transações coletivamente. Um exemplo popular usado para ilustrar isso é uma transferência bancária. Um valor definido é retirado de uma conta e, em seguida, é depositado em outra. A quantia total de dinheiro é sacada e depositada, e essa transação não pode ocorrer em nenhum tipo de sentido parcial. As transações têm propriedades específicas. Representado pela sigla, ACID, as propriedades ACID são definidas como:

  • Atomicidade: todas as mudanças nos dados são executadas como se fossem uma única operação. Ou seja, todas as mudanças são realizadas, ou nenhuma delas é.
  • Consistência: os dados permanecem em um estado consistente do estado ao fim, reforçando a integridade dos dados.
  • Isolamento: o estado intermediário de uma transação não é visível para outras transações e, como resultado, as transações executadas simultaneamente parecem ser serializadas.
  • Durabilidade: após a conclusão bem-sucedida de uma transação, as mudanças nos dados persistem e não são desfeitas, mesmo em caso de falha do sistema.

Essas propriedades permitem o processamento confiável de transações.
 

Banco de dados relacional x sistema de gerenciamento de banco de dados relacional
 

Enquanto um banco de dados relacional organiza dados com base em um modelo de dados relacional, um sistema de gerenciamento de banco de dados relacional (RDBMS) é uma referência mais específica ao software de banco de dados subjacente que permite aos usuários mantê-lo. Esses programas permitem que os usuários criem, atualizem, insiram ou excluam dados no sistema e fornecem:

  • Estrutura de dados
  • Acesso multiusuário
  • Controle de privilégio
  • Acesso de rede

Exemplos de sistemas RDBMS populares incluem MySQL, PostgreSQL e IBM DB2. Além disso, um sistema de banco de dados relacional difere de um sistema básico de gerenciamento de banco de dados (DBMS) na medida em que armazena dados em tabelas enquanto um DBMS armazena informações como arquivos.

O que é SQL?

Inventado por Don Chamberlin e Ray Boyce na IBM, o SQL (Linguagem de Consulta Estruturada) é a linguagem de programação padrão para interagir com sistemas de gerenciamento de banco de dados relacional, permitindo que o administrador do banco de dados adicione, atualize ou exclua linhas de dados facilmente. Originalmente conhecido como SEQUEL, foi simplificado para SQL devido a um problema de marca comercial. As consultas SQL também permitem que os usuários recuperem dados de bancos de dados usando apenas algumas linhas de código. Dada essa relação, é fácil ver por que os bancos de dados relacionais também são chamados de “bancos de dados SQL” às vezes.  

Usando o exemplo acima, é possível construir uma consulta para encontrar as 10 principais transações por empresa em um ano específico com o seguinte código:

SELECT COMPANY_NAME, SUM(TRANSACTION_AMOUNT)

FROM TRANSACTION_TABLE A

LEFT JOIN CUSTOMER_TABLE B

ON A.CUSTOMER_ID = B.CUSTOMER_ID

WHERE YEAR(DATE) = 2022

GROUP BY 1

ORDER BY 2 DESC

LIMIT 10

A capacidade de juntar dados dessa maneira nos ajuda a reduzir a redundância em nossos sistemas de dados, permitindo que as equipes de dados mantenham uma tabela mestre para clientes em vez de duplicar essas informações se houver outra transação no futuro. Para saber mais, Don detalha mais sobre a história do SQL em seu artigo aqui (o link reside fora da IBM).

Uma breve história dos bancos de dados relacionais

Antes dos bancos de dados relacionais, as empresas usavam um sistema de banco de dados hierárquico com uma estrutura semelhante a uma árvore para as tabelas de dados. Esses primeiros sistemas de gerenciamento de banco de dados (DBMS) permitiam que os usuários organizassem grandes quantidades de dados. No entanto, eles eram complexos, geralmente proprietários de um aplicativo específico e limitados nas formas como podiam ser descobertos nos dados. Essas limitações acabaram levando o pesquisador da IBM, Edgar F. Codd, a publicar um artigo (link reside fora da IBM) (PDF, 1,5 MB) em 1970, intitulado "A Relational Model of Data for Large Shared Data Banks", que teorizou o modelo de banco de dados relacional. Neste modelo proposto, as informações podem ser recuperadas sem conhecimento especializado em informática. Ele propôs organizar dados com base em relacionamentos significativos como tuplas ou pares de valor de atributo. Conjuntos de tuplas eram referidos como relações, o que permitia a fusão de dados entre tabelas.

Em 1973, o San Jose Research Laboratory, agora conhecido como Almaden Research Center, iniciou um programa chamado System R (R para relacional) para provar essa teoria relacional com o que chamou de “uma implementação de força industrial”. Por fim, tornou-se também um campo de testes para o SQL, permitindo que ele se tornasse mais amplamente adotado em um curto período de tempo. No entanto, a adoção do SQL pela Oracle também não prejudicou sua popularidade entre os administradores de banco de dados.

Em 1983, a IBM introduziu a família DB2 de bancos de dados relacionais, assim chamada porque era a segunda família de software de gerenciamento de banco de dados da IBM. Hoje, é um dos produtos de maior sucesso da IBM, continuando a lidar com bilhões de transações todos os dias na infraestrutura de nuvem e definindo a camada fundamental para aplicativos de aprendizado de máquina.

Diferenças entre banco de dados relacional e não relacional

Enquanto os bancos de dados relacionais estruturam os dados em um formato tabular, os bancos de dados não relacionais não têm um esquema de banco de dados tão rígido.

Na verdade, os bancos de dados não relacionais organizam os dados de maneira diferente com base no tipo de banco de dados. Independentemente do tipo de banco de dados não relacional, todos visam resolver os problemas de flexibilidade e escalabilidade inerentes aos modelos relacionais que não são ideais para formatos de dados não estruturados, como texto, vídeo e imagens. Esses tipos de bancos de dados incluem:

  • Armazenamento de chave-valor: esse modelo de dados sem esquema é organizado em um dicionário de pares chave-valor, no qual cada item possui uma chave e um valor. A chave pode ser algo semelhante encontrado em um banco de dados SQL, como um ID de carrinho de compras, enquanto o valor é uma matriz de dados, como cada item individual no carrinho de compras do usuário. É comumente usado para armazenar em cache e armazenar informações de sessão do usuário, como carrinhos de compras. No entanto, não é ideal quando você precisa extrair vários registros de uma vez. Redis e Memcached são exemplos de bancos de dados de software livre com este modelo de dados.
  • Armazenamento de documentos: conforme sugerido pelo nome, os bancos de dados de documentos armazenam dados como documentos. Eles podem ser úteis no gerenciamento de dados semiestruturados, e os dados geralmente são armazenados nos formatos JSON, XML ou BSON. Isso mantém os dados juntos quando são usados em aplicativos, reduzindo a quantidade de conversão necessária para usar os dados. Os desenvolvedores também ganham mais flexibilidade, pois os esquemas de dados não precisam corresponder entre os documentos (por exemplo, name x first_name). No entanto, isso pode ser problemático para transações complexas, levando à corrupção de dados. Casos de uso populares de bancos de dados de documentos incluem sistemas de gerenciamento de conteúdo e perfis de usuário. Um exemplo de banco de dados orientado a documentos é o MongoDB, o componente de banco de dados da pilha MEAN.
  • Armazenamento de coluna ampla:  esses bancos de dados armazenam informações em colunas, permitindo que os usuários acessem apenas as colunas específicas de que precisam, sem alocar memória adicional para dados irrelevantes. Esse banco de dados tenta solucionar as deficiências de armazenamento de chave-valor e documentos, mas, como pode ser um sistema mais complexo de gerenciar, não é recomendado para equipes e projetos mais novos. Apache HBase e Apache Cassandra são exemplos de bancos de dados de coluna larga de software livre. ApacheHBase é construído sobre Hadoop Distributed Files System que fornece uma maneira de armazenar conjuntos de dados esparsos, que é comumente usado em muitos aplicativos de big data. Apache Cassandra, por outro lado, foi projetado para gerenciar grandes quantidades de dados em vários servidores e clusters que abrangem vários centros de dados. Tem sido usado para uma variedade de casos de uso, como sites de redes sociais e análise de dados em tempo real.
  • Armazenamento de gráfico: esse tipo de banco de dados geralmente armazena dados de um gráfico de conhecimento. Os elementos de dados são armazenados como nós, bordas e propriedades. Qualquer objeto, lugar ou pessoa pode ser um nó. Uma borda define a relação entre os nós. Bancos de dados de gráficos são usados para armazenar e gerenciar uma rede de conexões entre os elementos dentro do gráfico. (o link reside fora da IBM), um serviço de banco de dados baseado em gráfico baseado em Java com uma edição comunitária de software livre, na qual os usuários podem adquirir licenças para backup on-line e extensões de alta disponibilidade, ou versão licenciada pré-empacotada com backup e extensões incluídas.

Bancos de dados NoSQL também priorizam disponibilidade em detrimento da consistência.

Quando os computadores funcionam em uma rede, eles invariavelmente precisam decidir priorizar resultados consistentes (onde todas as respostas são sempre as mesmas) ou alto tempo de atividade, chamado de "disponibilidade". Isso é chamado de "Teoria CAP", que significa Consistência, Disponibilidade ou Tolerância à Partição. Os bancos de dados relacionais garantem que as informações estejam sempre sincronizadas e consistentes. Alguns bancos de dados NoSQL, como o Redis, preferem sempre fornecer uma resposta. Isso significa que as informações que você recebe de uma consulta podem estar incorretas em alguns segundos — talvez até meio minuto. Em sites de mídia social, isso significa ver uma foto de perfil antiga quando a mais recente tem apenas alguns instantes. A alternativa pode ser um tempo limite ou erro. Por outro lado, em transações bancárias e financeiras, um erro e reenvio podem ser melhores do que informações antigas e incorretas.

Para obter um resumo completo das diferenças entre SQL e NoSQL, consulte "Bancos de dados SQL vs. NoSQL: qual é a diferença?"

Vantagens do banco de dados relacional

O principal benefício da abordagem de banco de dados relacional é a capacidade de criar informações significativas juntando as tabelas. Juntar tabelas permite entender as  relações  entre os dados ou como as tabelas se conectam. O SQL inclui a capacidade de contar, incluir, agrupar e também combinar consultas. SQL pode executar matemática básica e funções de subtotal e transformações lógicas. Os analistas podem ordenar os resultados por data, nome ou qualquer coluna. Esses recursos tornam a abordagem relacional a ferramenta de consulta mais popular nos negócios atualmente.

Os bancos de dados relacionais têm várias vantagens em comparação com outros formatos de banco de dados:
 

Fácil de usar
 

Em virtude da vida útil do produto, há mais comunidade em torno dos bancos de dados relacionais, o que parcialmente perpetua seu uso contínuo. O SQL também facilita a recuperação de conjuntos de dados de várias tabelas e a execução de transformações simples, como filtragem e agregação. O uso de índices dentro de bancos de dados relacionais também permite que eles localizem essas informações rapidamente sem pesquisar cada linha na tabela selecionada.

Embora os bancos de dados relacionais tenham sido historicamente vistos como uma opção de armazenamento de dados mais rígida e inflexível, os avanços na tecnologia e as opções de DBaaS estão mudando essa percepção. Embora ainda haja mais sobrecarga para desenvolver esquemas em comparação com as ofertas de banco de dados NoSQL, os bancos de dados relacionais estão se tornando mais flexíveis à medida que migram para ambientes de nuvem.
 

Redundância reduzida 
 

Os bancos de dados relacionais podem eliminar a redundância de duas maneiras. O próprio modelo relacional reduz a redundância de dados por meio de um processo conhecido como normalização. Conforme observado anteriormente, uma tabela de clientes deve registrar apenas registros exclusivos de informações do cliente em vez de duplicar essas informações para várias transações.

Os procedimentos armazenados também ajudam a reduzir o trabalho repetitivo. Por exemplo, se o acesso ao banco de dados for restrito a determinados cargos, funções ou equipes, um procedimento armazenado poderá ajudar a gerenciar o controle de acesso. Essas funções reutilizáveis liberam o cobiçado tempo do desenvolvedor de aplicativos para lidar com trabalhos de alto impacto.
 

Facilidade de backup e recuperação de desastres 
 

Os bancos de dados relacionais são transacionais. Eles garantem que o estado de todo o sistema seja consistente a qualquer momento. A maioria dos bancos de dados relacionais oferece opções fáceis de exportação e importação, tornando o backup e a restauração triviais. Essas exportações podem acontecer mesmo enquanto o banco de dados está em execução, facilitando a restauração em caso de falha.

Bancos de dados relacionais modernos baseados em nuvem podem fazer espelhamento contínuo, fazendo com que a perda de dados na restauração seja medida em segundos ou menos. A maioria dos serviços gerenciados em nuvem permite criar réplicas de leitura, como no IBM Cloud® Databases for PostgreSQL. Essas réplicas de leitura permitem que você armazene uma cópia somente leitura de seus dados em um data center na nuvem. As réplicas também podem ser promovidas para instâncias de leitura/gravação para  recuperação de desastres .

Soluções relacionadas
IBM Db2 on Cloud

Conheça o Db2 on Cloud, um banco de dados SQL em cloud totalmente gerenciado, configurado e otimizado para desempenho robusto.

Conheça o IBM Db2 on Cloud
IBM Cloud Databases for PostgreSQL

Descubra o PostgreSQL como um serviço, desenvolvido para empresas e tem integração nativa da IBM Cloud.

Explore o IBM Cloud Databases for PostgreSQL
IBM Cloud Hyper Protect DBaaS

O IBM Cloud Hyper Protect DBaaS é um ambiente de banco de dados em nuvem altamente seguro que permite gerenciar vários tipos de banco de dados por meio de APIs padronizadas.

Explore o IBM Cloud Hyper Protect DBaaS
EDB Postgres Enterprise and Standard with IBM

Desenvolva e execute aplicativos em um banco de dados de categoria corporativa rico em segurança baseado em PostgreSQL de software livre.

Explore o EDB Postgres Enterprise and Standard with IBM
Recursos Db2 e 50 anos de design de banco de dados relacional

Olhe para trás para o início do Db2.

O que é VPS?

Saiba o que é um VPS e como ele se diferencia de outras formas comuns de hospedagem na cloud computing.

Dê o próximo passo

Conheça os três componentes da plataforma watsonx (ai, data e governance). Escolha um ou mais componentes e personalize sua solução de IA de acordo com o seu caso de uso e requisitos específicos do seu negócio.

Explore a plataforma de IA e dados