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

Cursos

Cursos onde a unidade curricular é leccionada: