Trabalho 3: Prática com tecnologias de BD
Objetivos
O principal objetivo deste trabalho é exercitar o uso de tecnologias relacionadas a bancos de dados, resolvendo problemas e usando ferramentas à escolha dos estudantes.
Metodologia
- Este trabalho será realizado individualmente ou em duplas.
- A proposta de tema do trabalho deve ser feita até dia 24/11/08 por e-mail à professora. A proposta deve conter:
- Nome do(s) aluno(s)
- Problema a ser resolvido: título, descrição geral, requisitos funcionais e requisitos de dados
- Ferramentas e recursos a serem utilizados
- A proposta deve ser aprovada pela professora.
- Requisitos que devem ser preenchidos por todas as propostas:
- Modelagem conceitual para o problema.
- Criação do esquema do banco de dados.
- Implementação de operações básicas de inserção, leitura, alteração e remoção de dados (Create/Read/Update/Delete - CRUD) sobre o banco de dados.
- Implementação de uma interface gráfica (desktop ou Web).
- Utilização de tecnologias adicionais àquelas empregadas no segundo trabalho (por exemplo, usar triggers e visões, trabalhar com permissões para múltiplos usuários, usar outros SGBDs, etc.).
Sugestões
- Sugestões de problemas (títulos):
- Desenvolvimento de banco de dados de pontos turísticos
- Desenvolvimento de Banco de dados de ofertas de emprego/estágio
- Comparação de desempenho de operações básicas em diferentes SGBDs
- Comparação de alternativas de desenvolvimento para uma mesma aplicação de banco de dados
- Utilização de mapeamento objeto-relacional
- Utilização de bancos de dados orientados a objeto
- Utilização de ferramentas do Google para bancos de dados
- Representação de hierarquias em bancos de dados relacionais
- Representação de especializações/generalizações em bancos de dados relacionais
- Desenvolvimento de ferramenta para auxílio ao uso de SGBD
- Sugestões de ferramentas:
- Linguagens: Java, PHP, Python
- SGBDs: PostgreSQL, Apache Derby, MySQL, SQLite, ZODB
- Frameworks de mapeamento objeto-relacional: Hibernate, Java Persistence API (JPA)
- Frameworks de desenvolvimento Web + BD: Grails, Seam, Django, Symfony, Google App Engine
Instruções para entrega
- O trabalho deve ser inserido no portfolio de cada aluno até dia 08/12/08.
- Este componente do portfolio deve ser estruturado conforme as instruções gerais para portfolios. A seção "Resultado" deverá conter no mínimo:
- modelo conceitual para o problema
- esquema do banco de dados
- código-fonte dos programas desenvolvidos
- exemplos de uso dos programas desenvolvidos
Material de apoio
- Sessões técnicas da Escola Regional de Banco de Dados
Vários exemplos de trabalhos (alguns requerem conhecimentos que ultrapassam os objetivos da disciplina). - Hibernate
Framework para mapeamento objeto-relacional. - Java Persistence API (JPA)
Outro framework para mapeamento objeto-relacional. - Grails
Framework para desenvolvimento rápido de aplicações Web em Java(-like). Usa Hibernate para mapeamento objeto-relacional. - Seam
Outro framework para Java. - Django
Framework Em Python para desenvolvimento rápido de aplicações Web. Possui solução própria de mapeamento objeto-relacional. - Symfony
Framework em PHP para desenvolvimento rápido de aplicações Web. Possui solução própria de mapeamento objeto-relacional. - Google App Engine
Solução do Google para desenvolvimento de aplicações Web. O banco de dados é manipulado com a linguagem GQL (Google Query Language).