A maioria de vocês já estão familiarizados com banco de dados SQL, e ter um bom conhecimento de ambos MySQL, Oracle ou outras bases de dados SQL. Nos últimos anos, a base de dados NoSQL está sendo amplamente adotada para resolver vários problemas de negócios.
É útil para entender a diferença entre SQL e banco de dados NoSQL, e alguns dos dados NoSQL disponíveis que você pode brincar.
SQL vs NoSQL: Diferenças de Alto Nível
- Bancos de dados SQL são chamados primeiramente como bancos de dados relacionais (RDBMS); enquanto banco de dados NoSQL são chamados principalmente como banco de dados não-relacional ou distribuído.
- Bancos de dados SQL são bancos de dados de tabela com base enquanto bancos de dados NoSQL são documento base, pares de valores-chave, bases de dados de gráficos ou lojas de toda a coluna. Isso significa que os bancos de dados SQL representar dados em forma de tabelas, que consiste em n número de linhas de dados enquanto que bancos de dados NoSQL são a coleção de par chave-valor, documentos, bases de dados de gráficos ou lojas de grande coluna que não têm definições de esquema padrão que precisa para aderida.
- Bancos de dados SQL têm predefinidos esquema enquanto bancos de dados NoSQL tem esquema dinâmico para dados não estruturados.
- Bancos de dados SQL são verticalmente escalável enquanto os bancos de dados NoSQL são horizontalmente escalável. Bancos de dados SQL são escalados pelo aumento do cavalo-força do hardware. Bancos de dados NoSQL são escalados pelo aumento dos servidores de bancos de dados no conjunto de recursos para reduzir a carga.
- Bancos de dados SQL usa o SQL (Structured Query Language) para definir e manipular os dados, o que é muito poderoso. No banco de dados NoSQL, as consultas estão focados na coleção de documentos. Às vezes também é chamado como UnQL (Unstructured Query Language). A sintaxe utilizando UnQL varia de banco de dados de base de dados.
- Exemplos de banco de dados SQL: MySQL, Oracle, SQLite, PostgreSQL e MS-SQL.Exemplos de bancos de dados NoSQL: MongoDB, BigTable, Redis, RavenDB, Cassandra, HBase, Neo4j e CouchDB
- Para consultas complexas: bancos de dados SQL são boa opção para o ambiente de consulta intensivo complexo enquanto bancos de dados NoSQL não são boa opção para consultas complexas. Em um alto nível, NoSQL não têm interfaces padrão para executar consultas complexas, e as próprias consultas em NoSQL não são tão poderosos como linguagem de consulta SQL.
- Para o tipo de dados a serem armazenados: bancos de dados SQL não são mais adequado para o armazenamento de dados hierárquico. Mas, banco de dados NoSQL se encaixa melhor para o armazenamento de dados hierárquico, uma vez que segue o valor-chave par forma de armazenar dados semelhantes aos dados JSON. Banco de dados NoSQL são altamente preferido por grande conjunto de dados (ou seja, para big data).HBase é um exemplo para este propósito.
- Para escalabilidade: Na maioria das situações típicas, bancos de dados SQL são verticalmente escalável. Você pode gerenciar a carga cada vez maior, aumentando o CPU, RAM, SSD, etc, em um único servidor. Por outro lado, bancos de dados NoSQL são horizontalmente escalável. Você pode simplesmente adicionar mais alguns servidores facilmente em sua infra-estrutura de banco de dados NoSQL para lidar com o grande tráfego.
- Para aplicação baseada alta transacional: bancos de dados SQL são mais adequado para aplicações do tipo pesado transacional, pois é mais estável e promete a atomicidade, bem como a integridade dos dados. Embora você possa usar NoSQL para transações propósito, ele ainda não é comparável e sable suficiente em alta carga e para aplicações transacionais complexas.
- Para suporte: Excelente suporte estão disponíveis para todos os banco de dados SQL de seus fornecedores. Há também grande quantidade de consultas independentes que podem ajudá-lo com banco de dados SQL para uma implantação muito grande escala. Por algum banco de dados NoSQL você ainda tem que contar com o apoio da comunidade, e apenas limitados peritos externos estão disponíveis para você configurar e implementar suas implantações NoSQL em grande escala.
- Para propriedades: bancos de dados SQL enfatiza propriedades ACID (atomicidade, consistência, isolamento e durabilidade), enquanto o banco de dados NoSQL segue o teorema Brewers CAP (Consistência, Disponibilidade e tolerância Partition)
- Para os tipos de DB: Em um alto nível, podemos classificar bancos de dados SQL ou como open-source ou close-provenientes de fornecedores comerciais. Bancos de dados NoSQL podem ser classificados com base em forma de armazenar dados como bancos de dados de gráficos, bancos de dados de loja de valores-chave, armazenar bancos de dados de documentos, banco de dados e bancos de dados loja coluna XML.
Exemplos de banco de dados SQL
1. MySQL Community Edition
Banco de dados MySQL é banco de dados open-source muito popular. Ele geralmente está sendo empilhado com apache e PHP, embora possa também ser empilhado com nginx e JavaScripting lado do servidor usando Node js. A seguir estão alguns dos benefícios do MySQL e pontos fortes:
- Replicação: Ao replicar banco de dados MySQL em vários nós a carga de trabalho pode ser reduzido fortemente o aumento da escalabilidade e disponibilidade de aplicativos de negócios
- Sharding: sharding OS MySQL útil quando há grande não de operações de gravação em um site de alto tráfego. Por sharding servidores MySQL, a aplicação é dividida em vários servidores dividem o banco de dados em pequenos pedaços. Como servidores de baixo custo pode ser implantado para este fim, este é rentável.
- Memcached como uma API NoSQL para MySQL: Memcached pode ser usada para aumentar o desempenho das operações de recuperação de dados, dando uma vantagem de NoSQL api para o servidor MySQL.
- Maturidade: Esta base de dados tem sido em torno de um longo tempo e de entrada e testes tremenda comunidade tem ido para este banco de dados, tornando muito estável.
- Vasta gama de plataformas e linguagens: MySQL está disponível para todas as principais plataformas como Linux, Windows, Mac, BSD e Solaris. Ele também tem conectores para línguas como o Node.js, Ruby, C #, C + +, C, Java, Perl, PHP e Python.
- Relação custo-eficácia: é código aberto e livre.
2. MS-SQL Server Express Edition
É um poderoso e usuário do banco de dados amigável que tem boa estabilidade, confiabilidade e escalabilidade com o apoio da Microsoft. A seguir estão alguns dos benefícios MS-SQL e pontos fortes:
- Integrada Ambiente de desenvolvimento: Visual Studio da Microsoft, Sql Server Management Studio e ferramentas para desenvolvedores Visual fornecem uma maneira muito útil para o desenvolvimento e aumentar a produtividade desenvolvedores.
- Recuperação de Desastres: Tem bom mecanismo de recuperação de desastres, incluindo banco de dados de espelhamento, o failover clustering e particionamento RAID.
- Nuvem de back-up: A Microsoft também fornece armazenamento em nuvem quando você executa uma nuvem de backup do seu banco de dados
3. O Oracle Express Edition
É uma edição limitada de servidor Oracle Enterprise Edition com certas limitações. Esta base de dados é gratuito para o desenvolvimento e implantação. A seguir estão alguns dos benefícios e vantagens do Oracle:
- Fácil de Upgrade: Pode ser facilmente atualizado para a versão mais recente, ou para uma edição Enterprise.
- Suporte à plataforma ampla: Ele suporta uma ampla gama de plataformas, incluindo Linux e Windows
- Escalabilidade: Embora a escalabilidade desta base de dados não é rentável como servidor MySQL, mas a solução é muito confiável, seguro, fácil de gerir e produtiva.
Exemplos de banco de dados NoSQL
1. MongoDB
MongoDB é um dos documentos mais popular banco de dados NoSQL com base que armazena dados em JSON, como documentos. É do banco de dados não-relacional com esquema dinâmico. Ele foi desenvolvido pelos fundadores da DoubleClick, escrito em C + + e está sendo usado por algumas grandes empresas, como The New York Times, Craigslist, MTV Networks. A seguir estão alguns dos benefícios MongoDB e pontos fortes:
- Velocidade: Para consultas simples, dá bom desempenho, como todos os dados relacionados estão em documento único que elimina as operações de participar.
- Escalabilidade: É escalável horizontalmente ou seja, você pode reduzir a carga de trabalho, aumentando o número de servidores em seu pool de recursos, em vez de depender de um recurso autônomo.
- Gerenciável: É fácil de usar para desenvolvedores e administradores. Isso também dá a capacidade de estilhaço de banco de dados
- Esquema dinâmico: Sua dá-lhe a flexibilidade para evoluir o seu esquema de dados sem modificar os dados existentes
2. CouchDB
CouchDB é também uma base de dados NoSQL documento base. Ele armazena dados em forma de documentos JSON. A seguir estão alguns dos benefícios do CouchDB e pontos fortes:- Esquema-less: Como membro da família NoSQL, ele também tem esquema dinâmico que torna mais flexível, tendo uma forma de documentos JSON para armazenar dados.
- Consulta HTTP: Você pode acessar seus documentos do banco de dados usando o seu navegador web.
- Resolução de Conflitos: Tem detecção de conflitos automático que é útil, enquanto em um banco de dados distribuído.
- Replicação Fácil: Implementação de replicação é bastante para a frente
3. Redis
Redis é um outro banco de dados Open Source NoSQL, que é usado principalmente por causa de sua alta velocidade. Ele é escrito em linguagem C ANSI. A seguir estão alguns dos benefícios Redis e pontos fortes:
- As estruturas de dados: Redis fornece estruturas de dados eficientes para uma extensão que às vezes é chamado de servidor de estrutura de dados. As chaves armazenadas no banco de dados pode ser hashes, listas, cordas, ordenados ou conjuntos não ordenados.
- Redis como cache: Você pode usar o Redis como um cache através da implementação de chaves com tempo limitado de vida para melhorar o desempenho.
- Muito rápido: É considerar como um dos servidores NoSQL mais rápido, uma vez que trabalha com o conjunto de dados na memória.
Nenhum comentário:
Postar um comentário