Latest web development tutorials

NoSQL Perfil

NoSQL (NoSQL = Not Only SQL), que significa "não apenas SQL".

Em sistemas computacionais modernos dia na rede terá uma enorme quantidade de dados.

Estes dados são uma grande parte do sistema de gestão de banco de dados relacional (RDMBSs) para lidar com eles. proposta papel 1970 EFCodd modelo relacional "Um modelo relacional de dados para grandes bancos de dados compartilhados", o que torna a modelagem de dados e programação de aplicação mais fácil.

Através da aplicação de modelo relacional comprovada é muito adequado para a programação cliente-servidor, muito além dos benefícios esperados, e hoje é os dados estruturados armazenados na rede e aplicativos de negócios tecnologia dominante.

banco de dados NoSQL é um novo movimento revolucionário, no início, foi sugerido que a tendência de desenvolvimento de cada vez mais crescente a 2009. NoSQL defensores que promovem o uso de armazenamento de dados não-relacional, no que diz respeito ao uso esmagador de bancos de dados relacionais, este conceito é, sem dúvida, injetou uma nova forma de pensar.

banco de dados relacional para seguir o ACID regras

Inglês transaction é transação, eo mundo real de negociação é muito semelhante, ele tem as seguintes quatro características:

1, A (Atomicity) Atomic <br> atômica fácil de entender, que todas as operações na transação seja tudo feito, ou não, a transação é uma transação as condições para o sucesso em todas as operações forem bem sucedidos, enquanto houver uma operação falhar, toda a transação irá falhar, precisa reverter.

Tais como transferências bancárias, transferência de conta de A para B representa 100 yuan, é dividido em duas etapas: 1) Tomar as contas Um 100 yuan; 2) para B 100 yuan contas de depósito. Essas duas etapas são concluídas em conjunto ou não juntos concluída, se concluído apenas o primeiro passo, o segundo passo falhar, o dinheiro de alguma forma 100 yuans a menos.

2, C (consistência) consistência <br> consistência é relativamente fácil de entender, que tem sido no banco de dados para um estado consistente, execute a transação não vai alterar as restrições de consistência de banco de dados originais.

Existentes restrições de integridade, tais como a + b = 10, se uma transacção muda um, temos que mudar b, de modo que a extremidade traseira da operação é ainda satisfazer a + b = 10, caso contrário a transacção falha.

3, I (isolamento) <br> assim chamada independência significa a independência não afetará cada outras transações concorrentes, se um conjunto de dados de transação para ser acessado por outra transação está sendo modificado, enquanto outra transação não confirmada, é dados acessados ​​não é afetada pela transação não confirmada.
Por exemplo, existe uma conta de negociação existente for transferido de A para B representa 100 yuan, no caso de esta operação não foi concluída. Se o B verificar suas contas, não pode ver os recém-adicionados 100 yuan.

4, D (Durabilidade) Persistência Persistência refere <br> uma vez que a transação seja confirmada, ele edita serão permanentemente armazenados no banco de dados, ele não será perdido, mesmo que o tempo de inatividade ocorre.


Sistemas distribuídos

sistemas distribuídos (sistema distribuído) computadores software componentes múltiplos e ligação de comunicação (rede local ou rede de área ampla) composta por uma rede de computadores.

sistemas distribuídos são construídos em cima de sistemas de software de rede. É precisamente por causa das características do software, o sistema distribuído com um alto grau de coesão e transparência.

Assim, a diferença entre a rede e o sistema de distribuição que mais de software de alto nível (especialmente o sistema operativo), em vez de hardware.

sistemas distribuídos podem ser aplicados em diferentes plataformas, tais como: PC, estações de trabalho, LANs e WANs e afins.


As vantagens da computação distribuída

Confiabilidade (tolerância a falhas):
vantagem importante de um sistema de computação distribuído é a fiabilidade. Bater um servidor não afecta o resto do servidor.

escalabilidade:
Em um sistema de computação distribuída pode adicionar mais máquinas conforme necessário.

Compartilhamento de recursos:
O compartilhamento de dados é essencial para aplicações como a banca, sistemas de reserva.

flexibilidade:
Uma vez que o sistema é muito flexível, que é fácil de instalar, e depurar implementar novos serviços.

