Você está na página 1de 14

Bases de Dados 2007/2008 Exame

11 de Janeiro de 2007
Instituto Superior T ecnico Departamento de Engenharia Inform atica

Regras O exame tem a dura c ao de 2h30m. A folha de capa deve ser identicada com o nome e n umero do aluno. Todas as restantes folhas devem ser identicadas com o n umero do aluno. O exame deve ser resolvido nas folhas do enunciado. O enunciado j a inclui espa co 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 identica c ao. O exame e sem consulta.

Boa sorte!

N umero do aluno: Nome do aluno:

Bases de Dados 2007/2008

Aluno:

1
Considere as seguintes rela c oes, usadas na base de dados de gest ao de um condom nio fechado nos arredores de Lisboa: morador(id, nome, idade, sexo, salario) apartamento(bloco, andar, numero, tipo, renda) habita(id, bloco, andar, numero) id : F K (morador), bloco, andar, numero : F K (apartamento) usou(id, servico, data) id : F K (morador) Escreva, em algebra relacional, as seguintes interroga c oes: (a) Quais os nomes dos moradores do bloco B que usaram o servi co de sauna no dia 1/1/2008? (b) Quantos apartamentos n ao habitados tem o bloco C ? (c) Quais os apartamentos cuja soma dos sal arios dos seus moradores e menor do que a sua renda? (0,7+0,8+1,0 = 2,5 valores)

Folha 2 de 14

Bases de Dados 2007/2008

Aluno:

2
Um restaurante italiano vende pizzas de v arios tamanhos e com v arios ingredientes. O cliente pode encomendar pizzas dispon veis no menu (p.ex. Tropical, Havaiana, etc.) ou pode tamb em encomendar pizzas com ingredientes ` a escolha. Neste caso deve indicar, para al em do tamanho da pizza, a lista de ingredientes que pretende. A gura seguinte mostra parte das tabelas relevantes da base de dados do restaurante. pizza composicao ingrediente

(a) Escreva uma consulta em SQL para determinar quais as pizzas do menu que t em maior n umero de ingredientes. (b) Existe alguma pizza m edia no menu que custe tanto ou mais do que uma pizza familiar de outro tipo? Escreva uma consulta em SQL que mostre o nome dessa pizza, se existir. (c) Um cliente pretende encomendar uma pizza pequena com os seguintes ingredientes: Anan as, Atum e Cogumelos. Existe alguma pizza de menu que contenha estes ingredientes? Escreva uma consulta em SQL para responder a esta pergunta. (0,7+0,8+1,0 = 2,5 valores)

Folha 3 de 14

Bases de Dados 2007/2008

Aluno:

3
Considere novamente a base de dados da pergunta anterior. Escreva uma fun c ao que devolve a diferen ca de pre co entre encomendar uma pizza de menu e encomendar uma pizza ` a escolha, com o mesmo tamanho e os mesmos ingredientes. A fun c ao recebe como par ametros o nome e o tamanho da pizza. (2 valores)

Folha 4 de 14

Bases de Dados 2007/2008

Aluno:

4
Considere o seguinte universo de discurso: Os empregados da empresa ABC trabalham em diversos projectos. Cada empregado usa um conjunto de ferramentas espec cas para realizar um dado necess projecto. E ario contabilizar o tempo que os empregados dedicam aos projectos assim como o respectivo tempo de utiliza c ao de cada ferramenta em cada projecto. (a) Apresente um diagrama Entidade-Associa c ao para este universo de discurso sem fazer uso dos conceitos de agrega c ao, entidade fraca e participa c ao total. (b) Far a sentido aplicar algum desses conceitos a este cen ario? Justique e, em caso armativo, apresente um novo diagrama E-A. (c) Converta o modelo da al nea (b) para um modelo relacional e especique uma restri c ao de integridade n ao capturada. (1,0+0,7+0,8 = 2 valores)

Folha 5 de 14

Bases de Dados 2007/2008

Aluno:

