文件索引結構

索引文件

   
    爲了提高文件的檢索效率,可以採用索引方法組織文件。採用索引這種結構,邏輯上連續的文件可以存放在若干不連續的物理塊中,但對於每個文件,在存儲介質中除存儲文件本身外,還要求系統另外建立一張索引表,索引表記錄了文件信息所在的邏輯塊號和與之對應的物理塊號。索引表也以文件的形式存儲在存儲介質中,索引表的物理地址則由文件說明信息項給出。索引結構如圖5.21所示。
       

                   圖5.21索引結構文件的示意圖

    在很多情況下,有的文件很大,文件索引表也就較大。如果索引表的大小超過了一個物理塊,可以採用間接索引(多重索引),也就是在索引表所指的物理塊中存放的不是文件信息,而是裝有這些信息的物理塊地址。這樣,如果一個物理塊可裝下n個物理塊地址,則經過一級間接索引,可尋址的文件長度將變爲n×n塊。如果文件長度還大於n×n塊,還可以進行類似的擴充,即二級間接索引,其原理如圖5.22所示。
         

                     圖5.22文件的多級索引結構

    不過,大多數文件不需要進行多重索引,也就是說,這些文件所佔用的物理塊的所有塊號可以放在一個物理塊內。如果對這些文件也採用多重索引,則顯然會降低文件的存取速度。因此,在實際系統中,總是把索引表的頭幾項設計成直接尋址方式,也就是這幾項所指的物理塊中存放的是文件信息;而索引表的後幾項設計成多重索引,也就是間接尋址方式。在文件較短時,就可利用直接尋址方式找到物理塊號而節省存取時間。
    索引結構既適用於順序存取,也適用於隨機存取,並且訪問速度快,文件長度可以動態變化。索引結構的缺點是由於使用了索引表而增加了存儲空間的開銷。另外,在存取文件時需要至少訪問存儲器兩次以上,其中,一次是訪問索引表,另一次是根據索引表提供的物理塊號訪問文件信息。由於文件在存儲設備的訪問速度較慢,因此,如果把索引表放在存儲設備上,勢必大大降低文件的存取速度。一種改進的方法是,當對某個文件進行操作之前,系統預先把索引表放入內存,這樣,文件的存取就可直接在內存通過索引表確定物理地址塊號,而訪問存儲設備的動作只需要一次。當文件被打開時,爲提高訪問速度將索引表讀入內存,故又需要佔用額外的內存空間。

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章