CodeGym /Cursos /SQL SELF /Tipos de SGBD: relacionais e NoSQL

Tipos de SGBD: relacionais e NoSQL

SQL SELF
Nível 1 , Lição 2
Disponível

Existem dois tipos principais de SGBD (Sistema de Gerenciamento de Banco de Dados): relacionais e NoSQL. Os primeiros trabalham com tabelas, tudo certinho por colunas — tipo Excel. Os segundos são mais livres, não exigem estrutura rígida. Isso é ótimo quando você não tem um esquema de dados fixo ou ele muda toda hora.

Aliás, NoSQL não quer dizer "não SQL". É mais "não só SQL" (Not Only SQL). Muitos sistemas NoSQL entendem queries SQL, só funcionam de um jeito diferente.

Exemplos de SGBD populares:

  • Relacionais: PostgreSQL, MySQL, Microsoft SQL Server.
  • NoSQL: MongoDB, Cassandra, Redis.

SGBD Relacionais

Banco de dados relacional (BDR) organiza os dados em tabelas, onde cada linha é um registro (ou objeto) e cada coluna é um campo (atributo). As tabelas se conectam por chaves: primárias (pra identificar o registro) e estrangeiras (pra ligar tabelas).

Aqui vai um exemplo clássico de tabela "Estudantes" num SGBD relacional:

id name age group
1 Anna 21 KA-01
2 Eve 20 KA-02
3 Max 22 KA-01

Principais características dos SGBD relacionais:

  • Os dados são bem estruturados.
  • As relações entre tabelas são feitas por chaves.
  • Pra interagir com os dados, se usa SQL (Structured Query Language).

Vantagens

  1. Estrutura rígida de dados: as tabelas garantem que cada objeto tem um conjunto fixo de campos. Isso facilita a gestão dos dados.
  2. Integridade dos dados: graças às chaves primárias e estrangeiras, os bancos relacionais evitam inconsistências nos dados.
  3. Suporte ao padrão ACID: SGBD relacionais garantem transações confiáveis, seguindo os princípios de atomicidade, consistência, isolamento e durabilidade.
  4. Suporte a queries complexas: SQL permite fazer buscas, ordenações e agregações poderosas.

SGBD relacionais são ótimos quando os dados são bem estruturados e é importante que tudo bata certinho. Por exemplo, em sistemas bancários não pode sumir nada — cada movimentação tem que estar sob controle. Ou em sistemas de gestão: faturas, clientes e estoques geralmente têm estrutura fixa, e é fácil guardar isso em tabelas. E claro, em muitos web apps, onde tem lista de usuários, produtos, pedidos — tudo isso encaixa perfeito em tabelas e relações rígidas.

SGBD NoSQL

NoSQL (Not Only SQL) — são SGBD que não usam o modelo relacional. Os dados podem ser guardados como documentos, no formato chave-valor, grafos ou colunas. A ideia é flexibilidade: você pode guardar os dados do jeito que for melhor pra sua tarefa, sem regras rígidas. E paga o preço por isso, claro.

Exemplo de armazenamento de dados em NoSQL (pra MongoDB):

{
  "id": 1,
  "name": "Alex",
  "age": 21,
  "group": "KA-01"
}

SGBD NoSQL podem ser bem diferentes — depende de como guardam os dados. Por exemplo, SGBD de documentos, tipo MongoDB, trabalham com estruturas flexíveis, onde os dados ficam em documentos, geralmente em JSON. Isso é ótimo se a estrutura dos dados muda de registro pra registro.

SGBD chave-valor, tipo Redis, funcionam como um grande armazenamento de pares "chave:valor". São perfeitos pra cache ou acesso rápido a configs simples.

Se você precisa trabalhar com relações entre objetos — tipo analisar amigos em rede social ou montar rotas —, vale usar SGBD de grafos como Neo4j. Eles guardam info como uma rede de nós e conexões, o que é ótimo pra esse tipo de estrutura.

E as SGBD de colunas, tipo Apache Cassandra ou HBase, guardam dados por colunas, não por linhas. Isso é útil se você lida com grandes volumes de dados e precisa analisar só alguns indicadores rápido — tipo em analytics ou sistemas de Big Data.

Por que e quando escolher NoSQL

Bancos NoSQL são bons onde os SGBD relacionais tradicionais começam a engasgar. Eles têm vários pontos fortes:

  1. São rápidos. NoSQL lida muito bem com volumes enormes de dados — as queries são rápidas, mesmo se os dados não forem estruturados como uma tabela do Excel.
  2. Flexíveis. A estrutura dos dados pode mudar a qualquer hora: hoje o objeto tem três campos, amanhã tem cinco, e nada quebra.
  3. Escalam fácil. Quando os dados crescem demais, dá pra distribuir entre vários servidores. Isso é o tal do escalonamento horizontal, e NoSQL adora isso.
  4. Amigos do Big Data. Se você tem fluxo de logs, eventos, ações de usuário ou outros dados "crus" sem esquema fixo — NoSQL dá conta.

Esses SGBD são especialmente bons quando:

  • o volume de dados cresce rápido e a estrutura muda (tipo análise de logs ou eventos),
  • precisa buscar e agregar info rápido (como em analytics),
  • usa uma rede de relações complexa, tipo redes sociais (pra isso servem os SGBD de grafos).

Resumindo: se seu projeto parece mais um organismo vivo do que uma tabela certinha, NoSQL pode ser o que você procura.

Comparação entre SGBD relacionais e NoSQL

Característica SGBD Relacionais SGBD NoSQL
Armazenamento de dados Tabelas, linhas, colunas Documentos, grafos, chave-valor, colunas
Linguagem de consulta SQL Depende da implementação (por exemplo, MongoDB Query)
Integridade dos dados Alta (chaves primárias/estrangeiras) Depende da implementação (integridade não garantida)
Escalabilidade Vertical (aumentar poder do servidor) Horizontal (distribuição entre servidores)
Flexibilidade de estrutura Estrutura rígida (tabelas e campos fixos) Estrutura dinâmica (pode mudar)
Performance Ótima pra dados estruturados Alta com grandes volumes e dados pouco estruturados
Exemplos PostgreSQL, MySQL, Oracle Database MongoDB, Cassandra, Redis

Quando escolher SGBD relacional ou NoSQL?

SGBD relacionais:

  • Quando os dados são bem estruturados.
  • Quando precisa de suporte a transações.
  • Quando precisa de analytics avançado via SQL.

SGBD NoSQL:

  • Quando precisa de flexibilidade na estrutura dos dados.
  • Quando escalabilidade é mais importante que estrutura rígida.
  • Quando precisa lidar com grandes volumes de dados difíceis de organizar em tabelas.

Dá pra fazer uma analogia assim: imagina um SGBD relacional como uma tabela do Excel, tudo certinho por linhas e colunas. E NoSQL — é tipo um quadro de avisos, onde dá pra colar de tudo, de bilhetes a fotos.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION