1. 物理上看次兆,數(shù)據(jù)記錄是如何存儲的
先看 每一條數(shù)據(jù)項(xiàng)是如何存儲的翅帜;
然后 看這些數(shù)據(jù)項(xiàng)組成的記錄是如何存儲在物理塊上的患膛;
之后 看這些物理塊在磁盤上是如何分配的袁波;
從而 明白整個(gè)數(shù)據(jù)記錄的存儲方式。
1.1 數(shù)據(jù)項(xiàng)的存儲方式
(1)定位法
只能表示定長記錄的方法爬迟。換句話說橘蜜,不同數(shù)據(jù)項(xiàng)之間是通過長度來區(qū)別分開來的菊匿,系統(tǒng)為每個(gè)數(shù)據(jù)項(xiàng)按照最大的標(biāo)準(zhǔn)分配定長的字段付呕,空白部分就用空白字符來填充。
優(yōu)點(diǎn):簡單跌捆,使用最廣徽职。
缺點(diǎn):空間利用率低,尤其是當(dāng)數(shù)據(jù)的長度參差不齊時(shí)佩厚。
(2)相對法
可表示可變長記錄的存儲方法姆钉。不同數(shù)據(jù)項(xiàng)之間使用分隔符來分開。
優(yōu)點(diǎn):空間利用率比定位法高抄瓦。
(3)索引法
可表示可變長記錄的存儲方法潮瓶。每個(gè)數(shù)據(jù)項(xiàng)用一個(gè)指針指向其首地址,以此區(qū)分不同數(shù)據(jù)項(xiàng)钙姊。
優(yōu)點(diǎn):空間利用率高毯辅。
(4)標(biāo)號法
可表示可變長記錄的存儲方法。沒和數(shù)據(jù)項(xiàng)用一個(gè)特定的標(biāo)號開頭煞额。
比如SN WANG FN LING SX MALE YR 1982
其中的斜體SN表示surname思恐,SN表示firstname,SX表示sex膊毁,YR表示year of birth胀莹。
優(yōu)點(diǎn):空間利用率高
缺點(diǎn):當(dāng)記錄的數(shù)據(jù)項(xiàng)個(gè)數(shù)較多時(shí),標(biāo)號本身也占用了大量的空間婚温。
1.2 記錄在物理塊上的分配
磁盤與內(nèi)存交換數(shù)據(jù)是以物理塊為基本單位進(jìn)行的描焰,也就是說,每次訪問磁盤栅螟,至少存取一個(gè)物理塊荆秦。
當(dāng)記錄很小時(shí),記錄不跨塊嵌巷,全部在一個(gè)物理塊中萄凤,叫做不跨塊組織;
當(dāng)記錄很大時(shí)搪哪,記錄跨塊存放靡努,分在不同的物理塊,叫做跨塊組織。
跨塊時(shí)惑朦,物理塊的尾部存放下一個(gè)物理塊的地址兽泄。
1.3 物理塊在磁盤上的分配
早期的DBMS中,是由操作系統(tǒng)分配數(shù)據(jù)庫的物理塊的漾月,邏輯上相鄰的數(shù)據(jù)往往被分配到磁盤的不同區(qū)域病梢,在連續(xù)訪問數(shù)據(jù)庫中的數(shù)據(jù)時(shí),系統(tǒng)性能會嚴(yán)重下降×褐祝現(xiàn)代的DBMS中蜓陌,系統(tǒng)一次性向操作系統(tǒng)申請所需要的磁盤空間。
(1)連續(xù)分配
將一個(gè)文件的塊分配在磁盤的連續(xù)空間吩蔑,塊的次序就是它們存儲的次序钮热。
優(yōu)點(diǎn):順序存取非常有效
缺點(diǎn):不利于文件的擴(kuò)充和修改
(2)連接分配
邏輯上相鄰的物理塊之間采用指針鏈接。
優(yōu)點(diǎn):有利于文件的擴(kuò)充和修改
缺點(diǎn):存取效率低
(3)簇集分配
把文件分為若干簇集烛芬,文件中相關(guān)記錄存放在一個(gè)物理塊或相鄰的物理塊隧期,各簇集之間使用指針鏈接。
優(yōu)點(diǎn):有利于檢索速度的提高
缺點(diǎn):重新分配簇集時(shí)會引起大量數(shù)據(jù)的搬移
(4)索引分配
每個(gè)文件有一個(gè)邏輯塊號與其物理塊地址對照的索引赘娄。通過索引仆潮,可以查詢到文件中任一塊的地址。
優(yōu)點(diǎn):分配方法靈活遣臼,擴(kuò)充性置、修改方便
缺點(diǎn):訪問增加了邏輯塊號到物理塊地址映射的開銷;連續(xù)訪問性能不高暑诸。
1.4 (附加)數(shù)據(jù)壓縮的方式介紹
(1)消零或空白符法
使用一種特殊符號來表示零或者空白符蚌讼,比如使用 “#5” 來表示空白符 “bbbbb”。
(2)模式代替法
使用一省略符來代替重復(fù)的字符串个榕,比如使用 “@#” 來表示 “東南大學(xué)軟件學(xué)院“ 篡石,然后配套一個(gè)模式表:
東南大學(xué):@
軟件學(xué)院:#
(3)索引法
索引法是模式替代法的一種變種,將經(jīng)常出現(xiàn)的模式使用指針而非省略符來代替西采。指針指向模式表凰萨。