5
Considere a rela c ao R(A, B, C, D, E ) em que se verica o seguinte conjunto de depend encias funcionais: A BC CD E BD EA (a) Indique as chaves candidatas da rela c ao R. (b) A rela c ao encontra-se na 3FN? Justique. (c) Indique uma decomposi c ao para FNBC que seja lossless-join. Justique. (d) Indique se a decomposi c ao apresentada na al nea anterior preserva todas as restri c oes de integridade. Justique. (0,5+0,7+0,8+0,5 = 2,5 valores)

Folha 6 de 14

Bases de Dados 2007/2008

Aluno:

6
(a) Explique o que faz o seguinte comando SQL. A ordem de especica c ao das colunas tem algum impacto na estrutura de indexa c ao e/ou na pesquisa? Justique. CREATE INDEX idx ON MyTable(x, y, z) (b) Justique quais dos seguintes tr es comandos SQL poder ao fazer uso do ndice idx, denido acima. SELECT x, y, z FROM MyTable WHERE x=10 AND y<15 AND z>=20 (1) SELECT x, y, z FROM MyTable WHERE x=10 AND y<15 (2) SELECT x, y, z FROM MyTable WHERE y<15 (3)

(c) Um ndice secund ario pode ser esparso? Justique a sua resposta. (0,5+0,5+0,5 = 1,5 valores)

Folha 7 de 14

Bases de Dados 2007/2008

Aluno:

7
Considere uma arvore B+ vazia, com n = 3. Desenhe a arvore passo a passo, mostrando apenas as altera c oes, ao inserir os seguintes valores: 5, 8, 1, 7, 3, 12, 9, 6. (2 valores)

Folha 8 de 14

Bases de Dados 2007/2008

Aluno:

8
Considere a seguinte rela c ao: R(a, b, c, d) Assuma que: Todos os atributos s ao inteiros; O atributo d e a chave prim aria encontram-se indexados, com ndices do tipo arvore B+; A rela c ao tem cerca de 100 registos. Escreva em algebra relacional uma express ao que obrigue o SGBD a usar: (a) Exclusivamente um algoritmo de selec c ao usando ndice prim ario (e mais nenhum outro algoritmo de selec c ao) (b) Exclusivamente um algoritmo selec c ao por pesquisa sequencial (e mais nenhum outro algoritmo de selec c ao), com o atributo a fazendo parte dos crit erios de pesquisa. (c) Selec c ao com dois crit erios que permita localizar directamente o registo (sem pesquisa sequencial). (0,5+0,5+0,5 = 1,5 valores)

Folha 9 de 14

Bases de Dados 2007/2008

Aluno:

9
Considere as seguintes express oes: loan number,customer name customer city= Lisboa amount>1000 (borrower loan branch customer) (1)

customer city= Lisboa amount>1000 loan number,customer name (borrower loan branch customer) referente ao seguinte modelo relacional: branch(branch name, branch city, assets), customer(customer name, customer street, customer city ), loan(loan number, branch name, amount), account(account number, branch name, balance), borrower(customer name, loan number), depositor(customer name, account number, access date), com com com com com com 100 100 300 500 300 500 registos 000 registos 000 registos 000 registos 000 registos 000 registos (2)

(a) As express oes (1) e (2) s ao equivalentes? Em caso armativo, justique fazendo uso das regras de equival encia. Em caso negativo, justique com um exemplo ou descreva a raz ao. (b) Indique a express ao equivalente ` a express ao (1) que seja o mais eciente poss vel (considerando as dimens oes das rela c oes). Justique. (c) Elabore o plano de execu c ao (em arvore) para a express ao (1) e para a express ao proposta na al nea anterior. (0,5+1,0+0,5 = 2 valores)

Folha 10 de 14

Bases de Dados 2007/2008

Aluno:

10
Considere a seguinte gura, onde se mostram 4 grafos (G1 a G4) do n umero de locks que as transac c oes T1 a T4 t em ao longo do tempo.

Indique quais os grafos que garantem escalonamentos recuper aveis, caso haja uma falha do sistema. Explique porqu e. (1,5 valores)

Folha 11 de 14

Bases de Dados 2007/2008

Aluno:

P agina para Rascunho

Folha 12 de 14

Bases de Dados 2007/2008

Aluno:

P agina para Rascunho

Folha 13 de 14

Bases de Dados 2007/2008

Aluno:

P agina para Rascunho

Folha 14 de 14