Exercícios de Modelo Relacional

Propaganda
Número do Aluno:
Nome do Aluno:
Instituto Superior Técnico
Departamento de Engenharia Informática
BASES DE DADOS 2005/06
(Solução)
LEIC e LERCI Tagus Park
13 de Janeiro 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.
A prova é sem consulta.
Quaisquer tentativas de cópia serão penalizadas com a anulação da prova.
Página 1 de 10
1º Exame de Base de Dados Tagus 2005/06s
Página 2 de 10 - ALUNO NÚMERO: ..........
P1 – Modelo ER (3v)
Considere o seguinte cenário para uma base de dados de uma colónia de férias infantil:
Para todas as pessoas na colónia é necessário saber o nome e idade. Na colónia podemos
ter monitores e crianças. Cada criança pertence a uma equipa. Cada equipa é identificada
por uma cor. Existe um e um só monitor responsável por cada equipa. Na colónia são
organizados campeonatos, que se identificam pelo nome da modalidade ("berlinde", "pião",
etc.). As equipas participam em campeonatos e é necessário saber quais os pares de
equipas que se defrontaram em cada campeonato e em que data.
a) Construa o modelo E-R de uma base de dados para a colónia acima referida.
b) Enumere as restrições de integridade que não foram possíveis modelar no
esquema da alínea (a).
a)
b)
Uma
equipa
não se
pode
defront
ar a ela
mesma.
P2 –
Modelos
ER e
Relacio
nal (2v)
Considere
o
seguinte
esquema
E-R:
1º Exame de Base de Dados Tagus 2005/06s
Página 3 de 10 - ALUNO NÚMERO: ..........
a) Construa o modelo relacional correspondente ao modelo E-R da figura acima.
b) Enumere o conhecimento que se perde na passagem de um modelo para o outro.
a)
Pastel(número)
deBacalhau(número, qtBatata)
deBelém(número)
número: FK(Pastel)
número: FK(Pastel)
imperial(marca)
açucar(tipo, quantidade)
canela(tipo, quantidade)
acompanha(número, marca)
número: FK(deBacalhau), marca: FK(imperial)
vaiBem(número, tipoA, tipoC)
FK(canela)
número: FK(deBelém), tipoA: FK(açucar), tipoC:
b) Um pastel de bacalhau e um pastel de belém não podem ter o mesmo número;
cada pastel de bacalhau é acompanhado por, no mínimo, uma imperial.
P3 – Á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:
Aluno (numero, nome, localidade)
1º Exame de Base de Dados Tagus 2005/06s
Página 4 de 10 - ALUNO NÚMERO: ..........
Disciplina (did, dnome, creditos)
Frequenta (numero, did, nota)
O que significa a seguinte expressão de álgebra relacional:
a) ∏
nome, dnome, nota
(σ
creditos > 4
(Aluno
Disciplina
Frequenta))
Para todas as disciplinas com mais do que 4 créditos, qual o nome da disciplina
(dnome) e nomes (nome) e notas (nota) dos alunos que as frequentaram.
Escreva as seguintes interrogações em Álgebra relacional:
b) Quais os alunos que tiveram melhores notas do que todos os alunos da disciplina
‘BD’
c) Para cada disciplina, qual a média das notas e melhor nota dos alunos que a
frequentaram
P4 – 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:
Carro (cid, marca, cor)
Vendedor (vid, nome, idade)
Reserva (vid, cid, data)
Escreva as seguintes interrogações em SQL
a) Quais as marcas dos carros reservados pelo vendedor ‘João Maria’.
SELECT DISTINCT MARCA
FROM CARRO C, VENDEDOR V, RESERVA R
WHERE V.NOME = 'João Maria' AND
R.VID = V.VID AND
R.CID = C.CID
1º Exame de Base de Dados Tagus 2005/06s
Página 5 de 10 - ALUNO NÚMERO: ..........
b) Quantos carros reservou cada vendedor com idade superior a 25 anos.
SELECT V.VID, COUNT(R.CID)
FROM RESERVA R, VENDEDOR V
WHERE R.VID = V.VID AND
V.IDADE > 25
GROUP BY V.VID
c) Quais os vendedores que reservaram todos os carros que o vendedor com vid=1
também reservou.
SELECT V.VID, V.NOME
FROM VENDEDOR V
WHERE VID <> 1 AND NOT EXISTS (SELECT CID
FROM RESERVA
WHERE VID = 1
MINUS
SELECT CID
FROM RESERVA
WHERE VID = V.VID)
d) Qual o nome dos vendedores, com idade inferior a 40 anos, que não reservaram
carros com cor ‘azul’.
SELECT VID
FROM VENDEDOR
WHERE IDADE < 40
MINUS
SELECT VID
FROM RESERVA R, CARRO C
WHERE R.CID = C.CID
AND C.COR = 'azul'
P5 – Formas Normais (2v)
Dada a relação R com atributos A, B, C, D.
Considere as seguintes dependências funcionais:
a) C -> D, BCD -> A, CD -> B
(i)
Quais ou qual a(s) chave(s) candidata(s)?
C
(ii)
(iii)
Em que forma normal está a relação? Justifique.
BCNF
Está na 1ª forma normal porque todos os atributos são atómicos;
Está na 2ª forma normal porque está na 1ªFN e todos os atributos não
chave dependem totalmente da chave;
1º Exame de Base de Dados Tagus 2005/06s
Página 6 de 10 - ALUNO NÚMERO: ..........
Está na 3ª forma normal porque está na 2ªFN e não existem dependências
entre atributos não chave;
Está na BCNF porque está na 3ªFN e os únicos determinantes são as chaves
candidatas.
b) A -> B, C -> D, B -> D
(i)
Quais ou qual a(s) chave(s) candidata(s)?
AC
(ii)
Em que forma normal está a relação? Justifique.
1ª forma normal
Está na 1ª forma normal porque todos os atributos são atómicos;
Não está na segunda forma normal porque existem atributos não chave que não
dependem totalmente da chave (e.g., A->B e C->D).
P6 – Transacções, Controlo de concorrência e Gestão de recuperação
(1,5v)
Dado o seguinte schedule:
T1
R (A)
R(B)
T2
T3
W(A)
R(A)
W(A)
commit
commit
W(A)
commit
Assinale com V as afirmações verdadeiras e F as afirmações falsas:
F O schedule evita cascading aborts e não é conflict serializable
F O schedule é conflict serializable e recuperável
V O schedule não evita cascading aborts mas é recuperável
F O schedule não é conflict serializable porque T1 faz commit depois de T3
1º Exame de Base de Dados Tagus 2005/06s
Página 7 de 10 - ALUNO NÚMERO: ..........
P7 – Índices (3v)
Considere a seguinte B+tree, com um número máximo de ponteiros por nó não folha igual
a 5:
Indique quais as árvores resultantes depois das seguintes operações serem aplicadas à
árvore original:
a)
b)
c)
d)
e)
a)
b)
c)
d)
Inserção do registo de dados com chave igual a 9.
Inserção do registo de dados com chave igual a 10.
Inserção do registo de dados com chave igual a 8.
Remoção do registo de dados com chave igual a 23.
Remoção do registo de dados com chave igual a 19.
1º Exame de Base de Dados Tagus 2005/06s
Página 8 de 10 - ALUNO NÚMERO: ..........
e)
P8 - XML (1v)
Apresente um exemplo de um documento XML contendo dados que obedeçam à seguinte
DTD:
<!DOCTYPE parts [
<!ELEMENT part (name, subpartinfo*)>
<!ELEMENT subpartinfo (part, quantity)>
<!ELEMENT name ( #PCDATA )>
<!ELEMENT quantity ( #PCDATA )>
]>
Exemplo possível (mas era aceite menor, desde que obedecesse à DTD dada): próxima
página
1º Exame de Base de Dados Tagus 2005/06s
Página 9 de 10 - ALUNO NÚMERO: ..........
1º Exame de Base de Dados Tagus 2005/06s
Página 10 de 10 - ALUNO NÚMERO: ..........
P9 – Miscelânia (1v)
Indique se as seguintes afirmações são verdadeiras ou falsas:
a) A classe Statement de JDBC é indicada para interrogações parameterizáveis que
podem ser executadas várias vezes. FALSA
b) Se uma relação R tem duas chaves candidatas C1 e C2, então cada tuplo da relação
necessita dos valores de C1 e C2 para se identificar univocamente. FALSA
c) Um trigger é desencadeado quando é feita uma leitura à base de dados FALSA
d) Quando o modo de modificação da Base de dados é imediato, as operações
necessárias para recuperar de falhas são “redo” e “undo”. VERDADEIRA
Download