Exercícios
Estruturas de indexação e algoritmos de processamento de consultas
Considere a seguinte relação Aluno:
codAluno
1
2
3
4
5
6
7
8
9
10
11
12
...
1000
nome
Ana
Paulo
José
Maria
Marcos
Mariana
Juliana
Eduardo
Ronaldo
Carlos
Pedro
Sérgio
cidade
POA
Gravataí
POA
Canoas
Canoas
POA
Canoas
POA
Viamão
Viamão
Gravataí
POA
codCurso
1
1
2
4
6
4
7
9
11
4
7
7
renda
1300.50
2641.56
1300.50
2300.54
2300.57
3300.88
2300.98
4305.38
3137.38
2360.28
2370.88
1360.98
Vando
POA
5
1500.52
Estruturas básicas de indexação. Considere as situações:
1. Supondo que o arquivo físico de dados está ordenado pelo campo chave codAluno.
i. Dos tipos de índices vistos até o momento, qual tipo poderia ser criado para este campo (primário,
secundário, clustering)? Esparso ou denso? Justifique.
ii. Qual seria o arquivo de índices correspondente a este campo, considerando um índice primário esparso
com 10 entradas?
2.
Supondo que um bloco armazene 10 tuplas do arquivo de dados da relação Alunos.
i. Quais acessos/operações de acessos seriam feitos para selecionar a tupla do aluno de código 214,
supondo um índice esparso primário na coluna codAluno, com 10 entradas no arquivo de índices,
supondo que o arquivo de índices aponta para o primeiro registro do bloco? Uma vez localizado o
bloco, como poderia ser feita a busca do registro dentro do bloco?
3.
Supondo que o arquivo físico de dados está ordenado pelo campo cidade.
i. Dos tipos de índices vistos até o momento, qual tipo poderia ser criado para este campo (primário,
secundário, clustering)? Esparso ou denso? Justifique.
ii. Qual seria o arquivo de índices correspondente a este campo, considerando um índice esparso com 10
entradas?
iii. Qual seria o arquivo de índices correspondente a este campo, considerando um índice denso? Quantas
entradas existiriam no arquivo de índices?
iv. Supondo que um bloco armazene 5 tuplas do arquivo de dados da relação Alunos. Considere que existe
um índice clustering esparso na coluna cidade.
1. Quais acessos/operações de acesso seriam feitos para selecionar as tuplas dos alunos que
moram em POA, supondo que o arquivo de índices aponta para o primeiro registro do bloco
que contém a informação pesquisada? (considere que o grupo de registros que compartilham
diferentes valores de clustering podem estar no mesmo bloco – ver slide 13)
2. Quais acessos/operações de acesso seriam feitos para selecionar as tuplas dos alunos que
moram em POA, supondo que o arquivo de índices aponta para o primeiro registro do bloco
que contém a informação pesquisada? (considere que o grupo de registros que compartilham o
mesmo valor de clustering podem estar em blocos separados – ver slide 14)
4. Algoritmos de seleção. Considere as seguintes operações:
(OP1): σ codAluno=10 (ALUNO)
(OP2): σ codCurso>5 (ALUNO)
(OP3): σ cidade=’POA’ (ALUNO)
(OP4): σ codAluno>=5 AND renda>2000 AND cidade=‘Gravatai’ (ALUNO)
(OP5): σ codAluno>10 (ALUNO)
Suponha as seguintes situações:
i. Não existe índice em nenhum campo no arquivo de dados e o arquivo físico de dados está ordenado
pelo campo codAluno.
1. Qual algoritmo de seleção você utilizaria para executar a OP1?
ii. Não existe índice em nenhum campo no arquivo de dados e o arquivo físico de dados está ordenado
pelo campo codAluno.
1. Qual algoritmo de seleção você utilizaria para executar a OP3?
iii. O arquivo físico de dados está ordenado pelo campo chave codAluno; existe um índice primário
esparso na coluna codAluno, com 10 entradas no arquivo de índices.
1. Quais algoritmos você poderia utilizar para executar a OP1?
iv. O arquivo físico de dados está ordenado pelo campo cidade; existe um índice cluster denso na coluna
cidade.
1. Quais algoritmos você poderia utilizar para executar a OP3?
v. O arquivo físico de dados está ordenado pelo campo codCurso; existe um índice clustering esparso na
coluna codCurso.
1. Quais algoritmos você poderia utilizar para executar a OP2?
vi. O arquivo físico de dados está ordenado pelo campo codAluno; existe um índice primário esparso na
coluna codAluno; existe um índice secundário na coluna cidade;
1. Quais algoritmos você poderia utilizar para executar a OP4?
5.
Algoritmos de junção.
Considere a seguinte relação Curso:
codCurso
1
2
3
4
5
6
7
8
9
10
11
12
...
50
descricao
Ciência da computação
Sistemas de Informação
Medicina
Odontologia
Biologia
Contábeis
Economia
Direito
Engenharia Civil
Engenharia Elétrica
Desenho Industrial
Fisioterapia
reprDiscente
1
3
99
4
1000
5
7
88
8
67
9
34
Vando
23
dataCriacao
..
...
coordenador
...
...
Considere as seguintes operações:
(OP6): ALUNO
(OP7): CURSO
Aluno.codCurso=Curso.codCurso CURSO
curso.ReprDiscente=aluno.CodAluno ALUNO
i. Monte o código do algoritmo para a operação OP6, usando laço aninhado.
ii. Suponha que existe um índice na coluna Curso.codCurso. Para executar a operação 6, rabisque o teste
de mesa usando o algoritmo laço único.
iii. Supondo que os arquivos físicos de dados das relações aluno e curso estão ordenados pelos atributos de
junção. Para executar a operação 6, rabisque o teste de mesa usando o algoritmo ordenação-fusão.
6. Algoritmos de projeção. Considere as seguintes operações:
(OP8): π codAluno, nomeAluno (ALUNO)
(OP9): π nomeAluno(σcidade = ‘POA’ (ALUNO))
i. Quais os possíveis algoritmos para executar a operação OP8?
ii. Suponha que existe um índice clustering na coluna cidade e o arquivo de dados está fisicamente
ordenado pelo campo cidade. Quais os possíveis algoritmos para executar a operação OP9?
7.
Considere a seguinte operação:
(OP10): π nomeAluno, descricao (σcidade = ‘POA’ (ALUNO
aluno.codCurso=Curso.codCurso CURSO))
Suponha que existe um índice primário na coluna Aluno.codAluno e o arquivo de alunos esteja ordenado fisicamente pelo campo
codAluno. Suponha que existe um índice secundário na coluna cidade. Suponha que exista um índice primário na coluna
Curso.CodCurso e o arquivo de cursos esteja ordenado fisicamente pelo campo codCurso. Quais as possíveis combinações de
algoritmos podem ser utilizadas para responder a consulta OP10? (Dica: veja os possíveis algoritmos que podem ser utilizados
para executar cada uma das operações individualmente e depois verifique as combinações possíveis).
Download

Aula 2.1 - Exercicios