基本內容
檔案的邏輯結構是用戶可見結構。邏輯檔案從結構上分成二種形式:
一種是無結構的流式檔案,是指對檔案內信息不再劃分單位,它是依次的一串字元流構成的檔案。
一種是有結構的記錄式檔案, 是用戶把檔案內的信息按邏輯上獨立的含義劃分信息單位,每個單位稱為一個邏輯記錄(簡稱記錄)。
所有記錄通常都是描述一個實體集的,有著相同或不同數目的數據項,記錄的長度可分為定長和不定長記錄兩類。
在檔案系統設計時,選擇何種邏輯結構才能更有利於用戶對檔案信息的操作呢?
一般情況下,選取檔案的邏輯結構應遵循下述原則:
(1)當用戶對檔案信息進行修改操作時,給定的邏輯結構應能儘量減少對已存儲好的檔案信息的變動。
(2)當用戶需要對檔案信息進行操作時,給定的邏輯結構應使檔案系統在儘可能短的時間內查找到需要查找的記錄或基本信息單位。
(3)應使檔案信息占據最小的存儲空間。
(4)應是便於用戶進行操作的。
顯然,對於字元流的無結構檔案來說,查找檔案中的基本信息單位,例如某個單詞,是比較困難的。但反過來,字元流的無結構檔案管理簡單,用戶可以方便地對其進行操作。所以,那些對基本信息單位操作不多的檔案較適於採用字元流的無結構方式,例如,源程式檔案、目標代碼檔案等。除了字元流的無結構方式外,記錄式的有結構檔案可把檔案中的記錄按各種不同的方式排列,構成不同的邏輯結構,以便用戶對檔案中的記錄進行修改、追加、查找和管理等操作 。
記錄是一個具有特定意義的信息單位,它由該記錄在檔案中的邏輯地址(相對位置)與記錄名所對應的一組鍵、屬性及其屬性值所組成。
圖7.2是一個記錄的組成例。
圖7.2
圖中,1296是名為R的記錄在檔案中的邏輯地址,‘姓名:A’是該記錄的鍵,而‘性別’,‘出生年月’,‘工資’等是該記錄的屬性,緊跟在這些後面的是屬性值。一個記錄可以有多個鍵名,每個鍵名可對應於多項屬性。再者,根據各系統設計的要求不一樣,記錄既可以是定長的,也可以是變長的。記錄的長度可以短到一個字元,也可以長到一個檔案,這要由系統設計人員確定。
常用的記錄式結構檔案有以下幾種
(1)連續結構 (2)多重結構 (3)轉置結構 (4)順序結構