Buscar

UNIVESP - 2021 - Gabarito - Prova - Bancos de Dados

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 8 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 8 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

Prévia do material em texto

GABARITO 
DISCIPLINA 
EID002 - Bancos de Dados 
APLICAÇÃO 
28/04/2021 
CÓDIGO 
DA PROVA P013/P014 
 
QUESTÕES OBJETIVAS 
 
Questão 1.1 
Em um modelo de banco de dados de uma loja virtual, temos clientes que podem comprar vários 
produtos em um mesmo pedido. O relacionamento entre cliente, pedido e produto, portanto, tem a 
cardinalidade: 
a) 1:N entre cliente e pedido e M:N entre pedido e produto. 
b) 1:1 entre cliente e pedido e 1:N entre pedido e produto. 
c) M:N entre cliente e pedido e M:N entre pedido e produto. 
d) 1:1 entre cliente e pedido e M:N entre pedido e produto. 
e) 1:N entre cliente e pedido e 1:N entre pedido e produto. 
 
RESOLUÇÃO 
A resposta correta é: 1:N entre cliente e pedido e M:N entre pedido e produto. 
 
Justificativa 
Um cliente pode fazer vários pedidos e em cada pedido, adicionar vários produtos. Um produto, por 
sua vez, pode ser adicionado em vários pedidos, sendo que cada pedido é feito por apenas um cliente. 
 
 
Questão 1.2 
Considere a seguinte relação e as seguintes dependências funcionais (FD) especificadas pelo projetista 
do banco de dados: 
 
FILME 
título ano_lanc gênero diretor classificação 
The Matrix 1999 Sci-Fi, ação Lana 
Wachowski, 
Lilly 
Wachowski 
12 
 
FD1: gênero → classificação 
 
Informe a qual forma normal a relação acima obedece: 
 
I – Primeira forma normal. 
II – Segunda forma normal. 
III – Terceira forma normal. 
IV – Formal normal de Boyce-Codd. 
 
 
 
a) I e II. 
b) Apenas I. 
c) Nenhuma das assertivas. 
d) I, II, III. 
e) IV. 
 
RESOLUÇÃO 
A resposta correta é: Nenhuma das assertivas. 
 
Justificativa 
Por causa dos atributos “gênero” e “diretor”, que não são atômicos, a relação não obedece à primeira 
forma normal, consequentemente, não obedece 2NF e 3NF. Também não obedece à BCNF, pois o lado 
esquerdo da dependência gênero → estado não é uma superchave. 
 
 
Questão 1.3 
Considere um modelo relacional composto pelas relações e atributos: 
 
FILME(ident, titulo, ano_lanc, classificacao) 
 
GENERO(ident_filme, genero) 
 
DIRETOR(ident_filme, diretor) 
 
Deseja-se obter uma lista de todos filmes de Steven Spielberg classificados com gênero ‘Sci-Fi’. A 
consulta SQL que viabiliza a recuperação desses dados é: 
a) SELECT FILME.titulo, FILME.ano_lanc, FILME.classificacao FROM FILME, GENERO, DIRETOR 
WHERE FILME.ident = GENERO.ident_filme AND GENERO.genero = ‘Sci-Fi’ AND FILME.ident = 
DIRETOR.ident_filme AND DIRETOR.diretor = ‘Steven Spielberg’ 
b) SELECT FILME.titulo, FILME.ano_lanc, FILME.classificacao FROM FILME, GENERO, DIRETOR 
WHERE GENERO.genero = ‘Sci-Fi’ AND FILME.ident = DIRETOR.ident_filme AND DIRETOR.diretor 
= ‘Steven Spielberg’ 
c) SELECT FILME.titulo, FILME.ano_lanc, FILME.classificacao FROM FILME, GENERO, DIRETOR 
WHERE FILME.ident = GENERO.ident_filme AND GENERO.genero = ‘Sci-Fi’ AND DIRETOR.diretor 
= ‘Steven Spielberg’ 
d) SELECT FILME.titulo, FILME.ano_lanc, FILME.classificacao FROM FILME, GENERO, DIRETOR 
WHERE GENERO.genero = ‘Sci-Fi’ AND DIRETOR.diretor = ‘Steven Spielberg’ 
e) SELECT FILME.titulo, FILME.ano_lanc, FILME.classificacao FROM FILME WHERE FILME.ident = 
GENERO.ident_filme AND GENERO.genero = ‘Sci-Fi’ AND FILME.ident = DIRETOR.ident_filme AND 
DIRETOR.diretor = ‘Steven Spielberg’ 
 
