UNIVERSIDADE FEDERAL DE MINAS GERAIS – ICEx, DCC
DCC011 - Introdução a Bancos de Dados
TRABALHO PRÁTICO 2

APRESENTAÇÃO: O objetivo deste trabalho é projetar e implementar um banco de dados relacional para uma pequena aplicação a ser definida por você. Para definição dessa aplicação, você deverá levar em consideração as características do banco de dados especificadas a seguir. O projeto desse banco de dados deverá seguir o processo apresentado em sala de aula, no qual, na fase de projeto conceitual, será criado um diagrama ER que descreva de forma precisa a aplicação considerada e, na fase de projeto lógico, esse diagrama será mapeado para um esquema relacional que descreva a estrutura de cada uma das relações (tabelas) que comporão o banco de dados e as restrições de integridade necessárias para garantir que esse esquema relacional seja uma representação do diagrama ER inicialmente criado. Definido o esquema relacional, o banco de dados correspondente deverá ser criado e instanciado com dados que permitam comparar o desempenho de diferentes consultas SQL. Essas consultas deverão ser especificadas de acordo com as características definidas abaixo e serem relevantes para a aplicação considerada.

CARACTERÍSTICAS BÁSICAS DO BANCO DE DADOS [até 30%]: O banco de dados relacional a ser implementado deverá ter o seu esquema derivado de um diagrama ER que contenha pelo menos 4 (quatro) tipos de entidade e 3 (três) tipos de relacionamento, sendo pelo menos 1 (um) deles com cardinalidade M:N. Além disso, cada tipo de entidade deverá possuir, além de sua chave (identificador), pelo menos dois outros atributos. Finalmente, pelo menos um tipo de entidade deverá incluir um atributo multivalorado e o tipo de relacionamento M:N (ou pelo menos um deles) deverá incluir pelo menos um atributo.

AS CONSULTAS [até 30%]: Deverão ser especificadas 10 (dez) consultas que, ao serem formuladas em SQL, possuam as seguintes características: duas envolvam apenas as operações de seleção e projeção, três envolvam a junção de duas relações, três envolvam a junção de três ou mais relações, e duas envolvam funções de agregação sobre o resultado da junção de pelo menos duas relações.

CARACTERÍSTICAS AVANÇADAS [até 40%]: Para fins de comparação de desempenho, cada consulta especificada deverá ser formulada de pelo menos duas formas diferentes considerando, por exemplo, opções como utilização ou não do operador JOIN, utilização ou não de consultas aninhadas, criação de índices para determinadas colunas, inversão da ordem das relações na cláusula FROM, entre outras. Para deixar os dados e as consultas ainda mais interessantes, o banco pode armazenar também dados de tipo não-convencional, tais como texto, imagens, som, vídeo, etc. Finalmente, além das 10 consultas obrigatórias, pode-se especificar consultas do tipo relatório (por exemplo, se for um banco de dados de vendas de produtos, um relatório seria composto por estatísticas sobre as vendas distribuídas por filial da loja).

PONTOS EXTRA: Serão concedidos pontos extra aos grupos que programarem a interface do website com acesso ao banco.

Observações:

  1. O trabalho deverá ser feito em dupla[*]. A constituição de cada dupla e das características do banco deverão ser entregues ao professor durante a aula do dia 14 de novembro.
  2. Poderão ser utilizados o ambiente MySQL Workbench (http://dev.mysql.com/workbench) para a modelagem dos dados e o SGBD MySQL (http://www.mysql.com) para implementação do banco de dados.
  3. A avaliação do trabalho será feita com base no relatório final entregue e na demonstração em aula. Além da funcionalidade básica prevista, a avaliação irá considerar a criatividade e a eficiência das consultas formuladas.
  4. Calendário:
    1. 14 de novembro - Entrega da proposta: nome da dupla + funcionalidades
    2. 27 de novembro - Entrega do relatório final na secretaria do DCC (sala 4010)
    3. 28 de novembro/03 de dezembro - Apresentação dos trabalhos (divisão a ser detalhada mais tarde)
    4. 04 de dezembro ao meio-dia - Última chance para tentar aumentar a nota do trabalho
  • [*] Os seguintes alunos podem trabalhar individualmente ou devem trabalhar entre si em dupla ou trio: ANDRE, BRUNO, GABRIEL, JEFFERSON, JULIO, LUCAS DUARTE, LUCAS MACIEL, LUIZ HENRIQUE, MARIANA e TULIO.
IBD Ecologicamente Correta. A proposta deverá ser entregue impressa ou escrita à mão e ter no máximo uma página. O relatório final deverá ser entregue impresso, de preferência frente-e-verso, e ter no máximo dez páginas. Evite gastar recursos com capa e contra-capa bem como com pastas plásticas. Para identificar o seu trabalho, utilize apenas um cabeçalho (como o desta especificação) seguido dos nomes dos alunos da dupla. O relatório final deve descrever as características do banco de dados criado e as consultas realizadas. Essas consultas devem ser definidas através de uma explicação textual e o respectivo comando SQL, acompanhado de algumas informações sobre o desempenho da mesma em relação a outras opções. O relatório final deve conter também uma avaliação da dupla. Nesse caso, um aluno da dupla deve avaliar o outro, e vice-versa.

Introdução a Bancos de Dados