分布式數(shù)據(jù)庫(kù)試題及答案_第1頁(yè)
分布式數(shù)據(jù)庫(kù)試題及答案_第2頁(yè)
分布式數(shù)據(jù)庫(kù)試題及答案_第3頁(yè)
分布式數(shù)據(jù)庫(kù)試題及答案_第4頁(yè)
分布式數(shù)據(jù)庫(kù)試題及答案_第5頁(yè)
已閱讀5頁(yè),還剩68頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)據(jù)庫(kù)試題目錄1. 九八年秋季試題 51.1. 概念題 51.1.1. 比較半連接方法和枚舉法的優(yōu)缺點(diǎn)。 51.12 2PL協(xié)議的基本思想。 51.1.3. WAL協(xié)議的主要思想。 51.1.4. SSPARC三級(jí)模式體系結(jié)構(gòu)。 51.1.5. 設(shè)計(jì)OID的數(shù)據(jù)結(jié)構(gòu)時(shí)應(yīng)考慮哪些問題。 61.2. 某個(gè)大學(xué)中有若干系,且每個(gè)系有若干個(gè)班級(jí)和教研室,每個(gè)教研室有若干個(gè)教 員,其中教授、副教授每個(gè)人帶若干名研究生。每個(gè)班有若干名學(xué)生,每個(gè)學(xué)生可選修若干門課程,每門課程可由若干學(xué)生選修。完成下列各種要求: 71.3. 下面是某學(xué)院的一個(gè)學(xué)生檔案數(shù)據(jù)庫(kù)的全局模式: 91.3.1. 將全局模式進(jìn)行分片,寫

2、出分片定義和分片條件。 91.3.2. 指出各分片的類型,并畫出分片樹。 91.3.3. 假設(shè)要求查詢系號(hào)為1的所有學(xué)生的姓名和成績(jī),寫出在全局模式上的SQ查詢語(yǔ)句,并要求轉(zhuǎn)換成相應(yīng)的關(guān)系代數(shù)表示,畫出全局查詢樹,請(qǐng)依次進(jìn)行全局優(yōu)化 和分片優(yōu)化,畫出優(yōu)化后的查詢樹。要求給出優(yōu)化變換過程。 101.4. 設(shè)數(shù)據(jù)項(xiàng)x,y存放在S1場(chǎng)地,u,v存放在S2場(chǎng)地,有分布式事務(wù)T1和T2,T1在S1場(chǎng)地的操作為 R1(x)W1(x)R1(y)W1(y),T2在S1場(chǎng)地的操作為 R2(x)R2(y)W2(y);T1在S2場(chǎng)地 上的操作作為 R1(u)R1(v)W1(u),T2在S2場(chǎng)地上的操作作為 W2(u

3、)R2(v)W2(v)。對(duì)下述2種 情況,各舉一種可能的局部歷程(H1和H2),并說(shuō)明理由。 111.4.1. 局部分別是可串行化,而全局是不可串行化的 111.4.2. 局部和全局都是可串行化的。要求按照嚴(yán)格的2PL協(xié)議,加上適當(dāng)?shù)募渔i和解 鎖命令,(注意,用rl(x)表示加讀鎖,wl(x)表示加對(duì)x加寫鎖,ul(x)表示解鎖)121.5. 試述面向?qū)ο蟮臄?shù)據(jù)庫(kù)系統(tǒng)中頁(yè)面服務(wù)器和對(duì)象服務(wù)器兩種Clie nt/Server體系結(jié)構(gòu)的主要特點(diǎn), 122. 九九年春季試題 132.1. DBM解決了信息處理技術(shù)中的哪些挑戰(zhàn)? 132.2. 在關(guān)系數(shù)據(jù)庫(kù)應(yīng)用設(shè)計(jì)中,為什么要對(duì)數(shù)據(jù)庫(kù)模式進(jìn)行規(guī)范化?

4、132.3. 簡(jiǎn)述 ACID特 性。 152.4. 長(zhǎng)事務(wù)處理有哪些特性,如何解決? 152.5. 數(shù)據(jù)庫(kù)系統(tǒng)體系結(jié)構(gòu)有哪幾類,每種類型的特點(diǎn)是什么,關(guān)鍵技術(shù)有哪些?. 162.6. 決策支持類應(yīng)用與OLT應(yīng)用對(duì)于數(shù)據(jù)庫(kù)系統(tǒng)的要求有哪些不同,支持前者的關(guān)鍵技術(shù)有哪些,并簡(jiǎn)述之。 172.7. 面向?qū)ο蟮臄?shù)據(jù)庫(kù)是如何產(chǎn)生的,其基本原理是什么?有哪些創(chuàng)新特性?182.8. r i二r j 一定等于r j二r i嗎?在什么條件下r i二r j = r j二r i成立? 182.9. 為了設(shè)計(jì)一個(gè)健壯的分布式系統(tǒng),你必須知道可能發(fā)生哪種類型的失敗。182.9.1. 請(qǐng)列出在分布式系統(tǒng)中可能的失敗類型:

5、 182.9.2. 在你列出的失敗類型中,哪些也可能發(fā)生在集中式系統(tǒng)中? 192.9.3. 對(duì)于每一種失敗類型,在失敗發(fā)生情況下,兩段提交機(jī)制如何保證事務(wù)的原 子性? 193. 九九年秋季試題 193.1. 問答題 193.1.1. 分布式數(shù)據(jù)庫(kù)系統(tǒng)在系統(tǒng)結(jié)構(gòu)、模式結(jié)構(gòu)、功能模塊等方面有何特點(diǎn)?. 193.1.2. 給出兩種2PL協(xié)議,并比較它們的優(yōu)點(diǎn)缺點(diǎn)? 203.1.3. 解釋為什么對(duì)象類的多繼承存在二義性,并通過例子加以說(shuō)明。 203.1.4. 對(duì)于下述情況,哪種并行性(查詢間并行性、操作間并行性、操作內(nèi)并行性)有助于正加系統(tǒng)的吞吐量: 203.2. 下面是某個(gè)公司人事數(shù)據(jù)庫(kù)的兩個(gè)全局關(guān)

6、系 203.2.1. 將全局模式進(jìn)行分片,寫出分片定義和分片條件。 203.2.2. 指出各分片的類型,并畫出分片樹 213.2.3. 進(jìn)行全局優(yōu)化,畫出優(yōu)化后的全局查詢樹。 213.2.4. 進(jìn)行分片優(yōu)化,畫出優(yōu)化后的分片查詢樹。 223.3. 對(duì)3個(gè)關(guān)系R,S和T的分布式連接,已知有如下的剖視圖: 253.3.1. 按照SDD-1半連接優(yōu)化算法,逐步求出半連接優(yōu)化集和最終執(zhí)行場(chǎng)地;.253.3.2. 對(duì)以上結(jié)果做相應(yīng)的優(yōu)化處理。 313.4. 用下面的關(guān)鍵字值的集合構(gòu)造一顆B+樹:(2,3,5,7,11,17,19,23,29,31)。假定樹開始是空的,且關(guān)鍵字的值是以升序插入到B+樹中去

7、的,B+樹每個(gè)節(jié)點(diǎn)中含的指針數(shù)為 4。323.5. 考慮關(guān)系r 1(A,B,C),r 2 (C,D,E),r 3(E,F),假設(shè)不存在主關(guān)鍵字。設(shè)V(C,r 1 )=900, 323.6. 假設(shè)一個(gè)存儲(chǔ)塊中僅能存放一個(gè)記錄且在內(nèi)存中最多只有三個(gè)頁(yè)框。請(qǐng)出在排序合并算法中每遍形成的Runs,排序?qū)傩詾榈谝粋€(gè)屬性:(kangaroo,17),(wallaby,21),(emu,1),(wombat,13),(platypus,3) ,(lion,8),(warthg,4) ,(zebra,11),(meerkat,6),(hornbill,2) ,(baboon,12)。 324. 二零年春季試題

