Licenciatura em Engenharia Informática e Computação
Laboratório de Bases de Dados
Ano lectivo 2002/2003

Trabalho Prático

1. Objectivo e Prazos

O trabalho pretende:

O Relatório de Especificação e Análise será entregue até ao dia 2003-03-27, às 17:00, com a especificação detalhada e a modelação da situação. Atrasos serão penalizados com um valor por dia. A sua "aprovação" decorrerá na aula seguinte.

O Relatório Final será entregue até ao dia 2003-05-30, às 17:00, decorrendo a sua avaliação nas duas aulas seguintes.

Será ainda avaliado o sítio Web do grupo de projecto.

2. Sítio Web

Contém a apresentação do projecto e da equipa de projecto, o historial do projecto e acesso à informação produzida no âmbito do projecto (nomeadamente aos artefactos: documentos e produtos). Contém ainda a apresentação promocional da aplicação desenvolvida.
A informação a disponibilizar no sítio Web divide-se entre a página de projecto, contendo a apresentação, a equipa, o historial, ligações para os artefactos, e a página da aplicação, contendo a apresentação, a promoção e a utilização do produto desenvolvido.

3. Relatório de Especificação e Análise

  1. Introdução. Motivação, objectivos e estrutura do trabalho.
  2. Descrição do Problema. Descrição sucinta do problema analisado.
  3. Modelo Organizacional. Apresentação do respectivo modelo organizacional (organigrama e diagramas de processos)
  4. Modelo Entidade-Associação. Identificação dos conjuntos de entidades, seus atributos e respectivos domínios. Definição das chaves das entidades. Identificação das associações, sua funcionalidade e carácter de obrigatoriedade. Registo de outras restrições de integridade que tenham que ser satisfeitas por cada instância da BD.
  5. Diagrama de Hierarquia de Funções.
  6. Tradução para um Esquema Relacional. Estudar a normalização do esquema obtido.
  7. Conclusões e Perspectivas de Desenvolvimento. Que conclusões retira da realização deste trabalho? Como o poderia continuar?
  8. Bibliografia
  9. Anexos.

4. Relatório Final

  1. Instância Exemplo. Definição de uma instância exemplo e sua implementação numa BD relacional.
  2. Definição de Triggers. Definição de triggers específicos, para além dos gerados automaticamente pela ferramenta.
  3. Consultas. Produção de consultas (cerca de 5), recorrendo a SQL, de variados graus de dificuldade.
  4. Interface Gráfica. Produção da interface gráfica mais adequada, em formulários autónomos ou na Web a partir da especificação gráfica de módulos e menus.
  5. Casos de Teste. Elaboração de Casos de Teste para os aspectos mais significativos do trabalho.
  6. Conclusões e Perspectivas de Desenvolvimento. Que conclusões retira da realização deste trabalho? Como o poderia continuar?
  7. Bibliografia
  8. Anexos.

5. Temas Propostos

P1/ Sistema integrado para gestão da biblioteca

O sistema de informação a desenvolver deve permitir interacção através do uso da Internet e a troca de e-mail com os seus utilizadores. Deverá ser possível requisitar livros via Internet e receber o aviso de levantamento no caso de o livro estar disponível e lembrar aos infractores os prazos de entrega via e-mail. Também deve ser possível procurar livros na biblioteca da faculdade e saber a sua localização, isto é, se estes se encontram nas bibliotecas dos departamentos ou na biblioteca central.

P2/ Registo histórico de um jornal

Esta aplicação deverá ser capaz de manter toda a informação relevante de anteriores edições de um jornal. A informação a guardar conterá, entre outras, a notícia, a secção onde se encontra, a edição em que saiu, palavras-chave relativas à notícia, os autores, fotos referentes à notícia, etc. Deve permitir uma consulta por tópicos, datas, relacionamento entre notícias (como threads nos newsgroups), autores, etc.

P3/ Gestão de Stocks

O sistema de informação deve gerir as compras de material, em termos de quantidade e preço, e as vendas, processando a factura em causa com actualização do material em stock. Deverá ainda manter informação sobre os fornecedores e sobre os clientes.

P4/ Rede de Lojas e Armazéns Informáticos

Pretende-se criar um sistema de informação para uma empresa de venda de materiais informáticos. Esta empresa é constituída por uma ou mais lojas e por um ou mais armazéns. Todos os dados relacionados com as lojas e os armazéns estarão num servidor central que será acedido pelos clientes (lojas, armazéns, Internet). As encomendas podem ser feitas nas lojas, ou através da Internet. As lojas também podem ser consideradas armazéns, embora com menor capacidade de armazenamento.

