Anda di halaman 1dari 14

Bases de Dados 2006/2007

Exame
12 de Janeiro de 2007
Instituto Superior Tecnico
Departamento de Engenharia Informatica

Regras
O exame tem a duracao de 2h30m.
A folha de capa deve ser identificada com o nome e n
umero do
aluno.
Todas as restantes folhas devem ser identificadas com o n
umero
do aluno.
O exame deve ser resolvido nas folhas do enunciado.
O enunciado ja inclui espaco para rascunho, pelo que n
ao s
ao
permitidas folhas de rascunho.
Os alunos devem ter em cima da mesa apenas o material para
escrita e a sua identificacao.
O exame e sem consulta.

Boa sorte!

N
umero do aluno:
Nome do aluno:

Bases de Dados 2006/2007

Aluno:

1
Poucos dias antes do Natal uma base de dados registou as previsoes meteorologicas para
varias cidades europeias. A figura seguinte mostra o esquema da tabela envolvida, bem
como alguns dados de exemplo. Os dados armazenados sao: o nome da cidade, a data da
previsao, as temperaturas mnima e maxima, e uma descricao geral do estado do tempo.

(a) Escreva uma consulta em SQL que permita determinar qual a cidade com temperatura maxima prevista mais elevada na vespera de Natal.
(b) Escreva uma consulta em SQL que permita determinar qual a cidade onde, em media,
as temperaturas maximas previstas sao mais elevadas.
(c) Escreva uma consulta em SQL que permita determinar, para cada cidade a data em
que ocorreu a sua temperatura maxima.
(3 valores)

Folha 2 de 14

Bases de Dados 2006/2007

Aluno:

2
Considere as seguintes relacoes que contem dados sobre frutos, quantidades recomendadas
de vitaminas, e quantidades de cada vitamina por fruto:
f ruta(nome, qt f ibra, cor, f orma)
vitamina(designacao, qt recomendada)
vitaminada(nome, designacao, quantidade)
Escreva em algebra relacional as seguintes interrogacoes:
(a) Quais as frutas com a maior quantidade de vitaminas?
(b) Quais as frutas que contem as mesmas vitaminas que a banana?
(c) Quantas laranjas e preciso comer para obter a quantidade recomendada de vitamina
C?
(3 valores)

Folha 3 de 14

Bases de Dados 2006/2007

Aluno:

3
Considere a seguinte interrogacao em SQL:
select c.nome
from cavalo c, cavalo d
where c.idade > d.idade and d.dentadura=em-ordem
sobre a tabela cavalo(nome, idade, dentadura).
Construa uma expressao equivalente em algebra relacional, que seja o mais eficiente
possvel. Justifique a sua decisao.
(1,5 valores)

Folha 4 de 14

Bases de Dados 2006/2007

Aluno:

4
Considere o esquema relacional:
R(A, B, C, D, E, F )
(a) Assumindo que CD e a u
nica chave candidata para a relacao, indique uma dependencia funcional que leve a que a relacao nao se encontre na FNBC mas que
esteja na 3FN. Justifique.
(b) Assumido a dependencia funcional C D e que a relacao se encontra na FNBC,
indique uma possvel chave candidata. Justifique.
(2 valores)

Folha 5 de 14

Bases de Dados 2006/2007

Aluno:

5
Considere os seguintes conjuntos de operacoes A, B, e C, operando sobre uma tabela
pessoa(id, nome) que inicialmente se encontra vazia:
Operac
ao A:
A1: INSERT INTO PESSOA VALUES (1,JOAO);
A2: UPDATE PESSOA WHERE ID=2 SET ID=3;
Operac
ao B:
B1: INSERT INTO PESSOA VALUES (2,BRUNO);
B2: DELETE FROM PESSOA WHERE ID=1;
Operac
ao C:
C1: SELECT count(*) FROM PESSOA;
(a) Quais os escalonamentos possveis para estas operacoes? Para cada escalonamento,
indique o conte
udo final da tabela pessoa.
(b) Considere que cada conjunto de operacoes da alnea anterior constitui uma transaccao. Indique, para cada uma destas transaccoes, que locks devem ser utilizados.
Considere locks partilhados e exclusivos. Considere ainda que os locks se aplicam
sobre a tabela pessoa, isto e, as transaccoes A, B, e C adquirem locks sobre toda a
tabela.
(c) Para a transaccao C explique em que medida os resultados podiam ser diferentes
usando os nveis de isolamento READ UNCOMMITTED ou SERIALIZABLE.
(2,5 valores)

