檔案的邏輯與物理結構 不完善,只是基礎輪廓

2021-05-22 05:23:39 字數 3024 閱讀 6530

首先看第乙個,這是理解後乙個概念的關鍵。大家都知道,檔案按其邏輯結構可以分為:有結構的檔案,這是由若干個記錄所構成的,又稱為記錄式檔案;無結構檔案,這是直接由字串行所構成的檔案,故又稱為流式檔案,但是流式檔案是記錄式檔案的特例,即其每個記錄中只含有乙個字元。所以對於檔案,以下只看成有結構的,即由記錄構成的。那麼現在,我們上公升乙個層次,什麼是檔案的邏輯結構?從哲學的角度說邏輯結構,其實說穿了就是相互之間的關係,那對於檔案的邏輯結構就是記錄之間的相互關係。再上公升乙個層次就是每個記錄在檔案中的位置。我們也籠統的稱之為順序,那麼如果你要寫乙個檔案,一定有個潛意識的排列順序(對於記錄檔案,就是第乙個記錄是什麼,第二個記錄是什麼,…

;對於流式檔案也一定有個字元序,總之這樣才能有意義),那麼這個排列順序就是邏輯結構。這些順序是怎麼確定的,一般有順序與索引兩種,由這兩種方式來決定記錄在檔案中的位置。

邏輯檔案的形式主要有:

1) 順序檔案,其記錄是按某種順序排列所形成的,記錄在檔案中的位置由某種順序決定,第乙個位置上的記錄,第二個位置上的記錄,

…,由某種順序來決定記錄在檔案中的位置。

2) 索引檔案,記錄在檔案中的位置由索引表來指向,其實是按某個記錄鍵來確定位置的,即第乙個位置的記錄在哪,第二個位置的記錄在哪

....

。由索引表來決定這些位置上都是哪些記錄。

3) 索引順序檔案,上述的兩種相結合,將順序檔案中的記錄先分為組,為順序檔案建立一張索引表,在索引表裡為每組中的第乙個記錄建立索引項,記錄在檔案中的位置由索引表和順序來決定。

以上這些邏輯的組織方式,都形成乙個檔案,這個檔案是具有一定的邏輯結構的,即每個記錄在檔案中都有其自己的位置。現在,在您的腦中就存在乙個檔案,這個檔案是從使用者的視角來看的,它具有一定的邏輯結構,不管這些記錄的位置是怎麼確定的

(順序也罷,索引表來指向也罷

),但是,它們在檔案中的位置現在是確定的,同時也不管這些記錄在磁碟裡是怎麼儲存的。那它就是乙個具有了邏輯結構的檔案,看成乙個客觀存在就是了。對,有了這個概念對於我們理解物理結構大有幫助。

現在看看檔案的物理結構,是指檔案在物理儲存上的結構。在此之前您的腦有要有二個概念:一是,現在存在乙個具有了具體邏輯結構的檔案,即這個檔案中的記錄的位置是確定的,也就是對此檔案,在邏輯上有了第一位置上是什麼記錄,第二個位置上是什麼記錄,

…。二是,物理結構是為邏輯結構服務的,從使用者的角度看這個檔案的邏輯的結構是這個樣子的,這只是個虛擬中的概念,但是任何虛擬最終都要實體來體現,怎麼儲存來體現檔案的記錄之間的位置關係呢,對,這就是物理結構。它是為體現邏輯結構服務的。邏輯檔案

+外存分配方式->物理檔案。 1)

連續分配 要求為每個檔案分配一組相鄰的盤塊。這種分配方式保證了邏輯檔案中的記錄順序與儲存器中檔案占用盤塊的順序的一致性,為使系統能找到檔案存放的位址,應在目錄項的檔案實體地址欄位中,記錄該檔案第乙個記錄所在的號和檔案長度,邏輯結構的檔案最終要在物理上體現出來,即物理上如何體現檔案的邏輯結構。這種盤塊的相鄰關係,體現了邏輯上的相鄰位置關係。優點:順序訪問容易,順序訪問速度快;缺點:要求有連續的儲存空間,必須事先知道檔案的長度,易造成碎片。 2)

鏈結分配 檔案的邏輯結構可以通過鏈結指標體現,邏輯上相鄰的位置關係,通過物理上的上下塊之間的指標來體現相鄰位置關係。可通過在每個盤塊上的鏈結指標,將同屬於乙個檔案的多個離散的盤塊鏈結成乙個鍊錶,由此形成的物理檔案稱為鏈結檔案。可顯著消除了外部碎片,故可提高外在空間的利用率,且無須知道檔案的長度,根據檔案的當前需要,為它分配必需的盤塊。當檔案動態增長時,可動態地再為它分配盤塊,此外,對檔案的增、刪、改也十分方便。可分為隱式鏈結和顯式鏈結。注:外存的空間,是按一定大小劃分成盤塊的,是盤塊的集合。