P5/ Bolsa de Emprego

Neste trabalho existirão dois tipos de utilizadores, as empresas e as pessoas, estejam elas desempregadas ou não. O objectivo da pessoa será o de encontrar um conjunto de empresas, às quais pense poder concorrer a uma vaga de emprego. O objectivo da empresa será o de encontrar candidatos que possam preencher vagas. O utilizador terá de preencher um questionário que será depois utilizado pela empresa, para encontrar o candidato. Esse questionário permitirá o preenchimento de uma série de campos de modo a permitir à empresa encontrar um candidato com as características que acha relevantes no futuro empregado, nomeadamente: faixa etária, habilitações académicas, localização geográfica, etc. Depois caberá a um motor de busca conseguir encontrar aquelas pessoas que se inserem no perfil do candidato que a empresa pretende. Ao utilizador, não empresarial, também será permitido tentar encontrar a empresa que mais lhe interessa, sendo também isto feito através da pesquisa de uma série de campos fornecidos pelas empresas. Será talvez interessante que exista uma parte no sistema de informação a desenvolver que mostre por exemplo o tempo médio que cada pessoa precisa de esperar até conseguir o emprego, ou então a taxa de sucesso de pessoas inscritas que conseguiram encontrar emprego através da bolsa, etc.

P6/ Gestão de uma cadeia de clubes de vídeo

Para a gestão de uma cadeia de lojas de vídeo onde é possível alugar e comprar filmes deve ser mantido um historial relativamente a todos os actos de um cliente (compras e alugueres de filmes) mantendo essa informação associada aos filmes enquanto estes se mantenham dentro da cadeia de lojas, isto é até serem vendidos.

P7/ Base de Dados de apoio Judicial

O Sistema de Informação a desenvolver destina-se ser pesquisado pelas forças policiais (e possivelmente, advogados e juízes), no intuito de lhes ser possível fazer uma investigação judicial mais rápida e de mais fácil acesso. Para isso a base de dados a implementar deverá conter informação sobre matrículas de carros, registo civil e registo criminal, cumprindo no entanto as regras sobre manutenção de informação (impostas por organismos governamentais), de índole privada, racial, etc., e sua possível divulgação pública.

P8/ Central de Marcações para Eventos Culturais

Pretende-se guardar a informação relevante acerca dos diferentes eventos culturais da cidade do Porto (CMP), permitindo marcações de lugares para as diferentes ocorrências de um mesmo evento, tendo em atenção aos lugares vagos. Deve ainda permitir o preenchimento de um pedido/formulário para adicionar eventos à base de dados, pedido que deverá ser sujeito a confirmação por parte do administrador da BD.

P9/ Colocação de alunos no Ensino Superior

Pretende-se construir um Sistema de Informação que trate das colocações de alunos no Ensino Superior. Deverá manter informação acerca dos dados pessoais dos respectivos concorrentes, escola onde completaram o secundário, respectivas notas e opções. Cada faculdade terá um número limitado de cursos, um curso por sua vez terá um número limitado de vagas. A partir daí os alunos irão preencher uma vaga (referente a um curso) conforme as suas opções e as suas notas. Posteriormente poderão ser fornecidas estatísticas variadas.

P10/ Sistema de Apoio a Testes de Medicamentos

A aplicação a desenvolver deverá ajudar uma empresa na área de farmacologia, que recebe a visita de várias pessoas que se oferecem como voluntários para testar o potencial de certos medicamentos. Cada voluntário é registado na secretaria da empresa, tendo para isso que preencher uma ficha onde constará o seu nome, morada, telefone e grupo etário. De seguida é feito um exame médico inicial para diagnosticar a sua doença. Na mesma ficha é assim registado o nome e a gravidade da doença. Esta última medida é quantificada como uma percentagem. De acordo com cada doença é estudado um plano de visitas. Em cada uma delas o voluntário é reexaminado para verificar a evolução dos sintomas com o tratamento. A gravidade da doença é registada e é administrada uma dose de um conjunto de medicamentos.

P11/ Inventário de software

O sistema de informação deve permitir identificar a localização de determinado programa, nomeadamente o(s) computador(es) e a(s) sala(s) onde se encontra instalado ou donde se pode aceder. Esta consulta deve também ser possível a partir de uma página Web. Deve ser possível a actualização dos dados sempre que for instalado/removido qualquer programa ou pacote de software. Deve ser tida em conta ao apresentar a listagem requerida quais os computadores a que o utilizador em questão tem acesso (alternativamente pode-se pedir uma listagem geral para o utilizador saber a que computadores tem que pedir acesso).

