SQL embutida: instruções estáticas e dinâmicas, cursores. Processamento de consultas: otimização algébrica; plano de execução de uma consulta considerando estimativas sobre os dados, índices, buffers e pipelines. Transações: definição, propriedades, estados. Recuperação de falhas: categorias de falhas, gerência de buffer, técnicas de recuperação. Controle de concorrência: teoria da serializabilidade, escalonadores otimistas e pessimistas, tratamento de deadlock. Noções básicas de bancos de dados distribuídos: arquiteturas, projeto, processamento de consultas, gerência de transações.
3. Cursos Relacionados
CIÊNCIAS DA COMPUTAÇÃO (208) - Currículo: 2007-1 (Obrigatória)
4. Objetivos
4.1 Objetivo Geral:
Fornecer ao aluno uma visão geral das técnicas de gerenciamento interno de um Sistema de Gerência de Banco de Dados (SGBD), bem como uma introdução a BDs Distribuídos (BDD) e à SQL embutida. Ao final da disciplina, o aluno deverá ser capaz de entender, avaliar e empregar adequadamente os recursos de SGBDs em geral, conhecer os fundamentos de BDDs e alguns BDs não-convencionais.
4.2 Objetivos Específicos:
Revisar e reforçar conhecimentos sobre organização e indexação de dados para suportar métodos de acesso eficientes;
Familiarizar o aluno a sistemática de processamento de consultas em SGBDs, compreendendo os principais algoritmos envolvidos e as etapas de otimização algébrica e definição de plano de execução;
Compreender o conceito de transação: seus estados e suas propriedades;
Conhecer os tipos de falhas que podem ocorrer em um SGBD e as técnicas de recuperação das transações do BD na ocorrência de falhas;
Conhecer as técnicas para a correta execução concorrente de transações em um SGBD e a recuperação dos estado do BD em caso de falhas;
Familiarizar-se com os conceitos e noções de projeto de BDDs e entender, de maneira geral, as suas técnicas de gerenciamento de transações e de processamento de consultas;
Ser capaz de aplicar as instruções da SQL embutida no código de uma aplicação que acessa um SGBD;
Ter uma visão das tendências em BDs e noções de tecnologias de BDs não-convencionais, tais como orientados a objetos, NO-SQL, geográficos, temporais, multimídia e semi-estruturados, através de seminários e aulas sobre tópicos avançados.
5. Conteúdo Programático
Introdução ao processamento de consultas [4 horas-aula]
Organização e indexação de dados para acesso eficiente
Otimização algébrica de consultas [6 horas-aula]
Regras de equivalência algébrica
Algoritmo de otimização
Plano de execução de uma consulta [4 horas-aula]
Catálogo do BD e estimativas sobre os dados
Técnicas para processamento de operações algébricas, considerando índices e pipelines
Introdução a transações [6 horas-aula]
Definição, propriedades e estados de uma transação
Escalonamento de operações
Recuperação de falhas [10 horas-aula]
Tipos de falhas
Gerência de buffer
Técnicas de recuperação
Controle de concorrência [14 horas-aula]
Teoria da serializabilidade
Técnicas otimistas e pessimistas
Tratamento de deadlock
Introdução a Bancos de Dados Distribuidos [16 horas-aula]
Arquiteturas de BDD
Noções de projeto de BDD
Processamento de consultas em BDD
Gerência de transações em BDD
SQL embutida [4 horas-aula]
Instruções estáticas e dinâmicas
Cursores
Tópicos em bancos de dados [8 horas-aula]
6. Bibliografia Básica
Elmasri, R.; Navathe S. B. Sistemas de Banco de Dados. 6a edição. Editora Pearson. 2011. (em inglês: Elmasri, R.; Navathe S. B. Fundamentals of Database Systems. 6th. edition Pearson. 2011).
Korth, H. F.; Sudarshan, S; Silberschatz, A. Sistema de Banco de Dados. 5a edição. Editora Campus, 2006.
Ramakrishnan, R., Gehrke, J. Database Management Systems. 3th ed. McGraw Hill. 2003.
7. Bibliografia Complementar
Korth, H. F.; Sudarshan, S; Silberschatz, A. Sistema de Banco de Dados. 6a edição. Editora Campus, 2010.
Garcia-Molina, H.; Ullma, J. D; Widom, J. Implementação de sistemas de banco de dados. Rio de Janeiro: Campus, 2001.
Date, C.J. An introduction to database systems, Addison-Wesley, 8th edition, 2003. (Tradução: Introdução a Sistemas de Bancos de Dados, Editora Campus, 2004).
Özsu, M.; Valduriez, P. Princípios de Sistemas de Banco de Dados Distribuídos. 2a ed. Editora Campus, 2001 (em inglês Özsu, M.; Valduriez, P. Principles of Distributed Database Systems. 2a ed. Prentice Hall, 2001.)
Bernstein, P. A.; Hadzilacos, V.; Goodman, N. Concurrency Control and Recovery in Database Systems. Addison-Wesley, 1987.