RESOLUÇÃO 
A resposta correta é: SELECT FILME.titulo, FILME.ano_lanc, FILME.classificacao FROM FILME, GENERO, 
DIRETOR WHERE FILME.ident = GENERO.ident_filme AND GENERO.genero = ‘Sci-Fi’ AND FILME.ident = 
DIRETOR.ident_filme AND DIRETOR.diretor = ‘Steven Spielberg’. 
 
 
Justificativa 
A relação FILME possui chave primária ident, a qual é usada como chave estrangeira para GENERO 
(ident_filme) e DIRETOR (ident_filme). Assim, é necessário especificar o relacionamento entre as três 
relações por meio desse atributo. Além disso, deve-se utilizar o filtro genero = ‘Sci-Fi’ para a relação 
GENERO, e diretor = ‘Steven Spielberg’ para a relação DIRETOR. 
 
 
Questão 1.4 
Suponha duas transações, X e Y, que são executadas de maneira simultânea em um banco de dados 
com controle de concorrência. 
 
Transação X: Transação Y: 
1: lock-S(B); 1: lock-S(A); 
2: read(B); 2: read(A); 
3: unlock(B); 3: unlock(A); 
4: lock-X(A); 4: lock-X(B); 
5: read(A); 5: read(B); 
6: A := A + B; 6: B := A + B; 
7: write(A); 7: write(B); 
8: unlock(A); 8: unlock(B); 
 
Assumindo que os valores iniciais de A e B sejam, respectivamente, 20 e 30, considere as afirmativas 
como verdadeiras (V) ou falsas (F): 
 
I. ( ) A execução serializada da transação X seguida da transação Y irá resultar em A=50 e B=80. 
II. ( ) A execução serializada da transação Y seguida da transação X irá resultar em A=70 e B=50. 
III. ( ) A execução na ordem X1, X2, X3, Y1, Y2, Y3, Y4, Y5, Y6, Y7, Y8, X4, X5, X6, X7, X8 irá resultar em 
A=50 e B=50. 
IV. ( ) Ambas as transações seguem o protocolo de bloqueio em duas fases. 
 
A alternativa que contém a sequência correta é: 
a) V-V-V-F 
b) V-F-V-V 
c) V-F-V-F 
d) F-V-F-V 
e) F-V-F-F 
 
RESOLUÇÃO 
A resposta correta é: V-V-V-F. 
 
Justificativa 
A afirmação I é correta. Realizamos a execução da transação X inicialmente: 
 
lock-S(B) 
read(B) // lê o valor 30 e armazena em B 
 
 
unlock(B) 
lock-X(A) 
read(A) // lê o valor 20 e armazena em A 
A:= A + B // A é atualizado com o valor 50 
write(A) 
unlock(A) 
No final da transação temos A=50 e B=30. 
 
Depois, realizamos a execução da transação Y: 
 
lock-S(A) 
read(A) // lê o valor 50 e armazena em A 
unlock(A) 
lock-X(B) 
read(B) // lê o valor 30 e armazena em B 
B:= A + B // B é atualizado com o valor 80 
write(B) 
unlock(B) 
No final da transação temos A=50 e B=80. 
 
A afirmação II é correta. Realizamos a execução da transação Y inicialmente: 
 
lock-S(A) 
read(A) // lê o valor 20 e armazena em A 
unlock(A) 
lock-X(B) 
read(B) // lê o valor 30 e armazena em B 
B:= A + B // B é atualizado com o valor 50 
write(B) 
unlock(B) 
No final da transação temos A=20 e B=50. 
 
Depois, realizamos a execução da transação X: 
 
lock-S(B) 
read(B) // lê o valor 50 e armazena em B 
unlock(B) 
lock-X(A) 
read(A) // lê o valor 20 e armazena em A 
A:= A + B // A é atualizado com o valor 70 
write(A) 
unlock(A) 
No final da transação temos A=70 e B=50. 
 
A afirmação III é correta. Realizamos as operações na ordem informada: 
 
 
 
lock-S(B) 
read(B) // lê o valor 30 e armazena em B 
unlock(B) 
lock-S(A) 
read(A) // lê o valor 20 e armazena em A 
unlock(A) 
lock-X(B) 
read(B) // lê o valor 30 e armazena em B 
B:= A + B // B é atualizado com o valor 50 
write(B) 
unlock(B) 
lock-X(A) 
read(A) // lê o valor 20 e armazena em A 
A:= A + B // A é atualizado com o valor 50 
write(A) 
unlock(A) 
No final da transação temos A=50 e B=50. 
 
