Universidade Federal do ABC Rua Santa Adélia, 166 - Bairro Bangu - Santo André - SP - Brasil CEP 09.210-170 - Telefone/Fax: +55 11 4996-3166 1. CÓDIGO E NOME DA DISCIPLINA MC3310 - BANCO DE DADOS 2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) Algoritmos e Estruturas de Dados I 3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória 4. CURSO 5. CRÉDITOS BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO T P I: 4-2-4 6. QUADRIMESTRE IDEAL 7 7. NÍVEL Graduação 8. Nº. MÁXIMO DE ALUNOS POR TURMA TEORIA: 60 LABORATÓRIO: 30 9. OBJETIVOS Apresentar conceitos, técnicas e características básicas dos sistemas gerenciadores de banco de dados (SGBD). Apresentar conceitos e técnicas para o projeto e implementação de sistemas de banco de dados, incluindo modelagem de dados, dependências funcionais, normalização, álgebra relacional e a linguagem SQL. 10. COMPETÊNCIAS Ao final da disciplina o aluno deverá ser capaz de aplicar os conceitos necessários ao uso e, principalmente, projeto e implementação de sistemas de banco de dados. 11. PROGRAMA RESUMIDO Conceitos Básicos: Arquitetura de um Sistema de Banco de Dados, Modelos de Dados, Linguagens de Definição e Manipulação de Dados, Usuário de Banco 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, Álgebra Relacional e SQL. 12. PROGRAMA 1) Introdução: - Noções preliminares; + Propriedades básicas; + Banco de dados versus sistema de arquivos; - Modelos, linguagens e SGBDs; - Exemplos de aplicações. 2) Modelo Entidade-Relacionamento: - Conceitos do modelo: + Entidades, atributos e relacionamentos; + Tipos de entidades, conjuntos de entidades e atributos-chaves; + Tipos de relacionamentos, papéis e restrições estruturais; + Tipos de entidades fracas. - Diagrama Entidade-Relacionamento; - Conceitos adicionais do modelo: + Especialização e Generalização; + Relacionamentos de grau maior que dois. 3) Modelo de Dados Relacional: - Conceitos do modelo: + Notação do Modelo; + Atributos-chaves de uma relação; + Esquemas de Bases de Dados Relacionais e Restrições de integridade; + Operações de Atualizações sobre Relações. 4) Mapeamento do Modelo Entidade-Relacionamento para o Relacional: 5) Dependências Funcionais e Normalização: - Diretrizes informais para o projeto de esquemas de relações; - Anomalias de Atualização, Inserção e Exclusão; - Dependências Funcionais: + 1FN, 2FN, 3FN e FNBC. - Dependências Multivaloradas: + 4 FN. 6) Linguagens Formais de Consulta: - Álgebra Relacional: + Operações "Select" e "Project"; + Operação "Join"; + Operação "Division"; + Operações adicionais; + Funções de agregação. - A linguagem SQL: + Definição de esquema e restrições básicas em SQL; + Consultas básicas em SQL; + Consultas aninhadas; + Definição e utilização de visões. 7) Programação com o Banco de Dados: - SQL avançada; - SQL embutida e dinâmica; - Autorização; - Procedimentos e funções; - Seqüências e Triggers; - Tratamento de exceções; - Introdução aos conceitos de transação; - Suporte de transações em SQL. 8) Projeto de Desenvolvimento de Aplicação: - Interfaces com o usuário e ferramentas. 13. MÉTODOS UTILIZADOS A teoria e os métodos da disciplina são apresentados por meio de aulas expositivas com uso de lousa e slides, intercaladas com aulas em laboratório de informática. 14. ATIVIDADES DISCENTES Duas provas teóricas escritas, estudo individual das referências bibliográficas e das notas de aula, resolução de listas de exercícios, implementação de projeto em forma de programas. 15. CARGA HORÁRIA AULAS TEÓRICAS: 48h AULAS PRÁTICAS: 24h TOTAL: 72h RECOMENDADO PARA DEDICAÇÃO INDIVIDUAL: 4 horas por semana 16. CRITÉRIOS DE AVALIAÇÃO DE APRENDIZAGEM Média ponderada de duas provas e nota de projeto. 17. NORMAS DE RECUPERAÇÃO (CRITÉRIOS DE APROVAÇÃO E ÉPOCAS DE REALIZAÇÃO DAS PROVAS OU TRABALHOS) As notas serão dadas por conceito, conforme estabelecido pelas normas internas da UFABC. Alunos que não atingiram um nível de aprendizado adequado, e sem reprovação por presença, poderão fazer uma prova de exame para mais uma oportunidade de avaliação. A prova de exame será realizada após as provas normais, no final do trimestre. 18. BIBLIOGRAFIA RECOMENDADA BIBLIOGRAFIA BÁSICA: 1. Elmasri, R. e Navathe, S. B. Sistemas de banco de dados (quarta edição), 2005, Pearson/Addison-Wesley; 2. Silberschatz, A., Korth, H. F. e Sudarshan, S., Sistema de Banco de Dados, tradução da quinta edição, 2006. Campus/Elsevier; 3. Heuser, C. A., Projeto de Banco de Dados, sexta edição, 2009, Sagra Luzzatto. BIBLIOGRAFIA COMPLEMENTAR: 1. Date, C. J. Introdução aos Sistemas de Banco de Dados (tradução da oitava edição americana), 2003, Campus/Elsevier 2. Garcia-Molina, H. e Ullman, J. e Widom, J., Database Systems: The Complete Book (GOAL Series), 2008, Prentice-Hall. 3. Ramakrishnan, R. Sistemas de bancos de dados. 3 ed., 2008, McGraw-Hill. 4. Teorey, T. e Lightstone, S. e Nadeau, T., Projeto e modelagem de banco de dados. 2007, Elsevier. 5. Date, C. J., Database In Depth – Relational Theory for Practitioners, 2005, O'Reilly. 19. PLANO SUGERIDO PARA AS AULAS (em semanas letivas) Aula 1 - Apresentação da disciplina. Introdução: motivação, vantagens e desvantagens da utilização de SGBD; arquitetura de 3 níveis; linguagens de definição e manipulação de dados; classificação dos SGBD; componentes dos SGBD; exemplos de aplicações. Modelos Conceituais de Dados. Aula 2 - Introdução ao Modelo Entidade-Relacionamento. Apresentação dos construtores: TipoEntidade, Tipo-Relacionamento, Atributos. Exercícios. Aula 3 - Modelo Entidade-Relacionamento. Restrições dos Tipos-Relacionamento. Grau de TiposRelacionamento. Tipo-Entidade Fraca. Exercícios. Aula 4 - Extensões do Modelo Entidade-Relacionamento: Generalização/Especialização; Agregação. Exercícios. Aula 5 - Introdução ao Modelo Relacional. Definições formais. Restrições. Restrições versus operações de inserção, remoção e atualização. Exercícios. Aula 6 - Aula de exercícios sobre o Modelo Entidade-Relacionamento e Modelo EntidadeRelacionamento Estendido. Aula 7 - Mapeamento do Modelo Entidade-Relacionamento para o Modelo Relacional. Aula 8 - Mapeamento do Modelo Entidade-Relacionamento Estendido para o Modelo Relacional. Aula 9 - Exercícios sobre mapeamento do Modelo Entidade-Relacionamento e Modelo EntidadeRelacionamento Estendido para o Modelo Relacional. Aula 10 - Aula Prática: Exercícios utilizando uma ferramenta case de modelagem Aula 11 - Medidas informais para a avaliação da qualidade de um projeto de banco de dados. Dependência funcional. Introdução aos conceitos sobre normalização. 1FN e 2FN. Aula 12 - Continuação da apresentação dos conceitos sobre normalização. 3FN, definições genéricas da 2FN e 3FN. Forma normal de Boyce-Codd. Aula 13 - Dependências multivaloradas e 4FN. Outras dependências e formas normais. Exercícios. Aula 14 - Introdução aos conceitos sobre álgebra relacional. Apresentação das operações fundamentais e adicionais. Detalhamento das operações de seleção, projeção, atribuição, renomear e produto cartesiano. Aula 15 - Continuação da apresentação dos conceitos sobre álgebra relacional. Detalhamento das operações sobre conjuntos e das operações de junção e divisão. Aula 16 - Continuação da apresentação dos conceitos sobre álgebra relacional. Detalhamento das funções de agregação. Exercícios. Aula 17 - Primeira prova teórica Aula 18 - SQL: Linguagem de definição de dados. Aula 19 - Aula prática em laboratório utilizando um SGBD: linguagem de definição de dados. Aula 20 - SQL: Linguagem de manipulação de dados. Aula 21 - Aula prática em laboratório utilizando um SGBD: linguagem de manipulação de dados. Aula 22 - Aula prática. Aula prática em laboratório utilizando um SGBD: subconsultas aninhadas Aula 23 - Aula prática. Aula prática em laboratório utilizando um SGBD: consultas complexas Aula 24 - Programação de stored procedures em bancos de dados. Procedimentos e cursores. Aula 25 - Aula prática em laboratório utilizando um SGBD: funções e procedimentos Aula 26 - Aula prática em laboratório utilizando um SGBD: cursores Aula 27 - Aula prática em laboratório utilizando um SGBD: tratamento de exceções. Aula 28 - Aula prática. Sequencias e gatilhos (triggers). SQL embutida. Exercícios. Aula 29 - Segurança. Autorização. Usuários e papéis. Aula 30 - Conceitos de transações em bancos de dados Aula 31 - Aula prática em laboratório utilizando um SGBD: transações em SQL. Aula 32 - Aula prática em laboratório abordando conceitos relacionados com a conexão de aplicações com SGBD. ODBC e JDBC. Exercícios. Aula 33 - Apresentações e defesas de projetos em laboratório Aula 34 - Apresentações e defesas de projetos em laboratório Aula 35 - Segunda prova teórica Aula 36 - Prova de exame final 20. PROFESSOR(A) RESPONSÁVEL Humberto Luiz Razente Maria Camila Nardini Barioni Edson Pinheiro Pimentel