Sistemas de Bases de Dados
Objetivos
Conhecimento:
- Conceitos fundamentais para o funcionamento de um sistema de bases de dados.
- Noções de indexação e hashing em bases de dados.
- Processamento e otimização de perguntas em bases de dados relacionais.
- Concorrência e processamento de transações em bases de dados.
- Noções básicas de bases de dados distribuídas.
Aptidões:
- Otimizar bases de dados para utilizações específicas.
- Otimizar o processamento de perguntas, e utilizar as ferramentas comuns em SGBD para esse propósito.
- Usar os mecanismos de controlo de transações em bases de dados.
- Usar um SGBD para uma base de dados distribuída
- Utilização avançada do SQL e linguagens procedimentais com SQL.
Competências:
- Capacidade de trabalho em equipa.
- Capacidade de avaliar soluções com base em resultados experimentais.
- Capacidade de avaliação crítica.
Caracterização geral
Código
8281
Créditos
6.0
Professor responsável
Carlos Augusto Isaac Piló Viegas Damásio
Horas
Semanais - 4
Totais - 58
Idioma de ensino
Português
Pré-requisitos
Conhecimento sobre Bases de Dados relacionais e de SQL
Bibliografia
Livros de Texto:
- Database System Concepts. A. Silberschatz, H. Korth and S. Sudarshan, McGraw-Hill, 7th Edition, 2019
- Database Systems: the complete book. H. Garcia-Molina, J Ulmann and J. Widom. Prentice Hall, 2009
Manuais:
Oracle 18c Documentation
Método de ensino
Aulas teóricas, onde são expostos e discutidos os conceitos, e aulas práticas onde estes são experimentados em situações concretas
Método de avaliação
A nota final (NF) é dada por
NF = 0,6*NT + 0,4*NP,
sendo necessário pelo menos 10 valores na nota teórica (NT) para aprovação (para além de média positiva). Todas as notas são de 0 a 20, arredondadas à unidade.
NT = (T1+T2)/2 (i.e. 2 testes). Os testes são realizados ao longo do semestre, e têm consulta limitada (uma folha). Alternativamente ou como melhoria, NT também pode ser obtida por exame de recurso.
NP resulta da realização, apresentação e discussão de um trabalho (em grupos de 3), e da realização individual de um relatório de avaliação de um outro grupo. Eventual nota prática do ano anterior é válida para esta edição (não realizando o trabalho). Alunos com nota prática mais antiga devem contactar o regente.
Conteúdo
Implementação de SGBDs
1.1.Armazenamento e estrutura de ficheiros
1.2.Indexação
1.3.Hashing estático e dinâmico
Processamento e otimização de perguntas em SQL.
2.1.Processamento: esquema geral; algoritmos para operadores de álgebra relacional; composição de operadores por materialização e pipelining; algoritmos paralelos
2.2.Otimização: medidas de custo; estimativas associadas a planos de avaliação
Concorrência e processamento de transações
3.1.Introdução ao controlo de concorrência em bases de dados
3.2.Processamento de transações ACID e níveis de isolamento
3.3.Protocolos baseados em locks e em time-stamps
3.4.Protocolos multi-versão
3.5.Esquemas de recuperação em bases de dados
Fundamentos de Arquitecturas de Sistemas de Bases de Dados
4.1.Bases de dados centralizadas e cliente-servidor
4.2.Introdução às bases de dados distribuídas: homogéneas e heterogéneas; processamento de perguntas em bases de dados homogéneas; transações em bases de dados distribuídas