10 Razões desenvolvedores amo nosql

Video: Introdução ao NoSQL

A popularidade de bancos de dados NoSQL surge o 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 perto do aplicativo do que o modelo de dados relacional.

Video: SQL oder NoSQL - die Auswahl der richtigen Datenbankplattform für die Cloud

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 é um trabalho em si.

desenvolvedores corporativos inventaram uma série de maneiras para evitar escrever SQL. Uma das maneiras mais populares é através do uso da biblioteca Object-Relational Mapping (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 é gerenciado pelo banco de dados e às operações que os desenvolvedores mais frequentemente executam. Esta abordagem fornece um mecanismo de consulta simples do que instruções SQL aninhados fazer.

Alguns bancos de dados NoSQL também fornecem 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 design de esquema up-front é que você tem que forçar dados não relacionais em linhas e colunas. Este mecanismo de trituração, em conjunto com outros métodos de código que pré-processar a informação para o armazenamento e pós-processo que para a recuperação é referido como extrair, transformar, e carga (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 permitir que você mantenha 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.

Video: What is NoSQL?

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.

Video: Modeling Data for NoSQL Document Databases

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 simplesmente ignorá-los! Muito mais fácil de manter, graças à natureza esquema agnóstica de bancos de dados NoSQL.

Executar código perto os dados para o melhor desempenho

Um RDBMS fornece procedimentos armazenados para executar código no servidor de banco de dados. Este código é executado em um só lugar. Esta abordagem útil é a base de muitos aplicativos de gerenciamento de dados analíticos e complexos.

Muitos bancos de dados NoSQL permitem este tipo de código a ser distribuído em todos os servidores que armazenam dados relevantes, o que permite 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 complexos no momento da consulta.



funções definidas pelo utilizador (FDU) e scripts do lado do servidor em uma variedade de bases de dados NoSQL proporcionar 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 generalizadas. 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ê precisa de apoio ou mais características, você pode mover para essas versões eventualmente.

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

Fácil de escalar

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 valor-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 no mesmo banco 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 end-to-end

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

Muitos bancos de dados NoSQL agora apoiar o 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.


Publicações relacionadas