Codificação de postos de trabalho para armazenar dados em bancos de dados sql e nosql

Video: SQL, NoSQL ou NewSQL: Onde armazenar meus dados? - DevInVale 2011

Site e aplicativos usam bancos de dados para armazenar permanentemente os dados sejam recuperados em um momento posterior. Os dados a serem armazenados poderia ser credenciais de usuários, imagens, informações sobre o produto, atualizações de status, tweets, ou apenas sobre qualquer outra coisa. A principal consideração para qualquer tipo de banco de dados é a sua escalabilidade, ou a capacidade para lidar com mais dados com cada vez maior frequência. Ao longo dos últimos quarenta anos, dois tipos de bancos de dados têm surgido para armazenar dados - bancos de dados SQL e bancos de dados NoSQL.

bancos de dados SQL

SQL, ou Structured Query Language, é a linguagem padrão para bancos de dados relacionais. UMA dat relacionalumabase armazena dados em tabelas de colunas e linhas, com uma chave única atribuída a cada linha. Esta chave única é então utilizado para criar relações entre dados em tabelas relacionadas. Por exemplo, se uma universidade estavam construindo um banco de dados do estudante, eles podem criar o seguinte:

  • mesa de aluno com aluno do primeiro e último nomes, informações de endereço, número de telefone e informações de contato de emergência. Cada aluno também teria uma chave única (carteira de estudante).

  • mesa Student_Courses com chave de cada aluno único, do curso chave única (ID claro), e nota final do aluno.

    Video: Bancos de Dados - NoSQL e Big Data (parte 1)

  • Cursos tabela com a chave do curso único, nome do curso, nome do professor, o local e horário da reunião.

As mesas e a relação pré-definida entre elementos de dados fazer um banco de dados relacional. Você pode perguntar por várias tabelas são necessários, quando em vez disso você poderia representar toda a informação em uma grande mesa. Duas razões são a consistência dos dados e precisão de dados.

Se o nome de um curso mudou e você estava usando um grande mesa, você teria que encontrar e alterar todas as instâncias do nome do curso. Com uma tabela claro, você pode mudar o nome do curso apenas uma vez. bancos de dados SQL funcionam melhor quando os dados não são repetidos e em vez disso é vinculado usando várias tabelas.

Um banco de dados relacional estudante com o estudante e classe informações.
Um banco de dados relacional estudante com o estudante e classe informações.

A linguagem de programação SQL acessa e modifica bancos de dados usando consultas SQL. A consulta SQL é inserido no código da linguagem de programação você está usando (Ruby, Python ou PHP), e os resultados da consulta são, então, a saída para o seu programa site ou análise de dados. Se você estiver configurando o banco de dados, você pode querer instalar um sistema de gerenciamento de banco de dados populares tais como MySQL ou PostgreSQL. Alternativamente, se você estiver usando um provedor de BAAS para a sua aplicação, seu banco de dados pode ser instalado automaticamente.

bancos de dados NoSQL

NoSQL bancos de dados de aproveitar os avanços em hardware para construir bases de dados mais rápidas e mais eficientes. Historicamente, CPUs e armazenamento eram caros, por isso os bancos de dados foram projetados para minimizar o custo e os recursos utilizados. Se o banco de dados cresceu muito grande, ou as consultas começou a correr devagar, o banco de dados foi transferido para um computador mais potente com armazenamento adicional.

Video: Introdução a banco de dados não relacionais (NoSQL)



Hoje, duas coisas aconteceram que desafiar pressupostos utilizados por bancos de dados SQL. Primeiro, os preços de armazenamento e CPUs de hardware caíram, enquanto discos rígidos tornaram-se maiores e CPUs tornaram-se mais poderosa. Em segundo lugar, a quantidade de dados que precisam ser armazenados aumentou, e isso nem sempre é clara antecipadamente quais dados serão coletados e armazenados.

Por exemplo, o Google processa 24 petabytes (1000 terabytes) de dados diária - o disco rígido do consumidor médio é um pouco mais de 1 terabyte.

bancos de dados NoSQL são distribuídos, o que significa que eles são armazenados e processados ​​em vários servidores. bancos de dados NoSQL Popular incluem MongoDB, CouchDB, e Redis. Um sistema de banco de dados NoSQL tem as seguintes vantagens:

  • No esquema: Ao contrário, com um banco de dados SQL, você não definir as relações de dados de antemão. bancos de dados NoSQL permitem que você alterar o formato ou tipo de dados armazenados em qualquer momento.

  • Escalável: Se seu banco de dados torna-se muito grande, você pode facilmente adicionar outro servidor relativamente barato, sem qualquer tempo de inatividade. Para bancos de dados SQL, escala o seu banco de dados requer a compra de um servidor caro e experimentar o tempo de inatividade para migrar e instalar o banco de dados em um novo sistema.

  • Barato: Você pode usar o hardware de nível de consumo de baixo custo para um banco de dados NoSQL. Para maior facilidade, você pode usar um produto como o Amazon Web Services (AWS) para alugar barato espaço de armazenamento e configurar um banco de dados NoSQL com apenas um clique, sem a compra de servidores físicos.

Video: NoSQL e Big Data - Bancos de Dados & Aplicações 2015 - Aula 3

bancos de dados NoSQL também se espalhou a carga de processamento através de múltiplas CPUs. Em um processo chamado MapReduce, um grande conjunto de dados está dividido em conjuntos de dados mais pequenas, as quais são cada um processados ​​independentemente. Os resultados a partir destes conjuntos de dados individuais são, em seguida, reduzida de volta para um único conjunto de dados ou resultado.

Por exemplo, suponha que você queira encontrar o usuário do Facebook com mais amigos. Em vez de usar um computador para procurar do Facebook 1,5 bilhão de usuários, você poderia dividir os usuários em quinze conjuntos de dados de 100.000 usuários cada, e então mapear cada conjunto a um de quinze computadores dados.

Cada computador iria processar a sua lista para encontrar o usuário com o maior número de amigos, após o que cada resultado seria reduzido em um dos dados mais pequenos conjunto de quinze nomes. A operação final iria encontrar o usuário com o maior número de amigos a partir desta lista menor de quinze usuários.

bancos de dados NoSQL tem muitas vantagens, mas há alguns obstáculos também. O sistema de banco de dados é relativamente novo, portanto há menos apoio técnico e menos pessoas com experiência para configurar, administrar e desenvolver bancos de dados NoSQL. Além disso, porque executam consultas simples em bancos de dados NoSQL pode ser difícil, fazendo análises e relatórios de negócios para bancos de dados NoSQL não é tão desenvolvido e é muito mais difícil do que fazer um trabalho semelhante para bancos de dados SQL.


Publicações relacionadas