8、 324.1 324.1.1. 分布庫(kù)管理系統(tǒng)有哪些主要功能模塊及其作用 324.1.2. 半連接方法和枚舉法各適用于何種查詢優(yōu)化情況 324.1.3. 分布式事務(wù)有哪些基本性質(zhì) 324.1.4. 什么是2PL協(xié)議 334.2. 下面是某個(gè)公司的人事關(guān)系數(shù)據(jù)庫(kù)的全局模式: 334.2.1. 將全局模式進(jìn)行分片,寫出分片定義和分片條件。 344.2.2. 指出分片的類型,并畫出分片樹。 344.3. 對(duì)題4.2所確定的分片模式,要求查詢級(jí)別高于“ 6”的所有職員的姓名和工資,寫出的在全局模式上的SQ查詢語(yǔ)句,并要求轉(zhuǎn)換成相應(yīng)的關(guān)系代數(shù)表示,畫出全局查詢 樹。344.3.1. 進(jìn)行全局優(yōu)化,畫出各

9、步優(yōu)化后的全局查詢樹。 344.3.2. 進(jìn)行分片優(yōu)化,畫出各步優(yōu)化后的分片查詢樹。 354.4. 下面是一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)出現(xiàn)故障是,日志文件中記錄的信息; 36441.找出發(fā)生故障時(shí)系統(tǒng)中的活動(dòng)事務(wù),確定出反做和重做事務(wù)集。 364.42 用C或其他語(yǔ)言定義出數(shù)據(jù)庫(kù)記錄(D記錄)和檢查點(diǎn)記錄(K記錄)的數(shù)據(jù)結(jié) 構(gòu)。 364.5. 設(shè)數(shù)據(jù)項(xiàng)x,y存放在S1場(chǎng)地,u,v存放在S2場(chǎng)地,有分布式事務(wù)T1和T2,T1在S1場(chǎng) 地的操作為 R1(x)W1(x)R1(y)W1(y),T2在S1場(chǎng)地的操作為 R2(x)R2(y)W2(y);T1在S2場(chǎng)地 上的操作作為 R1(u)R1(v)W1(u),T2在

10、S2場(chǎng)地上的操作作為 W2(u)R2(v)W2(v)。對(duì)下述2種情況,各舉一種可能的局部歷程(H1和H2),并說(shuō)明理由 364.5.1. 局部分別是可串行化,而全局是不可串行化的 374.5.2. 局部和全局都是可串行化的。 374.5.3. 要求按照嚴(yán)格的2PL協(xié)議,加上適當(dāng)?shù)募渔i和解鎖命令,(注意,用rl(x)表示加讀鎖,wl(x)表示加對(duì)x加寫鎖,ul(x)表示解鎖) 375. 二零年秋試題 385.1. 概念題 385.1.1. 解釋對(duì)象數(shù)據(jù)庫(kù)系統(tǒng)中面向?qū)ο蟮南嚓P(guān)概念 385.1.2. 從概念上比較對(duì)象數(shù)據(jù)庫(kù)模型與對(duì)象關(guān)系模型 385.1.3. 利用左深樹、右深樹、濃密樹來(lái)進(jìn)行查詢優(yōu)化

11、的各自特點(diǎn) 385.1.4. 試解釋影響并行數(shù)據(jù)庫(kù)系統(tǒng)中并行算法性能的三個(gè)因數(shù) 395.1.5. 簡(jiǎn)述用爬山算法進(jìn)行查詢優(yōu)化的基本思想 395.2. 下面是某個(gè)公司一個(gè)人事關(guān)系數(shù)據(jù)庫(kù)的全局模式:EMP=ENO*,ENAME,POSITION,PHONE PAY=POSITION*,SALARY ENC為職員號(hào),POSITIONS崗位。SALAR表示崗位對(duì)應(yīng)的工資,*對(duì)應(yīng)的屬性表示主關(guān)鍵字。該公司分布 在兩個(gè)場(chǎng)地上,其中,在場(chǎng)地1經(jīng)常處理所有職員數(shù)據(jù),而場(chǎng)地 2只處理工資低于1000的職員數(shù)據(jù),為了節(jié)省磁盤空間和增大處理局部性: 405.2.1. 將以上全局關(guān)系進(jìn)行分片設(shè)計(jì),寫出分片定義和分片條

12、件。 405.2.2. 指出分片的類型,并畫出分片樹。 405.2.3. 給出分配設(shè)計(jì)。 405.3. 對(duì)題二所確定的分片模式,要求查詢崗位為“salesma n”的所有職員的姓名和工資,寫出的在全局模式上的SQ查詢語(yǔ)句,并要求轉(zhuǎn)換成相應(yīng)的關(guān)系代數(shù)表示,畫出全局 查詢樹。假設(shè)“salesma n”的工資為800元。要求給出中間轉(zhuǎn)換過程。 415.3.1. 進(jìn)行全局優(yōu)化,畫出優(yōu)化后的全局查詢樹。 415.3.2. 進(jìn)行分片優(yōu)化,畫出優(yōu)化后的分片查詢樹。 425.4. 按如下給出的條件,求出半連接優(yōu)化計(jì)劃和執(zhí)行場(chǎng)地,并作后優(yōu)化處理.425.5. 下面是當(dāng)一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)出現(xiàn)故障時(shí),日志文件中的信息

13、485.5.1. 畫出對(duì)應(yīng)的事務(wù)并發(fā)執(zhí)行圖。 495.5.2. 找出發(fā)生故障時(shí)系統(tǒng)中的活動(dòng)事務(wù),確定出反做和重做事務(wù)集。 495.5.3. 指出需要undo的和redo的數(shù)據(jù)記錄。 495.6. 設(shè)數(shù)據(jù)項(xiàng)x,y存放在S1場(chǎng)地,u,v存放在S2場(chǎng)地,有分布式事務(wù)T1和T2。T1在S1場(chǎng) 地的操作為 R1(x)W1(x)R1(y)W1(y),T2在S1 場(chǎng)地的操作為 R2(x)R2(y)W2(y) ; T1 在S2場(chǎng)地 上的操作作為R1(u)R1(v)W1(u),T2在S2場(chǎng)地上的操作作為 W2(u)R2(v)W2(v)。對(duì)下述2種 情況,各舉一種可能的局部歷程(H1和H2),如果是可串行化的,指

14、出事務(wù)的執(zhí)行次序。對(duì)第3種情況,給出符合基本2PL協(xié)議的調(diào)度。(T1加鎖命令用L1(X)表示,開鎖命令U1(X)表示。對(duì)任何數(shù)據(jù)的加鎖可在事務(wù)開始后立即進(jìn)行)。 495.6.1. 局部是不可串行化的。 505.6.2. 局部是可串行化的,而全局是不可串行化的。 505.6.3. 局部是可串行化的,全局也是可串行化的。 515.7. 設(shè)計(jì)一種滿足下列要求的索引結(jié)構(gòu)。 515.7.1. 被索引的數(shù)據(jù)集合為有序集 515.72 在有序集上的查詢操作都是基于位置來(lái)進(jìn)行的 515.7.3. 當(dāng)往有序集中插入或刪除一個(gè)元素時(shí),與該元素相關(guān)的后續(xù)元素的位置均要發(fā)生變化 515.7.4. 元素的類型可為任意類

15、型(這一個(gè)小問題的解決需要考慮語(yǔ)言的特征).516. 二零一春季試題 516.1 516.1.1. 討論集中式數(shù)據(jù)庫(kù)和分布式數(shù)據(jù)庫(kù)各自的優(yōu)缺點(diǎn)。 516.1.2. 討論在局域網(wǎng)和廣域網(wǎng)兩種情況下分布庫(kù)設(shè)計(jì)的區(qū)別。 526.1.3. 解釋分片透明性、復(fù)制透明性和位置透明性等三級(jí)透明性的區(qū)別。.526.1.4. 解釋2PC協(xié)議如何在故障情況下保證事務(wù)的原子性的 526.1.5. 解釋嚴(yán)格2PL協(xié)議與基本2PL協(xié)議的區(qū)別 536.2. 下面是某個(gè)公司一個(gè)人事關(guān)系數(shù)據(jù)庫(kù)的全局模式:EMP=ENO*,ENAME,POSITION,PHONE PAY=POSITION*,SALARY ENC為職員號(hào), P

