PROGRAMA DE DISCIPLINA Nome: Código: Banco de Dados I BCC321 Departamento: Unidade: Departamento de Computação (DECOM) Carga horária semanal: Carga horária semestral: 4 h/a (4 teóricas) Total de Créditos: 4 créditos ICEB 72 h/a (72 teóricas) Semanas: 18 semanas Pré-requisitos: BCC102, BCC203 Ementa: 1) Conceitos básicos em sistemas de banco de dados. 2) Arquitetura de sistemas de banco de dados. 3) Modelagem conceitual de dados. 4) Modelo Relacional. 5) Linguagens: álgebra e cálculo relacional. 6) A linguagem SQL e o uso de APIs. 7) Projeto de banco de dados. 8) Normalização de banco de dados. 9) Noções de processamento de transações, controle de concorrência e recuperação de falhas. 10) Aspectos de implementação de banco de dados. Objetivos: Apresentar os fundamentos que permitirão ao aluno compreender os principais aspectos da tecnologia de banco de dados. Bibliografia Básica: Elmasri, R., Navathe, S., Sistemas de Banco de Dados, 6a. edição, Pearson Addison Wesley, 2011. ISBN: 8579360855. Korth, H.F., Sudarshan, S., Silberschatz, A., Sistema de Banco de Dados, 6a. edição, Campus, 2012. ISBN: 8535245359. Beaulieu, A., Aprendendo SQL, Editora Novatec, 2010. ISBN: 8575222102. Disciplina: BCC321 DECOM-ICEB-UFOP Página 1 Bibliografia Complementar: Date, C.J., Introdução a Sistemas de Bancos de Dados, Campus, 2004. ISBN: 8535212730 Garcia-Molina, H., Ullman, J., Widom, J., Implementação de Sistemas de Bancos de Dados Editora Campus, 2001. ISBN: 853520749X Ramakrishnan, R., Gehrke, J., Database Management Systems, 3a. edição, McGraw-Hill, 2002. ISBN: 9780072465631 Disciplina: BCC321 DECOM-ICEB-UFOP Página 2 Conteúdo Programático: 1) Conceitos básicos em sistemas de banco de dados. 1.1) Definições: banco de dados, sistema de banco de dados, sistema gerenciador de banco de dados. 1.2) Principais características e capacidades oferecidas pelos sistemas de banco de dados. 1.3) Aplicações de bancos de dados tradicionais. 2) Arquitetura de sistemas de banco de dados. 2.1) Conceitos básicos: modelo de dados, esquemas e instâncias. 2.2) Arquitetura de três esquemas. 2.3) Tipos de interfaces e linguagens fornecidas por um sistema gerenciador de banco de dados. 2.4) Tipos de arquiteturas cliente/servidor. 3) Modelagem conceitual de dados. 3.1) Visão geral das etapas de um projeto de banco de dados. 3.2) Modelos de dados conceituais. 3.3) Conceitos: tipos de entidade, atributos e relacionamentos. 3.4) Modelos ER e EER: conceitos e notação. 3.5) Conceitos de diagrama de classe UML. 4) Modelo Relacional. 4.1) Conceitos básicos do modelo relacional. 4.2) Restrições relacionais. 4.3) Operações de atualização do modelo relacional e tratamento de violações de restrição. 5) Linguagens: álgebra e cálculo relacional. 5.1) Operações relacionais unárias e binárias. 5.2) Exemplos de consultas em álgebra relacional. 5.3) Exemplos de consultas em cálculo relacional de tupla e de domínio. 6) A linguagem SQL e o uso de APIs. 6.1) Definições e tipos de dados em SQL. 6.2) Comandos SQL para criação de esquemas e tabelas. 6.3) Especificação de restrições básicas. 6.4) Comandos SQL para inserção, exclusão e alteração de dados. 6.5) Consultas de recuperação em SQL. 6.6) Uso de uma interface de programação de aplicações. 7) Projeto de banco de dados. 7.1) Projeto lógico de banco de dados relacional: mapeamento ER/EER para relacional. 8) Normalização de banco de dados. 8.1) Dependências funcionais. 8.2) Definições das formas normais. 8.3) Procedimentos de normalização. 9) Noções de processamento de transações, controle de concorrência e recuperação de falhas. 9.1) Introdução ao processamento de transações e controle de concorrência. 9.2) Propriedades desejáveis nos sistemas de processamento de transações. 9.3) Plano de execução de transações. 9.4) Serialização da execução concorrente da transação. 9.5) Protocolos de controle de concorrência: técnicas de bloqueio em duas fases. 9.6) Deadlock e inanição. 9.7) Técnicas de recuperação de falhas baseadas na atualização adiada e imediata. 10) Aspectos de implementação de banco de dados. 10.1) Utilização de um SGBD comercial para realização de um projeto de banco de dados. Disciplina: BCC321 DECOM-ICEB-UFOP Página 3