[數(shù)據(jù)庫系統(tǒng)概念-期末總結]——ch11

1.順序索引


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? part1:主索引


1.主索引:如果包含記錄的文件按照某個搜索碼的順序排列虐块,那么該搜索碼對應的索引稱為主索引,主索引也叫做聚合索引

這個例子中,第一列的branch-name是搜索碼荤西,而記錄按照該搜索碼的順序存放

2.順序與文件記錄中的物理順序不同的索引叫做輔助索引或者非聚集索引

3.稠密索引:文件中搜索碼的每一個值都有一個索引記錄伟桅,索引記錄包括搜索碼值以及指向該搜索碼值的第一個記錄的指針。

4.稀疏索引:只為搜索碼的某些值建立索引記錄越驻,也包括一個搜索碼值和指向具有該搜索碼值的第一個數(shù)據(jù)記錄的指針汁政。


上圖是為account文件建立的稠密索引和稀疏索引,假如要找Perryridge缀旁,稠密索引可以順著指針直接從文件中找到Perryridge的第一條記錄记劈,處理完這條,可以根據(jù)這條記錄中的指針找到按照搜索碼排在下一條的記錄诵棵,直到找到redwood這一條記錄停止抠蚣。如果是稀疏索引找的話,“mianus”是Perryridge前面的最后一個索引項履澳,沿著這一指針找到指向的記錄嘶窄,接著順序讀入,直到找到第一個Perryridge記錄距贷。

稠密索引可以更快的定位一個記錄柄冲,稀疏索引所占空間小,并且插入和刪除的時候維護開銷也比較小忠蝗。

5.多級索引:在外層索引上用二分法找到不大于所需搜索碼值的最大搜索碼值所對應的記錄现横,指針指向一個內層索引塊,對這一塊進行掃描,直到找到不大于所需搜索碼值的最大搜索碼值所對應的記錄


6.索引的更新:(一級索引)

刪除:首先找到要刪除的記錄戒祠,如果要刪除的搜索碼值在文件中是唯一的骇两,那么該搜索碼值要從索引中刪除。 對稀疏索引而言姜盈,如果被刪除搜索碼值在索引中有索引項低千,可以通過用下一搜索碼值替代這個索引項來實現(xiàn)對搜索碼值的刪除,如果下一個搜索碼值已經(jīng)有索引項馏颂,那么該索引項就應該刪除而不是替代示血。

插入:索引是稠密的 ,該搜索碼不在索引中救拉,把它加入該索引中难审。如果索引是為每個塊保存一個索引項的稀疏索引,只要沒有新塊產生亿絮,索引就不需要做改動告喊,產生新塊的條件下,新塊中的第一個搜索碼值插入索引

7.輔助索引

如果輔助索引的搜索碼不是一個候選碼壹无,輔助索引必須包含指向每一條記錄的指針葱绒,但是如果是主索引,那么可以僅僅指出各個搜索碼值的第一個記錄斗锭,因為主索引是按順序存放的地淀。所以輔助索引必須是稠密的,必須對每個搜索碼值都有一個索引項且對應文件中的每個記錄都有一個指針岖是。


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?part2 b+樹索引文件

1.索引組織文件的缺點:隨著文件的增大帮毁,索引查找性能和數(shù)據(jù)順序掃描性能都會下降。一些索引結構能在有數(shù)據(jù)插入和刪除的情況下保持其有效性豺撑,b+樹索引結構就是其中使用最廣泛的一個烈疚。

2.結構:每個葉結點到根的路徑長度都相同;非葉結點至少包含[n/2]個指針聪轿,最多n個爷肝;葉結點包含值的個數(shù)最少為[(n-1)/2];根結點包含的指針數(shù)可以小于[n/2]陆错,但是除非整棵樹之友一個結點灯抛,否則根必須至少包含兩個指針


指針pi 指向具有搜索碼值ki的一個文件記錄活著一個指針桶,桶中的每個指針指向具有搜索碼值ki的一個文件記錄音瓷,指針桶只在搜索碼不是主碼且文件不按搜索碼順序存放時才使用对嚼。


圖11-7: n=3,搜索碼是branch-name绳慎, 葉結點的指針直接指向文件

結點的指針數(shù)稱為該節(jié)點的扇出


3.特點:增加文件插入和刪除處理的時間開銷和空間開銷纵竖,但是這種開銷即使對于更新頻率較高的文件來說也可以接受因為他能夠避免文件重組的開銷漠烧。

