考虑一个16384个记录的文件。每个记录的长度为32个字节,其键字段的大小为6个字节。该文件在非关键字段上排序,并且文件组织未扩展。该文件存储在块大小为1024字节的文件系统中,块指针的大小为10字节。如果二级索引建立在文件的关键字段上,并且使用多级索引方案来存储二级索引,则多级索引中的第一级块和第二级块的数量分别为。
(A) 8和0
(B) 128和6
(C) 256和4
(D) 512和5答案: (C)
说明:索引机制用于优化对文件中管理的数据(记录)的某些访问。例如,库中的作者目录是一种索引类型。索引文件由以下形式的记录(称为索引条目)组成:
-----------------------------------
| Search-Key | Pointer to Block |
-----------------------------------
如果甚至外部索引太大而无法容纳在主内存中,则可以创建另一级别的索引,依此类推。
Number of records in file = 16384
Record size = 32 bytes
Key Size = 6 bytes
Block Size on file system = 1024 bytes
Size of Block Pointer = 10 bytes
Size of a record or index Entry = 10 + 6 = 16
Number of blocks in first level = (Number of records in file)/
(Disk Block Size)
= (16384 * 16)/(1024)
= 16 * 16
= 256
In second level, there will be 256 * 16 entries.
Number of blocks in second level = (Number of entries) /
(Block Size)
= (256 * 16) / 1024
= 4
这个问题的测验