Mestrado em Engenharia de Computação: área de concentração Geomática Exercício Especial de Banco de Dados – 06.08.2004 Prazo Final para entrega: início das aulas do 20 semestre 1. Considere o esquema conceitual de Banco de Dados desenvolvido por você para a "Goldfish - Distribuidora de Peixes Ornamentais". Á 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 existe 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. Agora, a sua versão de esquema para a "Goldfish", deveria ser capaz de responder às consultas abaixo: a) Selecione os clientes de "Goldfish", localizados nos Estados de São Paulo e Rio de Janeiro, que encomendaram exemplares do peixe "Silver Blue", durante o ano de 2000. b) Que peixes são incompatíveis com o "Silver Blue", i.e., ocorrem cenas de canibalismo se deixados juntos em um mesmo aquário? c) Quantos exemplares "Eagle Fish" foram encomendados pelos clientes de Minas Gerais durante o ano de 2000? d) Quais os tipos de peixes que comem a ração "Funny Flies "? e) Em cada estado da federação, qual o total de cada tipo de peixe comercializado por "Goldfish" durante o ano de 2000? f) Quais são os fornecedores de "Goldfish" que fornecem os tipos de peixes "FriendofTurtles", "QueenofAmazon"? g) Qual o fornecedor de "Goldfish" que dispõe da maior variedade de peixes, i.e., peixes de diferentes espécies? h) Qual o tipo de peixe que foi mais solicitado pelos clientes de "Goldfish"? i) Dado os peixes "P1", "P2" e "P3", que rações e em que quantidades deveriam ser fornecidas aos mesmos? j) Quais os países que fornecem o peixe "Prare"? Caso o seu esquema não esteja apto a responder às consultas acima altere-o para capacitá-lo a tal. A seguir i) Formule por escrito as consultas acima em: SQL; 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. Observação! Se você realmente fizer todos os exercícios acima estará, sem dúvida alguma, apto na cadeira de Banco de Dados! Prof. Oscar Luiz Monteiro de Farias