To find the minimum number of disk accesses, the B+ tree must have the minimum height (i.e., maximum node capacity/fan-out at each level).
Given:
Block size, B=4 KB=4096 bytes
Search key size, K=12 bytes
Pointer size, P=8 bytes
Number of records, N=1,000,000
1. Internal Node Order (p):
An internal node containing p block pointers and p−1 search keys must satisfy:
p⋅P+(p−1)⋅K≤B 8p+12(p−1)≤4096 20p−12≤4096⟹20p≤4108⟹p=⌊205.4⌋=205 2. Leaf Node Capacity (n):
Each leaf node entry has a search key and a data/record pointer (and optionally 1 pointer to next leaf node):
n⋅(K+P)+P≤B⟹20n+8≤4096⟹20n≤4088⟹n=⌊204.4⌋=204 3. Minimum Height of the B+ Tree:
Number of leaf nodes needed for 106 records:
⌈204106⌉=4902 leaf nodes Level 1 above leaves:
⌈2054902⌉=24 nodes Level 2 above leaves (Root):
⌈20524⌉=1 node (Root)
Thus, the B+ tree has 3 levels:
Level 2: Intermediate level
4. Total Disk Accesses to Retrieve a Record:
Number of disk accesses for index tree traversal =3 (Root → Internal Node → Leaf Node)
Number of disk accesses to fetch the actual data record from disk =1
Total Minimum Disk Accesses=3+1=4