Buscar

Gabarito AP1

Prévia do material em texto

Fundação CECIERJ - Vice Presidência de Educação Superior a Distância 
Curso de Tecnologia em Sistemas de Computação 
Disciplina Banco de Dados 
AP1 1° semestre de 2015 
 
 
Nome – 
 
Assinatura – 
 
Observações: 
1. Prova sem consulta e sem uso de máquina de calcular. 
2. Use caneta para preencher o seu nome e assinar nas folhas de questões e nas 
folhas de respostas. 
3. Você pode usar lápis para responder as questões. 
4. Ao final da prova devolva as folhas de questões e as de respostas. 
5. Todas as respostas devem ser transcritas nas folhas de respostas. As respostas nas 
folhas de questões não serão corrigidas. 
 
 
Questão 1 (3 pontos) 
 
Deseja-se construir uma base de dados para armazenar informações referentes ao 
processo de seleção de candidatos a um programa de pós-graduação. O programa está 
organizado em áreas (por exemplo, "banco de dados" ou "redes de computadores"), cada 
área com um código e um nome. No programa atuam vários orientadores que têm 
também um código e um nome. Um orientador pode atuar em diferentes áreas. 
 
Cada candidato deve, ao inscrever-se, indicar obrigatoriamente uma ou mais áreas para as 
quais está se inscrevendo. Adicionalmente, se assim o desejar, pode indicar com quais 
orientadores destas áreas está se inscrevendo. Ao indicar um orientador, o candidato deve 
informar o grau de convicção (alto, médio ou baixo) com o qual fez a indicação. 
Além de seu nome e seu CPF (que é usado como identificador) cada candidato deve 
informar seu e-mail, o nome de seu curso de graduação e o nome da universidade em que 
fez este curso. 
 
Os candidatos a doutorado devem, adicionalmente, informar o título de seu plano de 
pesquisa e o resumo de seu plano. Além disso, estes candidatos devem informar a área 
em que fizeram mestrado e quem foi seu orientador. Aqui há duas situações a considerar. 
No caso de um aluno que fez mestrado dentro do próprio programa de pós-graduação, ele 
deve indicar em qual das áreas do Programa fez Mestrado e qual dos orientadores do 
Programa foi seu orientador. Já um candidato que tenha feito Mestrado em outro 
programa de pós-graduação, deverá fornecer o nome da área em que fez o mestrado e o 
nome de seu orientador. 
 
Desenhe um diagrama ER que captura as informações acima. Indique todos os 
identificadores e cardinalidades. Quando possível deve ser usada generalização/ 
especialização. A base de dados modelada não deve conter redundâncias de dados. Se 
houver alguma informação que não pode ser concluída a partir da lista acima, indique 
explicitamente o que você assumiu e como isso foi refletido na modelagem (ex: a 
cardinalidade mínima da entidade X no relacionamento Y foi definida como 1, pois 
assumi que X era obrigatório no relacionamento Y). 
 
 
Resposta 
 
 
 
 
Questão 2 (3 pontos) 
Considere a seguinte base de dados, usada por uma oficina de manutenção de 
automóveis. As chaves primárias estão sublinhadas. 
 
/* tabela de clientes cadastrados na oficina */ 
CLIENTE (cpf, nome_cli) 
 
/* tabela com dados dos automóveis dos clientes da oficina */ 
AUTOMOVEL (placa, no_chassis, modelo, cpf); 
(cpf) references CLIENTE 
 
/* tabela com as revisões periódicas programadas e feitas – para cada automóvel, a 
oficina cadastra todas revisões programadas: 
- Km e data_programada são a quilometragem e a data em que deve ser feita a 
revisão 
- data_ultim_telef serve para informar quando o pessoal da oficina ligou para 
o cliente lembrando da provável necessidade de fazer a revisão – caso o cliente não 
tenha sido chamado, este campo contém a string vazia (”) 
- data_executada e Km_executada informa a data e a quilometragem de uma 
revisão que já foi executada – caso a revisão não tenha sido executada ainda, estes 
campos contêm a string vazia (”) */ 
 
REVISAO (placa, Km, data_programada, data_ultim_telef, 
data_executada, Km_executada) 
(placa) references AUTOMOVEL 
 
/* tabela com as peças usadas em cada revisão */ 
PEÇA_REVISAO (placa, Km, cod_peça, quantidade) 
(placa, Km) references REVISAO 
(cod_peça) references PEÇA 
 
/* tabela com as descrições das peças */ 
PEÇA (cod_peça, descricao_peça) 
 
Sobre esta base de dados, resolver as consultas a seguir usando álgebra relacional. 
Não usar mais tabelas que o estritamente necessário. 
 
