Baixe o app para aproveitar ainda mais
Prévia do material em texto
Nome: RA: Data: Bancos de Dados – Avaliação 2 (GABARITO) 1) [Questão da prova CESGRANRIO - 2010 - Petrobrás - Analista de Sistemas Júnior - Infra-Estrutura] Seja o seguinte esquema de banco de dados. Cliente(IdCliente: Integer, Nome: Varchar(120)); Pedido(IdPedido: Integer, Dia: Integer, Mes: Integer, Ano: Integer); Cliente_Pedido(IdCliente: Integer referencia Cliente(IdCliente), IdPedido: Integer referencia Pedido(IdPedido)); Item(IdProduto: Integer referencia Produto(IdProduto), IdPedido: Integer, Quantidade: Integer); Produto(IdProduto: Integer, Nome: Varchar(100)); Considere que os atributos sublinhados correspondam à chave primária da respectiva relação e os atributos que são seguidos da palavra "referencia" sejam chaves estrangeiras. Considere ainda que existam as seguintes tuplas no banco de dados: Cliente_Pedido(30, 2); Cliente_Pedido(15, 3); Produto(2, "Caneta"); Produto(4, "Caderno"); Qual opção apresenta somente tuplas válidas para o esquema apresentado? a) Pedido (2, 1, 3, 2010); Cliente (4, "Marcelo de Almeida"); b) Pedido (30, 2, 2, 2010); Item (30, 4, 2); c) Item (2, 3, 5); Item (3, 4, 10); d) Cliente (2, "Pedro Santos"); Cliente (3, "Marta Ramos"); e) Cliente (30, "Simone Cunha"); Item (2, 2, 15); 2) [Questão 23 do ENADE 2008, para Bacharel em Ciência da Computação] Considere o esquema de banco de dados relacional apresentado a seguir, formado por 4 relações, que representa o conjunto de estudantes de uma universidade que podem, ou não, morar em repúblicas (moradias compartilhadas por estudantes). A relação Estudante foi modelada como um subconjunto da relação Pessoa. Considere que os atributos grifados correspondam à chave primária da respectiva relação e os atributos que são seguidos da palavra referencia sejam chaves estrangeiras. Pessoa(IdPessoa:integer, Nome:varchar(40), Endereco:varchar(40)) FonePessoa(IdPessoa:integer referencia Pessoa, DDD:varchar(3), Prefixo:char(4), Nro:char(4)) Republica(IdRep:integer, Nome:varchar(30), Endereco:varchar(40)) Estudante(RA:integer, Email:varchar(30), IdPessoa:integer referencia Pessoa, IdRep:integer referencia Republica) Suponha que existam as seguintes tuplas no banco de dados: Pessoa(1, ‘José Silva’, ‘Rua 1, 20’); Republica(20, ‘Várzea’, ‘Rua Chaves, 2001’) Qual opção apresenta apenas tuplas válidas para esse esquema de banco de dados relacional? A Estudante(10, ‘jsilva@ig.com.br’, 1, null); FonePessoa(1, ‘019’, ‘3761’, ‘1370’) B Estudante(10, ‘jsilva@ig.com.br’, null, 20); FonePessoa(10, ‘019’, ‘3761’, ‘1370’) C Estudante(10, ‘jsilva@ig.com.br’, 1, null); FonePessoa(10, ‘019’, ‘3761’, ‘1370’) D Estudante(10, ‘jsilva@ig.com.br’, 1, 20); FonePessoa(1, null, ‘3761’, ‘1370’) E Estudante(10, ‘jsilva@ig.com.br’, 1, 50); FonePessoa(1, ‘019’, ‘3761’, ‘1370’) 3) [Questão 44 do PosComp 2002] Supondo a Relação PROJ(PNO, Orçam), com chave primária PNO, a Relação EMP(ENO, ENome, Cargo) com chave primária ENO, e a Relação DSG(ENO, PNO, Dur, Resp), com chave primária {ENO, PNO}, chave estrangeira PNO em relação a PROJ e chave estrangeira ENO em relação a EMP. Qual das expressões da álgebra relacional abaixo NÃO corresponde à seguinte consulta SQL: SELECT ENome FROM EMP, PROJ, DSG WHERE EMP.ENO = DSG.ENO AND PROJ.PNO = DSG.PNO AND Dur > 36 A) ENome (PROJ |x|PNO ( EMP |x|ENO Dur > 36 ( Dur (DSG)))) B) ENome (PROJ |x|PNO ( EMP |x|ENO Dur > 36 (DSG))) C) ENome (PROJ |x|PNO (( ENome, ENO (EMP)) |x|ENO ( Dur > 36 (DSG)))) D) ENome (PROJ |x|PNO ( Dur > 36 (EMP |x|ENO (DSG) ))) E) ENome ( Dur > 36 (( PNO (PROJ)) |x|PNO ( EMP |x|ENO DSG))) 4) Para o banco de dados da Transportadora, cujas tabelas são descritas no final desta prova, escreva os comandos SQL para a) Exibir as viagens em que a quantidade de passageiros transportados excedeu a capacidade de carga do veículo que fez aquela viagem. Projetar as colunas referentes ao número da viagem, data e hora de início da viagem, destino, placa do veículo e nome do motorista. Exibir os dados em ordem alfabética do nome do motorista. SELECT NrViagem, DtSaida, Destino, Placas, Nome FROM Viagens, Veiculos, Motoristas WHERE viagens.CdVeiculo = veículos.CdVeiculo AND viagens.CdMotorista = motoristas.CdMotorista AND QtCarga > CapCarga ORDER BY Nome b) Exibir todas as viagens que foram iniciadas mas ainda não foram encerradas. Listar todas as colunas da viagem. SELECT * FROM Viagens WHERE DtRetorno IS NULL c) Listar as viagens em que a distância percorrida (quilometragem de retorno menos a quilometragem de saída) é superior a 100 km. SELECT * FROM Viagens WHERE KmRetorno – KmSaida > 100 d) Para os motoristas cujo telefone tiver DDD 015 exibir o nome do motorista e o número do telefone. SELECT Nome, Telefone FROM Motoristas WHERE Telefone LIKE ‘015%’ 5) Indique V (Verdadeiro) ou F (Falso) para cada uma das afirmações a seguir. (V) Se realizarmos o Produto Cartesiano sobre uma tabela A, que possui 4 colunas e 8 linhas, e uma tabela B, que possui12 colunas e 4 linhas, teremos como resultado uma relação com 32 linhas e 16 colunas. (F) A expressão A B é equivalente a B A, mas A B não é equivalente a B A. (V) A Seleção é uma operação relacional unária, pois possui um único operando, enquanto que a União é uma operação relacional binária. (V) Se quisermos combinar as linhas de uma tabela com a respectiva linha correspondente de outra tabela, precisamos fazer o Produto Cartesiano entre elas e depois executar uma filtragem das linhas (operação de Seleção) utilizando a equação de junção. (F) As expressões algébricas relacionais Nome, Limite(Limite > 500 (Clientes)) e Limite > 500 ( Nome, Limite(Clientes)) não são logicamente equivalentes. 6) [Questão 68 do PosComp 2009] Com relação às operações da álgebra relacional está ERRADO afirmar que o comando: A) PROJECT extrai atributos específicos de uma relação específica. B) SELECT extrai tuplas específicas de uma relação específica. C) JOIN constrói uma relação a partir de duas relações específicas, consistindo em todas as possibilidades de pares de tuplas, uma de cada uma das relações específicas. D) UNION constrói uma relação consistindo em todas as tuplas que aparecem em um par de relações específicas que são compatíveis. E) DIFFERENCE constrói uma relação a partir de duas relações específicas que são compatíveis, consistindo em todas as tuplas que aparecem na primeira relação e não aparecem na segunda. 7) Para o esquema lógico resumido apresentado a seguir, indique no diagrama abaixo os erros de normalização verificados, mencionando qual a forma normal que não está sendo atendida no caso. Depois, na folha de respostas, refaça o diagrama corrigindo os problemas encontrados. O quadro no canto inferior esquerdo mostra algumas DFs conhecidas no modelo. Aluno Disciplina NmAluno Sexo Telefone EstadoCivil NmDisc NmProfessor RA (PK) SiglaDis (PK) NmCurso Matriculas SiglaCurso RA (FK) Discip (FK) Semestre_Ano PK Nota1Bim Faltas1Bim Nota2Bim Faltas2Bim Nota3Bim Faltas3Bim Nota4Bim Faltas4Bim CargaHorDisc CodProfessor Alunos PK RA NmAluno Sexo Telefone EstadoCivil Matriculas PK SemestreAno PK,FK1 RA PK,FK2 SiglaDisc Bimestre Nota Faltas Disciplinas PK SiglaDisc NmDisc CargaHorDisc FK1 CodProfessor FK2 SiglaCurso Professores PK CodProfessor NmProfessor Cursos PK SiglaCursoNmCurso Dependências funcionais: SiglaCurso NmCurso Discip CargaHorDisc SiglaDis NmDisc CodProfessor NmProfessor 3FN 3FN 2FN 1FN 8) Considere a tabela Empregado (Matricula, Nome, CPF, Data_Nascimento, Codigo_Cargo, Nome_Cargo, Salario, Codigo_Departamento, Nome_departamento) onde Matricula e CPF são chaves candidatas, e as seguintes dependências funcionais: 1- Matricula Nome 2- Codigo_Departamento Nome_Departamento 3- Codigo_Cargo Nome_Cargo Pode-se afirmar que: a) Das três possíveis dependências funcionais, apenas 2 e 3 são de fato dependências funcionais b) A tabela Empregado, como apresentada, já está em 3ª. Forma Normal c) Para a tabela Empregado ficar em 3ª. Forma Normal as dependências funcionais 2 e 3 precisam ser eliminadas d) Para a tabela Empregado ficar em 3ª. Forma Normal as três dependências funcionais precisam ser eliminadas e) Para a tabela Empregado ficar em 3ª. Forma Normal a dependência funcional 1 precisa ser eliminada Tabelas do banco de dados da Transportadora (exercício 4) Veiculos(CdVeiculo, Modelo, Ano, Cor, Placas, CapPassag, CapCarga, KmAtual, Oleo, Revisao) Motoristas(CdMotorista, Nome, Rg, NrHab, Categ, Registro, DtHab, DtValHab, TelResid, EndResid) Viagens(NrViagem, Destino, DtSaida, KmSaida, DtRetorno, KmRetorno, QtPassag, QtCarga, CdMotorista, CdVeiculo) Manut(NrManut, CdVeiculo, DtInicio, DtFinal, DsManut, TpManut, KmFinal, VrManut)
Compartilhar