數(shù)據(jù)庫存儲設(shè)備、文件組織與結(jié)構(gòu)(ppt 79頁).ppt_第1頁
數(shù)據(jù)庫存儲設(shè)備、文件組織與結(jié)構(gòu)(ppt 79頁).ppt_第2頁
數(shù)據(jù)庫存儲設(shè)備、文件組織與結(jié)構(gòu)(ppt 79頁).ppt_第3頁
數(shù)據(jù)庫存儲設(shè)備、文件組織與結(jié)構(gòu)(ppt 79頁).ppt_第4頁
數(shù)據(jù)庫存儲設(shè)備、文件組織與結(jié)構(gòu)(ppt 79頁).ppt_第5頁
已閱讀5頁,還剩73頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、01.10.2020,1,第六章 數(shù)據(jù)庫存儲結(jié)構(gòu),01.10.2020,2,主要內(nèi)容,6.1 數(shù)據(jù)庫存儲設(shè)備 6.2 文件組織 6.3 文件結(jié)構(gòu) 6.4 索引技術(shù),01.10.2020,3,6.1數(shù)據(jù)庫存儲設(shè)備 計(jì)算機(jī)中有兩級存儲,分別是主存和輔存 根據(jù)訪問數(shù)據(jù)的速度、成本和可靠性,存儲介質(zhì) 可分成以下六類:,01.10.2020,4,1高速緩沖存儲器(Cache) 簡稱為“高速緩存”,也就是一般說的Cache。Cache訪問速度快,但貴,容量小。 2. 主存儲器(Main Memory) 主存儲器簡稱為主存,或內(nèi)存 。主存中的數(shù)據(jù)在掉電或系統(tǒng)崩潰時,會全部丟失。,01.10.2020,5,3

2、. 磁盤存儲器(Magnetic-Disk Storage) 磁盤是目前最常用的外部存儲器,由磁性材料制成,數(shù)據(jù)存儲在磁盤表面。 磁盤是一種大容量的可直接存取的外部存儲設(shè)備。在掉電或系統(tǒng)崩潰后,仍能保持?jǐn)?shù)據(jù)不丟失。 硬磁盤的特性:,01.10.2020,6,硬磁盤的物理特性 硬磁盤的總?cè)萘繛椋?盤面數(shù)目每盤面的磁道數(shù)每磁道的盤塊數(shù)每盤塊的字節(jié)數(shù) 磁盤是一種直接存儲設(shè)備,可隨機(jī)讀寫任一盤塊。盤塊地址的形式是:,圖6.1 磁盤塊地址形式示意圖,01.10.2020,7,磁盤的性能指標(biāo) 磁盤的性能用磁盤的容量、存取時間、數(shù)據(jù)傳輸速度和可靠性四個參數(shù)衡量。 內(nèi)外存間的數(shù)據(jù)交換 訪問的數(shù)據(jù)不在主存時,

3、需通過外存加載,所以內(nèi)外存間要頻繁地進(jìn)行數(shù)據(jù)交換,每交換一次數(shù)據(jù),就稱為一次 I/O 操作。,01.10.2020,8,數(shù)據(jù)塊的長度不一定恰好等于記錄的整數(shù)倍,通常有兩種 組塊方式 : 不跨塊方式: 一個數(shù)據(jù)塊只包含若干完整記錄,不足以容納一個記錄的零頭空間放棄不用。 跨塊方式: 允許一個記錄跨在不同數(shù)據(jù)塊。這種組塊方式雖然可節(jié)省空間,但實(shí)現(xiàn)比較困難,用得較少。,01.10.2020,9,廉價磁盤冗余陣列 (Redundant Array of Inexpensive(或Indscendent) Disks,簡稱RAID) 它是利用一臺磁盤陣列控制器來統(tǒng)一管理和控制一組 ( 幾臺到幾十臺 )