16、OSITION為崗位。SALAR表示崗位對(duì)應(yīng)的工資,*對(duì)應(yīng)的屬性表示主關(guān)鍵字。該公司分布 在兩個(gè)場(chǎng)地上,其中,在場(chǎng)地1經(jīng)常處理所有職員數(shù)據(jù),而場(chǎng)地 2只處理工資低于1000的職員數(shù)據(jù),為了節(jié)省磁盤空間和增大處理局部性: 546.2.1. 將以上全局關(guān)系進(jìn)行分片設(shè)計(jì),寫出分片定義和分片條件。 546.2.2. 指出分片的類型,并畫出分片樹。 546.2.3. 給出分配設(shè)計(jì)。 546.3. 對(duì)題二所確定的分片模式,要求查詢崗位為“ salesma n”的所有職員的姓名和工資,寫出的在全局模式上的SQ查詢語(yǔ)句,并要求轉(zhuǎn)換成相應(yīng)的關(guān)系代數(shù)表示,畫出全局 查詢樹。假設(shè)“salesma n”的工資為150

17、0元。要求給出中間轉(zhuǎn)換過程。 556.3.1. 進(jìn)行全局優(yōu)化,畫出優(yōu)化后的全局查詢樹 556.3.2. 進(jìn)行分片優(yōu)化,畫出優(yōu)化后的分片查詢樹。 566.4. 下面是當(dāng)一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)出現(xiàn)故障時(shí),日志文件中的信息 566.4.1. 畫出對(duì)應(yīng)的事務(wù)并發(fā)執(zhí)行圖。 576.4.2. 找出發(fā)生故障時(shí)系統(tǒng)中的活動(dòng)事務(wù),確定出反做和重做事務(wù)集。 586.4.3. 指出需要undo的和redo的數(shù)據(jù)記錄。 586.5. 設(shè)數(shù)據(jù)項(xiàng)x,y存放在S1場(chǎng)地,u,v存放在S2場(chǎng)地,有分布式事務(wù)T1和T2,T1在S1場(chǎng) 地的操作為 R1(x)W1(x)R1(y)W1(y),T2在S1場(chǎng)地的操作為 R2(x)R2(y)W2(

18、y);T1在S2場(chǎng)地 上的操作作為 R1(u)R1(v)W1(u),T2在S2場(chǎng)地上的操作作為 W2(u)R2(v)W2(v)。對(duì)下述2種 情況,各舉一種可能的局部歷程(H1和H2),如果是可串行化的,指出事務(wù)的執(zhí)行次序。對(duì)第3種情況,給出符合基本2PL協(xié)議的調(diào)度。(T1加鎖命令用L1(X)表示,開鎖命令U1(X)表示。對(duì)任何數(shù)據(jù)的加鎖可在事務(wù)開始后立即進(jìn)行)。 586.5.1. 局部是不可串行化的。 586.5.2. 局部是可串行化的,而全局是不可串行化的。 596.5.3. 局部是可串行化的,全局也是可串行化的。 591. 九八年秋季試題1.1. 概念題1.1.1. 比較半聯(lián)接方法和枚舉法

19、的優(yōu)缺點(diǎn)。半聯(lián)接技術(shù)縮減了連接操作的操作數(shù),以降低通信費(fèi)用。枚舉法適用于縮減局部代 價(jià)的情況。評(píng)估查詢操作的代價(jià)需要綜合考慮局部代價(jià)和傳輸代價(jià)。側(cè)重哪一個(gè)方面,需根據(jù) 系統(tǒng)組成環(huán)境確定。如側(cè)重傳輸代價(jià),局部代價(jià)可以忽略不計(jì)時(shí),采用半聯(lián)接技術(shù)較好; 相反,如果側(cè)重局部代價(jià)時(shí),采用直接連接比采用半連接技術(shù)優(yōu)越。因?yàn)橹苯舆B接技術(shù) 實(shí)現(xiàn)簡(jiǎn)單,枚舉法是基于直接連接的實(shí)現(xiàn)方法,此時(shí)應(yīng)采用枚舉法。半連接優(yōu)點(diǎn):傳輸代價(jià)低。半連接缺點(diǎn):沒有考慮局部代價(jià);當(dāng)“選擇度”交低時(shí),半連接技術(shù)才可行。1.1.2. 2PL協(xié)議的基本思想。2PL協(xié)議的基本思想。并發(fā)控制是分布式事務(wù)管理的基本任務(wù)之一。其目的是保證分布式數(shù)據(jù)庫(kù)

20、系統(tǒng)中多 個(gè)事務(wù)的高效正確的執(zhí)行。有兩種模型來(lái)實(shí)現(xiàn):其中之一是以“鎖”方式為基礎(chǔ)的形式 模型,一種是以時(shí)間印方式為基礎(chǔ)的時(shí)間模型。鎖方式的基本思想是:事務(wù)對(duì)任何數(shù)據(jù)的操作必須先申請(qǐng)數(shù)據(jù)項(xiàng)的鎖,只有申請(qǐng)到 了鎖之后,即加鎖成功以后,才可以對(duì)數(shù)據(jù)項(xiàng)進(jìn)行操作。操作完成了以后,要釋放已經(jīng) 申請(qǐng)的鎖。通過鎖的共享和排斥的特性,實(shí)現(xiàn)事務(wù)的可串行化調(diào)度?!版i”又可分為“讀鎖”和“寫鎖”:“讀鎖”是對(duì)數(shù)據(jù)項(xiàng)進(jìn)行讀操作時(shí)要加的鎖。由于讀操作是可共享操作,所以“讀 鎖”也稱為共享鎖?!皩戞i”是對(duì)數(shù)據(jù)進(jìn)行寫入操作時(shí)要加入的鎖。寫操作是不可共享的鎖,因此也叫“排它鎖”。2PL(兩階段鎖)協(xié)議是并發(fā)控制算法中的重要算法

21、。其主要內(nèi)容是并發(fā)執(zhí)行的多個(gè) 事務(wù),在對(duì)數(shù)據(jù)進(jìn)行操作以前要進(jìn)行加鎖,并且每個(gè)事務(wù)中的所有加鎖操作都得在第一 個(gè)解鎖操作以前執(zhí)行。因此,每個(gè)事務(wù)中的加鎖操作和解鎖操作分布在兩個(gè)部分中,所 以此協(xié)議稱為2PL協(xié)議。在分布式數(shù)據(jù)庫(kù)系統(tǒng)中,如果全部的分布式事務(wù)均以2PL協(xié)議加鎖,則系統(tǒng)中各個(gè)場(chǎng) 地上的局部調(diào)度是可串行化的。因?yàn)閷?duì)每個(gè)局部場(chǎng)地而言,其上執(zhí)行的操作只是全局操 作的一部分,而全局操作采用2PL協(xié)議加鎖,顯然局部操作也遵循2PL協(xié)議。1.1.3. WAL協(xié)議的主要思想。系統(tǒng)的故障恢復(fù)是以日志文件為基礎(chǔ)完成的,因此,要求事務(wù)在執(zhí)行過程中滿足先寫日 志協(xié)議(WAL)(Write_ahead log

22、ging)。當(dāng)系統(tǒng)發(fā)生故障時(shí),可有效地采用重做(redo) 和反做(undo)兩個(gè)基本恢復(fù)操作進(jìn)行恢復(fù)。先寫日志協(xié)議(WAL)含義:(1)在外存數(shù)據(jù)庫(kù)被更新之前,應(yīng)將日志文件中的反做信息寫入外存文件;(2)事務(wù)提交之前,日志文件中的有關(guān)重做信息應(yīng)在外存數(shù)據(jù)庫(kù)更新之前寫入外 存文件。1.1.4.SSPARC三級(jí)模式體系結(jié)構(gòu)。ANSI/SPAR(提出將數(shù)據(jù)庫(kù)系統(tǒng)分為三種層次一、從數(shù)據(jù)庫(kù)管理系統(tǒng)的角度看,可分為三層,從外到內(nèi)依次為外模式、模式和內(nèi)模式。1、外模式:外模式又稱為用戶模式:是數(shù)據(jù)庫(kù)用戶和數(shù)據(jù)庫(kù)系統(tǒng)的接口,是數(shù)據(jù)庫(kù)用 戶的數(shù)據(jù)視圖(View),是數(shù)據(jù)庫(kù)用戶可以看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)

