Bases de Dados 1, Época de recurso 2003/04
DI- FCT/UNL
2004.02.06
6 de Fevereiro de 2004
Bases de Dados 1
Exame de Recurso, 2003/04
Duração: 3 horas (com consulta)
Grupo 1
Nota prévia: O enunciado deste grupo é intencionalmente vago. Ao responder deverá, sempre que
ache necessário, dizer o que assumiu e que não estava detalhado no enunciado.
Por causa dos crescentes problemas de segurança, um dado país resolveu melhorar o seu
sistema de entrada e saída de estrangeiros nos vários postos fronteiriços. Para isso, decidiu criar uma
base de dados para armazenar a informação relevante. Por ora estão interessados em guardar a
informação mais relevante constante dos passaportes das várias pessoas que entram: o nome,
localidade onde reside, data de nascimento, nº do passaporte e, claro está, o país de que é nacional.
Sempre que possível, querem também guardar informação sobre o, ou os, cônjuges de cada pessoa.
Note que, estando as fronteiras abertas a nacionais de diferentes países, não se pode assumir que cada
pessoa tenha no máximo um cônjuge.
Além disso, a base de dados deve também conter alguma informação sobre os vários países.
Pelo menos a informação de qual é a religião dominante e qual o regime político.
Claro está que, para além da informação sobre pessoas e países, querem guardar informação
sobre as várias entradas e saídas. De cada uma delas querem saber em que data e em que posto
fronteiriço ocorreu. Há vários postos fronteiriços, em várias localidades, sendo que há vários tipos de
postos fronteiriços (aeroportos, portos, estrada, etc).
1 a)
Esboce um diagrama de entidades e relações para a base de dados.
1 b)
Com base nesse diagrama, apresente em SQL os comandos de criação das tabelas que
constituem a referida base de dados. Os comandos SQL deverão ter em conta todo o tipo de
restrições de integridade relevantes, devendo garantir automaticamente, por exemplo, a
integridade de referência.
1 c)
Como é de esperar, um estrangeiro não pode sair do país antes de ter entrado.
A sua base de dados já garante que só se podem introduzir saídas que tenham uma entrada
correspondente? Se sim, explique como o garante. Se não, explique sucintamente como teria
que a alterar para que passasse a garantir.
1 d)
Nos países em que a religião dominante é a católica, por lei cada pessoa só pode ter no
máximo um cônjuge.
Apresente o código dos “triggers” SQL necessários para garantir que não se podem associar
vários cônjuges a pessoas nacionais de um país de religião dominante católica.
1 e)
Com o passar do tempo, veio a verificar-se que o número de entradas e saídas por cada
pessoa era em regra muito baixo. Tendo isso em conta, e sabendo que o sistema de gestão da
base de dados utilizado dispunha de algumas características Objecto-Relacional, o serviço
de fronteiras do país decidiu alterar a estrutura da tabela de pessoas para que se guardasse
directamente nessa tabela a informação das várias entradas e saídas.
Apresente os comandos SQL necessários para a criação desta nova tabela de pessoas.
1 f)
Escreva uma expressão SQL que, a partir da base de dados Objecto-Relacional com a nova
tabela de pessoas, devolva a data da última entrada de cada uma das pessoas.
Página 1 de 2
DI-FCT/UNL
Bases de Dados 1, Época de recurso 2003/04
2004.02.06
Grupo 2
Para além da informação de entradas e saídas de estrangeiros, o serviço de fronteiras decidiu
também fazer uma base de dados com informação sobre os vários funcionários em cada posto
fronteiriço. Entre outras tabelas, criou uma com o seguinte esquema:
R = {Funcionario, Posto, Gabinete}
onde Funcionario denota o nome do funcionário, Posto o nome do posto fronteiriço, e Gabinete a
identificação de um gabinete onde os funcionários trabalham.
2 a)
Sobre este esquema há restrições que importa impor:
“Cada gabinete diz respeito apenas a um posto fronteiriço. Um funcionário pode trabalhar
em vários postos fronteiriços e, como tal, em vários gabinetes. Mas em cada posto
fronteiriço cada funcionário não poderá ter mais do que um gabinete”.
Apresente um conjunto de dependências funcionais que imponha estas restrições.
2 b)
Mostre através dum exemplo que, face a estas restrições, a relação R não evita redundâncias.
2 c)
Decomponha sem perdas o esquema R, por forma a obter um conjunto de esquemas na
forma normal de Boyce-Codd.
2 d)
O conjunto de esquemas que obteve garante a preservação das dependências? Justifique e,
caso a sua resposta seja negativa, apresente um conjunto de esquemas na 3ª forma normal
que garanta a preservação de dependências.
Grupo 3
As preocupações sobre a segurança levaram também o país a criar e manter uma base de
dados sobre as bases militares terroristas de que têm conhecimento via os seus serviços secretos. Essa
base de dados tem as seguintes relações (onde os atributos chave de cada relação estão sublinhados):
base({NomeBase,Pais,GPS})
armas_em({NomeBase,Organizacao,TipoArma,Quant})
armas({TipoArma,Classificacao})
A relação base armazena informação sobre o nome, país em que se situa e coordenadas GPS,
de cada uma das bases terroristas. Em cada uma dessas bases podem operar, e ter armas, uma ou mais
organizações terroristas. A informação sobre quais as organizações que têm que armas, e em que bases,
é armazenada na relação armas_em, onde cada tuplo expressa que numa dada base, uma dada
organização terrorista dispõe de uma certa quantidade de um dado tipo de armas (convencionais,
químicas, biológicas, nucleares, etc). A relação armas apenas contém uma classificação (tipo
“Destruição maciça”, “Baixo nível de ameaça”, etc) para cada um dos tipos de armas.
Apresente o código SQL correspondente a cada uma das expressões das alíneas de a) a d) (pode,
sempre que o entender, criar “views” com perguntas intermédias; pode também usar abreviaturas desde
que as explicite):
3 a)
3 b)
3 c)
3 d)
Onde estão as armas de destruição maciça do Iraque? Mais concretamente, em que bases
localizadas no Iraque há armas classificadas como de “Destruição Maciça”?
Nota: Qualquer resposta que devolva trivialmente uma relação vazia (como, por exemplo,
select * from armas where false), embora provavelmente correcta, não será cotada.
Quais as organizações que dispõem de armas químicas e, para cada uma delas, qual a
quantidade total de armas químicas?
Quais as bases terroristas que têm mais armas químicas do que qualquer uma das bases em
que opera a Al Qaeda?
Quais as organizações que não têm armas nucleares em nenhuma das bases onde operam,
mas que estão presentes em bases localizadas em países onde há armas nucleares?
3 e)
Apresente uma expressão em álgebra relacional que corresponda à pergunta da alínea 3 c).
3 f)
Apresente uma expressão em Datalog que corresponda à pergunta da alínea 3 d).
Página 2 de 2
DI-FCT/UNL
Download

Recurso - centria