Enunciado TP 2010/2011 1ºSem - Dei-Isep

Propaganda
INSTITUTO POLITÉCNICO DO PORTO
INSTITUTO SUPERIOR DE ENGENHARIA DO PORTO
DEPARTAMENTO ENGª INFORMÁTICA
EXERCÍCIO DE BDDAD - 2010-2011 - 1ºS.
Será realizado nas aulas práticas a partir de 04 de Novembro de 2010.
A componente do trabalho prático da disciplina corresponde a 40% da nota final.
Cada aluno pode ter uma classificação diferente da dos colegas de grupo, reflectindo
deste modo o seu desempenho no trabalho e na discussão do mesmo.
O trabalho será dividido em 3 fases:
1. Modelação e Implementação da BD
.a Elaborar o esquema relacional: envolve a identificação das entidades e
relações relativamente ao problema descrito e que poderá ser completado
e trabalhado pelos alunos. O modelo deve estar normalizado e deve
indicar explicitamente as escolhas efectuadas.
.b Criação da BD relacional: criar tabelas e restrições tendo em conta o
modelo de dados desenvolvido. Introdução de dados para exemplificação
de funcionamento. (utilização do SQL para criação das tabelas e inserção
dos dados).
2.
Produzir scripts em PL/SQL para questões com diferentes graus de
complexidade e exemplificativas do uso de todos os construtores da linguagem.
• Criar
• Criar
• Criar
• Criar
views
procedimentos armazenados e funções definidas pelo utilizador
triggers e garantir o seu cumprimento
listagens (para ecrã)
3. Relatório final
O relatório deverá conter uma capa contendo a seguinte informação:



Número de identificação do grupo
Tema do trabalho
Número e nome de todos os alunos do grupo
Do relatório deverá constar, pelo menos:





Uma secção com a descrição do tema e objectivos da base de dados;
Uma secção com o modelo de dados, contendo as opções tomadas;
Uma secção com o código SQL que criou as tabelas e restrições;
Uma secção com o código SQL usado para as views, triggers, stored
procedures e functions;
Uma secção contendo uma discussão de limitações/opções tomadas para
a implementação da BD.
Web Radio
Pretende-se informatizar uma emissora de rádio a funcionar via internet. A emissora,
para além da passagem de músicas, também pode vender aos seus clientes essas
mesmas músicas visto ter comprado os respectivos direitos de autor.
Todas as vendas têm de ser registadas. Após o pagamento (prever várias possibilidades,
tais como cartão de crédito, paypal, etc.) é sempre emitido um recibo, sendo o mesmo
enviado por email para a conta do cliente. O processo de compra deve ser implementado
através do mecanismo de “carrinho de compras”.
A vertente da passagem de músicas deve ser totalmente automática, baseando-se numa
programação prévia por intervalos temporais e géneros musicais pretendidos. Por
exemplo, das 11:00 às 15:00 deve passar 30% de rock, 20% soul, etc.
O site também permite que os utilizadores peçam músicas para eventualmente serem
passadas nas emissões. As músicas pedidas devem ser utilizadas na programação
automática. Por exemplo, podemos considerar que uma emissão deve ter pelo menos
10% de músicas que tenham sido pedidas pelos utilizadores, sendo o restante obtido
aleatoriamente da lista de músicas disponíveis no site.
O Top+ das músicas mais compradas também poderá ser incluído na programação
automática. O mecanismo para a sua inclusão na programação é idêntico ao das músicas
pedidas, ou seja, pode ser definida uma percentagem mínima para ser considerada.
Requisitos globais
Modelo relacional.
Script de criação do modelo de dados.
Script para inserir valores.
Requisitos particulares
Implementação de toda a lógica em Oracle PL/Sql.
Todo o trabalho poderá ser testado executando blocos de código PL/Sql e analisando a
saída para o ecrã.
1. Procedimento para registar uma “música pedida”. O utilizador não pode repetir a
mesma música num intervalo menor que 15 minutos.
2. Procedimento que permita adicionar uma música ao carrinho de compras de um
determinado utilizador. Se o carrinho de compras ainda não existe, a adição da
primeira música cria-o automaticamente.
3. Procedimento para fechar o carrinho de compras (gerar a factura).
4. Procedimento para registar o pagamento de uma factura (cartão de crédito, paypal,
etc).
5. Função que devolva o código da música mais passada num determinado período
horário.
6. Trigger que atribua um desconto ao valor de uma compra quando o cliente já
acumulou um determinado volume de compras (configurável).
7. View que devolva o Top+
8. Procedimento para efectuar a programação automática para um determinado dia.

(Valorização) Os processos descritos anteriormente têm associadas acções que
podem ser implementadas recorrendo a triggers. Serão valorizados os trabalhos que
os implementem.
Nota:
São permitidas alterações à descrição efectuada desde que seja no sentido de
clarificação do funcionamento do modelo.
Implementações extra ficarão ao critério de cada grupo de trabalho e serão devidamente
valorizadas. No entanto, só deverão ser implementadas após o que foi solicitado.
Download