Veja nesse artigo alguns dos conceitos e termos utilizados no NoSQL comparando com SQL:
Fala galera, pensando em quem está começando na area de desenvolvimento de software, especificamente na parte de modelagem de banco de dados, esse será um post rápido com foco na comparação entre os termos utilizados no NoSQL com os termos utilizados no SQL.
Mas antes, o que é SQL e o que é NoSQL ?
Em um breve resumo nós temos:
SQL
SQL é a sigla utilizada para “Structured Query Language” que traduzindo para o português significa: “Linguagem de Consulta Estruturada”.
Com o SQL, você pode executar vários comandos para criar, alterar, gerenciar, consultar, dentre outras informações no seu banco de dados. Costumamos dizer que bancos SQL seguem uma modelagem relacional, pois estes se baseiam no fato de que todos seus dados sejam guardados em tabelas.
NoSQL
NoSQL (Not Only SQL) é o termo utilizado para banco de dados não relacionais. Ele foi desenvolvido para ter uma performance melhor e uma escalabilidade mais horizontal para suprir necessidades onde os bancos relacionais não são muito eficazes.
No geral, nós temos 4 tipos de bancos de dados NoSQL:
- Documento: Os dados são armazenados como documentos no formato JSON. Um exemplo de banco de dados neste formato é o MongoDB
- Colunas: Os dados são armazenados em linhas dentro de tabela no disco. Um exemplo de banco de dados neste formato é o Cassandra
- Grafos: Os dados são armazenados em forma de grafos (vértices e arestas). Um exemplo de banco de dados neste formato é o Neo4j
- Chave-valor: Em algumas pesquisas e testes realizados pela internet, esta família de banco NoSQL é a que mais aguenta carga de dados, pois o seu conceito é que um determinado valor seja acessado através de uma chave identificadora única. Um exemplo de banco de dados neste formato é o Redis.
Em um breve Resumo o conceito de modelo relacional (SQL) se baseia no fato de que todos os dados sejam guardados em tabelas. O modelo não-relacional (NoSQL) não se aplica o conceito de schema: uma chave de valor que é utilizada para recuperar valores, conjunto de documentos ou colunas.
A seguir você tem uma imagem ilustrando esses exemplos:
Bom, depois dessa rápida introdução a bancos de dados SQL e NoSQL e pegando como parâmetro o SQL Server para familia dos bancos SQL e o MongoDB para familia dos bancos de dados NoSQL, nos temos:
As principais diferenças entre eles:
Os termos utilizados em cada um deles:
Um comparativo entre as instruções de inserção e consulta, tendo em mente o SQL Server e o MongoDB novamente: