Buscar

Bancos de Dados Relacionais e NoSQL

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

*
FUNDAMENTOS E PROJETOS DE 
BIG DATA
*
AULA 9
*
 Exercícios 
Recordar aula 8
Pergunta 1: Quais são as soluções em se baseiam os bancos de dados tradicionais (relacionais). 
Volume e Quantidade.
Volume e Veracidade.
Atomicidade, Volume e Consistência.
Atomicidade, Consistência, Isolamento e Durabilidade.
 Nenhuma das respostas acima.
*
Exercícios 
Recordar aula 8
Gabarito: (d)
Pergunta 2: As definições “todas as regras aplicadas ao banco de dados devem ser seguidas” e “uma vez que a transação esteja concluída, os dados consequentes não podem ser perdidos” se referem a quais soluções.
Atomicidade e Consistência. 
Consistência e Durabilidade.
Isolamento e Durabilidade.
Atomicidade e Durabilidade.
Consistência e Isolamento. Gabarito: (b) 
*
 Exercícios 
Recordar aula 8
 Gabarito: (b)
Pergunta 3: Qual o melhor conceito de banco de dados para se trabalhar em Big Data
SQL puro e simples.
SQL estendido.
SGBD relacional.
NoSQL.
Nenhuma das respostas.
*
 Exercícios 
Recordar aula 8
Gabarito: (d)
Pergunta 4: Por que o banco de dados NoSQL é mais fácil e menos custoso para se trabalhar
Porque possui processamento único.
Porque trabalha bem com bancos de dados de pequenos volumes.
Porque por trabalhar com grandes volumes é mais fácil de trabalhar.
Porque trabalha igual aos bancos de dados relacionais.
Porque possui propriedades mais flexíveis, são otimizados para trabalhar com processamento paralelo, distribuição global, aumento imediato de sua capacidade e outros. Gabarito: (e)
*
Dificuldades com NoSQL
 
Nem tudo é lindo no mundo NoSQL
Há alguns problemas que ainda hoje podem me fazer evitar o uso de uma destas bases de dados.
 Primeiro é como não há um padrão (e também não faz sentido existir um) a migração de um banco de dados para outro dentro de uma mesma categoria pode se mostrar uma tarefa bem trabalhosa.
 Outro problema é a ausência de ferramentas de alto nível como as que encontramos no modelo relacional
*
Dificuldades com NoSQL
 
Nem tudo é lindo no mundo NoSQL
Há alguns problemas que ainda hoje podem me fazer evitar o uso de uma destas bases de dados.
 A curva de aprendizado também pode ser um problema. Como cada banco de dados apresenta a sua própria linguagem de consulta e manipulação, o desenvolvedor precisará adicionar cada vez mais e mais linguagens no seu cinto de utilidades.
*
Critérios de escolha: quando uso um ou outro 
 
 Caso o relacional se mostre o mais apto, sem sombra de dúvidas é o que será adotado, deixando de lado os demais. 
 Na maior parte das vezes, pelo menos o chave/valor é usado para otimizar uma ou outra parte dos sistemas.
 É interessante observar que em 100% dos casos o modelo relacional sempre está presente. 
*
Critérios de escolha: quando uso um ou outro 
 
 A razão para isto é muito simples: é o que atende ao maior número de casos e até hoje sempre. 
Na prática os bancos de dados NoSQL complementam e não substituem o modelo relacional .
*
Critérios de escolha: quando uso um ou outro 
 
 As bases de dados NoSQL são um excelente complemento para o modelo relacional, evitando que o apliquemos em situações para as quais não foi desenvolvido. 
 A escolha por um modelo não relacional deve estar diretamente relacionada à compatibilidade da sua modelagem com uma ou outra categoria mais do que o mero ganho de performance.
*
Diferenças entre Bancos de Dados Relacionais e Bancos de Dados NoSQL
 Modelo de Dados
 O modelo relacional normaliza dados em estruturas tabulares conhecidas como tabelas, que consistem em linhas e colunas.
 .......Um schema define estritamente as tabelas, colunas, índices, relações entre tabelas e outros elementos do banco de dados.
 Bancos de dados não relacionais (NoSQL) normalmente não aplicam um schema. 
 ......Geralmente, uma chave de partição é usada para recuperar valores, conjuntos de colunas ou documentos semiestruturados JSON, XML ou outros que contenham atributos de itens relacionados.
*
Diferenças entre Bancos de Dados Relacionais e Bancos de Dados NoSQL
 Propriedades ACID
 Sistemas de gerenciamento de bancos de dados relacionais (RDBMS) tradicionais são compatíveis com um conjunto de propriedades definido pela sigla ACID: Atomicidade, Consistencia, Isolamento e Durabilidade.
 Bancos de dados NoSQL normalmente trocam algumas propriedades ACID de sistemas de gerenciamento de bancos de dados relacionais (RDBMS) por um modelo de dados mais flexível que escala horizontalmente. 
