B = 512 B
#records = 30000
record size = 100 B
Using unspanned organization,
block factor for data ( #records per block) = $\left \lfloor \frac{512}{100} \right \rfloor$ = 5
So, number of blocks for data file = $\frac{30000}{5}$ = 6000
Index size = key field size + block pointer = 9 + 6 = 15B
block factor for index (#index entries per block) = $\left \lfloor \frac{512}{15} \right \rfloor$ = 34
In sparse primary indexing, number of entries in index file is equal to number of data blocks.
$\therefore$ Number of entries in index file = 6000
So, number of blocks for index file = $\left \lceil \frac{6000}{34} \right \rceil$ = 177
Now, average block accesses to retrieve a record from the file using binary search =$\left \lceil log_{2} 177 \right \rceil$ (to perform binary search) + 1 (to access the block where desired record is present) = 8 + 1 = 9
Hence, total 9 block accesses are required.