4.查詢:需要遍歷樹中從根到某個葉結點的一條路徑

5.更新:

如果結點必須分裂:那么規(guī)則是n個值(葉結點原有的n-1個加上新插入的值)分成兩組,前[n/2]個放在原來的結點中靡砌,eg:3分成2已脓,1,剩下的放在新結點中通殃,在結點分裂后摆舟,我們必須將這個新結點加入b+樹結構中,

假如我們要在上面的11-8中加入clearview邓了, 分裂后,新結點的最小搜索碼是downtown媳瞪,把這個搜索碼值插入到被分裂結點的父結點中骗炉。


刪除上圖的downtown:



總的來說。為了刪除一個值蛇受,結點太小的話句葵,我們從父結點中把它刪除。這個刪除導致刪除算法的遞歸應用兢仰,直到到達樹的根結點或父結點在刪除后足夠滿或產生指針的重新分布乍丈。

6.b+樹文件組織

b+數(shù)結構不僅用做索引,同時也是文件中記錄的組織者

在b+樹文件組織中把将,樹葉結點中存儲的是記錄而不是指向記錄的指針轻专。由于記錄通常比指針大,一個葉結點中能存儲的記錄數(shù)目要比非葉結點中能存儲的指針數(shù)目少察蹲,但葉結點仍然要求至少是半滿的请垛。

改善b+樹的利用率,這個技術可以同時用于根結點和葉結點:

在插入時洽议,如果結點已經(jīng)滿了宗收,盡力把它的一些項重新分配到與他相鄰的結點,以給新項騰出空間亚兄。如果因為相鄰結點已滿而導致這一重分配失敗混稽,我們就要分裂結點,并在由原始結點分裂所產生的兩個結點和一個相鄰結點之間均勻的分配所有項审胚。




? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?part3:b樹索引文件

主要區(qū)別在于b樹去除了搜索碼值存儲中的冗余匈勋。b樹允許搜索碼值只出現(xiàn)一次,由于非葉結點中出現(xiàn)的搜索碼值不在b樹中其他任何地方出現(xiàn)菲盾,我們不得不為非葉結點中的每個搜索碼添加一個指針颓影。附加的指針指向文件記錄或相應搜索碼值對應的桶。


b樹中進行一次查找所訪問的結點數(shù)取決于搜索碼的位置懒鉴,刪除更加復雜诡挂,在空間上的優(yōu)勢對于大的索引來講意義不大碎浇。


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? part4:靜態(tài)散列

順序文件組織中的一個缺點就是我們必須訪問索引結構來定位數(shù)據(jù),或者使用二分法搜索璃俗,這將導致過多的io操作奴璃。基于散列的文件組織使我們能夠避免訪問索引結構城豁。

1.散列文件組織

通過計算所需記錄搜索碼上的一個函數(shù)直接獲得包含該記錄的磁盤塊地址

桶表示能存儲一條或者多條記錄的一個存儲單位苟穆,通常一個桶就是一個磁盤塊,但也可能小于或者大于一個磁盤塊唱星。

K表示所有搜索碼的集合雳旅,B表示所有桶地址的集合,散列函數(shù)h就是一個從K到B的函數(shù)

為了插入一個搜索碼值為Kt的記錄间聊,就計算h(Kt)來得到存放該記錄的桶的地址攒盈。

查找,假定k5和k7有相同的散列值哎榴,h(k5)=h(k7),如果我們執(zhí)行對k5的查找型豁,則桶h(k5)包含搜索碼是k5或者k7的記錄,因此尚蝌,必須查找桶中每條記錄的搜索碼值迎变,以確定該記錄是否是我們要查找的記錄。

2.散列函數(shù)

理想情況是將存儲的碼均勻的分布到所有桶中飘言,使每個桶中含有相同數(shù)目的記錄衣形。

3.桶溢出控制

假設插入一個記錄時,記錄映射的桶中具有存儲記錄的空間姿鸿,如果桶中沒有足夠的空間泵喘,就會發(fā)生桶溢出。桶溢出的原因:

??桶不足

??偏斜般妙。某些桶分配到的記錄比較多(多個記錄有相同的搜索碼+散列函數(shù)造成搜索碼的分布不均)

可以使用溢出桶來處理問題纪铺。

4. 散列索引

