Aulas práticas - Ficha 7 - Soluções

Bases de Dados (CC2005), Dep. Ciência de Computadores, FCUP

Eduardo R. B. Marques, DCC/FCUP

1

\( B = 4096 \)

\(T_1: \quad N = 10,000 \quad R = 32 \)

\(T_2: \quad N = 100,000 \quad R = 130 \)

1.1

\(T_1: \quad bfr = \lfloor 4096/32 \rfloor = 128 \quad B - bfr * R = 0 \quad n = \lceil 10000 \:/\: 128 \rceil = 79 \)

\(T_2: \quad bfr = \lfloor 4096/130\rfloor = 31 \quad B - bfr * R = 66 \quad n = \lceil 100000 \:/\: 31 \rceil = 3226 \)

1.2

Para \(T_1\): \( \lceil log_2(79) \rceil = 7\) pela chave primária, por outro atributo \(n = 79\).

Para \(T_2\): \( \lceil log_2(3226) \rceil = 12\) pela chave primária, por outro atributo \(n = 3226\).

2

3

Temos

\( N_I = N = 25000 \quad R_I = 8 + 8 = 16 \quad bfr_I = \lfloor 4096 / 16\rfloor = 256 \quad n_I = \lceil 25000 / 256 \rceil = 98 \)

portanto precisamos de \(8=\lceil log_2(98)\rceil +1\) acessos a disco no máximo vs. \(n=400\) numa pesquisa linear usando a chave secundária.

4

No segundo nível teríamos

\( N_{I}^2 = n_I = 98 \quad R_I^2 = R_I = 16 \quad bfr_I^2 = bfr_I = 256 \quad n_I^2 = \lceil 98 / 256 \rceil = 1 \)

Portanto precisávamos só de um bloco extra em disco. Quanto a acessos a disco seriam sempre \(3 = 1 + 1 + 1\) (índice de 2º nível, índice de 1º nível, ficheiro).

Não faz sentido um índice de 3º nível porque o índice de 2º nível cabe todo em 1 bloco de disco.