Disciplina do 5º Semestre (turno Diurno)
Carga Horária: 60h
Sala: Lab3 Lab4 | Sala 148
Horários: Quarta (09:00–11:00) e Sexta (09:00–11:00)
Planilha de notas e frequência:
Lista de discussão:
https://groups.google.com/d/forum/bd_manha_2017-1
Clique em Inscrever-se para associação, selecione a opção Receber um e-mail para cada nova mensagem e depois clique em Solicitar para participar deste grupo.
E-mail da lista: bd_manha_2017-1@googlegroups.com
Cronograma:
Projeto da disciplina: (sem reposição)
ETAPA 0 - Proposta (08/09)
Cada grupo (em no máximo trios) deve definir um "minimundo" para o qual seria útil um software para gerenciamento de dados. Exemplos: Agência de Viagens, Bar, Concessionária, Escola, Farmácia, Imobiliária, Madeireira, Mercado, Mortuária, Panificadora, Pet Shop, Restaurante, Universidade.
Nesta etapa, o grupo deve agir como um "cliente" que está pensando em informatizar seu negócio ("minimundo"), mas não entende muito de Computação/BD.
ATENÇÃO! As entregas das etapas do projeto serão feitas da seguinte forma: cada equipe deve colocar seus arquivos em uma pasta compartilhada com o professor e o monitor da disciplina (via Google Drive), colocando o link da pasta compartilhada neste documento.
Arquivo esperado para esta etapa: ProjetoBD_Aluno1_Aluno2_Aluno3
Documento Google na pasta compartilhada com uma página de Capa (identificação da equipe e do minimundo modelado) e uma página com a descrição do "minimundo".
ETAPA 1 - Esquema Entidade e Relacionamento (22/09 24/09)
Com base na proposta (Etapa 0), o grupo deve começar a projetar um banco de dados, elaborando um Esquema Entidade e Relacionamento (lembrem-se do Dicionário de Dados).
Usar o brModelo para elaborar o esquema.
Arquivos esperados para esta etapa: EsquemaConceitual_Aluno1_Aluno2.brM e ProjetoBD_Aluno1_Aluno2_Aluno3 (atualizado)
O Documento Google deve ser atualizado nesta etapa, seguindo uma estrutura de relatório: Capa (identificação da equipe e do minimundo modelado); Introdução (apresentação geral do minimundo modelado e do trabalho realizado até o momento); Desenvolvimento (além de uma seção com a Etapa 0, criar uma seção com esta Etapa 1, abrangendo a imagem do esquema entidade e relacionamento, além de uma explicação sobre o esquema, incluindo o Dicionário de Dados); Conclusão; Referências.
ETAPA 2 - Esquema Relacional (13/10)
O grupo deve transformar o Esquema Entidade e Relacionamento da Etapa 1 em um Esquema Relacional (normalizado! 1FN, 2FN, 3FN).
Devem ser apresentados também dados em tabelas, para ilustrar o esquema criado. Exemplo aqui.
OBS.: Nesta etapa, é necessário apenas o esquema textual (o diagramático será na próxima etapa, usando o MySQL Workbench).
Arquivo esperado para esta etapa: ProjetoBD_Aluno1_Aluno2_Aluno3 (atualizado)
O Documento Google deve ser atualizado nesta etapa, mantendo a estrutura de relatório: Capa (identificação da equipe e do minimundo modelado); Introdução (apresentação geral do minimundo modelado e do trabalho realizado até o momento); Desenvolvimento (além das seções com a Etapa 0 e a Etapa 1 — incluindo possíveis mudanças —, criar uma seção com esta Etapa 2 para colocar o esquema relacional textual, além da explicação das decisões tomadas ao transformar o esquema conceitual em um esquema lógico, as tabelas exemplificando o esquema relacional, e comentários relativos à garantia do esquema normalizado); Conclusão; Referências.
ETAPA 3 - Criação de Tabelas e Inserção de dados no MySQL (24/11)
Utilizando o MySQL Workbench, crie tabelas e insira alguns dados, com base no Esquema Relacional da Etapa 2.
Arquivos esperados para esta etapa: EsquemaLogico_Aluno1_Aluno2_Aluno3.mwb (esquema diagramático para criação das tabelas), TabelasEInsercoes_Aluno1_Aluno2_Aluno3.sql (com a criação das tabelas e as inserções, incluindo criação do esquema) e ProjetoBD_Aluno1_Aluno2_Aluno3 (atualizado).
O Documento Google deve ser atualizado nesta etapa, mantendo a estrutura de relatório: Capa (identificação da equipe e do minimundo modelado); Introdução (apresentação geral do minimundo modelado e do trabalho realizado até o momento); Desenvolvimento (além das seções com a Etapa 0, a Etapa 1 e a Etapa 2, criar uma seção com esta Etapa 3 para realizar comentários sobre possíveis alterações e colocar o esquema relacional diagramático); Conclusão; Referências.
OBS.: Deve-se inserir, no mínimo, 10 tuplas em cada tabela.
ETAPA 4 - Consultas (13/12)
Com base no BD projetado nas etapas anteriores, cada grupo deve implementar consultas a serem definidas pelo professor/monitor, além de pelo menos mais 5 criadas pelo grupo (será considerado o nível de dificuldade destas consultas!). Das consultas elaboradas pelo grupo, 2 delas devem também ser respondidas utilizando Álgebra Relacional.
Arquivo esperado para esta etapa: ProjetoBD_Aluno1_Aluno2_Aluno3 (atualizado)
O Documento Google deve ser atualizado nesta etapa (nova seção: Etapa 4), contemplando a descrição e código em SQL correspondente a cada consulta elaborada pelo professor/monitor, além das elaboradas pelo grupo. Lembrar que, em 2 das consultas elaboradas pelo grupo, deve-se colocar, além de SQL, o correspondente em Álgebra Relacional.
OBS.: Atualizar o arquivo TabelasEInsercoes_Aluno1_Aluno2_Aluno3.sql (da Etapa 3) para contemplar possíveis inserções/alterações nas tabelas.
ETAPA 5 - Conexão entre o BD projetado e Java (15/12)
Usar JDBC para integrar o BD projetado nas etapas anteriores com um aplicativo simples, usando Java, por meio do qual seja possível inserir, atualizar, deletar e listar dados referentes ao "minimundo" proposto na Etapa 0.
Usar Interface Gráfica (sugestão: uso do plugin WindowBuilder para Eclipse), criando, portanto, uma versão alpha do software que o "cliente" descreveu na Etapa 0.
Deve ser possível também realizar algumas consultas da Etapa 4.
Esta etapa deve ser apresentada em sala! (levar notebook ou configurar o projeto nos computadores do laboratório; sugestão: gravar screencast).
Ementa:
Conceitos Básicos: Arquitetura de um Sistema de Banco de Dados, Modelos de Dados, Linguagens de Definição e Manipulação de Dados. Modelagem de Dados. Modelos de Dados: Relacional, Hierárquicos e de Redes. Projeto de Banco de Dados Relacional: Dependência Funcional, Chaves, Normalização, Visões, Integração de Visões. Abrindo uma conexão com um SGBDR (JBDC). Executando comandos SQL. Transações. Otimização de Consultas. Controle de Concorrência. Controle de Integridade. Segurança.
Bibliografia: (indicada na ementa do curso, disponível aqui)
Abreu, Maurício Pereira; Machado, Felipe Nery. Projeto de Banco de Dados: Uma visão prática. 16ª Edição. Editora Érica. 2009.
Alves, Willian Pereira. Fundamentos de Banco de Dados. Editora Érica. 2004.
Cerícola, Vincent Oswald. Oracle: Banco de Dados Relacional e Distribuído. Ed Makron Books. 2005.
Date, C. J. Uma Introdução aos Sistemas de Bancos de Dados. Editora Campus. 8ª edição. 2004.
Garcia-Molina, Hector; Ullman, Jeffrey D.; Widom, Jennifer D. Database Systems: The Complete Book. Prentice Hall. 2st edition, 2008.
Oracle USA, Inc. MySQL 5.6 Reference Manual. Disponível em: <http://dev.mysql.com/doc/refman/5.6/en/>. Acesso em: 01 de Agosto de 2011.
Silberschatz, Abraham; Korth, Henry F., Sudarshan, S. Sistema de Banco de Dados. 5ª Edição. Ed. Campus. 2006.
Outras referências e links úteis:
Livros-texto:
HEUSER, C. A. Projeto de banco de dados. 6. ed. Porto Alegre : Bookman, 2009. 282p. ISBN: 978-85-7780-382-8.
ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. 6. ed. São Paulo: Pearson Addison Wesley, 2011. ISBN: 978-85-7936-085-5.
brModelo (ferramenta para ensino de modelagem em banco de dados relacional)
Material do Prof. Cláudio Baptista (UFCG)
Apostila Caelum: Bancos de dados e JDBC
Apostila K19: SQL e Modelo Relacional
ProgramAR (ferramenta para o ensino da Álgebra Relacional)
MySQL:
Download MySQL Installer (verifiquem no diretório MySQL se foi instalado o Connector J e o MySQL Workbench)
Manual de Referência do MySQL 4.1 [em português]) (é interessante a leitura especialmente dos Capítulos 3 e 6)
Manual do MySQL Workbench [em inglês]