NoSQL e PHP

09/03/2016

Sobre o banco de dados NoSQL em conjunto com PHP, o que vocês sugerem, acham, é um bom banco de dados ou é melhor utilizar um banco de dados tradicional mesmo?

Gabriel Farias

Melhor resposta

12/03/2016

Vou ressaltar que é impossível tratar de um assunto desta complexidade em um post de fórum, pois o que estou postando é um visão simplista e resumida de algo que é vasto e pode ser interpretado de diversas formas.

Então vou tentar resumir, mas claro que é assunto para muita discussão.

NoSQL é algo novo é que ainda esta em desenvolvimento e esta sempre mudando, então ACID não contradiz ou nega o conceito de NoSQL. Alguns bancos aceitam: FoundationDB, OrientDB e a maioria dos bancos de dados orientados para o gráfico, por design são ACID.

Outros não.

Se ficar no nível do documento, ou seja, nos limites de agregação, você não precisa de qualquer transação. O que não é aconselhável é tentar usar o paradigma do NoSQL pensando no paradigma de banco relacional.

Não quero ser chato mas se quer mesmo entender a fundo o assunto sugiro começar a ler os artigos disponíveis, pois tem muito material de boa qualidade.

Jothaz

Responder Citar

Outras Respostas

09/03/2016

Jothaz

O NoSQL é um ótimo banco de dados, mas vai depender do seu cenário, então fica complicado sugerir algo sem um detalhamento maior.

Você tem experiência no uso do bancos de dados NoSQL ou OO?

Qual o seu nível de experiência em desenvolvimento?

O porque você cogitou o uso do NoSQL?

Você tem experiência no uso de JSON?
Responder Citar

09/03/2016

Gabriel Farias

Tenho um pouco de conhecimento O.O, mas nada que garanta que vá programar nesse paradigma, básico, NoSQL, nada, estou curioso nesse momento, apenas li artigos introdutórios.

Qual o seu nível de experiência em desenvolvimento?


Básico, nivel de aprendizado.

O porque você cogitou o uso do NoSQL?


Curiosidade, vontade de aprender.

Você tem experiência no uso de JSON?


Nenhuma. rsrsrs.
Responder Citar

09/03/2016

Jothaz

Com forma de aprendizado é interessante, só que você terá uma curva de aprendizado, pois não se trada de um assunto trivial. E normalmente é indicado para cenários específicos, pois usar bancos relacionais é bem mais simples na maioria dos casos.

Acho que o primeiro passo é estudar e conhecer mais profundamente o NoSQL.

Depois estudar JSON, pois ajuda muito em determinados casos.

Fica muito difícil sugerir mais alguma coisa sem um cenário definido.

Comece instalando, estudando e vá postando suas dúvidas.

No mais boa sorte e bons estudos.
Responder Citar

09/03/2016

Gabriel Farias

Quando citou o JSON pensei que fosse um tipo de pré requisito para o NoSQL.
Responder Citar

09/03/2016

Mariana Carvalho

banco de dados NoSQL serve mais para alguns tipos de sistema? Me falaram que é bastante utilizado em redes sociais.
Responder Citar

10/03/2016

Gabriel Farias

banco de dados NoSQL serve mais para alguns tipos de sistema? Me falaram que é bastante utilizado em redes sociais.


Apenas sei isso tambem, bem por cima.
Responder Citar

10/03/2016

Jothaz

Este assunto já foi abordado aqui em outro post. Eu sinceramente não tenho saco para usar a pesquisa do fórum, mas para quem tem disposição vai achar um post com muitas
informações.

É praticamente impossível abordar um assunto tão complexo em um post de fórum, mas tentarei resumir.

O termo NoSQL descreve uma família de bancos de dados que tem em comum não serem relacionais, mas podendo variar em vários pontos entre si.

Esta variação é quanto a forma de armazenar as informações (dados) que resumidamente seria:

Grafos: Usa a forma de grafo baseado em vértices e arestas e temos como exemplo Sesame.
Colunas: Usa dados em linhas particulares de tabela e temos como exemplo Cassandra.
Chave-Valor: Usa dados no padrão chave-valor (hash) e temos como exemplo MemcacheD.
Documento: Usa documentos como dados, assim um documento pode ser um dado aninhado em formato chave-valor(padrão JSON) temos como exemplo MongoDB.

A proposta seria prover escalabilidade, disponibilidade, baixo custo operacional, flexibilidades, segurança e eficiência para volumes maciços de dados, por exemplo rede sociais. Mas poderia ser usado para armazenar informações de controle de trafego aéreo, dados climáticos ou qualquer outro tipo de sistema.

Para mais informações sugiro recorrer a uma pesquisa na web onde será encontrado farto material.
Responder Citar

10/03/2016

Gabriel Farias

Antes de perguntar eu tento fazer as pesquisas, mas na maioria sem sucesso, mas te agradeço pela resposta!
Responder Citar

11/03/2016

Gabriel Farias

Me desculpa, voltando aqui com mais perguntas:

A proposta seria prover escalabilidade, disponibilidade, baixo custo operacional, flexibilidades, segurança e eficiência para volumes maciços de dados, por exemplo rede sociais. Mas poderia ser usado para armazenar informações de controle de trafego aéreo, dados climáticos ou qualquer outro tipo de sistema. Para mais informações sugiro recorrer a uma pesquisa na web onde será encontrado farto material.


Os bancos NoSQL possuem o conceito de ACID dos banco tradicionais?
Responder Citar

12/03/2016

Gabriel Farias

Alguem sabe?
Responder Citar

13/03/2016

Gabriel Farias

Você deu um pontapé inicial pra mim, com a sua resposta posso pesquisar.
Responder Citar

13/03/2016

Mariana Carvalho

Jothaz, pelo que li todos "aceitam" a ACID, mas foi bem por cima a leitura e não lembro a fonte.
Responder Citar

13/03/2016

Gabriel Farias

Você deu um pontapé inicial pra mim, com a sua resposta posso pesquisar.
Responder Citar

14/03/2016

Jothaz

Jothaz, pelo que li todos "aceitam" a ACID, mas foi bem por cima a leitura e não lembro a fonte.


Como eu disse é um assunto que esta em desenvolvimento e ocorre mudanças a todo instante. E existem literalmente dezenas de bancos NoSQL.

Por exemplo o Sqlite não impõe integridade referencial, mas pode acontecer de que na próxima versão imponha. O MySQL mesmo até alguns anos atrás não impunha integridade referencial e hoje já faz isto.

Trabalhei com o MongoDB as uns 6 meses atrás e o "conceito ACID" não estava disponível, mas sei lá pode ser que foi lançada um nova versão.

Como ressaltei dependendo de como é abordado a gravação dos dados não é necessário ACID.

Correndo o risco de ser repetitivo, se quer mesmo usufruir de tudo o que os bancos NoSQL oferecem, você deve se livrar dos conceitos dos bancos dadas relacionais. Acontece muito com o desenvolvimento OO, pois muitas das vezes desenvolve-se OO mas pensando procedural.

Por gentileza compartilhe os links onde a informação de que todos os bancos NoSQL "aceitam" ACID, pois só vai enriquecer o post.
Responder Citar

14/03/2016

Mariana Carvalho

Quem desenvolve ou quem cuida de banco de dados faz questão que tenha o ACID.
Responder Citar