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:
sistema de gerenciamento de banco de dados relacional
Informações básicas Detalhes técnicos
Licença Nome Desenvolvedor Ano de lançamento Sistemas operacionais de servidor
Licença comercial Oracle Oracle 1980
  • AIX
  • HP-UX
  • Linux
  • OS X
  • Solaris
  • Windows
  • z/OS
IBM Db2 IBM 1983
  • AIX
  • HP-UX
  • Linux
  • Solaris
  • Windows
  • z/OS
Microsoft SQL Server Microsoft 1989
  • Linux
  • Windows
Código aberto MySQL Oracle 1995
  • FreeBSD
  • Linux
  • OS X
  • Solaris
  • Windows
PostgreSQL PostgreSQL Global Development Group 1989
  • FreeBSD
  • HP-UX
  • Linux
  • NetBSD
  • OpenBSD
  • OS X
  • Solaris
  • Unix
  • Windows
SQLite Dwayne Richard Hipp 2000
  • Sem servidor
MariaDB MariaDB plc (MariaDB Enterprise Platform and MariaDB) 2009
  • FreeBSD
  • Linux
  • Solaris
  • Windows

Cada um desses sistemas de gerenciamento possuem suas próprios particularidade e jeitinhos únicos, e caso for do seu interesse e curiosidade, uma pesquisa minuciosa sobre cada um deles será bem interessante.


NÃO RELACIONAL:
sistema de gerenciamento de banco de dados relacional
Informações básicas Detalhes técnicos
Licença Nome Desenvolvedor Ano de lançamento Sistemas operacionais de servidor
Código aberto MongoDB MongoDB, Inc 2009
  • Linux
  • OS X
  • Solaris
  • Windows
Apache Cassandra Apache Software Foundation (Originalmente desenvolvido pelo Facebook) 2008
  • BSD
  • Linux
  • OS X
  • Windows
Redis Equipe do projeto Redis, inspirada por Salvatore Sanfilippo (Patrocinado pela Redis Inc) 2009
  • BSD
  • Linux
  • OS X
  • Windows
Neo4j Neo4j, Inc 2007
  • Linux
  • OS X
  • Solaris
  • Windows

Cada um desses sistemas de gerenciamento possuem suas próprios particularidade e jeitinhos únicos, e caso for do seu interesse e curiosidade, uma pesquisa minuciosa sobre cada um deles será bem interessante.