O que é um BANCO DE DADOS?
Um BANCO DE DADOS (BD) é uma estrutura organizada de dados
inter-relacionados, projetada para
ser armazenada e gerida de forma eficiente por um SGBD. O objetivo principal de um
BD é armazenar
informações de maneira sistemática, permitindo o acesso, a modificação e a recuperação rápida e
eficiente dos dados.
Já os SGBD, ou SISTEMAS DE
GERENCIAMENTO DE BANCO DE DADOS, são softwares projetados para
gerenciar, organizar, armazenar e recuperar dados de maneira eficiente e segura.
Eles permitem que os usuários interajam com os dados sem precisar se preocupar com os
detalhes de armazenamento e gerenciamento, oferecendo uma camada de abstração entre os
bancos de dados e os aplicativos ou usuários que os utilizam.
E por serem o programa de computador que facilita a criação, o gerenciamento e a manipulação de um
BD, possuem e devem possuir várias funcionalidades para serem
classificados como um SGBD.
Exemplos de algumas dessas funções são:
-
Modelagem de dados:
-
Permitem a definição de estruturas de dados, como tabelas, colunas e tipos de dados.
-
Manipulação de dados:
-
Oferecem linguagens de consulta, como SQL, para inserir, atualizar, excluir e
consultar
dados.
-
Controle de acesso:
-
Gerenciam permissões para garantir que apenas usuários autorizados possam acessar
ou modificar os dados.
-
Integridade e consistência:
-
Mantêm a integridade dos dados através de mecanismos, como chaves estrangeiras e
transações.
-
Cópia de segurança e recuperação:
-
Possuem recursos para criar cópias de segurança dos dados e recuperar informações em caso de
falhas.
-
Concorrência:
-
Gerenciam o acesso simultâneo de múltiplos usuários para garantir a integridade dos
dados durante operações concorrentes.
BD são fundamentais para diversas aplicações computacionais, e
eles podem ser classificados basicamente em BANCO DE DADOS RELACIONAIS (SQL), e NÃO RELACIONAIS (NOSQL).
BANCO DE DADOS RELACIONAL:
BANCO DE DADOS RELACIONAIS, também conhecidos como SQL, STRUCTURED QUERY
LANGUAGE, ou LINGUAGEM
DE CONSULTA ESTRUTURADA. Tem o intuito de organizar os dados em tabelas estruturizadas.
Cada tabela é composta por linhas e colunas, onde as colunas representam os atributos (ou campos) e
as linhas representam os registros (ou tuplas).
A relação entre as tabelas é estabelecida através de chaves estrangeiras, que são referências a
chaves primárias de outras tabelas. Isso permite a criação de consultas complexas que relacionam
múltiplas tabelas para extrair informações.
Vantagens dos relacionais:
-
Padronização:
-
É uma linguagem padronizada pela indústria, o que facilita a interoperabilidade entre
diferentes
tipos de SGBD.
-
Simplicidade de uso:
-
A linguagem é relativamente fácil de aprender e usar, especialmente para consultas básicas e
manipulação de dados.
-
Desempenho otimizado:
-
Permite acesso rápido e eficiente aos dados, sendo capaz de recuperar múltiplos registros
com
comandos simples.
-
Integridade dos dados:
-
Oferece recursos para garantir a integridade e consistência dos dados nos banco de dados
relacionais.
-
Consultas estruturadas:
-
Tem capacidade de realizar consultas complexas e bem estruturadas, especialmente com o uso
de
cláusulas, que facilitam a combinação de dados de várias tabelas.
Desvantagens dos relacionais:
-
Custo de licenciamento:
-
Algumas versões de SGBD
relacionais
podem ter opções de licenciamento caras.
-
Compatibilidade limitada:
-
Uns tipos de SQL, por
exemplo, é
projetado para rodar apenas em servidores baseados no WINDOWS,
limitando assim a flexibilidade em ambientes multiplataforma.
-
Rigidez estrutural:
-
SQL é baseado em esquemas
rígidos, o
que pode ser uma desvantagem quando se trabalha com dados não
estruturados
ou semiestruturados, onde o NOSQL pode oferecer mais
flexibilidade.
BANCO DE DADOS NÃO RELACIONAL:
BANCO DE DADOS NÃO RELACIONAIS, ou NOSQL, NOT ONLY
SQL, NÃO APENAS SQL,
surgiram
como uma alternativa aos bancos de dados tradicionais (faz referência aos relacionais aqui) para
lidar com
grandes volumes de dados e situações onde a flexibilidade na estrutura dos dados é mais
importante do que a consistência e a integridade transacional.
Eles não dependem de tabelas e linhas como estrutura de dados, permitindo armazenar dados de
maneira mais diversificada e menos estruturada.
E são basicamente, qualquer linguagem para SGBD que não seja baseada no SQL,
por isso que é chamado de NOSQL.
Alguns exemplos das categorias dos não relacionais incluem: documentos, colunas, chave-valor,
grafos, etc
Vantagens dos não relacionais:
-
Flexibilidade:
-
Esses banco de dados não relacionais permitem armazenar dados com estruturas variáveis, o
que
proporciona maior agilidade no desenvolvimento de aplicações que lidam com dados dinâmicos.
-
Escalabilidade horizontal:
-
É frequentemente escolhido por sua capacidade de escalar horizontalmente, distribuindo
dados por vários servidores para lidar com cargas de trabalho muito grandes.
-
Desempenho:
-
Em muitos casos, especialmente com grandes volumes de dados e operações de
leitura / escrita intensivas, esses bancos de dados podem oferecer melhor
desempenho do que os BD relacionais.
-
Suporte a dados não estruturados:
-
É ideal para armazenar dados que não se encaixam bem em tabelas,
como documentos JSON, pares chave-valor, grafos ou colunas de dados
variáveis.
-
Modelagem de dados:
-
Permite a modelagem de dados mais próxima da forma como os desenvolvedores
pensam e estruturam suas aplicações, reduzindo a necessidade de abstrações e
conversões.
Desvantagens dos não relacionais:
-
Falta de padrão:
-
Ao contrário dos relacionais, não há um padrão universal para a linguagem de consulta
em NOSQL, o que
pode
levar
a uma curva de aprendizado mais acentuada e a problemas
de interoperabilidade (esse termo se refere à capacidade de diversos sistemas trabalharem em
conjunto).
-
Integridade dos dados:
-
Muitos sistemas relaxam as restrições de integridade referencial que são
comuns em BD de SQL, o que pode dificultar a manutenção
da
consistência dos dados.
-
Complexidade de consultas:
-
Realizar consultas complexas, especialmente aquelas que envolvem junções de
múltiplas tabelas ou coleções, pode ser mais difícil e menos eficiente em NOSQL.
-
Maturidade:
-
Alguns bancos de dados não relacionais são relativamente novos e podem não ter a
mesma maturidade e quantidade de recursos do que os SGBD relacionais
estabelecidos no
mercado.
-
ACID:
-
Muitos BD não relacionais não oferecem suporte completo
às
propriedades
ACID (Atomicidade, Consistência, Isolamento e Durabilidade), o que pode ser uma
limitação crítica para aplicações que exigem transações altamente confiáveis.
OBSERVE:
NOSQL não é uma substituição
direta para SQL, mas sim uma
alternativa que é mais adequada
para certos tipos de requisitos. A escolha entre eles deve ser feita com base nas
necessidades específicas do projeto, como a estrutura dos dados, a escala desejada,
os requisitos de transação etc.
E dependendo do caso, ambos podem ser usados ao mesmo tempo em um sistema híbrido, aproveitando as
vantagens dos dois mundos.
Exemplos de sistema de gerenciamento de banco de dados:
⚠️ Aviso: As informações exibidas podem estar desatualizadas e estão sujeitas a alterações.
Sempre consulte fontes oficiais ou atualizadas para confirmar os dados.
RELACIONAL:
NÃO RELACIONAL: