Índice:
Vídeo: Common design patterns with Azure Cosmos DB | Azure Friday 2024
Embora alguns recursos sejam bastante comuns aos bancos de dados NoSQL (por exemplo, agnosticismo de esquema e estrutura não-relacional), não é incomum que um banco de dados não tenha um ou mais dos seguintes recursos e ainda se qualifique como um banco de dados NoSQL moderno.
Open-source
O software NoSQL é único porque o movimento open-source orientou o desenvolvimento em vez de seguir um conjunto de empresas comerciais. Você, portanto, pode encontrar uma série de produtos NoSQL de código aberto para atender todas as necessidades. Quando os desenvolvedores não conseguiram encontrar um banco de dados NoSQL para suas necessidades, eles criaram um, e o publicaram inicialmente como fonte aberta.
A maioria das populares soluções NoSQL são conduzidas por empresas comerciais, com a variante open source que não possui as principais características necessárias para o uso de missão crítica em grandes empresas.
A diferença entre os fornecedores de código aberto da NoSQL e essas empresas totalmente comerciais é que os fornecedores de código aberto possuem um modelo comercial semelhante ao modelo da Red Hat. Basicamente, eles lançam um produto de fonte aberta e também vendem recursos de complemento de negócios, suporte e serviços de implementação.
Esta não é uma coisa ruim! Vale ressaltar, no entanto, que as pessoas no NoSQL não são conduzidas puramente, ou mesmo principalmente, por desenvolvedores de código aberto que trabalham no seu tempo livre - em vez disso, eles trabalham para as empresas comerciais por trás dos produtos.
O comprador tem cuidado! Quando se trata de selecionar um banco de dados NoSQL, lembre-se do "custo total de propriedade". "Muitas organizações adquiriram produtos de código aberto apenas para descobrir que eles precisam de uma assinatura de alto preço para obter os recursos que eles querem.
BASE versus ACID
Antes de 2014, a maioria das definições do NoSQL não incluiu o suporte a transações ACID como um recurso definidor dos bancos de dados NoSQL. Isso não é mais verdade.
transação compatível com ACID significa que o banco de dados foi projetado para que não perca dados:
-
Cada operação move o banco de dados de um estado válido para outro ( A tomic).
-
Todos têm a mesma visão dos dados em qualquer momento ( C onsistent).
-
As operações no banco de dados não interferem entre si ( I solation).
-
Quando um banco de dados diz que salvou dados, você sabe que os dados são seguros ( D urable).
Nem muitos bancos de dados NoSQL têm transações ACID. As exceções a essa norma são o FoundationDB, o Neo4j e o MarkLogic Server, que fornecem transações ACID completamente serializáveis.
Então, por que o ACID é um recurso não tão comum?Quando o Oracle RDBMS foi lançado, ele também não forneceu conformidade ACID. Foram necessárias sete versões antes que a compatibilidade ACID fosse suportada em várias atualizações e tabelas de banco de dados.
Da mesma forma, se você olhar para os roteiros de todos os bancos de dados NoSQL, você verá que todos eles se referem ao trabalho de consistência transacional. O MongoDB, por exemplo, arrecadou US $ 150 milhões no outono de 2013 especificamente para resolver este e outros problemas empresariais. O MongoDB anunciou um novo mecanismo de armazenamento compatível com ACID. O debate ACID versus BASE é interessante.