(a) Faça uma consulta que retorna os nomes dos clientes que possuem automóvel do 
modelo “Gol” [0,5 ponto]. 
 𝝅𝑵𝒐𝒎𝒆𝑪𝒍𝒊 𝑪𝒍𝒊𝒆𝒏𝒕𝒆   ⋈   𝝈𝒎𝒐𝒅𝒆𝒍𝒐!  "𝑮𝒐𝒍"  𝑨𝒖𝒕𝒐𝒎ó𝒗𝒆𝒍 
 
(b) Faça uma consulta que retorna os nomes dos clientes e o modelo do automóvel, cujo 
automóvel teve uma revisão executada na data de 2015-02-20 [0,5 ponto]. 
 𝝅𝑵𝒐𝒎𝒆𝑪𝒍𝒊,𝒎𝒐𝒅𝒆𝒍𝒐 𝑪𝒍𝒊𝒆𝒏𝒕𝒆   ⋈  𝑨𝒖𝒕𝒐𝒎ó𝒗𝒆𝒍  ⋈ 𝝈𝒅𝒂𝒕𝒂_𝒆𝒙𝒆𝒄𝒖𝒕𝒂𝒅𝒂!  "𝟐𝟎𝟏𝟓!𝟎𝟐!𝟐𝟎"  𝑹𝒆𝒗𝒊𝒔𝒂𝒐 
 
(c) Faça uma consulta que retorna a descrição das peças que nunca foram usadas em 
revisões [1 ponto]. 
 𝝅𝒅𝒆𝒔𝒄𝒓𝒊𝒄𝒂𝒐_𝒑𝒆𝒄𝒂 𝑷𝒆ç𝒂   ⋈   𝝅𝒄𝒐𝒅_𝒑𝒆𝒄𝒂   𝑷𝒆ç𝒂 − 𝝅𝒄𝒐𝒅_𝒑𝒆𝒄𝒂   𝑷𝒆ç𝒂_𝑹𝒆𝒗𝒊𝒔𝒂𝒐   
 
(d) Obter as placas e km dos automóveis com a data programada da próxima revisão dos 
automóveis que, em uma determinada revisão, utilizaram mais do que 3 peças com 
descrição = “Vela” [1 ponto]. 
 𝝅𝒑𝒍𝒂𝒄𝒂,𝒅𝒂𝒕𝒂_𝒆𝒙𝒆𝒄𝒖𝒕𝒂𝒅𝒂 𝝈𝒅𝒆𝒔𝒄𝒓𝒊𝒄𝒂𝒐_𝒑𝒆𝒄𝒂!  "𝑽𝒆𝒍𝒂"    ∧    𝒒𝒖𝒂𝒏𝒕𝒊𝒅𝒂𝒅𝒆  !𝟑   𝑹𝒆𝒗𝒊𝒔𝒂𝒐  ⋈ 𝑷𝒆ç𝒂_𝑹𝒆𝒗𝒊𝒔𝒂𝒐   ⋈  𝑷𝒆ç𝒂 
 
Questão 3 (1 ponto) 
 
Utilizando o esquema da questão 2, analise as consultas abaixo e diga qual o esquema da 
tabela retornada por cada uma das consultas. O esquema deve ser informado utilizando a 
seguinte sintaxe: 
 
Tab (TabOrigem1.Atrib1, TabOrigem1.Atrib2, ..., TabOrigemN.Atrib1, 
TabOrigemN.Atrib2,...) 
 
Nesta notação, tabOrigemi é o nome da tabela de onde veio o atributo Atribj 
originalmente. 
 
(a) 𝝈𝒒𝒖𝒂𝒏𝒕𝒊𝒅𝒂𝒅𝒆!𝟐   𝑷𝒆ç𝒂   ⋈ 𝑷𝒆ç𝒂_𝑹𝒆𝒗𝒊𝒔𝒂𝒐 
 
Tab (Peça.cod_peça, Peça.descricao_peça, Peça_revisão.placa, Peça_revisão.km, 
Peça_revisão.data_programada, Peça_revisão.data_ultim_telef, 
Peça_revisão.data_executada, Peça_revisão.Km_executada) 
 
(b) 𝝅𝒏𝒐𝒎𝒆𝑪𝒍𝒊   𝑪𝒍𝒊𝒆𝒏𝒕𝒆 
 
Tab (Cliente.nomeCli) 
 
 
Questão 4 (3 pontos) 
Que recursos um SGBD possui para prover independência de dados e acesso eficiente 
aos dados? 
 
Os SGBDS possuem três níveis de representação de dados, e a definição de mapeamentos 
entre os níveis. Esses esquemas isolam os dados de características internas de 
armazenamento físico e representação lógica. Os esquemas lógico e externo provêem 
independência das representações de dados quanto ao armazenamento físico e projeto 
lógico respectivamente. Assim, estruturas de dados podem evoluir à medida que novos 
requisitos são definidos. 
 
Para prover acesso eficiente, o SGBD possui mecanismos eficientes de armazenamento e 
acesso aos dados, contando com a gerência de arquivos muito grandes, estruturas de 
índices e otimização de consultas.

Continue navegando