Continue lendo para descobrir as diferenças entre NoSQL e bancos de dados relacionais. Além disso, descubra como os bancos de dados NoSQL são dimensionados horizontalmente.
Bancos de dados relacionais existem há mais de 40 anos e funcionam bem. Existem casos de uso específicos, no entanto, em que um profissional de software pode usar um banco de dados NoSQL em vez de usar um banco de dados relacional.
NoSQL X Banco de Dados Relacionais
- Os bancos de dados relacionais são altamente disponíveis e altamente consistentes. Portanto, executar operações atômicas neles é fácil e eles funcionam muito bem.
- Teorema CAP que afirma que ter as três propriedades ao mesmo tempo não é possível. Então, na melhor das hipóteses, você pode obter duas propriedades destas e não da terceira. Assim, os bancos de dados relacionais fornecem consistência e disponibilidade, mas não têm funcionalidade sólida de particionamento, embora os bancos de dados relacionais suportem particionamento.
- O ponto mencionado acima é a principal razão para a existência de bancos de dados NoSQL como o MongoDB ou o Cassandra. Esses bancos de dados fornecem excelente suporte para escalabilidade horizontal. Eles também não tem junções exatamente como bancos de dados relacionais, e estas são as principais razões pelas quais eles se dimensionam tão bem horizontalmente.
- Outra razão para o uso de bancos de dados NoSQL é sua facilidade de desenvolver. Os DBs, como o MongoDB, são bancos de dados de documentos nos quais os dados são armazenados como JSON. Ele é altamente compatível com a maioria das interfaces de usuário da web.
- Bancos de dados relacionais tem um esquema estrito para o armazenamento de dados. Através do uso de instruções ‘alter’, o esquema pode ser alterado. Porém, ele tem seu impacto no código existente, que deve ser alterado de acordo com as alterações feitas no esquema. Os bancos de dados NoSQL, por outro lado, suportam mudanças de esquema fáceis em tempo real, sem afetar nenhum código existente.
Como os bancos de dados NoSQL são dimensionados horizontalmente?
Existem duas abordagens principais:
- Auto-Sharding: Isso é o que é seguido pelo Bigtable do Google. Basicamente, ele atribui um intervalo de valores a uma partição (essa é uma abordagem para particionamento). Portanto, quando um determinado valor está dentro de um determinado intervalo, o banco de dados sabe em qual partição procurar. É semelhante a um conceito de tabela de hash.
- Hashing Consistente: A outra abordagem é o hashing consistente, que é seguido pelo DynamoDB na Amazon. Ele prepara um hash de máquinas de maneira circular e, se uma determinada máquina falhar no círculo, o banco de dados saberá onde procurar o próximo registro nesse círculo de máquinas.
NoSQL vs Bancos de Dados Relacionais: Quando Usar o Quê?
The following two tabs change content below.
Wesley Mota
DBA SQL Server
Profissional graduado em Banco de Dados e Sistemas de Informação com mais de 7 anos de experiência em empresas de software. Certificado MCSA Microsoft SQL Server possui intensa vivência em administração de banco de dados, Tunning, Performance SQL Server, levantamento de melhorias e monitoramento de banco de dados e servidores SQL Server. Consultoria SQL Server em diversos clientes no Brasil e ao redor do mundo. Escritor no blog dbasqlserverbr.com.br/blog. Onde compartilha conhecimento, experiências e dicas de performance para DBAs SQL Server. Conhecimentos em Oracle e ambientes de alta disponibilidade. Desenvolvimento de softwares web e mobile.Gerenciamento de equipe e projetos.
Latest posts by Wesley Mota (see all)
- Free Blackjack No Download: Appreciate Blackjack Anytime, Anywhere - novembro 25, 2024