Prévia do material em texto
/
1. de
de 2,00
4038088150
18/06/2020 17:52
Nome: Lucas Moreira da Silva Matrícula: 201708114963
Disciplina: CCT0617 / BANCO DE DADOS NOSQL Data: 18 / 06 / 2020
Período: 2020.1 / AV2 Turma: 3011
OBSERVAÇÕES:
Leia com atenção as questões antes de responder. As questões devem ser respondidas somente à caneta azul ou preta, na folha de respostas.
Será observada uma tolerância máxima de 30 minutos para a entrada dos alunos após o início da prova. Nesse período, nenhum aluno poderá deixar
a sala. Terminada a prova, o aluno deverá entregar ao professor a folha de questões e a folha de respostas, devidamente identificadas.
É proibido o uso de equipamentos eletrônicos portáteis e consulta a materiais de qualquer natureza durante a realização da prova.
Questões objetivas e discursivas que envolvam operações algébricas devem possuir a memória de cálculo na folha de respostas.
Boa prova.
Crie em chave-valor o esquema relacional abaixo. Leve em consideração ainda que nem todos os campos do cliente são
sempre. Para que o cadastro de todos os telefones possíveis do cliente fosse efetivado no banco relacional, foi necessária a
criação de uma tabela adicional. Avalie a necessidade de manutenção dessa tabela em sua solução. Depois de criada a tabela,
apresentar o código para inserir 2 registros.
Criar o esquema conceitual relacional em apenas um agregado (uma tabela) no modelo chave-valor. Depois de criada a
tabela, apresentar o código para inserir 2 registros.
2.
A
/
de 2,00
3.
de 2,00
4.
de 2,00
5.
Campus:
RECREIO
Prova Impressa em 18/06/2020 por
LUIS ALEXANDRE ESTEVAO DA SILVA
Ref.: 4038088150 Prova Montada em 11/06/2020
Considerando o código abaixo, escrever uma consulta para listar o assunto, o título e o numero de páginas das obras
publicadas em 2019. Os campos assunto e título devem ser listados como texto.
CREATE TABLE livro (nr serial primary key,assunto VARCHAR(255),obra JSONB);
INSERT INTO livro (assunto,obra) VALUES
('PostgreSQL','{"paginas":"200","titulo":"Banco de dados NOSQL", "idioma":"português",
"ano":"2018"}'),
('MongoDB','{"paginas":"300","titulo":"Banco de dados Objeto-relacional",
"idioma":"inglês", "ano":"2019"}'),
('PostgreSQL','{"paginas":"250","titulo":"PostGIS","idioma":"português","ano":"2019"}');
A partir da tabela e do insert apresentado, criar uma consulta para listar os itens dos pedidos, em linhas
separadas.
CREATE TABLE pedidos (nr serial PRIMARY KEY,produtos JSONB NOT NULL);
INSERT INTO pedidos(produtos) VALUES ('
{"itens":[
{"codproduto":1,"nomeproduto":"álcool","preco":25.50,"quantidade":10},
{"codproduto":2,"nomeproduto":"cera","preco":5.50,"quantidade":10},
{"codproduto":3,"nomeproduto":"lenço","preco":7.50,"quantidade":20}
]}');
Compare o banco de relacional com o banco de dados em grafos indicando em que tipos de aplicações ele é
mais indicado que o primeiro.
/
1 -
CREATE TABLE cliente ( idcliente serial primary key, atrib hstore, telefone hstore[] );
INSERT INTO cliente (atrib, tel) VALUES (' nome=>"Neymar", sobrenome=>"Santos", identidade=>"12345",
cpf=>"12345", ddd=>"22"', array['"telResidencial"=>144456, "telComercial"=>22226,
"telCelular"=>354646'::hstore] );
INSERT INTO cliente (atrib, tel) VALUES (' nome=>"Anderson", sobrenome=>"Souza", identidade=>"12345",
cpf=>"12345", ddd=>"24"', array['"telResidencial"=>29206, "telComercial"=>34343356,
"telCelular"=>35444646'::hstore] );
2- CREATE TABLE livro (idlivro serial primary key, atrib hstore);
INSERT INTO livro (atrib) VALUES (' "autor"=>"Lucas Moreira", "NomeEditora"=>"Lucas Ed",
“Telefone”=>”12345”, "Assunto"=>"Romance", "Titulo"=>"O Vento levou", "Ano"=>"2004"');
INSERT INTO livro (atrib) VALUES (' "autor"=>"Joca Santos", "NomeEditora"=>"Joca Ed",
“Telefone”=>”12344”, "Assunto"=>"Policial", "Titulo"=>"O Vento roubou", "Ano"=>"2006"');
3 - select assunto, obra->'titulo' AS titulo, obra->'paginas' AS numero_de_paginas from livro where obra-
>>'ano' = '2019';
4 - select jsonb_array_elements_text(produtos->'itens') as preco from pedidos;
5 - Bancos de dados relacionais - > as referências a outras linhas e tabelas são indicadas consultando os
atributos da chave primária por meio de colunas de chave estrangeira. As junções são calculadas no
momento da consulta, combinando chaves primárias e estrangeiras de todas as linhas nas tabelas
conectadas.
Banco de dados orientado a grafos -> é ideal para extrair valor das relações entre os dados. Contem uma
forma eficiente de armazenar dados semi-estruturados. Atualiza dados em tempo real e consultas de suporte
simultaneamente. Os bancos de dados orientados a grafos podem executar atualizações periódicas no big
data, ao mesmo tempo em que oferecem suporte a consultas