Os bancos de dados não relacionais, também conhecidos como NoSQL (Not Only SQL), surgiram para atender aplicações que necessitam trabalhar com grandes volumes de dados, alta velocidade de processamento e estruturas flexíveis.
Diferente dos bancos relacionais tradicionais, eles não dependem obrigatoriamente de tabelas com linhas e colunas.
Um banco de dados não relacional é um sistema de armazenamento que utiliza modelos diferentes do modelo tradicional de tabelas relacionadas.
Seu objetivo principal é oferecer:
| Banco Relacional | Banco Não Relacional |
|---|---|
| Estrutura baseada em tabelas | Estrutura baseada em diferentes modelos |
| Usa SQL | Pode utilizar diferentes linguagens |
| Possui esquema fixo | Possui estrutura flexível |
| Relacionamentos com chaves | Dados geralmente independentes |
| Tipo | Característica |
|---|---|
| Documento | Armazena informações em documentos JSON |
| Chave-Valor | Utiliza pares de chave e valor |
| Colunar | Organiza dados por famílias de colunas |
| Grafos | Representa dados através de nós e relacionamentos |
Bancos orientados a documentos armazenam informações em documentos semelhantes ao formato JSON.
{
"nome": "Carlos",
"idade": 30,
"cidade": "São Paulo"
}
Cada documento pode possuir estruturas diferentes.
| Banco | Tipo |
|---|---|
| MongoDB | Documento |
| Redis | Chave-Valor |
| Cassandra | Colunar |
| Neo4j | Grafo |
| Área | Aplicação |
|---|---|
| Redes Sociais | Armazenamento de grandes volumes de usuários |
| Comércio Eletrônico | Catálogos e recomendações |
| Internet das Coisas | Dados gerados por sensores |