Nesse artigo apresentaremos o conceito de banco de dados NoSQL e utilizaremos o MongoDB para conhecer um pouco mais sobre essa modalidade de banco de dados. Esta discussão é importante por que serve para apresentar o banco de dados para quem ainda não o conhece e aprofundar um pouco mais sobre o assunto.
Em que situação o tema é útil
O tema é de extrema utilidade em casos de entusiastas do universo de banco de dados, dando exemplos e fazendo comparações com a Linguagem SQL.
Resumo DevMan
Este artigo apresenta de maneira clara e objetiva a utilização de um banco do tipo NoSQL na prática. Utilizamos o MongoDB para exemplificar tal tecnologia da área de banco de dados. O MongoDB tem se tornado um dos mais conceituados banco de dados do tipo NoSQL. Para quem procura alta escalabilidade e necessita trabalhar com grandes volumes de dados confira aqui uma ótima solução de banco de dados.
Hoje em dia as aplicações web já são uma realidade. Nesse tipo de aplicação é muito comum receber um volume de dados muito grande. Outro fator importante também é que a quantidade de acessos ao sistema pode ser exorbitante, exigindo um trabalho maior do gerenciador de banco de dados.
A necessidade de grandes volumes de dados e um baixo tempo de resposta fez com que os bancos de dados relacionais não atendessem todas as necessidades e para se tornarem mais escaláveis tem-se que o custo é muito alto, tornando seu uso inviável para uma empresa de médio porte.
Neste contexto, um novo padrão de banco de dados foi desenvolvido para tornar mais viável a implementação de base de dados com grandes volumes de dados. Este padrão se refere à implementação de uma modalidade de banco de dados que é o tipo noSQL (entenda-se "Not only SQL"). Esse é um termo utilizado para especificar uma classe de gerenciadores de banco de dados que poderá ser definida como bancos de dados não-relacionais. Essa é a classe da qual falaremos nesse artigo.
É importante ressaltar que os bancos de dados do tipo NoSQL não vieram com o intuito de derrubar a tecnologia dos bancos de dados relacionais, por tanto não dá para fazer comparações do tipo: qual banco é melhor do que outro? Assim, temos que os bancos de dados NoSQL devem ser aplicados em casos específicos onde se necessita de alta escalabilidade.
Contando um pouco de história
Inicialmente o termo NoSQL foi utilizado para denominar os bancos de dados relacionais de código aberto que não possuíam uma interface. Hoje em dia esse nome é utilizado para bancos de dados que não fazem o uso somente de SQL.
A categoria de banco de dados NoSQL possui também outros termos que são equivalentes tais como: NF², N1NF(non first normal form). Todos esses termos são para tentar transmitir a idéia de que o banco de dados não se enquadra na primeira forma normal, a qual especifica que todos os atributos devem ser monovalorados e não devem ser compostos.
O NoSQL utiliza o Modelo Relacional Não-Normalizado, denominado pela sigla MRNN. Esse tipo de modelagem de dados foi apresentado pela primeira vez pelo professor Valdemar Setzer. O modelo quebrava todas as regras impostas pelo consolidado Modelo Entidade Relacionamento MER desenvolvido pelo pesquisador do laboratório da IBM Edgar Frank Codd (ler Nota DevMan 1) (ler Nota DevMan 2).
A normalização de dados é uma série de passos que se segue no projeto de um banco de dados que permite um armazenamento consistente e um eficiente acesso aos dados em um banco de dados relacional. Esses passos reduzem a redundância de dados e as chances dos dados se tornarem inconsistentes.
No entanto, muitos SGBDs relacionais não têm separação suficiente entre o projeto lógico da base de dados e a implementação física do banco de dados, e isso tem como conseqüência que as consultas feitas a um banco de dados totalmente normalizado têm um mau desempenho. Nestes casos, usa-se por vezes a desnormalização para melhorar o desempenho, com o custo de menores garantias de consistência.
...