4、磁盤驅(qū)動器,組成一個高度可靠的、快速的大容量磁盤系統(tǒng)。 實(shí)現(xiàn)途徑有兩個: 數(shù)據(jù)重復(fù)存儲 和通過并行提高數(shù)據(jù)傳輸速度 RAID 按照其基本特性,可分為八級 。,01.10.2020,10,4 磁帶 磁帶是一種順序存儲設(shè)備 ,即磁帶只能順序訪問,不能隨機(jī)訪問。 主要用于數(shù)據(jù)備份或數(shù)據(jù)歸檔。 磁帶的可靠性較好,主要有兩大用途: 作為磁盤的后援存儲器,存儲數(shù)據(jù)庫文件的副本 用來存儲磁盤上存儲不了的大型數(shù)據(jù)庫文件,數(shù)據(jù)庫中不常用的數(shù)據(jù)庫文件或歷史數(shù)據(jù)可以存儲在磁帶上。,01.10.2020,11,5 光存儲器 光存儲器是多媒體信息的主要存儲設(shè)備,作為分布式軟件的主要存儲介質(zhì),可存儲音頻、圖像一類的數(shù)據(jù)

5、。 目前流行的光存儲器是光盤只讀存儲器 (CD-ROM) 。,01.10.2020,12,6 快擦寫存儲器(Flash Memory) 快擦寫存儲器又稱為“電可擦可編程只讀存儲器”,快閃存在掉電后仍能保持?jǐn)?shù)據(jù)不丟失。 快閃存的缺陷是只能支持有限次擦寫。而且不能直接重寫,必須先擦去整組存儲器的內(nèi)存,然后再寫數(shù)據(jù)進(jìn)去。,01.10.2020,13,6.2 文件組織,外存中,數(shù)據(jù)庫以文件形式組織,而文件又是由記錄組成。記錄在物理文件中的實(shí)現(xiàn)就是本節(jié)討論的內(nèi)容。 文件組織的兩種方式:定長格式和變長格式。,01.10.2020,14,6.2.1定長記錄 就是每條記錄都是占用一定長度的字節(jié)數(shù)。記錄的排列也

6、就是一張表格每行有相同的長度,以一行為單元進(jìn)行增加刪除等修改操作。,01.10.2020,15,圖6.2 定長記錄的文件,01.10.2020,16,圖6.3 刪除記錄2,5,7后的文件結(jié)構(gòu),01.10.2020,17,如上圖每條記錄包含姓名、學(xué)號、班級三條信息。在每條記錄中對應(yīng)的信息占相同的字節(jié)數(shù),所以每條記錄的長度一定,構(gòu)成了一個含有四條記錄的定長記錄的文件。 存在的兩個問題: 刪除:刪除后是在其位置補(bǔ)充一個記錄還是忽略這個位置; 長度:若物理上每個塊的大小不等于每個記錄的長度倍數(shù),則必然在讀這樣的記錄時要訪問兩個塊。,01.10.2020,18,6.2.1.1 刪除方法 1. 刪除記錄后

7、,把記錄依次上移。 缺點(diǎn)移動次數(shù)過多。 2. 把最后的記錄補(bǔ)到刪除的位置。 只需移動一次。 以上兩個方法都需要移動結(jié)點(diǎn),操作不靈活,處于靈活的考慮必然會想到指針,就是第三種方法。,01.10.2020,19,3. 把刪除的結(jié)點(diǎn)用指針鏈接起來 首先,文件增設(shè)“文件首部”,其中有一個指針指向第一個被刪除的記錄位置,所有被刪除記錄的位置都用指針鏈接起來,構(gòu)成“空閑記錄鏈表”。 缺點(diǎn):這些被指針鏈接的記錄被稱為“被拴記錄”,若被刪記錄被刪掉,則指向記錄的指針稱為“懸掛指針”,所指空間稱為“垃圾”,也就是別人無法使用而又被空閑著。,01.10.2020,20,6.2.1.2. 插入方法 可以根據(jù)刪除的方