23、和 特征的描述,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。2、模式:模式是所有數(shù)據(jù)庫(kù)用戶的公共數(shù)據(jù)視圖,是數(shù)據(jù)庫(kù)中全部數(shù)據(jù)的邏輯結(jié)構(gòu) 和特征的描述。3、內(nèi)模式:內(nèi)模式又稱為存儲(chǔ)模式(Storage Schema,是數(shù)據(jù)庫(kù)物理結(jié)構(gòu)和存儲(chǔ)方式 的描述,是數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部的表示方式。二、為了實(shí)現(xiàn)三個(gè)抽象級(jí)別的聯(lián)系和轉(zhuǎn)換,數(shù)據(jù)庫(kù)管理系統(tǒng)在三層結(jié)構(gòu)之間提供了“兩 層映像”:外模式/模式映像和模式/內(nèi)模式映像。1、外模式/模式映像通過外模式與模式之間的映像把描述局部邏輯結(jié)構(gòu)的外模式與描述全局邏 輯結(jié)構(gòu)的模式聯(lián)系起來(lái)。2、模式/內(nèi)模式映像通過模式與內(nèi)模式之間的映像把描述全局邏輯結(jié)構(gòu)的模式與描述物理結(jié)構(gòu)的 內(nèi)模式聯(lián)系

24、起來(lái)。1.1.5.設(shè)計(jì)OID的數(shù)據(jù)結(jié)構(gòu)時(shí)應(yīng)考慮哪些問題。OID對(duì)象標(biāo)識(shí)對(duì)象標(biāo)識(shí)在編程語(yǔ)言中已經(jīng)存在很長(zhǎng)時(shí)間了,在數(shù)據(jù)庫(kù)概念中還是剛剛被提及(1989 )。他的概念如下:在一個(gè)擁有對(duì)象標(biāo)識(shí)的模型中,一個(gè)對(duì)象的存在并不依賴于 他的值。對(duì)象標(biāo)識(shí)不應(yīng)該依賴于它所代表的對(duì)象的值。而“對(duì)象相等”的概念反映了對(duì)象標(biāo)識(shí)與對(duì)象的值之間的關(guān)系。有兩種對(duì)象相等的意見存在,一種是兩個(gè)對(duì)象是同一個(gè), 即是一個(gè)對(duì)象那么它的對(duì)象標(biāo)識(shí)就是同一個(gè)對(duì)象標(biāo)識(shí)。還有一種是指兩個(gè)對(duì)象相等,指 他們的值相等而對(duì)象標(biāo)識(shí)不等。這有兩個(gè)含義,一個(gè)是對(duì)象共享,還有一個(gè)是對(duì)象更新。對(duì)象共享:在一個(gè)基于標(biāo)識(shí)的模型中,兩個(gè)對(duì)象可以共享一個(gè)部件。這樣,

25、復(fù)雜對(duì) 象的圖形化表示是一個(gè)圖,而在一個(gè)沒有標(biāo)識(shí)的模型中,限制成一個(gè)樹??紤]下面的例 子:一個(gè)人有姓名、一個(gè)年齡、一個(gè)孩子的集合。假設(shè)Pete和Susa諸E有一個(gè)15歲的孩子,叫joh n。在實(shí)際生活中,會(huì)有兩種情況,一是 Peter和Susan是同一個(gè)孩子的父母, 或者是有二個(gè)孩子,在沒有標(biāo)識(shí)的模型中,Peter表示成:(Peter, 40, (John, 15, )Susan表示成(Susan, 41, (John, 15, )這樣,沒有方法表示是否Peter和Susan是同一個(gè)孩子的父母。在一個(gè)基于標(biāo)識(shí)的模 型,那兩個(gè)結(jié)構(gòu)是否共享同一個(gè)部分(Joh n, 15, )。對(duì)象更新:假設(shè)Pet

26、e和Susank實(shí)是John的父母,在這種情況下,所有對(duì)于 Susan孩 子的更新操作也會(huì)影響到Pete的孩子。在一個(gè)基于值的系統(tǒng),這兩個(gè)子對(duì)象必須都要更 新。對(duì)象標(biāo)識(shí)同時(shí)也是強(qiáng)大的數(shù)據(jù)操縱的基本要素,可以時(shí)集合、元組的基礎(chǔ)和遞歸的 復(fù)雜對(duì)象操縱。支持對(duì)象標(biāo)識(shí)意味著提供對(duì)象賦值功能、對(duì)象拷貝(深拷貝和淺拷貝)、對(duì)象標(biāo)識(shí)檢測(cè)和對(duì)象比較等(深相等和淺相等)。當(dāng)然,用戶可以在基于值的系統(tǒng)上,顯式給定對(duì)象標(biāo)識(shí)來(lái)模擬。然而,這種方式會(huì) 給用戶確保對(duì)象標(biāo)識(shí)的唯一性和參照完整性上增加負(fù)擔(dān),特別是類似于垃圾回收的操 作。要注意的是對(duì)象標(biāo)識(shí)在編程語(yǔ)言中是必須的,程序中操縱的每個(gè)對(duì)象都有一個(gè)標(biāo)識(shí) 可以被更新。這個(gè)

27、標(biāo)識(shí)有時(shí)是一個(gè)變量名,有時(shí)也是物理內(nèi)存中的一個(gè)地址。但是在純 關(guān)系型模型中,是沒有這一概念的,因?yàn)樗且粋€(gè)基于值的模型。1.2. 某個(gè)大學(xué)中有若干系,且每個(gè)系有若干個(gè)班級(jí)和教研室,每個(gè)教研室有若干個(gè)教員,其中教授、副教授,每個(gè)人帶領(lǐng)若干名研究生。每個(gè)班有若干名學(xué)生,每個(gè)學(xué)生 可選修若干門課程,每門課程可由若干學(xué)生選修。完成下列各種要求:(1)設(shè)計(jì)一個(gè)概念模式以描述上述情況,畫出 E-R圖。要求補(bǔ)充每個(gè)實(shí)體的適當(dāng)屬性將“ E-R圖”轉(zhuǎn)換為關(guān)系模式答:系(系號(hào),系名)=Dept(Dno,Dname)班級(jí)(班級(jí)號(hào),班級(jí)名)=Class(Cno,Cname)教研室(教研室號(hào),教研室名,系號(hào))=Staf

28、fRoom(SRno,SRname,Dno)學(xué)生(學(xué)生號(hào),學(xué)生名,班級(jí)號(hào))=Student(Sno,Sname,Cno)課程(課程號(hào),課程名)= Course(Cono,Coname)教員(教員號(hào),教員名,職位,工資號(hào),系號(hào))=Teacher(Tno,Tname,Position,WageNo, Dn ame)選課(課程號(hào),學(xué)號(hào))=SelectCouse(Cono,Sno) 多對(duì)多的關(guān)系必須建立一個(gè)表。 班系(班級(jí)號(hào),系號(hào))=ClassDept(Cono,Dno) 一對(duì)多的關(guān)系可建立也可不建立看 情況。選導(dǎo)師(學(xué)號(hào),教員號(hào))=SelectTeacher(Sno,Tno) /一對(duì)多的關(guān)系可建立也

29、可不建 立看情況。在本題需要建立。(3) 使用SQL語(yǔ)言來(lái)完成下列查詢(a) 查找計(jì)算機(jī)系的,“學(xué)號(hào)”為981001的學(xué)生選修的課程名稱和課程號(hào)。SELECT Cono,Con ameFROM CourseWHERE EXIST(SELECT *FROM SelectCouse WHERE Sno = “981001”)(b) 求沒有帶研究生的所有教授或副教授的名稱、工資號(hào)及所在的系名。SELECT Tn ame, WageNoQ name FROM TeacherWHERE Teacher. Positio n:professor or vice-professor AND NOT EXIS

30、T (SELECT *FROM SelectTeacher)(c) 至少有一個(gè)班級(jí)的系的名稱。SELECT Dn ameFROM Dept WHERE EXSIT(SELECT * FROM ClassDept )13下面是某學(xué)院的一個(gè)學(xué)生檔案數(shù)據(jù)庫(kù)的全局模式:Stude nt=s no,s name,sex,birth,major,class,d noGrade=s no,cno ,grade其中sn o,s name,sex,birt為學(xué)生的“學(xué)號(hào)”,姓名,性別和出生日期,major,class,d no為專業(yè),班級(jí)和所屬的“系號(hào)”。全學(xué)院共有8個(gè)系,dno分別為1, 2,8。其中eno為

31、課程號(hào),grade為考試成績(jī)。根據(jù)需要,要求將學(xué)生關(guān)系 Student中的sno,class 保存在場(chǎng) 地0,其他屬性和成績(jī)Grade按“系號(hào)” 1 4, 5-6分別保存在場(chǎng)地1和場(chǎng)地2上。根據(jù)上 述要求,1.3.1將全局模式進(jìn)行分片,寫出分片定義和分片條件。分片定義和分片條件Stu = Student 二 Gradesno=snoStudent1 = n sno,class StuTemp=!sname,sex,birth , major ,dnoStuStudent2=、yno MTempStudent3=、sqgTempSite Student1(0), Student2(1), Stu

32、dent3(2);1.3.2指出各分片的類型,并畫出“分片樹”Student1 =n sno,class,snameStudent 是垂直分片Student2=、4 口no Tem是水平分片Student3=、Temp!水平分片Stu(s no,s name,sex,birth,major,class,d no,c no,grade)(V)Student1(sno,class,sname)(0) temp(sname,sex,birth,major,dno,cno,grade)(H)Stude nt2(s name,sex,birth,major,d no,cno ,grade)(1)Stud

33、e nt3(s name,sex,birth,major,d no,cno ,grade)(2)1<=dno<=45<=dno<=61.3.3假設(shè)要求查詢“系號(hào)”是1的所有學(xué)生的姓名和成績(jī),寫出在全局模式上的SQL查詢語(yǔ)句,并要求轉(zhuǎn)換成相應(yīng)的關(guān)系代數(shù)表示,畫出全局查詢樹,請(qǐng)依次進(jìn)行全局優(yōu)化和分片優(yōu)化,畫出優(yōu)化后的查詢樹。要求給出優(yōu)化變換過程。Studno = 1”SELECT FROM WHERE去掉Stude ntG如圖Stude nt1n sname,grade|$ dno="1"sn ameh nameStude nt1(s no ,class

34、,s name)Stude nt2(s name,sex,birth,major,d no,cn o,grade) 按C1、C2準(zhǔn)則轉(zhuǎn)換將一元操作下移。sn ame,grade|COStude nt1(s no ,class,s name)dno £1"|Stude nt2(s name,sex,birth,major,d no,c no,gra de)14設(shè)數(shù)據(jù)項(xiàng)x,y存放在S1場(chǎng)地,u,v存放在S2場(chǎng)地,有分布式事務(wù)T1和T2,T1在 S1場(chǎng)地的操作為 R1(x)W1(x)R1(y)W1(y),T2 在 S1場(chǎng)地的操作為R2(x)R2(y)W2(y);T1 在 S2 場(chǎng)

35、地上的操作作為 R1(u)R1(v)W1(u),T2 在 S2 場(chǎng)地上的操作作為W2(u)R2(v)W2(v)。對(duì)下述2種情況,各舉出一種可能的局部歷程(H1 和H2),并說(shuō)明理由。串行調(diào)度數(shù)據(jù)項(xiàng)x,y數(shù)據(jù)項(xiàng)u,vTimeSite S1Site S2|T1T2T1T2|R1(x)R1(u)|W1(x)R1(v)|R1(y)W1(u)|W1(y)R2(x)W2(u)|R2(y)R2(v)W2(y)W2(v)T1 < T2141.局部分別是可串行化,而全局是不可串行化的數(shù)據(jù)項(xiàng)x,y數(shù)據(jù)項(xiàng)u,vTimeSite S1Site S2|T1T2T1T2|R1(x)W2(u)|W1(x)R1(u)R

36、2(v)|R1(y)R2(x)W2(v)| | |W1(y)R2(y)W2(y)R1(v)W1(u)T1 S1< T2S1T2 S2< T1 S2T1、T2的所有子事務(wù)在每個(gè)站點(diǎn)都是可串行執(zhí)行的。但根據(jù)2PL協(xié)議事務(wù)T1在沒有獲得對(duì)v的鎖之前是不會(huì)釋放y的鎖,而T2在沒有獲得y 的鎖之前是不會(huì)釋放v的鎖,T1和T2發(fā)生了死鎖,故T1和T2之間在全局上是不可串行化 的。142.局部和全局都是可串行化的。要求按照嚴(yán)格的2PL協(xié)議,加上適當(dāng)?shù)募渔i和解 鎖命令,(注意,用rl(x)表示加讀鎖,wl(x)表示加對(duì)x加寫鎖,ul(x)表示解鎖) 全局事務(wù)在全局范圍內(nèi)是可串行化的,必須是全局事務(wù)

