欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      SQL數(shù)據(jù)庫(kù)期末考試題及答案[五篇模版]

      時(shí)間:2019-05-13 22:19:00下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《SQL數(shù)據(jù)庫(kù)期末考試題及答案》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《SQL數(shù)據(jù)庫(kù)期末考試題及答案》。

      第一篇:SQL數(shù)據(jù)庫(kù)期末考試題及答案

      sql數(shù)據(jù)庫(kù)期末考試題及答案

      一、單選題(共 10 道試題,共 50 分。)1.SQL Server中,保存著每個(gè)數(shù)據(jù)庫(kù)對(duì)象的信息的系統(tǒng)表是(C)。

      A.sysdatabases B.Syscolumns C.Sysobjects D.Syslogs 2.在存在下列關(guān)鍵字的SQL語(yǔ)句中,不可能出現(xiàn)Where子句的是(D)。A.Update B.Delete C.Insert D.Alter 3.在查詢語(yǔ)句的Where子句中,如果出現(xiàn)了“age Between 30 and 40”,這個(gè)表達(dá)式等同于(A)。

      A.age>=30 and age<=40 B.age>=30 or age<=40 C.age>30 and age<40 D.age>30 or age<40 4.如果要在一張管理職工工資的表中限制工資的輸入范圍,應(yīng)使用(D)約束。A.PDRIMARY KEY B.FOREIGN KEY C.unique D.check 5.記錄數(shù)據(jù)庫(kù)事務(wù)操作信息的文件是(D)。

      A.數(shù)據(jù)文件 B.索引文件 C.輔助數(shù)據(jù)文件 D.日志文件

      6.要查詢XSH數(shù)據(jù)庫(kù)CP表中產(chǎn)品名含有“冰箱”的產(chǎn)品情況,可用(C)命令。A.SELECT * FROM CP WHERE 產(chǎn)品名稱 LIKE ‘冰箱’ B.SELECT * FROM XSH WHERE 產(chǎn)品名稱 LIKE ‘冰箱’ C.SELECT * FROM CP WHERE 產(chǎn)品名稱 LIKE ‘%冰箱%’ D.SELECT * FROM CP WHERE 產(chǎn)品名稱=‘冰箱’

      7.儲(chǔ)蓄所有多個(gè)儲(chǔ)戶,儲(chǔ)戶能夠在多個(gè)儲(chǔ)蓄所存取款,儲(chǔ)蓄所與儲(chǔ)戶之間是(D)。A.一對(duì)一的聯(lián)系 B.一對(duì)多的聯(lián)系 C.多對(duì)一的聯(lián)系 D.多對(duì)多的聯(lián)系

      8.SQL的聚集函數(shù)COUNT、SUM、AVG、MAX、MIN不允許出現(xiàn)在查詢語(yǔ)句的(D)子句之中。A.SELECT B.HAVING C.GROUP BY? HAVING D.WHERE 9.列值為空值(NULL),則說(shuō)明這一列(C)。

      A.數(shù)值為0 B.數(shù)值為空格 C.數(shù)值是未知的 D.不存在 10.數(shù)據(jù)庫(kù)的數(shù)據(jù)一般存放在(D)中。A.內(nèi)存 B.CPU C.寄存器 D.磁盤

      SQL Server數(shù)據(jù)庫(kù)試題十及答案

      一、單項(xiàng)選擇題(每題2分,共15題)

      1.SQL Server 2000是一個(gè)(C)的數(shù)據(jù)庫(kù)系統(tǒng)。(A)網(wǎng)狀型(B)層次型(C)關(guān)系型(D)以上都不是 2.DTS 是一個(gè)簡(jiǎn)稱,它的全稱是(B)。

      A.數(shù)據(jù)運(yùn)輸系統(tǒng) B.數(shù)據(jù)傳輸服務(wù) C.數(shù)據(jù)庫(kù)傳輸系統(tǒng) D.數(shù)據(jù)庫(kù)運(yùn)輸服務(wù) 3.SQL Server 2000 采用的身份驗(yàn)證模式有(D)。

      (A)僅Windows身份驗(yàn)證模式(B)僅SQL Server身份驗(yàn)證模式(C)僅混合模式(D)Windows身份驗(yàn)證模式和混合模式

      4.SQL 語(yǔ)言按照用途可以分為三類,下面選項(xiàng)中哪一種不是的:(C)(A)DML(B)DCL(C)DQL(D)DDL 5.在SELECT語(yǔ)句的WHERE子句的條件表達(dá)式中,可以匹配0個(gè)到多個(gè)字符的通配符是(B)(A)*(B)%(C)-(D)? 6.SQL Server提供的單行注釋語(yǔ)句是使用(B)開始的一行內(nèi)容。(A)“/*”(B)“--”(C)“{”(D)“/” 7.以下那種類型能作為變量的數(shù)據(jù)類型(C)。(A)text(B)ntext(C)table(D)image 1

      第二篇:數(shù)據(jù)庫(kù)期末考試題及答案

      數(shù)據(jù)庫(kù)系統(tǒng)概論習(xí)題集 第一章 緒論

      一、選擇題

      1.DBS是采用了數(shù)據(jù)庫(kù)技術(shù)的計(jì)算機(jī)系統(tǒng),它是一個(gè)集合體,包含數(shù)據(jù)庫(kù)、計(jì)算機(jī)硬件、軟件和()。

      A.系統(tǒng)分析員

      B.程序員 C.數(shù)據(jù)庫(kù)管理員

      D.操作員

      2.數(shù)據(jù)庫(kù)(DB),數(shù)據(jù)庫(kù)系統(tǒng)(DBS)和數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)之間的關(guān)系是()。

      A.DBS包括DB和DBMS

      B.DBMS包括DB和DBS

      C.DB包括DBS和DBMS D.DBS就是DB,也就是DBMS

      3.下面列出的數(shù)據(jù)庫(kù)管理技術(shù)發(fā)展的三個(gè)階段中,沒(méi)有專門的軟件對(duì)數(shù)據(jù)進(jìn)行管理的是()。

      I.人工管理階段

      II.文件系統(tǒng)階段

      III.?dāng)?shù)據(jù)庫(kù)階段

      A.I 和 II

      B.只有 II C.II 和 III

      D.只有 I

      4.下列四項(xiàng)中,不屬于數(shù)據(jù)庫(kù)系統(tǒng)特點(diǎn)的是()。

      A.數(shù)據(jù)共享

      B.數(shù)據(jù)完整性

      C.數(shù)據(jù)冗余度高

      D.數(shù)據(jù)獨(dú)立性高

      5.數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)獨(dú)立性體現(xiàn)在()。

      A.不會(huì)因?yàn)閿?shù)據(jù)的變化而影響到應(yīng)用程序

      B.不會(huì)因?yàn)橄到y(tǒng)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)邏輯結(jié)構(gòu)的變化而影響應(yīng)用程序

      C.不會(huì)因?yàn)榇鎯?chǔ)策略的變化而影響存儲(chǔ)結(jié)構(gòu)

      D.不會(huì)因?yàn)槟承┐鎯?chǔ)結(jié)構(gòu)的變化而影響其他的存儲(chǔ)結(jié)構(gòu)

      6.描述數(shù)據(jù)庫(kù)全體數(shù)據(jù)的全局邏輯結(jié)構(gòu)和特性的是()。

      A.模式

      B.內(nèi)模式 C.外模式 D.用戶模式

      7.要保證數(shù)據(jù)庫(kù)的數(shù)據(jù)獨(dú)立性,需要修改的是()。

      A.模式與外模式

      B.模式與內(nèi)模式

      C.三層之間的兩種映射

      D.三層模式

      8.要保證數(shù)據(jù)庫(kù)的邏輯數(shù)據(jù)獨(dú)立性,需要修改的是()。

      A.模式與外模式的映射

      B.模式與內(nèi)模式之間的映射

      C.模式

      D.三層模式

      9.用戶或應(yīng)用程序看到的那部分局部邏輯結(jié)構(gòu)和特征的描述是(),它是模式的邏輯子集。

      A.模式

      B.物理模式

      C.子模式 D.內(nèi)模式

      10.下述()不是DBA數(shù)據(jù)庫(kù)管理員的職責(zé)。

      A.完整性約束說(shuō)明 B.定義數(shù)據(jù)庫(kù)模式

      C.數(shù)據(jù)庫(kù)安全 D.數(shù)據(jù)庫(kù)管理系統(tǒng)設(shè)計(jì)

      選擇題參考答案:(1)C(2)A(3)D(4)C(5)B(6)A(7)C(8)A(9)C(10)D

      二、簡(jiǎn)答題

      1.試述數(shù)據(jù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng)的概念。

      數(shù)據(jù):描述事物的符號(hào)記錄稱為數(shù)據(jù)。數(shù)據(jù)的種類有文字、圖形、圖象、聲音、正文等等。數(shù)據(jù)與其語(yǔ)義是不可分的。

      *解析:在現(xiàn)代計(jì)算機(jī)系統(tǒng)中數(shù)據(jù)的概念是廣義的。早期的計(jì)算機(jī)系統(tǒng)主要用于科學(xué)計(jì)算,處理的數(shù)據(jù)是整數(shù)、實(shí)數(shù)、浮點(diǎn)數(shù)等傳統(tǒng)數(shù)學(xué)中的數(shù)據(jù)等?,F(xiàn)在計(jì)算機(jī)能存儲(chǔ)和處理的對(duì)象十分廣泛,表示這些對(duì)象的 數(shù)據(jù)也越來(lái)越復(fù)雜。

      數(shù)據(jù)與其語(yǔ)義是不可分的。500這個(gè)數(shù)字可以表示一件物品的價(jià)格是500元,也可以表示一個(gè)學(xué)術(shù)會(huì)議參加的人數(shù)有500人。還可以表示一袋奶粉重500克。

      數(shù)據(jù)庫(kù):數(shù)據(jù)庫(kù)是長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi)、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫(kù)中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲(chǔ)存,具有較小的冗余度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可為各種用戶共享。

      *解析:簡(jiǎn)單地講,數(shù)據(jù)數(shù)據(jù)庫(kù)數(shù)據(jù)具有永久儲(chǔ)存、有組織和可共享三個(gè)特點(diǎn)。

      數(shù)據(jù)模型是數(shù)據(jù)庫(kù)的核心概念。每個(gè)數(shù)據(jù)庫(kù)中數(shù)據(jù)的都是按照某一種數(shù)據(jù)模型來(lái)組織的。

      數(shù)據(jù)庫(kù)系統(tǒng):數(shù)據(jù)庫(kù)系統(tǒng)(DBS)是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的系統(tǒng)構(gòu)成。數(shù)據(jù)庫(kù)系統(tǒng)由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫(kù)管理員構(gòu)成。

      *解析:數(shù)據(jù)庫(kù)系統(tǒng)和數(shù)據(jù)庫(kù)是兩個(gè)概念。數(shù)據(jù)庫(kù)系統(tǒng)是一個(gè)人-機(jī)系統(tǒng),數(shù)據(jù)庫(kù)是數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)組成部分。但是在日常工作中人們常常把把數(shù)據(jù)庫(kù)系統(tǒng)簡(jiǎn)稱為數(shù)據(jù)庫(kù)。希望讀者能夠從人們講話或文章的上下文中區(qū)分“數(shù)據(jù)庫(kù)系統(tǒng)”和“數(shù)據(jù)庫(kù)”。不要引起混淆。

      數(shù)據(jù)庫(kù)管理系統(tǒng):數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。用于科學(xué)地組織和存儲(chǔ)數(shù)據(jù)、高效地獲取和維護(hù)數(shù)據(jù)。DBMS主要功能包括數(shù)據(jù)定義功能、數(shù)據(jù)操縱功能、數(shù)據(jù)庫(kù)的運(yùn)行管理功能、數(shù)據(jù)庫(kù)的建立和維護(hù)功能。

      *解析:DBMS是一個(gè)大型復(fù)雜的軟件系統(tǒng)。是計(jì)算機(jī)中的基礎(chǔ)軟件。目前,專門研制DBMS的廠商及其研制的DBMS產(chǎn)品很多。著名的有美國(guó)IBM公司的DB2關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)、IMS層次數(shù)據(jù)庫(kù)管理系統(tǒng);美國(guó)ORACLE公司的ORACLE關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng);SYBASE公司的SYBASE關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng);美國(guó)微軟公司的SQL SERVER關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)等等。

      2.使用數(shù)據(jù)庫(kù)系統(tǒng)有什么好處?

      使用數(shù)據(jù)庫(kù)系統(tǒng)的好處是由數(shù)據(jù)庫(kù)管理系統(tǒng)的特點(diǎn)或優(yōu)點(diǎn)決定的。

      使用數(shù)據(jù)庫(kù)系統(tǒng)的好處很多,例如可以大大提高應(yīng)用開發(fā)的效率,方便用戶的使用,減輕數(shù)據(jù)庫(kù)系統(tǒng)管理人員維護(hù)的負(fù)擔(dān)等。

      使用數(shù)據(jù)庫(kù)系統(tǒng)可以大大提高應(yīng)用開發(fā)的效率。因?yàn)樵跀?shù)據(jù)庫(kù)系統(tǒng)中應(yīng)用程序不必考慮數(shù)據(jù)的定義、存儲(chǔ)和數(shù)據(jù)存取的具體路徑,這些工作都由DBMS來(lái)完成。用一個(gè)通俗的比喻,使用了DBMS就如有了一個(gè)好參謀好助手,許多具體的技術(shù)工作都由這個(gè)助手來(lái)完成。開發(fā)人員就可以專注于應(yīng)用邏輯的設(shè)計(jì)而不必為管理數(shù)據(jù)的許許多多復(fù)雜的細(xì)節(jié)操心。

      還有,當(dāng)應(yīng)用邏輯改變,數(shù)據(jù)的邏輯結(jié)構(gòu)需要改變時(shí),由于數(shù)據(jù)庫(kù)系統(tǒng)提供了數(shù)據(jù)與程序之間的獨(dú)立性。數(shù)據(jù)邏輯結(jié)構(gòu)的改變是DBA的責(zé)任,開發(fā)人員不必修改應(yīng)用程序,或者只需要修改很少的應(yīng)用程序。從而既簡(jiǎn)化了應(yīng)用程序的編制,又大大減少了應(yīng)用程序的維護(hù)和修改。

      使用數(shù)據(jù)庫(kù)系統(tǒng)可以減輕數(shù)據(jù)庫(kù)系統(tǒng)管理人員維護(hù)系統(tǒng)的負(fù)擔(dān)。因?yàn)镈BMS在數(shù)據(jù)庫(kù)建立、運(yùn)用和維護(hù)時(shí)對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一的管理和控制,包括數(shù)據(jù)的完整性、安全性,多用戶并發(fā)控制,故障恢復(fù)等等都由DBMS執(zhí)行。

      總之,使用數(shù)據(jù)庫(kù)系統(tǒng)的優(yōu)點(diǎn)是很多的,既便于數(shù)據(jù)的集中管理,控制數(shù)據(jù)冗余,可以提高數(shù)據(jù)的利用率和一致性,又有利于應(yīng)用程序的開發(fā)和維護(hù)。讀者可以在自己今后的工作中結(jié)合具體應(yīng)用,認(rèn)真加以體會(huì)和總結(jié)。

      3.試述文件系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)的區(qū)別和聯(lián)系。

      文件系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)的區(qū)別:文件系統(tǒng)面向某一應(yīng)用程序,共享性差、冗余度大,獨(dú)立性差,紀(jì)錄內(nèi)有結(jié)構(gòu)、整體無(wú)結(jié)構(gòu),應(yīng)用程序自己控制。

      數(shù)據(jù)庫(kù)系統(tǒng)面向現(xiàn)實(shí)世界,共享性高、冗余度小,具有高度的物理獨(dú)立性和一定的邏輯獨(dú)立性,整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述,由數(shù)據(jù)庫(kù)管理系統(tǒng)提供數(shù)據(jù)安全性、完整性、并發(fā)控制和恢復(fù)能力。

      讀者可以參考《概論》書中表1.1 中的有關(guān)內(nèi)容。

      文件系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)的聯(lián)系是:文件系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)都是計(jì)算機(jī)系統(tǒng)中管理數(shù)據(jù)的軟件。

      *解析:

      文件系統(tǒng)是操作系統(tǒng)的重要組成部分,而DBMS是獨(dú)立于操作系統(tǒng)的軟件。但是DBMS是在操作系統(tǒng)的基礎(chǔ)上實(shí)現(xiàn)的。數(shù)據(jù)庫(kù)中數(shù)據(jù)的組織和存儲(chǔ)是通過(guò)操作系統(tǒng)中文件系統(tǒng)來(lái)實(shí)現(xiàn)的。

      讀者進(jìn)一步學(xué)習(xí)數(shù)據(jù)庫(kù)管理系統(tǒng)實(shí)現(xiàn)的有關(guān)課程后可以對(duì)本題有深入的理解和全面的解答。因?yàn)镈BMS的實(shí)現(xiàn)與操作系統(tǒng)中的文件系統(tǒng)是緊密相關(guān)的。例如,數(shù)據(jù)庫(kù)實(shí)現(xiàn)的基礎(chǔ)是文件,對(duì)數(shù)據(jù)庫(kù)的任何操作最終要轉(zhuǎn)化為對(duì)文件的操作。所以在DBMS實(shí)現(xiàn)中數(shù)據(jù)庫(kù)物理組織的基本問(wèn)題是如何利用或如何選擇操作系統(tǒng)提供的基本的文件組織方法。這里我們就不具體展開了。

      4.舉出適合用文件系統(tǒng)而不是數(shù)據(jù)庫(kù)系統(tǒng)的例子;再舉出適合用數(shù)據(jù)庫(kù)系統(tǒng)的應(yīng)用例子。

      ?適用于文件系統(tǒng)而不是數(shù)據(jù)庫(kù)系統(tǒng)的應(yīng)用例子

      數(shù)據(jù)的備份,軟件或應(yīng)用程序使用過(guò)程中的臨時(shí)數(shù)據(jù)存儲(chǔ)一般使用文件比較合適。早期功能比較簡(jiǎn)單、比較固定的應(yīng)用系統(tǒng)也適合用文件系統(tǒng)。

      ?適用于數(shù)據(jù)庫(kù)系統(tǒng)而非文件系統(tǒng)的應(yīng)用例子

      目前,幾乎所有企業(yè)或部門的信息系統(tǒng)都以數(shù)據(jù)庫(kù)系統(tǒng)為基礎(chǔ),都使用數(shù)據(jù)庫(kù)。如一個(gè)工廠的管理信息系統(tǒng)(其中會(huì)包括許多子系統(tǒng),如庫(kù)存管理系統(tǒng)、物資采購(gòu)系統(tǒng)、作業(yè)調(diào)度系統(tǒng)、設(shè)備管理系統(tǒng)、人事管理系統(tǒng)等等),還比如學(xué)校的學(xué)生管理系統(tǒng),人事管理系統(tǒng),圖書館的圖書管理系統(tǒng)等等都適合用數(shù)據(jù)庫(kù)系統(tǒng)。希望同學(xué)們能舉出自己了解的應(yīng)用例子。

      5.試述數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)。

      數(shù)據(jù)庫(kù)系統(tǒng)的主要特點(diǎn)有:

      一、數(shù)據(jù)結(jié)構(gòu)化:數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,這是數(shù)據(jù)庫(kù)的主要特征之一,也是數(shù)據(jù)庫(kù)系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。

      *解析:注意這里“整體”兩個(gè)字。在數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)不再針對(duì)某一個(gè)應(yīng)用,而是面向全組織,具有整體的結(jié)構(gòu)化。不僅數(shù)據(jù)是結(jié)構(gòu)化的,而且數(shù)據(jù)的存取單位即一次可以存取數(shù)據(jù)的大小也很靈活??梢孕〉侥骋粋€(gè)數(shù)據(jù)項(xiàng)(如一個(gè)學(xué)生的姓名),大到一組記錄(成千上萬(wàn)個(gè)學(xué)生記錄)。而在文件系統(tǒng)中,數(shù)據(jù)的存取單位只有一個(gè):記錄。如一個(gè)學(xué)生的完整記錄。

      二、數(shù)據(jù)的共享性高,冗余度低,易擴(kuò)充 :數(shù)據(jù)庫(kù)的數(shù)據(jù)不再面向某個(gè)應(yīng)用而是面向整個(gè)系統(tǒng),因此可以被多個(gè)用戶、多個(gè)應(yīng)用、用多種不同的語(yǔ)言共享使用。由于數(shù)據(jù)面向整個(gè)系統(tǒng),是有結(jié)構(gòu)的數(shù)據(jù),不僅可以被多個(gè)應(yīng)用共享使用,而且容易增加新的應(yīng)用,這就使得數(shù)據(jù)庫(kù)系統(tǒng)彈性大,易于擴(kuò)充。

      *解析:

      數(shù)據(jù)共享可以大大減少數(shù)據(jù)冗余,節(jié)約存儲(chǔ)空間,同時(shí)還能夠避免數(shù)據(jù)之間的不相容性與不一致性。

      所謂“數(shù)據(jù)面向某個(gè)應(yīng)用”是指數(shù)據(jù)結(jié)構(gòu)是針對(duì)某個(gè)應(yīng)用設(shè)計(jì)的,只被這個(gè)應(yīng)用程序或應(yīng)用系統(tǒng)使用。可以說(shuō)數(shù)據(jù)是某個(gè)應(yīng)用的“私有資源”。

      所謂“彈性大”是指系統(tǒng)容易擴(kuò)充也容易收縮,即應(yīng)用增加或減少時(shí)不必修改整個(gè)數(shù)據(jù)庫(kù)的結(jié)構(gòu),或者只要做很少的修改。

      我們可以取整體數(shù)據(jù)的各種子集用于不同的應(yīng)用系統(tǒng),當(dāng)應(yīng)用需求改變或增加時(shí),只要重新選取不同的子集或加上一部分?jǐn)?shù)據(jù)便可以滿足新的需求。

      三、數(shù)據(jù)獨(dú)立性高:數(shù)據(jù)獨(dú)立性包括數(shù)據(jù)的物理獨(dú)立性和數(shù)據(jù)的邏輯獨(dú)立性。數(shù)據(jù)庫(kù)管理系統(tǒng)的模式結(jié)構(gòu)和二級(jí)映象功能保證了數(shù)據(jù)庫(kù)中的數(shù)據(jù)具有很高的物理獨(dú)立性和邏輯獨(dú)立性。

      *解析:

      所謂“獨(dú)立性”即相互不依賴。數(shù)據(jù)獨(dú)立性是指數(shù)據(jù)和程序相互不依賴。即數(shù)據(jù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)改變了,程序不會(huì)跟著改變。數(shù)據(jù)與程序的獨(dú)立,把數(shù)據(jù)的定義從程序中分離出去,加上數(shù)據(jù)的存取又由DBMS負(fù)責(zé),簡(jiǎn)化了應(yīng)用程序的編制,大大減少了應(yīng)用程序的維護(hù)和修改。

      四、數(shù)據(jù)由DBMS統(tǒng)一管理和控制:數(shù)據(jù)庫(kù)的共享是并發(fā)的共享,即多個(gè)用戶可以同時(shí)存取數(shù)據(jù)庫(kù)中的數(shù)據(jù)甚至可以同時(shí)存取數(shù)據(jù)庫(kù)中同一個(gè)數(shù)據(jù)。為此,DBMS必須提供統(tǒng)一的數(shù)據(jù)控制功能,包括數(shù)據(jù)的安全性保護(hù),數(shù)據(jù)的完整性檢查,并發(fā)控制和數(shù)據(jù)庫(kù)恢復(fù)。

      *解析:

      DBMS數(shù)據(jù)控制功能包括四個(gè)方面:

      數(shù)據(jù)的安全性保護(hù):保護(hù)數(shù)據(jù)以防止不合法的使用造成的數(shù)據(jù)的泄密和破壞;

      數(shù)據(jù)的完整性檢查:將數(shù)據(jù)控制在有效的范圍內(nèi)或保證數(shù)據(jù)之間滿足一定的關(guān)系;

      并發(fā)控制:對(duì)多用戶的并發(fā)操作加以控制和協(xié)調(diào),保證并發(fā)操作的正確性;

      數(shù)據(jù)庫(kù)恢復(fù):當(dāng)計(jì)算機(jī)系統(tǒng)發(fā)生硬件故障、軟件故障,或者由于操作員的失誤以及故意的破壞影響數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性,甚至造成數(shù)據(jù)庫(kù)部分或全部數(shù)據(jù)的丟失時(shí),能將數(shù)據(jù)庫(kù)從錯(cuò)誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)(亦稱為完整狀態(tài)或一致狀態(tài))。

      下面我們可以得到“什么是數(shù)據(jù)庫(kù)”的一個(gè)定義:

      數(shù)據(jù)庫(kù)是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)有組織的大量的共享的數(shù)據(jù)集合。它可以供各種用戶共享,具有最小冗余度和較高的數(shù)據(jù)獨(dú)立性。DBMS在數(shù)據(jù)庫(kù)建立、運(yùn)用和維護(hù)時(shí)對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一控制,以保證數(shù)據(jù)的完整性、安全性,并在多用戶同時(shí)使用數(shù)據(jù)庫(kù)時(shí)進(jìn)行并發(fā)控制,在發(fā)生故障后對(duì)系統(tǒng)進(jìn)行恢復(fù)。

      數(shù)據(jù)庫(kù)系統(tǒng)的出現(xiàn)使信息系統(tǒng)從以加工數(shù)據(jù)的程序?yàn)橹行霓D(zhuǎn)向圍繞共享的數(shù)據(jù)庫(kù)為中心的新階段。

      6.?dāng)?shù)據(jù)庫(kù)管理系統(tǒng)的主要功能有哪些?

      ①數(shù)據(jù)庫(kù)定義功能;

      ②數(shù)據(jù)存取功能;

      ③數(shù)據(jù)庫(kù)運(yùn)行管理;

      ④數(shù)據(jù)庫(kù)的建立和維護(hù)功能。

      7.試述數(shù)據(jù)模型的概念、數(shù)據(jù)模型的作用和數(shù)據(jù)模型的三個(gè)要素。

      數(shù)據(jù)模型是數(shù)據(jù)庫(kù)中用來(lái)對(duì)現(xiàn)實(shí)世界進(jìn)行抽象的工具,是數(shù)據(jù)庫(kù)中用于提供信息表示和操作手段的形式構(gòu)架。

      一般地講,數(shù)據(jù)模型是嚴(yán)格定義的概念的集合。這些概念精確地描述系統(tǒng)的靜態(tài)特性、動(dòng)態(tài)特性和完整性約束條件。因此數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三部分組成。

      ①數(shù)據(jù)結(jié)構(gòu):是所研究的對(duì)象類型的集合,是對(duì)系統(tǒng)的靜態(tài)特性的描述。

      ②數(shù)據(jù)操作:是指對(duì)數(shù)據(jù)庫(kù)中各種對(duì)象(型)的實(shí)例(值)允許進(jìn)行的操作的集合,包括操作及有關(guān)的操作規(guī)則,是對(duì)系統(tǒng)動(dòng)態(tài)特性的描述。

      ③數(shù)據(jù)的約束條件:是完整性規(guī)則的集合,完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫(kù)狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。

      *解析:

      數(shù)據(jù)模型是數(shù)據(jù)庫(kù)系統(tǒng)中最重要的概念之一。同學(xué)們必須通過(guò)《概論》的學(xué)習(xí)真正掌握

      數(shù)據(jù)模型的概念和作用。

      數(shù)據(jù)模型是數(shù)據(jù)庫(kù)系統(tǒng)的基礎(chǔ)。任何一個(gè)DBMS都以某一個(gè)數(shù)據(jù)模型為基礎(chǔ),或者說(shuō)支持某一個(gè)數(shù)據(jù)模型。

      數(shù)據(jù)庫(kù)系統(tǒng)中模型有不同的層次。根據(jù)模型應(yīng)用的不同目的,可以將模型分成兩類或說(shuō)兩個(gè)層次:一是概念模型,是按用戶的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模,用于信息世界的建模,強(qiáng)調(diào)語(yǔ)義表達(dá)能力,概念簡(jiǎn)單清晰;另一是數(shù)據(jù)模型,是按計(jì)算機(jī)系統(tǒng)的觀點(diǎn)對(duì)數(shù)據(jù)建模,用于機(jī)器世界,人們可以用它定義、操縱數(shù)據(jù)庫(kù)中的數(shù)據(jù)。一般需要有嚴(yán)格的形式化定義和一組嚴(yán)格定義了語(yǔ)法和語(yǔ)義的語(yǔ)言,并有一些規(guī)定和限制,便于在機(jī)器上實(shí)現(xiàn)。

      8.試述概念模型的作用。

      概念模型實(shí)際上是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次。概念模型用于信息世界的建模,是現(xiàn)實(shí)世界到信息世界的第一層抽象,是數(shù)據(jù)庫(kù)設(shè)計(jì)人員進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)的有力工具,也是數(shù)據(jù)庫(kù)設(shè)計(jì)人員和用戶之間進(jìn)行交流的語(yǔ)言。

      9.定義并解釋概念模型中以下術(shù)語(yǔ):

      實(shí)體,實(shí)體型,實(shí)體集,屬性,碼,實(shí)體聯(lián)系圖(E-R圖)

      實(shí)體:客觀存在并可以相互區(qū)分的事物叫實(shí)體。

      實(shí)體型:具有相同屬性的實(shí)體具有相同的特征和性質(zhì),用實(shí)體名及其屬性名集合來(lái)抽象和刻畫同類實(shí)體稱為實(shí)體型。

      實(shí)體集:同型實(shí)體的集合稱為實(shí)體集。

      屬性:實(shí)體所具有的某一特性,一個(gè)實(shí)體可由若干個(gè)屬性來(lái)刻畫。

      碼:唯一標(biāo)識(shí)實(shí)體的屬性集稱為碼。

      實(shí)體聯(lián)系圖:E-R圖提供了表示實(shí)體型、屬性和聯(lián)系的方法:

      ? 實(shí)體型:用矩形表示,矩形框內(nèi)寫明實(shí)體名。

      ? 屬性:用橢圓形表示,并用無(wú)向邊將其與相應(yīng)的實(shí)體連接起來(lái)。

      ?聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無(wú)向邊分別與有關(guān)實(shí)體連接起來(lái),同時(shí)在無(wú)向邊旁標(biāo)上聯(lián)系的類型(1 : 1,1 : n或m : n)。

      10.試給出三個(gè)實(shí)際部門的E-R圖,要求實(shí)體型之間具有一對(duì)一,一對(duì)多,多對(duì)多各種不同的聯(lián)系。

      關(guān)系數(shù)據(jù)庫(kù)

      一、選擇題

      1.下面的選項(xiàng)不是關(guān)系數(shù)據(jù)庫(kù)基本特征的是()。

      A.不同的列應(yīng)有不同的數(shù)據(jù)類型

      B.不同的列應(yīng)有不同的列名

      C.與行的次序無(wú)關(guān)

      D.與列的次序無(wú)關(guān)

      2.一個(gè)關(guān)系只有一個(gè)()。

      A.候選碼

      B.外碼

      C.超碼

      D.主碼

      3.關(guān)系模型中,一個(gè)碼是()。

      A.可以由多個(gè)任意屬性組成 B.至多由一個(gè)屬性組成

      C.可有多個(gè)或者一個(gè)其值能夠唯一表示該關(guān)系模式中任何元組的屬性組成D.以上都不是

      4.現(xiàn)有如下關(guān)系:

      患者(患者編號(hào),患者姓名,性別,出生日起,所在單位)

      醫(yī)療(患者編號(hào),患者姓名,醫(yī)生編號(hào),醫(yī)生姓名,診斷日期,診斷結(jié)果)

      其中,醫(yī)療關(guān)系中的外碼是()。

      A.患者編號(hào)

      B.患者姓名

      C.患者編號(hào)和患者姓名

      D.醫(yī)生編號(hào)和患者編號(hào)

      5.現(xiàn)有一個(gè)關(guān)系:借閱(書號(hào),書名,庫(kù)存數(shù),讀者號(hào),借期,還期),假如同一本書允許一個(gè)讀者多次借閱,但不能同時(shí)對(duì)一種書借多本,則該關(guān)系模式的外碼是()。

      A.書號(hào)

      B.讀者號(hào)

      C.書號(hào)+讀者號(hào)

      D.書號(hào)+讀者號(hào)+借期

      6.關(guān)系模型中實(shí)現(xiàn)實(shí)體間 N:M 聯(lián)系是通過(guò)增加一個(gè)()。

      A.關(guān)系實(shí)現(xiàn)

      B.屬性實(shí)現(xiàn)

      C.關(guān)系或一個(gè)屬性實(shí)現(xiàn)

      D.關(guān)系和一個(gè)屬性實(shí)現(xiàn)

      7.關(guān)系代數(shù)運(yùn)算是以()為基礎(chǔ)的運(yùn)算。

      A.關(guān)系運(yùn)算

      B.謂詞演算

      C.集合運(yùn)算

      D.代數(shù)運(yùn)算

      8.關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)應(yīng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括()。

      A.排序、索引、統(tǒng)計(jì)

      B.選擇、投影、連接 C.關(guān)聯(lián)、更新、排序

      D.顯示、打印、制表

      9.五種基本關(guān)系代數(shù)運(yùn)算是()。

      A.∪ - × σ π

      B.∪ - σ π

      C.∪ ∩ × σ π

      D.∪ ∩ σ π

      10.關(guān)系代數(shù)表達(dá)式的優(yōu)化策略中,首先要做的是()。

      A.對(duì)文件進(jìn)行預(yù)處理

      B.盡早執(zhí)行選擇運(yùn)算

      C.執(zhí)行笛卡爾積運(yùn)算

      D.投影運(yùn)算

      11.關(guān)系數(shù)據(jù)庫(kù)中的投影操作是指從關(guān)系中()。

      A.抽出特定記錄

      B.抽出特定字段

      C.建立相應(yīng)的影像

      D.建立相應(yīng)的圖形

      12.從一個(gè)數(shù)據(jù)庫(kù)文件中取出滿足某個(gè)條件的所有記錄形成一個(gè)新的數(shù)據(jù)庫(kù)文件的操作是()操作。

      A.投影

      B.聯(lián)接

      C.選擇

      D.復(fù)制

      13.關(guān)系代數(shù)中的聯(lián)接操作是由()操作組合而成。

      A.選擇和投影 B.選擇和笛卡爾積

      C.投影、選擇、笛卡爾積

      D.投影和笛卡爾積

      14.自然聯(lián)接是構(gòu)成新關(guān)系的有效方法。一般情況下,當(dāng)對(duì)關(guān)系R和S是用自然聯(lián)接時(shí),要求R和S含有一個(gè)或者多個(gè)共有的()。

      A.記錄

      B.行

      C.屬性

      D.元組

      15.假設(shè)有關(guān)系R和S,在下列的關(guān)系運(yùn)算中,()運(yùn)算不要求:“R和S具有相同的元數(shù),且它們的對(duì)應(yīng)屬性的數(shù)據(jù)類型也相同”。

      A.R∩S

      B.R∪S

      C.R-S

      D.R×S

      16.假設(shè)有關(guān)系R和S,關(guān)系代數(shù)表達(dá)式R-(R-S)表示的是()。

      A.R∩S

      B.R∪S

      C.R-S

      D.R×S

      17.下面列出的關(guān)系代數(shù)表達(dá)是中,那些式子能夠成立()。

      ⅰ.σf1(σf2(E))= σf1∧f2(E)

      ⅱ.E1∞E2 = E2∞E1

      ⅲ.(E1∞E2)∞E3 = E1∞(E2∞E3)

      ⅳ.σf1(σf2(E))=σf2(σf1(E))

      A.全部

      B.ⅱ和ⅲ C.沒(méi)有

      D.ⅰ和ⅳ

      18.下面四個(gè)關(guān)系表達(dá)式是等價(jià)的,是判別它們的執(zhí)行效率()。

      E1 =πA(σ B=C ∧ D=E′(R×S))

      E2 =πA(σ B=C(R× σD=E′(S))

      E3 =πA(R∞B=CσD=E′(S))

      E3 =πA(σD=E′(R∞B=C S))

      A.E3最快

      B.E2最快 C.E4最快 D.E1最快

      19.有關(guān)系SC(S_ID,C_ID,AGE,SCORE),查找年齡大于22歲的學(xué)生的學(xué)號(hào)和分?jǐn)?shù),正確的關(guān)系代數(shù)表達(dá)式是()。

      ⅰ.πS_ID,SCORE(σ age>22(SC))

      ⅱ.σ age>22(πS_ID,SCORE(SC))

      ⅲ.πS_ID,SCORE(σ age>22(πS_ID,SCORE,AGE(SC)))

      A.ⅰ和 ⅱ

      B.只有ⅱ正確

      C.只有 ⅰ正確

      D.ⅰ和ⅲ正確

      選擇題參考答案:(1)A(2)D(3)C(4)A(5)D(6)A(7)C(8)B(9)A(10)B

      (11)B(12)C(13)B(14)C(15)D(16)A(17)C(18)A(19)D

      二、簡(jiǎn)答題

      1.試述關(guān)系模型的三個(gè)組成部分。

      2.試述關(guān)系數(shù)據(jù)語(yǔ)言的特點(diǎn)和分類。

      3.設(shè)有一個(gè)SPJ數(shù)據(jù)庫(kù),包括S,P,J,SPJ四個(gè)關(guān)系模式:

      S(SNO,SNAME,STATUS,CITY);

      P(PNO,PNAME,COLOR,WEIGHT);

      J(JNO,JNAME,CITY);

      SPJ(SNO,PNO,JNO,QTY);

      供應(yīng)商表S由供應(yīng)商代碼(SNO)、供應(yīng)商姓名(SNAME)、供應(yīng)商狀態(tài)(STATUS)、供應(yīng)商所在城市(CITY)組成;零件表P由零件代碼(PNO)、零件名(PNAME)、顏色(COLOR)、重量(WEIGHT)組成;工程項(xiàng)目表J由工程項(xiàng)目代碼(JNO)、工程項(xiàng)目名(JNAME)、工程項(xiàng)目所在城市(CITY)組成;供應(yīng)情況表SPJ由供應(yīng)商代碼(SNO)、零件代碼(PNO)、工程項(xiàng)目代碼(JNO)、供應(yīng)數(shù)量(QTY)組成,表示某供應(yīng)商供應(yīng)某種零件給某工程項(xiàng)目的數(shù)量為QTY。

      試用關(guān)系代數(shù)完成如下查詢:

      (1)求供應(yīng)工程J1零件的供應(yīng)商號(hào)碼SNO;

      (2)求供應(yīng)工程J1零件P1的供應(yīng)商號(hào)碼SNO;

      (3)求供應(yīng)工程J1零件為紅色的供應(yīng)商號(hào)碼SNO;

      (4)求沒(méi)有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號(hào)JNO;

      (5)求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號(hào)JNO。

      4.定義并理解下列術(shù)語(yǔ),說(shuō)明它們之間的聯(lián)系與區(qū)別:

      (1)域,笛卡爾積,關(guān)系,元組,屬性

      (2)主碼,候選碼,外碼

      (3)關(guān)系模式,關(guān)系,關(guān)系數(shù)據(jù)庫(kù)

      5.試述關(guān)系模型的完整性規(guī)則。在參照完整性中,為什么外碼屬性的值有時(shí)也可以為空?什么情況下才可以為空?

      6.試述等值連接與自然連接的區(qū)別和聯(lián)系。

      7.關(guān)系代數(shù)的基本運(yùn)算有哪些?

      8.試用關(guān)系代數(shù)的基本運(yùn)算來(lái)表示其他運(yùn)算。

      SQL語(yǔ)言

      一、選擇題

      1.SQL語(yǔ)言是()的語(yǔ)言,容易學(xué)習(xí)。

      A.過(guò)程化

      B.非過(guò)程化

      C.格式化

      D.導(dǎo)航式

      2.SQL語(yǔ)言的數(shù)據(jù)操縱語(yǔ)句包括SELECT、INSERT、UPDATE、DELETE等。其中最重要的,也是使用最頻繁的語(yǔ)句是()。

      A.SELECT B.INSERT

      C.UPDATE D.DELETE

      3.在視圖上不能完成的操作是()。

      A.更新視圖

      B.查詢

      C.在視圖上定義新的表

      D.在視圖上定義新的視圖

      4.SQL語(yǔ)言集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制功能于一體,其中,CREATE、DROP、ALTER語(yǔ)句是實(shí)現(xiàn)哪種功能()。

      A.數(shù)據(jù)查詢

      B.數(shù)據(jù)操縱

      C.數(shù)據(jù)定義 D.數(shù)據(jù)控制

      5.SQL語(yǔ)言中,刪除一個(gè)視圖的命令是()。

      A.DELETE

      B.DROP

      C.CLEAR

      D.REMOVE

      6.在SQL語(yǔ)言中的視圖VIEW是數(shù)據(jù)庫(kù)的()。

      A.外模式

      B.模式

      C.內(nèi)模式

      D.存儲(chǔ)模式

      7.下列的SQL語(yǔ)句中,()不是數(shù)據(jù)定義語(yǔ)句。

      A.CREATE TABLE B.DROP VIEW

      C.CREATE VIEW D.GRANT

      8.若要撤銷數(shù)據(jù)庫(kù)中已經(jīng)存在的表S,可用()。

      A.DELETE TABLE S B.DELETE S

      C.DROP TABLE S D.DROP S

      9.若要在基本表S中增加一列CN(課程名),可用()。

      A.ADD TABLE S(CN CHAR(8))

      B.ADD TABLE S ALTER(CN CHAR(8))

      C.ALTER TABLE S ADD(CN CHAR(8))D.ALTER TABLE S(ADD CN CHAR(8))

      10.學(xué)生關(guān)系模式 S(S#,Sname,Sex,Age),S的屬性分別表示學(xué)生的學(xué)號(hào)、姓名、性別、年齡。要在表S中刪除一個(gè)屬性“年齡”,可選用的SQL語(yǔ)句是()。

      A.DELETE Age from S B.ALTER TABLE S DROP Age

      C.UPDATE S Age D.ALTER TABLE S ‘Age’

      11.有關(guān)系S(S#,SNAME,SAGE),C(C#,CNAME),SC(S#,C#,GRADE)。其中S#是學(xué)生號(hào),SNAME是學(xué)生姓名,SAGE是學(xué)生年齡,C#是課程號(hào),CNAME是課程名稱。要查詢選修“ACCESS”課的年齡不小于20的全體學(xué)生姓名的SQL語(yǔ)句是SELECT SNAME FROM S,C,SC WHERE子句。這里的WHERE子句的內(nèi)容是()。

      A.S.S# = SC.S# and C.C# = SC.C# and SAGE>=20 and CNAME=‘ACCESS’

      B.S.S# = SC.S# and C.C# = SC.C# and SAGE in>=20 and CNAME in ‘ACCESS’

      C.SAGE in>=20 and CNAME in ‘ACCESS’

      D.SAGE>=20 and CNAME=’ ACCESS’

      12.設(shè)關(guān)系數(shù)據(jù)庫(kù)中一個(gè)表S的結(jié)構(gòu)為S(SN,CN,grade),其中SN為學(xué)生名,CN為課程名,二者均為字符型;grade為成績(jī),數(shù)值型,取值范圍0-100。若要把“張二的化學(xué)成績(jī)80分”插入S中,則可用()。

      A.ADD INTO S VALUES(’張二’,’化學(xué)’,’80’)

      B.INSERT INTO S VALUES(’張二’,’化學(xué)’,’80’)

      C.ADD

      INTO S VALUES(’張二’,’化學(xué)’,80)D.INSERT INTO S VALUES(’張二’,’化學(xué)’,80)

      13.設(shè)關(guān)系數(shù)據(jù)庫(kù)中一個(gè)表S的結(jié)構(gòu)為:S(SN,CN,grade),其中SN為學(xué)生名,CN為課程名,二者均為字符型;grade為成績(jī),數(shù)值型,取值范圍0-100。若要更正王二的化學(xué)成績(jī)?yōu)?5分,則可用()。

      A.UPDATE S SET grade=85 WHERE SN=’王二’ AND CN=’化學(xué)’

      B.UPDATE S SET grade=’85’WHERE SN=’王二’ AND CN=’化學(xué)’

      C.UPDATE grade=85 WHERE SN=’王二’ AND CN=’化學(xué)’

      D.UPDATE grade=’85’WHERE SN=’王二’ AND CN=’化學(xué)’

      14.在SQL語(yǔ)言中,子查詢是()。

      A.返回單表中數(shù)據(jù)子集的查詢語(yǔ)言

      B.選取多表中字段子集的查詢語(yǔ)句

      C.選取單表中字段子集的查詢語(yǔ)句

      D.嵌入到另一個(gè)查詢語(yǔ)句之中的查詢語(yǔ)句

      15.SQL是一種()語(yǔ)言。

      A.高級(jí)算法

      B.人工智能

      C.關(guān)系數(shù)據(jù)庫(kù) D.函數(shù)型

      16.有關(guān)系S(S#,SNAME,SEX),C(C#,CNAME),SC(S#,C#,GRADE)。其中S#是學(xué)生號(hào),SNAME是學(xué)生姓名,SEX是性別,C#是課程號(hào),CNAME是課程名稱。要查詢選修“數(shù)據(jù)庫(kù)”課的全體男生姓名的SQL語(yǔ)句是SELECT SNAME FROM S,C,SC WHERE子句。這里的WHERE子句的內(nèi)容是()。

      A.S.S# = SC.S# and C.C# = SC.C# and SEX=’男’ and CNAME=’數(shù)據(jù)庫(kù)’

      B.S.S# = SC.S# and C.C# = SC.C# and SEX in’男’and CNAME in’數(shù)據(jù)庫(kù)’

      C.SEX ’男’ and CNAME ’ 數(shù)據(jù)庫(kù)’

      D.S.SEX=’男’ and CNAME=’ 數(shù)據(jù)庫(kù)’

      17.若用如下的SQL語(yǔ)句創(chuàng)建了一個(gè)表SC:

      CREATE TABLE SC(S# CHAR(6)NOT NULL,C# CHAR(3)NOT NULL,SCORE INTEGER,NOTE CHAR(20));向SC表插入如下行時(shí),()行可以被插入。

      A.(’201009’,’111’,60,必修)

      B.(’200823’,’101’,NULL,NULL)

      C.(NULL,’103’,80,’選修’)

      D.(’201132’,NULL,86,’ ’)

      18.假設(shè)學(xué)生關(guān)系S(S#,SNAME,SEX),課程關(guān)系C(C#,CNAME),學(xué)生選課關(guān)系SC(S#,C#,GRADE)。要查詢選修“Computer”課的男生姓名,將涉及到關(guān)系()。

      A.S B.S,SC C.C,SC D.S,C,SC

      選擇題參考答案:(1)B(2)A(3)C(4)C(5)B(6)A(7)D(8)C(9)C(10)B

      (11)A(12)D(13)A(14)D(15)C(16)A(17)B(18)D

      二、簡(jiǎn)答題

      1.試述SQL語(yǔ)言的特點(diǎn)。

      答:(1)綜合統(tǒng)一。SQL語(yǔ)言集數(shù)據(jù)定義語(yǔ)言DDL、數(shù)據(jù)操縱語(yǔ)言DML、數(shù)據(jù)控制語(yǔ)言DCL的功能于一體。

      (2)高度非過(guò)程化。用SQL語(yǔ)言進(jìn)行數(shù)據(jù)操作,只要提出“做什么”,而無(wú)須指明“怎么做”,因此無(wú)需了解存取路徑,存取路徑的選擇以及SQL語(yǔ)句的操作過(guò)程由系統(tǒng)自動(dòng)完成。

      (3)面向集合的操作方式。SQL語(yǔ)言采用集合操作方式,不僅操作對(duì)象、查找結(jié)果可以是元組的集合,而且一次插入、刪除、更新操作的對(duì)象也可以是元組的集合。

      (4)以同一種語(yǔ)法結(jié)構(gòu)提供兩種使用方式。SQL語(yǔ)言既是自含式語(yǔ)言,又是嵌入式語(yǔ)言。作為自含式語(yǔ)言,它能夠獨(dú)立地用于聯(lián)機(jī)交互的使用方式,也能夠嵌入到高級(jí)語(yǔ)言程序中,供程序員設(shè)計(jì)程序時(shí)使用。

      (5)語(yǔ)言簡(jiǎn)捷,易學(xué)易用。

      2.試述SQL的定義功能。

      答: SQL的數(shù)據(jù)定義功能包括定義表、定義視圖和定義索引。

      SQL語(yǔ)言使用CREATE TABLE語(yǔ)句定義建立基本表,;ALTER TABLE語(yǔ)句修改基本表定義,DROP TABLE語(yǔ)句刪除基本表;建立索引使用CREATE INDEX語(yǔ)句建立索引,DROP INDEX語(yǔ)句刪除索引表;SQL語(yǔ)言使用CREATE VIEW命令建立視圖,DROP VIEW語(yǔ)句刪除視圖。

      3.用SQL語(yǔ)句建立第3章習(xí)題3中的四個(gè)表。

      答:對(duì)于S表:S(SNO,SNAME,STATUS,CITY);

      建S表:CREATE TABLE S(SNO CHAR(3),SNAME CHAR(10),STATUS CHAR(2),CITY CHAR(10));

      P(PNO,PNAME,COLOR,WEIGHT);

      建P表:CREATE TABLE P(PNO CHAR(3),PNAME CHAR(10),COLOR CHAR(4),WEIGHT INT);

      J(JNO,JNAME,CITY);

      建J表:CREATE TABLE J(JNO CHAR(3),JNAME CHAR(10),CITY CHAR(10));

      SPJ(SNO,PNO,JNO,QTY);

      建SPJ表:CREATE TABLE SPJ(SNO CHAR(3),PNO CHAR(3),JNO CHAR(3),QTY INT);

      4.針對(duì)上題中建立的四個(gè)表試用SQL語(yǔ)言完成第3章習(xí)題3中的查詢。

      答:(1)求供應(yīng)工程J1零件的供應(yīng)商號(hào)碼SNO;

      SELECT SNO

      FROM SPJ

      WHERE JNO=‘J1’;

      (2)求供應(yīng)工程J1零件P1的供應(yīng)商號(hào)碼SNO;

      SELECT SNO

      FROM SPJ

      WHERE JNO=‘J1’

      AND PNO=‘P1’;

      (3)求供應(yīng)工程J1零件為紅色的供應(yīng)商號(hào)碼SNO;

      SELECT SNO

      FROM SPJ

      WHERE JNO=‘J1’

      AND PNO IN

      (SELECT PNO

      FROM P

      WHERE COLOR=‘紅’);

      SELECT SNO

      FROM SPJ,P

      WHERE JNO=‘J1’

      AND SPJ.PNO=P.PNO

      AND COLOR=‘紅’;

      (4)求沒(méi)有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號(hào)JNO;

      解析:

      用SQL語(yǔ)言表示如下:

      SELECT JNO

      FROM J

      WHERE NOT EXISTS

      (SELECT *

      FROM SPJ

      WHERE SPJ.JNO=J.JNO

      AND SNO IN

      (SELECT SNO

      FROM S

      WHERE CITY=‘天津’)

      AND PNO IN

      (SELECT PNO

      FROM P

      WHERE COLOR=‘紅’));

      SELECT JNO

      FROM J

      WHERE NOT EXISTS

      (SELECT *1

      FROM SPJ, S, P

      WHERE SPJ.JNO=J.JNO

      AND SPJ.SNO=S.SNO

      AND SPJ.PNO=P.PNO

      AND S.CITY=‘天津’

      AND P.COLOR=‘紅’);

      注意:從 J 表入手,以包含那些尚未使用任何零件的工程號(hào)。

      (5)求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號(hào)JNO。

      解析:

      用SQL語(yǔ)言表示如下:

      SELECT DISTINCT JNO

      FROM SPJ SPJZ

      WHERE NOT EXISTS

      (SELECT *

      FROM SPJ SPJX

      WHERE SNO='S1'

      AND NOT EXISTS

      (SELECT *

      FROM SPJ SPJY

      WHERE SPJY.PNO=SPJX.PNO

      AND SPJY.JNON=SPJZ.JNO

      AND SPJY.SNO=’S1’));

      AND SPJY.SNO='S1'));

      5.針對(duì)習(xí)題3中的四個(gè)表試用SQL語(yǔ)言完成以下各項(xiàng)操作:

      (1)找出所有供應(yīng)商的姓名和所在城市。

      (2)找出所有零件的名稱、顏色、重量。

      (3)找出使用供應(yīng)商S1所供應(yīng)零件的工程號(hào)碼。

      (4)找出工程項(xiàng)目J2使用的各種零件的名稱及其數(shù)量。

      (5)找出上海廠商供應(yīng)的所有零件號(hào)碼。

      (6)找出使用上海產(chǎn)的零件的工程名稱。

      (7)找出沒(méi)有使用天津產(chǎn)的零件的工程號(hào)碼。

      (8)把全部紅色零件的顏色改成藍(lán)色。

      (9)由S5供給J4的零件P6改為由S3供應(yīng),請(qǐng)作必要的修改。

      (10)從供應(yīng)商關(guān)系中刪除S2的記錄,并從供應(yīng)情況關(guān)系中刪除相應(yīng)的記錄。

      (11)請(qǐng)將(S2,J6,P4,200)插入供應(yīng)情況關(guān)系。

      答:

      (1)找出所有供應(yīng)商的姓名和所在城市。

      SELECT SNAME, CITY

      FROM S;

      (2)找出所有零件的名稱、顏色、重量。

      SELECT PNAME, COLOR, WEIGHT

      FROM P;

      (3)找出使用供應(yīng)商S1所供應(yīng)零件的工程號(hào)碼。

      SELECT JNO

      FROM SPJ

      WHERE SNO=‘S1’;

      (4)找出工程項(xiàng)目J2使用的各種零件的名稱及其數(shù)量。

      SELECT P.PNAME, SPJ.QTY

      FROM P, SPJ

      WHERE P.PNO=SPJ.PNO

      AND SPJ.JNO='J2';

      (5)找出上海廠商供應(yīng)的所有零件號(hào)碼。

      SELECT DISTINCT PNO

      FROM SPJ

      WHERE SNO IN

      (SELECT SNO

      FROM S

      WHERE CITY='上海');

      (6)找出使用上海產(chǎn)的零件的工程名稱。

      SELECT JNAME

      FROM J, SPJ, S

      WHERE J.JNO=SPJ.JNO

      AND SPJ.SNO=S.SNO

      AND S.CITY='上海';

      SELECT JNAME

      FROM J

      WHERE JNO IN

      (SELECT JNO

      FROM SPJ, S

      WHERE SPJ.SNO=S.SNO

      AND S.CITY='上海');

      (7)找出沒(méi)有使用天津產(chǎn)的零件的工程號(hào)碼。

      SELECT JNO

      FROM J

      WHERE NOT EXISTS

      (SELECT *

      FROM SPJ

      WHERE SPJ.JNO=J.JNO AND SNO IN

      (SELECT SNO

      FROM S

      WHERE CITY=‘天津’));

      SELECT JNO

      FROM J

      WHERE NOT EXISTS

      (SELECT *1

      FROM SPJ, S

      WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND S.CITY=‘天津’);

      (8)把全部紅色零件的顏色改成藍(lán)色。

      UPDATE P

      SET COLOR='藍(lán)'

      WHERE COLOR='紅';

      (9)由S5供給J4的零件P6改為由S3供應(yīng),請(qǐng)作必要的修改。

      UPDATE SPJ

      SET SNO='S3'

      WHERE SNO='S5' AND JNO='J4' AND PNO='P6';

      (10)從供應(yīng)商關(guān)系中刪除S2的記錄,并從供應(yīng)情況關(guān)系中刪除相應(yīng)的記錄。

      DELETE

      FROM SPJ

      WHERE SNO='S2';

      DELETE

      FROM S

      WHERE SNO='S2';

      解析:注意刪除順序,應(yīng)該先從SPJ表中刪除供應(yīng)商S2所供應(yīng)零件的記錄,然后從從S表中刪除S2。

      (11)請(qǐng)將(S2,J6,P4,200)插入供應(yīng)情況關(guān)系。

      INSERT INTO SPJ(SNO, JNO, PNO, QTY)

      VALUES(S2,J6,P4,200);

      INSERT INTO SPJ

      VALUES(S2,P4,J6,200);

      6.什么是基本表?什么是視圖??jī)烧叩膮^(qū)別和聯(lián)系是什么?

      答:基本表是本身獨(dú)立存在的表,在SQL中一個(gè)關(guān)系就對(duì)應(yīng)一個(gè)表。

      視圖是從一個(gè)或幾個(gè)基本表導(dǎo)出的表。視圖本身不獨(dú)立存儲(chǔ)在數(shù)據(jù)庫(kù)中,是一個(gè)虛表。即數(shù)據(jù)庫(kù)中只存放視圖的定義而不存放視圖對(duì)應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在導(dǎo)出視圖的基本表中。視圖在概念上與基本表等同,用戶可以如同基本表那樣使用視圖,可以在視圖上再定義視圖。

      7.試述視圖的優(yōu)點(diǎn)。

      答:(1)視圖能夠簡(jiǎn)化用戶的操作。

      (2)視圖使用戶能以多種角度看待同一數(shù)據(jù)。

      (3)視圖對(duì)重構(gòu)數(shù)據(jù)庫(kù)提供了一定程度的邏輯獨(dú)立性。

      (4)視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù)。

      8.所有的視圖是否都可以更新?為什么?

      答:不是。視圖是不實(shí)際存儲(chǔ)數(shù)據(jù)的虛表,因此對(duì)視圖的更新,最終要轉(zhuǎn)換為對(duì)基本表的更新。因?yàn)橛行┮晥D的更新不能唯一地有意義地轉(zhuǎn)換成對(duì)相應(yīng)基本表的更新,所以,并不是所有的視圖都是可更新的。如《概論》3.5.1中的視圖S_G(學(xué)生的學(xué)號(hào)及他的平均成績(jī))

      CREAT VIEW S_G(Sno,Gavg)

      AS SELECT Sno,AVG(Grade)

      FROM SC

      GROUP BY Sno;

      要修改平均成績(jī),必須修改各科成績(jī),而我們無(wú)法知道哪些課程成績(jī)的變化導(dǎo)致了平均成績(jī)的變化。

      9.哪類視圖是可以更新的,哪類視圖是不可更新的? 各舉一例說(shuō)明。

      答:基本表的行列子集視圖一般是可更新的。如《概論》3.5.3中的例1。

      若視圖的屬性來(lái)自集函數(shù)、表達(dá)式,則該視圖肯定是不可以更新的。

      如《概論》3.5.3中的S_G視圖。

      10.試述某個(gè)你熟悉的實(shí)際系統(tǒng)中對(duì)視圖更新的規(guī)定。

      答:(略)

      解析:不同的系統(tǒng)對(duì)視圖更新的規(guī)定是不同的,讀者必須了解你所用系統(tǒng)對(duì)視圖更新的規(guī)定。

      11.請(qǐng)為三建工程項(xiàng)目建立一個(gè)供應(yīng)情況的視圖,包括供應(yīng)商代碼(SNO)、零件

      代碼(PNO)、供應(yīng)數(shù)量(QTY)。針對(duì)該視圖完成下列查詢:

      (1)找出三建工程項(xiàng)目使用的各種零件代碼及其數(shù)量。

      (2)找出供應(yīng)商S1的供應(yīng)情況。

      答:建視圖:

      CREATE VIEW V_SPJ AS

      SELECT SNO, PNO, QTY

      FROM SPJ

      WHERE JNO=

      (SELECT JNO

      FROM J

      WHERE JNAME='三建');

      對(duì)該視圖查詢:

      (1)找出三建工程項(xiàng)目使用的各種零件代碼及其數(shù)量。

      SELECT PNO, QTY

      FROM V_SPJ;

      (2)找出供應(yīng)商S1的供應(yīng)情況。

      SELECT PNO, QTY /* S1供應(yīng)三建工程的零件號(hào)和對(duì)應(yīng)的數(shù)量*/

      FROM V_SPJ

      WHERE SNO='S1';

      關(guān)系系統(tǒng)及其優(yōu)化

      一、選擇題

      1.概念模型是現(xiàn)實(shí)世界的第一層抽象,這一類最著名的模型是()。

      A.層次模型 B.關(guān)系模型 C.網(wǎng)狀模型 D.實(shí)體-關(guān)系模型

      2.區(qū)分不同實(shí)體的依據(jù)是()。

      A.名稱 B.屬性 C.對(duì)象 D.概念

      3.關(guān)系數(shù)據(jù)模型是目前最重要的一種數(shù)據(jù)模型,它的三個(gè)要素分別為()。

      A.實(shí)體完整、參照完整、用戶自定義完整

      B.數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作、完整性約束

      C.數(shù)據(jù)增加、數(shù)據(jù)修改、數(shù)據(jù)查詢

      D.外模式、模式、內(nèi)模式

      4.在()中一個(gè)結(jié)點(diǎn)可以有多個(gè)雙親,節(jié)點(diǎn)之間可以有多種聯(lián)系。

      A.網(wǎng)狀模型 B.關(guān)系模型

      C.層次模型 D.以上都有

      5.()的存取路徑對(duì)用戶透明,從而具有更高的數(shù)據(jù)獨(dú)立性、更好的安全保密性,也簡(jiǎn)化了程序員的工作和數(shù)據(jù)庫(kù)開發(fā)建立的工作。

      A.網(wǎng)狀模型 B.關(guān)系模型

      D.層次模型 D.以上都有

      6.在關(guān)系數(shù)據(jù)庫(kù)中,要求基本關(guān)系中所有的主屬性上不能有空值,其遵守的約束規(guī)則是()。

      A.數(shù)據(jù)依賴完整性規(guī)則 B.用戶定義完整性規(guī)則

      C.實(shí)體完整性規(guī)則 D.域完整性規(guī)則

      選擇題參考答案:(1)D(2)B(3)B(4)A(5)B(6)C

      二、簡(jiǎn)答題

      1.試述關(guān)系模型的三個(gè)組成部分。

      答:關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束三部分組成。

      2.試述關(guān)系數(shù)據(jù)語(yǔ)言的特點(diǎn)和分類。

      答:關(guān)系數(shù)據(jù)語(yǔ)言可以分為三類:

      關(guān)系代數(shù)語(yǔ)言 例如ISBL

      關(guān)系演算語(yǔ)言(元組關(guān)系演算語(yǔ)言 例如APLHA,QUEL 和 域關(guān)系演算語(yǔ)言 例如QBE)

      具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語(yǔ)言 例如SQL

      這些關(guān)系數(shù)據(jù)語(yǔ)言的共同特點(diǎn)是,具有完備的表達(dá)能力,是非過(guò)程化的集合操作語(yǔ)言,功能強(qiáng),能夠嵌入高級(jí)語(yǔ)言中使用。

      3.定義并理解下列術(shù)語(yǔ),說(shuō)明它們之間的聯(lián)系與區(qū)別:

      (1)域,關(guān)系,元組,屬性

      答: 域:域是一組具有相同數(shù)據(jù)類型的值的集合。

      關(guān)系:在域D1,D2,?,Dn上笛卡爾積D1×D2×?×Dn的子集稱為關(guān)系,表示為

      R(D1,D2,?,Dn)

      元組:關(guān)系中的每個(gè)元素是關(guān)系中的元組。

      屬性:關(guān)系也是一個(gè)二維表,表的每行對(duì)應(yīng)一個(gè)元組,表的每列對(duì)應(yīng)一個(gè)域。由于域可

      以相同,為了加以區(qū)分,必須對(duì)每列起一個(gè)名字,稱為屬性(Attribute)。

      (2)主碼,候選碼,外部碼

      答: 候選碼:若關(guān)系中的某一屬性組的值能唯一地標(biāo)識(shí)一個(gè)元組,則稱該屬性組為候選碼(Candidate key)。

      主碼:若一個(gè)關(guān)系有多個(gè)候選碼,則選定其中一個(gè)為主碼(Primary key)。

      外部碼:設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系R的碼,如果F與基本關(guān)系S的主碼Ks相對(duì)應(yīng),則稱F是基本關(guān)系R的外部碼(Foreign key),簡(jiǎn)稱外碼。

      基本關(guān)系R稱為參照關(guān)系(Referencing relation),基本關(guān)系S稱為被參照關(guān)系(Referenced relation)或目標(biāo)關(guān)系(Target relation)。關(guān)系R和S可以是相同的關(guān)系。

      (3)關(guān)系模式,關(guān)系,關(guān)系數(shù)據(jù)庫(kù)

      關(guān)系模式:關(guān)系的描述稱為關(guān)系模式(Relation Schema)。它可以形式化地表示為:

      R(U,D,dom,F(xiàn))

      其中R為關(guān)系名,U為組成該關(guān)系的屬性名集合,D為屬性組U中屬性所來(lái)自的域,dom為屬性向域的映象集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集合。

      關(guān)系:在域D1,D2,?,Dn上笛卡爾積D1×D2×?×Dn的子集稱為關(guān)系,表示為

      R(D1,D2,?,Dn)

      關(guān)系是關(guān)系模式在某一時(shí)刻的狀態(tài)或內(nèi)容。關(guān)系模式是靜態(tài)的、穩(wěn)定的,而關(guān)系是動(dòng)態(tài)的、隨時(shí)間不斷變化的,因?yàn)殛P(guān)系操作在不斷地更新著數(shù)據(jù)庫(kù)中的數(shù)據(jù)。

      關(guān)系數(shù)據(jù)庫(kù):關(guān)系數(shù)據(jù)庫(kù)也有型和值之分。關(guān)系數(shù)據(jù)庫(kù)的型也稱為關(guān)系數(shù)據(jù)庫(kù)模式,是對(duì)關(guān)系數(shù)據(jù)庫(kù)的描述,它包括若干域的定義以及在這些域上定義的若干關(guān)系模式。關(guān)系數(shù)據(jù)庫(kù)的值是這些關(guān)系模式在某一時(shí)刻對(duì)應(yīng)的關(guān)系的集合,通常就稱為關(guān)系數(shù)據(jù)庫(kù)。

      4.試述關(guān)系模型的完整性規(guī)則。在參照完整性中,為什么外部碼屬性的值也可以為空?什么情況下才可以為空?

      答: 關(guān)系模型的完整性規(guī)則是對(duì)關(guān)系的某種約束條件。關(guān)系模型中可以有三類完整性約束:實(shí)體完整性、參照完整性和用戶定義的完整性。

      其中實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,被稱作是關(guān)系的兩個(gè)不變性,應(yīng)該由關(guān)系系統(tǒng)自動(dòng)支持。

      1)實(shí)體完整性規(guī)則:若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。

      2)參照完整性規(guī)則:若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對(duì)應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對(duì)于R中每個(gè)元組在F上的值必

      須為: ? 或者取空值(F的每個(gè)屬性值均為空值);

      ? 或者等于S中某個(gè)元組的主碼值。

      3)用戶定義的完整性是針對(duì)某一具體關(guān)系數(shù)據(jù)庫(kù)的約束條件。它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語(yǔ)義要求。

      在參照完整性中,外部碼屬性的值可以為空,它表示該屬性的值尚未確定。但前提條件是該外部碼屬性不是其所在關(guān)系的主屬性。

      例如,在下面的“學(xué)生”表中,“專業(yè)號(hào)”是一個(gè)外部碼,不是學(xué)生表的主屬性,可以為空。其語(yǔ)義是,該學(xué)生的專業(yè)尚未確定。

      學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡)

      專業(yè)(專業(yè)號(hào),專業(yè)名)

      而在下面的“選修”表中的“課程號(hào)”雖然也是一個(gè)外部碼屬性,但它又是“選修”表的主屬性,所以不能為空。因?yàn)殛P(guān)系模型必須滿足實(shí)體完整性。

      課程(課程號(hào),課程名,學(xué)分)

      選修(學(xué)號(hào),課程號(hào),成績(jī))

      5.等值連接與自然連接的區(qū)別是什么?

      答:連接運(yùn)算中有兩種最為重要也最為常用的連接,一種是等值連接(equi-join),另一種是自然連接(Natural join)。

      θ為“=”的連接運(yùn)算稱為等值連接。

      它是從關(guān)系R與S的笛卡爾積中選取A、B屬性值相等的那些元組。即等值連接為:

      R A=B S = { tr ts| tr∈R ∧ ts∈S ∧ tr[A] = ts[B] }

      自然連接(Natural join)是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且要在結(jié)果中把重復(fù)的屬性去掉。即若R和S具有相同的屬性組B,則自然連接可記作:

      R S = { tr ts| tr∈R ∧ ts∈S ∧ tr[B] = ts[B] }

      關(guān)系數(shù)據(jù)理論

      一、選擇題

      1.為了設(shè)計(jì)出性能較優(yōu)的關(guān)系模式,必須進(jìn)行規(guī)范化,規(guī)范化主要的理論依據(jù)是()。

      A.關(guān)系規(guī)范化理論 B.關(guān)系代數(shù)理論

      C.?dāng)?shù)理邏輯 D.關(guān)系運(yùn)算理論

      2.規(guī)范化理論是關(guān)系數(shù)據(jù)庫(kù)進(jìn)行邏輯設(shè)計(jì)的理論依據(jù),根據(jù)這個(gè)理論,關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系必須滿足:每一個(gè)屬性都是()。

      A.長(zhǎng)度不變的 B.不可分解的 C.互相關(guān)聯(lián)的 D.互不相關(guān)的

      3.已知關(guān)系模式R(A,B,C,D,E)及其上的函數(shù)相關(guān)性集合F={A→D,B→C,E→A },該關(guān)系模式的候選關(guān)鍵字是()。

      A.AB B.BE

      C.CD D.DE

      4.設(shè)學(xué)生關(guān)系S(SNO,SNAME,SSEX,SAGE,SDPART)的主鍵為SNO,學(xué)生選課關(guān)系SC(SNO,CNO,SCORE)的主鍵為SNO和CNO,則關(guān)系R(SNO,CNO,SSEX,SAGE,SDPART,SCORE)的主鍵為SNO和CNO,其滿足()。

      A.1NF B.2NF C.3NF D.BCNF

      5.設(shè)有關(guān)系模式W(C,P,S,G,T,R),其中各屬性的含義是:C表示課程,P表示教師,S表示學(xué)生,G表示成績(jī),T表示時(shí)間,R表示教室,根據(jù)語(yǔ)義有如下數(shù)據(jù)依賴集:D={ C→P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },關(guān)系模式W的一個(gè)關(guān)鍵字是()。

      A.(S,C)B.(T,R)

      C.(T,P)D.(T,S)

      6.關(guān)系模式中,滿足2NF的模式()。

      A.可能是1NF B.必定是1NF

      C.必定是3NF

      D.必定是BCNF

      7.關(guān)系模式R中的屬性全是主屬性,則R的最高范式必定是()。

      A.1NF B.2NF

      C.3NF D.BCNF

      8.消除了部分函數(shù)依賴的1NF的關(guān)系模式,必定是()。

      A.1NF B.2NF

      C.3NF D.BCNF

      9.如果A->B ,那么屬性A和屬性B的聯(lián)系是()。

      A.一對(duì)多

      B.多對(duì)一

      C.多對(duì)多 D.以上都不是

      10.關(guān)系模式的候選關(guān)鍵字可以有1個(gè)或多個(gè),而主關(guān)鍵字有()。

      A.多個(gè)

      B.0個(gè)

      C.1個(gè)

      D.1個(gè)或多個(gè)

      11.候選關(guān)鍵字的屬性可以有()。

      A.多個(gè)

      B.0個(gè)

      C.1個(gè)

      D.1個(gè)或多個(gè)

      12.關(guān)系模式的任何屬性()。

      A.不可再分

      B.可以再分

      C.命名在關(guān)系模式上可以不唯一

      D.以上都不是

      13.設(shè)有關(guān)系模式W(C,P,S,G,T,R),其中各屬性的含義是:C表示課程,P表示教師,S表示學(xué)生,G表示成績(jī),T表示時(shí)間,R表示教室,根據(jù)語(yǔ)義有如下數(shù)據(jù)依賴集:D={ C→P,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R },若將關(guān)系模式W分解為三個(gè)關(guān)系模式W1(C,P),W2(S,C,G),W2(S,T,R,C),則W1的規(guī)范化程序最高達(dá)到()。

      A.1NF B.2NF

      C.3NF D.BCNF

      14.在關(guān)系數(shù)據(jù)庫(kù)中,任何二元關(guān)系模式的最高范式必定是()。

      A.1NF B.2NF

      C.3NF D.BCNF

      15.在關(guān)系規(guī)范式中,分解關(guān)系的基本原則是()。

      I.實(shí)現(xiàn)無(wú)損連接

      II.分解后的關(guān)系相互獨(dú)立

      III.保持原有的依賴關(guān)系

      A.Ⅰ和Ⅱ

      B.Ⅰ和Ⅲ

      C.Ⅰ

      D.Ⅱ

      16.不能使一個(gè)關(guān)系從第一范式轉(zhuǎn)化為第二范式的條件是()。

      A.每一個(gè)非屬性都完全函數(shù)依賴主屬性

      B.每一個(gè)非屬性都部分函數(shù)依賴主屬性

      C.在一個(gè)關(guān)系中沒(méi)有非屬性存在 D.主鍵由一個(gè)屬性構(gòu)成17.任何一個(gè)滿足2NF但不滿足3NF的關(guān)系模式都不存在()。

      A.主屬性對(duì)鍵的部分依賴

      B.非主屬性對(duì)鍵的部分依賴

      C.主屬性對(duì)鍵的傳遞依賴

      D.非主屬性對(duì)鍵的傳遞依賴

      18.設(shè)數(shù)據(jù)庫(kù)關(guān)系模式R=(A,B,C,D,E),有下列函數(shù)依賴:A→BC,D→E,C→D;下述對(duì)R的分解中,哪些分解是R的無(wú)損連接分解()。

      I.(A,B,C)(C,D,E)

      II.(A,B)(A,C,D,E)

      III.(A,C)(B,C,D,E)

      IV.(A,B)(C,D,E)

      A.只有Ⅳ

      B.Ⅰ和Ⅱ C.Ⅰ、Ⅱ和Ⅲ

      D.都不是

      19.設(shè)U是所有屬性的集合,X、Y、Z都是U的子集,且Z=U-X-Y。下面關(guān)于多值依賴的敘述中,不正確的是()。

      A.若X→→Y,則X→→Z

      B.若X→Y,則X→→Y C.若X→→Y,且Y′∈Y,則X→→Y′

      D.若Z=∮,則X→→Y

      20.若關(guān)系模式R(U,F(xiàn))屬于3NF,則()。

      A.一定屬于BCNF

      B.消除了插入的刪除異常

      C.仍存在一定的插入和刪除異常

      D.屬于BCNF且消除了插入和刪除異常

      21.下列說(shuō)法不正確的是()。

      A.任何一個(gè)包含兩個(gè)屬性的關(guān)系模式一定滿足3NF

      B.任何一個(gè)包含兩個(gè)屬性的關(guān)系模式一定滿足BCNF

      C.任何一個(gè)包含三個(gè)屬性的關(guān)系模式一定滿足3NF

      D.任何一個(gè)關(guān)系模式都一定有碼

      22.設(shè)關(guān)系模式R(A,B,C),F(xiàn)是R上成立的FD集,F(xiàn)={B→C},則分解P={AB,BC}相對(duì)于F()。

      A.是無(wú)損聯(lián)接,也是保持FD的分解

      B.是無(wú)損聯(lián)接,也不保持FD的分解

      C.不是無(wú)損聯(lián)接,但保持FD的分解

      D.既不是無(wú)損聯(lián)接,也不保持FD的分解

      23.關(guān)系數(shù)據(jù)庫(kù)規(guī)范化是為了解決關(guān)系數(shù)據(jù)庫(kù)中()的問(wèn)題而引入的。

      A.插入、刪除和數(shù)據(jù)冗余

      B.提高查詢速度

      C.減少數(shù)據(jù)操作的復(fù)雜性

      D.保證數(shù)據(jù)的安全性和完整性

      24.關(guān)系的規(guī)范化中,各個(gè)范式之間的關(guān)系是()。

      A.1NF∈2NF∈3NF

      B.3NF∈2NF∈1NF

      C.1NF=2NF=3NF

      D.1NF∈2NF∈BCNF∈3NF

      25.數(shù)據(jù)庫(kù)中的冗余數(shù)據(jù)是指可()的數(shù)據(jù)。

      A.容易產(chǎn)生錯(cuò)誤

      B.容易產(chǎn)生沖突

      C.無(wú)關(guān)緊要

      D.由基本數(shù)據(jù)導(dǎo)出

      26.學(xué)生表(id,name,sex,age,depart_id,depart_name),存在函數(shù)依賴是id→name,sex,age,depart_id;dept_id→dept_name,其滿足()。

      A.1NF B.2NF

      C.3NF

      D.BCNF

      27.設(shè)有關(guān)系模式R(S,D,M),函數(shù)依賴集:F={S→D,D→M},則關(guān)系模式R的規(guī)范化程度最高達(dá)到()。

      A.1NF B.2NF

      C.3NF

      D.BCNF 28.設(shè)有關(guān)系模式R(A,B,C,D),其數(shù)據(jù)依賴集:F={(A,B)→C,C→D},則關(guān)系模式R的規(guī)范化程度最高達(dá)到()。

      A.1NF B.2NF

      C.3NF

      D.BCNF

      29.下列關(guān)于函數(shù)依賴的敘述中,哪一條是不正確的()。

      A.由X→Y,Y→Z,則X→YZ

      B.由X→YZ,則X→Y,Y→Z

      C.由X→Y,WY→Z,則XW→Z

      D.由X→Y,Z∈Y,則X→Z

      30.X→Y,當(dāng)下列哪一條成立時(shí),稱為平凡的函數(shù)依賴()。

      A.X∈Y B.Y∈X

      C.X∩Y=∮

      D.X∩Y≠∮

      31.關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論指出:關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系應(yīng)該滿足一定的要求,最起碼的要求是達(dá)到1NF,即滿足()。

      A.每個(gè)非主鍵屬性都完全依賴于主鍵屬性

      B.主鍵屬性唯一標(biāo)識(shí)關(guān)系中的元組

      C.關(guān)系中的元組不可重復(fù)

      D.每個(gè)屬性都是不可分解的32.根據(jù)關(guān)系數(shù)據(jù)庫(kù)規(guī)范化理論,關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系要滿足第一范式,部門(部門號(hào),部門名,部門成員,部門總經(jīng)理)關(guān)系中,因哪個(gè)屬性而使它不滿足第一范式()。

      A.部門總經(jīng)理

      B.部門成員

      C.部門名 D.部門號(hào)

      33.有關(guān)系模式A(C,T,H,R,S),其中各屬性的含義是: C:課程 T:教員 H:上課時(shí)間 R:教室 S:學(xué)生。根據(jù)語(yǔ)義有如下函數(shù)依賴集:F={C→T,(H,R)→C,(H,T)RC,(H,S)→R}

      (1)關(guān)系模式A的碼是()。

      A.C

      B.(H,S)

      C.(H,R)

      D.(H,T)

      (2)關(guān)系模式A的規(guī)范化程度最高達(dá)到()。

      A.1NF

      B.2NF C.3NF D.BCNF

      (3)現(xiàn)將關(guān)系模式A分解為兩個(gè)關(guān)系模式A1(C,T),A2(H,R,S),則其中A1的規(guī)范化程度達(dá)到()。

      A.1NF B.2NF

      C.3NF

      D.BCNF

      參考答案:(1)A(2)B(3)B(4)A(5)D(6)B(7)C(8)B(9)B(10)C(11)D(12)A(13)D(14)D(15)B(16)B(17)D(18)B(19)C(20)C(21)C(22)A(23)A(24)A(25)D(26)B(27)B(28)B(29)B(30)B(31)D(32)B(33)B B D

      二、簡(jiǎn)答題

      1.理解并給出下列術(shù)語(yǔ)的定義:

      函數(shù)依賴、部分函數(shù)依賴、完全函數(shù)依賴、候選碼、主碼、外碼、全碼。

      解析:解答本題不能僅僅把《概論》上的定義寫下來(lái)。關(guān)鍵是真正理解和運(yùn)用這些概念。

      答: 函數(shù)依賴:設(shè)R(U)是一個(gè)關(guān)系模式,U是R的屬性集合,X和Y是U的子集。對(duì)于R(U)的任意一個(gè)可能的關(guān)系r,如果r中不存在兩個(gè)元組,它們?cè)赬上的屬性值相同,而在Y上的屬性值不同,則稱“X函數(shù)確定Y”或“Y函數(shù)依賴于X”,記作X→Y。

      解析:1)函數(shù)依賴是最基本的一種數(shù)據(jù)依賴,也是最重要的一種數(shù)據(jù)依賴。

      2)函數(shù)依賴是屬性之間的一種聯(lián)系,體現(xiàn)在屬性值是否相等。由上面的定義可以知道,如果X→Y,則r中任意兩個(gè)元組,若它們?cè)赬上的屬性值相同,那么在Y上的屬性值一定也相同。

      3)我們要從屬性間實(shí)際存在的語(yǔ)義來(lái)確定他們之間的函數(shù)依賴,即函數(shù)依賴反映了(描述了)現(xiàn)實(shí)世界的一種語(yǔ)義。

      4)函數(shù)依賴不是指關(guān)系模式R的在某個(gè)時(shí)刻的關(guān)系(值)滿足的約束條件,而是指R任何時(shí)刻的一切關(guān)系均要滿足的約束條件。

      答: 完全函數(shù)依賴、部分函數(shù)依賴:在R(U)中,如果X→Y,并且對(duì)于X的任何一個(gè)真子集X,都有X′→Y,則稱Y對(duì)X完全函數(shù)依賴;若X→Y,但Y不完全函數(shù)依賴于X,則稱Y對(duì)X部分函數(shù)依賴;

      候選碼、主碼: 設(shè)K為R(U,F(xiàn))中的屬性或?qū)傩越M合,若K → U則K為R的候選碼。若候選碼多于一個(gè),則選定其中的一個(gè)為主碼。

      答: 外碼:關(guān)系模式R中屬性或?qū)傩越MX并非R的碼,但X是另一個(gè)關(guān)系模式的碼,則稱X是R的外部碼也稱外碼。

      全碼:整個(gè)屬性組是碼,稱為全碼(All-key)。

      2.建立一個(gè)關(guān)于系、學(xué)生、班級(jí)、學(xué)會(huì)等諸信息的關(guān)系數(shù)據(jù)庫(kù)。

      描述學(xué)生的屬性有:學(xué)號(hào)、姓名、出生年月、系名、班號(hào)、宿舍區(qū)。

      描述班級(jí)的屬性有:班號(hào)、專業(yè)名、系名、人數(shù)、入校年份。

      描述系的屬性有:系名、系號(hào)、系辦公室地點(diǎn)、人數(shù)。

      描述學(xué)會(huì)的屬性有:學(xué)會(huì)名、成立年份、地點(diǎn)、人數(shù)。

      有關(guān)語(yǔ)義如下:一個(gè)系有若干專業(yè),每個(gè)專業(yè)每年只招一個(gè)班,每個(gè)班有若干學(xué)生。一個(gè)系的學(xué)生住在同一宿舍區(qū)。每個(gè)學(xué)生可參加若干學(xué)會(huì),每個(gè)學(xué)會(huì)有若干學(xué)生。學(xué)生參加某學(xué)會(huì)有一個(gè)入會(huì)年份。

      請(qǐng)給出關(guān)系模式,寫出每個(gè)關(guān)系模式的極小函數(shù)依賴集,指出是否存在傳遞函數(shù)依賴,對(duì)于函數(shù)依賴左部是多屬性的情況討論函數(shù)依賴是完全函數(shù)依賴,還是部分函數(shù)依賴。

      指出各關(guān)系的候選碼、外部碼,有沒(méi)有全碼存在?

      答:關(guān)系模式: 學(xué)生S(S#,SN,SB,DN,C#,SA)

      班級(jí)C(C#,CS,DN,CNUM,CDATE)

      系 D(D#,DN,DA,DNUM)

      學(xué)會(huì)P(PN,DATE1,PA,PNUM)

      學(xué)生--學(xué)會(huì)SP(S#,PN,DATE2)

      其中,S#—學(xué)號(hào),SN—姓名,SB—出生年月,SA—宿舍區(qū)

      C#—班號(hào),CS—專業(yè)名,CNUM—班級(jí)人數(shù),CDATE—入校年份

      D#—系號(hào),DN—系名,DA—系辦公室地點(diǎn),DNUM—系人數(shù)

      PN—學(xué)會(huì)名,DATE1—成立年月,PA—地點(diǎn),PNUM—學(xué)會(huì)人數(shù),DATE2—入會(huì)年份

      每個(gè)關(guān)系模式的極小函數(shù)依賴集:

      S:S#→SN,S#→SB,S#→C#,C#→DN,DN→SA

      C:C#→CS,C#→CNUM,C#→CDATE,CS→DN,(CS,CDATE)→C#

      D:D#→DN,DN→D#,D#→DA,D#→DNUM

      P:PN→DATE1,PN→PA,PN→PNUM

      SP:(S#,PN)→DATE2

      S中存在傳遞函數(shù)依賴: S#→DN, S#→SA, C#→SA

      C中存在傳遞函數(shù)依賴:C#→DN

      (S#,PN)→DATE2 和(CS,CDATE)→C# 均為SP中的函數(shù)依賴,是完全函數(shù)依賴

      關(guān)系 候選碼 外部碼 全碼

      S S# C#,DN 無(wú)

      C C#,(CS,CDATE)DN 無(wú)

      D D#和DN 無(wú) 無(wú)

      P PN 無(wú) 無(wú)

      SP(S#,PN)S#,PN 無(wú)

      3.試由Armostrong公理系統(tǒng)推導(dǎo)出下面三條推理規(guī)則:

      (1)合并規(guī)則:若X→Z,X→Y,則有X→YZ

      (2)偽傳遞規(guī)則:由X→Y,WY→Z有XW→Z

      (3)分解規(guī)則:X→Y,Z 包含于 Y,有X→Z

      證:(1)已知X→Z,由增廣律知XY→YZ,又因?yàn)閄→Y,可得XX→XY→YZ,最后根據(jù)傳遞律得X→YZ。

      (2)已知X→Y,據(jù)增廣律得XW→WY,因?yàn)閃Y→Z,所以XW→WY→Z,通過(guò)傳遞律可知XW→Z。

      (3)已知Z 包含于 Y,根據(jù)自反律知Y→Z,又因?yàn)閄→Y,所以由傳遞律可得X→Z。

      4.下面的結(jié)論哪些是正確的,哪些是錯(cuò)誤的?對(duì)于錯(cuò)誤的結(jié)論請(qǐng)給出理由或給出一個(gè)反例說(shuō)明之。

      (1)任何一個(gè)二目關(guān)系都是屬于3NF的?!?/p>

      (2)任何一個(gè)二目關(guān)系都是屬于BCNF的?!?/p>

      (3)任何一個(gè)二目關(guān)系都是屬于4NF的?!?/p>

      (5)若R.A→R.B,R.B→R.C,則R.A→R.C √

      (6)若R.A→R.B,R.A→R.C,則R.A→R.(B, C)√

      (7)若R.B→R.A,R.C→R.A,則R.(B, C)→R.A √

      (8)若R.(B, C)→R.A,則R.B→R.A,R.C→R.A ×

      反例:關(guān)系模式 SC(S#,C#,G)(S#,C#)→G,但是S# → G,C#→G

      數(shù)據(jù)庫(kù)設(shè)計(jì)

      一、選擇題

      1.數(shù)據(jù)流程圖是用于描述結(jié)構(gòu)化方法中()階段的工具。

      A.概要設(shè)計(jì)

      B.可行性分析

      C.程序編碼

      D.需求分析

      2.數(shù)據(jù)庫(kù)設(shè)計(jì)中,用E-R圖賴描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,這是數(shù)據(jù)庫(kù)設(shè)計(jì)的()。

      A.需求分析階段

      B.邏輯設(shè)計(jì)階段

      C.概念設(shè)計(jì)階段

      D.物理設(shè)計(jì)階段

      3.在數(shù)據(jù)庫(kù)設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過(guò)程屬于()。

      A.需求分析階段

      B.邏輯設(shè)計(jì)階段

      C.概念設(shè)計(jì)階段

      D.物理設(shè)計(jì)階段

      4.子模式DDL是用來(lái)描述()。

      A.數(shù)據(jù)庫(kù)的總體邏輯結(jié)構(gòu)

      B.數(shù)據(jù)庫(kù)的局部邏輯結(jié)構(gòu)

      C.數(shù)據(jù)庫(kù)的物理存儲(chǔ)結(jié)構(gòu)

      D.數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)

      5.數(shù)據(jù)庫(kù)設(shè)計(jì)的概念設(shè)計(jì)階段,表示概念結(jié)構(gòu)的常用方法和描述工具是()。

      A.層次分析法和層次結(jié)構(gòu)圖

      B.數(shù)據(jù)流程分析法和數(shù)據(jù)流程圖

      C.實(shí)體聯(lián)系法和實(shí)體聯(lián)系圖

      D.結(jié)構(gòu)分析法和模塊結(jié)構(gòu)圖

      6.在E-R模型向關(guān)系模型轉(zhuǎn)換時(shí),M:N的聯(lián)系轉(zhuǎn)換為關(guān)系模式時(shí),其關(guān)鍵字是()。

      A.M端實(shí)體的關(guān)鍵字

      B.N端實(shí)體的關(guān)鍵字

      C.M、N端實(shí)體的關(guān)鍵字組合D.重新選取其他屬性

      7.某學(xué)校規(guī)定,每一個(gè)班級(jí)最多有50名學(xué)生,至少有10名學(xué)生;每一名學(xué)生必須屬于一個(gè)班級(jí)。在班級(jí)與學(xué)生實(shí)體的聯(lián)系中,學(xué)生實(shí)體的基數(shù)是()。

      A.(0,1)

      B.(1,1)

      C.(1,10)

      D.(10,50)

      8.在關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)中,設(shè)計(jì)關(guān)系模式是數(shù)據(jù)庫(kù)設(shè)計(jì)中()階段的任務(wù)。

      A.邏輯設(shè)計(jì)階段

      B.概念設(shè)計(jì)階段

      C.物理設(shè)計(jì)階段

      D.需求分析階段

      9.關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論主要解決的問(wèn)題是()。

      A.如何構(gòu)造合適的數(shù)據(jù)邏輯結(jié)構(gòu)

      B.如何構(gòu)造合適的數(shù)據(jù)物理結(jié)構(gòu)

      C.如何構(gòu)造合適的應(yīng)用程序界面

      D.如何控制不同用戶的數(shù)據(jù)操作權(quán)限

      10.數(shù)據(jù)庫(kù)設(shè)計(jì)可劃分為七個(gè)階段,每個(gè)階段都有自己的設(shè)計(jì)內(nèi)容,“為哪些關(guān)系,在哪些屬性上、鍵什么樣的索引”這一設(shè)計(jì)內(nèi)容應(yīng)該屬于()設(shè)計(jì)階段。

      A.概念設(shè)計(jì)

      B.邏輯設(shè)計(jì)

      C.物理設(shè)計(jì)

      D.全局設(shè)計(jì)

      11.假設(shè)設(shè)計(jì)數(shù)據(jù)庫(kù)性能用“開銷”,即時(shí)間、空間及可能的費(fèi)用來(lái)衡量,則在數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)生存期中存在很多開銷。其中,對(duì)物理設(shè)計(jì)者來(lái)說(shuō),主要考慮的是()。

      A.規(guī)劃開銷

      B.設(shè)計(jì)開銷

      C.操作開銷

      D.維護(hù)開銷

      12.數(shù)據(jù)庫(kù)物理設(shè)計(jì)完成后,進(jìn)入數(shù)據(jù)庫(kù)實(shí)施階段,下述工作中,()一般不屬于實(shí)施階段的工作。

      A.建立庫(kù)結(jié)構(gòu)

      B.系統(tǒng)調(diào)試

      C.加載數(shù)據(jù)

      D.擴(kuò)充功能

      13.從ER圖導(dǎo)出關(guān)系模型時(shí),如果實(shí)體間的聯(lián)系是M:N的,下列說(shuō)法中正確的是()。

      A.將N方關(guān)鍵字和聯(lián)系的屬性納入M方的屬性中 B.將M方關(guān)鍵字和聯(lián)系的屬性納入N方的屬性中

      C.增加一個(gè)關(guān)系表示聯(lián)系,其中納入M方和N方的關(guān)鍵字

      D.在M方屬性和N方屬性中均增加一個(gè)表示級(jí)別的屬性

      14.在ER模型中,如果有3個(gè)不同的實(shí)體集,3個(gè)M:N聯(lián)系,根據(jù)ER模型轉(zhuǎn)換為關(guān)系模型的規(guī)則,轉(zhuǎn)換為關(guān)系的數(shù)目是()。

      A.4 B.5

      C.6 D.7

      參考答案:

      (1)D(2)C(3)B(4)B(5)C(6)C(7)B(8)A(9)A(10)C(11)C(12)D(13)C(14)C

      二、簡(jiǎn)答題

      1.試述數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程。

      *解析:希望同學(xué)能夠認(rèn)真閱讀《概論》的內(nèi)容,了解并掌握數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程。這里只概要列出數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程的六個(gè)階段:

      1)需求分析

      2)概念結(jié)構(gòu)設(shè)計(jì)

      3)邏輯結(jié)構(gòu)設(shè)計(jì)

      4)數(shù)據(jù)庫(kù)物理設(shè)計(jì)

      5)數(shù)據(jù)庫(kù)實(shí)施

      6)數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)

      這是一個(gè)完整的實(shí)際數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng)的設(shè)計(jì)過(guò)程。不僅包括設(shè)計(jì)數(shù)據(jù)庫(kù)本身,還包括數(shù)據(jù)庫(kù)的實(shí)施、數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)。

      設(shè)計(jì)一個(gè)完善的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)往往是上述六個(gè)階段的不斷反復(fù)。

      2.試述數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程的各個(gè)階段上的設(shè)計(jì)描述。

      *解析:這是進(jìn)一步了解數(shù)據(jù)庫(kù)設(shè)計(jì)的具體內(nèi)容。設(shè)計(jì)描述是指在各個(gè)階段體現(xiàn)設(shè)計(jì)內(nèi)容,描述設(shè)計(jì)結(jié)果的各種文檔、程序。

      答:各階段的設(shè)計(jì)要點(diǎn)如下:

      1)需求分析:準(zhǔn)確了解與分析用戶需求(包括數(shù)據(jù)與處理)。

      2)概念結(jié)構(gòu)設(shè)計(jì):通過(guò)對(duì)用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型。

      3)邏輯結(jié)構(gòu)設(shè)計(jì):將概念結(jié)構(gòu)轉(zhuǎn)換為某個(gè)DBMS所支持的數(shù)據(jù)模型,并對(duì)其進(jìn)行優(yōu)化。

      4)數(shù)據(jù)庫(kù)物理設(shè)計(jì):為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲(chǔ)結(jié)構(gòu)和存取方法)。

      5)數(shù)據(jù)庫(kù)實(shí)施:設(shè)計(jì)人員運(yùn)用DBMS提供的數(shù)據(jù)語(yǔ)言、工具及宿主語(yǔ)言,根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果建立數(shù)據(jù)庫(kù),編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫(kù),并進(jìn)行試運(yùn)行。

      6)數(shù)據(jù)庫(kù)運(yùn)行和維護(hù):在數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行過(guò)程中對(duì)其進(jìn)行評(píng)價(jià)、調(diào)整與修改。

      3.試述數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中結(jié)構(gòu)設(shè)計(jì)部分形成的數(shù)據(jù)庫(kù)模式。

      答: 數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)的不同階段形成數(shù)據(jù)庫(kù)的各級(jí)模式,即:

      在概念設(shè)計(jì)階段形成獨(dú)立于機(jī)器特點(diǎn),獨(dú)立于各個(gè)DBMS產(chǎn)品的概念模式,在本篇中就是E-R圖;

      在邏輯設(shè)計(jì)階段將E-R圖轉(zhuǎn)換成具體的數(shù)據(jù)庫(kù)產(chǎn)品支持的數(shù)據(jù)模型,如關(guān)系模型,形成數(shù)據(jù)庫(kù)邏輯模式;然后在基本表的基礎(chǔ)上再建立必要的視圖(View),形成數(shù)據(jù)的外模式;

      在物理設(shè)計(jì)階段,根據(jù)DBMS特點(diǎn)和處理的需要,進(jìn)行物理存儲(chǔ)安排,建立索引,形成數(shù)據(jù)庫(kù)內(nèi)模式。

      概念模式是面向用戶和設(shè)計(jì)人員的,屬于概念模型的層次;邏輯模式、外模式、內(nèi)模式是DBMS支持的模式,屬于數(shù)據(jù)模型的層次??梢栽贒BMS中加以描述和存儲(chǔ)。

      4.試述數(shù)據(jù)庫(kù)設(shè)計(jì)的特點(diǎn)。

      答: 數(shù)據(jù)庫(kù)設(shè)計(jì)既是一項(xiàng)涉及多學(xué)科的綜合性技術(shù)又是一項(xiàng)龐大的工程項(xiàng)目。其主要特點(diǎn)有:

      1)數(shù)據(jù)庫(kù)建設(shè)是硬件、軟件和干件(技術(shù)與管理的界面)的結(jié)合。

      2)從軟件設(shè)計(jì)的技術(shù)角度看,數(shù)據(jù)庫(kù)設(shè)計(jì)應(yīng)該和應(yīng)用系統(tǒng)設(shè)計(jì)相結(jié)合,也就是說(shuō),整個(gè)設(shè)計(jì)過(guò)程中要把結(jié)構(gòu)(數(shù)據(jù))設(shè)計(jì)和行為(處理)設(shè)計(jì)密切結(jié)合起來(lái)。

      5.需求分析階段的設(shè)計(jì)目標(biāo)是什么?調(diào)查的內(nèi)容是什么?

      答: 需求分析階段的設(shè)計(jì)目標(biāo)是通過(guò)詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象(組織、部門、企業(yè)等),充分了解原系統(tǒng)(手工系統(tǒng)或計(jì)算機(jī)系統(tǒng))工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能。

      調(diào)查的內(nèi)容是“數(shù)據(jù)”和“處理”,即獲得用戶對(duì)數(shù)據(jù)庫(kù)的如下要求:

      (1)信息要求。指用戶需要從數(shù)據(jù)庫(kù)中獲得信息的內(nèi)容與性質(zhì)。由信息要求可以導(dǎo)出數(shù)據(jù)要求,即在數(shù)據(jù)庫(kù)中需要存儲(chǔ)哪些數(shù)據(jù)。

      (2)處理要求。指用戶要完成什么處理功能,對(duì)處理的響應(yīng)時(shí)間有什么要求,處理方式是批處理還是聯(lián)機(jī)處理。

      (3)安全性與完整性要求。

      6.數(shù)據(jù)字典的內(nèi)容和作用是什么?

      答:數(shù)據(jù)字典是系統(tǒng)中各類數(shù)據(jù)描述的集合。數(shù)據(jù)字典的內(nèi)容通常包括:數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、處理過(guò)程五個(gè)部分

      其中數(shù)據(jù)項(xiàng)是數(shù)據(jù)的最小組成單位,若干個(gè)數(shù)據(jù)項(xiàng)可以組成一個(gè)數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)字典通過(guò)對(duì)數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)的定義來(lái)描述數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)的邏輯內(nèi)容。

      數(shù)據(jù)字典的作用:

      數(shù)據(jù)字典是關(guān)于數(shù)據(jù)庫(kù)中數(shù)據(jù)的描述,在需求分析階段建立,是下一步進(jìn)行概念設(shè)計(jì)的基礎(chǔ),并在數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中不斷修改、充實(shí)、完善。

      (注意,數(shù)據(jù)庫(kù)設(shè)計(jì)階段形成的數(shù)據(jù)字典與后面講到的數(shù)據(jù)字典不同,后者是DBMS關(guān)于數(shù)據(jù)庫(kù)中數(shù)據(jù)的描述,當(dāng)然兩者是有聯(lián)系的)。

      7.什么是數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)?試述其特點(diǎn)和設(shè)計(jì)策略。

      答:概念結(jié)構(gòu)是信息世界的結(jié)構(gòu),即概念模型,其主要特點(diǎn)是:

      (1)能真實(shí)、充分地反映現(xiàn)實(shí)世界,包括事物和事物之間的聯(lián)系,能滿足用戶對(duì)數(shù)據(jù)的處理要求。是對(duì)現(xiàn)實(shí)世界的一個(gè)真實(shí)模型。

      (2)易于理解,從而可以用它和不熟悉計(jì)算機(jī)的用戶交換意見,用戶的積極參與是數(shù)據(jù)庫(kù)的設(shè)計(jì)成功的關(guān)鍵。

      (3)易于更改,當(dāng)應(yīng)用環(huán)境和應(yīng)用要求改變時(shí),容易對(duì)概念模型修改和擴(kuò)充。

      (4)易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。

      概念結(jié)構(gòu)的設(shè)計(jì)策略通常有四種:

      ? 自頂向下。即首先定義全局概念結(jié)構(gòu)的框架,然后逐步細(xì)化;

      ? 自底向上。即首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來(lái),得到全局概念

      結(jié)構(gòu);

      ? 逐步擴(kuò)張。首先定義最重要的核心概念結(jié)構(gòu),然后向外擴(kuò)充,以滾雪球的方式逐步生

      成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu);

      ? 混合策略。即將自頂向下和自底向上相結(jié)合,用自頂向下策略設(shè)計(jì)一個(gè)全局概念結(jié)構(gòu)的

      框架,以它為骨架集成由自底向上策略中設(shè)計(jì)的各局部概念結(jié)構(gòu)。

      8.什么叫數(shù)據(jù)抽象?試舉例說(shuō)明。

      答: 數(shù)據(jù)抽象是對(duì)實(shí)際的人、物、事和概念進(jìn)行人為處理,抽取所關(guān)心的共同特性,忽略非本質(zhì)的細(xì)節(jié),并把這些特性用各種概念精確地加以描述,這些概念組成了某種模型。

      如分類這種抽象是:定義某一類概念作為現(xiàn)實(shí)世界中一組對(duì)象的類型。這些對(duì)象具有某些共同的特性和行為。它抽象了對(duì)象值和型之間的“is member of”的語(yǔ)義。在E-R模型中,實(shí)體型就是這種抽象。例如在學(xué)校環(huán)境中,李英是老師,表示李英是教師類型中的一員,則教師是實(shí)體型,李英是教師實(shí)體型中的一個(gè)實(shí)體值,具有教師共同的特性和行為:在某個(gè)系某個(gè)專業(yè)教學(xué),講授某些課程,從事某個(gè)方向的科研。

      9.試述數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)的重要性和設(shè)計(jì)步驟。

      答: 重要性:

      數(shù)據(jù)庫(kù)概念設(shè)計(jì)是整個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的關(guān)鍵,將在需求分析階段所得到的應(yīng)用需求首先抽

      象為概念結(jié)構(gòu),以此作為各種數(shù)據(jù)模型的共同基礎(chǔ),從而能更好地、更準(zhǔn)確地用某一DBMS實(shí)現(xiàn)這些需求。

      設(shè)計(jì)步驟:

      概念結(jié)構(gòu)的設(shè)計(jì)方法有多種,其中最經(jīng)常采用的策略是自底向上方法,該方法的設(shè)計(jì)步

      驟通常分為兩步:第1步是抽象數(shù)據(jù)并設(shè)計(jì)局部視圖,第2步是集成局部視圖,得到全局的概念結(jié)構(gòu)

      10.什么是E-R圖?構(gòu)成E-R圖的基本要素是什么?

      答: E-R圖為實(shí)體-聯(lián)系圖,提供了表示實(shí)體型、屬性和聯(lián)系的方法,用來(lái)描述現(xiàn)實(shí)世界的概念模型。

      構(gòu)成E-R圖的基本要素是實(shí)體型、屬性和聯(lián)系,其表示方法為:

      ? 實(shí)體型:用矩形表示,矩形框內(nèi)寫明實(shí)體名;

      ? 屬性:用橢圓形表示,并用無(wú)向邊將其與相應(yīng)的實(shí)體連接起來(lái);

      ? 聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無(wú)向邊分別與有關(guān)實(shí)體連接起來(lái),同時(shí)在無(wú)向邊旁標(biāo)上聯(lián)系的類型(1 : 1,1 : n或m : n)。

      11.為什么要視圖集成?視圖集成的方法是什么?

      答: 在對(duì)數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行概念結(jié)構(gòu)設(shè)計(jì)時(shí)一般采用自底向上的設(shè)計(jì)方法,把繁雜的大系統(tǒng)分解子系統(tǒng)。首先設(shè)計(jì)各個(gè)子系統(tǒng)的局部視圖,然后通過(guò)視圖集成的方式將各子系統(tǒng)有機(jī)的融合起來(lái),綜合成一個(gè)系統(tǒng)的總視圖。這樣設(shè)計(jì)清晰,由簡(jiǎn)到繁。由于數(shù)據(jù)庫(kù)系統(tǒng)是從整體角度看待和描述數(shù)據(jù)的,因此數(shù)據(jù)不再面向某個(gè)應(yīng)用而是整個(gè)系統(tǒng)。因此必須進(jìn)行視圖集成,使得數(shù)據(jù)庫(kù)能被全系統(tǒng)的多個(gè)用戶、多個(gè)應(yīng)用共享使用。

      一般說(shuō)來(lái),視圖集成可以有兩種方式:

      ? 多個(gè)分E-R圖一次集成;

      ? 逐步集成,用累加的方式一次集成兩個(gè)分E-R圖。

      無(wú)論采用哪種方式,每次集成局部E-R圖時(shí)都需要分兩步走:

      (1)合并。解決各分E-R圖之間的沖突,將各分E-R圖合并起來(lái)生成初步E-R圖。

      (2)修改和重構(gòu)。消除不必要的冗余,生成基本E-R圖。

      12.什么是數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)設(shè)計(jì)?試述其設(shè)計(jì)步驟。

      答: 數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)設(shè)計(jì)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R圖轉(zhuǎn)換為與選用的DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。

      設(shè)計(jì)步驟為:

      (1)將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型;

      (2)將轉(zhuǎn)換來(lái)的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換;

      (3)對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化。

      13.試述把E-R圖轉(zhuǎn)換為DBTG模型和關(guān)系模型的轉(zhuǎn)換規(guī)則。

      答: E-R圖向DBTG模型的轉(zhuǎn)換規(guī)則:

      1)每個(gè)實(shí)體型轉(zhuǎn)換為記錄型,實(shí)體的屬性轉(zhuǎn)換為記錄的數(shù)據(jù)項(xiàng);

      2)實(shí)體型之間1:n(n≥1)的聯(lián)系轉(zhuǎn)換為一個(gè)系,沒(méi)有任何聯(lián)系的實(shí)體型轉(zhuǎn)換為奇異系;

      3)K(K≥2)個(gè)實(shí)體型之間多對(duì)多的聯(lián)系,引入一個(gè)連結(jié)記錄,形成K個(gè)實(shí)體型和連結(jié)記錄之間的K個(gè)系。連結(jié)記錄的屬性由諸首記錄的碼及聯(lián)系屬性所組成;

      4)同一實(shí)體型內(nèi)的1:n,n:m聯(lián)系,引入連結(jié)記錄,轉(zhuǎn)換為兩個(gè)系。

      *解析:根據(jù)我國(guó)實(shí)際,網(wǎng)狀,層次數(shù)據(jù)庫(kù)系統(tǒng)已很少使用,因此《概論》第三版把它們刪去了,有關(guān)的主要概念放在第一章數(shù)據(jù)模型中介紹。對(duì)于DBTG模型的許多概念也介紹得很簡(jiǎn)單。本題的內(nèi)容已經(jīng)超出了書上的內(nèi)容,同學(xué)們只要了解就可以了。但是,下面E-R圖向關(guān)系模型的轉(zhuǎn)換規(guī)則要求同學(xué)必須掌握,并且能夠舉一反三。

      答: E-R圖向關(guān)系模型的轉(zhuǎn)換規(guī)則:

      一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。

      對(duì)于實(shí)體間的聯(lián)系則有以下不同的情況:

      (1)一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,每個(gè)實(shí)體的碼均是該關(guān)系的候選碼。如果與某一端實(shí)體對(duì)應(yīng)的關(guān)系模式合并,則需要在該關(guān)系模式的屬性中加入另一個(gè)關(guān)系模式的碼和聯(lián)系本身的屬性。

      (2)一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對(duì)應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為n端實(shí)體的碼。

      (3)一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,各實(shí)體碼的組合組成該關(guān)系的碼,或碼的一部分。

      (4)三個(gè)或三個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系可以轉(zhuǎn)換為一個(gè)關(guān)系模式。與該多元聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為各實(shí)體碼的組合。

      (5)具有相同碼的關(guān)系模式可合并。

      *14.你能給出由E-R圖轉(zhuǎn)換為IMS模型的轉(zhuǎn)換規(guī)則嗎?

      答: E-R圖向IMS模型的轉(zhuǎn)換規(guī)則:

      1)每個(gè)實(shí)體型轉(zhuǎn)換為記錄型,實(shí)體的屬性轉(zhuǎn)換為記錄的數(shù)據(jù)項(xiàng);

      2)實(shí)體型之間1:n(n≥1)的聯(lián)系轉(zhuǎn)換記錄型之間的有向邊;

      3)實(shí)體型之間m:n(m>1,n>1)的聯(lián)系則分解成一對(duì)多聯(lián)系,再根據(jù)2)轉(zhuǎn)換;

      4)K(K≥2)個(gè)實(shí)體型之間多對(duì)多的聯(lián)系,可先轉(zhuǎn)換成多對(duì)兩個(gè)實(shí)體型之間的聯(lián)系,再根據(jù)3)轉(zhuǎn)換。

      *解析:IMS是IBM公司的層次數(shù)據(jù)庫(kù)管理系統(tǒng)。IMS模型是層次模型。E-R圖向IMS模型轉(zhuǎn)換的另一種方法是,先把E-R圖轉(zhuǎn)換為網(wǎng)狀模型,再利用IMS邏輯數(shù)據(jù)庫(kù)LDB的概念來(lái)表示網(wǎng)狀模型。詳細(xì)方法這里從略。

      數(shù)據(jù)庫(kù)恢復(fù)技術(shù)

      一、選擇題

      1.一個(gè)事務(wù)的執(zhí)行,要么全部完成,要么全部不做,一個(gè)事務(wù)中對(duì)數(shù)據(jù)庫(kù)的所有操作都是一個(gè)不可分割的操作序列的屬性是()。

      A.原子性

      B.一致性

      C.獨(dú)立性

      D.持久性

      2.表示兩個(gè)或多個(gè)事務(wù)可以同時(shí)運(yùn)行而不互相影響的是()。

      A.原子性

      B.一致性

      C.獨(dú)立性

      D.持久性

      3.事務(wù)的持續(xù)性是指()

      A.事務(wù)中包括的所有操作要么都做,要么都不做。

      B.事務(wù)一旦提交,對(duì)數(shù)據(jù)庫(kù)的改變是永久的。

      C.一個(gè)事務(wù)內(nèi)部的操作對(duì)并發(fā)的其他事務(wù)是隔離的。

      D.事務(wù)必須是使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。

      4.SQL語(yǔ)言中的COMMIT語(yǔ)句的主要作用是()。

      A.結(jié)束程序

      B.返回系統(tǒng)

      C.提交事務(wù)

      D.存儲(chǔ)數(shù)據(jù)

      5.SQL語(yǔ)言中用()語(yǔ)句實(shí)現(xiàn)事務(wù)的回滾

      A.CREATE TABLE B.ROLLBACK

      C.GRANT和REVOKE D.COMMIT

      6. 若系統(tǒng)在運(yùn)行過(guò)程中,由于某種硬件故障,使存儲(chǔ)在外存上的數(shù)據(jù)部分損失或全部損失,這種情況稱為()。

      A.介質(zhì)故障

      B.運(yùn)行故障

      C.系統(tǒng)故障 D.事務(wù)故障

      7. 在DBMS中實(shí)現(xiàn)事務(wù)持久性的子系統(tǒng)是()。

      A.安全管理子系統(tǒng)

      B.完整性管理子系統(tǒng)

      C.并發(fā)控制子系統(tǒng)

      D.恢復(fù)管理子系統(tǒng)

      8.后援副本的作用是()。

      A.保障安全性

      B.一致性控制

      C.故障后的恢復(fù)

      D.數(shù)據(jù)的轉(zhuǎn)儲(chǔ)

      9. 事務(wù)日志用于保存()。

      A.程序運(yùn)行過(guò)程

      B.程序的執(zhí)行結(jié)果

      C.對(duì)數(shù)據(jù)的更新操作

      D.數(shù)據(jù)操作

      10. 數(shù)據(jù)庫(kù)恢復(fù)的基礎(chǔ)是利用轉(zhuǎn)儲(chǔ)的冗余數(shù)據(jù)。這些轉(zhuǎn)儲(chǔ)的冗余數(shù)據(jù)包括()。

      A.數(shù)據(jù)字典、應(yīng)用程序、審計(jì)檔案、數(shù)據(jù)庫(kù)后備副本

      B.數(shù)據(jù)字典、應(yīng)用程序、審計(jì)檔案、日志文件

      C.日志文件、數(shù)據(jù)庫(kù)后備副本

      D.數(shù)據(jù)字典、應(yīng)用程序、數(shù)據(jù)庫(kù)后備副本

      選擇題答案:(1)A(2)C(3)B(4)C(5)B(6)A(7)D(8)C(9)C(10)C

      二、簡(jiǎn)答題

      1.試述事務(wù)的概念及事務(wù)的四個(gè)特性。

      答: 事務(wù)是用戶定義的一個(gè)數(shù)據(jù)庫(kù)操作序列,這些操作要么全做要么全不做,是一個(gè)不可分割的工作單位。

      事務(wù)具有四個(gè)特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持續(xù)性(Durability)。這個(gè)四個(gè)特性也簡(jiǎn)稱為ACID特性。

      原子性:事務(wù)是數(shù)據(jù)庫(kù)的邏輯工作單位,事務(wù)中包括的諸操作要么都做,要么都不做。

      一致性:事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。

      隔離性:一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。即一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對(duì)其他并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能互相干擾。

      持續(xù)性:持續(xù)性也稱永久性(Permanence),指一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的改變就應(yīng)該是永久性的。接下來(lái)的其他操作或故障不應(yīng)該對(duì)其執(zhí)行結(jié)果有任何影響。

      2.為什么事務(wù)非正常結(jié)束時(shí)會(huì)影響數(shù)據(jù)庫(kù)數(shù)據(jù)的正確性,請(qǐng)列舉一例說(shuō)明之。

      答: 事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。如果數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行中發(fā)生故障,有些事務(wù)尚未完成就被迫中斷,這些未完成事務(wù)對(duì)數(shù)據(jù)庫(kù)所做的修改有一部分已寫入物理數(shù)據(jù)庫(kù),這時(shí)數(shù)據(jù)庫(kù)就處于一種不正確的狀態(tài),或者說(shuō)是不一致的狀態(tài)。

      例如某工廠的庫(kù)存管理系統(tǒng)中,要把數(shù)量為Q的某種零件從倉(cāng)庫(kù)1移到倉(cāng)庫(kù)2存放。

      則可以定義一個(gè)事務(wù)T,T包括兩個(gè)操作;Q1=Q1-Q,Q2=Q2+Q。如果T非正常終止時(shí)只做了第一個(gè)操作,則數(shù)據(jù)庫(kù)就處于不一致性狀態(tài),庫(kù)存量無(wú)緣無(wú)故少了Q。

      3.數(shù)據(jù)庫(kù)中為什么要有恢復(fù)子系統(tǒng)?它的功能是什么?

      答: 因?yàn)橛?jì)算機(jī)系統(tǒng)中硬件的故障、軟件的錯(cuò)誤、操作員的失誤以及惡意的破壞是不可避免的,這些故障輕則造成運(yùn)行事務(wù)非正常中斷,影響數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性,重則破壞數(shù)據(jù)庫(kù),使數(shù)據(jù)庫(kù)中全部或部分?jǐn)?shù)據(jù)丟失,因此必須要有恢復(fù)子系統(tǒng)。

      恢復(fù)子系統(tǒng)的功能是:把數(shù)據(jù)庫(kù)從錯(cuò)誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)(亦稱為一致狀態(tài)或完整狀態(tài))。

      4.?dāng)?shù)據(jù)庫(kù)運(yùn)行中可能產(chǎn)生的故障有哪幾類?哪些故障影響事務(wù)的正常執(zhí)行?哪些故障破壞數(shù)據(jù)庫(kù)數(shù)據(jù)?

      答:數(shù)據(jù)庫(kù)系統(tǒng)中可能發(fā)生各種各樣的故障,大致可以分以下幾類:

      (1)事務(wù)內(nèi)部的故障;

      (2)系統(tǒng)故障;

      (3)介質(zhì)故障;

      (4)計(jì)算機(jī)病毒。

      事務(wù)故障、系統(tǒng)故障和介質(zhì)故障影響事務(wù)的正常執(zhí)行;介質(zhì)故障和計(jì)算機(jī)病毒破壞數(shù)據(jù)

      庫(kù)數(shù)據(jù)。

      5.據(jù)庫(kù)恢復(fù)的基本技術(shù)有哪些?

      答:數(shù)據(jù)轉(zhuǎn)儲(chǔ)和登錄日志文件是數(shù)據(jù)庫(kù)恢復(fù)的基本技術(shù)。

      當(dāng)系統(tǒng)運(yùn)行過(guò)程中發(fā)生故障,利用轉(zhuǎn)儲(chǔ)的數(shù)據(jù)庫(kù)后備副本和日志文件就可以將數(shù)據(jù)庫(kù)恢復(fù)到故障前的某個(gè)一致性狀態(tài)。

      6.數(shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ)的意義是什么? 試比較各種數(shù)據(jù)轉(zhuǎn)儲(chǔ)方法。

      答: 數(shù)據(jù)轉(zhuǎn)儲(chǔ)是數(shù)據(jù)庫(kù)恢復(fù)中采用的基本技術(shù)。所謂轉(zhuǎn)儲(chǔ)即DBA定期地將數(shù)據(jù)庫(kù)復(fù)制到磁帶或另一個(gè)磁盤上保存起來(lái)的過(guò)程。當(dāng)數(shù)據(jù)庫(kù)遭到破壞后可以將后備副本重新裝入,將數(shù)據(jù)庫(kù)恢復(fù)到轉(zhuǎn)儲(chǔ)時(shí)的狀態(tài)。

      靜態(tài)轉(zhuǎn)儲(chǔ):在系統(tǒng)中無(wú)運(yùn)行事務(wù)時(shí)進(jìn)行的轉(zhuǎn)儲(chǔ)操作。靜態(tài)轉(zhuǎn)儲(chǔ)簡(jiǎn)單,但必須等待正運(yùn)行的用戶事務(wù)結(jié)束才能進(jìn)行。同樣,新的事務(wù)必須等待轉(zhuǎn)儲(chǔ)結(jié)束才能執(zhí)行。顯然,這會(huì)降低數(shù)據(jù)庫(kù)的可用性。

      動(dòng)態(tài)轉(zhuǎn)儲(chǔ):指轉(zhuǎn)儲(chǔ)期間允許對(duì)數(shù)據(jù)庫(kù)進(jìn)行存取或修改。動(dòng)態(tài)轉(zhuǎn)儲(chǔ)可克服靜態(tài)轉(zhuǎn)儲(chǔ)的缺點(diǎn),它不用等待正在運(yùn)行的用戶事務(wù)結(jié)束,也不會(huì)影響新事務(wù)的運(yùn)行。但是,轉(zhuǎn)儲(chǔ)結(jié)束時(shí)后援副本上的數(shù)據(jù)并不能保證正確有效。因?yàn)檗D(zhuǎn)儲(chǔ)期間運(yùn)行的事務(wù)可能修改了某些數(shù)據(jù),使得后援副本上的數(shù)據(jù)不是數(shù)據(jù)庫(kù)的一致版本。

      為此,必須把轉(zhuǎn)儲(chǔ)期間各事務(wù)對(duì)數(shù)據(jù)庫(kù)的修改活動(dòng)登記下來(lái),建立日志文件(log file)。這樣,后援副本加上日志文件就能得到數(shù)據(jù)庫(kù)某一時(shí)刻的正確狀態(tài)。

      轉(zhuǎn)儲(chǔ)還可以分為海量轉(zhuǎn)儲(chǔ)和增量轉(zhuǎn)儲(chǔ)兩種方式。

      海量轉(zhuǎn)儲(chǔ)是指每次轉(zhuǎn)儲(chǔ)全部數(shù)據(jù)庫(kù)。增量轉(zhuǎn)儲(chǔ)則指每次只轉(zhuǎn)儲(chǔ)上一次轉(zhuǎn)儲(chǔ)后更新過(guò)的數(shù)據(jù)。從恢復(fù)角度看,使用海量轉(zhuǎn)儲(chǔ)得到的后備副本進(jìn)行恢復(fù)一般說(shuō)來(lái)更簡(jiǎn)單些。但如果數(shù)據(jù)庫(kù)很大,事務(wù)處理又十分頻繁,則增量轉(zhuǎn)儲(chǔ)方式更實(shí)用更有效。

      7.什么是日志文件?為什么要設(shè)立日志文件?

      答:(1)日志文件是用來(lái)記錄事務(wù)對(duì)數(shù)據(jù)庫(kù)的更新操作的文件。

      (2)設(shè)立日志文件的目的是: 進(jìn)行事務(wù)故障恢復(fù);進(jìn)行系統(tǒng)故障恢復(fù);協(xié)助后備副本進(jìn)行介質(zhì)故障恢復(fù)。

      8.登記日志文件時(shí)為什么必須先寫日志文件,后寫數(shù)據(jù)庫(kù)?

      答: 把對(duì)數(shù)據(jù)的修改寫到數(shù)據(jù)庫(kù)中和把表示這個(gè)修改的日志記錄寫到日志文件中是兩個(gè)不同的操作。有可能在這兩個(gè)操作之間發(fā)生故障,即這兩個(gè)寫操作只完成了一個(gè)。

      如果先寫了數(shù)據(jù)庫(kù)修改,而在運(yùn)行記錄中沒(méi)有登記這個(gè)修改,則以后就無(wú)法恢復(fù)這個(gè)修改了。如果先寫日志,但沒(méi)有修改數(shù)據(jù)庫(kù),在恢復(fù)時(shí)只不過(guò)是多執(zhí)行一次UNDO操作,并不會(huì)影響數(shù)據(jù)庫(kù)的正確性。所以一定要先寫日志文件,即首先把日志記錄寫到日志文件中,然后寫數(shù)據(jù)庫(kù)的修改。

      9.針對(duì)不同的故障,試給出恢復(fù)的策略和方法。(即如何進(jìn)行事務(wù)故障的恢復(fù)?系統(tǒng)故障的恢復(fù)?介質(zhì)故障恢復(fù)?)

      答: 事務(wù)故障的恢復(fù):

      事務(wù)故障的恢復(fù)是由DBMS自動(dòng)完成的,對(duì)用戶是透明的。

      DBMS執(zhí)行恢復(fù)步驟是:

      (1)反向掃描文件日志(即從最后向前掃描日志文件),查找該事務(wù)的更新操作。

      (2)對(duì)該事務(wù)的更新操作執(zhí)行逆操作。即將日志記錄中“更新前的值”寫入數(shù)據(jù)庫(kù)。

      (3)繼續(xù)反向掃描日志文件,做同樣處理。

      (4)如此處理下去,直至讀到此事務(wù)的開始標(biāo)記,該事務(wù)故障的恢復(fù)就完成了。

      答: 系統(tǒng)故障的恢復(fù):

      系統(tǒng)故障可能會(huì)造成數(shù)據(jù)庫(kù)處于不一致狀態(tài):

      一是未完成事務(wù)對(duì)數(shù)據(jù)庫(kù)的更新可能已寫入數(shù)據(jù)庫(kù);

      二是已提交事務(wù)對(duì)數(shù)據(jù)庫(kù)的更新可能還留在緩沖區(qū),沒(méi)來(lái)得及寫入數(shù)據(jù)庫(kù)。

      因此恢復(fù)操作就是要撤銷(UNDO)故障發(fā)生時(shí)未完成的事務(wù),重做(REDO)已完成的事務(wù)。

      系統(tǒng)的恢復(fù)步驟是:

      (1)正向掃描日志文件,找出在故障發(fā)生前已經(jīng)提交的事務(wù)隊(duì)列(REDO隊(duì)列)和未完成的事務(wù)隊(duì)列(UNDO隊(duì)列)。

      (2)對(duì)撤銷隊(duì)列中的各個(gè)事務(wù)進(jìn)行UNDO處理。

      進(jìn)行UNDO處理的方法是,反向掃描日志文件,對(duì)每個(gè)UNDO事務(wù)的更新操作執(zhí)行逆操作,即將日志記錄中“更新前的值”(Before Image)寫入數(shù)據(jù)庫(kù)。

      (3)對(duì)重做隊(duì)列中的各個(gè)事務(wù)進(jìn)行REDO處理。

      進(jìn)行REDO處理的方法是:正向掃描日志文件,對(duì)每個(gè)REDO事務(wù)重新執(zhí)行日志文件登記的操作。即將日志記錄中“更新后的值”(After Image)寫入數(shù)據(jù)庫(kù)。

      *解析:

      在第(1)步中如何找出REDO隊(duì)列和UNDO隊(duì)列?請(qǐng)大家思考一下。

      下面給出一個(gè)算法:

      1)建立兩個(gè)事務(wù)隊(duì)列:

      ? UNDO-LIST: 需要執(zhí)行undo操作的事務(wù)集合;

      ? REDO-LIST: 需要執(zhí)行redo操作的事務(wù)集合;

      兩個(gè)事務(wù)隊(duì)列初始均為空。

      2)從日志文件頭開始,正向掃描日志文件

      ? 如有新開始(遇到Begin Transaction)的事務(wù)Ti,把Ti暫時(shí)放入U(xiǎn)NDO-LIST隊(duì)列;

      ? 如有提交的事務(wù)(遇到End Transaction)Tj,把Tj從UNDO-LIST隊(duì)列移到REDO-LIST隊(duì)列;

      直到日志文件結(jié)束

      答: 介質(zhì)故障的恢復(fù):

      介質(zhì)故障是最嚴(yán)重的一種故障。

      恢復(fù)方法是重裝數(shù)據(jù)庫(kù),然后重做已完成的事務(wù)。具體過(guò)程是:

      (1)DBA裝入最新的數(shù)據(jù)庫(kù)后備副本(離故障發(fā)生時(shí)刻最近的轉(zhuǎn)儲(chǔ)副本),使數(shù)據(jù)庫(kù)恢復(fù)到轉(zhuǎn)儲(chǔ)時(shí)的一致性狀態(tài)。

      (2)DBA裝入轉(zhuǎn)儲(chǔ)結(jié)束時(shí)刻的日志文件副本

      (3)DBA啟動(dòng)系統(tǒng)恢復(fù)命令,由DBMS完成恢復(fù)功能,即重做已完成的事務(wù)。

      *解析

      1)我們假定采用的是靜態(tài)轉(zhuǎn)儲(chǔ),因此第(1)步裝入數(shù)據(jù)庫(kù)后備副本便可以了。

      2)如果采用的是靜動(dòng)態(tài)轉(zhuǎn)儲(chǔ),第(1)步裝入數(shù)據(jù)庫(kù)后備副本還不夠,還需同時(shí)裝入轉(zhuǎn)儲(chǔ)開始時(shí)刻的日志文件副本,經(jīng)過(guò)處理后才能得到正確的數(shù)據(jù)庫(kù)后備副本。

      3)第(2)步重做已完成的事務(wù)的算法是:

      a.正向掃描日志文件,找出故障發(fā)生前已提交的事務(wù)的標(biāo)識(shí),將其記入重做隊(duì)列

      b.再一次正向掃描日志文件,對(duì)重做隊(duì)列中的所有事務(wù)進(jìn)行重做處理。即將日志記錄中“更新后的值”寫入數(shù)據(jù)庫(kù)。

      10.具有檢查點(diǎn)的恢復(fù)技術(shù)有什么優(yōu)點(diǎn)?

      答: 利用日志技術(shù)進(jìn)行數(shù)據(jù)庫(kù)恢復(fù)時(shí),恢復(fù)子系統(tǒng)必須搜索日志,確定哪些事務(wù)需要REDO,哪些事務(wù)需要UNDO。一般來(lái)說(shuō),需要檢查所有日志記錄。這樣做有兩個(gè)問(wèn)題:

      一是搜索整個(gè)日志將耗費(fèi)大量的時(shí)間。

      二是很多需要REDO處理的事務(wù)實(shí)際上已經(jīng)將它們的更新操作結(jié)果寫到數(shù)據(jù)庫(kù)中了,恢復(fù)子系統(tǒng)又重新執(zhí)行了這些操作,浪費(fèi)了大量時(shí)間。

      檢查點(diǎn)技術(shù)就是為了解決這些問(wèn)題。

      11.試述使用檢查點(diǎn)方法進(jìn)行恢復(fù)的步驟。

      答: ① 從重新開始文件中找到最后一個(gè)檢查點(diǎn)記錄在日志文件中的地址,由該地址在日志文件中找到最后一個(gè)檢查點(diǎn)記錄。

      ② 由該檢查點(diǎn)記錄得到檢查點(diǎn)建立時(shí)刻所有正在執(zhí)行的事務(wù)清單ACTIVE-LIST。

      這里建立兩個(gè)事務(wù)隊(duì)列:

      ? UNDO-LIST: 需要執(zhí)行undo操作的事務(wù)集合;

      ? REDO-LIST: 需要執(zhí)行redo操作的事務(wù)集合;

      把ACTIVE-LIST暫時(shí)放入U(xiǎn)NDO-LIST隊(duì)列,REDO隊(duì)列暫為空。

      ③ 從檢查點(diǎn)開始正向掃描日志文件

      ? 如有新開始的事務(wù)Ti,把Ti暫時(shí)放入U(xiǎn)NDO-LIST隊(duì)列;

      ? 如有提交的事務(wù)Tj,把Tj從UNDO-LIST隊(duì)列移到REDO-LIST隊(duì)列,直到日志文件結(jié)束;

      ④ 對(duì)UNDO-LIST中的每個(gè)事務(wù)執(zhí)行UNDO操作, 對(duì)REDO-LIST中的每個(gè)事務(wù)執(zhí)行REDO操作。

      12.什么是數(shù)據(jù)庫(kù)鏡像?它有什么用途?

      答: 數(shù)據(jù)庫(kù)鏡像即根據(jù)DBA的要求,自動(dòng)把整個(gè)數(shù)據(jù)庫(kù)或者其中的部分關(guān)鍵數(shù)據(jù)復(fù)制到另一個(gè)磁盤上。每當(dāng)主數(shù)據(jù)庫(kù)更新時(shí),DBMS自動(dòng)把更新后的數(shù)據(jù)復(fù)制過(guò)去,即DBMS自動(dòng)保證鏡像數(shù)據(jù)與主數(shù)據(jù)的一致性。

      數(shù)據(jù)庫(kù)鏡像的用途有:

      一是用于數(shù)據(jù)庫(kù)恢復(fù)。當(dāng)出現(xiàn)介質(zhì)故障時(shí),可由鏡像磁盤繼續(xù)提供使用,同時(shí)DBMS自動(dòng)利用鏡像磁盤數(shù)據(jù)進(jìn)行數(shù)據(jù)庫(kù)的恢復(fù),不需要關(guān)閉系統(tǒng)和重裝數(shù)據(jù)庫(kù)副本。

      二是提高數(shù)據(jù)庫(kù)的可用性。在沒(méi)有出現(xiàn)故障時(shí),當(dāng)一個(gè)用戶對(duì)某個(gè)數(shù)據(jù)加排它鎖進(jìn)行修改時(shí),其他用戶可以讀鏡像數(shù)據(jù)庫(kù)上的數(shù)據(jù),而不必等待該用戶釋放鎖。

      *13.試述你了解的某一個(gè)實(shí)際的DBMS產(chǎn)品中采用的恢復(fù)策略。

      答: 下面簡(jiǎn)單介紹一下Oracle的恢復(fù)技術(shù):

      Oracle中恢復(fù)機(jī)制也采用了轉(zhuǎn)儲(chǔ)和登記日志文件兩個(gè)技術(shù)。

      Oracle向DBA提供了多種轉(zhuǎn)儲(chǔ)后備副本的方法,如文件拷貝、利用Oracle的Export實(shí)用程序、用SQL命令Spool以及自己編程實(shí)現(xiàn)等。相應(yīng)地,Oracle也提供了多種重裝后備副本的方法,如文件拷貝、利用Oracle的Import實(shí)用程序、利用SQL*LOADER以及自己編程實(shí)現(xiàn)等。

      在Oracle 早期版本(V.5)中,日志文件以數(shù)據(jù)塊為單位,也就是說(shuō),Oracle的恢復(fù)操作是基于數(shù)據(jù)塊的,不是基于操作的。Oracle中記錄數(shù)據(jù)庫(kù)更新前的舊值的日志文件稱為數(shù)據(jù)庫(kù)前像文件(Before Image,簡(jiǎn)稱BI文件),記錄數(shù)據(jù)庫(kù)更新后的新值的日志文件稱為數(shù)據(jù)庫(kù)的后像文件(After Image,簡(jiǎn)稱AI文件)。BI文件是必須配置的,AI文件是可以任選的。

      Oracle7為了能夠在出現(xiàn)故障時(shí)更有效地恢復(fù)數(shù)據(jù),也為了解決讀“臟”數(shù)據(jù)問(wèn)題,提供了REDO日志文件和回滾段(Rollback Segment)。REDO日志文件中記錄了被更新數(shù)據(jù)的前像和后像?;貪L段記錄更新數(shù)據(jù)的前像,設(shè)在數(shù)據(jù)庫(kù)緩沖區(qū)中。在利用日志文件進(jìn)行故障恢復(fù)時(shí),為減少掃描日志文件的遍數(shù),Oracle7首先掃描REDO日志文件,重做所有操作,包括未正常提交的事務(wù)的操作,然后再根據(jù)回滾段中的數(shù)據(jù),撤銷未正常提交的事務(wù)的操作。

      詳細(xì)技術(shù)希望同學(xué)自己設(shè)法了解Oracle最新版本的介紹,例如通過(guò)INTERNET訪問(wèn)Oracle公司的網(wǎng)站。也可以了解其他DBMS廠商的產(chǎn)品情況。

      *14.試用恢復(fù)的基本技術(shù)設(shè)計(jì)一個(gè)恢復(fù)子系統(tǒng),給出這個(gè)子系統(tǒng)的恢復(fù)策略,包括:

      (a)當(dāng)產(chǎn)生某一類故障時(shí)如何恢復(fù)數(shù)據(jù)庫(kù)的方法;

      (b)日志文件的結(jié)構(gòu);

      (c)登記日志文件的方法;

      (d)利用日志文件恢復(fù)事務(wù)的方法;

      (e)轉(zhuǎn)儲(chǔ)的類型;

      (f)轉(zhuǎn)儲(chǔ)的后備副本和日志文件如何配合使用。

      *解析:這是一個(gè)大作業(yè)??梢跃C合復(fù)習(xí)和運(yùn)用學(xué)到的知識(shí)。設(shè)計(jì)一個(gè)恢復(fù)子系統(tǒng)。

      例如,日志文件的結(jié)構(gòu)你可以記錄為單位,也可以以數(shù)據(jù)塊為單位。不同的日志文件結(jié)構(gòu),登記的日志內(nèi)容,日志文件恢復(fù)事務(wù)的方法也就不同了。

      對(duì)于研究生,還應(yīng)該上機(jī)模擬實(shí)現(xiàn)你設(shè)計(jì)的恢復(fù)子系統(tǒng)。

      數(shù)據(jù)庫(kù)并發(fā)控制

      一、選擇題

      1. 為了防止一個(gè)用戶的工作不適當(dāng)?shù)赜绊懥硪粋€(gè)用戶,應(yīng)該采?。ǎ?/p>

      A.完整性控制

      B.訪問(wèn)控制

      C.安全性控制

      D.并發(fā)控制

      2.解決并發(fā)操作帶來(lái)的數(shù)據(jù)不一致問(wèn)題普遍采用()技術(shù)。

      A.封鎖

      B.存取控制

      C.恢復(fù)

      D.協(xié)商

      3. 下列不屬于并發(fā)操作帶來(lái)的問(wèn)題是()。

      A.丟失修改

      B.不可重復(fù)讀

      C.死鎖

      D.臟讀

      4. DBMS普遍采用()方法來(lái)保證調(diào)度的正確性。

      A.索引

      B.授權(quán)

      C.封鎖

      D.日志

      5.事務(wù)T在修改數(shù)據(jù)R之前必須先對(duì)其加X鎖,直到事務(wù)結(jié)束才釋放,這是()。

      A.一級(jí)封鎖協(xié)議

      B.二級(jí)封鎖協(xié)議

      C.三級(jí)封鎖協(xié)議

      D.零級(jí)封鎖協(xié)議

      6. 如果事務(wù)T獲得了數(shù)據(jù)項(xiàng)Q上的排他鎖,則T對(duì)Q()。

      A.只能讀不能寫

      B.只能寫不能讀

      C.既可讀又可寫 D.不能讀也不能寫

      7.設(shè)事務(wù)T1和T2,對(duì)數(shù)據(jù)庫(kù)中地?cái)?shù)據(jù)A進(jìn)行操作,可能有如下幾種情況,請(qǐng)問(wèn)哪一種不會(huì)發(fā)生沖突操作()。

      A.T1正在寫A,T2要讀A

      B.T1正在寫A,T2也要寫A

      C.T1正在讀A,T2要寫A D.T1正在讀A,T2也要讀A

      8.如果有兩個(gè)事務(wù),同時(shí)對(duì)數(shù)據(jù)庫(kù)中同一數(shù)據(jù)進(jìn)行操作,不會(huì)引起沖突的操作是()。

      A.一個(gè)是DELETE,一個(gè)是SELECT

      B.一個(gè)是SELECT,一個(gè)是DELETE

      C.兩個(gè)都是UPDATE

      D.兩個(gè)都是SELECT

      9. 在數(shù)據(jù)庫(kù)系統(tǒng)中,死鎖屬于()。

      A.系統(tǒng)故障

      B.事務(wù)故障

      C.介質(zhì)故障 D.程序故障

      參考答案:(1)D(2)A(3)C(4)C(5)A(6)C(7)D(8)D(9)B

      二、簡(jiǎn)答題

      1.在數(shù)據(jù)庫(kù)中為什么要并發(fā)控制?

      答:數(shù)據(jù)庫(kù)是共享資源,通常有許多個(gè)事務(wù)同時(shí)在運(yùn)行。

      當(dāng)多個(gè)事務(wù)并發(fā)地存取數(shù)據(jù)庫(kù)時(shí)就會(huì)產(chǎn)生同時(shí)讀取和/或修改同一數(shù)據(jù)的情況。若對(duì)并發(fā)操作不加控制就可能會(huì)存取和存儲(chǔ)不正確的數(shù)據(jù),破壞數(shù)據(jù)庫(kù)的一致性。所以數(shù)據(jù)庫(kù)管理系統(tǒng)必須提供并發(fā)控制機(jī)制。

      2.并發(fā)操作可能會(huì)產(chǎn)生哪幾類數(shù)據(jù)不一致?用什么方法能避免各種不一致的情況?

      答:并發(fā)操作帶來(lái)的數(shù)據(jù)不一致性包括三類:丟失修改、不可重復(fù)讀和讀“臟”數(shù)據(jù)。

      (1)丟失修改(Lost Update)

      兩個(gè)事務(wù)T1和T2讀入同一數(shù)據(jù)并修改,T2提交的結(jié)果破壞了(覆蓋了)T1提交的結(jié)果,導(dǎo)致T1的修改被丟失。

      (2)不可重復(fù)讀(Non-Repeatable Read)

      不可重復(fù)讀是指事務(wù)T1讀取數(shù)據(jù)后,事務(wù)T2執(zhí)行更新操作,使T1無(wú)法再現(xiàn)前一次讀取結(jié)果。

      (3)讀“臟”數(shù)據(jù)(Dirty Read)

      讀“臟”數(shù)據(jù)是指事務(wù)T1修改某一數(shù)據(jù),并將其寫回磁盤,事務(wù)T2讀取同一數(shù)據(jù)后,T1由于某種原因被撤銷,這時(shí)T1已修改過(guò)的數(shù)據(jù)恢復(fù)原值,T2讀到的數(shù)據(jù)就與數(shù)據(jù)庫(kù)中的數(shù)據(jù)不一致,則T2讀到的數(shù)據(jù)就為“臟”數(shù)據(jù),即不正確的數(shù)據(jù)。

      避免不一致性的方法和技術(shù)就是并發(fā)控制。最常用的并發(fā)控制技術(shù)是封鎖技術(shù)。

      也可以用其他技術(shù),例如在分布式數(shù)據(jù)庫(kù)系統(tǒng)中可以采用時(shí)間戳方法來(lái)進(jìn)行并發(fā)控制。

      3.什么是封鎖?

      答:封鎖就是事務(wù)T在對(duì)某個(gè)數(shù)據(jù)對(duì)象例如表、記錄等操作之前,先向系統(tǒng)發(fā)出請(qǐng)求,對(duì)其加鎖。加鎖后事務(wù)T就對(duì)該數(shù)據(jù)對(duì)象有了一定的控制,在事務(wù)T釋放它的鎖之前,其他的事務(wù)不能更新此數(shù)據(jù)對(duì)象。

      封鎖是實(shí)現(xiàn)并發(fā)控制的一個(gè)非常重要的技術(shù)。

      4.基本的封鎖類型有幾種?試述它們的含義。

      答:基本的封鎖類型有兩種: 排它鎖(Exclusive Locks,簡(jiǎn)稱X鎖)和共享鎖(Share Locks,簡(jiǎn)稱S鎖)。

      排它鎖又稱為寫鎖。若事務(wù)T對(duì)數(shù)據(jù)對(duì)象A加上X鎖,則只允許T讀取和修改A,其他任何事務(wù)都不能再對(duì)A加任何類型的鎖,直到T釋放A上的鎖。這就保證了其他事務(wù)在T釋放A上的鎖之前不能再讀取和修改A。

      共享鎖又稱為讀鎖。若事務(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.什么是封鎖協(xié)議?不同級(jí)別的封鎖協(xié)議的主要區(qū)別是什么?

      答:在運(yùn)用封鎖技術(shù)對(duì)數(shù)據(jù)加鎖時(shí),要約定一些規(guī)則。例如,在運(yùn)用X鎖和S鎖對(duì)數(shù)據(jù)對(duì)象加鎖時(shí),要約定何時(shí)申請(qǐng)X鎖或S鎖、何時(shí)釋放封鎖等。這些約定或者規(guī)則稱為封鎖協(xié)議(Locking Protocol)。對(duì)封鎖方式約定不同的規(guī)則,就形成了各種不同的封鎖協(xié)議。不同級(jí)別的封鎖協(xié)議,例如《概論》中介紹的三級(jí)封鎖協(xié)議,三級(jí)協(xié)議的主要區(qū)別在于什么操作需要申請(qǐng)封鎖,何時(shí)申請(qǐng)封鎖以及何時(shí)釋放鎖(即持鎖時(shí)間的長(zhǎng)短)。

      一級(jí)封鎖協(xié)議:事務(wù)T在修改數(shù)據(jù)R之前必須先對(duì)其加X鎖,直到事務(wù)結(jié)束才釋放。

      二級(jí)封鎖協(xié)議:一級(jí)封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)R之前必須先對(duì)其加S鎖,讀完后即可釋放S鎖。

      三級(jí)封鎖協(xié)議:一級(jí)封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)R之前必須先對(duì)其加S鎖,直到事務(wù)結(jié)束才釋放。

      6.不同封鎖協(xié)議與系統(tǒng)一致性級(jí)別的關(guān)系是什么?

      答: 不同的封鎖協(xié)議對(duì)應(yīng)不同的一致性級(jí)別。

      一級(jí)封鎖協(xié)議可防止丟失修改,并保證事務(wù)T是可恢復(fù)的。在一級(jí)封鎖協(xié)議中,對(duì)讀數(shù)據(jù)是不加S鎖的,所以它不能保證可重復(fù)讀和不讀“臟”數(shù)據(jù)。

      二級(jí)封鎖協(xié)議除防止了丟失修改,還可進(jìn)一步防止讀“臟”數(shù)據(jù)。在二級(jí)封鎖協(xié)議中,由于讀完數(shù)據(jù)后立即釋放S鎖,所以它不能保證可重復(fù)讀。

      在三級(jí)封鎖協(xié)議中,無(wú)論是讀數(shù)據(jù)還是寫數(shù)據(jù)都加長(zhǎng)鎖,即都要到事務(wù)結(jié)束時(shí)才釋放封鎖。所以三級(jí)封鎖協(xié)議除防止了丟失修改和不讀“臟”數(shù)據(jù)外,還進(jìn)一步防止了不可重復(fù)讀。

      7.試述活鎖的產(chǎn)生原因和解決方法。

      答: 活鎖產(chǎn)生的原因:當(dāng)一系列封鎖不能按照其先后順序執(zhí)行時(shí),就可能導(dǎo)致一些事務(wù)無(wú)限期等待某個(gè)封鎖,從而導(dǎo)致活鎖。

      避免活鎖的簡(jiǎn)單方法是采用先來(lái)先服務(wù)的策略。當(dāng)多個(gè)事務(wù)請(qǐng)求封鎖同一數(shù)據(jù)對(duì)象時(shí),封鎖子系統(tǒng)按請(qǐng)求封鎖的先后次序?qū)κ聞?wù)排隊(duì),數(shù)據(jù)對(duì)象上的鎖一旦釋放就批準(zhǔn)申請(qǐng)隊(duì)列中第一個(gè)事務(wù)獲得鎖。

      8.請(qǐng)給出預(yù)防死鎖的若干方法。

      答: 在數(shù)據(jù)庫(kù)中,產(chǎn)生死鎖的原因是兩個(gè)或多個(gè)事務(wù)都已封鎖了一些數(shù)據(jù)對(duì)象,然后又都請(qǐng)求已被其他事務(wù)封鎖的數(shù)據(jù)加鎖,從而出現(xiàn)死等待。

      防止死鎖的發(fā)生其實(shí)就是要破壞產(chǎn)生死鎖的條件。預(yù)防死鎖通常有兩種方法:

      (1)一次封鎖法

      要求每個(gè)事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行。

      (2)順序封鎖法

      預(yù)先對(duì)數(shù)據(jù)對(duì)象規(guī)定一個(gè)封鎖順序,所有事務(wù)都按這個(gè)順序?qū)嵭蟹怄i。

      不過(guò),預(yù)防死鎖的策略不大適合數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)。

      9.請(qǐng)給出檢測(cè)死鎖發(fā)生的一種方法,當(dāng)發(fā)生死鎖后如何解除死鎖?

      答:數(shù)據(jù)庫(kù)系統(tǒng)一般采用允許死鎖發(fā)生,DBMS檢測(cè)到死鎖后加以解除的方法。

      DBMS中診斷死鎖的方法與操作系統(tǒng)類似,一般使用超時(shí)法或事務(wù)等待圖法。

      超時(shí)法是:如果一個(gè)事務(wù)的等待時(shí)間超過(guò)了規(guī)定的時(shí)限,就認(rèn)為發(fā)生了死鎖。超時(shí)法實(shí)現(xiàn)簡(jiǎn)單,但有可能誤判死鎖,事務(wù)因其他原因長(zhǎng)時(shí)間等待超過(guò)時(shí)限時(shí),系統(tǒng)會(huì)誤認(rèn)為發(fā)生了死鎖。若時(shí)限設(shè)置得太長(zhǎng),又不能及時(shí)發(fā)現(xiàn)死鎖發(fā)生。

      DBMS并發(fā)控制子系統(tǒng)檢測(cè)到死鎖后,就要設(shè)法解除。通常采用的方法是選擇一個(gè)處理死鎖代價(jià)最小的事務(wù),將其撤消,釋放此事務(wù)持有的所有鎖,使其他事務(wù)得以繼續(xù)運(yùn)行下去。當(dāng)然,對(duì)撤銷的事務(wù)所執(zhí)行的數(shù)據(jù)修改操作必須加以恢復(fù)。

      10.什么樣的并發(fā)調(diào)度是正確的調(diào)度?

      答: 可串行化(Serializable)的調(diào)度是正確的調(diào)度。

      可串行化的調(diào)度的定義:多個(gè)事務(wù)的并發(fā)執(zhí)行是正確的,當(dāng)且僅當(dāng)其結(jié)果與按某一次序串行地執(zhí)行它們時(shí)的結(jié)果相同,我們稱這種調(diào)度策略為可串行化的調(diào)度。

      11.試述兩段鎖協(xié)議的概念。

      答: 兩段鎖協(xié)議是指所有事務(wù)必須分兩個(gè)階段對(duì)數(shù)據(jù)項(xiàng)加鎖和解鎖。

      ? 在對(duì)任何數(shù)據(jù)進(jìn)行讀、寫操作之前,首先要申請(qǐng)并獲得對(duì)該數(shù)據(jù)的封鎖;

      ? 在釋放一個(gè)封鎖之后,事務(wù)不再申請(qǐng)和獲得任何其他封鎖。

      “兩段”的含義是,事務(wù)分為兩個(gè)階段:

      第一階段是獲得封鎖,也稱為擴(kuò)展階段。在這階段,事務(wù)可以申請(qǐng)獲得任何數(shù)據(jù)項(xiàng)上的任何類型的鎖,但是不能釋放任何鎖。

      第二階段是釋放封鎖,也稱為收縮階段。在這階段,事務(wù)釋放已經(jīng)獲得的鎖,但是不能再申請(qǐng)任何鎖。

      12.為什么要引進(jìn)意向鎖? 意向鎖的含義是什么?

      答: 引進(jìn)意向鎖是為了提高封鎖子系統(tǒng)的效率。該封鎖子系統(tǒng)支持多種封鎖粒度。

      原因是:在多粒度封鎖方法中一個(gè)數(shù)據(jù)對(duì)象可能以兩種方式加鎖—顯式封鎖和隱式封鎖。因此系統(tǒng)在對(duì)某一數(shù)據(jù)對(duì)象加鎖時(shí)不僅要檢查該數(shù)據(jù)對(duì)象上有無(wú)(顯式和隱式)封鎖與之沖突;還要檢查其所有上級(jí)結(jié)點(diǎn)和所有下級(jí)結(jié)點(diǎn),看申請(qǐng)的封鎖是否與這些結(jié)點(diǎn)上的(顯式和隱式)封鎖沖突;顯然,這樣的檢查方法效率很低。為此引進(jìn)了意向鎖。

      意向鎖的含義是:對(duì)任一結(jié)點(diǎn)加鎖時(shí),必須先對(duì)它的上層結(jié)點(diǎn)加意向鎖。

      例如事務(wù)T要對(duì)某個(gè)元組加X鎖,則首先要對(duì)關(guān)系和數(shù)據(jù)庫(kù)加IX鎖。換言之,對(duì)關(guān)系和數(shù)據(jù)庫(kù)加IX鎖,表示它的后裔結(jié)點(diǎn)—某個(gè)元組擬(意向)加X鎖。

      引進(jìn)意向鎖后,系統(tǒng)對(duì)某一數(shù)據(jù)對(duì)象加鎖時(shí)不必逐個(gè)檢查與下一級(jí)結(jié)點(diǎn)的封鎖沖突了。例如,事務(wù)T要對(duì)關(guān)系R加X鎖時(shí),系統(tǒng)只要檢查根結(jié)點(diǎn)數(shù)據(jù)庫(kù)和R本身是否已加了不相容的鎖(如發(fā)現(xiàn)已經(jīng)加了IX,則與X沖突),而不再需要搜索和檢查R中的每一個(gè)元組是否加了X鎖或S鎖。

      13.試述常用的意向鎖:IS鎖,IX鎖,SIX鎖,給出這些鎖的相容矩陣。

      答: IS鎖:如果對(duì)一個(gè)數(shù)據(jù)對(duì)象加IS鎖,表示它的后裔結(jié)點(diǎn)擬(意向)加S鎖。例如,要對(duì)某個(gè)元組加S鎖,則要首先對(duì)關(guān)系和數(shù)據(jù)庫(kù)加IS鎖

      IX鎖:如果對(duì)一個(gè)數(shù)據(jù)對(duì)象加IX鎖,表示它的后裔結(jié)點(diǎn)擬(意向)加X鎖。例如,要對(duì)某個(gè)元組加X鎖,則要首先對(duì)關(guān)系和數(shù)據(jù)庫(kù)加IX鎖。

      SIX鎖:如果對(duì)一個(gè)數(shù)據(jù)對(duì)象加SIX鎖,表示對(duì)它加S鎖,再加IX鎖,即SIX = S + IX。

      相容矩陣(略)

      14.理解并解釋下列術(shù)語(yǔ)的含義:封鎖,活鎖,死鎖,排它鎖,共享鎖,并發(fā)事務(wù)的調(diào)度,可串行化的調(diào)度,兩段鎖協(xié)議。

      答:(略,已經(jīng)在上面有關(guān)習(xí)題中解答)

      *15.試述你了解的某一個(gè)實(shí)際的DBMS產(chǎn)品的并發(fā)控制機(jī)制。

      答:(略)

      數(shù)據(jù)庫(kù)安全性

      一、選擇題

      1.以下()不屬于實(shí)現(xiàn)數(shù)據(jù)庫(kù)系統(tǒng)安全性的主要技術(shù)和方法。

      A.存取控制技術(shù)

      B.視圖技術(shù)

      C.審計(jì)技術(shù) D.出入機(jī)房登記和加鎖

      2. SQL中的視圖提高了數(shù)據(jù)庫(kù)系統(tǒng)的()。

      A.完整性

      B.并發(fā)控制

      C.隔離性

      D.安全性

      3. SQL語(yǔ)言的GRANT和REMOVE語(yǔ)句主要是用來(lái)維護(hù)數(shù)據(jù)庫(kù)的()。

      A.完整性

      B.可靠性

      C.安全性

      D.一致性

      4.在數(shù)據(jù)庫(kù)的安全性控制中,授權(quán)的數(shù)據(jù)對(duì)象的(),授權(quán)子系統(tǒng)就越靈活。

      A.范圍越小

      B.約束越細(xì)致

      C.范圍越大

      D.約束范圍大

      選擇題答案:

      (1)D(2)D(3)C(4)A

      三、簡(jiǎn)答題

      1.什么是數(shù)據(jù)庫(kù)的安全性?

      答: 數(shù)據(jù)庫(kù)的安全性是指保護(hù)數(shù)據(jù)庫(kù)以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。

      2.數(shù)據(jù)庫(kù)安全性和計(jì)算機(jī)系統(tǒng)的安全性有什么關(guān)系?

      答: 安全性問(wèn)題不是數(shù)據(jù)庫(kù)系統(tǒng)所獨(dú)有的,所有計(jì)算機(jī)系統(tǒng)都有這個(gè)問(wèn)題。只是在數(shù)據(jù)庫(kù)系統(tǒng)中大量數(shù)據(jù)集中存放,而且為許多最終用戶直接共享,從而使安全性問(wèn)題更為突出。

      系統(tǒng)安全保護(hù)措施是否有效是數(shù)據(jù)庫(kù)系統(tǒng)的主要指標(biāo)之一。

      數(shù)據(jù)庫(kù)的安全性和計(jì)算機(jī)系統(tǒng)的安全性,包括操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)的安全性是緊密聯(lián)系、相互支持的,3.試述實(shí)現(xiàn)數(shù)據(jù)庫(kù)安全性控制的常用方法和技術(shù)。

      答: 實(shí)現(xiàn)數(shù)據(jù)庫(kù)安全性控制的常用方法和技術(shù)有:

      1)用戶標(biāo)識(shí)和鑒別:該方法由系統(tǒng)提供一定的方式讓用戶標(biāo)識(shí)自己的名字或身份。每次用戶要求進(jìn)入系統(tǒng)時(shí),由系統(tǒng)進(jìn)行核對(duì),通過(guò)鑒定后才提供系統(tǒng)的使用權(quán)。

      2)存取控制:通過(guò)用戶權(quán)限定義和合法權(quán)檢查確保只有合法權(quán)限的用戶訪問(wèn)數(shù)據(jù)庫(kù),所有未被授權(quán)的人員無(wú)法存取數(shù)據(jù)。例如C2級(jí)中的自主存取控制(DAC),B1級(jí)中的強(qiáng)制存取控制(MAC);

      3)視圖機(jī)制:為不同的用戶定義視圖,通過(guò)視圖機(jī)制把要保密的數(shù)據(jù)對(duì)無(wú)權(quán)存取的用戶隱藏起來(lái),從而自動(dòng)地對(duì)數(shù)據(jù)提供一定程度的安全保護(hù)。

      4)審計(jì):建立審計(jì)日志,把用戶對(duì)數(shù)據(jù)庫(kù)的所有操作自動(dòng)記錄下來(lái)放入審計(jì)日志中,DBA可以利用審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫(kù)現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。

      5)數(shù)據(jù)加密:對(duì)存儲(chǔ)和傳輸?shù)臄?shù)據(jù)進(jìn)行加密處理,從而使得不知道解密算法的人無(wú)法獲知數(shù)據(jù)的內(nèi)容。

      具體內(nèi)容請(qǐng)參見《概論》9.2。

      4.什么是數(shù)據(jù)庫(kù)中的自主存取控制方法和強(qiáng)制存取控制方法?

      答:自主存取控制方法:定義各個(gè)用戶對(duì)不同數(shù)據(jù)對(duì)象的存取權(quán)限。當(dāng)用戶對(duì)數(shù)據(jù)庫(kù)訪問(wèn)時(shí)首先檢查用戶的存取權(quán)限。防止不合法用戶對(duì)數(shù)據(jù)庫(kù)的存取。

      強(qiáng)制存取控制方法:每一個(gè)數(shù)據(jù)對(duì)象被(強(qiáng)制地)標(biāo)以一定的密級(jí),每一個(gè)用戶也被(強(qiáng)制地)授予某一個(gè)級(jí)別的許可證。系統(tǒng)規(guī)定只有具有某一許可證級(jí)別的用戶才能存取某一個(gè)密級(jí)的數(shù)據(jù)對(duì)象。

      *解析:自主存取控制中自主的含義是:用戶可以將自己擁有的存取權(quán)限“自主”地授予別人。即用戶具有一定的“自主”權(quán)。

      5.SQL語(yǔ)言中提供了哪些數(shù)據(jù)控制(自主存取控制)的語(yǔ)句?請(qǐng)?jiān)嚺e幾例說(shuō)明它們的使用方法。

      答:SQL中 的自主存取控制是通過(guò)GRANT 語(yǔ)句和 REVOKE 語(yǔ)句來(lái)實(shí)現(xiàn)的。如:

      GRANT SELECT,INSERT ON Student TO 王平WITH GRANT OPTION;

      就將Student表的SELECT和INSERT權(quán)限授予了用戶王平,后面的“WITH GRANT OPTION”子句表示用戶王平同時(shí)也獲得了“授權(quán)”的權(quán)限,即可以把得到的權(quán)限繼續(xù)授予其他用戶。

      REVOKE INSERT ON Student FROM 王平CASCADE;

      就將Student表 的INSERT權(quán)限從用戶王平處收回,選項(xiàng) CASCADE 表示,如果用戶王平將 Student 的 INSERT 權(quán)限又轉(zhuǎn)授給了其他用戶,那么這些權(quán)限也將從其他用戶處收回。

      6.今有兩個(gè)關(guān)系模式:

      職工(職工號(hào),姓名,年齡,職務(wù),工資,部門號(hào))

      部門(部門號(hào),名稱,經(jīng)理名,地址,電話號(hào))

      請(qǐng)用SQL的GRANT和REVOKE語(yǔ)句(加上視圖機(jī)制)完成以下授權(quán)定義或存取控制功能:

      (a)用戶王明對(duì)兩個(gè)表有SELECT權(quán)力;

      GRANT SELECT ON 職工,部門 TO 王明;

      (b)用戶李勇對(duì)兩個(gè)表有INSERT和DELETE權(quán)力;

      GRANT INSERT,DELETE ON 職工,部門 TO 李勇;

      (c)*每個(gè)職工只對(duì)自己的記錄有SELECT權(quán)力;

      GRANT SELECT ON 職工 WHEN USER()= NAME TO ALL;

      這里假定系統(tǒng)的GRANT語(yǔ)句支持WHEN子句和USER()的使用。用戶將自己的名字作為ID。注意,不同的系統(tǒng)這些擴(kuò)展語(yǔ)句可能是不同的。讀者應(yīng)該了解你使用的DBMS產(chǎn)品的擴(kuò)展語(yǔ)句。

      (d)用戶劉星對(duì)職工表有SELECT權(quán)力,對(duì)工資字段具有更新權(quán)力;

      GRANT SELECT,UPDATE(工資)ON 職工 TO 劉星;

      (e)用戶張新具有修改這兩個(gè)表的結(jié)構(gòu)的權(quán)力;

      GRANT ALTER TABLE ON 職工,部門 TO 張新;

      (f)用戶周平具有對(duì)兩個(gè)表所有權(quán)力(讀,插,改,刪數(shù)據(jù)),并具有給其他用戶授權(quán)的權(quán)力;

      GRANT ALL PRIVILIGES ON 職工,部門 TO 周平WITH GRANT OPTION;

      (g)用戶楊蘭具有從每個(gè)部門職工中SELECT最高工資,最低工資,平均工資的權(quán)力,他不能查看每個(gè)人的工資。

      答: 首先建立一個(gè)視圖。然后對(duì)這個(gè)視圖定義楊蘭的存取權(quán)限。

      CREATE VIEW 部門工資 AS

      SELECT 部門.名稱,MAX(工資),MIN(工資),AVG(工資)

      FROM 職工,部門

      WHERE 職工.部門號(hào) = 部門.部門號(hào)

      GROUP BY 職工.部門號(hào);

      GRANT SELECT ON 部門工資 TO 楊蘭;

      7.把習(xí)題8中(a)~(g)的每一種情況,撤銷各用戶所授予的權(quán)力。

      答:(a)REVOKE SELECT ON 職工,部門 FROM 王明;

      (b)REVOKE INSERT,DELETE ON 職工,部門 FROM 李勇;

      (c)REOVKE SELECT ON 職工 WHEN USER()= NAME FROM ALL;

      這里假定用戶將自己的名字作為ID,且系統(tǒng)的REOVKE語(yǔ)句支持WHEN子句,系統(tǒng)也支持USER()的使用。

      (d)REVOKE SELECT,UPDATE ON 職工 FROM 劉星;

      (e)REVOKE ALTER TABLE ON 職工,部門 FROM 張新;

      (f)REVOKE ALL PRIVILIGES ON 職工,部門 FROM 周平;

      (g)REVOKE SELECT ON 部門工資 FROM 楊蘭;

      DROP VIEW 部門工資;

      8.為什么強(qiáng)制存取控制提供了更高級(jí)別的數(shù)據(jù)庫(kù)安全性?

      答:強(qiáng)制存取控制(MAC)是對(duì)數(shù)據(jù)本身進(jìn)行密級(jí)標(biāo)記,無(wú)論數(shù)據(jù)如何復(fù)制,標(biāo)記與數(shù)據(jù)是一個(gè)不可分的整體,只有符合密級(jí)標(biāo)記要求的用戶才可以操縱數(shù)據(jù),從而提供了更高級(jí)別的安全性。

      9.理解并解釋MAC機(jī)制中主體、客體、敏感度標(biāo)記的含義。

      答:主體是系統(tǒng)中的活動(dòng)實(shí)體,既包括DBMS所管理的實(shí)際用戶,也包括代表用戶的各進(jìn)程。

      客體是系統(tǒng)中的被動(dòng)實(shí)體,是受主體操縱的,包括文件、基表、索引、視圖等。

      對(duì)于主體和客體,DBMS為它們每個(gè)實(shí)例(值)指派一個(gè)敏感度標(biāo)記(Label)。敏感度標(biāo)記被分成若干級(jí)別,例如絕密(Top Secret)、機(jī)密(Secret)、可信(Confidential)、公開(Public)等。主體的敏感度標(biāo)記稱為許可證級(jí)別(Clearance Level),客體的敏感度標(biāo)記稱為密級(jí)(Classification Level)。

      10.什么是數(shù)據(jù)庫(kù)的審計(jì)功能,為什么要提供審計(jì)功能?

      答:審計(jì)功能指DBMS的審計(jì)模塊在用戶對(duì)數(shù)據(jù)庫(kù)執(zhí)行操作的同時(shí)把所有操作自動(dòng)記錄到系統(tǒng)的審計(jì)日志中。

      因?yàn)槿魏蜗到y(tǒng)的安全保護(hù)措施都不是完美無(wú)缺的,蓄意盜竊破壞數(shù)據(jù)的人總可能存在。利用數(shù)據(jù)庫(kù)的審計(jì)功能,DBA可以根據(jù)審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫(kù)現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。

      11.統(tǒng)計(jì)數(shù)據(jù)庫(kù)中存在何種特殊的安全性問(wèn)題?

      答: 統(tǒng)計(jì)數(shù)據(jù)庫(kù)允許用戶查詢聚集類型的信息,如合計(jì)、平均值、最大值、最小值等,不允許查詢單個(gè)記錄信息。但是,人們可以從合法的查詢中推導(dǎo)出不合法的信息,即可能存在隱蔽的信息通道,這是統(tǒng)計(jì)數(shù)據(jù)庫(kù)要研究和解決的特殊的安全性問(wèn)題。

      *12.試述你了解的某一個(gè)實(shí)際的DBMS產(chǎn)品的安全性措施。

      答: 不同的DBMS產(chǎn)品以及同一產(chǎn)品的不同版本的安全措施各不相同,仁者見仁,智者見智,請(qǐng)讀者自己了解?!陡耪摗飞?.4 簡(jiǎn)單介紹了有關(guān)ORACLE數(shù)據(jù)庫(kù)的安全性措施。

      數(shù)據(jù)庫(kù)完整性

      一、選擇題

      1.完整性檢查和控制的防范對(duì)象(),防止它們進(jìn)入數(shù)據(jù)庫(kù)。安全性控制的防范對(duì)象是(),防止他們對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的存取。

      A.不合語(yǔ)義的數(shù)據(jù)

      B.非法用戶

      C.不正確的數(shù)據(jù)

      D.非法操作

      2.下述哪個(gè)是SQL語(yǔ)言中的數(shù)據(jù)控制命令()。

      A.GRANT B.COMMIT

      C.UPDATE D.SELECT

      3.下述SQL語(yǔ)言中的權(quán)限,哪一個(gè)允許用戶定義新關(guān)系時(shí),引用其他關(guān)系的主碼作為外碼()。

      A.INSERT

      B.DELETE

      C.REFERENCES D.SELECT

      參考答案:(1)A C B D(2)A(3)C

      二、簡(jiǎn)答題

      1.什么是數(shù)據(jù)庫(kù)的完整性?

      答:數(shù)據(jù)庫(kù)的完整性是指數(shù)據(jù)的正確性和相容性。

      2.數(shù)據(jù)庫(kù)的完整性概念與數(shù)據(jù)庫(kù)的安全性概念有什么區(qū)別和聯(lián)系?

      答:數(shù)據(jù)的完整性和安全性是兩個(gè)不同的概念,但是有一定的聯(lián)系。

      前者是為了防止數(shù)據(jù)庫(kù)中存在不符合語(yǔ)義的數(shù)據(jù),防止錯(cuò)誤信息的輸入和輸出,即所謂垃圾進(jìn)垃圾出(Garbage In Garbage Out)所造成的無(wú)效操作和錯(cuò)誤結(jié)果。

      后者是保護(hù)數(shù)據(jù)庫(kù)防止惡意的破壞和非法的存取。

      也就是說(shuō),安全性措施的防范對(duì)象是非法用戶和非法操作,完整性措施的防范對(duì)象是不合語(yǔ)義的數(shù)據(jù)。

      3.什么是數(shù)據(jù)庫(kù)的完整性約束條件?可分為哪幾類?

      答:完整性約束條件是指數(shù)據(jù)庫(kù)中的數(shù)據(jù)應(yīng)該滿足的語(yǔ)義約束條件。

      一般可以分為六類:

      靜態(tài)列級(jí)約束、靜態(tài)元組約束、靜態(tài)關(guān)系約束、動(dòng)態(tài)列級(jí)約束、動(dòng)態(tài)元組約束、動(dòng)態(tài)關(guān)系約束。

      靜態(tài)列級(jí)約束是對(duì)一個(gè)列的取值域的說(shuō)明,包括以下幾方面:

      1.對(duì)數(shù)據(jù)類型的約束,包括數(shù)據(jù)的類型、長(zhǎng)度、單位、精度等

      2.對(duì)數(shù)據(jù)格式的約束

      3.對(duì)取值范圍或取值集合的約束。

      4.對(duì)空值的約束

      5.其他約束

      靜態(tài)元組約束就是規(guī)定組成一個(gè)元組的各個(gè)列之間的約束關(guān)系,靜態(tài)元組約束只局限在單個(gè)元組上。

      靜態(tài)關(guān)系約束是在一個(gè)關(guān)系的各個(gè)元組間或者若干關(guān)系間常常存在各種聯(lián)系或約束。常見的靜態(tài)關(guān)系約束有:

      1.實(shí)體完整性約束。

      2.參照完整性約束。?

      3.函數(shù)依賴約束。

      動(dòng)態(tài)列級(jí)約束是修改列定義或列值時(shí)應(yīng)滿足的約束條件,包括下面兩方面:

      1.修改列定義時(shí)的約束

      2.修改列值時(shí)的約束

      動(dòng)態(tài)元組約束是指修改某個(gè)元組的值時(shí)需要參照其舊值,并且新舊值之間需要滿足某種約束條件。

      動(dòng)態(tài)關(guān)系約束是加在關(guān)系變化前后狀態(tài)上的限制條件,例如事務(wù)一致性、原子性等約束條件。

      詳細(xì)內(nèi)容可以參見《概論》10.1中的介紹。

      4.DBMS的完整性控制機(jī)制應(yīng)具有哪些功能?

      答:DBMS的完整性控制機(jī)制應(yīng)具有三個(gè)方面的功能:

      1).定義功能,即提供定義完整性約束條件的機(jī)制。

      2.檢查功能,即檢查用戶發(fā)出的操作請(qǐng)求是否違背了完整性約束條件。

      3).違約反應(yīng):如果發(fā)現(xiàn)用戶的操作請(qǐng)求使數(shù)據(jù)違背了完整性約束條件,則采取一定的動(dòng)作來(lái)保證數(shù)據(jù)的完整性。

      5.RDBMS在實(shí)現(xiàn)參照完整性時(shí)需要考慮哪些方面?

      答: RDBMS在實(shí)現(xiàn)參照完整性時(shí)需要考慮以下幾個(gè)方面:

      1)外碼是否可以接受空值

      2)刪除被參照關(guān)系的元組時(shí)的考慮,這時(shí)系統(tǒng)可能采取的作法有三種:

      (a)級(jí)聯(lián)刪除(CASCADES);

      (b)受限刪除(RESTRICTED);

      (c)置空值刪除(NULLIFIES)

      3)在參照關(guān)系中插入元組時(shí)的問(wèn)題,這時(shí)系統(tǒng)可能采取的作法有:

      (a)受限插入

      (b)遞歸插入

      4)修改關(guān)系中主碼的問(wèn)題

      一般是不能用UPDATE語(yǔ)句修改關(guān)系主碼的。如果需要修改主碼值,只能先刪除該元組,然后再把具有新主碼值的元組插入到關(guān)系中。

      如果允許修改主碼,首先要保證主碼的唯一性和非空,否則拒絕修改。然后要區(qū)分是參照關(guān)系還是被參照關(guān)系。

      詳細(xì)討論可以參見《概論》10.2。

      6.假設(shè)有下面兩個(gè)關(guān)系模式:

      職工(職工號(hào),姓名,年齡,職務(wù),工資,部門號(hào)),其中職工號(hào)為主碼;

      部門(部門號(hào),名稱,經(jīng)理名,電話),其中部門號(hào)為主碼;

      用SQL語(yǔ)言定義這兩個(gè)關(guān)系模式,要求在模式中完成以下完整性約束條件的定義:

      定義每個(gè)模式的主碼;定義參照完整性;定義職工年齡不得超過(guò)60歲。

      答:CREATE TABLE DEPT

      (Deptno NUMBER(2),Deptname VARCHAR(10),Manager VARCHAR(10),PhoneNumber Char(12)

      CONSTRAINT PK_SC PRIMARY KEY(Deptno));

      CREATE TABLE EMP

      (Empno NUMBER(4),Ename VARCHAR(10),Age NUMBER(2),CONSTRAINT C1 CHECK(Age《=60),Job VARCHAR(9),Sal NUMBER(7,2),Deptno NUMBER(2),CONSTRAINT FK_DEPTNO

      FOREIGN KEY(Deptno)

      REFERENCES DEPT(Deptno));

      7.關(guān)系系統(tǒng)中,當(dāng)操作違反實(shí)體完整性、參照完整性和用戶定義的完整性約束條件時(shí),一般是如何分別進(jìn)行處理的?

      答: 對(duì)于違反實(shí)體完整性和用戶定義的完整性的操作一般都采用拒絕執(zhí)行的方式進(jìn)行處理。而對(duì)于違反參照完整性的操作,并不都是簡(jiǎn)單地拒絕執(zhí)行,有時(shí)要根據(jù)應(yīng)用語(yǔ)義執(zhí)行一些附加的操作,以保證數(shù)據(jù)庫(kù)的正確性。具體的處理可以參見上面第5題或《概論》10.2中相應(yīng)部分。

      *8.試述你了解的某一個(gè)實(shí)際的DBMS產(chǎn)品的完整性控制策略。

      答:不同的DBMS產(chǎn)品以及同一產(chǎn)品的不同版本的完整性控制策略各不相同,讀者要去了解某一個(gè)DBMS產(chǎn)品的完整性控制策略。

      數(shù)據(jù)庫(kù)系統(tǒng)概論習(xí)題集

      第一章 緒論

      一、選擇題

      1.DBS是采用了數(shù)據(jù)庫(kù)技術(shù)的計(jì)算機(jī)系統(tǒng),它是一個(gè)集合體,包含數(shù)據(jù)庫(kù)、計(jì)算機(jī)硬件、軟件和()。

      A.系統(tǒng)分析員

      B.程序員 C.數(shù)據(jù)庫(kù)管理員

      D.操作員

      2.數(shù)據(jù)庫(kù)(DB),數(shù)據(jù)庫(kù)系統(tǒng)(DBS)和數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)之間的關(guān)系是()。

      A.DBS包括DB和DBMS

      B.DBMS包括DB和DBS

      C.DB包括DBS和DBMS D.DBS就是DB,也就是DBMS

      3.下面列出的數(shù)據(jù)庫(kù)管理技術(shù)發(fā)展的三個(gè)階段中,沒(méi)有專門的軟件對(duì)數(shù)據(jù)進(jìn)行管理的是()。

      I.人工管理階段

      II.文件系統(tǒng)階段

      III.?dāng)?shù)據(jù)庫(kù)階段

      A.I 和 II

      B.只有 II C.II 和 III

      D.只有 I

      4.下列四項(xiàng)中,不屬于數(shù)據(jù)庫(kù)系統(tǒng)特點(diǎn)的是()。

      A.數(shù)據(jù)共享

      B.數(shù)據(jù)完整性

      C.數(shù)據(jù)冗余度高

      D.數(shù)據(jù)獨(dú)立性高

      5.數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)獨(dú)立性體現(xiàn)在()。

      A.不會(huì)因?yàn)閿?shù)據(jù)的變化而影響到應(yīng)用程序

      B.不會(huì)因?yàn)橄到y(tǒng)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)邏輯結(jié)構(gòu)的變化而影響應(yīng)用程序

      C.不會(huì)因?yàn)榇鎯?chǔ)策略的變化而影響存儲(chǔ)結(jié)構(gòu)

      D.不會(huì)因?yàn)槟承┐鎯?chǔ)結(jié)構(gòu)的變化而影響其他的存儲(chǔ)結(jié)構(gòu)

      6.描述數(shù)據(jù)庫(kù)全體數(shù)據(jù)的全局邏輯結(jié)構(gòu)和特性的是()。

      A.模式

      B.內(nèi)模式 C.外模式 D.用戶模式

      7.要保證數(shù)據(jù)庫(kù)的數(shù)據(jù)獨(dú)立性,需要修改的是()。

      A.模式與外模式

      B.模式與內(nèi)模式

      C.三層之間的兩種映射 D.三層模式

      8.要保證數(shù)據(jù)庫(kù)的邏輯數(shù)據(jù)獨(dú)立性,需要修改的是()。

      A.模式與外模式的映射

      B.模式與內(nèi)模式之間的映射

      C.模式

      D.三層模式

      9.用戶或應(yīng)用程序看到的那部分局部邏輯結(jié)構(gòu)和特征的描述是(),它是模式的邏輯子集。

      A.模式

      B.物理模式

      C.子模式 D.內(nèi)模式

      10.下述()不是DBA數(shù)據(jù)庫(kù)管理員的職責(zé)。

      A.完整性約束說(shuō)明 B.定義數(shù)據(jù)庫(kù)模式

      C.數(shù)據(jù)庫(kù)安全 D.數(shù)據(jù)庫(kù)管理系統(tǒng)設(shè)計(jì)

      選擇題參考答案:(1)C(2)A(3)D(4)C(5)B(6)A(7)C(8)A(9)C(10)D

      二、簡(jiǎn)答題

      1.試述數(shù)據(jù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng)的概念。

      數(shù)據(jù):描述事物的符號(hào)記錄稱為數(shù)據(jù)。數(shù)據(jù)的種類有文字、圖形、圖象、聲音、正文等等。數(shù)據(jù)與其語(yǔ)義是不可分的。

      *解析:在現(xiàn)代計(jì)算機(jī)系統(tǒng)中數(shù)據(jù)的概念是廣義的。早期的計(jì)算機(jī)系統(tǒng)主要用于科學(xué)計(jì)算,處理的數(shù)據(jù)是整數(shù)、實(shí)數(shù)、浮點(diǎn)數(shù)等傳統(tǒng)數(shù)學(xué)中的數(shù)據(jù)等?,F(xiàn)在計(jì)算機(jī)能存儲(chǔ)和處理的對(duì)象十分廣泛,表示這些對(duì)象的 數(shù)據(jù)也越來(lái)越復(fù)雜。

      數(shù)據(jù)與其語(yǔ)義是不可分的。500這個(gè)數(shù)字可以表示一件物品的價(jià)格是500元,也可以表示一個(gè)學(xué)術(shù)會(huì)議參加的人數(shù)有500人。還可以表示一袋奶粉重500克。

      數(shù)據(jù)庫(kù):數(shù)據(jù)庫(kù)是長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi)、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫(kù)中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲(chǔ)存,具有較小的冗余度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可為各種用戶共享。

      *解析:簡(jiǎn)單地講,數(shù)據(jù)數(shù)據(jù)庫(kù)數(shù)據(jù)具有永久儲(chǔ)存、有組織和可共享三個(gè)特點(diǎn)。

      數(shù)據(jù)模型是數(shù)據(jù)庫(kù)的核心概念。每個(gè)數(shù)據(jù)庫(kù)中數(shù)據(jù)的都是按照某一種數(shù)據(jù)模型來(lái)組織的。

      數(shù)據(jù)庫(kù)系統(tǒng):數(shù)據(jù)庫(kù)系統(tǒng)(DBS)是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的系統(tǒng)構(gòu)成。數(shù)據(jù)庫(kù)系統(tǒng)由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫(kù)管理員構(gòu)成。

      *解析:數(shù)據(jù)庫(kù)系統(tǒng)和數(shù)據(jù)庫(kù)是兩個(gè)概念。數(shù)據(jù)庫(kù)系統(tǒng)是一個(gè)人-機(jī)系統(tǒng),數(shù)據(jù)庫(kù)是數(shù)據(jù)庫(kù)系統(tǒng)的一個(gè)組成部分。但是在日常工作中人們常常把把數(shù)據(jù)庫(kù)系統(tǒng)簡(jiǎn)稱為數(shù)據(jù)庫(kù)。希望讀者能夠從人們講話或文章的上下文中區(qū)分“數(shù)據(jù)庫(kù)系統(tǒng)”和“數(shù)據(jù)庫(kù)”。不要引起混淆。

      數(shù)據(jù)庫(kù)管理系統(tǒng):數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。用于科學(xué)地組織和存儲(chǔ)數(shù)據(jù)、高效地獲取和維護(hù)數(shù)據(jù)。DBMS主要功能包括數(shù)據(jù)定義功能、數(shù)據(jù)操縱功能、數(shù)據(jù)庫(kù)的運(yùn)行管理功能、數(shù)據(jù)庫(kù)的建立和維護(hù)功能。

      *解析:DBMS是一個(gè)大型復(fù)雜的軟件系統(tǒng)。是計(jì)算機(jī)中的基礎(chǔ)軟件。目前,專門研制DBMS的廠商及其研制的DBMS產(chǎn)品很多。著名的有美國(guó)IBM公司的DB2關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)、IMS層次數(shù)據(jù)庫(kù)管理系統(tǒng);美國(guó)ORACLE公司的ORACLE關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng);SYBASE公司的SYBASE關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng);美國(guó)微軟公司的SQL SERVER關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)等等。

      2.使用數(shù)據(jù)庫(kù)系統(tǒng)有什么好處?

      使用數(shù)據(jù)庫(kù)系統(tǒng)的好處是由數(shù)據(jù)庫(kù)管理系統(tǒng)的特點(diǎn)或優(yōu)點(diǎn)決定的。

      使用數(shù)據(jù)庫(kù)系統(tǒng)的好處很多,例如可以大大提高應(yīng)用開發(fā)的效率,方便用戶的使用,減輕數(shù)據(jù)庫(kù)系統(tǒng)管理人員維護(hù)的負(fù)擔(dān)等。

      使用數(shù)據(jù)庫(kù)系統(tǒng)可以大大提高應(yīng)用開發(fā)的效率。因?yàn)樵跀?shù)據(jù)庫(kù)系統(tǒng)中應(yīng)用程序不必考慮數(shù)據(jù)的定義、存儲(chǔ)和數(shù)據(jù)存取的具體路徑,這些工作都由DBMS來(lái)完成。用一個(gè)通俗的比喻,使用了DBMS就如有了一個(gè)好參謀好助手,許多具體的技術(shù)工作都由這個(gè)助手來(lái)完成。開發(fā)人員就可以專注于應(yīng)用邏輯的設(shè)計(jì)而不必為管理數(shù)據(jù)的許許多多復(fù)雜的細(xì)節(jié)操心。

      還有,當(dāng)應(yīng)用邏輯改變,數(shù)據(jù)的邏輯結(jié)構(gòu)需要改變時(shí),由于數(shù)據(jù)庫(kù)系統(tǒng)提供了數(shù)據(jù)與程序之間的獨(dú)立性。數(shù)據(jù)邏輯結(jié)構(gòu)的改變是DBA的責(zé)任,開發(fā)人員不必修改應(yīng)用程序,或者只需要修改很少的應(yīng)用程序。從而既簡(jiǎn)化了應(yīng)用程序的編制,又大大減少了應(yīng)用程序的維護(hù)和修改。

      使用數(shù)據(jù)庫(kù)系統(tǒng)可以減輕數(shù)據(jù)庫(kù)系統(tǒng)管理人員維護(hù)系統(tǒng)的負(fù)擔(dān)。因?yàn)镈BMS在數(shù)據(jù)庫(kù)建立、運(yùn)用和維護(hù)時(shí)對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一的管理和控制,包括數(shù)據(jù)的完整性、安全性,多用戶并發(fā)控制,故障恢復(fù)等等都由DBMS執(zhí)行。

      總之,使用數(shù)據(jù)庫(kù)系統(tǒng)的優(yōu)點(diǎn)是很多的,既便于數(shù)據(jù)的集中管理,控制數(shù)據(jù)冗余,可以提高數(shù)據(jù)的利用率和一致性,又有利于應(yīng)用程序的開發(fā)和維護(hù)。讀者可以在自己今后的工作中結(jié)合具體應(yīng)用,認(rèn)真加以體會(huì)和總結(jié)。

      3.試述文件系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)的區(qū)別和聯(lián)系。

      文件系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)的區(qū)別:文件系統(tǒng)面向某一應(yīng)用程序,共享性差、冗余度大,獨(dú)立性差,紀(jì)錄內(nèi)有結(jié)構(gòu)、整體無(wú)結(jié)構(gòu),應(yīng)用程序自己控制。

      數(shù)據(jù)庫(kù)系統(tǒng)面向現(xiàn)實(shí)世界,共享性高、冗余度小,具有高度的物理獨(dú)立性和一定的邏輯獨(dú)立性,整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述,由數(shù)據(jù)庫(kù)管理系統(tǒng)提供數(shù)據(jù)安全性、完整性、并發(fā)控制和恢復(fù)能力。

      讀者可以參考《概論》書中表1.1 中的有關(guān)內(nèi)容。

      文件系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)的聯(lián)系是:文件系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)都是計(jì)算機(jī)系統(tǒng)中管理數(shù)據(jù)的軟件。

      *解析:

      文件系統(tǒng)是操作系統(tǒng)的重要組成部分,而DBMS是獨(dú)立于操作系統(tǒng)的軟件。但是DBMS是在操作系統(tǒng)的基礎(chǔ)上實(shí)現(xiàn)的。數(shù)據(jù)庫(kù)中數(shù)據(jù)的組織和存儲(chǔ)是通過(guò)操作系統(tǒng)中文件系統(tǒng)來(lái)實(shí)現(xiàn)的。

      讀者進(jìn)一步學(xué)習(xí)數(shù)據(jù)庫(kù)管理系統(tǒng)實(shí)現(xiàn)的有關(guān)課程后可以對(duì)本題有深入的理解和全面的解答。因?yàn)镈BMS的實(shí)現(xiàn)與操作系統(tǒng)中的文件系統(tǒng)是緊密相關(guān)的。例如,數(shù)據(jù)庫(kù)實(shí)現(xiàn)的基礎(chǔ)是文件,對(duì)數(shù)據(jù)庫(kù)的任何操作最終要轉(zhuǎn)化為對(duì)文件的操作。所以在DBMS實(shí)現(xiàn)中數(shù)據(jù)庫(kù)物理組織的基本問(wèn)題是如何利用或如何選擇操作系統(tǒng)提供的基本的文件組織方法。這里我們就不具體展開了。

      4.舉出適合用文件系統(tǒng)而不是數(shù)據(jù)庫(kù)系統(tǒng)的例子;再舉出適合用數(shù)據(jù)庫(kù)系統(tǒng)的應(yīng)用例子。

      ·適用于文件系統(tǒng)而不是數(shù)據(jù)庫(kù)系統(tǒng)的應(yīng)用例子

      數(shù)據(jù)的備份,軟件或應(yīng)用程序使用過(guò)程中的臨時(shí)數(shù)據(jù)存儲(chǔ)一般使用文件比較合適。早期功能比較簡(jiǎn)單、比較固定的應(yīng)用系統(tǒng)也適合用文件系統(tǒng)。

      ·適用于數(shù)據(jù)庫(kù)系統(tǒng)而非文件系統(tǒng)的應(yīng)用例子

      目前,幾乎所有企業(yè)或部門的信息系統(tǒng)都以數(shù)據(jù)庫(kù)系統(tǒng)為基礎(chǔ),都使用數(shù)據(jù)庫(kù)。如一個(gè)工廠的管理信息系統(tǒng)(其中會(huì)包括許多子系統(tǒng),如庫(kù)存管理系統(tǒng)、物資采購(gòu)系統(tǒng)、作業(yè)調(diào)度系統(tǒng)、設(shè)備管理系統(tǒng)、人事管理系統(tǒng)等等),還比如學(xué)校的學(xué)生管理系統(tǒng),人事管理系統(tǒng),圖書館的圖書管理系統(tǒng)等等都適合用數(shù)據(jù)庫(kù)系統(tǒng)。希望同學(xué)們能舉出自己了解的應(yīng)用例子。

      5.試述數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)。

      數(shù)據(jù)庫(kù)系統(tǒng)的主要特點(diǎn)有:

      一、數(shù)據(jù)結(jié)構(gòu)化:數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,這是數(shù)據(jù)庫(kù)的主要特征之一,也是數(shù)據(jù)庫(kù)系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。

      *解析:注意這里“整體”兩個(gè)字。在數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)不再針對(duì)某一個(gè)應(yīng)用,而是面向全組織,具有整體的結(jié)構(gòu)化。不僅數(shù)據(jù)是結(jié)構(gòu)化的,而且數(shù)據(jù)的存取單位即一次可以存取數(shù)據(jù)的大小也很靈活??梢孕〉侥骋粋€(gè)數(shù)據(jù)項(xiàng)(如一個(gè)學(xué)生的姓名),大到一組記錄(成千上萬(wàn)個(gè)學(xué)生記錄)。而在文件系統(tǒng)中,數(shù)據(jù)的存取單位只有一個(gè):記錄。如一個(gè)學(xué)生的完整記錄。

      二、數(shù)據(jù)的共享性高,冗余度低,易擴(kuò)充 :數(shù)據(jù)庫(kù)的數(shù)據(jù)不再面向某個(gè)應(yīng)用而是面向整個(gè)系統(tǒng),因此可以被多個(gè)用戶、多個(gè)應(yīng)用、用多種不同的語(yǔ)言共享使用。由于數(shù)據(jù)面向整個(gè)系統(tǒng),是有結(jié)構(gòu)的數(shù)據(jù),不僅可以被多個(gè)應(yīng)用共享使用,而且容易增加新的應(yīng)用,這就使得數(shù)據(jù)庫(kù)系統(tǒng)彈性大,易于擴(kuò)充。

      *解析:

      數(shù)據(jù)共享可以大大減少數(shù)據(jù)冗余,節(jié)約存儲(chǔ)空間,同時(shí)還能夠避免數(shù)據(jù)之間的不相容性與不一致性。

      所謂“數(shù)據(jù)面向某個(gè)應(yīng)用”是指數(shù)據(jù)結(jié)構(gòu)是針對(duì)某個(gè)應(yīng)用設(shè)計(jì)的,只被這個(gè)應(yīng)用程序或應(yīng)用系統(tǒng)使用??梢哉f(shuō)數(shù)據(jù)是某個(gè)應(yīng)用的“私有資源”。

      所謂“彈性大”是指系統(tǒng)容易擴(kuò)充也容易收縮,即應(yīng)用增加或減少時(shí)不必修改整個(gè)數(shù)據(jù)庫(kù)的結(jié)構(gòu),或者只要做很少的修改。

      我們可以取整體數(shù)據(jù)的各種子集用于不同的應(yīng)用系統(tǒng),當(dāng)應(yīng)用需求改變或增加時(shí),只要重新選取不同的子集或加上一部分?jǐn)?shù)據(jù)便可以滿足新的需求。

      三、數(shù)據(jù)獨(dú)立性高:數(shù)據(jù)獨(dú)立性包括數(shù)據(jù)的物理獨(dú)立性和數(shù)據(jù)的邏輯獨(dú)立性。數(shù)據(jù)庫(kù)管理系統(tǒng)的模式結(jié)構(gòu)和二級(jí)映象功能保證了數(shù)據(jù)庫(kù)中的數(shù)據(jù)具有很高的物理獨(dú)立性和邏輯獨(dú)立性。

      *解析:

      所謂“獨(dú)立性”即相互不依賴。數(shù)據(jù)獨(dú)立性是指數(shù)據(jù)和程序相互不依賴。即數(shù)據(jù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)改變了,程序不會(huì)跟著改變。數(shù)據(jù)與程序的獨(dú)立,把數(shù)據(jù)的定義從程序中分離出去,加上數(shù)據(jù)的存取又由DBMS負(fù)責(zé),簡(jiǎn)化了應(yīng)用程序的編制,大大減少了應(yīng)用程序的維護(hù)和修改。

      四、數(shù)據(jù)由DBMS統(tǒng)一管理和控制:數(shù)據(jù)庫(kù)的共享是并發(fā)的共享,即多個(gè)用戶可以同時(shí)存取數(shù)據(jù)庫(kù)中的數(shù)據(jù)甚至可以同時(shí)存取數(shù)據(jù)庫(kù)中同一個(gè)數(shù)據(jù)。為此,DBMS必須提供統(tǒng)一的數(shù)據(jù)控制功能,包括數(shù)據(jù)的安全性保護(hù),數(shù)據(jù)的完整性檢查,并發(fā)控制和數(shù)據(jù)庫(kù)恢復(fù)。

      *解析:

      DBMS數(shù)據(jù)控制功能包括四個(gè)方面:

      數(shù)據(jù)的安全性保護(hù):保護(hù)數(shù)據(jù)以防止不合法的使用造成的數(shù)據(jù)的泄密和破壞;

      數(shù)據(jù)的完整性檢查:將數(shù)據(jù)控制在有效的范圍內(nèi)或保證數(shù)據(jù)之間滿足一定的關(guān)系;

      并發(fā)控制:對(duì)多用戶的并發(fā)操作加以控制和協(xié)調(diào),保證并發(fā)操作的正確性;

      數(shù)據(jù)庫(kù)恢復(fù):當(dāng)計(jì)算機(jī)系統(tǒng)發(fā)生硬件故障、軟件故障,或者由于操作員的失誤以及故意的破壞影響數(shù)據(jù)庫(kù)中數(shù)據(jù)的正確性,甚至造成數(shù)據(jù)庫(kù)部分或全部數(shù)據(jù)的丟失時(shí),能將數(shù)據(jù)庫(kù)從錯(cuò)誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)(亦稱為完整狀態(tài)或一致狀態(tài))。

      下面我們可以得到“什么是數(shù)據(jù)庫(kù)”的一個(gè)定義:

      數(shù)據(jù)庫(kù)是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)有組織的大量的共享的數(shù)據(jù)集合。它可以供各種用戶共享,具有最小冗余度和較高的數(shù)據(jù)獨(dú)立性。DBMS在數(shù)據(jù)庫(kù)建立、運(yùn)用和維護(hù)時(shí)對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一控制,以保證數(shù)據(jù)的完整性、安全性,并在多用戶同時(shí)使用數(shù)據(jù)庫(kù)時(shí)進(jìn)行并發(fā)控制,在發(fā)生故障后對(duì)系統(tǒng)進(jìn)行恢復(fù)。

      數(shù)據(jù)庫(kù)系統(tǒng)的出現(xiàn)使信息系統(tǒng)從以加工數(shù)據(jù)的程序?yàn)橹行霓D(zhuǎn)向圍繞共享的數(shù)據(jù)庫(kù)為中心的新階段。

      6.?dāng)?shù)據(jù)庫(kù)管理系統(tǒng)的主要功能有哪些?

      ①數(shù)據(jù)庫(kù)定義功能;

      ②數(shù)據(jù)存取功能;

      ③數(shù)據(jù)庫(kù)運(yùn)行管理;

      ④數(shù)據(jù)庫(kù)的建立和維護(hù)功能。

      7.試述數(shù)據(jù)模型的概念、數(shù)據(jù)模型的作用和數(shù)據(jù)模型的三個(gè)要素。

      數(shù)據(jù)模型是數(shù)據(jù)庫(kù)中用來(lái)對(duì)現(xiàn)實(shí)世界進(jìn)行抽象的工具,是數(shù)據(jù)庫(kù)中用于提供信息表示和操作手段的形式構(gòu)架。

      一般地講,數(shù)據(jù)模型是嚴(yán)格定義的概念的集合。這些概念精確地描述系統(tǒng)的靜態(tài)特性、動(dòng)態(tài)特性和完整性約束條件。因此數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三部分組成。

      ①數(shù)據(jù)結(jié)構(gòu):是所研究的對(duì)象類型的集合,是對(duì)系統(tǒng)的靜態(tài)特性的描述。

      ②數(shù)據(jù)操作:是指對(duì)數(shù)據(jù)庫(kù)中各種對(duì)象(型)的實(shí)例(值)允許進(jìn)行的操作的集合,包括操作及有關(guān)的操作規(guī)則,是對(duì)系統(tǒng)動(dòng)態(tài)特性的描述。

      ③數(shù)據(jù)的約束條件:是完整性規(guī)則的集合,完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫(kù)狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。

      *解析:

      數(shù)據(jù)模型是數(shù)據(jù)庫(kù)系統(tǒng)中最重要的概念之一。同學(xué)們必須通過(guò)《概論》的學(xué)習(xí)真正掌握

      數(shù)據(jù)模型的概念和作用。

      數(shù)據(jù)模型是數(shù)據(jù)庫(kù)系統(tǒng)的基礎(chǔ)。任何一個(gè)DBMS都以某一個(gè)數(shù)據(jù)模型為基礎(chǔ),或者說(shuō)支持某一個(gè)數(shù)據(jù)模型。

      數(shù)據(jù)庫(kù)系統(tǒng)中模型有不同的層次。根據(jù)模型應(yīng)用的不同目的,可以將模型分成兩類或說(shuō)兩個(gè)層次:一是概念模型,是按用戶的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模,用于信息世界的建模,強(qiáng)調(diào)語(yǔ)義表達(dá)能力,概念簡(jiǎn)單清晰;另一是數(shù)據(jù)模型,是按計(jì)算機(jī)系統(tǒng)的觀點(diǎn)對(duì)數(shù)據(jù)建模,用于機(jī)器世界,人們可以用它定義、操縱數(shù)據(jù)庫(kù)中的數(shù)據(jù)。一般需要有嚴(yán)格的形式化定義和一組嚴(yán)格定義了語(yǔ)法和語(yǔ)義的語(yǔ)言,并有一些規(guī)定和限制,便于在機(jī)器上實(shí)現(xiàn)。

      8.試述概念模型的作用。

      概念模型實(shí)際上是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次。概念模型用于信息世界的建模,是現(xiàn)實(shí)世界到信息世界的第一層抽象,是數(shù)據(jù)庫(kù)設(shè)計(jì)人員進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)的有力工具,也是數(shù)據(jù)庫(kù)設(shè)計(jì)人員和用戶之間進(jìn)行交流的語(yǔ)言。

      9.定義并解釋概念模型中以下術(shù)語(yǔ):

      實(shí)體,實(shí)體型,實(shí)體集,屬性,碼,實(shí)體聯(lián)系圖(E-R圖)

      實(shí)體:客觀存在并可以相互區(qū)分的事物叫實(shí)體。

      實(shí)體型:具有相同屬性的實(shí)體具有相同的特征和性質(zhì),用實(shí)體名及其屬性名集合來(lái)抽象和刻畫同類實(shí)體稱為實(shí)體型。

      實(shí)體集:同型實(shí)體的集合稱為實(shí)體集。

      屬性:實(shí)體所具有的某一特性,一個(gè)實(shí)體可由若干個(gè)屬性來(lái)刻畫。

      碼:唯一標(biāo)識(shí)實(shí)體的屬性集稱為碼。

      實(shí)體聯(lián)系圖:E-R圖提供了表示實(shí)體型、屬性和聯(lián)系的方法:

      · 實(shí)體型:用矩形表示,矩形框內(nèi)寫明實(shí)體名。

      · 屬性:用橢圓形表示,并用無(wú)向邊將其與相應(yīng)的實(shí)體連接起來(lái)。

      ·聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無(wú)向邊分別與有關(guān)實(shí)體連接起來(lái),同時(shí)在無(wú)向邊旁標(biāo)上聯(lián)系的類型(1 : 1,1 : n或m : n)。

      10.試給出三個(gè)實(shí)際部門的E-R圖,要求實(shí)體型之間具有一對(duì)一,一對(duì)多,多對(duì)多各種不同的聯(lián)系。

      關(guān)系數(shù)據(jù)庫(kù)

      一、選擇題

      1.下面的選項(xiàng)不是關(guān)系數(shù)據(jù)庫(kù)基本特征的是()。

      A.不同的列應(yīng)有不同的數(shù)據(jù)類型

      B.不同的列應(yīng)有不同的列名

      C.與行的次序無(wú)關(guān)

      D.與列的次序無(wú)關(guān)

      2.一個(gè)關(guān)系只有一個(gè)()。

      A.候選碼

      B.外碼

      C.超碼

      D.主碼

      3.關(guān)系模型中,一個(gè)碼是()。

      A.可以由多個(gè)任意屬性組成 B.至多由一個(gè)屬性組成

      C.可有多個(gè)或者一個(gè)其值能夠唯一表示該關(guān)系模式中任何元組的屬性組成D.以上都不是

      4.現(xiàn)有如下關(guān)系:

      患者(患者編號(hào),患者姓名,性別,出生日起,所在單位)

      醫(yī)療(患者編號(hào),患者姓名,醫(yī)生編號(hào),醫(yī)生姓名,診斷日期,診斷結(jié)果)

      其中,醫(yī)療關(guān)系中的外碼是()。

      A.患者編號(hào)

      B.患者姓名

      C.患者編號(hào)和患者姓名

      D.醫(yī)生編號(hào)和患者編號(hào)

      5.現(xiàn)有一個(gè)關(guān)系:借閱(書號(hào),書名,庫(kù)存數(shù),讀者號(hào),借期,還期),假如同一本書允許一個(gè)讀者多次借閱,但不能同時(shí)對(duì)一種書借多本,則該關(guān)系模式的外碼是()。

      A.書號(hào)

      B.讀者號(hào)

      C.書號(hào)+讀者號(hào)

      D.書號(hào)+讀者號(hào)+借期

      6.關(guān)系模型中實(shí)現(xiàn)實(shí)體間 N:M 聯(lián)系是通過(guò)增加一個(gè)()。

      A.關(guān)系實(shí)現(xiàn)

      B.屬性實(shí)現(xiàn)

      C.關(guān)系或一個(gè)屬性實(shí)現(xiàn)

      D.關(guān)系和一個(gè)屬性實(shí)現(xiàn)

      7.關(guān)系代數(shù)運(yùn)算是以()為基礎(chǔ)的運(yùn)算。

      A.關(guān)系運(yùn)算

      B.謂詞演算

      C.集合運(yùn)算

      D.代數(shù)運(yùn)算

      8.關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)應(yīng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括()。

      A.排序、索引、統(tǒng)計(jì)

      B.選擇、投影、連接 C.關(guān)聯(lián)、更新、排序

      D.顯示、打印、制表

      9.五種基本關(guān)系代數(shù)運(yùn)算是()。

      A.∪ - × σ π

      B.∪ - σ π

      C.∪ ∩ × σ π

      D.∪ ∩ σ π

      10.關(guān)系代數(shù)表達(dá)式的優(yōu)化策略中,首先要做的是()。

      A.對(duì)文件進(jìn)行預(yù)處理

      B.盡早執(zhí)行選擇運(yùn)算

      C.執(zhí)行笛卡爾積運(yùn)算

      D.投影運(yùn)算

      11.關(guān)系數(shù)據(jù)庫(kù)中的投影操作是指從關(guān)系中()。

      A.抽出特定記錄

      B.抽出特定字段

      C.建立相應(yīng)的影像

      D.建立相應(yīng)的圖形

      12.從一個(gè)數(shù)據(jù)庫(kù)文件中取出滿足某個(gè)條件的所有記錄形成一個(gè)新的數(shù)據(jù)庫(kù)文件的操作是()操作。

      A.投影

      B.聯(lián)接

      C.選擇

      D.復(fù)制

      13.關(guān)系代數(shù)中的聯(lián)接操作是由()操作組合而成。

      A.選擇和投影 B.選擇和笛卡爾積

      C.投影、選擇、笛卡爾積

      D.投影和笛卡爾積

      14.自然聯(lián)接是構(gòu)成新關(guān)系的有效方法。一般情況下,當(dāng)對(duì)關(guān)系R和S是用自然聯(lián)接時(shí),要求R和S含有一個(gè)或者多個(gè)共有的()。

      A.記錄

      B.行

      C.屬性

      D.元組

      15.假設(shè)有關(guān)系R和S,在下列的關(guān)系運(yùn)算中,()運(yùn)算不要求:“R和S具有相同的元數(shù),且它們的對(duì)應(yīng)屬性的數(shù)據(jù)類型也相同”。

      A.R∩S

      B.R∪S

      C.R-S

      D.R×S

      16.假設(shè)有關(guān)系R和S,關(guān)系代數(shù)表達(dá)式R-(R-S)表示的是()。

      A.R∩S

      B.R∪S

      C.R-S

      D.R×S

      17.下面列出的關(guān)系代數(shù)表達(dá)是中,那些式子能夠成立()。

      ⅰ.σf1(σf2(E))= σf1∧f2(E)

      ⅱ.E1∞E2 = E2∞E1

      ⅲ.(E1∞E2)∞E3 = E1∞(E2∞E3)

      ⅳ.σf1(σf2(E))=σf2(σf1(E))

      A.全部

      B.ⅱ和ⅲ C.沒(méi)有

      D.ⅰ和ⅳ

      18.下面四個(gè)關(guān)系表達(dá)式是等價(jià)的,是判別它們的執(zhí)行效率()。

      E1 =πA(σ B=C ∧ D=E′(R×S))

      E2 =πA(σ B=C(R× σD=E′(S))

      E3 =πA(R∞B=CσD=E′(S))

      E3 =πA(σD=E′(R∞B=C S))

      A.E3最快

      B.E2最快 C.E4最快 D.E1最快

      19.有關(guān)系SC(S_ID,C_ID,AGE,SCORE),查找年齡大于22歲的學(xué)生的學(xué)號(hào)和分?jǐn)?shù),正確的關(guān)系代數(shù)表達(dá)式是()。

      ⅰ.πS_ID,SCORE(σ age>22(SC))

      ⅱ.σ age>22(πS_ID,SCORE(SC))

      ⅲ.πS_ID,SCORE(σ age>22(πS_ID,SCORE,AGE(SC)))

      A.ⅰ和 ⅱ

      B.只有ⅱ正確

      C.只有 ⅰ正確

      D.ⅰ和ⅲ正確

      選擇題參考答案:(1)A(2)D(3)C(4)A(5)D(6)A(7)C(8)B(9)A(10)B

      (11)B(12)C(13)B(14)C(15)D(16)A(17)C(18)A(19)D

      二、簡(jiǎn)答題

      1.試述關(guān)系模型的三個(gè)組成部分。

      2.試述關(guān)系數(shù)據(jù)語(yǔ)言的特點(diǎn)和分類。

      3.設(shè)有一個(gè)SPJ數(shù)據(jù)庫(kù),包括S,P,J,SPJ四個(gè)關(guān)系模式:

      S(SNO,SNAME,STATUS,CITY);

      P(PNO,PNAME,COLOR,WEIGHT);

      J(JNO,JNAME,CITY);

      SPJ(SNO,PNO,JNO,QTY);

      供應(yīng)商表S由供應(yīng)商代碼(SNO)、供應(yīng)商姓名(SNAME)、供應(yīng)商狀態(tài)(STATUS)、供應(yīng)商所在城市(CITY)組成;零件表P由零件代碼(PNO)、零件名(PNAME)、顏色(COLOR)、重量(WEIGHT)組成;工程項(xiàng)目表J由工程項(xiàng)目代碼(JNO)、工程項(xiàng)目名(JNAME)、工程項(xiàng)目所在城市(CITY)組成;供應(yīng)情況表SPJ由供應(yīng)商代碼(SNO)、零件代碼(PNO)、工程項(xiàng)目代碼(JNO)、供應(yīng)數(shù)量(QTY)組成,表示某供應(yīng)商供應(yīng)某種零件給某工程項(xiàng)目的數(shù)量為QTY。

      試用關(guān)系代數(shù)完成如下查詢:

      (1)求供應(yīng)工程J1零件的供應(yīng)商號(hào)碼SNO;

      (2)求供應(yīng)工程J1零件P1的供應(yīng)商號(hào)碼SNO;

      (3)求供應(yīng)工程J1零件為紅色的供應(yīng)商號(hào)碼SNO;

      (4)求沒(méi)有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號(hào)JNO;

      (5)求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號(hào)JNO。

      4.定義并理解下列術(shù)語(yǔ),說(shuō)明它們之間的聯(lián)系與區(qū)別:

      (1)域,笛卡爾積,關(guān)系,元組,屬性

      (2)主碼,候選碼,外碼

      (3)關(guān)系模式,關(guān)系,關(guān)系數(shù)據(jù)庫(kù)

      5.試述關(guān)系模型的完整性規(guī)則。在參照完整性中,為什么外碼屬性的值有時(shí)也可以為空?什么情況下才可以為空?

      6.試述等值連接與自然連接的區(qū)別和聯(lián)系。

      7.關(guān)系代數(shù)的基本運(yùn)算有哪些?

      8.試用關(guān)系代數(shù)的基本運(yùn)算來(lái)表示其他運(yùn)算。

      SQL語(yǔ)言

      一、選擇題

      1.SQL語(yǔ)言是()的語(yǔ)言,容易學(xué)習(xí)。

      A.過(guò)程化

      B.非過(guò)程化

      C.格式化

      D.導(dǎo)航式

      2.SQL語(yǔ)言的數(shù)據(jù)操縱語(yǔ)句包括SELECT、INSERT、UPDATE、DELETE等。其中最重要的,也是使用最頻繁的語(yǔ)句是()。

      A.SELECT B.INSERT

      C.UPDATE D.DELETE

      3.在視圖上不能完成的操作是()。

      A.更新視圖

      B.查詢

      C.在視圖上定義新的表

      D.在視圖上定義新的視圖

      4.SQL語(yǔ)言集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制功能于一體,其中,CREATE、DROP、ALTER語(yǔ)句是實(shí)現(xiàn)哪種功能()。

      A.數(shù)據(jù)查詢

      B.數(shù)據(jù)操縱

      C.數(shù)據(jù)定義 D.數(shù)據(jù)控制

      5.SQL語(yǔ)言中,刪除一個(gè)視圖的命令是()。

      A.DELETE

      B.DROP

      C.CLEAR

      D.REMOVE

      6.在SQL語(yǔ)言中的視圖VIEW是數(shù)據(jù)庫(kù)的()。

      A.外模式

      B.模式

      C.內(nèi)模式

      D.存儲(chǔ)模式

      7.下列的SQL語(yǔ)句中,()不是數(shù)據(jù)定義語(yǔ)句。

      A.CREATE TABLE B.DROP VIEW

      C.CREATE VIEW D.GRANT

      8.若要撤銷數(shù)據(jù)庫(kù)中已經(jīng)存在的表S,可用()。

      A.DELETE TABLE S B.DELETE S

      C.DROP TABLE S D.DROP S

      9.若要在基本表S中增加一列CN(課程名),可用()。

      A.ADD TABLE S(CN CHAR(8))

      B.ADD TABLE S ALTER(CN CHAR(8))

      C.ALTER TABLE S ADD(CN CHAR(8))D.ALTER TABLE S(ADD CN CHAR(8))

      10.學(xué)生關(guān)系模式 S(S#,Sname,Sex,Age),S的屬性分別表示學(xué)生的學(xué)號(hào)、姓名、性別、年齡。要在表S中刪除一個(gè)屬性“年齡”,可選用的SQL語(yǔ)句是()。

      第三篇:SQL數(shù)據(jù)庫(kù)選擇題及答案

      1、在數(shù)據(jù)庫(kù)技術(shù)中,獨(dú)立于計(jì)算機(jī)系統(tǒng)的模型是_C__。A、面向?qū)ο蟮哪P虰、關(guān)系模型C、E-R模型D、層次模型

      2、數(shù)據(jù)庫(kù)系統(tǒng)的控制中樞是__B_。A、數(shù)據(jù)庫(kù)、b、數(shù)據(jù)庫(kù)管理系統(tǒng)C、數(shù)據(jù)庫(kù)管理員D、數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)

      3、使用SQL命令將學(xué)生表STUDENT中的學(xué)生年齡AGE字段的值增加1歲,應(yīng)該使用的命令是__C_。

      A、UPDATE SET AGE WITH AGE+1

      B、REPLACE AGE WITH AGE+1

      C、UPDATE STUDENT SET AGE=AGE+1

      D、UPDATE STUDENT AGE WITH AGE+1

      4、在關(guān)系數(shù)據(jù)庫(kù)中,建立數(shù)據(jù)庫(kù)表時(shí),將年齡字段值限制在12~40歲之間的這種約束屬于__B__。

      A、視圖完整性約束B、域完整性約束C、參照完整性約束D、實(shí)體完整性約束

      5、在 SQL 語(yǔ)句中,與 X BETWEEN 20 AND 30 等價(jià)的表達(dá)式是__D_。A、X>=20 AND X<30

      B、X>20 AND X<30

      C、X>20 AND X<=30

      D、X>=20 AND X<=30

      6、在數(shù)據(jù)庫(kù)中,概念模型是_D__。A、用于現(xiàn)實(shí)的建模,與具體的DBMS有關(guān)B、用于信息世界的建模,與具體的DBMS有關(guān)

      C、用于現(xiàn)實(shí)的建模,與具體的DBMS無(wú)關(guān)D、用于信息世界的建模,與具體的DBMS無(wú)關(guān)

      7、數(shù)據(jù)庫(kù)的并發(fā)操作可能帶來(lái)的問(wèn)題包括__B_。A非法用戶的使用B丟失更新C數(shù)據(jù)獨(dú)立性會(huì)提高D增加數(shù)據(jù)冗余度

      8、在關(guān)系數(shù)據(jù)庫(kù)中,模式對(duì)應(yīng)的是__A___。A、視圖和所有基本表

      B、視圖和部分基本表

      C、基本表

      D、索引

      9、能實(shí)現(xiàn)絕對(duì)的與平臺(tái)無(wú)關(guān)性的Web數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)是_D_。A、ADO

      B、ActiveX

      C、WebbaseAPI

      D、JDBC

      10、在下列描述中,正確的描述是__B___。

      A、SQL 是一種過(guò)程化語(yǔ)言B、SQL 采用集合操作方式

      C、SQL 不能嵌入到高級(jí)語(yǔ)言程序中

      D、SQL 是一種 DBMS

      11、數(shù)據(jù)庫(kù)系統(tǒng)是由__A__組成的。A、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)和用戶

      B、數(shù)據(jù)文件、命令文件和報(bào)表

      C、數(shù)據(jù)庫(kù)文件結(jié)構(gòu)和數(shù)據(jù)

      D、常量、變量和函數(shù)

      12、在SQL查詢時(shí),使用WHERE子句指出的是__B__。A、查詢目標(biāo)B、查詢條件C、查詢視圖D、查詢結(jié)果

      13、在下列 RDMBS 產(chǎn)品中,屬于小型數(shù)據(jù)庫(kù)系統(tǒng)的是_A_。A、Access B、Oracle C、Sybase D、Informix

      14、數(shù)據(jù)庫(kù)類型是按照_A_來(lái)劃分的。

      A、數(shù)據(jù)模型B、記錄形式C、數(shù)據(jù)存取方法D、文件形式

      15、作為Microsoft Office家族成員之一的_A_數(shù)據(jù)庫(kù),能夠與其他Office組件進(jìn)行數(shù)據(jù)交換共享數(shù)據(jù)資源,易于生成集文字處理、圖表生成和數(shù)據(jù)管理于一體的辦公自動(dòng)化系統(tǒng)。A、Access

      B、Oracle

      C、Sybase

      D、Informix

      16、數(shù)據(jù)庫(kù)管理系統(tǒng)更適合于_D_方面的應(yīng)用。A、CAD

      B、過(guò)程控制C、科學(xué)計(jì)算D、數(shù)據(jù)處理

      17、下列四組SQL命令,全部屬于數(shù)據(jù)定義語(yǔ)句的命令是_C__。A、CREATE,DROP,ALTER

      B、CREATE,DROP,UPDATE

      C、CREATE,DROP,GRANT

      D、CREATE,DROP,SELECT

      18、通過(guò)Internet及瀏覽器處理的數(shù)據(jù)庫(kù),應(yīng)該是_C__處理。A、集中式

      B、分布式

      C、主從結(jié)構(gòu)式D、以上3種模式

      19、數(shù)據(jù)的邏輯獨(dú)立性是指__D_。A、數(shù)據(jù)與存儲(chǔ)結(jié)構(gòu)的邏輯獨(dú)立性 B、數(shù)據(jù)元素之間的邏輯獨(dú)立性

      C、存儲(chǔ)結(jié)構(gòu)與物理結(jié)構(gòu)的邏輯獨(dú)立性

      D、數(shù)據(jù)與程序的邏輯獨(dú)立性

      20、在數(shù)據(jù)庫(kù)技術(shù)中,獨(dú)立于計(jì)算機(jī)系統(tǒng)的模型是_C__。A面向?qū)ο蟮哪P?/p>

      B關(guān)系模型

      C、E-R模型

      D、層次模型

      21、關(guān)系代數(shù)的3個(gè)基本運(yùn)算是–D--、投影、連接。A、關(guān)系與B、蘊(yùn)含C、關(guān)系或D、選擇

      22、下面命題不正確的是:A、若冗余數(shù)據(jù)可以控制,則數(shù)據(jù)更新的一致性得以保證

      B、數(shù)據(jù)庫(kù)減少了不必要的數(shù)據(jù)冗余C、數(shù)據(jù)庫(kù)的數(shù)據(jù)可以共享D、數(shù)據(jù)庫(kù)中不存在數(shù)據(jù)冗余

      23、在基本SQL中不可以實(shí)現(xiàn): A、定義視圖B、并發(fā)控制C、定義基表D、查詢視圖和基表

      24、用二維表來(lái)表示實(shí)體及實(shí)體之間聯(lián)系的數(shù)據(jù)模型稱為_C___。

      A、實(shí)體-聯(lián)系模型B、層次模型C、關(guān)系模型D、網(wǎng)狀模型

      25、查找工資在600元以上并且職稱為工程師的紀(jì)錄,邏輯表達(dá)式為_D___。

      A、“工資”>600.OR.職稱=“工程師”

      B、工資>600.AND.職稱=工程師

      C、“工資”>600.AND.“職稱”=“工程師”

      D、工資>600.AND.職稱=“工程師”

      26、數(shù)據(jù)庫(kù)鏡像可以用于__C_。(1分)

      A、實(shí)現(xiàn)數(shù)據(jù)庫(kù)的安全性

      B、實(shí)現(xiàn)數(shù)據(jù)共享C、進(jìn)行數(shù)據(jù)庫(kù)恢復(fù)或并發(fā)操作D、保證數(shù)據(jù)庫(kù)的完整性

      27、在下列類型的數(shù)據(jù)庫(kù)系統(tǒng)中,應(yīng)用最廣泛的是__C___。(1分)

      A、分布型數(shù)據(jù)庫(kù)系統(tǒng)B、邏輯型數(shù)據(jù)庫(kù)系統(tǒng)C、關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)D、層次型數(shù)據(jù)庫(kù)系統(tǒng)

      28、在下列描述中,正確的描述是__B__。(1分)A、SQL 是一種過(guò)程化語(yǔ)言B、SQL 采用集合操作方式

      C、SQL 不能嵌入到高級(jí)語(yǔ)言程序中

      D、SQL 是一種 DBMS

      第四篇:數(shù)據(jù)庫(kù)考試題及答案

      2011年下學(xué)期期末綜合練習(xí)題

      學(xué)備注:答案請(qǐng)用紅色字體寫出。

      數(shù)據(jù)庫(kù)名:學(xué)生成績(jī)數(shù)據(jù)庫(kù)

      學(xué)生信息表(學(xué)號(hào) char(6),姓名,性別,民族,身份證號(hào))課程信息表(課號(hào) char(6),名稱)成績(jī)信息表(ID,學(xué)號(hào),課號(hào),分?jǐn)?shù))

      一、用SQL語(yǔ)言實(shí)現(xiàn)下列功能的sql語(yǔ)句代碼。

      1.創(chuàng)建數(shù)據(jù)庫(kù)[學(xué)生成績(jī)數(shù)據(jù)庫(kù)] 的方法有哪幾種,分別是什么?(9分)。答:有SSMS T—SQL 2.創(chuàng)建數(shù)據(jù)表[課程信息表]代碼;(8分)

      課程信息表(課號(hào) char(6),名稱)要求使用:主鍵(課號(hào))、非空(名稱)答:Use 學(xué)生成績(jī)數(shù)據(jù)庫(kù) go create table 學(xué)生信息表

      (課號(hào) char(6)not null primary key)3.創(chuàng)建數(shù)據(jù)表[學(xué)生信息表]代碼;(8分)

      學(xué)生信息表(學(xué)號(hào) char(6),姓名,性別,民族,身份證號(hào))要求使用:主鍵(學(xué)號(hào))、默認(rèn)(民族)、非空(民族,姓名)、唯一(身份證號(hào))、檢查(性別)答:Use 學(xué)生成績(jī)數(shù)據(jù)庫(kù) go create table 學(xué)生信息表

      (學(xué)號(hào) char(6)not null primary key, 性別 varchar(2)check constraint(性別 in(‘男’,‘女’)),姓名 char(8)not null 民族 varchar(20)default ‘漢族’not null,身份證號(hào) char(20)unique)go

      4.創(chuàng)建數(shù)據(jù)表[成績(jī)信息表];(8分)成績(jī)信息表(ID,學(xué)號(hào),課號(hào),分?jǐn)?shù))要求使用:外鍵(學(xué)號(hào),課號(hào))、檢查(分?jǐn)?shù)),自動(dòng)編號(hào)(ID)答: use 成績(jī)數(shù)據(jù)庫(kù) go create table 成績(jī)信息表(ID char(8)學(xué)號(hào)

      課號(hào)

      分?jǐn)?shù) int cheak(分?jǐn)?shù) in)

      5.將下列課程信息添加到課程信息表的代碼(8分)

      課號(hào) 名稱 100101 西班牙語(yǔ)

      100102 大學(xué)英語(yǔ)

      修改 課號(hào)為100102的課程名稱:專業(yè)英語(yǔ)

      刪除 課號(hào)為100101的課程信息

      6.創(chuàng)建視圖[成績(jī)信息表視圖]的代碼;(8分)

      成績(jī)信息表視圖(學(xué)號(hào),姓名,課號(hào),課程名稱,分?jǐn)?shù))答: create view view1 as select 學(xué)號(hào),姓名,課號(hào),課程名稱,分?jǐn)?shù) from 成績(jī)信息表,學(xué)生信息表,成績(jī)信息 where 學(xué)生信息表,學(xué)號(hào)=成績(jī)信息表,學(xué)號(hào) and 課程信息表,課號(hào)=成績(jī)信息表,課號(hào)

      7.從學(xué)生信息表中查詢姓劉的女同學(xué)的情況:姓名、性別、民族。(5分 答: Select 姓名、性別、民族 From學(xué)生信息表

      Where姓名=‘劉%’ and 性別=‘女’

      8.查詢有一門或一門以上課程成績(jī)小于60分的所有學(xué)生的信息,包括學(xué)號(hào)、姓名。(6分)

      9.創(chuàng)建帶參數(shù)的存儲(chǔ)過(guò)程[某門課程高低均分]、執(zhí)行該過(guò)程的代碼(20分)存儲(chǔ)過(guò)程功能:查詢某門課程的最高分、最低分、平均分; 執(zhí)行該過(guò)程,查詢所有修’專業(yè)英語(yǔ)’這門學(xué)生的最高分、最低分、平均分;

      二、創(chuàng)建一個(gè)存儲(chǔ)過(guò)程,利用傳入?yún)?shù)傳入班級(jí)編號(hào),查詢?cè)摪嗉?jí)編號(hào)的學(xué)生的學(xué)號(hào),姓名,入學(xué)成績(jī),班級(jí)編碼,班級(jí)名稱,所屬系部,并執(zhí)行它。(20分)表說(shuō)明:

      學(xué)生信息表(學(xué)號(hào) char(6),姓名,性別,民族,身份證號(hào), 入學(xué)成績(jī))班級(jí)信息表(班級(jí)編碼char(6),學(xué)號(hào)char(6),班級(jí)名稱)系部信息表(系部號(hào),學(xué)號(hào)char(6),系部名稱)Creat proc proc1 @班級(jí)編號(hào) As Select 學(xué)號(hào),姓名,入學(xué)成績(jī),班級(jí)編碼,班級(jí)名稱,所屬系部 From學(xué)生信息表,班級(jí)信息表,系部信息表 Where 學(xué)生信息表,學(xué)號(hào)=系部信息表,學(xué)號(hào)

      Exce proc1 班級(jí)編碼=@班級(jí)編碼

      第五篇:數(shù)據(jù)庫(kù) sql習(xí)題及答案

      /*

      Question 1:Find the titles of all movies directed by Steven Spielberg.select title from movie where director='Steven Spielberg'

      Question 2:Find all years that have a movie that received a rating of 4 or 5, and sort them in increasing order.select distinct year from movie,rating where movie.mid=rating.mid and stars in(4,5)order by year

      Question 3:Find the titles of all movies that have no ratings

      select title from movie where mID in

      (select mid from Movie except

      select mid from rating)

      select title from movie except

      select title from movie,rating where movie.mid=rating.mid

      Question 4:Some reviewers didn't provide a date with their rating.Find the names of all reviewers who have ratings with a NULL value for the date.select name from reviewer,rating where reviewer.rid=rating.rid and ratingdate is null

      Question 5:Write a query to return the ratings data in a more readable format: reviewer name, movie title, stars, and ratingDate.Also, sort the data, first by reviewer name, then by movie title, and lastly by number of stars.select name,title,stars,ratingdate from movie,rating,reviewer where movie.mid=rating.mid and reviewer.rid=rating.rid order by name,title,stars

      Question 6:For all cases where the same reviewer rated the same movie twice and gave it a higher rating the second time, return the reviewer's name and the title of the movie.select name,title

      from rating as F,Rating as S,Movie,Reviewer where F.rID=S.rID and F.mID=S.mID and F.stars

      and F.ratingDate

      select name,title from movie,reviewer,(select r1.rid,r1.mid from rating as r1,rating as r2 where r1.rid=r2.rid and r1.mid=r2.mid and r1.ratingdate>r2.ratingdate and r1.stars>r2.stars)as r

      where movie.mid=r.mid and reviewer.rid=r.rid

      Question 7:For each movie, find the highest number of stars that movie received as a rating.Return the movie title and number of stars.Sort by movie title.select title,MAX(stars)as max_star from rating,Movie

      where Rating.mID=Movie.mID group by title order by title

      select title,maxrating from movie,(select mid,max(stars)as maxrating from rating group by mid)as r where movie.mid=r.mid order by title

      Question 8:For each movie, return the title and the ‘rating spread(范圍)', that is, the difference between highest and lowest ratings given to that movie.Sort by rating spread from highest to lowest, then by movie title.select title,MAX(stars)-MIN(stars)as rating_spread from rating,Movie

      where Rating.mID=Movie.mID group by title

      order by rating_spread desc,title

      select title,spread as “rating spread”

      from movie,(select mid,max(stars)-min(stars)as spread from rating group by mid)as r where movie.mid=r.mid order by spread desc,title

      Question 9:Find the difference between the average rating of movies released before 1980 and the average rating of movies released after 1980.(Make sure to calculate the average rating for each movie, then the average of those averages for movies before 1980 and movies after.Don't just calculate the overall average rating before and after 1980.)

      select F.avg_star-S.avg_star from,(select AVG(avg_star)as avg_star from(select Rating.mID,AVG(stars)as avg_star

      from Rating left join Movie on Rating.mID=Movie.mID where year>=1980 group by Rating.mID)as S(select AVG(avg_star)as avg_star from(select Rating.mID,AVG(stars)as avg_star

      from Rating left join Movie on Rating.mID=Movie.mID where year<1980 group by Rating.mID)as F)as F)as S

      select r1979.avgm-r1980.avgm from

      ,Question 10:Add the reviewer Roger Ebert to your database, with an rID of 209.insert into Reviewer values(209,'Roger Ebert')

      Question 11:

      Insert 5-star ratings by James Cameron for all movies in the database.Leave the review date as NULL.insert into Rating(rID,mID,stars)select rid,mID,5 as stras from movie,(select rid from Reviewer where name='James Cameron')as T

      insert into rating(rid,mid,stars)select rid,mid,5 from reviewer,movie where name='James Cameron'

      Question 12:For all movies that have an average rating of 4 stars or higher, add 25 to the release year.(Update the existing tuples;don't insert new tuples.)

      update Movie set year=year+25(select sum(avgrating)/count(*)as avgM from

      (select avg(stars)as avgrating from rating,movie where movie.mid=rating.mid and year>=1980 group by movie.mid)(select sum(avgrating)/count(*)as avgM from

      (select avg(stars)as avgrating from rating,movie where movie.mid=rating.mid and year<1980 group by movie.mid)

      as r)

      as r1979

      as r)

      as r1980 where mID in

      (select mID from Rating group by mID having AVG(stars)>=4)

      */

      下載SQL數(shù)據(jù)庫(kù)期末考試題及答案[五篇模版]word格式文檔
      下載SQL數(shù)據(jù)庫(kù)期末考試題及答案[五篇模版].doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        SQL數(shù)據(jù)庫(kù)題庫(kù)及答案 (6)

        實(shí)訓(xùn)11用戶自定義函數(shù)及存儲(chǔ)過(guò)程 --1、創(chuàng)建一個(gè)存儲(chǔ)過(guò)程,查看student表里的所有記錄,并運(yùn)行該存儲(chǔ)過(guò)程。其代碼如下: CREATE PROC pr_studentCodes AS SELECT * FROM student G......

        SQL數(shù)據(jù)庫(kù)期末復(fù)習(xí)試題 - 填空

        三、填空題(每空1分,共20分) 1.數(shù)據(jù)庫(kù)系統(tǒng)具有數(shù)據(jù)的___外模式____、__模式_____和內(nèi)模式三級(jí)模式結(jié)構(gòu)。 2.SQL Server 2000局部變量名字必須以____@、_____開頭,而全局變量名......

        SQL數(shù)據(jù)庫(kù)心得

        黃淮學(xué)院 2015--- 2016學(xué)年第 一 學(xué)期 《C#數(shù)據(jù)庫(kù)應(yīng)用程序開發(fā)技術(shù)與案例教程》課程 題目:學(xué)習(xí)報(bào)告 院系:數(shù)學(xué)科學(xué)系 專業(yè):數(shù)學(xué)與應(yīng)用數(shù)學(xué) 年級(jí):1301B 姓名:曹占營(yíng) 學(xué)號(hào):1331110......

        數(shù)據(jù)庫(kù)sql課后練習(xí)題及答案解析

        先創(chuàng)建下面三個(gè)表: (book表) (borrow表) (reader表) 1) 找出姓李的讀者姓名(NAME)和所在單位(COMPANY)。 2) 列出圖書庫(kù)中所有藏書的書名(BOOK_NAME)及出版單位(OUTPUT)。 3) 查......

        SQL Server數(shù)據(jù)庫(kù)試題七及答案

        SQL Server數(shù)據(jù)庫(kù)試題七及答案 一.單項(xiàng)選擇題(每題2分,計(jì)30分) 1._______是數(shù)據(jù)庫(kù)系統(tǒng)的核心,它負(fù)責(zé)數(shù)據(jù)庫(kù)的配置、存取、管理和維護(hù)等工作。(c ) A、操作系統(tǒng) B、關(guān)系模型 C、數(shù)......

        SQL Server數(shù)據(jù)庫(kù)試題九及答案

        一、選擇題(每題2分,共30分) 1、下面不屬于數(shù)據(jù)定義功能的SQL語(yǔ)句是:( ) A.CREAT TABLE B.CREAT CURSOR C.UPDATE D.ALTER TABLE 2、SQL數(shù)據(jù)庫(kù)中的視圖與下列哪項(xiàng)是對(duì)應(yīng)的( )。 A.......

        SQL Server數(shù)據(jù)庫(kù)試題九及答案

        SQL Server數(shù)據(jù)庫(kù)試題九及答案 一、選擇題(每題2分,共30分) 1、下面不屬于數(shù)據(jù)定義功能的SQL語(yǔ)句是:( ) A.CREAT TABLE B.CREAT CURSOR C.UPDATE D.ALTER TABLE 2、SQL數(shù)據(jù)庫(kù)......

        數(shù)據(jù)庫(kù)sql語(yǔ)言總結(jié)

        插入句型: insertinto [各屬性名]values(,……)刪除元組或者二維表: delete from[ where ]刪除屬性: altertabledropcolumn增加某表的屬性: altertableadd 類型 修改句型: update......