第一篇:1數(shù)據(jù)庫(kù)原理習(xí)題與答案_第3章數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)(范文)
簡(jiǎn)答題
1. 試述數(shù)據(jù)庫(kù)系統(tǒng)三級(jí)模式結(jié)構(gòu),這種結(jié)構(gòu)的優(yōu)點(diǎn)是什么。
答:數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。外模式,亦稱子模式或用戶模式,是數(shù)據(jù)庫(kù)用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫(kù)用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。模式,亦稱邏輯模式,是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。模式描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu),外模式涉及的是數(shù)據(jù)的局部邏輯結(jié)構(gòu),通常是模式的子集。內(nèi)模式,亦稱存儲(chǔ)模式,是數(shù)據(jù)在數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)部的表示,即對(duì)數(shù)據(jù)的物理結(jié)構(gòu)和存儲(chǔ)方式的描述。
數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式是對(duì)數(shù)據(jù)的三個(gè)抽象級(jí)別,它把數(shù)據(jù)的具體組織留給DBMS管理,使用戶能邏輯抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計(jì)算機(jī)中的表示和存儲(chǔ)。為了能夠在內(nèi)部實(shí)現(xiàn)這三個(gè)抽象層次的聯(lián)系和轉(zhuǎn)換,數(shù)據(jù)庫(kù)系統(tǒng)在這三級(jí)模式之間提供了兩層映像:外模式/模式映像和模式/內(nèi)模式映像,正是這兩層映像保證了數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性。
2. 定義并解釋以下術(shù)語(yǔ):模式、外模式、內(nèi)模式、DDL、DML。
答:模式,亦稱邏輯模式,是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。外模式,亦稱子模式或用戶模式,是數(shù)據(jù)庫(kù)用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫(kù)用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。內(nèi)模式,亦稱存儲(chǔ)模式,是數(shù)據(jù)在數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)部的表示,即對(duì)數(shù)據(jù)的物理結(jié)構(gòu)和存儲(chǔ)方式的描述。
DDL:數(shù)據(jù)定義語(yǔ)言,用來定義數(shù)據(jù)庫(kù)模式、外模式、內(nèi)模式的語(yǔ)言。
DML:數(shù)據(jù)操縱語(yǔ)言,用來對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行查詢、插入、刪除和修改的語(yǔ)句。
3. 什么叫數(shù)據(jù)與程序的物理獨(dú)立性?什么叫數(shù)據(jù)與程序的邏輯獨(dú)立性?為什么數(shù)據(jù)庫(kù)系統(tǒng)具有數(shù)據(jù)與程序的獨(dú)立性?
答:數(shù)據(jù)與程序的邏輯獨(dú)立性:當(dāng)模式改變時(shí),由數(shù)據(jù)庫(kù)管理員對(duì)各個(gè)外模式//模式的映像做相應(yīng)改變,可以使外模式保持不變。應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨(dú)立性,簡(jiǎn)稱數(shù)據(jù)的邏輯獨(dú)立性。
數(shù)據(jù)與程序的物理獨(dú)立性:當(dāng)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)改變了,由數(shù)據(jù)庫(kù)管理員對(duì)模式/內(nèi)模式映像做相應(yīng)改變,可以使模式保持不變,從而應(yīng)用程序也不必改變,保證了數(shù)據(jù)與程序的物理獨(dú)立性,簡(jiǎn)稱數(shù)據(jù)的物理獨(dú)立性。
數(shù)據(jù)庫(kù)管理系統(tǒng)在三級(jí)模式之間提供的兩層映像保證了數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性。
第二篇:數(shù)據(jù)庫(kù)習(xí)題與答案
一.選擇題:
1.日志文件是用于記錄()
A.程序運(yùn)行過程 B.數(shù)據(jù)操作 C.對(duì)數(shù)據(jù)的所有更新操作 D.程序執(zhí)行的結(jié)果
答案:C(114)2.利用查詢分析器,能()
A.直接執(zhí)行SQL語(yǔ)句
B.提交SQL語(yǔ)句給服務(wù)器執(zhí)行 C.作為企業(yè)管理器使用
D.作為服務(wù)管理器使用 答案:B(123)
3.不屬于SQL Server系統(tǒng)全局變量的是()
A.@@Error
B.@@Connections
C.@@Fetch_Status
D.@Records
答案:D(131)
4.Transact-SQL對(duì)標(biāo)準(zhǔn)SQL的擴(kuò)展主要表現(xiàn)為()
A.加入了程序控制結(jié)構(gòu)和變量 B.加入了建庫(kù)和建表語(yǔ)句 C.提供了分組(Group By)查詢功能 D.提供了Min、Max等統(tǒng)計(jì)函數(shù)
答案:A(133)
5.下列選項(xiàng)中,查詢中的匯總函數(shù)是()
A.CONST B.RETURN C.FETCH D.COUNT 答案:D(134)
6.下列選項(xiàng)中,不是存儲(chǔ)過程的組成部分是()
A.過程聲明 B.過程名 C.參數(shù) D.過程體
答案:A(135)
7.在SQL Server服務(wù)器上,存儲(chǔ)過程是一組預(yù)先定義并()
A.保存的T-SQL語(yǔ)句 B.編譯的T-SQL語(yǔ)句 C.解釋的T-SQL語(yǔ)句 D.編寫的T-SQL語(yǔ)句
答案:B(135)
8.在ODBC與數(shù)據(jù)的交換管理中,所涉及的下列選項(xiàng)中不屬于交換管理的是()A.連接管理 B.分配管理 C.游標(biāo)管理 D.診斷管理
答案:B(138)
9.在下列的選項(xiàng)中,不屬于Web常用的開發(fā)工具的是()
A.ASP B.JSP C.PHP D.Visual BASIC 答案:D(143)
二.填空題
1.連接管理語(yǔ)句主要用于數(shù)據(jù)交換中主客體間建立實(shí)質(zhì)性關(guān)聯(lián)的語(yǔ)句,它們由______________、置連接語(yǔ)句與斷開語(yǔ)句三條語(yǔ)句組成。
答案:連接語(yǔ)句
(115)
2.連接管理語(yǔ)句主要用于數(shù)據(jù)交換中主客體間建立實(shí)質(zhì)性關(guān)聯(lián)的語(yǔ)句,它們由連接語(yǔ)句、______________與斷開語(yǔ)句三條語(yǔ)句組成。
答案:置連接語(yǔ)句
(115)
3.連接管理語(yǔ)句主要用于數(shù)據(jù)交換中主客體間建立實(shí)質(zhì)性關(guān)聯(lián)的語(yǔ)句,它們由連接語(yǔ)句、置連接語(yǔ)句與______________三條語(yǔ)句組成。
答案:斷開語(yǔ)句
(115)
4.診斷管理語(yǔ)句主要用于獲取SQL語(yǔ)句執(zhí)行 的狀態(tài)。
答案:后(117)
5.人機(jī)交互方式是人與______________直接交互的方式,它是最原始、最簡(jiǎn)單也是最方便的一種方式。
答案:數(shù)據(jù)庫(kù)
(118)
6.自含式SQL構(gòu)成一種完整的語(yǔ)言,它將傳統(tǒng)的程序設(shè)計(jì)語(yǔ)言與SQL相結(jié)合,其數(shù)據(jù)同時(shí)具有______________與標(biāo)量形式。
答案:集合量
(130)
7.在Web應(yīng)用中一般使用典型的三層結(jié)構(gòu)B/S模式,在這個(gè)結(jié)構(gòu)中由瀏覽器、______________及數(shù)據(jù)庫(kù)服務(wù)器三部分組成。
答案:Web服務(wù)器
(143)
8.在Web應(yīng)用中一般使用典型的三層結(jié)構(gòu)B/S模式,在這個(gè)結(jié)構(gòu)中由瀏覽器、Web服務(wù)器及______________三部分組成。
答案:數(shù)據(jù)庫(kù)服務(wù)器
(143)
三.簡(jiǎn)答題
1.請(qǐng)說明游標(biāo)管理語(yǔ)句的作用和他所設(shè)有的4個(gè)SQL語(yǔ)句。
答案:(116)游標(biāo)管理語(yǔ)句主要用于在數(shù)據(jù)交換中數(shù)據(jù)庫(kù)中的集合量數(shù)據(jù)與應(yīng)用程序的標(biāo)量數(shù)據(jù)間的轉(zhuǎn)換。它主要用于SQL的查詢語(yǔ)句中。
在游標(biāo)管理中一共設(shè)有4個(gè)SQL語(yǔ)句,它們是:
⑴ 定義游標(biāo)。為某SELECT語(yǔ)句的結(jié)果集合定義一個(gè)命名游標(biāo)
⑵ 打開游標(biāo)。在游標(biāo)定義后當(dāng)使用數(shù)據(jù)時(shí)需打開游標(biāo),此時(shí)游標(biāo)處于活動(dòng)狀態(tài)并指向集合的第一個(gè)記錄
⑶ 推進(jìn)游標(biāo)。此語(yǔ)句功能是將游標(biāo)定位于集合中指定的記錄,并從該記錄取值,送入程序變量中
⑷ 關(guān)閉游標(biāo)。游標(biāo)使用完后需關(guān)閉 2.請(qǐng)說明動(dòng)態(tài)SQL管理語(yǔ)句內(nèi)容。
第三篇:數(shù)據(jù)庫(kù)習(xí)題與答案
一.選擇題:
1.數(shù)據(jù)模型用來表示實(shí)體間的聯(lián)系,但不同的數(shù)據(jù)庫(kù)管理系統(tǒng)支持不同的數(shù)據(jù)模型。在常用的數(shù)據(jù)模型中,不包括()
A.網(wǎng)狀模型 B.鏈狀模型 C.層次模型 D.關(guān)系模型 答案:B(18)
2.E-R圖中的主要元素是實(shí)體型、屬性和()
A.記錄型 B.結(jié)點(diǎn) C.聯(lián)系 D.有向邊
答案:C(19)3.關(guān)系數(shù)據(jù)模型____。
A.只能表示實(shí)體間的1:1聯(lián)系 B.只能表示實(shí)體間的1:n聯(lián)系 C.只能表示實(shí)體間的m:n聯(lián)系 D.可以表示實(shí)體間的上述三種聯(lián)系
答案:D(20)
4.數(shù)據(jù)庫(kù)概念設(shè)計(jì)E-R方法中,用屬性描述實(shí)體的特征,實(shí)體集在E-R圖中,用下列選項(xiàng)之一表示()
A.矩形 B.四邊形 C.菱形 D.橢圓形
答案:A(22)
5.層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫(kù)劃分原則是()A.記錄長(zhǎng)度 B.文件的大小 C.聯(lián)系的復(fù)雜程度 D.數(shù)據(jù)之間的聯(lián)系
答案:D(24)
6.數(shù)據(jù)庫(kù)技術(shù)的奠基人之一E.F.Codd從1970年起發(fā)表過多篇論文,主要論述的是()A.層次數(shù)據(jù)模型 B.網(wǎng)狀數(shù)據(jù)模型 C.關(guān)系數(shù)據(jù)模型 D.面向?qū)ο髷?shù)據(jù)模型
答案:C(24)
7.按照傳統(tǒng)的數(shù)據(jù)模型分類,數(shù)據(jù)庫(kù)系統(tǒng)可以分為三種類型()A.大型、中型和小型 B.西文、中文和兼容 C.層次、網(wǎng)狀和關(guān)系 D.數(shù)據(jù)、圖形和多媒體
答案:C(24)
8.在數(shù)據(jù)庫(kù)設(shè)計(jì)中用關(guān)系模型來表示實(shí)體和實(shí)體之間的聯(lián)系。關(guān)系模型的結(jié)構(gòu)是()A.二維表結(jié)構(gòu) B.封裝結(jié)構(gòu) C.層次結(jié)構(gòu) D.網(wǎng)狀結(jié)構(gòu)
答案:A(24)
9.一個(gè)關(guān)系數(shù)據(jù)庫(kù)文件中的各條記錄()
A.前后順序不能任意顛倒,一定要按照輸入的順序排列 B.前后順序可以任意顛倒,不影響庫(kù)中的數(shù)據(jù)關(guān)系
C.前后順序可以任意顛倒,但排列順序不同,統(tǒng)計(jì)處理的結(jié)果就可能不同 D.前后順序不能任意顛倒,一定要按照關(guān)鍵字段值的順序排列
答案:B(25)
10.關(guān)系數(shù)據(jù)庫(kù)中的關(guān)鍵字是指()
A.能惟一決定關(guān)系的字段 B.不可改動(dòng)的專用保留字 C.關(guān)鍵的很重要的字段 D.能惟一標(biāo)識(shí)元組的屬性或?qū)傩约?/p>
答案:D(26)
二.填空題
1.根據(jù)數(shù)據(jù)模型的應(yīng)用目的不同,數(shù)據(jù)模型分為、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。
答案:概念數(shù)據(jù)模型(18)
2.數(shù)據(jù)模型按不同的應(yīng)用層次分成三種類型,它們是概念數(shù)據(jù)模型、及物理數(shù)據(jù)模型。
答案:邏輯數(shù)據(jù)模型
(18)
3.數(shù)據(jù)模型按不同的應(yīng)用層次分成三種類型,它們是______________、邏輯數(shù)據(jù)模型及物理數(shù)據(jù)模型。
答案:概念數(shù)據(jù)模型
(18)
4.數(shù)據(jù)模型按不同的應(yīng)用層次分成三種類型,它們是概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型
及。
答案:物理數(shù)據(jù)模型
(18)
5.數(shù)據(jù)模型所描述的內(nèi)容有三個(gè)部分,它們是______________、數(shù)據(jù)操縱與數(shù)據(jù)約束。
答案:數(shù)據(jù)結(jié)構(gòu)
(18)
6.數(shù)據(jù)模型所描述的內(nèi)容有三個(gè)部分,它們是數(shù)據(jù)結(jié)構(gòu)、______________與數(shù)據(jù)約束。
答案:數(shù)據(jù)操縱
(18)
7.數(shù)據(jù)模型所描述的內(nèi)容有三個(gè)部分,它們是數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操縱與。
答案:數(shù)據(jù)約束
(18)
8.數(shù)據(jù)庫(kù)中的數(shù)據(jù)模型可以將復(fù)雜的現(xiàn)實(shí)世界要求反映到計(jì)算機(jī)數(shù)據(jù)庫(kù)中的______________。
答案:物理世界
(19)
9.關(guān)系數(shù)據(jù)庫(kù)是采用______________作為數(shù)據(jù)的組織方式。
答案:關(guān)系模型
(24)
10.關(guān)系模型統(tǒng)一采用______________形式,它也可簡(jiǎn)稱表。
答案:二維表
(25)
11.在一個(gè)實(shí)體表示的信息中,稱 為關(guān)鍵字。
答案:能惟一標(biāo)識(shí)實(shí)體的屬性或?qū)傩越M
(26)
12.關(guān)系模型的數(shù)據(jù)操縱即是建立在關(guān)系上的一些操作,一般有、刪除、插入及修改等四種操作。
答案:查詢
(27)
三.簡(jiǎn)答題
1.試區(qū)別數(shù)據(jù)模型與數(shù)據(jù)模式。答案:(18)數(shù)據(jù)模型(data model)是數(shù)據(jù)管理基本特征的抽象,它是數(shù)據(jù)庫(kù)的核心與基礎(chǔ)。
數(shù)據(jù)模式主要描述基礎(chǔ)數(shù)據(jù)的類型、性質(zhì)以及數(shù)據(jù)間的關(guān)聯(lián),且在數(shù)據(jù)庫(kù)系統(tǒng)中具有統(tǒng)一的結(jié)構(gòu)形式。2.在數(shù)據(jù)庫(kù)的物理模型中有哪幾個(gè)層次?請(qǐng)說明之。
答案:(28)
物理模型主要是指,計(jì)算機(jī)系統(tǒng)的物理存儲(chǔ)介質(zhì)(特別是磁盤組織),操作系統(tǒng)的文件級(jí)以及在它們之上的數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織三個(gè)層次。3.試給出文件系統(tǒng)的組成結(jié)構(gòu)以及它的操作。
答案:(30)⑴ 文件系統(tǒng)的組成:
文件系統(tǒng)是實(shí)現(xiàn)數(shù)據(jù)庫(kù)系統(tǒng)的直接物理支持,文件系統(tǒng)的基本結(jié)構(gòu)由項(xiàng)、記錄、文件及文件集合等四個(gè)層次組成。
⑵ 文件的操作文件有若干操作,一般的操作有如下五種:
①打開文件
②關(guān)閉文件
③讀記錄
④寫記錄
⑤刪除記錄 4.數(shù)據(jù)庫(kù)中有哪些數(shù)據(jù)分類,請(qǐng)說明之。
答案:(30)存儲(chǔ)于數(shù)據(jù)庫(kù)中的數(shù)據(jù)除了數(shù)據(jù)主體外還需要很多相應(yīng)的輔助信息,它們的整體構(gòu)成了完整的數(shù)據(jù)庫(kù)數(shù)據(jù)的全體。
⑴ 數(shù)據(jù)主體(main data)
⑵ 數(shù)據(jù)字典(data dictionary)
⑶ 數(shù)據(jù)間聯(lián)系的信息
⑷ 數(shù)據(jù)存取路徑信息
⑸ 與數(shù)據(jù)主體有關(guān)的其他信息
5.設(shè)有一車輛管理系統(tǒng),其中的數(shù)據(jù)有:
車輛號(hào)碼、名稱、型號(hào);
駕駛員身份證號(hào)、姓名、地址、電話; 駕駛證號(hào)、發(fā)證單位。
其中車輛、駕駛員及駕駛證間滿足如下條件: 一輛車可以由多個(gè)駕駛員駕駛; 每個(gè)駕駛員可以駕駛多輛車; 每個(gè)駕駛員可以有多個(gè)駕駛證; 每個(gè)駕駛證只能供一個(gè)駕駛員使用。
請(qǐng)?jiān)O(shè)計(jì)該數(shù)據(jù)庫(kù)的E-R圖,并給出聯(lián)系間的函數(shù)關(guān)系。車輛號(hào)名稱m型號(hào)身份證號(hào)n姓名地址電話車輛駕駛駕駛員1擁有p駕駛證駕駛證號(hào)發(fā)證單位
第四篇:數(shù)據(jù)庫(kù)系統(tǒng)原理試卷和答案
一、選擇題(從下列各題四個(gè)答案中選出一個(gè)正確答案,每小題1分,共10分)
1、在數(shù)據(jù)庫(kù)技術(shù)發(fā)展的幾個(gè)階段中,數(shù)據(jù)獨(dú)立性最高的是_____階段。數(shù)據(jù)庫(kù)系統(tǒng)
B、文件系統(tǒng)
C、人工管理
D、數(shù)據(jù)項(xiàng)管理
2、在SQL的SELECT語(yǔ)句中,與選擇運(yùn)算對(duì)應(yīng)的命令動(dòng)詞是_____。A、SELECT
B、FROM
C、WHERE
D、ORDER
BY
3、在數(shù)據(jù)庫(kù)中,下列說法___是不正確的 A、數(shù)據(jù)庫(kù)避免了一切數(shù)據(jù)的重復(fù)
B、若系統(tǒng)是完全可以控制的,則系統(tǒng)可確保更新的一致性 C、數(shù)據(jù)可以共享
D、數(shù)據(jù)庫(kù)減少了冗余
4、在數(shù)據(jù)庫(kù)系統(tǒng)中,模式/外模式映像用于解決數(shù)據(jù)的___ A、結(jié)構(gòu)獨(dú)立性
B、物理獨(dú)立性 C、邏輯獨(dú)立性
D、分布獨(dú)立性
5、關(guān)系代數(shù)的5種基本運(yùn)算是___。A、并、差、選擇、投影、自然連接 B、并、差、交、選擇、投影 C、并、差、交、選擇、笛卡爾積 D、并、差、選擇、投影、笛卡爾積
6、在SQL語(yǔ)句中,謂詞“EXISTS”的含義是____。
A、全稱量詞
B、存在量詞
C、自然連接
D、等值連接
7、規(guī)范化過程主要為克服數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)中的插入異常、刪除異常、更新異常以及___的缺陷
數(shù)據(jù)不一致性
B、結(jié)構(gòu)不合理
C、冗余度大
D、數(shù)據(jù)丟失
8、數(shù)據(jù)庫(kù)數(shù)據(jù)的正確性和相容性是數(shù)據(jù)庫(kù)的______。
A、安全性
B、可維護(hù)性
C、完整性
D、并發(fā)控制
9、數(shù)據(jù)庫(kù)三級(jí)模式體系結(jié)構(gòu)主要的目標(biāo)是確保數(shù)據(jù)庫(kù)的___。A、數(shù)據(jù)安全性
B、數(shù)據(jù)獨(dú)立性
C、最小冗余
D、數(shù)據(jù)結(jié)構(gòu)規(guī)范化
10、后援副本的用途是_____。
A、安全性保障
B、一致性控制
C、故障后的恢復(fù)
D、數(shù)據(jù)的轉(zhuǎn)儲(chǔ)
二、簡(jiǎn)答題(回答要點(diǎn),并簡(jiǎn)明扼要作解釋。每題5分,共20分)
1、簡(jiǎn)述數(shù)據(jù)庫(kù)系統(tǒng)從哪些方面來保證數(shù)據(jù)的完整性。
2、簡(jiǎn)述事務(wù)的ACID特性。
3、簡(jiǎn)述并發(fā)控制不當(dāng)帶來的數(shù)據(jù)不一致性問題。
4、簡(jiǎn)述數(shù)據(jù)庫(kù)系統(tǒng)從哪些方面來保證數(shù)據(jù)的安全性。
三、編程與關(guān)系運(yùn)算(每題5分,共20分)設(shè)有四個(gè)關(guān)系
學(xué)生表(學(xué)號(hào)char(5),姓名varchar(10),姓別char(2),所屬系varchar(20))Student(sno,sname,sex,dept)課程表(課程號(hào)char(3),課程名varchar(20),先修課程char(3),學(xué)分tinyint,任課教師char(5))Course(cno,cname,precno,ceredit,tno)教師表(教師號(hào)char(5),教師名稱varchar(10),姓別char(2))Teacher(tno,tname,sex)選課表(學(xué)號(hào)char(5)、課程號(hào)char(3),成績(jī)tinyint)SC(sno,cno,grade)編寫一個(gè)觸發(fā)器,當(dāng)對(duì)學(xué)生表進(jìn)行修改時(shí)其性別只能是男和女。
編寫一個(gè)存儲(chǔ)過程,依據(jù)輸入的學(xué)號(hào)參數(shù),統(tǒng)計(jì)該學(xué)生的平均分和總分,要求使用游標(biāo),不可以使用sum和avg命令。
使用關(guān)系代數(shù)語(yǔ)言查詢選修了’劉紅’老師所授的所有課程的同學(xué)學(xué)號(hào)。
使用元組演算語(yǔ)言查詢同時(shí)選修了‘001’和‘002’兩門課程號(hào)的同學(xué)姓名。
四、綜合設(shè)計(jì)題(共40分)
1、已知:關(guān)系模式R(U,F)U=ABCD
F={A→C,C→A, B→AC,D→AC}求:(1)(AD)F+,R的候選碼。(5分)
(2)求F的最小函數(shù)依賴集,并使用算法將模式R無(wú)損連接且保持函數(shù)依賴分解到3NF。(5分)
2、設(shè)有關(guān)系模式R,U={A,B,C,D,E},F(xiàn)={A→D,E→D,D→B,BC→D,CD→AB},設(shè)有一個(gè)分解P={R1(ED),R2(BCD),R3(ACD)}判斷該分解是否保持函數(shù)依賴,并判斷此分解是否具有無(wú)損連接性。(10分)
3、對(duì)于關(guān)系模式R(D,B,I,S,Q,O),設(shè)有兩個(gè)函數(shù)依賴集F和G,其中 F={S—>D,I—>B, IS—>Q,B—>O}
G={ S—>D,I—>B, IS—>Q,B—>O,I—>O } 試判斷F和G是否等價(jià)。(5分)
4、數(shù)據(jù)庫(kù)設(shè)計(jì):
設(shè)計(jì)一個(gè)圖書館數(shù)據(jù)庫(kù),此數(shù)據(jù)庫(kù)中保存有讀者記錄,包括讀者號(hào)、姓名、地址、出生日期、單位。每本圖書有書號(hào)、書名、作者、出版社。一本書有多個(gè)作者。對(duì)每本借出的書有借出日期和應(yīng)還日期。一個(gè)讀者可以借多本書。要求: 1)畫出E-R圖(5分)2)根據(jù)需要可以增加屬性,轉(zhuǎn)換為滿足3NF的關(guān)系模式(5分)3)給出主鍵約束和外鍵約束(5分)4)注:關(guān)系名和屬性名用漢字
五、優(yōu)化與并發(fā)(每題5分,共10分)
1、設(shè)有二個(gè)事務(wù)T、U,下面的并發(fā)操作是否正確,若不正確請(qǐng)使用時(shí)間戳方法解決其沖突,設(shè)Ts(T) Read(b)Write(b=b-300) Read(b)Write(b=b+300) 2、優(yōu)化中的算法描述:根據(jù)排序—合并算法描述下列查詢操作的實(shí)現(xiàn)。(5分)select a.cust_id,b.tot_amt,b.order_date,a.tel_no from customer a ,sales b where a.cust_id=b.cust_id 第一學(xué)期期末考試試卷答案 試卷代碼:03115 授課課時(shí):96 課程名稱:數(shù)據(jù)庫(kù)系統(tǒng)原理A 適用對(duì)象:本科選課班 一、選擇題(從下列各題四個(gè)答案中選出一個(gè)正確答案,每小題1分,共10分) 1、在數(shù)據(jù)庫(kù)技術(shù)發(fā)展的幾個(gè)階段中,數(shù)據(jù)獨(dú)立性最高的是__A___階段。A、數(shù)據(jù)庫(kù)系統(tǒng) B、文件系統(tǒng) C、人工管理 D、數(shù)據(jù)項(xiàng)管理 2、在SQL的SELECT語(yǔ)句中,與選擇運(yùn)算對(duì)應(yīng)的命令動(dòng)詞是__C___。A、SELECT B、FROM C、WHERE D、ORDER BY 3、在數(shù)據(jù)庫(kù)中,下列說法_A__是不正確的 A、數(shù)據(jù)庫(kù)避免了一切數(shù)據(jù)的重復(fù) B、若系統(tǒng)是完全可以控制的,則系統(tǒng)可確保更新是的一致性 C、數(shù)據(jù)可以共享 D、數(shù)據(jù)庫(kù)減少了冗余 4、在數(shù)據(jù)庫(kù)系統(tǒng)中,模式/外模式映像用于解決數(shù)據(jù)的_C__ A、結(jié)構(gòu)獨(dú)立性 B、物理獨(dú)立性 C、邏輯獨(dú)立性 D、分布獨(dú)立性 5、關(guān)系代數(shù)的5種基本運(yùn)算是__D_。A、并、差、選擇、投影、自然連接 B、并、差、交、選擇、投影 C、并、差、交、選擇、笛卡爾積 D、并、差、選擇、投影、笛卡爾積 6、在SQL語(yǔ)句中,謂詞“EXISTS”的含義是_B___。 A、全稱量詞 B、存在量詞 C、自然連接 D、等值連接 7、規(guī)范化過程主要為克服數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)中的插入異常、刪除異常、更新異常以及_C__的缺陷 A、數(shù)據(jù)不一致性 B、結(jié)構(gòu)不合理 C、冗余度大 D、數(shù)據(jù)丟失 8、數(shù)據(jù)庫(kù)數(shù)據(jù)的正確性和相容性是數(shù)據(jù)庫(kù)的__B____。 A、安全性 B、可維護(hù)性 C、完整性 D、并發(fā)控制 9、數(shù)據(jù)庫(kù)三級(jí)模式體系結(jié)構(gòu)主要的目標(biāo)是確保數(shù)據(jù)庫(kù)的_B__。A、數(shù)據(jù)安全性 B、數(shù)據(jù)獨(dú)立性 C、最小冗余 D、數(shù)據(jù)結(jié)構(gòu)規(guī)范化 10、后援副本的用途是_C____。 A、安全性保障 B、一致性控制 C、故障后的恢復(fù) D、數(shù)據(jù)的轉(zhuǎn)儲(chǔ) 評(píng)分標(biāo)準(zhǔn): 每題1分 二、簡(jiǎn)答題(回答要點(diǎn),并簡(jiǎn)明扼要作解釋。每題5分,共20分) 1、簡(jiǎn)述數(shù)據(jù)庫(kù)系統(tǒng)從哪些方面來保證數(shù)據(jù)的完整性。 ①列級(jí)約束:數(shù)據(jù)類型、寬度、缺省值、檢查約束、是否空值、唯一約束 ②主鍵約束、③外鍵約束、④用戶自定義約束:主要通過觸發(fā)器完成 評(píng)分標(biāo)準(zhǔn): 寫出列級(jí)約束 2分 寫出主鍵約束 1分 寫出外鍵約束 1分 寫出用戶自定義約束 1分 2、簡(jiǎn)述事務(wù)的ACID特性 ①原子性(A):事務(wù)中的操作要么全做,要么一個(gè)也不做 ②一致性(C):事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài) ③隔離性(I):一個(gè)事務(wù)的執(zhí)行不能被其它事務(wù)干擾 ④持續(xù)性(D):一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的修改應(yīng)該是永久的 評(píng)分標(biāo)準(zhǔn): 寫出原子性 1分 寫出隔離性 1分 寫出一致性 2分 寫出持續(xù)性 1分 3、簡(jiǎn)述并發(fā)控制不當(dāng)帶來的數(shù)據(jù)不一致性問題 ①丟失修改:兩個(gè)事務(wù)T1和T2讀入同一數(shù)據(jù)并修改,T2提交的結(jié)果破壞了T1的結(jié)果,導(dǎo)致T1的修改被丟失 ②不可重復(fù)讀:是指事務(wù)T1讀取數(shù)據(jù)后,事務(wù)T2執(zhí)行更新操作,使T1無(wú)法再現(xiàn)前一次讀取結(jié)果 ③ 讀“臟”數(shù)據(jù):是指事務(wù)T1修改某一數(shù)據(jù),并將其寫回磁盤,事務(wù)T2讀取同一數(shù)據(jù)后,T1由于某種原因被撤銷,這時(shí)T1已修改過的數(shù)據(jù)恢復(fù)原值,T2讀到的數(shù)據(jù)就與數(shù)據(jù)庫(kù)中的數(shù)據(jù)不一致。則T2讀到了“臟”數(shù)據(jù),即不正確的數(shù)據(jù)。 ④產(chǎn)生上述三類數(shù)據(jù)不一致性的主要原因是并發(fā)操作破壞了事務(wù)的隔離性。評(píng)分標(biāo)準(zhǔn): 寫出丟失修改 1分 寫出不可重復(fù)讀 1分 寫出讀“臟”數(shù)據(jù) 2分 寫出主要原因 1分 4、簡(jiǎn)述數(shù)據(jù)庫(kù)系統(tǒng)從哪些方面來保證數(shù)據(jù)的安全性。①身份認(rèn)證:提供用戶標(biāo)識(shí)和密碼的確認(rèn) ②用戶操作對(duì)象的權(quán)限:通過授權(quán)機(jī)制 ③視圖:只顯示用戶可以作用的屬性及記錄 ④存儲(chǔ)過程:通過存儲(chǔ)過程實(shí)現(xiàn)對(duì)不具有操作權(quán)限的數(shù)據(jù) 評(píng)分標(biāo)準(zhǔn): 寫出用戶身份認(rèn)證 2分 寫出用戶操作對(duì)象的權(quán)限 1分 寫出視圖 1分 寫出存儲(chǔ)過程 1分 三、編程與關(guān)系運(yùn)算(每題5分,共20分)設(shè)有四個(gè)關(guān)系 學(xué)生表(學(xué)號(hào)char(5),姓名varchar(10),姓別char(2),所屬系varchar(20))Student(sno,sname,sex,dept)課程表(課程號(hào)char(3),課程名varchar(20),先修課程char(3),學(xué)分tinyint,任課教師char(5))Course(cno,cname,precno,ceredit,tno)教師表(教師號(hào)char(5),教師名稱varchar(10),姓別char(2))Teacher(tno,tname,sex)選課表(學(xué)號(hào)char(5)、課程號(hào)char(3),成績(jī)tinyint)SC(sno,cno,grade)編寫一個(gè)觸發(fā)器,當(dāng)對(duì)學(xué)生表進(jìn)行修改時(shí)其姓別只能是男和女。create trigger StudentUpdate on Student for update as begin if exists(select * from inserted where sex not in('男','女')) rollback end 評(píng)分標(biāo)準(zhǔn): 寫出create trigger on Student 1分 寫出for update 1分 寫出 if exists(select * from inserted where sex not in('男','女')) 2分 寫出rollback 1分 編寫一個(gè)存儲(chǔ)過程,依據(jù)輸入的學(xué)號(hào)參數(shù),統(tǒng)計(jì)該學(xué)生的平均分和總分,要求使用游標(biāo),不可以使用sum和avg命令。 create procedure SearchSumBySno(@sno char(5))as begin declare @sum int,@avg numeric(5,1),@grade tinyint,@count tinyint select @sum=0,@count=0 declare myCursor cursor for select grade from sc where sno=@sno open myCursor fetch myCursor into @grade while(@@fetch_status=0) begin select @sum=@sum+@grade select @count=@count+1 fetch myCursor into @grade end close myCursor deallocate myCursor if @count=0 select 0 '總分',0 '平均分' else begin select @avg=@sum/@count select @sum '總分', @avg '平均分' end end 評(píng)分標(biāo)準(zhǔn): 1)定義游標(biāo) 1分 定義變量 1分 給變量賦值 1分 游標(biāo)的打開、獲取和關(guān)閉 1分 循環(huán)條件 1分 使用關(guān)系代數(shù)語(yǔ)言查詢選修了’劉紅’老師所授的所有課程的同學(xué)學(xué)號(hào)。 ∏sno,cno(SC)÷∏cno(σtname=’劉紅’(Teacher)∞Course)評(píng)分標(biāo)準(zhǔn): 1)σtname=’劉紅’(Teacher) 1分 2)與Course表的連接 1分 3)作除法運(yùn)算 2分 4)括號(hào)正確 1分 使用元組演算語(yǔ)言查詢同時(shí)選修了‘001’和‘002’兩門課程號(hào)的同學(xué)姓名。{t|ヨuヨvヨw(Student(u)∧SC(v)∧SC(w)∧v[2]=’001’∧w[2]=’002’ ∧v[1]=w[1] ∧u[1]=v[1] ∧t[1]=u[2])} 評(píng)分標(biāo)準(zhǔn): 1)寫出存在量詞 1分 2)寫出自表連接運(yùn)算v[1]=w[1] ∧u[1]=v[1] 2分 3)寫出選取條件v[2]=’001’∧w[2]=’002’ 1分 4)寫出投影運(yùn)算t[1]=u[2] 1分 四、綜合設(shè)計(jì)題(共40分) 1、已知:關(guān)系模式R(U,F)U=ABCD F={A→C,C→A, B→AC,D→AC}求:(1)(AD)F+,R的候選碼。(5分) (2)求F的最小函數(shù)依賴集,并使用算法將模式R無(wú)損失連接且保持函數(shù)依賴分解為3NF。(5分)解:(1)(AD)F+=ADC,候選碼:BD(2)最小函數(shù)依賴集:Fmin={A→C,C→A,B→A,D→A},將模式R無(wú)損失連接且保持函數(shù)依賴分解為3NF,P={AC,BA,DA,BD}。評(píng)分標(biāo)準(zhǔn):(1)(AD)F+=ADC(2分)(2)候選碼:BD(3分) (3)F的最小函數(shù)依賴集是(2分)(4)P={AC,BA,DA,BD}(3分) 2、設(shè)有關(guān)系模式R,U={A,B,C,D,E},F(xiàn)={A→D,E→D,D→B,BC→D,CD→AB},設(shè)有一個(gè)分解P={R1(ED),R2(BCD),R3(ACD)}判斷該分解是否保持函數(shù)依賴,并判斷此分解是否具有無(wú)損連接性。(10分)解:(1)求出F的最小函數(shù)依賴集F’={A→D,E→D,D→B,BC→D,CD→A} 又因?yàn)椋?F’+ =(Fi)+,則R的分解р={R1,R2,R3}保持函數(shù)依賴。所以,該分解能保持函數(shù)依賴關(guān)系。(5分)(2)又因?yàn)椋?/p> A B C D E R1 b11 a2 b13 a4 a5 R2 a1 a2 a3 a4 b25 R3 a1 a2 a3 a4 b35 可以得到?jīng)]有一行全為a,所以該分解為有損分解。(5分) 3、對(duì)于關(guān)系模式R(D,B,I,S,Q,O),設(shè)有兩個(gè)函數(shù)依賴集F和G,其中F={S—>D,I—>B, IS—>Q,B—>O} G={ S—>D,I—>B, IS—>Q,B—>O,I—>O } 試判斷F和G是否等價(jià)。(5分) 解:因?yàn)镕 G+,G F+ 所以F和G等價(jià)。評(píng)分標(biāo)準(zhǔn): 1)F G+ (2分)2)G F+ (2分)3)F和G等價(jià)(1分) 4、數(shù)據(jù)庫(kù)設(shè)計(jì): 設(shè)計(jì)一個(gè)圖書館數(shù)據(jù)庫(kù),此數(shù)據(jù)庫(kù)中保存有讀者記錄,包括讀者號(hào)、姓名、地址、出生日期、單位。每本圖書有書號(hào)、書名、作者、出版社。一本書有多個(gè)作者。對(duì)每本借出的書有借出日期和應(yīng)還日期。一個(gè)讀者可以借多本書。要求: 1)畫出E-R圖(5分)2)根據(jù)需要可以增加屬性,轉(zhuǎn)換為滿足3NF的關(guān)系模式(5分)3)給出主鍵約束和外鍵約束(5分)4)關(guān)系名和屬性名用漢字 1)畫出E-R圖 m n 評(píng)分標(biāo)準(zhǔn): 1)繪出兩個(gè)實(shí)體 2分 2)繪出一個(gè)聯(lián)系 1分 3)每個(gè)實(shí)體、聯(lián)系的屬性 3分 2)根據(jù)需要可以增加屬性,轉(zhuǎn)換為滿足3NF的關(guān)系模式 讀者關(guān)系(讀者號(hào)、讀者名稱、地址、出生日期、單位)圖書關(guān)系(圖書號(hào)、圖書名、出版社、出版日期)圖書-作者關(guān)系(圖書號(hào)、作者名稱、作者所在單位)借書主關(guān)系(借書號(hào)、讀者號(hào)、借書日期、應(yīng)還日期)借書明細(xì)關(guān)系(借書號(hào)、圖書號(hào))評(píng)分標(biāo)準(zhǔn): 每個(gè)關(guān)系 1分 3)給出主鍵約束和外鍵約束 讀者關(guān)系: 主鍵:讀者號(hào) 圖書關(guān)系: 主鍵:圖書號(hào) 圖書-作者關(guān)系:主鍵:圖書號(hào)+作者名稱 外鍵:圖書號(hào) 借書主關(guān)系: 主鍵:借書號(hào) 借書明細(xì)關(guān)系: 主鍵:借書號(hào)、圖書號(hào) 外鍵1:借書號(hào),外鍵2:圖書號(hào) 評(píng)分標(biāo)準(zhǔn): 給出主鍵 3分 給出外鍵 2分 五、優(yōu)化與并發(fā)(每題5分,共10分) 1、設(shè)有二個(gè)事務(wù)T、U,下面的并發(fā)操作是否正確,若不正確請(qǐng)使用時(shí)間戳方法解決其沖突,設(shè)Ts(T) Read(b)Write(b=b-300) Read(b)Write(b=b+300) 答:并發(fā)操作不正確,可以使用時(shí)間戳方法解決其沖突。數(shù)據(jù)b T事務(wù) U事務(wù) 讀時(shí)標(biāo) 寫時(shí)標(biāo) 操作 0 0 t1 0 t2 0 t2 t2 t2 t2 t2 t2 t3 t2 t3 t3 正確的調(diào)度: T事務(wù) U事務(wù) Read(b)Write(b=b+300) T讀b U讀b U更新b T更新b(不允許,因t1 Read(b)Write(b=b-300) 評(píng)分標(biāo)準(zhǔn): 1)并發(fā)操作不正確,可以使用時(shí)間戳方法解決其沖突。(1分)2)時(shí)標(biāo)表(3分)3)正確的調(diào)度(1分) 2、優(yōu)化中的算法描述:根據(jù)排序—合并算法描述下列查詢操作的實(shí)現(xiàn)。(5分)select a.cust_id,b.tot_amt,b.order_date,a.tel_no from customer a ,sales b where a.cust_id=b.cust_id 解: ⑴首先對(duì)customer 和sales 按連接屬性cust_id排序; ⑵取customer表中第一個(gè)cust_id,依次掃描sales表中具有相同cust_id的元組,把它們連接起來; ⑶當(dāng)掃描到cust_id不相同的第一個(gè)sales元組時(shí),返回customer表掃描它的下一個(gè)元組,再掃描sales表中具有相同cust_id的元組,把它們連接起來; ⑷重復(fù)上述步驟直到customer表掃描完。評(píng)分標(biāo)準(zhǔn): 1)寫出第⑴步 1分 2)寫出第⑵步 1分 3)寫出第⑶步 2分 4)寫出第⑷步 1分 習(xí)題7 1、試述事務(wù)的概念及事務(wù)的四個(gè)特性。 事務(wù)(Transaction)是用戶定義的一個(gè)數(shù)據(jù)庫(kù)操作序列,這些操作是一個(gè)完整的工作單元,一個(gè)事務(wù)內(nèi)的所有語(yǔ)句被作為一個(gè)整體,這些操作要么全做,要么全不做。事務(wù)是數(shù)據(jù)庫(kù)環(huán)境的中的邏輯單元,相當(dāng)于操作系統(tǒng)中的進(jìn)程。 為了保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性,一個(gè)事務(wù)具有四個(gè)特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持續(xù)性(Durability)。這四個(gè)特性簡(jiǎn)稱ACID特性。 2、試述事務(wù)的狀態(tài)及轉(zhuǎn)換。 3、在數(shù)據(jù)庫(kù)中為什么要并發(fā)控制?并發(fā)控制能保證事務(wù)的哪些特性? 數(shù)據(jù)庫(kù)的一個(gè)明顯的特點(diǎn)是多個(gè)用戶共享數(shù)據(jù)庫(kù)資源,尤其是多用戶可以同時(shí)存取相同的數(shù)據(jù)。在這樣的系統(tǒng)中,在同一時(shí)刻并發(fā)運(yùn)行的事務(wù)數(shù)可達(dá)數(shù)百個(gè)。若對(duì)事務(wù)的并發(fā)操作不加以控制,就會(huì)造成數(shù)據(jù)存、取的錯(cuò)誤,破壞了數(shù)據(jù)的一致性和完整性。 并發(fā)控制可以防止數(shù)據(jù)不一致性出現(xiàn)。 4、并發(fā)操作可能會(huì)產(chǎn)生哪幾類數(shù)據(jù)不一致?用什么方法可以避免不一致性的情況? 并發(fā)操作帶來的數(shù)據(jù)不一致性分為四種情況:丟失數(shù)修改、讀“臟”數(shù)據(jù)、不可重復(fù)讀和產(chǎn)生“幽靈”數(shù)據(jù)。 在數(shù)據(jù)庫(kù)環(huán)境下,進(jìn)行并發(fā)控制的主要技術(shù)有封鎖(Locking)、時(shí)間戳(Timestamp)和樂觀控制法。商用的DBMS一般都采用封鎖方法。 5、什么是封鎖?基本的封鎖類型有哪些?試述它們的含義。 封鎖機(jī)制,即加鎖(Locking),是一種并發(fā)控制機(jī)制,是用來調(diào)整對(duì)共享目標(biāo)的并行存取的技術(shù)。事務(wù)通過向封鎖管理程序的系統(tǒng)組成部分發(fā)出請(qǐng)求而對(duì)事務(wù)加鎖。 基本封鎖類型有兩種:共享鎖(Share Locks,簡(jiǎn)記為S鎖或讀鎖)和排它鎖(Exclusive Locks,簡(jiǎn)記為X鎖或?qū)戞i)。 6、如何用封鎖機(jī)制保證數(shù)據(jù)的一致性? 在運(yùn)用X鎖和S鎖對(duì)數(shù)據(jù)對(duì)象加鎖時(shí),還需要約定一些規(guī)則,這些規(guī)則為封鎖協(xié)議或加鎖協(xié)議(Locking Protocol)。對(duì)封鎖方式加不同的規(guī)則,就形成了各種不同級(jí)別的封鎖協(xié)議。不同級(jí)別的封鎖協(xié)議所能達(dá)到的一致性級(jí)別是不同的。 7、什么樣的并發(fā)調(diào)度是正確的調(diào)度? 可串行性(Serializability)是并發(fā)事務(wù)正確調(diào)度的準(zhǔn)則。按照這個(gè)準(zhǔn)則規(guī)定,一個(gè)給定的并發(fā)調(diào)度,當(dāng)且僅當(dāng)它是可串行化的,才認(rèn)為是正確調(diào)度。 8、理解并解釋下列術(shù)語(yǔ)的含義: 封鎖、活鎖、死鎖、排他鎖、共享鎖、可串行化的調(diào)度、兩段鎖協(xié)議。 1)加鎖就是事務(wù)T在對(duì)某個(gè)數(shù)據(jù)對(duì)象(例如表、記錄等)操作之前,先向系統(tǒng)發(fā)出請(qǐng)求,封鎖其要使用的數(shù)據(jù)。加鎖后事務(wù)T就對(duì)該數(shù)據(jù)對(duì)象有了一定的控制,在事務(wù)T釋放它的鎖之前,其它的事務(wù)不能更新此數(shù)據(jù)對(duì)象。 2)活鎖:如果事務(wù)T1封鎖了數(shù)據(jù)R,事務(wù)T2又請(qǐng)求封鎖R,于是T2等待。T3也請(qǐng)求封鎖R,當(dāng)T1釋放了R上的封鎖之后系統(tǒng)首先批準(zhǔn)了T3的請(qǐng)求,T2仍然等待。然后T4又請(qǐng)求封鎖R,當(dāng)T3釋放了R上的封鎖之后系統(tǒng)又批準(zhǔn)了T4的請(qǐng)求……,T2有可能永遠(yuǎn)等待,這就是活鎖。 3)死鎖:如果事務(wù)T1封鎖了數(shù)據(jù)R1,T2封鎖了數(shù)據(jù)R2,然后T1又請(qǐng)求封鎖R2,因T2已封鎖了R2,于是T1等待T2釋放R2上的鎖,接著T2又申請(qǐng)封鎖R1,因T1已封鎖了R1,T2也只能等待T1釋放R1上的鎖。這樣T1在等待T2,而T2又在等待T1,T1和T2兩個(gè)事務(wù)永遠(yuǎn)不能結(jié)束,形成死鎖。4)共享鎖: 若事務(wù)T對(duì)數(shù)據(jù)對(duì)象A加上S鎖,則事務(wù)T可以讀A,但不能修改A。其它事務(wù)只能再對(duì)A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。這就保證其他事務(wù)可以讀A,但在T釋放A上的S鎖之前不能對(duì)A做任何修改。5)排他鎖: 若事務(wù)T對(duì)數(shù)據(jù)對(duì)象A加上X鎖,則只允許T讀取和修改A,但不允許其它事務(wù)再對(duì)A加任何類型的鎖和進(jìn)行任何操作,直到T釋放A上的鎖。這就保證其他事務(wù)在T釋放A上的鎖之前不能再讀取和修改A。6)多個(gè)事務(wù)的并發(fā)執(zhí)行是正確的,當(dāng)且僅當(dāng)其結(jié)果與按某一次序串行地執(zhí)行這些事務(wù)時(shí)的結(jié)果相同,稱這種調(diào)度策略為可串行化(Serializable)調(diào)度。 7)所謂兩段鎖協(xié)議是指所有事務(wù)必須分兩個(gè)階段對(duì)數(shù)據(jù)項(xiàng)加鎖和解鎖。具體內(nèi)容如下: ①在對(duì)任何數(shù)據(jù)進(jìn)行讀、寫操作之前,事務(wù)首先要獲得對(duì)該數(shù)據(jù)的封鎖; ②在釋放一個(gè)封鎖之后,事務(wù)不再申請(qǐng)和獲得任何其他封鎖。 9、數(shù)據(jù)庫(kù)中為什么要有恢復(fù)子系統(tǒng)?它的功能是什么? 系統(tǒng)故障會(huì)丟失這些事務(wù)對(duì)數(shù)據(jù)的修改,使數(shù)據(jù)庫(kù)處于不一致狀態(tài)。 恢復(fù)子系統(tǒng)在系統(tǒng)重啟時(shí),撤銷所有未完成的事務(wù),并重做已經(jīng)提交的事務(wù),以保證將數(shù)據(jù)庫(kù)真正恢復(fù)到一致狀態(tài)。 10、數(shù)據(jù)庫(kù)運(yùn)行過程中可能產(chǎn)生的故障有幾類?哪些故障影響事務(wù)的正常執(zhí)行?哪些 故障破壞數(shù)據(jù)庫(kù)數(shù)據(jù)? 1)事務(wù)內(nèi)部的故障 事務(wù)內(nèi)部的故障有的是可以通過事務(wù)程序本身發(fā)現(xiàn)的,有的是非預(yù)期的,不能由事務(wù)程序處理的。 事務(wù)故障意味著事務(wù)沒有達(dá)到預(yù)期的終點(diǎn),因此,數(shù)據(jù)庫(kù)可能處于不正確的狀態(tài)。恢復(fù)程序要在不影響其他事務(wù)運(yùn)行的情況下,強(qiáng)行回滾該事務(wù),即撤銷該事務(wù)已經(jīng)作出的任何對(duì)數(shù)據(jù)庫(kù)的修改,使得該事務(wù)好像根本沒有啟動(dòng)一樣。這類恢復(fù)操作稱為事務(wù)撤銷(UNDO)。 2)系統(tǒng)故障 系統(tǒng)故障又稱為軟故障,是指造成系統(tǒng)停止運(yùn)轉(zhuǎn),要使得系統(tǒng)重新啟動(dòng)的故障。例如,硬件錯(cuò)誤(如CPU故障)、操作系統(tǒng)故障、DBMS代碼錯(cuò)誤、系統(tǒng)斷電等都是系統(tǒng)故障。這樣的故障會(huì)影響正在運(yùn)行的所有事務(wù),但不破壞數(shù)據(jù)庫(kù)。 3)其他故障 介質(zhì)故障或由計(jì)算機(jī)病毒引起的故障或破壞可歸為其他故障。 介質(zhì)故障常稱為硬故障,指外存故障,如磁盤損壞、磁頭碰撞等。這類故障會(huì)對(duì)數(shù)據(jù)庫(kù)造成破壞,并影響正在操作數(shù)據(jù)庫(kù)的所有事務(wù)。這類故障發(fā)生的可能性小得多,但破壞性最大。 各種故障對(duì)數(shù)據(jù)庫(kù)的影響有兩種可能性:一是數(shù)據(jù)庫(kù)本身被破壞;二是數(shù)據(jù)庫(kù)沒有被破壞,但數(shù)據(jù)可能不正確,這是由于事務(wù)的運(yùn)行被非正常終止造成的。 11、數(shù)據(jù)庫(kù)恢復(fù)技術(shù)有哪些? 1)利用備份技術(shù) 2)利用事務(wù)日志 3)利用鏡像技術(shù) 12、什么是數(shù)據(jù)庫(kù)的備份? 數(shù)據(jù)備份是指定期或不定期地對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行復(fù)制,可以將數(shù)據(jù)復(fù)制到本地機(jī)器上,也可以復(fù)制到其他機(jī)器上,也稱為數(shù)據(jù)轉(zhuǎn)儲(chǔ)。 13、什么是日志文件?為什么要設(shè)日志文件? 日志文件(log)是用來記錄事務(wù)對(duì)數(shù)據(jù)庫(kù)的更新操作的文件。具體的作用是: a)事務(wù)故障恢復(fù)和系統(tǒng)故障恢復(fù)必須用日志文件。b)在動(dòng)態(tài)備份方式中必須建立日志文件,后備副本和日志文件結(jié)合起來才能有效地恢復(fù)數(shù)據(jù)庫(kù)。 14、登記日志文件時(shí)為什么必須先寫日志文件,后寫數(shù)據(jù)庫(kù)? 如果先寫了數(shù)據(jù)庫(kù)修改,而在日志文件中沒有登記下這個(gè)修改,則以后就無(wú)法恢復(fù)這個(gè)修改了。如果先寫日志,但沒有修改數(shù)據(jù)庫(kù),按日志文件恢復(fù)時(shí)只不過是多執(zhí)行一次不必要的UNDO操作,并不會(huì)影響數(shù)據(jù)庫(kù)的正確性。所以為了安全,一定要先寫日志文件,即首先把日志記錄寫到日志文件中,然后寫數(shù)據(jù)庫(kù)的修改,這就是“先寫日志文件”的原則。 15、什么是數(shù)據(jù)庫(kù)鏡像?它有什么用途? 所謂鏡像就是在不同的設(shè)備上同時(shí)存有兩份數(shù)據(jù)庫(kù),把一個(gè)設(shè)備稱為主設(shè)備,另一個(gè)稱為鏡像設(shè)備。主設(shè)備和鏡像設(shè)備互為鏡像關(guān)系,每當(dāng)主數(shù)據(jù)庫(kù)更新時(shí),DBMS自動(dòng)把整個(gè)數(shù)據(jù)庫(kù)或其中的關(guān)鍵數(shù)據(jù)復(fù)制到另一個(gè)鏡像設(shè)備上。保證鏡像數(shù)據(jù)與主數(shù)據(jù)庫(kù)的一致。 這樣,一旦出現(xiàn)介質(zhì)故障,可由鏡像磁盤繼續(xù)提供使用,同時(shí)DBMS自動(dòng)利用鏡像磁盤數(shù)據(jù)進(jìn)行數(shù)據(jù)庫(kù)的恢復(fù),不需要關(guān)閉系統(tǒng)和重裝數(shù)據(jù)庫(kù)副本。 由于數(shù)據(jù)庫(kù)鏡像是通過復(fù)制數(shù)據(jù)實(shí)現(xiàn)的,頻繁地復(fù)制數(shù)據(jù)自然會(huì)降低系統(tǒng)運(yùn)行效率,因此在實(shí)際應(yīng)用中用戶往往只選擇對(duì)關(guān)鍵數(shù)據(jù)和日志文件鏡像,而不是對(duì)整個(gè)數(shù)據(jù)庫(kù)進(jìn)行鏡像。第五篇:數(shù)據(jù)庫(kù)原理及應(yīng)用第7章課后習(xí)題答案