Aula Bancas Diversas 2019 NoSQL
Aula Bancas Diversas 2019 NoSQL
ASSUNTOS PÁGINA
1.1 Conceito
Em resumo:
Grandes volumes
de dados
Semiestruturados
Esquemas flexíveis
(schema-free) NoSQL ou não
estruturados
Alta disponibilidade
e escalabilidade
Independência
Coerência Isolamento
Em resumo:
SQL NoSQL
Fortemente consistentes de
Análise de dados semiestruturados
processamento
b) Orientado a Documentos;
c) Orientado a Grafos.
Tipos de
bancos
NoSQL
DynamoDB
Redis
Riak
LevelDB
RocksDB
DynamoDB MongoDB
Redis Couchbase
Riak CouchDB
LevelDB MarkLogic
RocksDB
Gabarito: Letra E
Chave-valor
Estrutura mais simples
Alta escalabilidade
Tabelas hash
Documentos
Mais popular
Consulta de conteúdo
Extensão do chave-valor
Grafos
Mais especializado
Vértices e arestas
Colunas
Mais complexo
3. TRANSAÇÕES EM NoSQL
Cada formato de banco de dados seja ele SQL ou NoSQL têm suas
características específicas. Destas, é importante entendermos as formas de
funcionamento no tocante as suas transações. Uma transação é um conjunto de
procedimentos, executados num banco de dados, que o usuário percebe como
uma única ação.
Nos bancos de dados SQL a integridade de uma transação depende de quatro
propriedades, conhecidas como ACID.
• Atomicidade:
Todas as ações que compõem a unidade de trabalho da transação devem
ser concluídas com sucesso, para que seja efetivada. Se durante a
transação qualquer ação que constitui unidade de trabalho falhar, a
transação inteira deve ser desfeita (rollback). Quando todas as ações são
efetuadas com sucesso, a transação pode ser efetivada e persistida em
banco (commit).
• Consistência:
• Isolamento:
• Durabilidade:
Propriedades ACID
Atomicidade
• A transação será executada totalmente ou não será
executada
Consistência
• Garante que o banco de dados passará de uma forma
consistente para outra forma consistente
Isolamento
• Garante que a transação não será interferida por
nenhuma outra transação concorrente.
Durabilidade
• Garante que o que foi salvo, não será mais perdido.
Propriedades BASE
A consistência eventual é um modelo de consistência usado na
computação distribuída para obter alta disponibilidade que garante
informalmente que, se nenhuma atualização for feita em um determinado item
de dados, todos os acessos a esse item retornarão o último valor atualizado.
consistência eventual, também chamada replicação otimista, é amplamente
implementada em sistemas distribuídos e tem origem nos primeiros projetos de
computação móvel.
Diz-se frequentemente que um sistema que alcançou consistência
eventual convergiu ou alcançou convergência de réplicas. A consistência
eventual é uma garantia fraca - os modelos mais fortes, linear, são trivialmente
consistentes no final, mas um sistema que é apenas eventualmente consistente
não costuma cumprir essas restrições mais fortes.
Serviços eventualmente consistentes são geralmente classificados como
fornecendo semântica BASE (Basicamente disponível, estado suave,
consistência eventual), em contraste com as garantias tradicionais de ACID
(Atomicidade, Consistência, Isolamento, Durabilidade). Os bancos de dados SQL
têm por requisitos de funcionamento o uso do ACID, entretanto bancos de dados
NoSQL relativizam as propriedades ACID se apropriando do uso de BASE,
vejamos:
Basically Available
Soft-Estate
Eventually Consistent
4. TEOREMA CAP
CP = Consistência e
CA = Consistência e Tolerância a Partição
Disponibilidade Consistency
de Redes
CA CP
AP Partition
Availability
Tolerance
AP = Disponibilidade e
Tolerância a Partição de Redes
Sendo assim, o teorema CAP afirma que um dado par de requisições, uma
escrita seguida por uma leitura, em um panorama de sistemas distribuídos,
garante apenas 2 entre os 3 comportamentos presentes no teorema. Esses
comportamentos são definidos como:
• Consistência (Consistency): Consiste em garantir que a operação
de leitura exiba o dado mais atualizado, independente do nó em que ele
foi gravado. Essa característica garante que o cliente nunca receberá do
banco um dado que já foi modificado.
Gabarito: Letra C
Gabarito: Letra E.
7. QUESTÕES COMENTADAS
5- (CS-UFG – 2018 – UFG – Técnico de Tecnologia da Informação)
São exemplos de Sistemas Gerenciadores de Banco de Dados:
a) MongoDB, PostgreSQL, NoSQL.
b) MySQL, NoSQL, Oracle.
c) PostgreSQL, NTFS, Oracle.
d) SQL Server, MySQL, MongoDB.
Resolução:
Uma questão que exige do candidato não se atrapalhar com SQL, NoSQL e os
tipos de bancos SGDB, válido lembrar que sistemas gerenciadores de banco de
dados – os SGDBs – são válidos tanto para formatos de bancos SQL como
NoSQL. A Letra D) é a única que contempla em sua totalidade tipos de SGDB,
sendo o SQL Server e MySQL (para SQL) e MongoDB para (NoSQL).
Gabarito: Letra D
Resolução:
Gabarito: Errado
Resolução:
Essa é uma das premissas para a existência dos bancos do tipo NoSQL, “não
somente relacional”. De trabalhar com dados livres de esquemas
predefinidos, não estruturados ou semiestruturados.
Gabarito: Certo
Gabarito: Letra E.
Gabarito: Letra C
Para uma empresa que necessite implantar uma base de dados altamente
escalável, com grande desempenho e cujo esquema de dados seja flexível, de
modo que suporte constantes mudanças de campos e valores armazenados, a
melhor opção é uma base de dados NoSQL.
Resolução:
Bem pessoal, essa foi uma questão bem tranquila, que conhece e estudou os
princípios básicos do banco NoSQL como escalabilidade, desempenho e
performance, flexibilidade, estaria apto a resolver a questão, ela apenas
reafirmou as características dos bancos NoSQL.
Gabarito: Certo
1 - Chave-Valor
2 - Documento
3 - Grafo
4 - Coluna
b) 3, 1, 4, 2
c) 1, 4, 2, 3
d) 4, 2, 3, 1
Resolução:
A questão pede que o candidato conheça as características dos modelos de
bancos NoSQL. Veja que cada assertiva tem sua associação correspondente,
mas a que mais ficou clara é a número 2) em que mencionou ligações entre
nós, nos remetendo ao modelo de grafos. Veja que a 4) deixa muito claro
o padrão utilizado por colunas. 3) ilustra o mecanismo de funcionamento do
modelo chave-valor, por fim a 1) ainda que você não conhecesse ou não
recordasse o que é YAML - formato de serialização (codificação de dados) de
dados legíveis por humanos inspirado em linguagens como XML, C, Python,
você seria capaz de resolver a questão pela combinação das outras alternativas.
Gabarito: Letra A
Assertiva I – Como já vimos e até por ser uma das principais características é o
funcionamento sem a necessidade de um modelo / esquema de dados
previamente definidos.
Assertiva II – Alguns tipos de NoSQL permitem o uso da linguagem SQL e
variantes, não é possível generalizar a todos, por isso errada.
Assertiva III – Os bancos de dados NoSQL não se utilizam de propriedades ACID
para suas transações, mas sim o BASE, essa distinção é importante e recorrente
em questões. Assertiva errada.
Assertiva IV – Correta! Essa é uma das características dos bancos NoSQL por
trabalhar com grande volume de dados, entretanto a priorização da velocidade
do acesso e a disponibilidade não significa que não realize transações
consistentes, uma característica da precedência.
Gabarito: Letra A
Essa é aquela questão que você só erra se não tiver nenhuma noção do assunto,
por isso, ainda que você não seja um expert em banco de dados e em NoSQL,
um estudo esquematizado poderá capacitá-lo a matar todas as questões. A
Letra A) viaja afirmando que são concorrentes, veja que essa alternativa já é
oposta a Letra D) que é o gabarito da questão. Big Data e NoSQL se
complementam. Letra B) torna-se errada ao afirmar “pequenas quantidade de
informações”. Letra C) viaja pois não são ferramentas, são conceitos e não
pertencem a nenhuma empresa e por fim Letra E) Oracle e MySQL não possuem
relação com NoSQL.
Gabarito: Letra D
NoSQL torna-se incorreta ao afirmar que NoSQL são acessados sem SQL, uma
vez que vimos que podem também serem utilizadas instruções SQL para bancos
NoSQL. A Letra C) define as características da chave estrangeira, sendo assim
incorreta. As Letras A) e B) trazem conhecimento de SQL, percebam a tendência
de banca de exigir de forma conjugada conhecimentos sobre SQL e NoSQL ao
mesmo tempo. CrowsFoot ou “pé de galinha” é um dos formatos de
representação da cardinalidade entre entidades em um diagrama.
Gabarito: Letra A
a) I;
b) I e II;
c) II;
d) II e III;
e) III.
Resolução:
Gabarito: Letra E
8. RISCO EXPONENCIAL
Conceito de NoSQL
Grandes volumes
de dados
Esquemas Semiestruturados
flexíveis
(schema-free)
NoSQL ou não
estruturados
Alta
disponibilidade e
escalabilidade
Independência
Coerência Isolamento
SQL NoSQL
Fortemente consistentes de
Análise de dados semiestruturados
processamento
Tipos de
bancos
NoSQL
Chave-valor
Estrutura mais simples
Alta escalabilidade
Tabelas hash
Documentos
Mais popular
Consulta de conteúdo
Extensão do chave-valor
Grafos
Mais especializado
Vértices e arestas
Colunas
Mais complexo
Atomicidade
• A transação será executada totalmente ou não será
executada
Consistência
• Garante que o banco de dados passará de uma forma
consistente para outra forma consistente
Isolamento
• Garante que a transação não será interferida por
nenhuma outra transação concorrente.
Durabilidade
• Garante que o que foi salvo, não será mais perdido.
Basically Available
Soft-Estate
Eventually Consistent
CP = Consistência e
CA = Consistência e Tolerância a Partição
Disponibilidade Consistency
de Redes
CA CP
Partition
Availability AP
Tolerance
AP = Disponibilidade e
Tolerância a Partição de Redes
9. LISTAS DE EXERCÍCIOS
1- (Instituto AOCP – 2018 – PRODEB - Especialista de TIC /
Construção de Software)
Com base nos sistemas de banco de dados NoSQL, assinale a alternativa que
correlaciona corretamente os SGBD`s no NoSQL e seus modelos estruturais.
a) MongoDB: Modelo Orientado a Colunas – Cassandra: Modelo Baseado em
Grafos – Neo4J: Modelo Orientado a Documentos – Redis: Modelo Chave-Valor.
b) Cassandra: Modelo Orientado a Colunas – Neo4J: Modelo Baseado em Grafos
– Redis: Modelo Orientado a Documentos – MongoDB: Modelo Chave-Valor.
c) Redis: Modelo Orientado a Colunas – Cassandra: Modelo Baseado em Grafos
– MongoDB: Modelo Orientado a Documentos – Neo4J: Modelo Chave-Valor.
d) Neo4J: Modelo Orientado a Colunas – Cassandra: Modelo Baseado em Grafos
– MongoDB: Modelo Orientado a Documentos – Redis: Modelo Chave-Valor.
e) Cassandra: Modelo Orientado a Colunas – Neo4J: Modelo Baseado em Grafos
– MongoDB: Modelo Orientado a Documentos – Redis: Modelo Chave-Valor.
c) MongoDB
d) MySQL
e) PostgreSQL
a) I;
b) I e II;
c) II;
d) II e III;
e) III.
10. GABARITO
1 E 11 C 21 B 31 Errado
2 A 12 Certo 22 Certo 32 C
3 C 13 Errado 23 Errado
4 E 14 A 24 Errado
5 D 15 A 25 E
6 Errado 16 C 26 Certo
7 Certo 17 C 27 B
8 E 18 D 28 D
9 C 19 Errado 29 Errado
10 E 20 A 30 Errado
11. REFERÊNCIAS
FERREIRA, Lauren. As diferenças entre SQL e NoSQL: MySQL x MongoDB.
Disponível em: <https://medium.com/devtranslate/diferencas-entre-sql-e-nosql-
51311f9069bd> Acesso em: 26 ago. de 2019.
SADALAGE, Pramod J.; FOWLER, Martin. NoSQL Essencial: Um guia conciso para o
mundo emergente da persistência poliglota. Novatec Editora, 2019.
VAISH, Gaurav. Getting started with NoSQL. Packt Publishing Ltd, 2013.