樹形目錄的優(yōu)點(diǎn):
1)解決了重名問題。
2)有利于文件分類3)提高檢索文件的速度4)能進(jìn)行存取權(quán)限的控制。
關(guān)于本節(jié)的內(nèi)容可以在MS-DOS或UNIX操作系統(tǒng)中進(jìn)行練習(xí),以理解目錄結(jié)構(gòu)?捎玫拿钣校篸ir、tree、md、cd、rd、del等。
五、文件的邏輯結(jié)構(gòu)( 領(lǐng)會(huì) )
前面講的是目錄,現(xiàn)在講的是文件。文件的結(jié)構(gòu)是指文件的構(gòu)造方式。
什么是文件的 邏輯結(jié)構(gòu) :由 用戶構(gòu)造的文件 稱為文件的邏輯結(jié)構(gòu)。 如一篇文檔、一個(gè)數(shù)據(jù)庫記錄文件等,在用戶看來是一些文字和數(shù)字或多媒體信息的有機(jī)組合。
邏輯文件有兩種形式: 流式文件 和 記錄式文件 .
流式文件 是指用戶對文件內(nèi)信息不再劃分的可獨(dú)立的單位,如我們的word文件,圖片文件等。整個(gè)文件是以順序的一串信息組成。
記錄式文件 :是指用戶對文件內(nèi)信息按邏輯上獨(dú)立的含義再劃分信息單位,每個(gè)單位為一個(gè)邏輯記錄。每個(gè)記錄可以獨(dú)立存取。這個(gè)在數(shù)據(jù)庫中我們學(xué)得比較多,容易理解。
六、文件的物理結(jié)構(gòu)( 領(lǐng)會(huì) )
1、什么是文件的 物理結(jié)構(gòu) :由文件系統(tǒng)在存儲(chǔ)介質(zhì)上的 文件構(gòu)造方式 稱為文件的 物理結(jié)構(gòu) . 不論用戶看來是什么文件,在存儲(chǔ)介質(zhì)上存儲(chǔ)時(shí),按何種構(gòu)造方式記錄呢,因?yàn)榻橘|(zhì)上的存儲(chǔ)單位是物理塊,那么這些物理快是順序存放,還是鏈?zhǔn)浇Y(jié)構(gòu),或者索引結(jié)構(gòu),都要由文件系統(tǒng)結(jié)構(gòu)來實(shí)現(xiàn)。
2、 邏輯文件 在磁盤上的 組織方式 :
1) 順序結(jié)構(gòu) :顧名思義,順序結(jié)構(gòu)就是指,把邏輯文件的記錄(內(nèi)容)按其本身的順序(邏輯記錄的順序)在磁盤上也按序存放在連續(xù)的塊中。讀取時(shí)也從第一個(gè)記錄開始按順序進(jìn)行。在文件目錄中指出文件名,存放的起始?jí)K號(hào)和占用塊數(shù)。
順序文件的最大優(yōu)點(diǎn)是存取速度快(可以連續(xù)訪問)。而問題主要是存儲(chǔ)空間利用率不高、輸出文件時(shí)難以估計(jì)需要多少磁盤塊、影響文件擴(kuò)展。
2) 鏈接結(jié)構(gòu) :如果邏輯文件中的各個(gè)邏輯記錄任意存放到一些磁盤塊中,再用指針把各個(gè)塊按邏輯記錄的順序鏈接起來,在文件目錄中只記錄第一塊的地址和最后一塊的地址,那么這種文件組織方式就是鏈接結(jié)構(gòu)。
鏈接結(jié)構(gòu)解決了順序結(jié)構(gòu)中的所有問題,所有空閑塊都可以被利用,在順序讀取時(shí)效率較高但需要隨機(jī)存取時(shí)效率低下(因?yàn)橐獜牡谝粋(gè)記錄開始讀取查找)。此外,對于鏈接結(jié)構(gòu),也有一些問題要注意:由于塊中要存放指針信息,因此一部分空間被占用;讀出信息時(shí)要把指針信息分離出來;還要防止指針丟失或破壞造成的混亂,所以又要增加一些管理的信息?傊?zhǔn)浇Y(jié)構(gòu)會(huì)使用于存放文件信息的空間減少。
3) 索引結(jié)構(gòu) :索引結(jié)構(gòu)是實(shí)現(xiàn)非連續(xù)存儲(chǔ)的另一種方法,索引結(jié)構(gòu)為每個(gè)文件建立一張“索引表”,把指示每個(gè)邏輯記錄存放位置的指針集中在索引表中。(最直觀的索引結(jié)構(gòu)就比如我們的網(wǎng)站,首頁就相當(dāng)于一個(gè)索引表,每個(gè)鏈接記錄了一個(gè)文件的位置,當(dāng)我們點(diǎn)擊時(shí),就可以找到那個(gè)文件)
文件目錄中指出文件名的索引表位置,而索引表中每個(gè)項(xiàng)指出一個(gè)邏輯記錄的存放位置。存取文件時(shí)根據(jù)索引表中的登記項(xiàng)來查找磁盤上的邏輯記錄。
索引結(jié)構(gòu) 既適合順序存取記錄,也可以方便地隨機(jī)存取記錄,并且容易實(shí)現(xiàn)記錄的增刪和插入,所以索引結(jié)構(gòu)被廣泛應(yīng)用。但是索引結(jié)構(gòu)增加了索引表,要占用部分空間并增加讀寫索引表的時(shí)間。當(dāng)索引項(xiàng)很多時(shí),還要考慮采用 多級(jí)索引結(jié)構(gòu) .
七、記錄的成組與分解( 簡單應(yīng)用 )
1、什么是 記錄的成組與分解 :由于磁盤塊的大小是預(yù)先劃分好的,大小固定,而邏輯記錄的大小是用戶文件性質(zhì)決定的,不一定和塊大小一致,如果邏輯記錄比物理塊小得多時(shí),可以把多個(gè)邏輯記錄存放在一個(gè)塊中,這就是記錄的成組,用戶使用時(shí)再把讀取的一塊信息中分離出所需的記錄,這就是記錄的分解。
2、 記錄的成組 :把若干個(gè)邏輯記錄合成一組存入一塊的工作稱為“記錄的成組”,每塊中邏輯記錄的個(gè)數(shù)稱“ 塊因子 ”
利用 主存緩沖區(qū) 可以把多個(gè)邏輯記錄一次性保存到磁盤塊上。也就是當(dāng)記錄要求存盤時(shí),先存入主存緩沖區(qū),緩沖區(qū)的大小等于最大邏輯長度乘以成組的塊因子,就是塊的大小。
在緩沖區(qū)未存滿時(shí),不啟動(dòng)磁盤寫,這樣就提高了存儲(chǔ)空間的利用率,減少啟動(dòng)外設(shè)的次數(shù),提高了系統(tǒng)的工作效率。
3、 記錄的分解 :這是記錄成組的一個(gè)逆過程,先從磁盤中找到記錄所在的塊,并將本塊讀入主存緩沖區(qū),再從緩沖區(qū)取出所需要的記錄送到用戶工作區(qū)。如果用戶所需的記錄已經(jīng)在緩沖區(qū)中,則不需要啟動(dòng)外設(shè)讀塊信息,這也可以提高系統(tǒng)工作效率。
相關(guān)推薦:2010年自考數(shù)據(jù)庫及其應(yīng)用重點(diǎn)知識(shí)講解匯總