10 Razões Developers Amor NoSQL

A popularidade de bancos de dados NoSQL surge a partir do grande número de desenvolvedores que estão animado sobre a usá-los. Desenvolvedores ver NoSQL como uma tecnologia capacitadora e libertadora. Ao contrário da abordagem relacional tradicional, NoSQL dá-lhe uma maneira de trabalhar com dados que está mais próximo da aplicação do que o modelo de dados relacional.

Desenvolvedores adotar tecnologias NoSQL, por muitas razões, algumas das quais são destacadas aqui:

Não há necessidade de escrever SQL

Escrevendo Structured Query Language (SQL) - e fazê-lo bem - é a amargura da existência de muitos desenvolvedores corporativos. Essa dor é porque escrever consultas muito complexas com várias associações entre tabelas relacionadas não é fácil de fazer. Além disso, à luz das alterações do banco de dados regulares ao longo do tempo, mantendo o código consulta complexa é uma tarefa em si.

desenvolvedores da empresa ter inventado uma série de maneiras de evitar a escrita SQL. Uma das maneiras mais populares é através do uso da biblioteca de mapeamento objeto-relacional (ORM), Hibernate. Hibernate tem um arquivo de configuração e um ou mais objetos e abstrai o SQL desagradável para que os desenvolvedores não tem que usá-lo. Isto vem a um custo em termos de desempenho, é claro, e não resolve todos os casos de uso de consulta. Às vezes você tem que cair de volta para SQL.

bancos de dados NoSQL fornecer suas próprias linguagens de consulta, que estão sintonizados com a forma como os dados são gerenciados pelo banco de dados e às operações que os desenvolvedores mais frequentemente executam. Esta abordagem fornece um mecanismo de consulta mais simples do que instruções SQL aninhados.

Alguns bancos de dados NoSQL também fornecer uma interface SQL para consultar bancos de dados NoSQL, no desenvolvedores de casos não pode quebrar o hábito SQL!

Não tem que gastar meses projetando esquema

Esquema agnosticismo em bancos de dados NoSQL permite que você carregue dados rapidamente sem ter que criar um esquema relacional ao longo de um período de meses. Você não tem que analisar-se frente a cada item de dados único que você precisa para armazenar em NoSQL, como você faz com um RDBMS.

Menos dados transformar código (ETL)

Um problema comum com bancos de dados relacionais que vem de ter um projeto de esquema up-front é que você tem que forçar os dados não-relacionais em linhas e colunas. Este mecanismo de trituração, em conjunto com outros métodos de pré-processamento de código que informação para o armazenamento e pós-processo, para a recuperação é referido como extrair, transformar e carregar (ETL).

Este código força os desenvolvedores a levar seus bons modelos de objetos e documentos brilhantes e escrever código para armazenar cada último elemento. Fazer isso é desagradável e também leva a desenvolvedores altamente qualificados escrita pobre desempenho e código de canalização desinteressante.

bancos de dados NoSQL permitem manter as estruturas de dados armazenados muito mais perto de sua forma original. O fluxo de dados entre sistemas é tipicamente em um formato XML, ao passo que quando se trata de aplicações web, os dados são formatados em um documento JSON. Ser capaz de armazenar nativamente, gerenciar e pesquisar JSON é um benefício enorme para os desenvolvedores de aplicativos.

Mais fácil de manter o código

Todo o código que você escreve deve ser mantida. Ao manter estruturas de banco de dados perto de formatos de dados do código do aplicativo, você minimizar a quantidade de código, que por sua vez minimiza a manutenção de testes de código e de regressão que você precisa fazer ao longo do tempo.

Quando estruturas de dados mudar em um RDBMS, você tem que rever todo o código SQL que podem usar as tabelas alteradas. Em NoSQL, você simplesmente adicionar suporte para os novos elementos, ou apenas ignorá-los! Muito mais fácil de manter, graças à natureza schema-agnóstico de bancos de dados NoSQL.

Executar código perto os dados para o melhor desempenho