8、法而定,直接插入尾部,或插到空位置。 6.2.2變長記錄 實(shí)際應(yīng)用中定長記錄格式文件較多,但為了增強(qiáng)文件的靈活性,在數(shù)據(jù)庫系統(tǒng)中,有時需要文件中的記錄是變長格式。 變長記錄的表示有字節(jié)串形式和定長形式兩種。,01.10.2020,21,6.2.2.1 變長記錄的字節(jié)串表示形式 尾標(biāo)志法 把每個記錄看成連續(xù)的字節(jié)串,然后在每個記錄的尾部附加 “ 記錄尾標(biāo)志符 ” (), 表明記錄結(jié)束。圖 6.2 的定長記錄文件可以用圖 6.4 的格式表示。 記錄長度法 記錄的開始加一個記錄長度的字段來實(shí)現(xiàn),讀取數(shù)據(jù)時以此作為記錄結(jié)束與否的標(biāo)志。,01.10.2020,22,圖6.4 變長記錄的字節(jié)串表示形式,0

9、1.10.2020,23,字節(jié)串表示形式缺點(diǎn): 每條記錄長度不一,被刪除后的位置難于使用。 記錄要增長很難 。 “分槽式頁結(jié)構(gòu)”:每塊的開始設(shè)置一個“塊首部”,包含以下信息:塊中的記錄數(shù)目,只想塊中自由空間尾部的指針,登記每個記錄近的開始位置和大小的信息。,01.10.2020,24,圖6.5 分槽式頁結(jié)構(gòu),01.10.2020,25,6.2.2.2變長記錄的定長表示形式 預(yù)留空間技術(shù) 取所有記錄中最長的一個記錄的長度作為存儲空間的記錄長度,來存儲變長記錄。對于預(yù)留空間,仍如同定長格式的表格狀。 缺點(diǎn):如果每個記錄的差別很大,就會造成大量空間的浪費(fèi)。,01.10.2020,26,例如圖 6.4

10、 的字節(jié)串表示形式可以用圖 6.6 的預(yù)留空間技術(shù)實(shí)現(xiàn)。該方法一般在大多數(shù)記錄的長度接近最大長度時才使用,否則使用時空間浪費(fèi)很大。,圖6.6 變長記錄的預(yù)留空間表示形式,01.10.2020,27,指針技術(shù) 解決記錄長度差很大的方法,省去過多的空間浪費(fèi)。 每個定長記錄后面增加指針指向在上一方法中可以合并為同一記錄的其他記錄。 被指向的整體成為溢出塊。,01.10.2020,28,圖6.7 變長記錄的指針表示方式,01.10.2020,29,圖6.8 固定塊和溢出塊結(jié)構(gòu),01.10.2020,30,6.3 文件結(jié)構(gòu),文件中記錄的組織方式有無序件、有序文件、聚集文件和HASH 文件四種。 6.3.

11、1無序文件 無序文件也稱為堆文件無序文件的操作比較簡單,但查找效率比較低 無序文件的刪除操作比較復(fù)雜,常用的方法主要有以下三種:,01.10.2020,31,()首先找到被刪記錄所在的磁盤塊,然后讀到主存緩沖區(qū),在緩沖區(qū)中刪除記錄,最后把緩沖區(qū)內(nèi)容寫回到磁盤文件 ()在每個記錄的存儲空間增加一個標(biāo)志位,標(biāo)識記錄刪除與否,一般該標(biāo)志常為空。刪除一個記錄時,將此記錄的標(biāo)志位置“1”, 以后查找記錄時跳過有該標(biāo)志的記錄。 ()常用于定長記錄文件,刪除一個記錄時,總是把文件末尾記錄移到被刪記錄位置。,01.10.2020,32,6.3.2 有序文件 有序文件是指記錄按某個(或某些)域的值的大小順序組織