velocidade mais rápida:
sistema de computação distribuída pode ter mais poder de computação dos computadores, tornando-se uma velocidade de processamento mais rápido do que outros sistemas.

Sistemas Abertos:
Porque é um sistema aberto que pode ser acesso local ou remoto ao serviço.

Maior desempenho:
clusters de rede de computadores centralizados em relação a proporcionar um desempenho superior (e um preço melhor).


A desvantagem de computação distribuída

Solução de problemas ::
Solucionar problemas e diagnosticar o problema.

software:
suporte de software menos é a principal desvantagem de sistemas de computação distribuída.

rede:
Questões de infra-estrutura de rede, incluindo: problemas de transmissão, alta carga, a informação é perdida e assim por diante.

segurança:
sistema de computação características do desenvolvimento do sistema permite distribuída é vulnerável a riscos de segurança e partilha de problemas de dados.


O que é NoSQL?

NoSQL, refere-se a um banco de dados não-relacional. NoSQL é por vezes também referida como uma abreviação não só para SQL, é diferente de banco de dados relacional sistema de gerenciamento de banco de dados tradicional coletivamente.

NoSQL para armazenamento de dados em grande escala. (Como o Google ou Facebook trilhão de bits de dados por dia coletadas por seus usuários). O Estes tipos de armazenamento de dados não necessitam de um padrão fixo, nenhuma operação extra pode ser estendida lateralmente.

Por NoSQL?

Hoje pode ser a plataforma de terceiros: Você pode facilmente acessar e buscar dados (tais como Google, Facebook, etc.). informações pessoais do usuário, redes sociais, localização, os dados gerados pelo usuário e os registros de usuários tem aumentado exponencialmente. Se queremos mineração estes dados do usuário, banco de dados SQL que não é adequado para estas aplicações, e o desenvolvimento de banco de dados NoSQL também é bem capaz de lidar com esses grandes volumes de dados.

web-imagem de dados

Exemplos

redes socializados:

Cada registro: UserID1, UserID2
registros separados: UserID, first_name, last_name, idade, sexo, ...
Tarefa: Encontrar todos os amigos de amigos de amigos de amigos ... de um determinado usuário.

Wikipedia página:

Grande coleção de documentos
Combinação de dados estruturados e não estruturados
Tarefa: Recuperar todas as páginas relativas atletismo de Olympic Verão antes de 1950.

RDBMS vs NoSQL

RDBMS
- A estrutura altamente organizada de dados
- Structured Query Language (SQL) (SQL)
- Os dados e as relações são armazenadas em uma tabela separada.
- Data Manipulation Language, Data Definition Language
- Consistência Strict
- Serviços Básicos

NoSQL
- Representa não apenas SQL
- Nenhuma linguagem de consulta declarativa
- No padrão pré-definido
- Par de valores, o armazenamento de coluna, armazenamento de documentos, gráficos, banco de dados - Key
- consistência eventual, ao invés de propriedades ACID
- Dados imprevisíveis e não estruturados
- Teorema CAP
- Alta performance, alta disponibilidade e escalabilidade

bigdata

NoSQL Breve História

NoSQL O termo apareceu pela primeira vez em 1998, é um desenvolvimento Carlo Strozzi leve, open source, não fornece funcionalidade de banco de dados relacional SQL.

Em 2009, de Last.fm Johan Oskarsson iniciou uma discussão sobre fonte aberto banco de dados distribuídos [2], Eric Evans da Rackspace novamente propôs o conceito de NoSQL, em seguida, o NoSQL refere-se principalmente à não-relacionais, distribuídas, não fornecem ACID padrões de design de banco de dados.

Em 2009, em Atlanta "não: sql (leste)" seminário é um marco, com o slogan "escolha divertimento, lucro de real_world onde relacional = false;". Portanto, NoSQL explicação mais comum é que "não-associado tipo", salientou as vantagens de o valor-chave Lojas e bancos de dados de documentos, em vez de mera RDBMS oposição.


CAP Teorema (PAC teorema)

