Enunciado - Técnico Lisboa

Propaganda
Número do Aluno:
Nome do Aluno:
Instituto Superior Técnico
Departamento de Engenharia Informática
BASES DE DADOS 2005/06
LEIC e LERCI Tagus Park
3 de Fevereiro 2006
Duração: 2H30
Identifique esta prova preenchendo o seu nome e número nesta página, e o número em
todas as restantes
Resolva a prova nas folhas do enunciado. Pode usar o verso das páginas para responder às
questões.
A prova é sem consulta. Quaisquer tentativas de cópia serão penalizadas com a anulação
da prova.
Página 1 de 11
1º Exame de Base de Dados Tagus 2005/06s
Página 2 de 11 - ALUNO NÚMERO: ..........
P1 – Modelo ER (2,5 v)
a) Desenhe um diagrama ER correspondente ao seguinte esquema relacional:
filme(titulo, ano, direccao)
direccao: FK(realizador)
actor(nome, idade, salario)
realizador(nome, idade)
produtor(nome, ncontrib)
orcamento(id, valor)
actua(nome, titulo, ano)
nome: FK(actor)
titulo, ano: FK(filme)
produz(titulo, ano, nome, id)
titulo, ano: FK(filme)
nome: FK(produtor)
id: FK(orcamento)
b) Volte a desenhar o diagrama da alínea a), acrescentando a seguinte informação:
Um filme pode ser constituído por várias cenas. Cada cena tem um número e data em que
foi filmada. Embora um filme possa não ter cenas, não faz sentido existirem cenas sem
filme.
NOTA: Desenhe apenas a parte relevante do diagrama.
1º Exame de Base de Dados Tagus 2005/06s
Página 3 de 11 - ALUNO NÚMERO: ..........
P2 – Modelos ER e Relacional (2,5 v)
Considere o seguinte diagrama ER:
Assuma que, na base de dados, existem tantas instâncias de insecto como de mamífero.
Construa um modelo relacional correspondente, o mais optimizado possível, sabendo que:
a) A maioria das consultas feitas na base de dados são para saber o tipo de alimento e o
peso de um mamífero, dado o seu id. Muito poucas consultas são feitas sobre insectos.
Justifique as suas decisões.
b) A maioria das consultas são, dado o id de um animal, se este for insecto, saber o
número de patas, se este for mamífero, saber o tipo de alimento. Justifique as suas
decisões.
c) Enumere, se existirem, as restrições de integridade necessárias para os modelos
construídos nas alíneas anteriores.
1º Exame de Base de Dados Tagus 2005/06s
Página 4 de 11 - ALUNO NÚMERO: ..........
P3 – Formas Normais (2v)
a) Dada a relação R(A,B,C,D,E), indique quais as chaves candidatas, considerando as
seguintes dependências funcionais:
i) A->B, BC->E, D->C
ii) D->E, E->D
b) Dada a relação R(A,B,C,D,E), indique em que forma normal esta se encontra, sabendo
que:
i) ABC é a única chave candidata e D->E
ii) ABC e CD são as únicas chaves candidatas e A->D
Justifique detalhadamente a sua resposta.
1º Exame de Base de Dados Tagus 2005/06s
Página 5 de 11 - ALUNO NÚMERO: ..........
P4 – Álgebra Relacional (3v)
Considere o seguinte esquema relacional em que as chaves primárias estão sublinhadas e
as chaves estrangeiras estão em itálico:
Tratador (bi, nome, idade, salário)
Cao (cid, nome, raça)
DarBanho (bi, cid)
O que significa a seguinte expressão de álgebra relacional:
a) DarBanho ÷ Πcid (σraça = “Boxer” (Cao))
Escreva as seguintes interrogações em Álgebra Relacional:
b) Modifique a base de dados, de forma a que todos os tratadores que dão banho a pelo
menos 5 cães tenham 20% de aumento. Os restantes tratadores devem ter 5% de
aumento.
c) Qual o bi e nome dos tratadores que têm menos 30 anos e dão banho a pelo menos um
cão de raça “Bulldog”.
1º Exame de Base de Dados Tagus 2005/06s
Página 6 de 11 - ALUNO NÚMERO: ..........
P5 – Linguagem SQL (3,5v)
Considere o seguinte esquema relacional em que as chaves primárias estão sublinhadas e
as chaves estrangeiras estão em itálico:
Campeonato (cid, época, descrição)
Equipa (eid, nome)
Jogo (cid, eid1, eid2, golosEquipa1, golosEquipa2, data)
a) Diga, detalhadamente, o que significa a chave primária da relação Jogo. Justifique
na sua resposta se é possível ter mais do que um jogo entre as mesmas equipas, no
mesmo campeonato.
Escreva as seguintes interrogações em SQL. (Pode usar o verso da página)
b) Qual o nome de todas as equipas que defrontaram a equipa de nome “Dream team”
no(s) campeonato(s) da época “2004/2005”.
c) Liste o nome das equipas que tiveram mais vitórias no(s) campeonato(s) da época
“2004/2005” (nota: considera-se uma vitória num jogo quando a equipa marca mais
golos do que a equipa adversária)
d) Liste o nome das equipas que só têm vitórias no(s) campeonato(s) da época
“2004/2005”
1º Exame de Base de Dados Tagus 2005/06s
Página 7 de 11 - ALUNO NÚMERO: ..........
P6 – Triggers e PL/SQL (1v)
Considere os seguintes triggers implementados no âmbito do projecto da cadeira:
CREATE OR REPLACE TRIGGER TR4
AFTER INSERT OR UPDATE OF CODROTINA ON ROTINA
FOR EACH ROW
DECLARE
CTRL NUMBER;
BEGIN
SELECT COUNT(*) INTO CTRL
FROM CONSTITUIDA
WHERE CODROTINA = :NEW.CODROTINA;
IF CTRL = 0
THEN RAISE_APPLICATION_ERROR (-20002, 'A
exercício');
END IF;
END;
/
rotina
tem
pelo
menos
CREATE OR REPLACE TRIGGER TR4a
AFTER DELETE OR UPDATE ON CONSTITUIDA
DECLARE
CTRL NUMBER;
BEGIN
SELECT COUNT(*) INTO CTRL
FROM ROTINA R
WHERE R.CODROTINA NOT IN (SELECT C.CODROTINA FROM CONSTITUIDA C);
IF CTRL > 0
THEN RAISE_APPLICATION_ERROR (-20003, 'A rotina tem pelo menos
exercício');
END IF;
END;
um
um
e as seguintes relações envolvidas nos triggers:
Rotina(codRotina, idCategoriaRotina)
idCategoriaRotina: FK(CategoriaRotina)
not null(idCategoriaRotina)
Exercicio (codExercicio, descricao)
not null(descricao)
Constituida (codRotina, codExercicio)
codRotina: FK(Rotina)
codExercicio: FK(Exercicio)
Explique porque são necessários os dois triggers. O que poderia acontecer se só um deles
fosse implementado? (Pode usar o verso da página para responder sucinta e
objectivamente à pergunta)
1º Exame de Base de Dados Tagus 2005/06s
Página 8 de 11 - ALUNO NÚMERO: ..........
P7 – Transacções, Controlo de concorrência e Gestão de recuperação (1 v)
Assinale com V as afirmações verdadeiras e F as afirmações falsas:
O protocolo strict two-phase locking evita cascading rollbacks
O processo de recuperação de uma base de dados em modo de modificação “deferred”,
usa operações de undo e redo
Usando o nível de isolamento read commited, os locks exclusivos só são libertados
quando a transacção termina
A propriedade de consistência de uma transacção garante que as alterações feitas por
uma transacção terminada com sucesso, se mantêm com uma falha no sistema
1º Exame de Base de Dados Tagus 2005/06s
Página 9 de 11 - ALUNO NÚMERO: ..........
P8 – Controlo de concorrência (1,5 v)
Considere o seguinte esquema de base de dados relacional:
Aluno(anum, anome, major, idade)
Disciplina(dnome, pnum)
Inscricao(anum, dnome)
Professor(pnum, pnome, deptid)
Em que as chaves primárias estão sublinhadas e as estrangeiras em itálico
Para cada uma das transacções que se segue, diga qual o nível de isolamento SQL que
deve usar e explique porquê.
a) Inscrever um aluno identificado pelo seu anum na disciplina denominada “Bases de
Dados”.
b) Actualizar a inscrição de um aluno identificado pelo seu anum, mudando a disciplina
em que se encontra inscrito.
c) Atribuir um novo professor identificado pelo seu pnum à disciplina com o menor
número de alunos inscritos.
1º Exame de Base de Dados Tagus 2005/06s
Página 10 de 11 - ALUNO NÚMERO: ..........
P9 – XML (2v)
Considere o seguinte documento XML:
<bank-2>
<account account_number=“A-401” owners=“C100 C102”>
<branch_name> Downtown </branch_name>
<balance> 500 </balance>
</account>
<customer customer_id=“C100” accounts=“A-401”>
<customer_name>Joe </customer_name>
<customer_street> Monroe </customer_street>
<customer_city> Madison</customer_city>
</customer>
<customer customer_id=“C102” accounts=“A-401 A-402”>
<customer_name> Mary </customer_name>
<customer_street> Erin </customer_street>
<customer_city> Newark </customer_city>
</customer>
</bank-2>
a) Diga qual a diferença entre as duas expressões XPath:
/bank-2/account[balance > 400]
/bank-2/account[balance > 400]/@account_number
b) Escreva a expressão XPath que retorna os elementos de conta que contêm um subelemento “balance”.
1º Exame de Base de Dados Tagus 2005/06s
Página 11 de 11 - ALUNO NÚMERO: ..........
P10 – Índices e Tuning (1v)
Indique se as seguintes afirmações são verdadeiras ou falsas:
a) Num índice denso, existe uma entrada no índice por cada valor da chave de procura
b) Num índice esparso, existe uma entrada no índice por cada valor da chave de
procura.
c) Numa estratégia de avaliação “index-only plan”, o índice deve ser clustered (ou
primário)
d) Um índice hash-based clustered é útil numa interrogação cuja claúsula where
envolve uma desigualdade sobre um atributo que contém valores duplicados.
Download