37、的所有子事務(wù)在每個(gè)局部站點(diǎn)上的可串行性在調(diào)度表中出現(xiàn)的順序必須相同。即 Ti A <Tj A ,則對(duì)于所有擁有Ti和Tj代理的 站點(diǎn)k都有Tik <Tj k,數(shù)據(jù)項(xiàng)x,y數(shù)據(jù)項(xiàng)u,vTimeSiteS1SiteS2|T1T2T1T2|rl1(x)rl1(u)|R1(x)RL2(x)R1(u)wl2(u)|wl1(x)waitrl1(v)wait|rl1(y).R1(v).|R1(y).wl1(u).|W1(y)w1(u).|U1(x).u1(u)|U1(y).u1(v)|rl2(x)wl2(u)|R2(x)w2(u)|rl2(y)rl2(v)|R2(y)r2(v)|wl2(y)wl

38、2(v)|W2(y)w2(v)|U2(x)u2(u)|U2(y)u2(v)1.5.試述面向?qū)ο蟮臄?shù)據(jù)庫(kù)系統(tǒng)中頁(yè)面服務(wù)器和對(duì)象服務(wù)器兩種Client/Server體系結(jié)構(gòu)的主要特點(diǎn),基于頁(yè)面服務(wù)的體系結(jié)構(gòu)可分為兩種:一種是基于page to object的服務(wù)體系結(jié)構(gòu),這種體系結(jié)構(gòu)的特點(diǎn)是數(shù)據(jù)傳輸單位 是頁(yè)面,在客戶方緩沖頁(yè)面和對(duì)象,其優(yōu)點(diǎn)是服務(wù)器的性能大大的提高了,而且在客戶 和服務(wù)器之間數(shù)據(jù)傳輸較少,其缺點(diǎn)方法不能在服務(wù)器上運(yùn)行;另一種體系結(jié)構(gòu)是基于 page to page服務(wù)器體系結(jié)構(gòu),這種體系結(jié)構(gòu)與前面的體系結(jié)構(gòu)非常相似,差別是客戶方僅緩沖頁(yè)面但不緩沖對(duì)象?;趯?duì)象服務(wù)器(OS obj

39、ect server)的OODBMS體系結(jié)構(gòu)的特點(diǎn)是客戶器與服務(wù)器間 的數(shù)據(jù)傳輸單位是對(duì)象,其優(yōu)點(diǎn)是方法在對(duì)象服務(wù)器上運(yùn)行且客戶方和服務(wù)器方均可進(jìn) 行查詢處理,但這種體系結(jié)構(gòu)的缺點(diǎn)是數(shù)據(jù)傳輸量可能比較大,而服務(wù)器仍然是一個(gè)系 統(tǒng)性能的瓶頸。2. 九九年春季試題2.1. DBMS解決了信息處理技術(shù)中的哪些挑戰(zhàn)?關(guān)系數(shù)據(jù)庫(kù)的基本理論已經(jīng)成熟,但各大公司在關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS的實(shí)現(xiàn) 和產(chǎn)品開發(fā)中,都遇到了一系列技術(shù)問題,主要是在數(shù)據(jù)庫(kù)的規(guī)模愈來(lái)愈大,數(shù)據(jù)庫(kù)的 結(jié)構(gòu)愈來(lái)愈復(fù)雜,又有愈來(lái)愈多的用戶共享數(shù)據(jù)庫(kù)的情況下,如何保障數(shù)據(jù)的完整性 (Integrity)、安全性(Security)、并行