散列不僅可以用于文件的組織,還可以用于索引結構的創(chuàng)建碟渺,散列索引將搜索碼及相應指針組織稱散列文件結構鲜锚。


散列函數(shù)是計算賬號各位數(shù)字之和之后模7.


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?part5:動態(tài)散列法

1.靜態(tài)散列的問題:大多數(shù)數(shù)據(jù)庫都會隨時間而變大,如果要在這樣的數(shù)據(jù)庫上使用靜態(tài)散列苫拍,有三種選擇

a.根據(jù)當前文件大小選擇散列函數(shù)芜繁,這種選擇會使性能隨數(shù)據(jù)庫增大而下降

b.根據(jù)將來某個時刻文件的大小選擇散列函數(shù),盡管這樣可以避免性能下降绒极,但是初始時會造成相當大的空間浪費

c.隨著文件增大骏令,周期性對散列結構進行重組。復雜耗時

可擴充散列的動態(tài)散列技術:

桶地址表上方的i表明散列值h(k)中有i位需要用來決定對應于k的桶垄提,

舉個??:


? ? ? ? ? ? ? ? ? ? ? ? ? ?part6:順序索引和散列的比較

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末榔袋,一起剝皮案震驚了整個濱河市周拐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌凰兑,老刑警劉巖妥粟,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異吏够,居然都是意外死亡勾给,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門锅知,熙熙樓的掌柜王于貴愁眉苦臉地迎上來播急,“玉大人,你說我怎么就攤上這事售睹÷迷瘢” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵侣姆,是天一觀的道長。 經(jīng)常有香客問我沉噩,道長捺宗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任川蒙,我火速辦了婚禮蚜厉,結果婚禮上,老公的妹妹穿的比我還像新娘畜眨。我一直安慰自己昼牛,他們只是感情好,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布康聂。 她就那樣靜靜地躺著贰健,像睡著了一般。 火紅的嫁衣襯著肌膚如雪恬汁。 梳的紋絲不亂的頭發(fā)上伶椿,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天,我揣著相機與錄音氓侧,去河邊找鬼脊另。 笑死,一個胖子當著我的面吹牛约巷,可吹牛的內容都是我干的偎痛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼独郎,長吁一口氣:“原來是場噩夢啊……” “哼踩麦!你這毒婦竟也來了枚赡?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤靖榕,失蹤者是張志新(化名)和其女友劉穎标锄,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茁计,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡料皇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了星压。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片践剂。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖娜膘,靈堂內的尸體忽然破棺而出逊脯,到底是詐尸還是另有隱情,我是刑警寧澤竣贪,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布军洼,位于F島的核電站,受9級特大地震影響演怎,放射性物質發(fā)生泄漏匕争。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一爷耀、第九天 我趴在偏房一處隱蔽的房頂上張望甘桑。 院中可真熱鬧,春花似錦歹叮、人聲如沸跑杭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽德谅。三九已至,卻和暖如春萨螺,著一層夾襖步出監(jiān)牢的瞬間女阀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工屑迂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留浸策,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓惹盼,卻偏偏與公主長得像庸汗,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子手报,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內容

  • 因為之前就復習完數(shù)據(jù)結構了蚯舱,所以為了保持記憶改化,整理了一份復習綱要,復習的時候可以看著綱要想具體內容枉昏。 樹 樹的基本...
    牛富貴兒閱讀 6,875評論 3 10
  • 第一章 緒論 什么是數(shù)據(jù)結構陈肛? 數(shù)據(jù)結構的定義:數(shù)據(jù)結構是相互之間存在一種或多種特定關系的數(shù)據(jù)元素的集合。 第二章...
    SeanCheney閱讀 5,771評論 0 19
  • 原文鏈接:MySQL索引背后的數(shù)據(jù)結構及算法原理 本文以MySQL數(shù)據(jù)庫為研究對象兄裂,討論與數(shù)據(jù)庫索引相關的一些話題...
    加油小杜閱讀 863評論 0 8
  • B樹的定義 一棵m階的B樹滿足下列條件: 樹中每個結點至多有m個孩子句旱。 除根結點和葉子結點外,其它每個結點至少有m...
    文檔隨手記閱讀 13,221評論 0 25
  • 文/麗子 掐指算算啃匿,本人也算是顏值界的扛把子,除了臉大點蛆楞,牙齙點溯乒,腿短點,別的都還好豹爹。明明這么美的物裆悄,竟然拍成鬼...
    麗子a閱讀 634評論 0 0