Por que Nosql não é ácido

Publicados: 2022-11-19

Há muito debate sobre se os bancos de dados NoSQL são “ácidos” ou não. O principal argumento contra os bancos de dados NoSQL serem ácidos é que eles não suportam todos os recursos de um banco de dados relacional tradicional. Os bancos de dados NoSQL geralmente são projetados para serem mais escaláveis ​​e fáceis de usar do que um banco de dados relacional, mas sacrificam alguns dos recursos que tornam um banco de dados relacional mais robusto. Por exemplo, os bancos de dados NoSQL geralmente não oferecem suporte a transações, que é um recurso importante de um banco de dados relacional. Isso significa que, se você estiver usando um banco de dados NoSQL, poderá ter que desistir de alguns dos recursos aos quais está acostumado em um banco de dados relacional.

Um banco de dados NoSQL não é compatível com ACID. Um estado de espírito consistente no sentido de que é maleável, suave e consistente. Como resultado, se a Amazon usasse esse recurso, você sempre poderia comprar livros deles, mas eles não seriam capazes de prever quando seriam preenchidos. Eles pretendem refutar o teorema de Brewer.

Oracle, MySQL, PostgreSQL e Microsoft SQL são todos capazes de suportar propriedades ACID em transações. Vamos dar uma olhada em uma história típica do NoSQL.

Um banco de dados NoSQL pode ser usado para armazenar dados ACID . Em seu projeto original, o sistema não incluía o componente 'Sistema de Gerenciamento' de um SGBD.

O Nosql tem propriedades ácidas?

Imagem por – https://dotnettutorials.net

Não há uma resposta definitiva para essa pergunta, pois depende da implementação específica do NoSQL. Alguns bancos de dados NoSQL têm propriedades ácidas, enquanto outros não.

O termo atomicidade refere-se ao fato de que uma transação deve ser realizada na ausência de uma pluralidade de operações. A consistência dos dados refere-se ao fato de que todos os dados em um banco de dados devem ser registrados exatamente como estavam quando a transação foi feita. Consideramos o isolamento um estado de total confidencialidade que impede que qualquer outra transação interfira no nosso trabalho contínuo. A durabilidade de uma transação indica que as outras transações concluídas em conjunto com ela continuarão a funcionar. A abordagem NoSQL para gerenciamento de banco de dados é contrária à estrita regra ACID . Como resultado, os bancos de dados NoSQL não são a melhor escolha para quem deseja executar em ambientes rígidos. Um banco de dados que adere aos padrões ACID geralmente é mais confiável e eficiente, além de fornecer uma experiência mais consistente aos usuários.


Nosql é ácido ou base?

Imagem por – https://infodecisionnel.com

As propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade) de um banco de dados relacional são fortemente seguidas pelas propriedades ACID (Atribuição, Consistência, Isolamento e Durabilidade) de um banco de dados NoSQL.

Há uma forte demanda por bancos de dados produtores de ACID. Na era do Big Data, precisamos de tecnologias que possam ser dimensionadas. Um banco de dados NoSQL pode manipular dados grandes e complexos com mais eficiência. Ao contrário dos RDBMSs tradicionais , essas soluções não usam relacionamentos tabulares e, portanto, não apresentam os mesmos problemas de armazenamento. É natural que às vezes prefiramos a disponibilidade à consistência. Quando o modelo ACID é exagerado, é preferível ter uma propriedade base. Se você precisa de consistência, mas prefere uma estrutura rígida, um banco de dados relacional é uma boa escolha. Não é necessário escolher entre RDBMS e NoSQL para cada sistema, como muitos fazem.

O banco de dados NoSQL é um novo tipo de banco de dados que não depende de transações ACID. (Amplamente definido como disponível, estado flexível e consistência eventual.) Os dados geralmente estão disponíveis no sentido geral. Se uma solicitação não for atendida, é possível que ela seja rejeitada. É o tipo mais comum de sistema de banco de dados que executa transações ACID. MySQL, PostgreSQL, SQLite, SQL Server e outros bancos de dados são todos suportados. Bancos de dados orientados a objetos são um novo tipo de banco de dados que não requer processamento de transações ACID. No entanto, quando uma resposta é recebida a uma solicitação, uma resposta não pode garantir a disponibilidade dos dados. Se os dados não puderem ser obtidos, eles serão disponibilizados em algum momento. No estado flexível, as atualizações dos dados não são permanentes; esse recurso permite atualizações contínuas de dados. A consistência é crítica: garante que os dados estejam sempre atualizados, mesmo que haja muitas atualizações.

Suporte do Mongodb às propriedades ácidas

O termo consistência refere-se a quanto tempo os dados devem permanecer consistentes com várias operações de leitura quando são gravados no banco de dados. O banco de dados deve ser capaz de garantir que todas as transações executadas simultaneamente não tenham impacto umas sobre as outras, conforme descrito acima. A durabilidade de um banco de dados indica que ele poderá funcionar mesmo após uma queda de energia ou outro evento catastrófico. Em outras palavras, embora o MongoDB não seja um banco de dados compatível com ACID, ele oferece suporte a algumas das principais características do ACID, como atomicidade e durabilidade.

Por que o Mongodb não é ácido?

O MongoDB não é ácido porque não suporta transações. As transações são uma parte fundamental da conformidade ácida . O MongoDB também não oferece suporte a chaves estrangeiras, outra parte importante da conformidade com ácido.

O MongoDB 4.0 adiciona transações ACID de vários documentos. O PostgreSQL tem suporte nativo de conformidade ACID , enquanto o MongoDB não consegue fazer isso há muito tempo. Não está claro para nós se o MongoDB faz do ACID uma prioridade máxima ou se os usuários se preocupam com isso. A versão 4.0 do MongoDB inclui garantias de transação ACID de vários documentos. De acordo com Eliot Horowitz, o modelo de documento elimina a necessidade de transações ACID. Grigori Melnik, vice-presidente de produtos, servidor e ferramentas corporativas, acredita que esta é uma nova maneira de escrever para o MongoDB. Na versão V4.2 do MongoDB, as transações serão possíveis em várias implementações de vários fragmentos.

Apesar do MongoDB ter suportado vários mecanismos de armazenamento de dados no passado, apenas o WiredTiger pode ser usado para transações. Por que o ACID é tão importante para o MongoDB? Não temos certeza do que podemos dizer sobre o compromisso da EDB com as transações ACID, mas podemos dizer uma coisa: ele leva as transações ACID muito a sério. Apesar do status No.7, permanece o fato de que o uso de uma linguagem de consulta padrão, como SQL, ainda fornece um valor significativo. À medida que você desenvolve mais aplicativos para acessar seus dados, será forçado a criá-los em um padrão disperso, aumentando a complexidade. O PostgreSQL, como o banco de dados de uso geral mais popular, continua sendo a melhor escolha.

O Mongodb é totalmente compatível com ácidos?

As transações ACID de vários instrumentos, por outro lado, estão disponíveis para casos de uso que as exigem. Eles apreciam a flexibilidade de poder modelar seus dados de uma forma que normalmente não requer transações com vários documentos, mas que é possível quando eles o fazem.

O Nosql Suporta Ácido

Bancos de dados Nosql não suportam transações ácidas. Isso significa que eles não podem garantir que uma transação seja processada corretamente e que os dados possam ser perdidos ou corrompidos durante uma transação.

Bancos de dados Nosql: o modelo básico é mais durável e consistente

A maioria dos bancos de dados Nosql não oferece suporte a propriedades ACID, preferindo usar um modelo básico que resista a abusos e seja mais durável.