數(shù)據(jù)的存儲(chǔ)方法

數(shù)據(jù)的存儲(chǔ)方法

ID:27757995

大小:286.84 KB

頁(yè)數(shù):53頁(yè)

時(shí)間:2018-12-05

數(shù)據(jù)的存儲(chǔ)方法_第1頁(yè)
數(shù)據(jù)的存儲(chǔ)方法_第2頁(yè)
數(shù)據(jù)的存儲(chǔ)方法_第3頁(yè)
數(shù)據(jù)的存儲(chǔ)方法_第4頁(yè)
數(shù)據(jù)的存儲(chǔ)方法_第5頁(yè)
資源描述:

《數(shù)據(jù)的存儲(chǔ)方法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、第四章數(shù)據(jù)的存儲(chǔ)方法這一章將系統(tǒng)地回答以下一些問(wèn)題:怎樣在域中表示SQL的數(shù)據(jù)類(lèi)型?怎樣用記錄來(lái)表示元組?怎樣在內(nèi)存塊中表示記錄或元組的集合?怎樣存儲(chǔ)對(duì)象關(guān)系型數(shù)據(jù)?例如對(duì)象標(biāo)識(shí)符(或別的指向記錄的指針)和大對(duì)象(例如2GB的MPEG格式的視頻信息)。當(dāng)一些域被更新而引起記錄長(zhǎng)度改變時(shí),應(yīng)該做什么?同時(shí)怎樣的結(jié)構(gòu)才能適合變長(zhǎng)記錄的需要。4.1數(shù)據(jù)元素的表示用SQL語(yǔ)言的CREATETABLE定義了一個(gè)關(guān)系:CREATETABLEMovieStar(nameCHAR(30)PRIMARYKEY,addressVARCHAR(255),genderCHAR(1),bir

2、thdateDATE);從本質(zhì)上來(lái)說(shuō),所有的數(shù)據(jù)類(lèi)型是一個(gè)字節(jié)序列。例如,INTEGER一般用兩個(gè)或四個(gè)字節(jié)來(lái)表示,F(xiàn)LOAT一般用四個(gè)或八個(gè)字節(jié)來(lái)表示。整數(shù)和實(shí)數(shù)的具體表示由機(jī)器的硬件來(lái)確定。數(shù)據(jù)元素的表示1.固定長(zhǎng)度的字符串定義格式:CHAR(5)存儲(chǔ)格式:cat╄╄。這里’╄’是用來(lái)進(jìn)行填補(bǔ)的字符。它補(bǔ)全了第四和第五個(gè)字符2??勺冮L(zhǎng)度的字符串定義格式:VARCHAR(N)存儲(chǔ)格式:1)。正文長(zhǎng)度加一。我們?yōu)橐粋€(gè)字符串分配N(xiāo)+1個(gè)字節(jié)。2)。使用空白終結(jié)符。同樣我們?yōu)橐粋€(gè)字符串分配N(xiāo)+1個(gè)字節(jié)。在字符串的最后一個(gè)字節(jié)上填放空白終結(jié)符。3。日期和時(shí)間類(lèi)型一個(gè)日期實(shí)

3、際上就是有一定格式的固定長(zhǎng)度的字符串。所以日期可以用定長(zhǎng)的字符串方法來(lái)表示。用8個(gè)字符表示。如,’20:19:02’表示下午8點(diǎn)19分2秒4。枚舉類(lèi)型據(jù)需要給每個(gè)元素分配一個(gè)整型值,用它來(lái)表示枚舉類(lèi)型的值如:集合{RED,GREEN,BLUE,YELLOW}??梢詫ED表示成0,GREEN表示成1,BLUE表示成2,YELLOW表示成3。這樣它們可用兩位來(lái)表示:00、01、10和11。而如果我們采用整個(gè)字節(jié)來(lái)表示它們會(huì)更方便。例如,YELLOW可被用3來(lái)表示,用整個(gè)字節(jié)為00000011。建立固定長(zhǎng)度的記錄MovieStar關(guān)系的例子。它有四個(gè)域:name:具有3

4、0個(gè)字節(jié)的字符串。address:用VARCHAR(255)定義。這個(gè)域用256個(gè)字節(jié)來(lái)存儲(chǔ)。gender:?jiǎn)巫止?jié)。它的值一般是’F’或’M’。birthdate:是日期類(lèi)型。MovieStar關(guān)系的例子當(dāng)元組不是存儲(chǔ)在主存,而是存儲(chǔ)在外存中時(shí),我們就必須留心它的組織問(wèn)題。當(dāng)我們從外存中讀取數(shù)據(jù)塊到主存中時(shí),數(shù)據(jù)塊的頭地址應(yīng)被放入4的倍數(shù)的主存地址處。最保險(xiǎn)的做法是同樣要求記錄的每個(gè)域的頭地址是4或8的倍數(shù)。應(yīng)做到以下兩點(diǎn):每個(gè)記錄在數(shù)據(jù)塊中的開(kāi)始地址是4的倍數(shù);記錄中的每個(gè)域?qū)τ跀?shù)據(jù)塊開(kāi)始地址的偏移量是4的倍數(shù)。MovieStar每個(gè)域的開(kāi)始地址都是4的倍數(shù)記錄的