A afirmação IV é falsa, uma vez que há um pedido de bloqueio após um desbloqueio, isso não 
caracteriza o protocolo de bloqueio em duas fases. 
 
 
QUESTÕES DISSERTATIVAS 
 
Questão 2 
Considere o seguinte modelo relacional: 
 
BICICLETA 
num_serial modelo preco fabricante 
 
OPCIONAIS 
num_serial descricao preco 
FK: num_serial 
 
VENDAS 
ident_vend num_serial ident_cliente data preco_venda 
FK: ident_vend, ident_cliente e num_serial 
 
VENDEDOR 
ident_vend nome telefone 
 
CLIENTE 
ident_cliente nome endereço 
 
 
 
Utilizando as tabelas acima e a linguagem DML, realize as inserções necessárias da seguinte venda 
realizada em 05/12/2020: 
• Venda de uma bicicleta Scott, modelo Nino Schurter, número de serial 123456, cujo preço 
tabelado é de 20 mil reais. Essa venda foi realizada por Carlos Gomes, identificação 1593 e 
telefone (11) 3232-1212. Foram incluídos os seguintes opcionais: sinalizador traseiro cujo preço 
tabelado é de 50 reais; e suporte para garrafa cujo preço é de 80 reais. O comprador, identificado 
com número 555994, nome Rafael Monteiro, e endereço Rua dos Inconfidentes, 154,São Paulo-
SP, pagou o total de 20150 reais pelo conjunto. 
 
RESOLUÇÃO 
Para essa questão, é importante ficar atento à ordem das inserções: não se deve inserir uma tupla que 
possui chave estrangeira se não houver a respectiva chave primária na outra relação a que se refere. 
Por exemplo, não se pode inserir os dados referentes à venda antes de inserir os dados do vendedor, 
bicicleta e cliente. Assim, teríamos a seguinte resposta: 
 
INSERT INTO VENDEDOR VALUES (1593, 'Carlos Gomes’, '(11) 3232-1212'); 
INSERT INTO BICICLETA VALUES (123456, ‘Nino Schurter', 20000, 'Scott'); 
INSERT INTO OPCIONAIS VALUES (123456, 'Sinalizador traseiro', 50); 
INSERT INTO OPCIONAIS VALUES (123456, 'Suporte para garrafa', 80); 
INSERT INTO CLIENTE VALUES (555994, 'Rafael Monteiro', 'Rua dos Inconfidentes’, 154, ‘São 
Paulo-SP'); 
INSERT INTO VENDAS VALUES (1593, 123456, 555994, ‘05/12/2020’, 20150); 
 
Portanto, a ordenação das inserções pode ser resumida em: 
1) VENDAS deve ser obrigatoriamente a última inserção. 
2) OPCIONAIS deve ser inserida obrigatoriamente depois de BICICLETA (mas não precisa ser 
imediatamente depois). 
 
Rubricas | critérios de correção 
Sintaxe incorreta: descontar 20%. 
Ordem incorreta: descontar 40%. 
Inserção incorreta: descontar 40%. 
 
 
Questão 3 
Considere o seguinte modelo entidade-relacionamento (MER): 
 
 
 
 
 
Informe como seria o mapeamento MER acima para o modelo relacional. 
 
RESOLUÇÃO 
Para mapear o modelo entidade-relacionamento para o relacional, é importante se atentar aos 
relacionamentos M:N, que exigem uma tabela adicional. Além disso, é importante verificar quais 
seriam as chaves primárias e as chaves estrangeiras. Assim, o modelo resultante ficaria: 
 
AUTOR 
id nome 
 
LIVRO 
isbn titulo 
 
LIVRO_AUTOR 
id_autor isbn 
FK: id_autor e isbn 
 
GENERO 
id genero 
 
LIVRO_GENERO 
isbn id_genero 
FK: isbn e id_genero 
 
REVISOR 
id nome 
 
LIVRO_REVISOR 
isbn id_revisor data 
FK: isbn e id_revisor 
 
 
Rubricas | critérios de correção 
60% - mapeamento correto das entidades e atributos. 
40% - especificação das chaves primárias (termos sublinhados) e estrangeiras (FK´s).

Mais conteúdos dessa disciplina