Exame de 2007

Propaganda
Sistemas de Informação e Bases de Dados
Exame de 2008-01-22
Duração: 2h30
Durante o exame só é permitida a consulta do formulário fornecido e de uma folha A4 com apontamentos. Por favor responda à questão 1 separadamente das questões 2 e 3.
1. O gestor de uma pizzaria decidiu inovar e tornar disponível aos clientes a opção de seleccionarem os seus pedidos pela Internet para posterior entrega ao domicílio ou a partir da secção take­away do restaurante. A novidade é que os clientes podem escolher os ingredientes e confeccionar as suas próprias receitas. As características desejadas para o sistema são descritas a seguir:
•
Cada cliente registado será identificado pelo seu número de identificação fiscal (único), nome e morada. Todos estes dados serão obrigatórios.
•
Os clientes podem guardar no sistema as suas receitas de pizza. Uma pizza pode ser composta por vários ingredientes. Ao criar uma nova receita de pizza o cliente terá de obrigatoriamente atribuir um nome à sua criação. Um cliente não pode ter duas receitas com o mesmo nome.
•
Os ingredientes serão identificados pelo seu nome, e preço. O nome do ingrediente será único. É necessário ainda guardar a quantidade em stock de cada ingrediente.
•
Os clientes podem efectuar pedidos que podem ser de dois tipos: take­away ou entrega ao domicílio. Para cada pedido é necessário guardar a data e a hora em que este foi efectuado.
•
Um pedido é composto por várias receitas de pizza. Na altura do pedido o cliente pode escolher, para cada uma das receitas encomendadas, o tipo de massa (alta ou fina), o tamanho da pizza (pequena, média ou grande) e a quantidade.
a) (5 valores) Desenhe o diagrama Entidade­Associação para uma Base de Dados que satisfaça os requisitos enumerados. Escolha o nome mais apropriado para cada um dos atributos e tabelas que ache necessário. b) (4 valores) Elabore o diagrama Relacional correspondente ao diagrama Entidade­ Associação que acabou de desenhar. Não se esqueça de representar as chaves primárias, chaves estrangeiras, tipos dos dados e campos que não devem ter valores nulos Nota: Use a mesma notação usada na questão 2.
Exame de Sistemas de Informação e Bases de Dados (2008­01­22)
André Restivo e Rosaldo Rossetti
2. Considere a seguinte base de dados que representa a informação de uma loja online.
cliente num
Not Null
SERIAL
nome
Not Null
varchar
morada
Not Null
varchar
encomenda id
Not Null
SERIAL
data
Not Null
date
#numc
Not Null
integer
FK(cliente)
produto ref
Not Null
SERIAL
nome
Not Null
varchar
descrição
prod_enc #ref
Not Null
FK(produto)
text
#id
Not Null
FK(encomenda)
cidade
Not Null
varchar
preco
Not Null
numeric(7,2)
quantidade
integer
a) (4 valores) Responda às seguintes perguntas usando Álgebra Relacional:
1. Quais os produtos com um preço superior a 100 euros? (ref, nome)
2. Quais os produtos encomendados na véspera de Natal de 2007? (ref, nome)
3. Quais os produtos, e em que quantidade, encomendados pelo cliente com o número 456? (ref, nome, quantidade)
4. Quantos clientes encomendaram o produto com a referência 123? (numclientes)
Nota: No fim de cada alínea encontram­se os nomes esperados das colunas da resposta. Se preferir responder a estas questões em SQL, pode fazê­lo mas sujeito a uma penalização.
b) (5 valores) Responda às seguintes perguntas usando SQL:
1. Liste por ordem alfabética os clientes que moram no Porto. (num, nome)
2. Em que datas foram encomendados produtos por pessoas cujo nome começa por ‘João’? (data)
3. Qual a quantidade de vendas do produto com a referência 123? (qtdvendas)
4. Para cada produto, liste a sua referência, nome e o valor total das suas vendas (em euros). (ref, nome, total)
5. Que pessoas encomendaram todos os produtos encomendados pela pessoa com o número 234? (num, nome)
Nota: No fim de cada alínea encontram­se os nomes esperados das colunas da resposta. Se preferir responder a estas questões em Álgebra Relacional, pode fazê­lo mas sujeito a uma penalização.
Exame de Sistemas de Informação e Bases de Dados (2008­01­22)
André Restivo e Rosaldo Rossetti
3. Dadas duas transacções T1 e T2 cada uma delas executando as seguintes operações de leitura e escrita nos registos A e B:
T1 : r1(A); w1(A); r1(B); w1(B); T2 : r2(A); w2(A); r2(B); w2(B);
Indique, justificando, se o seguinte schedule é serializável:
r1(A); r1(B); w1(A); r2(A); w1(B); r2(B); w2(B); w2(A);
(fim)
Exame de Sistemas de Informação e Bases de Dados (2008­01­22)
André Restivo e Rosaldo Rossetti
Download