《資料庫系統概念》12-檔案的組織

來源:互聯網
上載者:User

標籤:插入資料   base   post   學習資料   指示   structure   gpo   解決   不能   

一個資料庫被映射到多個不同的檔案,這些檔案由底層的作業系統來維護。每個檔案分成定長的儲存單元,稱為塊(bolck),塊是儲存分配和資料轉送的基本單元。資料庫預設的塊在4-8k之間。通常沒有記錄比塊更大(圖片音頻等大檔案先不考慮),此外還要求每條記錄儲存在單個塊中。

 

一、定長記錄
instructor表的屬性有:ID char(5); name char(20)。假設每個字元佔用1位元組,則每條記錄佔用25位元組,不能將這些記錄順序儲存,否則會出現跨塊的情況;而且刪除記錄時,將後面的記錄依次向前移動開銷很大。為瞭解決跨塊的問題,每個塊只儲存整數條記錄,多餘的空間暫時不用。而在刪除記錄時,可以將最後一條記錄移動到被刪除記錄的位置,而不是將所有後面的記錄依次向前移動。此外考慮到插入操作往往比刪除操作更為頻繁,可以將刪除記錄後留出的空間給下次的插入資料佔用。
但插入記錄時,如何找到被刪除記錄的位置呢:可以在檔案頭部留出一定空間來儲存第一條被刪除記錄的位置,第二條記錄被刪除後,其位置被記錄在第一條刪除記錄的位置,這樣依次進行,形成了圖示的情況:

被刪除的記錄形成了一條鏈表(linked list),這兒也稱為空白閑列表(free list)。每次新插入資料時,都插入header指向的地址,同時header中的地址更新為下一條被刪除記錄的地址。

 

二、變長記錄

A)儲存方式
資料表中包含變長屬性時就會涉及到變長記錄的儲存。不管何種變長儲存技術,都需要解決這兩個基本問題:如何描述一條記錄,可以方便地擷取其中的屬性;如何在塊中儲存一條記錄,可以使它被方便地擷取到。
一條有變長屬性的記錄通常具有兩部分:定長的初始部分,然後是緊隨其後的變長部分。定長部分用(位移量,長度)這樣的格式來表示,位移量指示了資料的起始位置,長度即為變長部分的長度。變長部分在定長部分之後連續儲存。

樣本為instructor(ID varchar(5);name varchar(20);dept_name varchar(20);salary numeric(8,2))的儲存方式,ID name dept_name是變長的(假定位移量、長度分別佔用2個位元組);salary是定長的,所以直接儲存。
也示範了空位元影像(null bitmap)的使用,如果屬性salary是空的,則空位元影像的第4位會被置為1,儲存salary的12-19位會被忽略。1位元組的空位元影像可以應對最多8個屬性的表結構,如果有更多屬性,則需要擴充空位元影像的長度。這種方式以額外的空位元影像讀取為代價,節約了儲存空間,在具有很多屬性同時這些屬性多為空白的表中是很有效。

 

B)在塊中儲存變長記錄
在塊中儲存變長記錄時一般使用分頁的槽結構(slotted-page structure),,每個塊(block)中都有header:

header中包含的資訊有:塊中條目的個數、空閑空間的結尾處、每條記錄的入口(entry,包含記錄位置和大小)。記錄在塊中連續儲存,但是,是從塊的尾部開始存起的。每次插入新的紀錄時,就放置在空閑空間的末尾,同時在header中儲存這條記錄的入口資訊;當刪除一條記錄時,被刪除記錄前的記錄依次先後移動,以佔據被刪記錄的空間。由於每個塊的體積在4-8k之間,並不算太大,所以這種移動的開銷相對較小。在分頁的槽結構中,資料指標不是直接指向資料,而是指向資料的入口(entry),於是資料在塊中可以任意被移動,這可以避免塊中片段的產生。

 

學習資料:Database System Concepts, by Abraham Silberschatz, Henry F.Korth, S.Sudarshan

《資料庫系統概念》12-檔案的組織

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.