5、頭信息當(dāng)我們?cè)O(shè)計(jì)記錄格式時(shí),需要考慮怎樣存儲(chǔ)那些不屬于記錄值而又必須被保存的信息。例如下面這些信息:記錄的視圖,更具體的說(shuō),在記錄中保存一個(gè)指向DBMS存儲(chǔ)記錄類(lèi)型的指針;記錄的長(zhǎng)度;表示記錄最后一次被讀或?qū)懙臉?biāo)記。因此在記錄的格式中,需考慮用一些字節(jié)來(lái)存儲(chǔ)記錄附加的信息。對(duì)例4.6中的結(jié)構(gòu)進(jìn)行修改,加進(jìn)12個(gè)字節(jié)的頭信息。開(kāi)始4個(gè)字節(jié)用來(lái)表示記錄類(lèi)型。它實(shí)際上是指向存儲(chǔ)關(guān)系的視圖指針。第二部分用4個(gè)字節(jié)來(lái)表示記錄的長(zhǎng)度。第三部分用來(lái)表示元組加入或最后一次更新的時(shí)間,它也是四個(gè)字節(jié)。這樣記錄的長(zhǎng)度變?yōu)?16個(gè)字節(jié)。例4.6中的結(jié)構(gòu)進(jìn)行修改加進(jìn)頭信息將定長(zhǎng)記錄組成數(shù)據(jù)

6、塊數(shù)據(jù)塊的頭信息,通常含有以下信息:數(shù)據(jù)塊之間的聯(lián)系信息。該數(shù)據(jù)塊在整個(gè)數(shù)據(jù)塊集合中所起的作用。該數(shù)據(jù)塊所表示的元組屬于那一個(gè)關(guān)系。每個(gè)記錄在數(shù)據(jù)塊中的偏移量。數(shù)據(jù)塊號(hào)。該數(shù)據(jù)塊最后一次被修改或更新的時(shí)間標(biāo)志。記錄長(zhǎng)為316個(gè)字節(jié)。假使我們使用的是長(zhǎng)為4096個(gè)字節(jié)的數(shù)據(jù)塊。對(duì)于這些空間,12個(gè)被用于數(shù)據(jù)塊的頭信息,余下4084個(gè)字節(jié)來(lái)存儲(chǔ)數(shù)據(jù)。這樣我們?cè)诿總€(gè)數(shù)據(jù)塊中放了12個(gè)316字節(jié)的記錄,即塊因子為12。該數(shù)據(jù)塊則浪費(fèi)了292個(gè)字節(jié)的空間??紤]數(shù)據(jù)塊的頭信息塊和記錄地址的表示在我們考慮怎樣表示那些具有更復(fù)雜數(shù)據(jù)結(jié)構(gòu)的記錄之前,我們必須先考慮怎樣對(duì)記錄和塊編址,

7、以及怎樣去表示那些指向數(shù)據(jù)塊的指針。在數(shù)據(jù)塊裝入內(nèi)存的緩沖區(qū)時(shí),數(shù)據(jù)塊的地址可使用數(shù)據(jù)塊的第一個(gè)字節(jié)的虛擬存儲(chǔ)地址。同樣記錄在數(shù)據(jù)塊內(nèi)的地址為記錄的第一個(gè)字節(jié)的虛擬內(nèi)存地址。但是,當(dāng)數(shù)據(jù)塊在外存中時(shí),該數(shù)據(jù)塊并不作為應(yīng)用程序虛擬地址空間的一部分。我們采用字節(jié)的序列來(lái)表示數(shù)據(jù)塊在整個(gè)DBMS可管理的數(shù)據(jù)中的位置,它包括:磁盤(pán)的設(shè)備標(biāo)識(shí)號(hào),盤(pán)上柱面號(hào)等等。我們給定記錄所在的數(shù)據(jù)塊和它在數(shù)據(jù)塊中的偏移量就可找到該記錄。c/s結(jié)構(gòu)的DBMS的地址空間問(wèn)題一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)有一個(gè)服務(wù)器進(jìn)程,用于從外存提取數(shù)據(jù)交給一個(gè)或多個(gè)客戶(hù)進(jìn)程??蛻?hù)進(jìn)程處理所送來(lái)的數(shù)據(jù)。服務(wù)器進(jìn)程和客戶(hù)進(jìn)

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。