quinta-feira, 24 de julho de 2014

SQL Server Vs MongoDB


Este estudo apresenta a comparação entre dois bancos de dados, o SQL Server e o MongoDB. Para que houvesse uma justa comparação entre os bancos a mesma estrutura de código foi utilizada. Foram feitos testes com as operações básicas: inserção, exclusão, consulta e alteração, e utilizando a mesma quantidade de registros para ambos os bancos. Os testes demonstraram que o banco de dados MongoDB apresenta velocidade superior ao banco de dados SQL Server.




SQL Server


De acordo com o site do fabricante MSDN (2008) referindo-se ao Microsoft SQL Server 2008, a principal vantagem é o fornecimento de uma plataforma de alta confiabilidade e robustez capaz de suportar aplicações de missão crítica de grande exigência, a possível criptação dos dados contidos em todo o BD (Banco de Dados) ou nos arquivos de log. Isso protege os dados das solicitações não autorizadas sem a necessidade de software ou aplicativos complementares. Segundo Randal (2012), o SQL permite o espelhamento do banco de dados, recuperação automática da página de dados e a compressão do fluxo de logs. Um aumento na produtividade com a rapidez e simplicidade de instalação, manutenção e uso. Também possui uma enorme versatilidade na aceitação de informações e no oferecimento de respostas previsíveis as demandas dos usuários.


Baseando em Weber (2012), o SQL Server 2008 inclui recursos de compressão, para maior escalabilidade. Os algoritmos de indexação foram aperfeiçoados e introduziu a noção de índices filtrados.


“SQL Server garante que seus dados podem ser acessados de qualquer
lugar, mesmo estando distante podem ser acessados por uma enorme
variedade de aplicativos diferentes, o que o torna muito prático e de fácil
uso para hospedagem de sites na internet” (MSDN, 2012).

Banco de dados MongoDB


A tendência de criação de bancos NoSQL fez com que uma nova categoria de bancos surgisse. O document-oriented MongoDB é uma nova possibilidade que trabalha com o armazenamento de documentos no formato BSON, uma extensão do JSON que é muito conhecido entre os desenvolvedores Java Script e largamente utilizado para a troca de informações na web. A principal diferença entre um documento JSON e um objeto em uma linguagem de programação orientada a objeto é que no JSON não é possível guardar métodos, no entanto permite guardar objetos e vetores – arrays – dentro de um objeto JSON.



Características do MongoDB


MongoDB é um poderoso, flexível e escalável banco de dados. Combina a capacidade para dimensionar com muitas das características mais úteis de bancos de dados relacionais, tais como índices secundários, consultas de largo alcance e ordenação. MongoDB também é incrivelmente cheio de recursos: tem toneladas de recursos úteis, tais como suporte embutido para MapReduce de estilo de agregação e índices geoespaciais


MongoDB possui flexibilidade, e armazena dados em documentos JSON (que é serializado para BSON). JSON nos fornece um modelo de dados rico que mapeia perfeitamente os tipos de linguagem de programação nativa.


“Poder, ele fornece várias características de um banco de dados relacional e tradicional, tais como índices secundários, consultas dinâmicas, classificação atualizações ricos, upserts (atualizar se o documento existe, inserir, se ele não existe), e de agregação fácil. Isto dá-lhe a amplitude da funcionalidade que você está acostumado a partir de um banco de dados relacional e tradicional, com a capacidade de flexibilidade e escalabilidade que o modelo não-relacional permite


Velocidade/Escalabilidade, ao manter os dados relacionados juntos em documentos, as consultas podem ser muito mais rápidas do que em um banco de dados relacional em que os dados são separados em várias tabelas e, então, precisa ser juntado mais tarde. MongoDB também facilita a expandir a sua base de dados. Autosharding permite dimensionar o cluster linearmente pela adição de mais máquinas, e também permite Balanceamento automático de mudanças na distribuição de carga e dados.


É possível aumentar a capacidade sem qualquer tempo de inatividade, o que é muito importante na web, quando a carga pode aumentar de repente e derrubar o site para manutenção prolongada pode custar grandes quantidades de receita.


Facilidade de utilização, ele trabalha duro para ser muito fácil de instalar, configurar, manter e usar. Para este fim, MongoDB fornece opções de configuração e, em vez tentar fazer automaticamente a "coisa certa" sempre que possível. Isto significa que MongoDB funciona direito fora da caixa, e você pode ir direto ao desenvolvimento de seu aplicativo, em vez de gastar muito tempo no ajuste fino de configurações de banco de dados obscuros.



Prova de Fogo


Foram realizados vários testes com as 4 operações básicas (inserção, consulta, alteração e exclusão) nos 2 bancos.
Para o caso da Inserção foram realizadas inserções com as seguintes quantidades de registros: 10, 100, 1000 e 10000 registros. Após os testes, foi gerado o gráfico que esta abaixo;




[caption id="attachment_293" align="aligncenter" width="620"] Gráfico Inserção/Segundos Gráfico Inserção/Segundos[/caption]

Abaixo temos o gráfico gerado para a operação de Consulta nos 2 bancos, com as seguintes quantidades: 10, 100, 1000 e 10000 registros.




[caption id="attachment_294" align="aligncenter" width="620"]Gráfico Consulta/Segundos Gráfico Consulta/Segundos[/caption]

Para o caso de exclusão obteve-se o tempo de 0:0:0:49 (49 milissegundos) no banco de dados SQL Server 2008, e no banco de dados MongoDB um tempo de 0:0:0:0005 (menor que 1 milissegundo) para uma mesma operação.

CONCLUSÃO


Ao final dos estudos deste trabalho conclui-se uma relativa superioridade em relação ao desempenho do banco de dados MongoDB sobre o banco de dados SQL Server 2008, em todas as operações testadas.
No caso da Inserção é onde se nota mais nitidamente essa superioridade, sendo que esta ocorre com qualquer quantidade de registros, e quanto maior a quantidade de registros, maior a superioridade. No caso da Exclusão, há uma relevante superioridade do banco de dados MongoDB.
Porém, nos casos de consulta, ocorre o seguinte: quando a quantidade de registros trazidos da base é pequena e os registros a serem consultados são diferentes, o SQL Server é superior. Conforme a quantidade toma maiores proporções o MongoDB vai superando o SQL Server. Mas quando se trata de uma consulta de um mesmo valor só que várias vezes, simultaneamente, o MongoDB supera o SQL Server em qualquer quantidade.



Referecia: Ciência da Computação da UNIFENAS

0 comentários:

Postar um comentário

Blog Archive

SmarttNet Solution Provider. Tecnologia do Blogger.

Postagens populares

Twitter MongoDBBrazil

Total de visualizações de página