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.