P12/ Stand de Automóveis

Implementar uma base de dados que contenha toda a informação necessária para a compra e venda de viaturas (carros e motas) novos e usados e que mantenha e actualize informação acerca dos principais clientes. Esta base de dados pretende mostrar ao utilizador todas as características do veículo que ele pretende adquirir (incluindo um fotografia do artigo disponível). Vai poder diferenciar dois tipos de utilizador: normal e administrador, atribuindo a este uma password de acesso, que lhe permitirá acesso à lista de clientes bem como alterar (eliminar ou introduzir) novos veículos.

P13/ Receitas de culinária

O Sistema de Informação deve guardar informação sobre os custos, duração e passos de cada receita. Cada passo tem uma ordem, uma duração, uma descrição e facultativamente uma foto. Uma receita pode ser classificada como pertencendo a um conjunto de sub-categorias e as sub-categorias estão agrupadas em categoria (exemplo.: de categorias: Nacionalidade, Ementa; exemplo de sub-categorias: Portuguesa, Mexicana, Carne, Peixe). Uma receita contém ingredientes numa determinada dose e numa determinada medida. Guarda-se informação sobre os locais onde podem ser adquiridos os ingredientes e sobre o último preço.

P14/ Empresa de publicidade

Pretende-se guardar a programação dos diferentes canais de televisão e rádio. Os programas têm um nome, duração e tipo (cultural, entretenimento, informativo, publicitário, etc.). Cada programa pode ter nos seus intervalos vários spots publicitários. Um spot pode ser repetido em diferentes horários de um ou mais canais. Pretende-se registar a programação dos diferentes canais bem como a audiência nos diferentes horários para elaboração de estatísticas. Interessa garantir que a programação não tem programas em horários sobrepostos.

P15/ Gestão de Grupos Artísticos

Desenhar e implementar um sistema de informação que contenha toda a informação sobre os sócios, grupos, instrumentos musicais e contactos. Este sistema de informação deve mostrar ao utilizador a ficha de sócio (diferenciando o sócio efectivo, numerado e o auxiliar). Cada sócio está ligado a um ou mais grupos, podendo dentro do grupo ter uma categoria diferente ( ex numa Tuna existem 2 categorias: Tuno e Caloiro). A base de dados deve diferenciar dois tipos de utilizador: normal e administrador, atribuindo a este uma password de acesso, que lhe permitirá acesso à lista de sócios bem como alterar (eliminar ou introduzir) novos sócios.

P16/ Empresa de Equipamentos Industriais

Implementar uma base de dados que contenha toda a informação necessária para a compra, venda e aluguer de equipamentos industriais de armazenamento (empilhadoras, porta-paletes, stackers) e que mantenha e actualize informação acerca dos principais clientes. Esta base de dados pretende mostrar ao utilizador todas as características do equipamento que ele pretende adquirir (incluindo um fotografia do artigo disponível). Vai poder diferenciar dois tipos de utilizador: normal e administrador, atribuindo a este uma password de acesso, que lhe permitirá acesso à lista de clientes bem como alterar (eliminar ou introduzir) novos equipamentos industriais.

P17/ Companhia de Seguros

Suportar a actividade de uma companhia de seguros, nomeadamente os clientes, apólices e recibos correspondentes.
Pretende-se poder criar clientes (particular ou empresa) com os seus dados pessoais (nome, morada, bi, carta de condução,...) e manter apólices para esses clientes. Uma apólice tem informação acerca do tomador do seguro (quem paga), um ou vários segurados, o ramo (automóvel, vida, ...), o risco coberto e as coberturas específicas do ramo.
Pretende-se emitir recibos (automaticamente relativamente à data de vencimento), registar a cobrar ou devolução (por erro ou por falta de pagamento). Um recibo passa por vários estados: emitido, pendente, (cobrado ou devolvido), liquidado à companhia. A aplicação deve funcionar na Web por forma a permitir ao Mediador de Seguros efectuar as operações de gestão da sua carteira.

P18/ The Football Game Report

The application will maintain the referee's report of a football game. The report includes the name of the stadium, the names of the teams, the names of the players, the score, the names of the referees and the cards shown during the game, and other relevant events. There will be 3 types of users: the administrator, the referee and the normal user. The referee will be responsible for introducing the report. Both the referee and the administrator will have a password.