12、,一般最為常用的是按關(guān)鍵字的升序或降序排列,即每個記錄增加一個指針字段,根據(jù)主鍵的大小用指針把記錄鏈接起來。 文件中每個記錄增加一個指針字段,根據(jù)查找鍵的大小用指針把記錄連接起來。,01.10.2020,33,圖6.9 順序文件,01.10.2020,34,有序文件操作 刪除:只需修改指針即可。同定長記錄的方法三 插入: 1)定位:找到要插的位置。按查找鍵的順序 2)插入:在找到記錄的塊內(nèi),如果自由空間有空閑紀(jì)錄,那么插入;若沒有就插入到溢出塊中。 在初始的時候,可以保持無力順序和查找鍵的順序一致,以提高速度,若多次操作后變化很大,有必要重新組織一次。,01.10.2020,35,6.3.3

13、聚集文件 文件允許一個文件有多個關(guān)系的記錄組成,即記錄類型文件。 例:可以把有關(guān)一個人的全部記錄信息放在相鄰的位置,按人查找信息時就會很方便。,01.10.2020,36,圖6.10 插入一個記錄后的順序文件,01.10.2020,37,圖6.11 聚集文件例子,01.10.2020,38,6.3.4 HASH 文件 哈稀 (HASH) 文件又稱為散列文件,是一種支持快速存取的文件存儲方法。 1散列的概念: 設(shè)K是所有查找鍵值的集合,B是所有桶地址的集合。散列函數(shù)h是從K到B的函數(shù),它把每個查找鍵值映射到地址集合中的地址。其中每個桶的大小一定。,01.10.2020,39,檢索: 1)檢索Ki

14、的記錄,首先計(jì)算h(Ki)在B集合中 2)根據(jù)桶地址找到桶 3)桶內(nèi)查找 特點(diǎn):不同的查找鍵值的記錄可能在同一個桶內(nèi),找到桶后仍然有進(jìn)行檢測。 刪除:找到記錄直接刪除即可。,01.10.2020,40,2散列函數(shù) 要滿足兩個條件:1)使地址分布均勻; 2)地質(zhì)分布隨機(jī)。 常用方法:質(zhì)數(shù)除余法。 缺點(diǎn):函數(shù)的設(shè)計(jì),若設(shè)計(jì)不好會造成很大的不均勻性,查找時間的浪費(fèi)。,01.10.2020,41,3.散列碰撞 問題: 由于同所存儲的記錄數(shù)是一定的,再插入操作時很容易發(fā)生溢出。 原因:一是桶的數(shù)目少;二是散列的均勻性不好。 解決:1)溢出鏈法:每個同都作為基本桶存在, 若溢出系統(tǒng)提供一處同連接在基本桶后

15、面。 2)開放式散列法:只存在基本桶,若溢 出就插入其他空閑的桶。有兩種選擇方式: 1。在溢出桶下面的一個空閑桶; 2。采用二次散列的方法。,01.10.2020,42,圖6.12 散列結(jié)構(gòu)的溢出鏈,01.10.2020,43,.散列方法 常用的 HASH 方法有簡單 HASH 方法,動態(tài) HASH 方法和可擴(kuò)展的 HASH 方法 評價:散列方法必須選取恰當(dāng)?shù)纳⒘泻瘮?shù)。,01.10.2020,44,圖6.13 HASH桶目錄示例,01.10.2020,45,1.簡單 HASH 方法。 該方法采用固定個數(shù)的 HASH 桶,即把文件劃分為 N 個HASH桶,每個HASH 桶對應(yīng)一個磁盤塊,每個 H

16、ASH 桶有一編號。 缺點(diǎn): 只能有效地支持 HASH 域上具有相 等比較的數(shù)據(jù)操作。 由于 HASH 桶的數(shù)量一成不變,當(dāng) 文件記錄較少時 ,影響記錄的存取效率。,01.10.2020,46,2.動態(tài) HASH 方法 動態(tài) HASH 方法中,HASH 桶與磁盤塊一一對應(yīng)。 HASH 桶的數(shù)量不是固定的,而是隨文件記錄的變化而增加或減少的。,01.10.2020,47,圖6.14 動態(tài)HASH方法結(jié)構(gòu),01.10.2020,48,3.可擴(kuò)展的 HASH 方法 特點(diǎn): 按照實(shí)際需要申請或釋放空間。 查找: 求出h(Ki)前i位值m,沿桶地指表位置m處的指針到達(dá)某個同中去找記錄。 插入: 先查找到

