Mestrado em Engenharia de Computação: área de concentração Geomática Exercício Especial de Banco de Dados – 2007/01 Prazo Final para entrega: 17 de julho de 2007 1. Considere o esquema conceitual de Banco de Dados desenvolvido por você para um Sistema de Informações para Gestão de Bacias Hidrográficas. Á luz dos conhecimentos adquiridos na cadeira de Banco de Dados reproduza este esquema conceitual, cuidando para que todas es entidades e relacionamentos pertencentes ao domínio do problema estejam corretamente representados (Observação: Não complique demais o seu modelo conceitual - "small is beatiful"). Certifique-se também que o seu modelo não terá dificuldades de responder às consultas (queries) que lhe serão solicitadas. 2. Transforme o seu Modelo Conceitual em um Modelo Relacional, utilizando-se para isto do Algoritmo apresentado no jogo de transparências #5, slides 85 a 103. 3. A seguir, verifique as possíveis anomalias existentes em seu esquema, no caso de realizar operações de inserção, atualização e exclusão de registros na base de dados. Verifique também se existem violações às restrições de integridade do seu esquema. Aponte-as (as anomalias e as violações). 4. A existência de anomalias é um indício de que o seu esquema tem alguns problemas. Para saná-las tente: i) Aplicar as diretrizes informais de Projeto de Banco de Dados (vide transparências #8, slides 11 a 24); ii) Reduzir todas as tabelas de seu Esquema Lógico (Modelo Relacional) à 3a Forma Normal de Boyce-Codd (BCNF). Apresente agora um modelo já livre das referidas anomalias. 5. Implemente o seu modelo relacional em um Banco de Dados Relacional (ex.: Access, Postgres ou Personnal Oracle). 6. Formule agora, 10 consultas ao seu Banco de Dados sobre Gestão de Bacias Hidrográficas, mostrando, para um potencial cliente, a versatilidade da informação que você desenvolveu (Ex. – de uma query bem simples - Quais são os cidades existentes ao longo do rio XYZ?). i) Formule por escrito as consultas acima em: SQL; Álgebra Relacional; Query by Example (QBE); Cálculo Relacional de Tuplas; Cálculo Relacional de Domínios. ii) Implemente as consultas em seu Banco de Dados em SQL e Query by Example. Prof. Oscar Luiz Monteiro de Farias