999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

記錄及記錄集存儲結構的探討

2008-12-31 00:00:00王保志
中國校外教育(下旬) 2008年20期

[摘要]本文探討了數據庫管理系統中記錄及記錄集的存儲結構技術。

[關鍵詞]記錄 記錄的存儲 記錄集合的存儲

一、引言

數據庫中的數據是用來描述現實世界中具體事物的。在關系模型中,通常把那些描述事物所必需的屬性組合起來,構成一個元組,使得每一個元組正好表示現實世界中的一個事物。每一個元組對應著存儲結構中的一個數據記錄,每個邏輯頁面內可以存放若干個數據記錄。怎樣把一個元組描述成一個數據記錄呢?

二、記錄和記錄類型

數據通常都以記錄(record)的形式存儲的。每條記錄有相關的數據值或數據項匯集組成,其中每個值由一個或多個字節構成,并與記錄中的一個特定字段(field)相對應。記錄通常描述實體及其屬性。舉例來說,一個Employee記錄表示一個雇員實體,記錄中的各個字段值指定了該雇員的一些屬性,例如Name、Birthday、Salary等。字段名及其相應數據類型的匯集構成了一個記錄類型(record type)或記錄格式(record format)定義。與各字段相關的數據類型(data type)指定了此字段可取值的類型。

字段的數據類型通常是編程時使用的標準數據類型。其中包括數值型(整型、長整型或浮點型)、字符串(定長或變長字符串)、布爾型(只能取0和1或TRUE或FALSE這樣的值),有時還有專門編碼的日期和時間數據類型。對于給定的計算機系統,各數據類型所需的字節數是固定的。一個整型可能需要4個字節,一個長整型需要8個字節,一個實數型需要4個字節,一個布爾型需要1個字節,一個日期型需要10個字節(假設日期的模式是YYYY-MM-DD),k個字符組成的定長字符串需要k個字節,變長字符串需要的字節數等于各字段值中的字符數。例如,可以用C程序設計語言表示法將Employee的記錄類型定義為以下結構。

Struct employee{

Char name[30];

Char ssn[9];

Int salary;

Int job_code;

Char department[20];

};

三、文件、定長記錄和變長記錄

文件是記錄的序列。在許多情況下,一個文件中的所有記錄均屬于同一種記錄類型。如果文件中所有的記錄的長度均相等(以字節計),則稱這個文件是由定長記錄(fixed-length record)組成的。如果文件中的不同記錄的長度也不同,則稱這個文件是由變長記錄(variable-length record)組成的。文件之所以會有變長記錄是因為:

1.文件記錄均屬于同一記錄類型,但有一個或多個字段是變長的(變長字段)。例如,EMPLOYEE中的name字段就可能是變長字段。

2.文件記錄均屬于同一記錄類型,但有一個或多個字段對應的單個記錄有多個值,這樣的字段成為重復字段(repeating field),該字段的一組值通常稱為重復組(repeating group)。

3.文件記錄均屬于同一記錄類型,但有一個或多個字段是可選的(optional)。也就是說這個文件中有些記錄在該字段上有值,但并非該文件的所有記錄在該字段上都有值(可選字段)。

4.文件包含不同記錄類型的記錄,因此是變長的(混合文件)。如果不同類型的相關記錄在磁盤中聚簇存儲,就會出現這種情況。例如,某個學生的grade-report記錄可能緊跟在student記錄后面。

由此可以看出,不同記錄由于其屬性值的不同,存儲空間的大小也不相同,那么如何存儲元組就需要過細的考慮。

四、記錄的存儲

1.定長記錄的存儲

存儲記錄的一種最簡單的方法是固定長度的定長記錄法,即元組的屬性字段的數目是固定的,每個屬性字段的長度也是固定的,對屬性值長度不規整的取其最長的長度。如上述的employee關系可定義其記錄的存儲結構的長度為:

即每個記錄分配67B。所有記錄都有相同的屬性字段,且其字段長度是固定的,因此系統可以確定每個字段相對于該記錄的開始位置的起始字節位置。這有利于存取該文件的程序定位字段值。需要注意的是,這樣就有可能將一個邏輯上會有變長記錄的文件表示為定長記錄文件。例如,在記錄中有可選字段的情況下,我們可以將每個字段都包括在每個文件記錄中,但是如果某個字段沒有值,就這個字段中存儲一個特殊的NULL值。定長記錄法雖然簡單,但浪費存儲空間,另一個缺點是不夠靈活,不能應對新屬性的擴充和不需要的屬性的刪除。

2.變長記錄的存儲

對于有變長字段,每個記錄對于其中的每個字段都有一個值,不過我們不知道某些字段值的確切長度。為了確定一個特定記錄中各字段的字節數,可以使用特殊分隔符(separator)來結束變長字段,比如?、%、$,這些字符不會出現在任何字段中,如下圖1所示

(%為分隔符,其中Name和Department字段為變長字段)。

采用特殊分隔符的方法克服了上面定長記錄浪費空間的缺點,方法也簡單,但其缺點是不易于找到合適的保留字符,必須保證數據中都不會出現保留字符,特別對二進制數據就更困難。