Folha 6 de 14

Bases de Dados 2006/2007

Aluno:

6
Considere a figura seguinte, a qual representa a execucao de 5 transaccoes num sistema que
fez o checkpoint no momento Tc , que falhou no momento Tf e que arrancou no momento
Ta . Assuma que no sistema e usada a tecnica de modificacao imediata.

Chamemos de REDO(Ti ) `a operacao do sistema que repoe os valores finais dos dados
alterados pela transaccao Ti e U N DO(Ti ) `a operacao que repoe os valores iniciais dos
dados alterados pela transaccao Ti .
(a) Indique a sequencia das operacoes REDO e UNDO que o sistema devera fazer quando
arrancou em Ta .
(b) Para cada transaccao indicada na alnea anterior, diga se todas as suas instrucoes
tem de ser refeitas/desfeitas. Justifique.
(1,5 valores)

Folha 7 de 14

Bases de Dados 2006/2007

Aluno:

7
A clnica veterinaria PetVip necessita de guardar numa base de dados a seguinte informacao:
Os donos sao identificados pelo seu n
umero de BI, e pretende-se guardar tambem o
seu nome e telefone.
Cada animal e identificado pelo seu n
umero de registo e guarda-se tambem o seu
nome, raca e data de nascimento.
Um animal tem apenas um u
nico dono, mas cada dono pode ter varios animais.
As visitas `a clnica podem ser para consulta, vacinacao, ou ambas. No caso de uma
consulta deve ficar registado o motivo. No caso de uma vacinacao deve ficar registada
o nome da vacina administrada. Para todas as visitas pretende-se guardar a data da
visita e o seu custo.
(a) Desenhe um diagrama ER que capture esta informacao.
(b) Indique uma possvel restricao de integridade, para alem das mencionadas acima, que
nao fosse possvel capturar no diagrama ER.
(2 valores)

Folha 8 de 14

Bases de Dados 2006/2007

Aluno:

8
(a) O que e um escalonamento sem hipotese de rollback encadeado?
(b) Apresente um exemplo de um escalonamento recuperavel, mas que permita rollback
encadeado.
(1 valor)

Folha 9 de 14

Bases de Dados 2006/2007

Aluno:

9
Considere o seguinte modelo relacional para uma base de dados de stocks de uma empresa:
armazem(id armazem, local, morada)
local : unique
produto(id produto, descricao, preco, f ornecido ao armazem)
f ornecido ao armazem : F K(armazem)
stock(id armazem, id produto, quantidade, corredor, prateleira)
id armazem : F K(armazem)
Os armazens mantem um stock de produtos. Cada produto e fornecido a um armazem,
sendo depois distribudo para outros armazens.
(a) Crie as tabelas em SQL para as relacoes armazem e produto do modelo relacional
(pode assumir os tipos de dados dos atributos).
(b) Crie uma funcao em SQL que devolva o n
umero de armazens que tem em stock
qualquer produto que seja fornecido ao armazem localizado em Lisboa.
(2 valores)

Folha 10 de 14

Bases de Dados 2006/2007

Aluno:

10
Considere o seguinte ndice do tipo arvore B + .

Mostre o conte
udo do ndice apos a insercao das entradas 11, 17, e 19.
(1,5 valores)

Folha 11 de 14

Bases de Dados 2006/2007

Aluno:

P
agina para Rascunho

Folha 12 de 14

Bases de Dados 2006/2007

Aluno:

P
agina para Rascunho

Folha 13 de 14

Bases de Dados 2006/2007

Aluno:

P
agina para Rascunho

Folha 14 de 14