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 Cliente, Nome da empresa, Endereço da empresa, Setor etc.; as colunas para uma tabela de transação podem ser Data de transação, ID do cliente, Valor da transação, Mé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:
Essas propriedades permitem o processamento confiável de transações.
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:
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.
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).
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.
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:
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?"
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:
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.
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.
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 .
Conheça o Db2 on Cloud, um banco de dados SQL em cloud totalmente gerenciado, configurado e otimizado para desempenho robusto.
Descubra o PostgreSQL como um serviço, desenvolvido para empresas e tem integração nativa da IBM Cloud.
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.
Desenvolva e execute aplicativos em um banco de dados de categoria corporativa rico em segurança baseado em PostgreSQL de software livre.