You are on page 1of 3

Exame de época normal de Base de Dados

Universidade do Algarve, 08/Jan/2018


(duração: 2h30m)

Leia o enunciado com atenção antes de começar o exame. Não pode chamar o docente para lhe
ajudar a compreender o enunciado. A interpretação do texto faz parte da prova. A cotação de cada
pergunta aparece entre parêntesis. Boa sorte!

As perguntas deste exame dizem respeito a um problema que passamos a descrever de imediato.
Considere três relações/tabelas para uma base de dados que contem informação sobre cidades e
paı́ses do mundo inteiro.

• Continente( id, nome )

• Paı́s( sigla, nome, população, área, continente )

• Cidade( nome, paı́s, população )

A descrição acima apenas indica o nome dos atributos, não referindo qualquer tipo de chave(s).
O significado dos atributos é auto-explicativo, mas gostarı́amos de esclarecer o seguinte:

• Assuma que cada paı́s pertence a um e um só continente. (Na realidade tal não é verdade por-
que há paı́ses transcontinentais, como por exemplo a Turquia que tem parte do seu território
na Europa e parte na Ásia.)

• Na tabela Paı́s, o atributo população é especificado em milhões de habitantes, e o atributo


área em km2 .

• Na tabela Cidade, o atributo população é especificado por inteiro, em unidades.

• Assuma que não pode haver 2 cidades com o mesmo nome no mesmo paı́s, mas que tal é
possı́vel se os paı́ses forem distintos. A tı́tulo de exemplo, há Paris em França (que todos
conhecemos) e há Paris no Texas nos EUA (que poucos conhecem, mas existe).

1
Apresenta-se de seguida um pequeno excerto do conteúdo de cada uma das tabelas.

Continente
id | nome
----+---------
1 | Europa
2 | Asia
... | ...

Paı́s
sigla | nome | populaç~
ao | área | continente
-------+---------------------------+-----------+---------+------------
PT | Portugal | 10.32 | 92212 | 1
ES | Espanha | 46.56 | 505990 | 1
FR | Franca | 66.9 | 643801 | 1
IND | India | 1324 | 3287000 | 2
US | Estados Unidos da America | 323.1 | 9834000 | 4
... | ... | ... | ... | ...

Cidade
nome | paı́s | populaç~
ao
-----------+------+-----------
Faro | PT | 64560
Aljezur | PT | 5884
Paris | FR | 2244000
Paris | US | 25005
Barcelona | ES | 1609000
Madrid | ES | 3166000
New Delhi | IND | 21750000
... | ... | ...

Pergunta 1. (2 valores)
Especifique o esquema desta base de dados em SQL. Não altere o nome das relações/tabelas
nem dos atributos. Não se esqueça de indicar uma chave primária adequada para cada tabela,
bem como outro tipo de restrições que ache pertinentes.

Pergunta 2. (2 valores)
O esquema relacional com as 3 tabelas (Continente, Paı́s, Cidade) foi obtido através da con-
versão de um modelo UML (que lhe foi ocultado). Elabore esse modelo.

2
Pergunta 3. (1 valor)
Resolva em SQL: obter uma listagem do nome dos paı́ses e respectiva densidade populacional
(no de habitantes por km2 ), ordenado por order decrescente de densidade populacional.

Pergunta 4. (2 valores)
Resolva em SQL: obter todas as cidades africanas com mais de 1 milhão de habitantes. Deverá
listar o nome da cidade, a população, e o que paı́s em que a cidade se encontra.

Pergunta 5. (3 valores)
Resolva em SQL: obter o nome dos paı́ses que não têm nenhuma cidade com mais de 1 milhão
de habitantes.

Pergunta 6. (3 valores)
Resolva em SQL: obter o nome dos paı́ses que têm pelo menos 5 cidades com mais de 1 milhão
de habitantes.

Pergunta 7. (1,5 valor)


Altere o modelo UML feito na Pergunta 2 de modo a incorporar fronteiras entre paı́ses. Note
que um paı́s pode fazer fronteira com vários paı́ses. Não refaça o modelo todo. Especifique
apenas a parte que é alterada.

Pergunta 8. (1,5 valores)


Como é que a alteração feita na Pergunta 7 se reflecte em termos da estrutura da base de
dados? Isto é, que nova(s) tabela(s) é necessário introduzir? Especifique essa(s) nova(s)
tabelas em SQL.

Pergunta 9. (1+1+1+1 = 4 valores)


Imagine por absurdo que o esquema relacional da base de dados que lhe foi dado ao inı́cio
deste exame consistia numa única tabela. Assim sendo até nos poderı́amos dar ao luxo de
prescindir dos atributos id (de Continente) e sigla (de Paı́s), uma vez que a sua existência
servia apenas para “ligar” as tabelas originais. Ou seja, terı́amos apenas uma tabela com os
seguintes 6 atributos:

• Cidade( nome, nomePaı́s, nomeContinente, populaçãoCidade, populaçãoPaı́s, áreaPaı́s )

(a) Esta opção seria uma boa abordagem? Justifique a resposta.

(b) Para a tabela Cidade com os 6 atributos acima especificados, indique todas as de-
pendências funcionais não triviais.

(c) Com base na alı́nea anterior indique se a tabela Cidade está numa das formas normais
que aprendeu durante a disciplina (BCNF ou 3NF). Justifique a resposta.

(d) Com que objectivos se realiza a normalização em bases de dados?

You might also like