*
Diferenças entre Bancos de Dados Relacionais e Bancos de Dados NoSQL
 Propriedades ACID
Essas características fazem dos bancos de dados NoSQL uma excelente opção em situações em que os RDBMS deparam com desafios de arquitetura e precisam solucionar uma combinação de gargalos de desempenho, escalabilidade, complexidade operacional e custos crescentes de administração e suporte.
*
Diferenças entre Bancos de Dados Relacionais e Bancos de Dados NoSQL
 Desempenho
No BD relacional, o desempenho normalmente depende do subsistema do disco. A otimização de consultas, índices e estrutura de tabela é necessária para alcançar máximo desempenho.
NO BD NoSQL, o desempenho normalmente depende do subsistema do disco. A otimização de consultas, índices e estrutura de tabela é necessária para alcançar máximo desempenho.
*
Diferenças entre Bancos de Dados Relacionais e Bancos de Dados NoSQL
 Escala
No BD relacional, mais fácil de aumentar a escala "verticalmente" com hardware mais rápido.  Outros investimentos são necessários para tabelas relacionais para abranger um sistema distribuído.
NO BD NoSQL, projetado para aumentar a escala "horizontalmente" usando clusters distribuídos de hardware de baixo custo para aumentar a transferência sem aumentar a latência.
*
Diferenças entre Bancos de Dados Relacionais e Bancos de Dados NoSQL
 APIs
No BD relacional, as solicitações para armazenar e recuperar dados são comunicadas usando consultas compatíveis com structured query language (SQL). Essas consultas são analisadas e executadas por sistemas de gerenciamento de bancos de dados relacionais (RDBMS).
*
Diferenças entre Bancos de Dados Relacionais e Bancos de Dados NoSQL
 APIs
No BD NoSQL, as APIs baseadas em objetos permitem que desenvolvedores de aplicações armazenem e restaurem facilmente estruturas de dados na memória. As chaves de partição permitem que os aplicativos procurem pares de chave-valor, conjuntos de colunas ou documentos semiestruturados contendo objetos e atributos de aplicativos serializados.
*
Diferenças entre Bancos de Dados Relacionais e Bancos de Dados NoSQL
 Ferramentas
Nos bancos de dados SQL normalmente oferecem um rico conjunto de ferramentas para simplificar o desenvolvimento de aplicações orientadas ao banco de dados.
Os bancos de dados NoSQL normalmente oferecem ferramentas para gerenciar clusters e escalabilidade. As aplicações são a interface principal com os dados subjacentes.
*
Diferenças de Alto nível entre Bancos de Dados Relacionais e Bancos de Dados NoSQL
1) Bancos de dados SQL são verticalmente escalável enquanto os bancos
 de dados NoSQL são horizontalmente escalável. 
2) 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.
*
Diferenças de Alto nível entre Bancos de Dados Relacionais e Bancos de Dados NoSQL
3) Bancos de dados SQL usa o SQL (Structured Query Language) para 
definir e manipular os dados, o que é muito poderoso. 
4) 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.
*Diferenças de Alto nível entre Bancos de Dados Relacionais e Bancos de Dados NoSQL
5) 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.
*
Diferenças de Alto nível entre Bancos de Dados Relacionais e Bancos de Dados NoSQL
6) 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.
*
Diferenças de Alto nível entre Bancos de Dados Relacionais e Bancos de Dados NoSQL
7) 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.
*
Diferenças de Alto nível entre Bancos de Dados Relacionais e Bancos de Dados NoSQL
8) 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 suficiente em alta carga e para aplicações transacionais complexas.
*
Diferenças de Alto nível entre Bancos de Dados Relacionais e Bancos de Dados NoSQL
9) 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.
*
Diferenças de Alto nível entre Bancos de Dados Relacionais e Bancos de Dados NoSQL
10) 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).
*
Diferenças de Alto nível entre Bancos de Dados Relacionais e Bancos de Dados NoSQL
11) 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 Bancos de Dados Relacionais NoSQL
1) MongoDB
É um dos mais popular banco de dados NoSQL com base que armazena dados em JSON, como documentos. está sendo usado por algumas grandes empresas, como The New York Times, Craigslist, MTV Networks.
*
Exemplos de Bancos de Dados Relacionais NoSQL
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.
*
Exemplos de Bancos de Dados Relacionais NoSQL
 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: A flexibilidade para evoluir o seu esquema de dados sem modificar os dados existentes.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

Outros materiais