cluster

,在分配盤塊時,以簇為單位進行。

fat,是磁碟上所有檔案的鏈結表,表的序號是物理盤塊號,因為磁碟分成了盤塊,從

0開始一直到

n-1fcb

的實體地址欄位中。查詢記錄的過程是在記憶體中進行的,所以顯著地提高了檢索速度。注,對於外存,鏈結指標即位址是盤塊號。但是不能支援高效的直接訪問,同時fat也需要占用較大的記憶體空間。 3)

索引分配

檔案的邏輯結構體現在索引表中,這個索引表不同於檔案邏輯結構中的索引表,邏輯結構中的索引是索引記錄鍵相關的東西,而講到物理結構時,是假設其邏輯結構已經存在,即檔案的上下相鄰位置關係已經存在,所以在物理上要怎麼體現這種上下相鄰關係。將邏輯上的相鄰位置關係在物理上體現出來:即哪些塊在邏輯上是相鄰的,所以按檔案的邏輯順序建立了物理檔案盤塊的索引表,這些檔案的邏輯關係體現在索引表中,即在邏輯上或是按邏輯的順序由哪些塊構成的,總之是按邏輯順序排序的盤塊號集合,即第乙個位置的記錄在哪,第二個位置的記錄在哪,

…。對於索引分配一般有:

單級索引分配 事實上,在開啟檔案時,只須把該檔案占用的盤塊的編號調入記憶體即可,完全沒有必要將整個

fat表調入記憶體,將每個檔案所對應的盤塊號集中地存放在一起,為每個檔案分配乙個索引塊表,把分配給該檔案的的有盤塊號,都記錄在該索引塊中,因而該索引就是乙個含有許多盤塊號的陣列。在建立乙個檔案時,便須在為之建立的目錄項中,填上指向該索引塊的指標。這種分配方式支援直接訪問,當要讀檔案的第

i個盤塊時,可以方便地直接從索引塊中找到第

i塊盤的盤塊號。同時也不會產生外部碎片。

其實索引的方法就是將鏈結的方式(只有下乙個是什麼的概念,沒有第幾個是什麼的概念,所以不能直接讀取)順序文字化,即邏輯位置關係(第1,第

2,第3,

…)體現在索引表中,而不是指標。但是問題是可能會花費較多的外在空間,當建立乙個檔案時,要為之分配乙個索引塊,將分配給檔案的盤塊號記錄在其中,即要文字化這種邏輯關係。

多級索引分配 當檔案過大時,已經裝滿一索引塊時,

os便為之再分配乙個索引塊,用於以後繼續為之分配的盤塊號記錄,依此類推要建立這些索引塊的索引,將各索引塊按序組織起來。

混合方式分配 將直接位址,一級索引,

…,多級索引集合在一起,以適應不同檔案大小的需要。其實直接位址部分就是相當於索引塊本身,適合於小檔案的分配。而一級索引是指向的是索引塊。

總之,當你有了乙個邏輯上的檔案後,機器為這個檔案分配磁碟,並將其存入磁碟,這種分配方式,要保證從磁碟上將檔案讀出來後,仍能保證邏輯上的一致性。這就是說檔案在外存上儲存時,分配方式要保證檔案在邏輯上一致。所以物理結構就是指邏輯檔案在這些分配方式下所形成的檔案結構。

檔案的邏輯結構與物理結構

邏輯結構 指乙個檔案在使用者面前所呈現的形式.邏輯結構有兩種形式 記錄式檔案 有結構式檔案 字元流式檔案 無結構式檔案 也稱流式檔案.1 順序檔案,其記錄是按某種順序排列所形成的,記錄在檔案中的位置由某種順序決定,第乙個位置上的記錄,第二個位置上的記錄,由某種順序來決定記錄在檔案中的位置。2 索引檔...

邏輯結構與物理結構

1 其實從字面理解就好,不要因為想的太多就把兩者混在一起。2 首先梳理清楚資料結構的層次 如圖 然後,每種邏輯結構,都可以由不同的儲存結構進行儲存 劃重點 3 最後 由1 邏輯結構真的就只是邏輯結構,是腦子裡對資料之間聯絡的一種理解。ps 對概念模型 邏輯模型 物理模型的理解在資料庫中。資料結構層次...

邏輯結構與物理結構

按照視點的不同,我們把資料結構分為邏輯結構和物理結構 邏輯結構是指,資料物件中資料元素之間的相互關係有以下四種 集合結構 集合結構 這種結構中的資料元素除了同屬於乙個結合之外,它們之間沒有其他關係。各個元素之間都是平等的。它們是共同屬性就是同屬於同乙個結合 線性結構 線性結構中資料之間都是一對一的關...