📜  门|门CS 2008 |第 70 题

📅  最后修改于: 2021-09-26 04:40:28             🧑  作者: Mango

考虑一个包含 16384 条记录的文件。每条记录的长度为 32 个字节,其关键字段的大小为 6 个字节。文件在非关键字段上排序,文件组织是无跨度的。该文件存储在块大小为1024字节的文件系统中,块指针的大小为10字节。如果二级索引建立在文件的关键字段上,并采用多级索引方案存储二级索引,则多级索引中一级和二级块的数量分别为。
(一) 8 和 0
(B) 128 和 6
(C) 256 和 4
(四) 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

这个问题的测验