變長記錄法的另外一種形式叫首部指針法,即在每個記錄的首部都設置若干個指針,分別指向第一個屬性值結束第二個屬性值開始,第二個屬性值結束第三個屬性值開始,…,倒數第二個屬性值結束倒數第一個屬性值開始的位置,如下圖2所示。

首部指針法中的指針可能占用較大空間,其改進的辦法是用屬性字段的長度來代替指針,此外,對于記錄中的定長屬性字段值,若每一記錄均用數字標明其長度,對于大量存儲的記錄也開銷太大,可以在目錄中將各定長屬性字段的長度予以記載,在存儲記錄時只指示變長屬性字段的長度。這樣可以節約大量的存儲空間。上面的例子可以如下圖3表示。其中,V表示變長屬性字段,F表示定長屬性字段。

這種把變長屬性字段的當前長度予以顯式指明的辦法還可以用于對關系中新屬性字段的擴充,擴充了新屬性的元組可將其新屬性和新屬性字段長度附加在記錄的尾部,從而無須更動原來的存儲結構而只需在目錄中稍加說明即可完成新屬性的擴充。

五、記錄集合的存儲

對于記錄的集合其存儲的結構也有多種方式。

1.記錄集順序存儲法(如下圖4所示)

它將一組記錄順序存儲,稱之為表(List),其優點是節省存儲空間,順序連續存取時效率最高。缺點是不靈活,只能表示記錄之間的一種關聯,一種順序,當存在其它關聯時則無法表示。再插入或刪除記錄時其存儲結構會發生變化。

2.鏈式存儲法(如下圖5所示)

這里的每個記錄都附有一個指針,指向下一個記錄的位置,因此在插入和刪除記錄時就很方便,只需將指針值改變即可。這種靈活性的代價是每個記錄多存儲一個指針。

3.變長指針法(如下圖6所示)

這種方式為指針集中鄰接存放,也較靈活,它的名字叫變長指針法,也叫指針陣列法(Pointer Array)。

4.指針鏈式存儲法(如下圖7所示)

這種存儲方法最為靈活,但存儲開銷和存取開銷也最大,查找一個記錄需要存取兩次。

六、結束語

以上給出了記錄與記錄集合的不同存儲結構,使我們對數據庫管理系統中文件記錄及記錄集合有了初步的認識,在具體實踐時可以依照應用需求靈活選用。

參考文獻:

[1]施伯樂,丁寶康,周傲英,田增平.數據庫系統教程[M].北京:高等教育出版社,1999.

[2]張龍祥,黃正瑞,龍軍.數據庫原理與設計[M].北京:人民郵電出版社,2007.

(作者單位:安徽城市管理職業學院)

主站蜘蛛池模板: 操操操综合网| 91久久偷偷做嫩草影院| 91精品国产综合久久不国产大片| 不卡的在线视频免费观看| 国产成人免费手机在线观看视频 | 99视频在线免费观看| 国产麻豆福利av在线播放| 国产天天色| 伊人久热这里只有精品视频99| 99视频在线精品免费观看6| 亚洲二三区| 久久精品丝袜高跟鞋| 99热亚洲精品6码| 久久久久夜色精品波多野结衣| 欧美第九页| 免费观看男人免费桶女人视频| 亚洲天堂福利视频| 在线99视频| 国产日韩丝袜一二三区| 国产打屁股免费区网站| 草逼视频国产| 亚洲国产精品不卡在线| 国产超碰在线观看| 欧美日韩中文字幕在线| 伊人色天堂| 丁香五月激情图片| 国模极品一区二区三区| 五月天香蕉视频国产亚| 国产素人在线| 久久精品人人做人人爽电影蜜月| 91视频首页| 欧美自拍另类欧美综合图区| 国产99精品视频| 亚洲精品视频免费| 欧美三级视频在线播放| 亚洲欧洲日产无码AV| 亚洲精品卡2卡3卡4卡5卡区| 国产理论一区| 国产最新无码专区在线| 欧洲av毛片| 狠狠躁天天躁夜夜躁婷婷| 99久久精品免费视频| 亚洲一区二区三区麻豆| 欧美狠狠干| 日韩欧美中文字幕在线精品| 国产v欧美v日韩v综合精品| 欧美亚洲激情| 中文字幕自拍偷拍| 亚洲精品视频免费观看| 亚洲成av人无码综合在线观看| 亚洲精品日产精品乱码不卡| 国产精品 欧美激情 在线播放 | 亚洲91在线精品| 亚洲欧美日韩高清综合678| 欧美第九页| 亚洲无码高清免费视频亚洲| 老司机久久精品视频| 亚洲AV无码久久天堂| 欧美97色| 亚洲美女高潮久久久久久久| 国产成人精品一区二区免费看京| 999国内精品久久免费视频| 精品视频第一页| 国产成人精品男人的天堂| 国产精品漂亮美女在线观看| 国产激情第一页| 亚洲午夜国产精品无卡| 国产成人亚洲精品色欲AV| 2021最新国产精品网站| 97在线免费| 东京热一区二区三区无码视频| 一级毛片免费观看久| 毛片大全免费观看| 日韩专区第一页| 国产 在线视频无码| 喷潮白浆直流在线播放| 精品無碼一區在線觀看 | 国产精品第页| 日韩精品专区免费无码aⅴ| 亚洲成人福利网站| 国产精品护士| 五月六月伊人狠狠丁香网|