Instruções para resolução e entrega

Os exercícios devem ser entregues numa folha A4, manuscritos e em pessoa na
aula teórica designada de cada semana. Cada resposta não deve ocupar mais que
um parágrafo (aproximadamente 100-120 palavras).

Semana 1 - Chapter 1 - Introduction (exemplo)

1. Enumere os três níveis de abstracção propostos para um sistema de bases de dados. Descreva cada um sucintamente.

Os três níveis de abstracção num sistema de bases de dados são o nível físico, o nível lógico e o nível de vista. O nível físico corresponde aos mecanismos de implementação da base de dados e à forma como os dados são armazenados. O nível lógico descreve os dados armazenados na base de dados e as relações entre estes. O nível de vista refere-se à visão que os utilizadores do sistema têm dos dados. Corresponde ao interface da base de dados com os utilizadores.

Semana 2 - Chapter 2 - Relational Model (exemplo)

1. Refira um problema que possa surgir se uma base de dados relacional for definida como uma só tabela. Exemplifique.

Se uma BD relacional for definida como uma só tabela, pode surgir o problema da repetição desnecessária de dados. Por exemplo, numa relação bank(customer_name, address, acount_number, balance), se um cliente tiver mais que uma conta, a informação de morada será repetida desnecessariamente.

2. Diga a diferença entre o esquema de uma relação e a instância de uma relação.

O esquema de uma relação define os atributos que compõem a relação. A instância de uma relação é o conjunto de valores que a relação contém num dado instante.

Semana 3 - Chapter 6 - Entity-Relationship Model

1. Ao converter uma entidade fraca do modelo E-R para o modelo relacional, quais os atributos que formarão a sua chave primária? Porquê?

Data de entrega: 2a feira, dia 25/09.

Semana 4 - Chapter 3 - SQL

1. Dê um exemplo de uma view sobre a qual não seja possível fazer uma alteração da base de dados. Explique porquê.

Semana 5 - Chapter 4 - Advanced SQL

1. Qual a diferença entre um "statement" e um "prepared statement"?

2. Em que situações é mais vantajoso usar um "prepared statement"?

Entregar na aula de sexta-feira, dia 13 de Outubro.

Semana 7 - Chapter 7 - Relational Database Design

1. Por que razão, em algumas situações, é adequado "desnormalizar" as relações
na base de dados? Dê um exemplo.

Entregar na aula de segunda-feira, dia 23 de Outubro.

Semana 8 - Chapter 12 - Indexing and Hashing

1. Dê um exemplo de uma query onde seria mais útil um índice B+-tree.

2. Dê um exemplo de uma query onde seria mais útil um índice hashing.

Entregar na aula de segunda-feira, dia 30 de Outubro.

Semana 9 - Chapter 13 - Query Processing

1. Qual é a diferença entre a avaliação de expressões usando "materialização" e "pipelining"?

Entregar na aula de segunda-feira, dia 6 de Novembro

Semana 10 - Chapter 14 - Query Optimization

1. Prove que a operação de projecção não é distributiva sobre a operação de intersecção.

Entregar na aula de segunda-feira, dia 13 de Novembro

Semana 11 - Chapter 16 - Concurrency Control

1. Qual é a diferença entre um protocolo "two-phase locking" e um protocolo "strict two-phase locking"?
Entregar na aula de segunda-feira, dia 20 de Novembro