40、性(Concurrency),以及一旦出現(xiàn)故障后,數(shù)據(jù) 庫(kù)如何實(shí)現(xiàn)從故障中恢復(fù)(Recovery)。這些問題如果不能圓滿解決,無(wú)論哪個(gè)公司的數(shù) 據(jù)庫(kù)產(chǎn)品都無(wú)法進(jìn)入實(shí)用,最終不能被用戶所接受。正是在解決這些重大的技術(shù)問題, 促使了 DBMSg展和成熟。目前,DBMS軍決上述問題的主要技術(shù)手段和方法如下:把對(duì)數(shù)據(jù)庫(kù)的操作劃分為稱 作"事務(wù)"(transaction)的原子單位,對(duì)1個(gè)事務(wù)內(nèi)的操作,實(shí)行"all or not" 的方針,即"要么全做,要么全不做"。用戶在對(duì)數(shù)據(jù)庫(kù)發(fā)出操作請(qǐng)求時(shí),系統(tǒng)對(duì)有關(guān)的不同程度 的數(shù)據(jù)元素(字段、記錄或文

41、件)"加鎖"(locking);操作完成后再"解鎖"(unlocking)。 對(duì)數(shù)據(jù)庫(kù)的任何更新分兩階段提交(2PL)。建立系統(tǒng)運(yùn)行日志(log),以便在出錯(cuò)時(shí)與數(shù) 據(jù)庫(kù)的備份(backup) 一起將數(shù)據(jù)庫(kù)恢復(fù)到出錯(cuò)前的正常狀態(tài)。上述及其他各種方法可總稱為"事務(wù)處理技術(shù)"(transaction processingtechnique)。事務(wù)處理技術(shù)雖然誕生于數(shù)據(jù)庫(kù)研究,但對(duì)于分布式系統(tǒng),client/server結(jié)構(gòu)中的數(shù)據(jù)管理與通信,對(duì)于容錯(cuò)和高可靠性系統(tǒng),同樣具有重要的意義。2.2. 在關(guān)系數(shù)據(jù)庫(kù)應(yīng)用設(shè)計(jì)中,為什么要對(duì)數(shù)據(jù)庫(kù)模式

42、進(jìn)行規(guī)范化?關(guān)系數(shù)據(jù)庫(kù)的設(shè)計(jì)是對(duì)數(shù)據(jù)進(jìn)行組織化和結(jié)構(gòu)化的過程,核心問題是關(guān)系模型的設(shè)計(jì)。關(guān)系模型是數(shù)學(xué)化的、用二維表格數(shù)據(jù)描述各實(shí)體之間的聯(lián)系的這么一種模型;它 是所有的關(guān)系模式、屬性名和關(guān)鍵字的匯集,是關(guān)系模式描述的對(duì)象。簡(jiǎn)單的說(shuō)關(guān)系模 式是指一個(gè)關(guān)系的屬性名表,即“二維表”的“表框架”。關(guān)系模式的設(shè)計(jì)是關(guān)系模型 設(shè)計(jì)的靈魂。所以,關(guān)系模式的設(shè)計(jì)是關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)核心的核心。關(guān)系模式的設(shè)計(jì)直接決定著關(guān)系數(shù)據(jù)庫(kù)的性能。目前,在指導(dǎo)關(guān)系模式的設(shè)計(jì)中規(guī) 范化(normalization)設(shè)計(jì)占有主導(dǎo)地位,它是在數(shù)據(jù)庫(kù)幾十年的長(zhǎng)期發(fā)展中產(chǎn)生并成熟 的。但近年來(lái)這一領(lǐng)域出現(xiàn)了一種新的趨勢(shì),一種稱為“非規(guī)

43、范化”(de normalizatio n)的關(guān)系模式設(shè)計(jì)引起業(yè)界的關(guān)注并已在一定的范圍內(nèi)得到應(yīng)用。對(duì)這一新的設(shè)計(jì)思想, 各方反應(yīng)迥然不同褒貶不一,從而在相關(guān)的理論界掀起了一場(chǎng)不大不小的規(guī)范化與非規(guī) 范化之爭(zhēng)。本文簡(jiǎn)單介紹了規(guī)范化與非規(guī)范化設(shè)計(jì)的基本思想,綜述了正反雙方爭(zhēng)論的 要點(diǎn),供參考。一、規(guī)范化設(shè)計(jì)關(guān)系模式規(guī)范化設(shè)計(jì)的基本思想是通過對(duì)關(guān)系模式進(jìn)行分解,用一組等價(jià)的關(guān)系子模式來(lái)代替原有的關(guān)系模式,消除數(shù)據(jù)依賴(包括函數(shù)依賴和多值依賴)中不合理的部分, 使得一個(gè)關(guān)系僅描述一個(gè)實(shí)體或者實(shí)體間的一種聯(lián)系。這一過程必須在保證無(wú)損連接 性、保持函數(shù)依賴性的前提下進(jìn)行,即確保不破壞原有數(shù)據(jù)的前提下,并

44、可將分解后的 關(guān)系通過自然聯(lián)接恢復(fù)到原有的關(guān)系。具體地說(shuō),規(guī)范化設(shè)計(jì)的過程就是按不同的范式,將一個(gè)二維表不斷地分解成多個(gè) 二維表并建立表之間的關(guān)聯(lián),最終達(dá)到一個(gè)表唯一描述一個(gè)實(shí)體或者實(shí)體間的一種聯(lián)系 的目標(biāo)。目前遵循的主要范式包括 1NF、2NF、3NF、BCNF、4NF和5NF等幾種;在工 程中3NF、BCNF應(yīng)用得最廣泛,推薦采用3NF作為標(biāo)準(zhǔn)。規(guī)范化設(shè)計(jì)的優(yōu)點(diǎn)包括可有效地消除數(shù)據(jù)冗余,理順數(shù)據(jù)的從屬關(guān)系,保持?jǐn)?shù)據(jù)庫(kù) 的完整性,增強(qiáng)數(shù)據(jù)庫(kù)的穩(wěn)定性、伸縮性、適應(yīng)性。通常認(rèn)為規(guī)范化設(shè)計(jì)存在的主要問 題是增加了查詢時(shí)的連接“庫(kù)表”的運(yùn)算,導(dǎo)致計(jì)算機(jī)時(shí)間、空間、系統(tǒng)及運(yùn)行效率的 損失。在大多數(shù)情況

