Projeto de Banco de Dados DIM0434 2010.2 RESALL Relatório Final Caio Eduardo Leonardo Teresa Histórico de Revisões Data <data mudança> da Versão 1.0 1.1 Descrição <Descrição alteração> da Autor <Autor(es) alteração> da 1. Visão do Sistema 1.1. Descrição da aplicação O RESALL(Resources All) é uma aplicação que foi desenvolvida por um grupo de alunos por do 4º período do curso de Bacharelado em Ciência da Computação pela Universidade Federal do Rio Grande do Norte (UFRN). A aplicação foi idealizada com base na dificuldade em administrar os recursos que são disponibilizados à professores pelo departamento de Informática e Matemática Aplicada, conhecido como DIMAP, localizado na UFRN. Esses recursos englobam materiais que, normalmente, auxiliam à didática de aula, como por exemplo, um Datashow, a reserva da própria sala de aula, um notebook, dentre outros. O problema abordado, no qual foi baseado o desenvolvimento do sistema, vai de encontro a tentar minimizar possíveis desorganizações na forma com que os recursos são reservados, e também sendo um meio pelo qual o professor e a secretaria, que gerencia de fato os materiais, possam manter comunicação a certa do estado do recurso, por exemplo, agilizando eventuais procedimentos. Procedimentos estes que pode estar relacionados a dificuldade em reservar recursos, escassez de recursos, falhas que o recurso pode apresentar e que devem ser manifestadas a secretaria, dentre outras dificuldades. Essa aplicação, portanto, tem o propósito de ser uma forma virtual de gerenciar recursos, a fim de facilitar os mecanismos de empréstimo e devolução dos mesmos. O RESALL é um sistema Web desenvolvido em Java, usando o JDBC para o desenvolvimento do banco de dados objeto-relacional, e a tecnologia de JSP (usando a API Servlets) para interação com o usuário. Sobre o RESALL foi desenvolvido um banco de dados. O BD utilizado foi projetado de forma a manter dados sobre os usuários cadastrados, reservas realizadas, recursos, penalidades atribuídas a determinados usuários, dados sobre quais recursos estão em manutenção, cadastro de reportes realizados mediante defeito no recurso e um log que registrará todos os acessos realizados no banco. O RESALL engloba possibilidades de cadastrar usuários, que podem realizar reservas, cadastrar recursos, registrar reserva, visualização possibilidades de reserva, visualização de penalidades do usuário e outras ações. De modo geral, o sistema possui um nível de permissão, que restringe ao(s) administrador(es) poder(em) realizar cadastros e remoção de dados do BD. Abaixo uma tabela com as funcionalidades propostas pelo sistema. Crie um texto que responda às seguintes perguntas de maneira precisa: Qual o problema que você quer resolver? Qual o contexto do seu problema? Quem é afetado com o problema? Que conseqüências tem o problema? Que solução seu sistema propõe? Qual o propósito de sua solução? Uma solução para o problema trará que benefícios? Por fim, descreva as funcionalidades do seu sistema. Se você fosse vender este produto para alguém, como você apresentaria ele para alguém em forma de texto e figuras? Faça aqui!!! 1.2. Usuários Nesta seção descreva os usuários do sistema. Nome Secretaria Descrição Administrador do sistema Professor Usuário comum – cliente - do sistema 1.3. Responsabilidade Cadastrar usuário, cadastrar cadastrar penalidades, visualizar cadastrar recurso em manutenção. recursos, reportes, Informações armazenadas Descreva textualmente que informações serão armazenadas pelo sistema? Dados e relacionamentos entre eles devem estar explicítios aqui, mas não necessariamente seu tipo. 1.4. Dicionário de dados Aqui você criará um repositório textual centralizado de informações tais como significado, relacionamentos para outros dados, uso, formato, comprimento, etc. A idéia do dicionário de dados é funcionar como uma base que pode ser consultada por alguém que, por exemplo, não entende o que determinada informação quer dizer com relação ao mini-mundo. 1.5. Operações Liste que operações de inserção e atualização serão oferecidas pelo seus sistema. Código - Funcionalidades RA001 – Buscar conteúdo RA002 – Reservar recurso RA003 – Reportar problema RA004 – Cancelar reserva RA005 – Situação do usuário RADM001 – Inserir recurso RADM002 – Remover recurso temporariamente (manutenção) RADM003 – Remover recurso RADM004 – Atribuir penalidade RADM005 – Inserir tipo de recurso RADM006 – Relatório de recurso RADM007 – Cadastrar usuário RADM008 – Relatório de usuário RADM009 – Remover usuário RADM010 – Retirada de recurso RADM011 – Devolução de recurso 1.6. Consultas Liste que consultas serão oferecidas pelo seus sistema. 1.7. Visões Liste que visões de usuários serão oferecidas pelo seu sistema e quais dados armazenados e dados derivados cada uma das visões terá acesso. Nome 1.8. Descrição Dados Acesso com Dados Restrição com Dados Derivados Restrições de integridade Liste aqui as restrições de integridade do dados a serem armazenados. Dentre os tipos de restrições temos tipos dos dados, e integridade de relacionamentos. 2. Modelagem ER A figura abaixo representa o modelo Entidade-Relacionamento do banco de dados implementado. Ele contem as seguintes entidades: Usuário que tem uma identificação, um nome, uma permissão que identifica se é um usuário comum ou um administrador e um login; Penalidade que tem uma duração e a data em que foi dada inicio; Log que possui uma identificação, uma descrição e uma operação que é equivalente as operações de acesso ao BD; Recurso que possui uma identificação; Manutenção que possui uma identificação e uma data em que o recurso entrou; Tipo que contem uma identificação e sua descrição. Ele ainda contem os relacionamentos, que são considerados os mais importantes, Reserva e Reporte que relacionam um usuário a um recurso. 3. Modelagem Relacional O mapeamento do modelo ER no modelo Relacional foi feito tendo como base nas seguintes regras básicas: 1. Caso exista algum atributo composto, serão usados as folhas da composição desse atributo para fazerem parte da relação; 2. Entidades fortes são mapeadas em uma nova relação contendo todos os seus atributos; 3. Entidades fracas são mapeadas em uma nova relação contendo todos os seus atributos, adicionado a chave estrangeira; 4. De modo geral, os relacionamentos podem ser mapeados de forma que uma nova relação, além das relações que são o resultado do mapeamento das entidades, seja criada de modo a conter os atributos chaves das “entidades” além dos seus atributos. Seguindo essas regras, o seguinte modelo relacional foi obtido e logo abaixo uma breve descrição de como cada relação foi mapeada. Como pode-se observar foram criadas 8 relações. As relações Usuário e Tipo foram obtidas seguindo a 2ª regra. Eram entidades fortes que foram mapeadas em novas relações com seus atributos. As relações Recurso e Penalidade adquiriram a chave estrangeira da relação Tipo e Usuário, respectivamente, par fins de identificação. O mapeamento foi feito com base na 2ª e 4ª regra. A relação Manutenção adquiriu a chave estrangeira da relação Recurso para poder identificar qual o recurso está em manutenção. As relações Reporte, Reserva e Log adquiriram chaves estrangeiras das relações Usuário e Recurso, para poder identificar qual Usuário realizou a operações a respeito de qual Recurso. Operação esta que é de reporte, de reserva ou de registro no log, respectivamente. 4. Normalização Modelo relacional inicial contendo as dependências funcionais de todas as relações. Decomposição das relações para que o modelo satisfaça as formais normais 1NF, 2NF, e 3NF 5. Implementação do BD Descrição dos SQL utilizados para criar o BD e fazer as consultas/alterações necessárias. 6. Aplicação Descrição da aplicação criada. Interface Uso Consultas Atualizações 7. Relatório Análise de todo o projeto contendo: 1. 2. 3. 4. 5. Dificuldades encontradas Que decisões foram tomadas O que você faria diferente? Quais as vantagens de algumas de suas decisões Outras informações pertinentes