Um RDBMS fornece procedimentos armazenados para executar código em um servidor de banco de dados. Este código é executado em um só lugar. Esta abordagem útil, é a base de muitas aplicações de gestão de dados analíticos e complexos.

Muitos bancos de dados NoSQL permitem este tipo de código para ser distribuído em todos os servidores que armazenam dados relevantes, o que permite uma maior paralelização da carga de trabalho. Esta abordagem é especialmente importante para grandes ingestões de dados que precisam de processamento e de análise de agregação complexas no momento da consulta.

funções definidas pelo usuário (UDF) e scripts do lado do servidor em uma variedade de bancos de dados NoSQL fornecer esta capacidade distribuída. UDFs são semelhantes a capacidade MapReduce do Hadoop, exceto UDFs pode acontecer em tempo real e não em modo de lote e não requer o mesmo esforço em infra-estrutura que Hadoop além de um banco de dados exigiria.

Muitas opções de código aberto

Em muitas áreas de software empresarial, a escolha de uma solução de código aberto sólida está faltando. pode existir apenas uma ou duas opções generalizados. Disponibilidade de competências e apoio local no país são problemas ainda maiores.

No entanto, há uma infinidade de bancos de dados NoSQL open-source. Muitos destes têm empresas comerciais de pleno direito que oferecem apoio e têm escritórios em todo o mundo. Então, se você precisar de apoio ou mais recursos, você pode mover-se para essas versões eventualmente.

Isso reduz o custo de adoção de tecnologia NoSQL e permite que você # 147 experimentar antes de comprar. # 148- Esta disponibilidade de alternativas open-source tem causado empresas comerciais no espaço NoSQL para oferecer versões gratuitas, mas bem caracterizados de seu software ou oferecer licenças de inicialização especiais para as pequenas organizações.

Fácil de dimensionar

Você não precisa obter um DBA caro para passar dias refatoração SQL e criar visualizações materializadas, a fim de espremer cada polegada de desempenho de sistemas NoSQL.

lojas de valores-chave pode lidar com centenas de milhares de operações por servidor. Todos os tipos de NoSQL pode escalar horizontalmente entre os servidores de commodities relativamente baratos. Então, é muito mais fácil para escalar o cluster de banco de dados com NoSQL do que com bancos de dados relacionais tradicionais.

Além disso, por causa de sua capacidade de escalar, bancos de dados NoSQL, também se encaixam bem em nuvens públicas e privadas. bancos de dados NoSQL são projetados para ser flexível e se expandem e contraem como os usos para a sua mudança de aplicação. Esta capacidade é muitas vezes chamado elasticidade.

modelo de dados consistência eventual

Embora os casos de missão crítica exigem o cumprimento ACID, nem todo aplicativo precisa fazê-lo. Ser capaz de relaxar a consistência entre grupos muito grandes pode ser útil para algumas aplicações.

bancos de dados NoSQL permitir que você relaxe essas restrições ou para misturar e combinar consistência forte e fraca consistência na mesma base de dados, para diferentes tipos de registro.

suporte linguagem esotérica

Praticamente todos os bancos de dados suportam as principais linguagens de programação como Java e C # .NET. Muitos bancos de dados apoiar os gostos de PHP, Python e Ruby on Rails.

NoSQL tem um conjunto florescimento de motoristas de idioma para uma gama ainda maior de linguagens de programação. Se a sua organização tem uma linguagem específica de domínio, você pode muito bem encontrar o suporte para ele em um banco de dados NoSQL.

javascript extremidade-a-extremidade

uso javascript explodiu nos últimos anos. É uma linguagem de scripting conveniente tanto na web e, graças ao Node.js, no lado do servidor.

Muitos bancos de dados NoSQL agora suportam pleno desenvolvimento end-to-end javascript. Isto significa que sua organização agora pode usar o mesmo conjunto de habilidades de linguagem de programação para criar aplicações web e APIs de dados camada intermediária e lógica de negócios, bem como lidar com gatilhos de banco de dados back-end e processamento analítico baseado em MapReduce ao lado dos dados.

Como resultado, em comparação com outras tecnologias de bases de dados, o custo total de propriedade (TCO) de noSQL é inferior.

menu