45、下,這一問題可通過良好的索引設(shè)計(jì)等方法得到解決。二、非規(guī)范化設(shè)計(jì)非規(guī)范化設(shè)計(jì)的基本思想是,現(xiàn)實(shí)世界并不總是依從于某一完美的數(shù)學(xué)化的關(guān)系模 式。強(qiáng)制性地對(duì)事物進(jìn)行規(guī)范化設(shè)計(jì),形式上顯得簡(jiǎn)單化,內(nèi)容上趨于復(fù)雜化,更重要 的是導(dǎo)致數(shù)據(jù)庫(kù)運(yùn)行效率的減低。非規(guī)范化要求適當(dāng)?shù)亟档蜕踔翏仐夑P(guān)系模式的范式, 不再要求一個(gè)表唯一描述一個(gè)實(shí)體或者實(shí)體間的一種聯(lián)系。其主要目的在于提高數(shù)據(jù)庫(kù)的運(yùn)行效率。非規(guī)范化處理的主要技術(shù)包括增加冗余或派生列,對(duì)表進(jìn)行合并、分割或增加重復(fù) 表。一般認(rèn)為,在下列情況下可以考慮進(jìn)行非規(guī)范化處理:(1)大量頻繁的查詢過程所涉 及的表,都需要進(jìn)行連接的時(shí)候;(2)主要的應(yīng)用程序在執(zhí)行時(shí)要將

46、表連接起來(lái)進(jìn)行查詢 的情況下;(3)對(duì)數(shù)據(jù)的計(jì)算需要臨時(shí)表或進(jìn)行復(fù)雜的查詢時(shí)。非規(guī)范化設(shè)計(jì)的主要優(yōu)點(diǎn)是減少了查詢操作所需的連接;減少了外部鍵和索引的數(shù)量;可以預(yù)先進(jìn)行統(tǒng)計(jì)計(jì)算,提高了查詢時(shí)的響應(yīng)速度。非規(guī)范化存在的主要問題是增 加了數(shù)據(jù)冗余;影響數(shù)據(jù)庫(kù)的完整性;降低了數(shù)據(jù)更新的速度;增加了存儲(chǔ)表所占用的 物理空間。其中最重要的是數(shù)據(jù)庫(kù)的完整性問題。這一問題一般可通過建立觸發(fā)器、應(yīng) 用事務(wù)邏輯、在適當(dāng)?shù)臅r(shí)間間隔運(yùn)行批命令或存儲(chǔ)過程等方法得到解決。三、規(guī)范化與非規(guī)范化爭(zhēng)論的要點(diǎn)支持非規(guī)范化設(shè)計(jì)的一方認(rèn)為,數(shù)據(jù)庫(kù)規(guī)范化的程度越高,其中表的數(shù)量越多,規(guī) 范化的程度與表的數(shù)量直接相關(guān);表的數(shù)量越多,表的

47、連接運(yùn)算也越多;連接運(yùn)算增多, 必然降低數(shù)據(jù)庫(kù)執(zhí)行的速度,影響數(shù)據(jù)庫(kù)的性能。只有通過非規(guī)范化設(shè)計(jì),顯著減少表 的數(shù)量,從而減少對(duì)連接運(yùn)算的依賴,加速數(shù)據(jù)庫(kù)執(zhí)行的速度,才能保證數(shù)據(jù)庫(kù)性能的 正常發(fā)揮。例如目前流行于決策支持系統(tǒng)的非規(guī)范化星型模式就遠(yuǎn)勝于應(yīng)用規(guī)范化設(shè) 計(jì),是非規(guī)范化設(shè)計(jì)的最好范例。非規(guī)范化設(shè)計(jì)并不意味著混亂和無(wú)視規(guī)則,它也遵循 保護(hù)信息完整性等軟件工程的基本原則。支持規(guī)范化設(shè)計(jì)的一方認(rèn)為,規(guī)范化與非規(guī)范化只是一個(gè)邏輯概念,強(qiáng)調(diào)非規(guī)范化 設(shè)計(jì)者混淆了邏輯與物理的關(guān)系。數(shù)據(jù)庫(kù)的性能是由物理水平?jīng)Q定的,即硬件、數(shù)據(jù)庫(kù) 的大小和物理設(shè)計(jì)、數(shù)據(jù)存儲(chǔ)和訪問的方法、數(shù)據(jù)庫(kù)管理系統(tǒng)的優(yōu)化程度、并發(fā)

48、訪問的 數(shù)量等;非規(guī)范化設(shè)計(jì)并未改變數(shù)據(jù)庫(kù)的物理水平,因此不可能提高數(shù)據(jù)庫(kù)的性能。規(guī) 范化并不只是為了避免數(shù)據(jù)冗余,更重要的是為了確保數(shù)據(jù)庫(kù)的完整性。非規(guī)范化設(shè)計(jì) 的最大問題是難以保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的一致性,存在著破壞數(shù)據(jù)的危險(xiǎn)。此外,非規(guī)范 化使一個(gè)表中存在多個(gè)實(shí)體,不同實(shí)體混合在一起強(qiáng)化了數(shù)據(jù)庫(kù)的復(fù)雜性,提高了用戶 理解的難度,并導(dǎo)致描述問題上的困難,增加了正確響應(yīng)的風(fēng)險(xiǎn)。只有規(guī)范化設(shè)計(jì)才是 解決這些問題的根本途徑。如果不摒棄非規(guī)范化設(shè)計(jì)理念,為了獲得所謂的性能的提高 而漠視數(shù)據(jù)庫(kù)完整性被破壞的風(fēng)險(xiǎn),就無(wú)法激勵(lì)“開發(fā)商”去研究真正的完全規(guī)范化而 高性能的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),其后果必然影響數(shù)據(jù)

49、庫(kù)的健康發(fā)展。從某種意義上說(shuō),數(shù)據(jù)庫(kù)的規(guī)范化與非規(guī)范化設(shè)計(jì)并不是對(duì)立的、非此即彼的關(guān)系。 也許其中一方會(huì)逐漸消亡,也許二者存在一條中間道路可走。認(rèn)識(shí)事物原本存在一個(gè)螺 旋式上升的過程。這場(chǎng)爭(zhēng)論尚未結(jié)束,也無(wú)法對(duì)最終的結(jié)果進(jìn)行預(yù)測(cè)。但可以肯定的是, 無(wú)論結(jié)果如何,都將對(duì)未來(lái)數(shù)據(jù)庫(kù)的發(fā)展方向產(chǎn)生深遠(yuǎn)的影響。23簡(jiǎn)述ACID特性。事務(wù)具有四個(gè)特性:原子性(Atomicity )、一致性(Consistency)、隔離性(Isolation) 和持續(xù)性(Durability )。這個(gè)四個(gè)特性也簡(jiǎn)稱為ACID特性。原子性(Atomicity):事務(wù)是數(shù)據(jù)庫(kù)的邏輯工作單位,事務(wù)中包括的諸操作要么都 做,要

