📜  门| GATE CS 2008 |第70章

📅  最后修改于: 2021-06-29 23:51:21             🧑  作者: Mango

考虑一个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

这个问题的测验