17、相應(yīng)的桶,若有空閑空間直接插入;,01.10.2020,49,圖6.15 可擴(kuò)展的HASH方法的結(jié)構(gòu),01.10.2020,50,分裂桶: 情況一:指向這個桶只有一個指針。增加i的值,桶地址表加倍,每一項(xiàng)之分列成相鄰的兩項(xiàng),但是指向同一個桶。新申請的桶,就得到其中第二個指針。 情況二:指向這個桶有多個指針。則桶地址表不用擴(kuò)大只要分裂桶可以了。申請新的桶空間,原來的桶分出后一半指針指向新的桶,從新分配分裂的桶中的記錄。,01.10.2020,51,刪除: 查找到Ki的記錄,從桶內(nèi)刪除。刪除后如桶為空,桶也刪除,還有可能引起桶地址的收縮。 顯著優(yōu)點(diǎn): 數(shù)據(jù)量增長后仍然保持由原有的操作和查詢性能 空

18、間開銷達(dá)到最小,01.10.2020,52,6.4 索引技術(shù),索引的組織方式主要有線性索引和樹形索引兩類 。 6.4.1線性索引 線性索引可分為稠密索引和稀疏索引兩種。 1.稠密索引 對主文件中每一個查找鍵值都建立一個索引記號 優(yōu)點(diǎn) :查找、更新數(shù)據(jù)記錄方便, 存取速度快 缺點(diǎn) :索引項(xiàng)多, 索引表大, 空間代價大 .,01.10.2020,53,2.稀疏索引 只對主文件中若干查找鍵值建立一個索引記號。 在插入操作較多的應(yīng)用中采用稀疏索引方式是不太適宜的。,01.10.2020,54,圖6.16.索引結(jié)構(gòu),01.10.2020,55,圖6.17 學(xué)生關(guān)系索引方式,01.10.2020,56,6

19、.4.2 B樹 1.平衡樹的概念 m階平衡樹或者為空,或者滿足下面條件: 每個節(jié)點(diǎn)之多有m棵子樹 根節(jié)點(diǎn)或?yàn)槿~結(jié)點(diǎn),或至少有兩棵子樹 每個非葉結(jié)點(diǎn)至少有m/2棵子樹 根結(jié)點(diǎn)到葉結(jié)點(diǎn)的每一條路徑都有同樣的長度,即葉結(jié)點(diǎn)在同一層次上 平衡樹分為B+樹和B樹,01.10.2020,57,圖6.18 多級索引,01.10.2020,58,B樹在上述定義基礎(chǔ)上同時約定: 除葉結(jié)點(diǎn)之外的所有其它結(jié)點(diǎn)的索引塊最多可存放 m -1 個主碼值和 m 個地址指針。其格式為 : 葉結(jié)點(diǎn)上不包含數(shù)據(jù)記錄本身,而是由記錄索引項(xiàng)組成的記錄索引塊,每個記錄索引 項(xiàng)包含有主碼值和地址指針。,01.10.2020,59,一般假

20、設(shè),每一個索引塊能容納的索引項(xiàng)數(shù)是個奇數(shù),且 m=2d-1 3; 每一個記錄索引塊能容納的記錄索引項(xiàng)也是個奇數(shù),且n=2e-13。,01.10.2020,60,圖6.19 多級索引的B 樹,01.10.2020,61,6.4.3 B+ 樹 1結(jié)構(gòu) 每個結(jié)點(diǎn)之多有m-1各查找鍵Ki,m個指針Pi;如上圖。,01.10.2020,62,葉結(jié)點(diǎn): 葉結(jié)點(diǎn)的指針指向主文件的記錄;查找鍵在m-1/2m-1之間;葉結(jié)點(diǎn)最后的指針指向下一葉結(jié)點(diǎn)。 非葉結(jié)點(diǎn): 組成多級稀疏索引,指針在m/2m之間,指針Pi指向所有查找鍵大于等于Ki-1,小于Ki。,01.10.2020,63,圖20 B+樹的模型,01.10

