O que são bases de dados NoSQL?
sobes.tech IA
Resposta da IA
NoSQL (Not Only SQL) é uma classe de sistemas de gestão de bases de dados não relacionais que utilizam estruturas diferentes das tabelas tradicionais com esquema fixo. São projetados para trabalhar com grandes volumes de dados não estruturados, semi-estruturados e poliestruturados, oferecendo escalabilidade flexível e alta disponibilidade.
Categorias principais de bases de dados NoSQL:
- "Chave-valor" (Key-Value Stores): Armazenam dados em pares chave-valor, onde a chave identifica de forma única o valor.
# Exemplo de representação de dados em um armazenamento chave-valor user_data = { "user:123": {"name": "Alice", "age": 30}, "product:456": {"name": "Laptop", "price": 1200} } - "Colunar" (Columnar Databases): Armazenam dados por colunas, não por linhas. Otimizados para consultas analíticas e processamento de grandes volumes de dados.
- "Documentais" (Document Databases): Armazenam dados em forma de documentos (por exemplo, JSON, BSON, XML). O esquema de dados é flexível.
// Exemplo de documento em base de dados documental { "_id": "prod_abc", "name": "Smartphone", "brand": "XYZ", "specs": { "display": "6.5 inch", "camera": "48MP" }, "tags": ["eletrônicos", "móvel"] } - "Grafos" (Graph Databases): Projetados para armazenar e processar dados representados na forma de vértices (nós) e arestas (relações). Utilizados para analisar relações.
Diferenças em relação às bases de dados relacionais (SQL):
| Característica | Relacional (SQL) | NoSQL |
|---|---|---|
| Esquema de dados | Fixo, rígido | Flexível, dinâmico |
| Escalabilidade | Vertical (aumentar a potência do servidor) | Horizontal (adicionar servidores) |
| Normalização | Alta (redução de redundância) | Baixa (duplicação de dados para desempenho) |
| Transações ACID | Geralmente suporte completo | Suporte variável (às vezes BASE) |
| Linguagem de consulta | SQL | Varia (frequentemente API, linguagens específicas) |
Bases de dados NoSQL são escolhidas para cenários que requerem alta escalabilidade, flexibilidade de esquema, processamento rápido de grandes volumes de dados (Big Data), trabalho com dados semi-estruturados/não estruturados ou modelos de dados específicos (por exemplo, grafos).