50、么都不做一致性(Consistency :事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另 一個(gè)一致性狀態(tài)。因此,當(dāng)數(shù)據(jù)庫(kù)只包含事務(wù)成功提交的結(jié)果時(shí),就說(shuō)數(shù)據(jù)庫(kù)處于一致 性狀態(tài)之中。如果數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行中發(fā)生故障,有些事務(wù)尚未完成就被迫中斷了,系統(tǒng) 就將此事務(wù)中對(duì)數(shù)據(jù)庫(kù)的所有已經(jīng)完成的操作全部撤消,滾回到事務(wù)開始時(shí)的一致狀 態(tài)0隔離性(Isolation): 個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾, 即一個(gè)事務(wù)的內(nèi)部操作 及其使用的數(shù)據(jù)對(duì)于其他并發(fā)事務(wù)來(lái)說(shuō)是隔離的。 并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能互相干 擾。持續(xù)性(Durability ):持續(xù)性也稱永久性(Permanene©,指一個(gè)事務(wù)一旦

51、提交,它 對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的改變就應(yīng)該是永久性的。接下來(lái)的其他操作或故障不應(yīng)該對(duì)其執(zhí)行結(jié)果有任何影響。事務(wù)是恢復(fù)和并發(fā)控制的基本單位。保證事務(wù) ACID特性是事務(wù)處理的重要任務(wù)。事 務(wù)ACID特性可能遭到破壞的因素有:1. 多個(gè)事務(wù)并行運(yùn)行時(shí),不同事務(wù)的操作交叉執(zhí)行。2. 事務(wù)在運(yùn)行過程中被強(qiáng)行停止。在第一種情況下,數(shù)據(jù)庫(kù)管理系統(tǒng)必須保證多個(gè)事務(wù)的交叉運(yùn)行不影響這些事務(wù)的原子 性。在第二種情況下,數(shù)據(jù)庫(kù)管理系統(tǒng)必須保證被強(qiáng)行終止的事務(wù)對(duì)數(shù)據(jù)庫(kù)和其它事務(wù) 沒有任何影響。這些就是數(shù)據(jù)庫(kù)管理系統(tǒng)中恢復(fù)機(jī)制和并發(fā)控制機(jī)制的責(zé)任。24長(zhǎng)事務(wù)處理有哪些特性,如何解決?通常DBM中采用"鎖定-修改-

52、釋放"的策略以實(shí)現(xiàn)其對(duì)多用戶并發(fā)操作數(shù)據(jù)庫(kù)的控 制。但這種策略不很適合用于處理地理數(shù)據(jù)的DBMS對(duì)地理數(shù)據(jù)的編輯工作,可以幾分鐘做完,也可能要拖上幾個(gè)月。這種情形即是所謂"長(zhǎng)事務(wù)處理"o ArcSDE8對(duì)長(zhǎng)事務(wù)處理提供了底層的支持。當(dāng)ArcSDE服務(wù)器的一個(gè)實(shí)例(instanee )第一次啟動(dòng)時(shí),就建立 了數(shù)據(jù)庫(kù)缺省的狀態(tài)和版本。用戶可在此基礎(chǔ)上建立公共的或私有的數(shù)據(jù)版本。用戶各 自在自己的數(shù)據(jù)版本上工作,因而無(wú)須對(duì)多個(gè)用戶同時(shí)訪問的數(shù)據(jù)對(duì)象進(jìn)行鎖定。每個(gè)用戶都是在直接對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作(編輯、修改),但是AreSDE為其建立了記 錄所有修改"痕跡&quo

53、t;的增量記錄,即版本。用戶在這個(gè)數(shù)據(jù)版本進(jìn)行編輯修改時(shí),并不用 關(guān)心其他用戶是不是也在對(duì)同一數(shù)據(jù)進(jìn)行操作。只有當(dāng)用戶完成了他的(長(zhǎng))事務(wù)處理 工作時(shí),系統(tǒng)才將其當(dāng)時(shí)的數(shù)據(jù)版本"合并"到原來(lái)的數(shù)據(jù)版本中去,"沖突"也是在此時(shí) 再加以處理。系統(tǒng)為用戶提供了解決沖突的三種選擇:維持原狀、否決自己的修改或否 決別人的修改。長(zhǎng)事務(wù)(lo ng tran sactio n)的應(yīng)急之策事務(wù)(transaction) 是一個(gè)不可分的工作單位,一個(gè)事務(wù)中包含的操作要么全部執(zhí) 行,要么全部不執(zhí)行.如果數(shù)據(jù)庫(kù)中只包含成功事務(wù)提交的結(jié)果,則數(shù)據(jù)庫(kù)的狀態(tài)稱為" 一致狀

54、態(tài)".為了保證數(shù)據(jù)庫(kù)"一致狀態(tài)",Informix-online采取如下機(jī)制:對(duì)于帶日志的數(shù)據(jù)庫(kù)(logged database),在事務(wù)運(yùn)行過程中,系統(tǒng)將每個(gè)更新操作都記錄到日志文件中,并且包含事務(wù)開始標(biāo)記、事務(wù)結(jié)束標(biāo)記或“事務(wù)回滾”標(biāo)記。 如果該事務(wù)在運(yùn)行過程中出現(xiàn)故障,那么恢復(fù)子系統(tǒng)將對(duì)該事務(wù)做撤銷處理(undo)。具 體做法就是反向閱讀日志文件,對(duì)該事務(wù)的每一個(gè)更新操作做反操作。注意,“事務(wù)回滾”作為事務(wù)一部分也要向邏輯日志寫紀(jì)錄。當(dāng)一個(gè)事務(wù)很大時(shí),有可能在其運(yùn)行過程 中橫跨所有的日志文件。此時(shí)所有的邏輯日志文件都包含該活動(dòng)事務(wù),包含活動(dòng)事務(wù)的 邏輯日志文

55、件是不能被釋放的。如果此事務(wù)還沒有結(jié)束 ,或者因?yàn)槌鲥e(cuò)需要“回滾”,那 么就需要繼續(xù)寫邏輯日志而此時(shí)沒有空閑的日志空間可被利用,就會(huì)造成了系統(tǒng)癱瘓。 Informix管理系統(tǒng)為了避免此類情況發(fā)生定義了一個(gè)參數(shù) LTXHWMr般情況下,設(shè)置它 的值為50,即一個(gè)事務(wù)橫跨的邏輯日志達(dá)到整個(gè)邏輯日志模塊的50%被定義 為長(zhǎng)事務(wù).系統(tǒng)將強(qiáng)制其“回滾” (rollback).由于存儲(chǔ)空間的有限性,業(yè)務(wù)的快速增長(zhǎng),升級(jí)步伐沒有跟上,我們銀行業(yè)務(wù)中 長(zhǎng)事務(wù)偶爾會(huì)在關(guān)鍵時(shí)出現(xiàn),如年終結(jié)轉(zhuǎn)、季度結(jié)息、刪除大數(shù)據(jù)表、卸數(shù)重新裝載數(shù) 據(jù)庫(kù)等操作。解決這類問題最根本的辦法就是增加邏輯日志空間。但有時(shí)事出突然,臨 時(shí)不

56、能解決,又不能影響正常營(yíng)業(yè),必須當(dāng)時(shí)解決問題。權(quán)益之計(jì)可以取消數(shù)據(jù)庫(kù)的帶 日志狀態(tài),改為no logged.此狀態(tài)下事務(wù)的更新操作不再往邏輯日志文件中寫,給我 們帶來(lái)的風(fēng)險(xiǎn)是:事務(wù)運(yùn)行過程中出現(xiàn)故障時(shí),恢復(fù)子系統(tǒng)就不能“回滾”(roll back)該事務(wù),數(shù)據(jù)庫(kù)就被置于"不一致狀態(tài)"。但只要按照一定的步驟來(lái)處理。就能把風(fēng)險(xiǎn) 降到最低或者沒有風(fēng)險(xiǎn)。2.5.數(shù)據(jù)庫(kù)系統(tǒng)體系結(jié)構(gòu)有哪幾類,每種類型的特點(diǎn)是什么,關(guān)鍵技術(shù)有哪些?數(shù)據(jù)庫(kù)系統(tǒng)分為:集中式數(shù)據(jù)庫(kù)系統(tǒng)、客戶/服務(wù)器數(shù)據(jù)庫(kù)系統(tǒng)、并行數(shù)據(jù)庫(kù)系統(tǒng)、 分布式數(shù)據(jù)庫(kù)系統(tǒng)、集中式數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn):將物理數(shù)據(jù)集中存放在主機(jī)上,由主機(jī)上的數(shù)據(jù)庫(kù)管理 系統(tǒng)統(tǒng)一管理整個(gè)數(shù)據(jù)庫(kù),用戶可從終端上發(fā)出數(shù)據(jù)操作命令,經(jīng)主機(jī)上的數(shù)據(jù)庫(kù)管理 系統(tǒng)接收

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論