1第十二章:檔案管理系統12.2檔案的架構和擷取採用檔案結構考慮的因素:快速的擷取、容易更新檔案內容、節省儲存空間、簡單的操作、可靠性。五種基本架構:堆積(Pile)、循序檔案(SequentialFile)、索引循序檔案(IndexSequentialFile)、索引檔案(IndexFile)、雜湊檔案(HashFile)。2檔案結構:堆積(Pile)資料根據其儲存先後次序,放置於檔案中,每筆記錄有自己的欄位,不同記錄間,不一定相同。只是一群資料的集合,沒有特殊安排的次序性。3循序檔案(SequentialFile)每個記錄都是固定大小;欄位也是固定大小。每個記錄都有key的欄位,key的值必須不同。記錄的順序有時採key的順序。適合於批次(batch)模式。儲存在磁碟與磁帶,型態是相同的。不適於互動性高的應用,例如:時常查詢或更新。新增資料:相當困難,通常先寫到pile,儲存為log,再將這些記錄合併到循序檔案中。KeyField4索引循序檔案(IndexedSequentialFile)仍保有每個記錄的key,並利用key的順序當作儲存的順序。增加二個功能:索引、overflow檔案(類似log)。索引可以分成數個層級。IndexLevels12nMainFileOverflowFile5索引檔案(IndexedFile)多型態的索引方式,方便以多個欄位的值找尋記錄。ExhaustiveIndexExhaustiveIndexPartialIndex6雜湊檔案(HashedFile)不增加索引的欄位,利用雜湊函數(Hashfunction)直接找到所要的記錄。記錄通常是固定大小,每次運作只針對一筆記錄。fHashFunctionPrimaryFileOverflowFile712.7Unix的檔案系統Unix系統將檔案視為一連串的位元組,其邏輯式的檔案架構依應用程式需要而定。實際上分成下列四種型態:一般(Ordinary):目錄(Directory):階層式。特殊(Special):週邊程式。具名(Named):namedpipes。Inode:Unix用Inode(Informationnode)來管理Unix所有型態的檔案。每個檔案都是由一個inode所管理。儲存檔案的屬性及控制資訊:檔案模式(FileMode)、連結數目(LinkCount)、擁有者ID(OwnerID)、群組ID(GroupID)、檔案大小、檔案位址、上次存取時間、上次修改時間、上次indoe修改時間。檔案位址:包含13組3位元組的的指標。FileMode:16-bitflagthatstoresaccessandexecutionpermissionsassociatedwiththefile.12-14Filetype(regular,directory,characterorblockspecial,FIFOpipe9-11Executionflags8Ownerreadpermission7Ownerwritepermission6Ownerexecutepermission5Groupreadpermission4Groupwritepermission3Groupexecutepermission2Otherreadpermission1Otherwritepermission0OtherexecutepermissionLinkCount:NumberofdirectoryreferencestothisinodeOwnerID:IndividualowneroffileGroupID:GroupownerassociatedwiththisfileFileSize:NumberofbytesinfileFileAddresses:39bytesofaddressinformationLastAccessed:TimeoflastfileaccessLastModified:TimeoflastfilemodificationInodeModified:TimeoflastinodemodificationFigure12.13UNIXBlockAddressingScheme910Inode的優點優點:Inode大小比較小,可以載入記憶體。檔案小時,利用間接索引的機會比較少,因此會提昇效能。檔案理論上可以很大。在UnixV系統中,每個區塊空間1024bytes,可以包含256個區塊位置。層級區塊數目檔案的大小Direct1010KBSingleindirect256256KBDoubleindirect256*256=64K65MBTripleindirect256*64K=16M16GB1112.8Windows2000的檔案系統Windows2000支援的檔案系統包括:檔案分配表(FAT):可在DOS使用。NT檔案系統(NTFS):符合工作站和伺服器的需求。NTFS主要特色:可復原性:檔案異動類似transaction的概念(完成或不做),保有多餘的資訊,幫助復原系統狀態。安全性:利用物件的觀念,檔案有安全的屬性。支援大容量的硬碟及檔案。一般性的索引:每個檔案有其相對應的屬性,檔案的描述類似關聯式資料庫,可以利用不同屬性來做索引。NTFS的容量和檔案結構Sector:磁碟最小的儲存單位,一般是512bytes。Cluster:數個sectors集合成為一個cluster。Volume:邏輯上的磁碟分割概念,由數個clusters組成。12NTFS的容量(續)VolumeSizeSectorsperClusterClusterSize512MB1512B512MB–1GB21KB1GB–2GB42KB2GB–4GB84KB4GB–8GB168KB8GB–16GB3216KB16GB–32GB6432KB32GB12864KB