Projecto de Bases de Dados (Parte 3) 1 Objectivos

Propaganda
IST 2009
Projecto de Bases de Dados (Parte 3)
O projecto da disciplina de Bases de Dados consiste no desenho e implementação de
uma base de dados para uma aplicação a ser usada na rede social chilltime.com. Pretendese implementar uma base de dados no sistema PostgreSQL e desenvolver um conjunto
de consultas em SQL. Adicionalmente, pretende-se que seja desenvolvida uma camada
aplicacional em PHP de interface com o utilizador.
Este enunciado corresponde à terceira parte do projecto.
1
Objectivos
A aplicação a desenvolver deverá usar a base de dados criada na parte 2 do projecto.
A camada aplicacional será implementada em PHP. Os scripts PHP ficarão alojados no
cluster sigma e serão invocados dentro do ambiente da rede social chilltime.com.
1.1
Preenchimento de inquéritos
A aplicação deverá permitir que os utilizadores dessa rede social respondam a inquéritos
criados por outros utilizadores. Para isso é necessário gerar dinamicamente a interface
gráfica em HTML para cada inquérito existente na base de dados. Depois será necessário
processar as respostas do utilizador ao inquérito, armazenar essas respostas na base de
dados, calcular a pontuação total obtida no inquérito, e publicar o resultado final do
inquérito como uma “novidade” na página de perfil do utilizador.
1.2
Desenvolvimento de inquéritos
Pretende-se que a aplicação suporte também o desenvolvimento de inquéritos, permitindo
a criação, edição e remoção de inquéritos. Isto significa poder criar, editar e remover
perguntas do inquérito, bem como poder criar, editar e remover as respostas possı́veis
para cada pergunta, seja de escolha múltipla ou de texto. Estas funcionalidades devem
estar disponı́veis através da interface HTML da aplicação. Cada utilizador poderá criar
e modificar os seus próprios inquéritos; outros utilizadores só poderão preencher esses
inquéritos. A partir do momento em que um inquérito já tiver sido preenchido por um
utilizador, não devem ser permitidas modificações nem a remoção desse inquérito.
1.3
Optimização da base de dados
Um terceiro aspecto importante desta parte do projecto diz respeito à utilização de ı́ndices
para optimizar as operações sobre a base de dados.
IST
Pág. 1 de 3
Bases de Dados
2
Funcionalidades
O trabalho a desenvolver nesta parte do projecto consiste nos seguintes itens.
2.1
Desenvolvimento da Aplicação
Usando a base de dados relacional criada na parte anterior do projecto, deve criar uma
aplicação com as seguintes funcionalidades:
(a) Geração dinâmica em PHP do formulário HTML para preenchimento de um inquérito
existente na base de dados;
(b) Submissão, processamento e armazenamento das respostas do utilizador a um inquérito;
(c) Cálculo em SQL da pontuação e do resultado final do inquérito e apresentação do
resultado ao utilizador via interface HTML;
(d) Publicação do tı́tulo e do resultado final do inquérito no perfil do utilizador na plataforma chilltime.com;
(e) Criação de um novo inquérito, perguntas e respostas possı́veis via interface HTML;
(f) Alteração de inquérito existente, perguntas e respostas possı́veis via interface HTML;
(g) Apresentação em HTML dos 10 utilizadores com maior pontuação num dado inquérito;
(h) Uma funcionalidade extra à escolha que seja útil neste domı́nio de aplicação e que
envolva PHP, HTML e SQL.
Todas as funcionalidades devem procurar tirar o máximo partido da linguagem SQL,
ou seja, devem ser utilizadas sempre que possı́vel consultas SQL em vez código aplicacional
em PHP ou código procedimental em PL/pgSQL.
2.2
Índices e optimização
Assuma que nenhum ı́ndice foi criado para as tabelas da base de dados. Para cada consulta SQL que utilizou na aplicação especifique qual ou quais os ı́ndices apropriados para
optimizar o seu processamento. Em particular, indique para cada consulta:
(a) Quais os atributos indexados;
(b) Se o ı́ndice é primário ou secundário e se deve ser denso ou se pode ser esparso;
(c) Se o ı́ndice é do tipo b-tree ou do tipo hash;
(d) Qual a instrução SQL necessária para criar o ı́ndice.
Justifique as suas escolhas. Assuma que a optimização de uma consulta é independente da
optimização das restantes.
IST
Pág. 2 de 3
Bases de Dados
3
Relatório e Avaliação
O relatório a entregar deve começar com uma folha de rosto com a indicação “Projecto
de Bases de Dados, Parte 3”, o nome e número dos alunos, o número do grupo e o
turno a que o grupo pertence.
O relatório deve ser entregue em duas versões:
(a) Versão electrónica em formato PDF entregue via Fénix até às 23h59 do dia 5 de
Dezembro de 2009;
(b) Versão impressa entregue na primeira aula de laboratório após o prazo anterior. As folhas impressas devem ser simplesmente agrafadas, sem encadernação.
Atenção: Na aula de entrega da versão em papel será necessária a presença dos
elementos do grupo para mostrar o projecto a funcionar.
O relatório terá uma classificação de 0 a 20 valores de acordo com a seguinte cotação:
• Implementação da visualização e do preenchimento de inquéritos, com cálculo e publicação do resultado final incluı́dos: 8 valores
• Implementação da criação e edição de inquéritos: 4 valores
• Implementação do top 10 e das funcionalidades extra: 4 valores
• Criação e justificação dos ı́ndices: 4 valores
O relatório não deve conter o conteúdo da base de dados, nem os dados usados para
testes, nem os resultados das consultas SQL.
IST
Pág. 3 de 3
Download