Na ciência da computação, CAP Teorema (PAC teorema), também conhecido como Brewer Teorema (teorema de Brewer), que apontou que para um sistema de computação distribuída, não pode satisfazer simultaneamente os três pontos seguintes:

  • Consistência (consistência) (todos os nós têm os mesmos dados ao mesmo tempo)
  • Disponibilidade (Availability) (assegurar que cada solicitação tem uma resposta, independentemente do sucesso ou fracasso)
  • tolerância partição (tolerância partição) (perda do sistema ou o fracasso de qualquer informação não afeta a operação contínua do sistema)

teoria do núcleo CAP é: um sistema distribuído não pode satisfazer simultaneamente a consistência, disponibilidade, tolerância a falhas e particionar estes três requisitos só pode cumprir dois bom tempo.

Assim, de acordo com os princípios da base de dados para o PAC noSQL CA conhecer o princípio, para conhecer e satisfazer os princípios do princípio CP AP três categorias:

  • CA - um único ponto de agrupamento se encontram a consistência, a disponibilidade do sistema, escalabilidade, geralmente em menos poderoso.
  • CP - atender a consistência, irá tolerar a partição do desempenho do sistema geralmente não é particularmente elevado.
  • AP - satisfazer a disponibilidade, tolerância a partição do sistema, geralmente requisitos de conformidade pode ser menor.
cap-theoram-image

vantagens / desvantagens NoSQL

vantagens:

  • - Alta escalabilidade
  • - Computação Distribuída
  • - Baixo custo
  • - Flexibilidade arquitectónica, os dados semi-estruturados
  • - Nenhuma relação complicada

desvantagens:

  • - Não há padronização
  • - Função de pesquisa Limited (até agora)
  • - O acordo final não é programa intuitivo

BASE

BASE: Basicamente disponível, Soft-estado, Eventualmente consistente. Definido por Eric Brewer.

teoria do núcleo CAP é: um sistema distribuído não pode satisfazer simultaneamente a consistência, disponibilidade, tolerância a falhas e particionar estes três requisitos só pode cumprir dois bom tempo.

BASE é um banco de dados NoSQL é tipicamente fraca disponibilidade e coerência dos requisitos principais:

  • Basicamente Availble - Básico Disponível
  • Soft-estado - soft estado / operação flexível. "Soft state" pode ser entendido como "nenhuma conexão" e "estado duro" é "orientado à conexão" em
  • Consistência eventual - consistência eventual consistência eventual é o objetivo final de ácido.

ACID vs BASE

ACID BASE
Atomic (A tomicity) Basic pode ser usado (B asically A vailable)
Consistência (C OERÊNCIA) soft state / serviços flexíveis (S estado oft)
Isolamento (I solation) de consistência eventual (E consistência ventual)
Persistente (urável D)

classificação de banco de dados NoSQL

tipo alguns representantes

característica
lojas de coluna

HBase

Cassandra

Hypertable

Tal como o nome sugere, este é armazenado em colunas de dados. A principal característica é fácil de armazenar dados estruturados e semi-estruturados, fáceis de fazer a compressão de dados, para ter uma vantagem muito grande para IO de uma coluna ou colunas de uma consulta.

Armazenamento de documentos

MongoDB

CouchDB

Documento de armazenamento é geralmente usado para armazenar JSON formato semelhante, o conteúdo é armazenado no tipo de documento. Isso também tem a oportunidade de construir um índice em algum campo, para alcançar algumas das características de um banco de dados relacional.

armazenamento de valores-chave

Tokyo Cabinet / Tyrant

Berkeley DB

MemcacheDB

Redis

Você pode verificar rapidamente ao seu valor por chave. Em geral, independentemente do formato de armazenamento de valor para herdar. (Redis contém recursos adicionais)

memória mapa

Neo4J

FlockDB

Melhores relações armazenar gráficos. Baixo uso de desempenho de banco de dados relacional tradicional para resolvê-lo, eo design é inconveniente de usar.

Object Storage

db4o

Versant

Através de sintaxe da linguagem orientada a objetos é semelhante ao funcionamento da base de dados, acessado por meio do objeto de dados.

banco de dados xml

Berkeley DB XML

Basex

armazenamento e de dados XML eficiente suporta a sintaxe de consulta XML interna, como XQuery, XPath.


quem usa

Já existem muitas empresas utilizam NoSQL:
  • Google
  • Facebook
  • Mozilla
  • adobe
  • Foursquare
  • LinkedIn
  • Digg
  • McGraw-Hill Education
  • Public Radio Vermont