21、.2020,64,圖6.21 圖6.19中的樹的樹,01.10.2020,65,查詢: 方法:先找第一個大于k的查找鍵值,沿其左面的指針到達(dá)下一層,以此查找下去。 特點(diǎn):查詢的層數(shù)相同為樹的高度,因?yàn)槎际窃谌~結(jié)點(diǎn)鏈接主文件。,01.10.2020,66,2修改操作: 不引起索引結(jié)點(diǎn)分裂的插入 若以在葉結(jié)點(diǎn)出現(xiàn),直接插入記錄; 否則,找到第一個大于的查找鍵值,在其前面插入,其后的都向后移。,01.10.2020,67,不引起索引結(jié)點(diǎn)合并的刪除; 查找到主文件,刪除記錄; 若主文件中還有同查找鍵的記錄不修改索引; 若無,從葉結(jié)點(diǎn)中刪除相應(yīng)的鍵值和指針。 引起分裂的插入; 插入葉結(jié)點(diǎn)后,把多出來的分

22、裂出去;修改父結(jié)點(diǎn),插入心結(jié)點(diǎn)中的最小值,同理其父結(jié)點(diǎn)進(jìn)行修改。,01.10.2020,68,圖6.22 在圖6.21中插入值為41數(shù)據(jù)記錄后的樹,01.10.2020,69,引起合并的刪除 在刪除葉結(jié)點(diǎn)后,引起結(jié)點(diǎn)不符合定義,將被刪除,若父結(jié)點(diǎn)中有也將刪除,導(dǎo)致合并的發(fā)生。 B+ 樹的性能分析 顯著優(yōu)點(diǎn) :搜索代價較小 ; 解決了數(shù)據(jù)記錄在插入,刪除和未用回收等存儲組織問題 。,01.10.2020,70,圖6.23 在圖6.21 中刪除主碼值為26的數(shù)據(jù)記錄后的樹,01.10.2020,71,小結(jié),數(shù)據(jù)庫是數(shù)據(jù)的有序集合,需保留在計(jì)算機(jī)外存介質(zhì)上反復(fù)應(yīng)用。由于實(shí)際應(yīng)用系統(tǒng)數(shù)據(jù)規(guī)模都很龐大,

23、加之經(jīng)常要從數(shù)據(jù)集合中檢索需要的數(shù)據(jù),所以數(shù)據(jù)組織的方式,數(shù)據(jù)的定位方式,以及數(shù)據(jù)的維護(hù)策略的選取十分重要。,01.10.2020,72,在磁盤中,數(shù)據(jù)庫以文件形式組織。文件組織有兩種方法:一種是把記錄設(shè)計(jì)成定長格式,也就是每個文件只存儲某一確定長度的記錄;另一種是變長格式,使之能存放不同長度的記錄。實(shí)現(xiàn)變長記錄的技術(shù)有多種,包括分槽式頁結(jié)構(gòu)、指針方法和保留空間等方法。,01.10.2020,73,小結(jié),文件結(jié)構(gòu)有堆文件、順序文件、散列文件和聚集文件等四種。為了提高查找速度,可以為文件建立索引或散列機(jī)制。 索引有稠密索引、稀疏索引和多級索引等形式。索引順序文件組織的主要缺陷是隨著文件的增大,性能會下降。為了克服這個缺陷,可以使用B、B+樹索引。B+樹索引是平衡樹,即從樹根到樹葉所有路徑長度相等。這種查找是簡單有

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論