Banco de dados é o nome dado a uma coleção de informações (dados) armazenadas digitalmente, e é uma das bases de um sistema que coleta, armazena, gerencia e protege informações de diferentes tipos.
Os bancos de dados armazenam informações que podem ser usadas para diferentes finalidades, incluindo análise, exploração e consulta. Auxiliando tanto em tomadas de decisões como no funcionamento de sistemas ou programas.
Existem diferentes tipos de bancos de dados que armazenam dados de maneiras diferentes.
Por exemplo, os bancos de dados relacionais os armazenam em tabelas definidas com linhas e colunas, enquanto os bancos de dados não relacionais podem armazená-los como uma variedade de estruturas de dados, incluindo pares de valores-chave ou gráficos.
As empresas têm grandes quantidades de dados medidos frequentemente em petabytes, ou quatrilhões de bits e sobre tudo, desde transações de clientes e estoques de produtos até processos internos e pesquisas proprietárias. Esses dados devem ser organizados em uma arquitetura de dados coerente para usuários e aplicativos poderem acessá-los quando precisarem.
Os bancos de dados são fundamentais para a construção dessa arquitetura de dados. Eles são mais do que apenas um lugar para armazenar informações. Em vez disso, permitem que as organizações gerenciem dados de forma centralizada, reforcem a integridade dos dados e os padrões de segurança e facilitem o acesso a dados.
Com os sistemas de banco de dados adequados implementados, as organizações podem utilizar conjuntos de dados de alta qualidade para iniciativas de negócios importantes, incluindo projetos de business intelligence (BI), inteligência artificial (IA) e aprendizado de máquina (ML).
As organizações utilizam esses diversos tipos de bancos de dados para gerenciar tipos de dados diferentes e apoiar diversas aplicações.
Os bancos de dados relacionais se destacam pelos dados estruturados, como registros financeiros. Bancos de dados não relacionais são melhores para tipos de dados não estruturados, como arquivos de texto, áudio e vídeo. Bancos de dados vetoriais armazenam dados como embeddings vetoriais, um formato utilizado por muitos aplicativos de IA generativa.
Alguns dos tipos mais comuns de bancos de dados são:
Os bancos de dados de navegação armazenam dados em conjuntos de registros vinculados. Os usuários devem navegar entre esses registros para acessar os dados que desejam, daí o nome.
Os dois tipos mais comuns de bancos de dados de navegação são os bancos de dados hierárquicos e os bancos de dados de rede.
Bancos de dados hierárquicos organizam dados em uma estrutura semelhante a uma árvore de registros principais e registros secundários. Cada registro filho pode ter apenas um único pai, mas os registros pai podem ter vários filhos. Para alcançar o registro desejado, os usuários devem começar do topo da árvore e ir descendo.
Os bancos de dados de rede têm comportamento muito semelhante aos bancos de dados hierárquicos, com a diferença de que possibilitam que cada registro secundário seja vinculado a vários registros principais. Os usuários ainda devem navegar pelos registros vinculados, geralmente utilizando ponteiros para chegarem aos dados que desejam.
Os bancos de dados de navegação já foram comuns, mas os avanços na tecnologia de banco de dados, particularmente o desenvolvimento do modelo de dados relacional, os tornaram muito menos populares.
Bancos de dados relacionais armazenam dados em tabelas formatadas de linhas e colunas.
Também são conhecidos como "bancos de dados SQL Database" porque muitos bancos de dados relacionais são compatíveis com o uso da linguagem de consulta estruturada (SQL) para consultar e manipular dados.
Cada tabela de um banco de dados relacional contém informações sobre um tipo de entidade.
Por exemplo, uma organização pode ter uma tabela com informações sobre todos os seus clientes, além de tabelas separadas detalhando o histórico de compra de cada cliente individual.
O cientista da IBM Edgar F. Codd desenvolveu o modelo relacional na década de 1970. O modelo ultrapassou rapidamente a popularidade do modelo de navegação porque simplifica muito o ato de recuperar dados. Em vez de especificar caminhos entre os registros, os usuários podem utilizar instruções SQL para nomear os dados desejados. O banco de dados descobre como recuperar os registros relevantes, geralmente utilizando índices em vez de varreduras de tabela completa para acelerar o processo.
Os bancos de dados relacionais também reduzem a redundância, pois cada ponto de dados precisa ser armazenado apenas uma vez. Os dados de tabelas diferentes podem ser combinados em uma visão unificada sem a necessidade de duplicar os dados.
Os bancos de dados relacionais são alguns dos bancos de dados mais comuns atualmente. São adequados para gerenciar conjuntos de dados estruturados com um formato padrão, como transações financeiras ou informações de contato do usuário.
Uma classe mais recente de bancos de dados relacionais denominada “bancos de dados NewSQL”, visa tornar o modelo relacional mais escalável adotando uma arquitetura de banco de dados distribuída, ou seja, distribuindo dados em vários servidores de banco de dados.
Um banco de dados não relacional é essencialmente um termo abrangente para qualquer banco de dados que não armazena dados em um formato rígido, como uma tabela. Também conhecidos como "bancos de dados NoSQL" porque geralmente não exigem SQL para navegação.
Os bancos de dados não relacionais surgiram para possibilitar tipos de dados não estruturados e semiestruturados, como texto e imagens de formato livre, que não se encaixam perfeitamente em tabelas relacionais.
Os tipos comuns de bancos de dados não relacionais são:
Bancos de dados gráficos que armazenam dados como "nós" (representando entidades) e "edges" (representando relações entre elas). Os bancos de dados gráficos são frequentemente usados para rastrear relacionamentos, como as conexões entre usuários de um site de rede social.
Os bancos de dados de documentos armazenam dados como documentos, incluindo formatos como JSON, XML e BSON. Os bancos de dados de documentos são comuns em sistemas de gerenciamento de conteúdo.
Os bancos de dados valor-chave armazenam informações como pares de valores-chave, em que as chaves são identificadores exclusivos (como um ID de carrinho de compras digital) e os valores são matrizes de dados (como os itens no carrinho).
Bancos de dados de colunas amplas utilizam linhas e colunas de forma muito semelhante aos bancos de dados relacionais. A diferença é que cada linha pode ter seu próprio conjunto distinto de colunas que armazenam informações diferentes das outras linhas. Bancos de dados de colunas amplas são frequentemente usados com data warehouses, onde os dados devem ser extraídos de várias fontes e centralizados.
Bancos de dados baseados a objetos, também conhecidos como bancos de dados de objetos, armazenam dados como objetos no sentido de programação baseada em objetos.
Objetos são, basicamente, pacotes de informações e códigos associados. Cada objeto representa uma entidade. Os objetos são agrupados em classes e têm atributos que descrevem suas características e métodos que definem seu comportamento.
Por exemplo, um objeto da classe "gato" pode ter os atributos "cor" e "peso" e os métodos "ronronar" e "caçar".
Os bancos de dados baseados em objetos ganharam popularidade na década de 1990 com a programação orientada a objetos. Os bancos de dados relacionais podem apresentar problemas para alguns aplicativos criados com linguagens baseadas em objetos, pois os objetos de dados devem ser convertidos em tabelas para serem armazenados nesses bancos de dados. Bancos de dados baseados em objetos permitem que os desenvolvedores evitem esse problema.
Os bancos de dados vetoriais armazenam informações como matrizes de números chamados "vetores" agrupados com base na similaridade. Por exemplo, um modelo meteorológico pode armazenar as temperaturas baixas, médias e altas por um único dia em forma de vetor: [62, 77, 85].
Os vetores também podem representar objetos complexos, como palavras, imagens, vídeos e áudio. Esses dados vetoriais de alta dimensão são essenciais para aprendizado de máquina, processamento de linguagem natural (PLN) e outras tarefas de IA.
Os bancos de dados vetoriais são comuns em casos de uso de IA e ML. Por exemplo, muitas implementações de estruturas de geração aumentada de recuperação (RAG), que permitem que grandes modelos de linguagem (LLMs) recuperem fatos de uma base de conhecimento externa, utilizam bancos de dados vetoriais.
Bancos de dados em nuvem são bancos de dados hospedados na nuvem. Qualquer tipo de banco de dados, seja relacional, não relacional ou outro, pode ser um banco de dados em nuvem.
Hás dois tipos principais de banco de dados em nuvem. O primeiro, e mais básico, é um sistema de banco de dados autogerenciado executado na nuvem. O segundo é conhecido como banco de dados como serviço (DBaaS).
O DBaaS é um serviço de computação em nuvem que possibilita aos usuários acessar e utilizar software de banco de dados sem gerenciar o sistema por conta própria. Como o nome sugere, os provedores de DBaaS oferecem um pacote de serviços de banco de dados, incluindo upgrades, backups, segurança de banco de dados e outros serviços.
Os bancos de dados em nuvem são mais escaláveis do que os bancos de dados locais. Se uma organização precisar de mais espaço de armazenamento ou o desempenho começar a cair, poderá gerar mais recursos conforme o necessário.
Bancos de dados multimodelo podem armazenar mais de um tipo de dados. Por exemplo, o banco de dados de nuvem IBM Db2 é compatível com XML, JSON, texto e dados espaciais em uma única instância de banco de dados.
Os bancos de dados na memória armazenam informações na memória principal ou na RAM de um dispositivo. Os aplicativos normalmente recuperam dados da RAM mais rápido do que de um banco de dados tradicional, portanto os bancos de dados na memória são frequentemente usados para armazenar dados em cache e dar suporte ao processamento de dados em tempo real. No entanto, a capacidade de armazenamento é muito mais limitada e os dados podem ser facilmente perdidos porque a RAM é mais volátil do que um banco de dados padrão.
As pessoas costumam utilizar o termo "banco de dados" de forma bastante vaga, o que pode causar confusão sobre o que é um banco de dados e o que não é.
Um banco de dados é um sistema para armazenar e gerenciar dados, abrangendo tanto o hardware físico no qual os dados são armazenar quanto o software que organiza e controla o acesso aos dados.
Os bancos de dados sustentam grande parte da infraestrutura de TI moderna, incluindo sites, aplicativos e plataformas como Amazon e Google. Esses serviços não são bancos de dados em si, mas dependem de bancos de dados para gerenciarem informações como inventários de produtos ou resultados de pesquisa.
Vale ressaltar também que o Microsoft Excel não é um banco de dados, mas um aplicativo de planilha. Uma planilha do Excel organiza dados em linhas e colunas, assim como um banco de dados relacional, mas essa planilha é um único arquivo. No entanto, bancos de dados são sistemas robustos com gerenciamento central capazes de armazenar muitos tipos diferentes de dados, em muitos formatos diferentes, ao mesmo tempo em que possibilitam consultas mais avançadas.
Os bancos de dados não são a única maneira de organizar dados e as organizações geralmente utilizam diferentes lojas de dados para apoiar iniciativas diferentes.
Os bancos de dados são construídos principalmente para captura automática de dados, consultas rápidas e processamento de transações.
Data lakes são ambientes de armazenamento de baixo custo projetados para lidar com grandes quantidades de dados brutos, estruturados e não estruturados. Ao contrário dos bancos de dados, os data lakes geralmente não limpam, validam nem normalizam os dados. Normalmente, armazenam grandes quantidades de dados para possibilitar atividades como treinamento de IA e análise de big data, nas quais o desempenho em tempo real é menos importante.
Data warehouses são construídos para possibilitar esforços de análise de dados, business intelligence e ciência de dados. Agregam dados de vários bancos de dados, limpam e preparam para estarem prontos para uso.
Data lakehouses combinam os recursos de warehouses e lakes em uma única solução de gerenciamento de dados. Um data lakehouse combina armazenamento de baixo custo com um mecanismo de consulta de alto desempenho e governança inteligente de metadados. Isso possibilita que as organizações armazenem grandes quantidades de dados estruturados e não estruturados e usem facilmente esses dados para esforços de IA, ML e análise de dados.
Em um alto nível, um sistema de banco de dados tem dois componentes principais: o sistema de armazenamento de dados, que armazena física ou logicamente os dados, e o sistema de gerenciamento de banco de dados (DMBS), que possibilita que os usuários interajam com os conjuntos de dados armazenados.
Também é possível analisar com mais detalhes os componentes de um sistema de banco de dados para ter uma compreensão ainda melhor do que faz um banco de dados funcionar.
Os bancos de dados devem armazenar seus dados em algum lugar, em algum tipo de hardware. Dito isso, os bancos de dados não exigem máquinas especializadas.
Em vez disso, a maioria dos sistemas de banco de dados é composta de software de banco de dados executado em um computador, servidor ou outro dispositivo. A máquina oferece o hardware físico no qual o banco de dados é executado. O software lida com a organização lógica dos dados. Por exemplo, formatar os dados como tabelas em um banco de dados relacional ou gráficos em um banco de dados gráfico.
Um banco de dados e os aplicativos que o utilizam podem ser executados no mesmo hardware, mas atualmente a maioria dos sistemas de banco de dados utiliza uma arquitetura de várias camadas que separa os servidores de aplicativos e os servidores de banco de dados. Esse arranjo oferece mais escalabilidade e confiabilidade. Os servidores de aplicativos e de banco de dados podem ser dimensionados independentemente uns dos outros, e as interrupções em uma camada não precisam afetar as outras.
Um modelo de dados é uma representação visual de um sistema de informação. Modelos são ferramentas conceituais que administradores e projetistas de bancos de dados utilizam para entender os tipos de dados que devem acompanhar, as relações entre pontos de dados e como melhor organizar os dados.
O modelo de dados ajuda a identificar o modelo de banco de dados correto, ou seja, a implementação prática do sistema de banco de dados, incluindo requisitos técnicos e formatos de armazenamento. Por exemplo, o modelo de dados lógicos anterior pode resultar em um banco de dados relacional com a seguinte aparência:
Técnica e logicamente, um esquema de banco de dados define como os dados são organizados dentro de um banco de dados. Em outras palavras, ele traduz o modelo de dados em um conjunto de regras para o banco de dados seguir.
Por exemplo, um esquema de banco de dados relacional definiria coisas como nomes de tabelas, campos, tipos de dados e relacionamentos entre essas coisas.
Os esquemas podem ser representados por meio de gráficos visuais, escritos com instruções SQL ou outras linguagens de programação ou definidos de alguma outra forma. Isso depende do tipo de esquema e do sistema de banco de dados em questão.
Todos os sistemas de banco de dados relacionais têm esquemas. Alguns bancos de dados não relacionais têm esquemas, outros não e outros permitem, mas não os exigem.
Um sistema de gerenciamento de banco de dados (DBMS) é um software que possibilita que administradores de banco de dados, usuários e aplicativos interajam facilmente com dados de um banco de dados.
Os sistemas DBMS permitem que os usuários executem tarefas-chave de gerenciamento de dados como formatação de bancos de dados, gerenciamento de metadados, consulta de conjuntos de dados e adição, atualização ou exclusão de dados.
Alguns DBMSs ajudam a aplicar medidas de segurança de dados, como aplicar controles de acesso ao banco de dados e registro da atividade do usuário. Eles podem acompanhar o desempenho do banco de dados.
Como os próprios bancos de dados, os DBMSs podem variar em modelo. Por exemplo, sistemas de gerenciamento de banco de dados relacional (RDBMS) são criados para bancos de dados relacionais, enquanto sistemas de gerenciamento de banco de dados baseados em objetos (OODBMS) gerenciam bancos de dados baseados em objetos.
Alguns sistemas comuns de gerenciamento de banco de dados:
MySQL é um RDBMS de código aberto frequentemente utilizado em sites de comércio eletrônico e outros aplicativos da web.
O PostgreSQL é conhecido por sua ênfase na extensibilidade e na confiabilidade das transações.
O Microsoft SQL Server é amplamente utilizado por organizações com redes Microsoft.
Oracle Database é um SGBD multimodelo que pode gerenciar dados estruturados e não estruturados.
O IBM Db2 é um sistema de banco de dados nativo da nuvem que conta com gerenciamento de banco de dados, warehousing, armazenamento e outros recursos para suportar análise em tempo real e aplicações de IA.
As linguagens de banco de dados são linguagens de programação especializadas que as pessoas utilizam para interagir com os bancos de dados. Elas disponibilizam aos usuários uma sintaxe para escrever consultas para buscar, combinar, atualizar ou utilizar dados de outras formas.
A linguagem de banco de dados mais comum é a linguagem de consulta estruturada (SQL), utilizada pela maioria dos bancos de dados relacionais. Desenvolvido por cientistas da IBM na década de 1970, o SQL ajuda administradores de banco de dados, desenvolvedores e analistas de dados a realizar tarefas como definição de dados, controle de acesso, compartilhamento de dados, integração de dados e consultas analíticas.
Outras linguagens de banco de dados são a linguagem de consulta de objetos (OQL), que funciona com bancos de dados baseados em objetos, e a XQuery, que funciona com bancos de dados de documentos XML.
Há também linguagens específicas do banco de dados, como MongoDB Query Language (MQL) para MongoDB e Cassandra Query Language (CQL) para o Apache Cassandra.
Os bancos de dados são cruciais para muitas tecnologias das quais as pessoas dependem atualmente, desde aplicativos bancários que rastreiam transações financeiras em bancos de dados relacionais até assistentes de IA que utilizam bancos de dados vetoriais para melhorar a precisão. Os bancos de dados são tão comuns precisamente porque são fundamentais para apoiar:
Hoje em dia, as organizações têm grandes quantidades de dados, mas isso não significa muito se as pessoas não puderem utilizar esses dados. De fato, o IBM Data Differentiator relata que até 68% dos dados corporativos nunca são analisados. Muitas vezes isso acontece porque as pessoas não sabem da existência ou porque os silos as impedem de acessar.
Os bancos de dados oferecem às organizações uma maneira de selecionar, armazenar e gerenciar de forma centralizada uma coleção de dados. Podem também ajudar a automatizar grande parte do processo de coleta de dados, incluindo a captura de eventos e transações em tempo real.
A maneira como uma organização seleciona, projeta e implementa seus aplicativos de banco de dados pode ser decisiva para as principais iniciativas de negócios. Quando os dados são organizados e facilmente acessíveis, podem impulsionar a tomada de decisões, estimular a business intelligence e impulsionar projetos de IA e ML.
Os bancos de dados podem oferecer vantagens significativas em relação às planilhas e outros processos manuais de manutenção de registros propensos a erros, redundância e imprecisão.
Como os bancos de dados podem ser gerenciados de maneira centralizada, podem facilitar a aplicação de regras de limpeza e formatação, monitorar o uso e rastrear a linhagem de dados. Os bancos de dados também eliminam a necessidade de circular várias cópias de conjuntos de dados, que podem ficar não sincronizadas com o tempo. Em vez disso, todos os aplicativos e usuários podem trabalhar no mesmo repositório compartilhado.
Em última análise, os bancos de dados podem ajudar a conectar usuários de todos os tipos, como pessoas, aplicativos e APIs a dados limpos e confiáveis.
Dependendo do local e do setor, as organizações devem cumprir as normas de proteção de dados e privacidade de dados, como a Lei de portabilidade e responsabilidade de planos de saúde dos EUA e o GDPR (General Data Protection Regulation) da UE.
Além dos requisitos legais, as organizações têm interesse comercial em impedir o acesso não autorizado a dados. De acordo com o relatório do custo das violações de dados da IBM, o custo médio de uma violação é de USD 4,88 milhões entre perda de negócios, tempo de inatividade do sistema, esforços de remediação e outros custos.
Os bancos de dados podem ajudar a proteger os dados e manter a conformidade, aplicando medidas de segurança de dados como controles de acesso baseados em função (RBAC), para ajudar a garantir que somente os usuários certos acessem os dados certos.
75% dos CEOs acreditam que ter a IA generativa mais avançada será um fator decisivo para a vantagem competitiva organizacional no futuro. Para viabilizar essas IAs avançadas, as organizações precisam ter meios para armazenar, gerenciar e controlar grandes quantidades de dados estruturados e não estruturados. Eles só podem fazer isso com os sistemas de banco de dados certos implementados.
Diversos tipos de bancos de dados podem apoiar esforços de IA e ML de maneiras diferentes. Por exemplo, os bancos de dados vetoriais são comumente usados para implementar estruturas RAG que podem ajudar a reduzir as alucinações. Bancos de dados de chave-valor podem acelerar a recuperação e o processamento de dados. Bancos de dados na memória podem possibilitar análises de cache e streaming.
Vários fatores podem influenciar os tipos de bancos de dados que uma organização escolhe para uma iniciativa específica. Alguns dos mais importantes são:
Tipo de dados: cada tipo de banco de dados lida com alguns tipos de dados melhor do que outros. Por exemplo, um banco de dados gráfico geralmente é uma escolha melhor para mapear relacionamentos do que um SQL database.
Objetivo: tipos de bancos de dados diferentes também são mais adequados para aplicativos diferentes. Por exemplo, um banco de dados vetorial geralmente é a melhor escolha para um framework RAG.
Requisitos de desempenho: se um aplicativo extrai dados de forma contínua e em tempo real, a organização precisa de um banco de dados que otimize a velocidade das consultas. No entanto, se a organização precisar de um local para armazenar dados antes de enviá-los para um warehouse, o desempenho poderá ser menos importante.
Preço: a quantidade de dados que uma organização precisa armazenar, o formato desses dados e os requisitos de desempenho podem contribuir para o custo do banco de dados.
Escalabilidade: alguns bancos de dados só podem ser dimensionados verticalmente, o que significa que mais recursos devem ser adicionados a um servidor ou máquina existente. Outros podem escalar horizontalmente, o que significa que mais servidores podem ser adicionados para dar suporte ao banco de dados de forma distribuída.