數(shù)據(jù)庫原理與應(yīng)用(SQL Server) 全書試題答案 -第1-13章 數(shù)據(jù)庫概述-數(shù)據(jù)庫技術(shù)發(fā)展概述_第1頁
數(shù)據(jù)庫原理與應(yīng)用(SQL Server) 全書試題答案 -第1-13章 數(shù)據(jù)庫概述-數(shù)據(jù)庫技術(shù)發(fā)展概述_第2頁
數(shù)據(jù)庫原理與應(yīng)用(SQL Server) 全書試題答案 -第1-13章 數(shù)據(jù)庫概述-數(shù)據(jù)庫技術(shù)發(fā)展概述_第3頁
數(shù)據(jù)庫原理與應(yīng)用(SQL Server) 全書試題答案 -第1-13章 數(shù)據(jù)庫概述-數(shù)據(jù)庫技術(shù)發(fā)展概述_第4頁
數(shù)據(jù)庫原理與應(yīng)用(SQL Server) 全書試題答案 -第1-13章 數(shù)據(jù)庫概述-數(shù)據(jù)庫技術(shù)發(fā)展概述_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1章數(shù)據(jù)庫概述習題一、選擇題1.下列說法中,不屬于數(shù)據(jù)庫管理系統(tǒng)特征的是()。A.提供了應(yīng)用程序和數(shù)據(jù)的獨立性。B.所有的數(shù)據(jù)作為一個整體考慮,因此是相互關(guān)聯(lián)的數(shù)據(jù)的集合。C.用戶訪問數(shù)據(jù)時,需要知道存儲數(shù)據(jù)的文件的物理信息。D.可保證存儲數(shù)據(jù)的可靠性,當硬盤出現(xiàn)故障時,也可防止數(shù)據(jù)丟失。2.下列四項中,不屬于數(shù)據(jù)庫系統(tǒng)特點的是()。A.數(shù)據(jù)共享 B.數(shù)據(jù)完整性C.數(shù)據(jù)冗余度高 D.數(shù)據(jù)獨立性高3.關(guān)于數(shù)據(jù)獨立性,下列說法不正確的是()。A.數(shù)據(jù)庫具有較高的數(shù)據(jù)獨立性B.數(shù)據(jù)庫中的數(shù)據(jù)可以共享C.數(shù)據(jù)庫避免了一切數(shù)據(jù)的重復D.數(shù)據(jù)庫減少了數(shù)據(jù)冗余4.下面列出的數(shù)據(jù)庫管理技術(shù)發(fā)展的三個階段中,沒有專門的軟件對數(shù)據(jù)進行管理的是()。I.人工管理階段II.文件系統(tǒng)階段III.數(shù)據(jù)庫階段A.I和IIB.只有IIC.II和IIID.只有I5.DB,DBS和DBMS之間的關(guān)系是()。A.DBS包括DB和DBMS B.DBMS包括DB和DBSC.DB包括DBS和DBMS D.DBS就是DB,也就是DBMS二、簡答題1.試述數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員、數(shù)據(jù)庫系統(tǒng)的概念。2.使用數(shù)據(jù)庫系統(tǒng)有什么好處?3.試述文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的區(qū)別與聯(lián)系。4.試述數(shù)據(jù)庫系統(tǒng)的特點。5.什么是數(shù)據(jù)獨立性?如何實現(xiàn)?6.數(shù)據(jù)庫系統(tǒng)的組成有哪些?參考答案一、選擇題CCCDA二、簡答題1.試述數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員、數(shù)據(jù)庫系統(tǒng)的概念。答:數(shù)據(jù):描述事物的符號記錄稱為數(shù)據(jù)。數(shù)據(jù)的種類有文字、圖形、圖象、聲音、正文等等。數(shù)據(jù)與其語義是不可分的。數(shù)據(jù)庫:數(shù)據(jù)庫是長期儲存在計算機內(nèi)、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲存,具有較小的冗余度、較高的數(shù)據(jù)獨立性和易擴展性,并可為各種用戶共享。數(shù)據(jù)庫管理系統(tǒng):數(shù)據(jù)庫管理系統(tǒng)(DBMS)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。用于科學地組織和存儲數(shù)據(jù)、高效地獲取和維護數(shù)據(jù)。DBMS主要功能包括數(shù)據(jù)定義功能、數(shù)據(jù)操縱功能、數(shù)據(jù)庫的運行管理功能、數(shù)據(jù)庫的建立和維護功能。數(shù)據(jù)庫管理員(DatabaseAdministrator,簡稱DBA),是從事管理和維護數(shù)據(jù)庫管理系統(tǒng)(DBMS)的相關(guān)工作人員的統(tǒng)稱。數(shù)據(jù)庫系統(tǒng):數(shù)據(jù)庫系統(tǒng)(DBS)是指在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成。數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員構(gòu)成。2.使用數(shù)據(jù)庫系統(tǒng)有什么好處?答:使用數(shù)據(jù)庫系統(tǒng)的好處是由數(shù)據(jù)庫管理系統(tǒng)的特點或優(yōu)點決定的。使用數(shù)據(jù)庫系統(tǒng)的好處很多,例如可以大大提高應(yīng)用開發(fā)的效率,方便用戶的使用,減輕數(shù)據(jù)庫系統(tǒng)管理人員維護的負擔等。使用數(shù)據(jù)庫系統(tǒng)可以大大提高應(yīng)用開發(fā)的效率。因為在數(shù)據(jù)庫系統(tǒng)中應(yīng)用程序不必考慮數(shù)據(jù)的定義、存儲和數(shù)據(jù)存取的具體路徑,這些工作都由DBMS來完成。用一個通俗的比喻,使用了DBMS就如有了一個好參謀好助手,許多具體的技術(shù)工作都由這個助手來完成。開發(fā)人員就可以專注于應(yīng)用邏輯的設(shè)計而不必為管理數(shù)據(jù)的許許多多復雜的細節(jié)操心。還有,當應(yīng)用邏輯改變,數(shù)據(jù)的邏輯結(jié)構(gòu)需要改變時,由于數(shù)據(jù)庫系統(tǒng)提供了數(shù)據(jù)與程序之間的獨立性。數(shù)據(jù)邏輯結(jié)構(gòu)的改變是DBA的責任,開發(fā)人員不必修改應(yīng)用程序,或者只需要修改很少的應(yīng)用程序。從而既簡化了應(yīng)用程序的編制,又大大減少了應(yīng)用程序的維護和修改。使用數(shù)據(jù)庫系統(tǒng)可以減輕數(shù)據(jù)庫系統(tǒng)管理人員維護系統(tǒng)的負擔。因為DBMS在數(shù)據(jù)庫建立、運用和維護時對數(shù)據(jù)庫進行統(tǒng)一的管理和控制,包括數(shù)據(jù)的完整性、安全性,多用戶并發(fā)控制,故障恢復等等都由DBMS執(zhí)行??傊?,使用數(shù)據(jù)庫系統(tǒng)的優(yōu)點是很多的,既便于數(shù)據(jù)的集中管理,控制數(shù)據(jù)冗余,可以提高數(shù)據(jù)的利用率和一致性,又有利于應(yīng)用程序的開發(fā)和維護。讀者可以在自己今后的工作中結(jié)合具體應(yīng)用,認真加以體會和總結(jié)。3.試述文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的區(qū)別與聯(lián)系。答:文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的區(qū)別:文件系統(tǒng)面向某一應(yīng)用程序,共享性差、冗余度大,獨立性差,紀錄內(nèi)有結(jié)構(gòu)、整體無結(jié)構(gòu),應(yīng)用程序自己控制;數(shù)據(jù)庫系統(tǒng)面向現(xiàn)實世界,共享性高、冗余度小,具有高度的物理獨立性和一定的邏輯獨立性,整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述,由數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)安全性、完整性、并發(fā)控制和恢復能力。文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的聯(lián)系:文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)都是計算機系統(tǒng)中管理數(shù)據(jù)的軟件。表各階段對比人工管理階段文件系統(tǒng)階段數(shù)據(jù)庫系統(tǒng)階段背景應(yīng)用背景科學計算科學計算、數(shù)據(jù)管理大規(guī)模數(shù)據(jù)管理硬件背景無直接存取、存儲設(shè)備磁盤、磁鼓大容量磁盤、磁盤陣列軟件背景沒有操作系統(tǒng)有文件系統(tǒng)有數(shù)據(jù)庫管理系統(tǒng)處理方式批處理聯(lián)機實時處理、批處理聯(lián)機實時處理、分布處理、批處理(續(xù)表)人工管理階段文件系統(tǒng)階段數(shù)據(jù)庫系統(tǒng)階段特點數(shù)據(jù)的管理者用戶(程序員)文件系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)的結(jié)構(gòu)化無結(jié)構(gòu)記錄內(nèi)有結(jié)構(gòu)整體無結(jié)構(gòu)整體結(jié)構(gòu)化用數(shù)據(jù)模型描述數(shù)據(jù)面向的對象某一應(yīng)用程序某一應(yīng)用現(xiàn)實世界中的某個場景數(shù)據(jù)的共享程度無共享,冗余度極大共享性差、冗余度大共享性高、冗余度小數(shù)據(jù)的獨立性不獨立,完全依賴于程序獨立性差具有高度的物理獨立性和一定的邏輯獨立性數(shù)據(jù)控制能力應(yīng)用程序自己控制應(yīng)用程序自己控制保證數(shù)據(jù)安全性、完整性并發(fā)和恢復管理4.試述數(shù)據(jù)庫系統(tǒng)的特點。答:數(shù)據(jù)庫系統(tǒng)的主要特點有:(1)數(shù)據(jù)結(jié)構(gòu)化:數(shù)據(jù)庫系統(tǒng)實現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,這是數(shù)據(jù)庫的主要特征之一,也是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。(2)數(shù)據(jù)的共享性高,冗余度低,易擴充:數(shù)據(jù)庫的數(shù)據(jù)不再面向某個應(yīng)用而是面向整個系統(tǒng),因此可以被多個用戶、多個應(yīng)用、用多種不同的語言共享使用。由于數(shù)據(jù)面向整個系統(tǒng),是有結(jié)構(gòu)的數(shù)據(jù),不僅可以被多個應(yīng)用共享使用,而且容易增加新的應(yīng)用,這就使得數(shù)據(jù)庫系統(tǒng)彈性大,易于擴充。(3)數(shù)據(jù)獨立性高:數(shù)據(jù)獨立性包括數(shù)據(jù)的物理獨立性和數(shù)據(jù)的邏輯獨立性。數(shù)據(jù)庫管理系統(tǒng)的模式結(jié)構(gòu)和二級映象功能保證了數(shù)據(jù)庫中的數(shù)據(jù)具有很高的物理獨立性和邏輯獨立性。(4)數(shù)據(jù)由DBMS統(tǒng)一管理和控制:數(shù)據(jù)庫的共享是并發(fā)的共享,即多個用戶可以同時存取數(shù)據(jù)庫中的數(shù)據(jù)甚至可以同時存取數(shù)據(jù)庫中同一個數(shù)據(jù)。為此,DBMS必須提供統(tǒng)一的數(shù)據(jù)控制功能,包括數(shù)據(jù)的安全性保護,數(shù)據(jù)的完整性檢查,并發(fā)控制和數(shù)據(jù)庫恢復。數(shù)據(jù)庫是長期存儲在計算機內(nèi)有組織的大量的共享的數(shù)據(jù)集合。它可以供各種用戶共享,具有最小冗余度和較高的數(shù)據(jù)獨立性。DBMS在數(shù)據(jù)庫建立、運用和維護時對數(shù)據(jù)庫進行統(tǒng)一控制,以保證數(shù)據(jù)的完整性、安全性,并在多用戶同時使用數(shù)據(jù)庫時進行并發(fā)控制,在發(fā)生故障后對系統(tǒng)進行恢復。數(shù)據(jù)庫系統(tǒng)的出現(xiàn)使信息系統(tǒng)從以加工數(shù)據(jù)的程序為中心轉(zhuǎn)向圍繞共享的數(shù)據(jù)庫為中心的新階段。5.什么是數(shù)據(jù)獨立性?如何實現(xiàn)?答:數(shù)據(jù)獨立性是指應(yīng)用程序和數(shù)據(jù)之間相互獨立、不受影響,即數(shù)據(jù)結(jié)構(gòu)的修改不會引起應(yīng)用程序的修改。數(shù)據(jù)獨立性包括:物理數(shù)據(jù)獨立性和邏輯數(shù)據(jù)獨立性.物理數(shù)據(jù)獨立性是指數(shù)據(jù)庫物理結(jié)構(gòu)改變時不必修改現(xiàn)有的應(yīng)用程序。邏輯數(shù)據(jù)獨立性是指數(shù)據(jù)庫邏輯結(jié)構(gòu)改變時不用改變應(yīng)用程序。數(shù)據(jù)獨立性是由DBMS的二級映像功能來實現(xiàn)的。當整個系統(tǒng)要求改變模式時(增加記錄類型、增加數(shù)據(jù)項,由DBMS對各個外模式/模式的映像做相應(yīng)改變,從而保證了數(shù)據(jù)的邏輯獨立性。當數(shù)據(jù)的存儲結(jié)構(gòu)改變時,由DBMS對模式/內(nèi)模式的映像做相應(yīng)改變,從而保證了數(shù)據(jù)的物理獨立性。6.數(shù)據(jù)庫系統(tǒng)的組成有哪些?答:(1)硬件數(shù)據(jù)庫系統(tǒng)的硬件包括計算機的主機、鍵盤、顯示器和外圍設(shè)備(例如打印機、光盤機、磁帶機等)。由于一般數(shù)據(jù)庫系統(tǒng)所存放和處理的數(shù)據(jù)量很大,加之DBMS豐富的功能軟件,使得自身所占用的存儲空間很大,因此整個數(shù)據(jù)庫系統(tǒng)對硬件資源提出了較高的要求。這些要求是:①有足夠大的內(nèi)存以存放操作系統(tǒng)、DBMS的核心模塊、數(shù)據(jù)緩沖區(qū)和應(yīng)用程序;②有足夠大的直接存取設(shè)備存放數(shù)據(jù)(如磁盤),有足夠的存儲設(shè)備來進行數(shù)據(jù)備份;③要求計算機有較高的數(shù)據(jù)傳輸能力,以提高數(shù)據(jù)傳送率。(2)軟件數(shù)據(jù)庫系統(tǒng)的軟件除了數(shù)據(jù)庫管理系統(tǒng)之外,還包括操作系統(tǒng)各種高級語言處理程序(編譯或解釋程序)、應(yīng)用開發(fā)工具軟件和特定應(yīng)用軟件等。應(yīng)用開發(fā)工具包括應(yīng)用程序生成器和第四代語言等高效率、多功能的軟件工具,如報表生成系統(tǒng)、表格軟件、圖形編輯系統(tǒng)等。它們?yōu)閿?shù)據(jù)庫系統(tǒng)的應(yīng)用開發(fā)人員和最終用戶提供了有力的支持。特定應(yīng)用軟件是指為特定用戶開發(fā)的數(shù)據(jù)庫應(yīng)用軟件,如基于數(shù)據(jù)庫的各種管理軟件、管理信息系統(tǒng)(MIS)、決策支持系統(tǒng)(DSS)和辦公自動化(OA)等。(3)人員數(shù)據(jù)庫系統(tǒng)中包含的人員主要有數(shù)據(jù)庫管理員(DBA)、程序分析與開發(fā)人員、數(shù)據(jù)庫設(shè)計人員和最終用戶。數(shù)據(jù)庫管理員負責整個系統(tǒng)的正常運行,負責保證數(shù)據(jù)庫的安全和可靠。數(shù)據(jù)庫管理員必須參加數(shù)據(jù)庫設(shè)計的全過程;決定數(shù)據(jù)庫的存儲結(jié)構(gòu)和存取策略;定義數(shù)據(jù)的安全性要求和完整性約束條件;監(jiān)控數(shù)據(jù)庫的使用和運行;數(shù)據(jù)庫的改進和重組、重構(gòu);還負責在系統(tǒng)運行期間監(jiān)視系統(tǒng)的空間利用率、處理效率等性能指標,對運行情況進行記錄、統(tǒng)計分析,依靠工作實踐并根據(jù)實際應(yīng)用環(huán)境不斷改進數(shù)據(jù)庫設(shè)計。另外,在數(shù)據(jù)運行過程中,大量數(shù)據(jù)不斷插入、刪除、修改,時間一長,數(shù)據(jù)的組織結(jié)構(gòu)會受到嚴重影響,從而降低系統(tǒng)性能。因此,數(shù)據(jù)庫管理員要定期對數(shù)據(jù)庫進行重組織,以改善系統(tǒng)性能。修改數(shù)據(jù)庫部分設(shè)計,即完成數(shù)據(jù)庫的重構(gòu)。程序分析與開發(fā)人員主要負責應(yīng)用系統(tǒng)的需求分析、設(shè)計和實現(xiàn),參與應(yīng)用程序開發(fā)整個過程和程序使用與規(guī)范說明,確定系統(tǒng)軟、硬件配置。數(shù)據(jù)庫設(shè)計人員主要負責決定數(shù)據(jù)庫中的信息內(nèi)容和結(jié)構(gòu)。參與用戶需求調(diào)查和系統(tǒng)分析。負責數(shù)據(jù)庫中數(shù)據(jù)的確定及數(shù)據(jù)庫各級模式的設(shè)計,并與用戶、應(yīng)用程序員、系統(tǒng)分析員密切合作、共同協(xié)商,做好數(shù)據(jù)庫設(shè)計。最終用戶是數(shù)據(jù)庫應(yīng)用程序的使用者,他們通過應(yīng)用程序提供的人機交互界面來操作數(shù)據(jù)庫中的數(shù)據(jù)。通過應(yīng)用系統(tǒng)的用戶接口使用數(shù)據(jù)庫。常用的接口方式有瀏覽器、菜單驅(qū)動、表格操作、圖形顯示、報表書寫等。第2章數(shù)據(jù)模型與數(shù)據(jù)庫結(jié)構(gòu)習題一、選擇題1.以下哪個不是數(shù)據(jù)模型組成三要素的內(nèi)容()。A.數(shù)據(jù)結(jié)構(gòu)B.數(shù)據(jù)存儲C.數(shù)據(jù)操作D.數(shù)據(jù)完整性約束2.下列關(guān)于概念層數(shù)據(jù)模型的說法,錯誤的是()。A.概念層數(shù)據(jù)模型應(yīng)該采用易于用戶理解的表達方式B.概念層數(shù)據(jù)模型應(yīng)該比較易于轉(zhuǎn)換成組織層數(shù)據(jù)模型C.在進行概念層數(shù)據(jù)模型設(shè)計時,需要考慮具體的DBMS的特點D.在進行概念層數(shù)據(jù)模型設(shè)計時,重點考慮的內(nèi)容是用戶的業(yè)務(wù)邏輯3.關(guān)于E-R模型,錯誤的是()。A.信息世界的數(shù)據(jù)模型B.設(shè)計數(shù)據(jù)庫時與用戶交流時使用C.也稱為實體聯(lián)系圖D.是代碼編寫階段的工具4.以下關(guān)于層次模型的說法中,錯誤的是()。A.層次數(shù)據(jù)模型屬于格式化數(shù)據(jù)模型B.層次模型不具備數(shù)據(jù)和程序的物理獨立性C.層次模型有且僅有一個無雙親的根結(jié)點D.層次模型是一種以記錄類型為結(jié)點的有向樹結(jié)構(gòu)5.描述數(shù)據(jù)庫全體數(shù)據(jù)的全局邏輯結(jié)構(gòu)和特性的是()。A.模式B.內(nèi)模式C.外模式D.用戶模式6.要保證數(shù)據(jù)庫的邏輯數(shù)據(jù)獨立性,需要修改的是()。A.模式與外模式的映射B.模式與內(nèi)模式之間的映射C.模式D.三層模式二、簡答題1.什么是數(shù)據(jù)模型?試述其分類和組成要素。2.什么是概念模型?試述概念模型的作用。3.試述層次模型、網(wǎng)狀模型和關(guān)系模型的區(qū)別與優(yōu)缺點。4.說明實體-聯(lián)系中的實體、屬性和聯(lián)系的概念,并舉例說明實體之間的聯(lián)系。5.試述數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu),分別說明每一級模式的作用。6.試述數(shù)據(jù)庫系統(tǒng)的二級映像指什么?如何保證數(shù)據(jù)庫的獨立性?

參考答案選擇題BCDBAA簡答題1.什么是數(shù)據(jù)模型?試述其分類和組成要素。數(shù)據(jù)模型是對現(xiàn)實世界數(shù)據(jù)特征的抽象,用來描述現(xiàn)實中數(shù)據(jù)的組織方式和操作方式,是現(xiàn)實世界的模擬。數(shù)據(jù)模型分為概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型、物理數(shù)據(jù)模型三類。數(shù)據(jù)模型由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)完整性約束三要素構(gòu)成2.什么是概念模型?試述概念模型的作用。概念模型,也稱信息模型,是按用戶的觀點來對數(shù)據(jù)和信息建模,主要用于數(shù)據(jù)庫設(shè)計。概念模型實際上是現(xiàn)實世界到機器世界的一個中間層次。概念模型用于信息世界的建模,是現(xiàn)實世界到信息世界的一層抽象,是數(shù)據(jù)庫設(shè)計人員進行數(shù)據(jù)庫設(shè)計的有力工具,也是數(shù)據(jù)庫設(shè)計人員和用戶進行交流的語言3.試述層次模型、網(wǎng)狀模型和關(guān)系模型的區(qū)別與優(yōu)缺點。區(qū)別:層次模型是一種樹狀結(jié)構(gòu)模型,網(wǎng)狀模型是更靈活的多對多關(guān)系模型,而關(guān)系模型則是使用表格和SQL來建立和管理數(shù)據(jù)的模型。不同的模型適用于不同的數(shù)據(jù)場景和需求。層次模型的優(yōu)點主要有:(1)層次模型的數(shù)據(jù)結(jié)構(gòu)比較簡單清晰。(2)層次數(shù)據(jù)庫的查詢效率高。因為層次模型中記錄之間的聯(lián)系用有向邊表示,這種聯(lián)系在DBMS中常常用指針來實現(xiàn)。因此,這種聯(lián)系也就是記錄之間的存取路徑。當要存取某個節(jié)點的記錄值,DBMS就沿著這一條路徑很快找到該記錄值,所以層次數(shù)據(jù)庫的性能優(yōu)于關(guān)系數(shù)據(jù)庫,不低于網(wǎng)狀數(shù)據(jù)庫。(3)層次數(shù)據(jù)模型提供了良好的完整性支持。層次模型的缺點主要有:(1)現(xiàn)實世界中很多聯(lián)系是非層次性的,如節(jié)點之間具有多對多聯(lián)系,不適合用層次模型表示。(2)如果一個節(jié)點具有多個雙親節(jié)點等,用層次模型表示這類聯(lián)系就很笨拙,只能通過引入冗余數(shù)據(jù)(易產(chǎn)生不一致性)或創(chuàng)建非自然的數(shù)據(jù)結(jié)構(gòu)(引入擬節(jié)點)來解決。對插入和刪除操作的限制比較多,因此應(yīng)用程序的編寫比較復雜(3)查詢子女節(jié)點必須通過雙親節(jié)點。(4)由于結(jié)構(gòu)嚴密,層次命令趨于程序化網(wǎng)狀模型的優(yōu)點主要有:(1)能夠更為直接地描述現(xiàn)實世界,如一個結(jié)點可以有多個雙親,結(jié)點之間可以有多種聯(lián)系。(2)具有良好的性能,存取效率較高。網(wǎng)狀模型的缺點主要有:(1)結(jié)構(gòu)比較復雜,而且隨著應(yīng)用環(huán)境的擴大,數(shù)據(jù)庫的結(jié)構(gòu)就變得越來越復雜,不利于最終用戶掌握。(2)網(wǎng)狀模型的DDL、DML復雜,并且要入某一種高級語言(如COBOL、C)中用戶不容易掌握,不容易使用。(3)由于記錄之間的聯(lián)系是通過存取路徑實現(xiàn)的,應(yīng)用程序在訪問數(shù)據(jù)時必須選擇適當?shù)拇嫒÷窂?,因此用戶必須了解系統(tǒng)結(jié)構(gòu)的細節(jié),加重了編寫應(yīng)用程序的負擔。關(guān)系模型具有下列優(yōu)點:(1)關(guān)系模型與格式化模型不同,它是建立在嚴格的數(shù)學概念的基礎(chǔ)上的。(2)關(guān)系模型的概念單一。無論實體還是實體之間的聯(lián)系都用關(guān)系來表示。對數(shù)據(jù)的檢索和更新結(jié)果也是關(guān)系(即表)。數(shù)據(jù)結(jié)構(gòu)簡單、清晰,用戶易懂易用。(3)關(guān)系模型的存取路徑對用戶透明,從而具有更高的數(shù)據(jù)獨立性、更好的安全保密性,也簡化了程序員的工作和數(shù)據(jù)庫開發(fā)建立的工作。關(guān)系模型具有下列缺點:(1)存取路徑對用戶透明,查詢效率往往不如格式化數(shù)據(jù)模型。(2)為提高性能,必須對用戶的查詢請求進行優(yōu)化,增加了開發(fā)數(shù)據(jù)庫管理系統(tǒng)的難度。4.說明實體-聯(lián)系中的實體、屬性和聯(lián)系的概念,并舉例說明實體之間的聯(lián)系(1)實體:客觀存在并可相互區(qū)別的事物稱為實體??梢允蔷唧w的人、事、物或抽象的概念。(2)屬性:實體所具有的某一特性稱為屬性。一個實體可以由若干個屬性來刻畫(3)聯(lián)系:現(xiàn)實世界中事物內(nèi)部以及事物之間的聯(lián)系在信息世界中反映為實體(型)內(nèi)部的聯(lián)系和實體(型)之間的聯(lián)系。(5)實體之間的聯(lián)系有一對一、一對多和多對多等多種類型5.試述數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu),分別說明每一級模式的作用。(1)數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)是指數(shù)據(jù)庫系統(tǒng)是由外模式、模式和內(nèi)模式三級構(gòu)成。(2)外模式是保證數(shù)據(jù)庫安全性的一個有力措施。(3)模式是系統(tǒng)為了減小數(shù)據(jù)冗余、實現(xiàn)數(shù)據(jù)共享的目標,并對所有用戶的數(shù)據(jù)進行綜合抽象而得到的統(tǒng)一的全局數(shù)據(jù)視圖。(4)內(nèi)模式可以將系統(tǒng)的模式(全局邏輯模式)組織成最優(yōu)的物理模式,以提高數(shù)據(jù)的存取效率。改善系統(tǒng)的性能指標。6.試述數(shù)據(jù)庫系統(tǒng)的二級映像指什么?如何保證數(shù)據(jù)庫的獨立性?(1)外模式/模式映像、模式/內(nèi)模式映像(2)數(shù)據(jù)庫的二級映像,保證了數(shù)據(jù)庫外模式的穩(wěn)定性,從而從底層保證了應(yīng)用程序的穩(wěn)定性。數(shù)據(jù)與程序之間的獨立性,使得數(shù)據(jù)的定義和描述可以從應(yīng)用程序中分離出去。除非應(yīng)用需求本身發(fā)生變化,否則應(yīng)用程序一般不需要修改。第3章關(guān)系數(shù)據(jù)庫習題一、選擇題1.一個關(guān)系中的候選碼是由()。A.可由多個任意屬性組成B.至多由一個屬性組成C.可由一個或多個其值能唯一標識該關(guān)系模式中任何元組的屬性組成D.以上都不是2.同一個關(guān)系模型的任兩個元組值()。A.不能全同B.可全同C.必須全同D.以上都不是3.關(guān)系模式的任何屬性()。。A.不可再分B.可再分C.命名在該關(guān)系模式中可以不惟一D.以上都不是4.在關(guān)系代數(shù)運算中,專門的關(guān)系運算包括()。A.并、差、交、笛卡兒積B.并、差、交、選擇、投影C.選擇、投影、連接、乘積D.選擇、投影、連接、除5.設(shè)有關(guān)系R,按條件f對關(guān)系R進行選擇,關(guān)系代數(shù)表達式正確的是()。A.R×RB.?fC.σf(R)二、簡答題.簡述關(guān)系模型的三要素組成。2.簡述關(guān)系的性質(zhì)。3.簡述關(guān)系的完整性4.簡述關(guān)系模式和關(guān)系的區(qū)別。5.傳統(tǒng)的集合運算和專門的關(guān)系運算都有哪些?6.試述等值連接與自然連接的區(qū)別與聯(lián)系。三、根據(jù)給定的關(guān)系模式完成查詢設(shè)有一個學生選課數(shù)據(jù)庫,由3個關(guān)系模式組成,分別為:S(Sno,Sname,Sage,Sdept);C(Cno,Cname,PCno);SC(Sno,Cno,Grade)。學生表S由學號(Sno)、學生姓名(Sname)、學生年齡(Sage)、學生所在系(Sdept)組成。課程表C由課程號(Cno)、課程名(Cname)、先修課號(PCno)組成。選課表SC由學號(Sno)、課程號(Cno)、成績(Grade)組成。試寫出如下查詢的關(guān)系代數(shù)表達式:(1)查詢年齡大于20的學生姓名;(2)查詢先修課號為C1的課程號;(3)查詢課程號為C2且成績在85分以上的學生姓名;(4)查詢學號為S2的學生選修的課程名;(5)查詢計算機專業(yè)學生所選修的課程名;(6)查詢王華同學未選修課程的課程名;(7)查詢?nèi)繉W生都選修課程的課程號與課程名;(8)查詢至少選修C3課程的學生學號和姓名。參考答案選擇題CAADC二、簡答題.簡述關(guān)系模型的三要素組成。關(guān)系模型的三要素包括關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作以及關(guān)系的完整性約束。2.簡述關(guān)系的性質(zhì)。關(guān)系數(shù)據(jù)庫要求其中的關(guān)系具有以下6條性質(zhì):(1)列是同質(zhì)的,即每一列中的分量是同一類型的數(shù)據(jù),來自同一個域。(2)不同的列可出自同一個域,稱其中的每一列為一個屬性,不同的屬性要起不同的屬性名。(3)同一關(guān)系中,任意兩個元組不能完全相同。(4)列的順序無所謂,即列的次序可以任意交換。(5)行的順序無所謂,即行的次序可以任意交換。(6)分量必須取原子值,即每一個分量都必須是不可分的數(shù)據(jù)項。3.簡述關(guān)系的完整性關(guān)系完整性包括實體完整性、參照完整性和用戶定義的完整性。實體完整性規(guī)則:若屬性A(一個或一組屬性)是基本關(guān)系R的主屬性,則A不能取空值。所謂空值就是“不知道”或“不存在”的值。參照完整性規(guī)則:若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S可能是相同的關(guān)系),則對于R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值);或者等于S中某個元組的主碼值。用戶定義的完整性規(guī)則由用戶根據(jù)實際情況對數(shù)據(jù)庫中數(shù)據(jù)的內(nèi)容進行的規(guī)定。4.說明關(guān)系模式和關(guān)系的區(qū)別。關(guān)系數(shù)據(jù)庫中,關(guān)系模式是型,關(guān)系是值。關(guān)系模式是對關(guān)系的描述,它可以形式化地表示為R(U,D,DOM,F(xiàn)),其中R為關(guān)系名,U為組成該關(guān)系的屬性名集合,D為U中屬性所來自的域,DOM為屬性向域的映像集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集合。通常關(guān)系模式簡記為R(U)。關(guān)系是關(guān)系模式在某一時刻的狀態(tài)或內(nèi)容。關(guān)系模式是靜態(tài)的、穩(wěn)定的,而關(guān)系是動態(tài)的、隨時間不斷變化的,因為關(guān)系操作在不斷地更新著數(shù)據(jù)庫中的數(shù)據(jù)。例如,學生關(guān)系模式在不同的學年,學生關(guān)系是不同的。在實際工作中,人們常常把關(guān)系模式和關(guān)系都統(tǒng)稱為關(guān)系。5.傳統(tǒng)的集合運算和專門的關(guān)系運算都有哪些?(1)傳統(tǒng)的集合操作:并、差、交、笛卡兒積。(2)專門的關(guān)系操作:投影、選擇、連接、除法等。6.試述等值連接與自然連接的區(qū)別與聯(lián)系。θ為“=”的連接運算稱為等值連接,它是從關(guān)系R與S的廣義笛卡兒積中選取A、B屬性值相等的那些元組。自然連接是一種特殊的等值連接。它要求兩個關(guān)系中進行比較的分量必須是同名的屬性組,并且在結(jié)果中把重復的屬性列去掉。三、根據(jù)給定的關(guān)系模式完成查詢設(shè)有一個學生選課數(shù)據(jù)庫,由3個關(guān)系模式組成,分別為:S(Sno,Sname,Sage,Sdept);C(Cno,Cname,PCno);SC(Sno,Cno,Grade)。學生表S由學號(Sno)、學生姓名(Sname)、學生年齡(Sage)、學生所在系(Sdept)組成。課程表C由課程號(Cno)、課程名(Cname)、先修課號(PCno)組成。選課表SC由學號(Sno)、課程號(Cno)、成績(Grade)組成。試寫出如下查詢的關(guān)系代數(shù)表達式:(1)查詢年齡大于20的學生姓名;ΠSname(σ(2)查詢先修課號為C1的課程號;ΠCno(3)查詢課程號為C2且成績在85分以上的學生姓名;ΠSname(4)查詢學號為S2的學生選修的課程名;Π(5)查詢計算機專業(yè)學生所選修的課程名。ΠCname(6)查詢王華同學未選修課程的課程名。Π(7)查詢?nèi)繉W生都選修課程的課程號與課程名。ΠCno,Sno(SC(8)查詢至少選修C3課程的學生學號和姓名。ΠSno,Cno第4章關(guān)系數(shù)據(jù)庫標準語言SQL習題一、選擇題1.SQL語言是()語言。A.層次數(shù)據(jù)庫B.網(wǎng)絡(luò)數(shù)據(jù)庫C.關(guān)系數(shù)據(jù)庫D.非數(shù)據(jù)庫2.語句altertableuserinfoaddconstraintuq_useridunique(userid)執(zhí)行成功后,為userinfo表的字段添加了的約束()。A.userid主鍵B.userid唯一C.uq_userid外鍵D.uq_userid檢查3.關(guān)于子查詢,以下說法正確的是()。A.一般來說,表連接都可以用子查詢替換B.一般來說,子查詢都可以用表連接替換C.相對于表連接,子查詢適合于作為查詢的篩選條件D.相對于表連接,子查詢適合于查看多表的數(shù)據(jù)4.創(chuàng)建SQL語句如下:createtableuserInfo(userldintidentity(-1,1),userNamenvarchar(20)notnull,cardNOcharnotnull,agesmallint(2),addressntext(300),)執(zhí)行時,出現(xiàn)錯誤的行數(shù)為()。A.1B.2C.3D.4E.55.已知有SPores表,SPoreid為主鍵,現(xiàn)在表中共有10條記錄,其中一條SPoreid=21。創(chuàng)建視圖:createviewview_SPoresasselect*fromSPores執(zhí)行如下命令:deletefromview_SPoreswhere(SPoreid=21)再執(zhí)行命令select*fromSPores和select*fromview_SPores假定上述命令全部執(zhí)行成功,將各自返回記錄數(shù)()。A.10,10B.10,9C.9,10D.9,96.設(shè)計用戶表時,身份證號為固定18位長,對該字段最好采用的數(shù)據(jù)類型()。A.intB.charC.varcharD.text7.在SQLServer2016中,將用戶編寫的Transact-SQL腳本保存到磁盤上,其文件擴展名為()。A.mdfB.ndfC.ldfD.sql8.下列選項中,屬于刪除數(shù)據(jù)庫的語句是()。A.CREATEDATABASEB.ALTERDATABASEC.DROPDATABASED.DELETEDATABASE9.建立如下數(shù)據(jù)庫表:createtalbeDepartment(departIDintnotnullprimarykey,deptNamevarchar(20)notnull)createtableEmployee(employeelDintnotnull,deptIDintnotnull,namevarchar(20)notnull)要想保證Employee表中每一個雇員employee)是唯一的,且只能屬于在Department表中已經(jīng)存在的部門,最有的做法是()。A.把employeeID和deptID設(shè)為組合主鍵B.把employeeID設(shè)為主鍵,同時在deptID列上創(chuàng)建一個外鍵約束C.把employeeID設(shè)為主鍵,同時在deptID列上創(chuàng)建一個檢查約束.D.在deptID列上創(chuàng)建一個唯一約束,同時在deptID列上創(chuàng)建一個外鍵約束10.在創(chuàng)建數(shù)據(jù)庫時,系統(tǒng)會自動將所有用戶定義的對象復制到新建數(shù)據(jù)庫中的系統(tǒng)數(shù)據(jù)庫為()。A.masterB.msdbC.modelD.tempdb二、SQL語句1.有兩個關(guān)系和,寫出與下列查詢等價的SQL表達式:(1)(2)(3)(4)2.設(shè)有一個學生選課數(shù)據(jù)庫,由3個關(guān)系模式組成,分別為:S(Sno,Sname,Sage,Sdept);C(Cno,Cname,PCno);SP(Sno,Cno,Grade)。學生表S由學號(Sno)、學生姓名(Sname)、學生年齡(Sage)、學生所在系(Sdept)組成。課程表C由課程號(Cno)、課程名(Cname)、先修課號(PCno)組成。選課表SP由學號(Sno)、課程號(Cno)、成績(Grade)組成。用SQL完成以下各項操作:(1)查詢年齡大于20的學生姓名;(2)查詢先修課號為C1的課程號;(3)查詢課程號為C2且成績在85分以上的學生姓名;(4)查詢學號為S2的學生選修的課程名;(5)查詢計算機專業(yè)學生所選修的課程名。(6)查詢王華同學未選修的課程的課程名。(7)查詢?nèi)繉W生都選修的課程的課程號與課程名。(8)查詢至少選修C3課程的學生學號和姓名。三、簡答題1.什么是基本表?什么是視圖?兩者的區(qū)別和聯(lián)系是什么?2.試述視圖的優(yōu)點。3.在聚合函數(shù)中,哪個函數(shù)在統(tǒng)計時不考慮NULL?4.在LIKE運算符中“%”的作用是什么?5.在使用UNION合并多個查詢語句的結(jié)果時,對各個查詢語句的要求是什么?6.相關(guān)子查詢與嵌套查詢在執(zhí)行方面的主要區(qū)別是什么?7.對統(tǒng)計結(jié)果的篩選應(yīng)該使用那個子句完成?8.在排序子句中,排序依據(jù)列的前后是否重要?“ORDERBYC1,C2”子句對數(shù)據(jù)的排序順序是什么?9.TOP子句的作用是什么?參考答案一、選擇題1.C2.B3.AC4.DE5.D6.B7.A8.C9.B10.A二、SQL語句1.(1)select*fromSwhereA=10;(2)selectC,DfromR(3)selectS.*,D,E,FfromS,RwhereS.C=R.C(4)selectS.*,R.*fromS,RwhereS.C=R.C2.用SQL完成以下各項操作:查詢年齡大于20的學生姓名;SelectSnamefromSwhereSage>20查詢先修課號為C1的課程號;SelectCnofromCwherePCno=’C1’查詢課程號為C2且成績在85分以上的學生姓名;SelectSnamefromSwhereSnoin(SelectSnofromSPwhereCno=’C2’andGrade>=85)查詢學號為S2的學生選修的課程名;SelectCnamefromCwhereCnoin(SelectCnofromSPwhereSno=’S2’)查詢計算機專業(yè)學生所選修的課程名。SelectCnamefromCwhereCnoin(SelectCnofromSPwhereSnoin(SelectSnofromSwhereSdept=’計算機’))查詢王華同學未選修的課程的課程名。SelectCnofromCexceptSelectCnofromSPwhereSno=(SelectSnofromSwhereSname=’王華’)查詢?nèi)繉W生都選修的課程的課程號與課程名。SelectCno,CnameFromCWhereCnoin(selectCnofromSPGroupbyCnoHavingcount(*)=(selectcount(*)fromS))查詢至少選修C3課程的學生學號和姓名。SelectSno,SnameFromSWhereSnoin(selectSnofromSPWhereCno=’C3’)SSgroupbySnohavingcount(*)>=1三、簡答題1.什么是基本表?什么是視圖?兩者的區(qū)別和聯(lián)系是什么?答:基本表是本身獨立存在的表,在sQL中一個關(guān)系就對應(yīng)一個表。視圖是從一個或幾個基本表導出的表。視圖本身不獨立存儲在數(shù)據(jù)庫中,是一個虛表。即數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在導出視圖的基本表中。視圖在概念上與基本表等同,用戶可以如同基本表那樣使用視圖,可以在視圖上再定義視圖。2.試述視圖的優(yōu)點。答:(l)視圖能夠簡化用戶的操作;(2)視圖使用戶能以多種角度看待同一數(shù)據(jù);(3)視圖對重構(gòu)數(shù)據(jù)庫提供了一定程度的邏輯獨立性;(4)視圖能夠?qū)C密數(shù)據(jù)提供安全保護。3.在聚合函數(shù)中,哪個函數(shù)在統(tǒng)計時不考慮NULL?答:count4.在LIKE運算符中“%”的作用是什么?答:代替字符中未知的值進行查詢。5.在使用UNION合并多個查詢語句的結(jié)果時,對各個查詢語句的要求是什么?答:要求合并的兩個查詢的屬性列個數(shù)和屬性名相同。6.相關(guān)子查詢與嵌套查詢在執(zhí)行方面的主要區(qū)別是什么?答:相關(guān)子查詢:執(zhí)行依賴于外部查詢。執(zhí)行順序:先是主查詢?nèi)缓笤谑亲硬樵儭?zhí)行過程:從主查詢中取出一個元組(表中的行),將元組相關(guān)的列的值傳遞給子查詢;子查詢將列的值作為條件得到結(jié)果;主查詢根據(jù)子查詢得到的結(jié)果或者結(jié)果集得到滿足條件的行,selece控制顯示;然后主查詢?nèi)〕鱿乱粋€元組繼續(xù)前面的驟,直到所有元組全部處理完畢。嵌套子查詢:執(zhí)行不依賴于外部的查詢。執(zhí)行順序:先子查詢?nèi)缓笤谑侵鞑樵儭W硬樵兊慕Y(jié)果不會被顯示,會將其傳遞給外部查,作為外部查詢的條件來輸出。7.對統(tǒng)計結(jié)果的篩選應(yīng)該使用那個子句完成?答:HAVING子句8.在排序子句中,排序依據(jù)列的前后是否重要?“ORDERBYC1,C2”子句對數(shù)據(jù)的排序順序是什么?答:重要,ORDERBYC1,C2的排序是先按照C1的升序排列,在相同的C1中按照C2的升序再進行排序。9.TOP子句的作用是什么?答:SELECTTOP子句用于限制查詢結(jié)果集中返回的行數(shù)或行百分比。由于存儲在表中的行的順序是不可預測的,因此SELECTTOP語句始終與ORDERBY子句一起使用,結(jié)果集限于前N個有序行數(shù)。第5章數(shù)據(jù)庫完整性習題一、選擇題1.下列約束用于限制列取值不能重復的是()。A.PRIMARYKEYB.CHECKC.DEFAULTD.UNIQUE2.下列約束用于限制列取值范圍的是()。A.PRIMARYKEYB.CHECKC.DEFAULTD.UNIQUE3.下列約束用于實現(xiàn)實體完整性的是()。A.PRIMARYKEYB.CHECKC.DEFAULTD.UNIQUE4.建立一張員工表,當向表中插入數(shù)據(jù)時,若不提供入職時間,就把系統(tǒng)當前時間作為員工入職時間插入數(shù)據(jù)庫,以下說法正確的是()。A.約束不能使用各種函數(shù),所以無法實現(xiàn)要求的功能。B.可以使用check約束實現(xiàn),默認值采用日期函數(shù)getdate()C.入職時間必須設(shè)為日期類型。D.可以使用default約束實現(xiàn),默認值采用日期函數(shù)getdate。5.限制性別只能去“男”和“女”的CHECK約束表達式是()。A.CHECK(SsexIN(男,女))B.CHECK(SsexBETWEEN男AND女))C.CHECK(SsexIN(‘男’,’女’))D.CHECK(SsexBETWEEN‘男’AND‘女’))二、SQL語句1.假設(shè)有下面兩個關(guān)系模式:職工(職工號,姓名,年齡,職務(wù),工資,部門號),其中職工號為主碼;部門(部門號,名稱,經(jīng)理名,電話),其中部門號為主碼。用SQL語言定義這兩個關(guān)系模式,要求在模式中完成以下完整性約束條件的定義:(1)定義每個模式的主碼;(2)定義參照完整性;(3)定義職工年齡不得超過60歲。2.寫出創(chuàng)建如下3個表的SQL語,要求在定義表的同時定義數(shù)據(jù)的完整性約束。(1)“圖書表”結(jié)構(gòu)如下:書號:統(tǒng)一字符編碼定長類型,長度為6,主碼;書名:統(tǒng)一字符編碼可變長類型,長度為30,非空;第一作者:普通編碼定長字符類型,長度為10,非空;出版日期:日期型;價格:小數(shù)部分1位,整數(shù)部分3位。(2)“書店表”結(jié)構(gòu)如下書店編號:統(tǒng)一字符編碼定長類型,長度為6,主碼;店名:統(tǒng)一字符編碼可變長類型,長度為30,非空;電話:普通編碼定長字符類型,長度為8,取值不重;地址:普通編碼可變長字符類型,長度為40;郵政編碼:普通編碼定長字符類型,長度為6。(3)“圖書銷售表”結(jié)構(gòu)如下書號:統(tǒng)一字符編碼定長類型,長度為6,非空;書店編號:統(tǒng)一字符編碼定長類型,長度為6,非空;銷售日期:小日期/時間型,非空;銷售數(shù)量:小整型,大于等于1。主碼為(書號,書店編號,銷售日期)。其中,“書號”為引用“圖書表”的“書號”的外碼;“書店編號”為引用“書店表”的書店編的外碼。三、簡答題1.什么是數(shù)據(jù)庫的完整性?2.關(guān)系數(shù)據(jù)庫管理系統(tǒng)的完整性控制機制應(yīng)具有哪三方面的功能?3.關(guān)系數(shù)據(jù)庫管理系統(tǒng)在實現(xiàn)參照完整性時需要考慮哪些方面?4.在關(guān)系系統(tǒng)中,當操作違反實體完整性、參照完整性和用戶定義的完整性約束條件時,一般是如何分別進行處理的?參考答案選擇題DBADC二、SQL語句1.Createtable職工(職工號char(10)primarykey,姓名char(10),年齡smallintcheck(Sage<=60),職務(wù)char(6),工資int,部門號char(6),foreignkey(部門號)references部門(部門號))Createtable部門(部門號char(6)primarykey,名稱char(10),經(jīng)理名char(10),電話號int,foreignkey(經(jīng)理名)references職工(姓名))2.寫出創(chuàng)建如下3個表的SQL語,要求在定義表的同時定義數(shù)據(jù)的完整性約束。(1)“圖書表”Createtable圖書表(書號nchar(6)primarykey,書名varchar(30)notnull,第一作者nchar(10)notnull,出版日期smalldate,價格numeric(3,1))(2)“書店表”Createtable書店表(書店編號nchar(6)primarykey,店名varchar(30)notnull,電話char(8)unique,地址varchar(40),郵政編碼nchar(6))(3)“圖書銷售表”Createtable圖書銷售表(書號nchar(6)notnull,書店編號nchar(6)notnull,銷售日期datenotnull,銷售數(shù)量smallintcheck(銷售數(shù)量>=1),Primarykey(書號,書店編號,銷售日期)Foreignkey(書號)references圖書(書號),Foreignkey(書店編號)references書店(書店編號))三、簡答題1.什么是數(shù)據(jù)庫的完整性?答:數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。2.關(guān)系數(shù)據(jù)庫管理系統(tǒng)的完整性控制機制應(yīng)具有哪三方面的功能?答:DBMS的完整性控制機制應(yīng)具有三個方面的功能:(l)定義功能,即提供定義完整性約束條件的機制;(2)檢查功能,即檢查用戶發(fā)出的操作請求是否違背了完整性約束條件;(3)違約反應(yīng):如果發(fā)現(xiàn)用戶的操作請求使數(shù)據(jù)違背了完整性約束條件,則采取一定的動作來保證數(shù)據(jù)的完整性。3.關(guān)系數(shù)據(jù)庫管理系統(tǒng)在實現(xiàn)參照完整性時需要考慮哪些方面?答:RDBMs在實現(xiàn)參照完整性時需要考慮以下幾個方面:(l)外碼是否可以接受空值。(2)冊l除被參照關(guān)系的元組時的考慮,這時系統(tǒng)可能采取的作法有三種:l)級聯(lián)刪除(CASCADES);2)受限刪除(RESTRICTED);3)置空值刪除(NULLIFIES)。(3)在參照關(guān)系中插入元組時的問題,這時系統(tǒng)可能采取的作法有:l)受限插入;2)遞歸插入。(4)修改關(guān)系中主碼的問題。一般是不能用UPDATE語句修改關(guān)系主碼的。如果需要修改主碼值,只能先刪除該元組,然后再把具有新主碼值的元組插入到關(guān)系中。如果允許修改主碼,首先要保證主碼的惟一性和非空,否則拒絕修改。然后要區(qū)分是參照關(guān)系還是被參照關(guān)系。4.在關(guān)系系統(tǒng)中,當操作違反實體完整性、參照完整性和用戶定義的完整性約束條件時,一般是如何分別進行處理的?答:對于違反實體完整性和用戶定義的完整性的操作一般都采用拒絕執(zhí)行的方式進行處理。而對于違反參照完整性的操作,并不都是簡單地拒絕執(zhí)行,有時要根據(jù)應(yīng)用語義執(zhí)行一些附加的操作,以保證數(shù)據(jù)庫的正確性。關(guān)系數(shù)據(jù)庫規(guī)范化理論習題一、選擇題二、簡答題1.解釋下列名詞:函數(shù)依賴、部分函數(shù)依賴、完全函數(shù)依賴、傳遞函數(shù)依賴、侯選碼、主碼、全碼、1NF、2NF、3NF、BCNF、多值依賴、4NF、連接依賴、5NF、最小函數(shù)依賴集、無損分解2.現(xiàn)要建立關(guān)于系、學生、班級、學會等信息的一個關(guān)系數(shù)據(jù)庫。語義為:一個系有若干專業(yè),每個專業(yè)每年只招一個班,每個班有若干學生,一個系的學生住在同一個宿舍區(qū),每個學生可參加若干學會,每個學會有若干學生。描述學生的屬性有:學號、姓名、出生日期、系名、班號、宿舍區(qū);描述班級的屬性有:班號、專業(yè)名、系名、人數(shù)、入校年份;描述系的屬性有:系名、系號、系辦公室地點、人數(shù);描述學會的屬性有:學會名、成立年份、地點、人數(shù)、學生參加某學會有一個入會年份。=1\*GB2⑴請寫出關(guān)系模式。=2\*GB2⑵寫出每個關(guān)系模式的最小函數(shù)依賴集,指出是否存在傳遞依賴,在函數(shù)依賴左部是多屬性的情況下,討論函數(shù)依賴是完全依賴,還是部分依賴。=3\*GB2⑶指出各個關(guān)系模式的候選關(guān)鍵字、外部關(guān)鍵字,有沒有全關(guān)鍵字。3.設(shè)關(guān)系模式R(A,B,C,D),函數(shù)依賴集F={A→C,C→A,B→AC,D→AC,BD→A}。=1\*GB2⑴求出R的候選碼;=2\*GB2⑵求出F的最小函數(shù)依賴集;=3\*GB2⑶將R分解為3NF,使其既具有無損連接性又具有函數(shù)依賴保持性。4.設(shè)有關(guān)系模式R(A,B,C),函數(shù)依賴集F={AB→C,C→A},R屬于第幾范式?為什么?參考答案一、選擇題ABBCCDCBAB二、簡答題1.解釋下列名詞:函數(shù)依賴、部分函數(shù)依賴、完全函數(shù)依賴、傳遞函數(shù)依賴、侯選碼、主碼、全碼、1NF、2NF、3NF、BCNF、多值依賴、4NF、連接依賴、5NF、最小函數(shù)依賴集、無損分解答:函數(shù)依賴:設(shè)R(U)是一個關(guān)系模式,U是R的屬性集合,X和Y是U的子集。對于R(U)的任意一個可能的關(guān)系r,如果r中不存在兩個元組,它們在X上的屬性值相同,而在Y上的屬性值不同,則稱"X函數(shù)確定Y"或"Y函數(shù)依賴于X",記作X→Y。完全函數(shù)依賴、部分函數(shù)依賴:在R(U)中,如果X→Y,并且對于X的任何一個真子集X,都有X′→Y,則稱Y對X完全函數(shù)依賴;若X→Y,但Y不完全函數(shù)依賴于X,則稱Y對X部分函數(shù)依賴;候選碼、主碼:設(shè)K為R(U,F(xiàn))中的屬性或?qū)傩越M合,若K→U則K為R的候選碼。若候選碼多于一個,則選定其中的一個為主碼。外碼:關(guān)系模式R中屬性或?qū)傩越MX并非R的碼,但X是另一個關(guān)系模式的碼,則稱X是R的外部碼也稱外碼。全碼:整個屬性組是碼,稱為全碼(All-key)。1NF定義:如果一個關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項,則R∈1NF2NF定義:若R∈1NF,且每一個非主屬性完全函數(shù)依賴于碼,則R∈2NF。3NF定義:關(guān)系模式R<U,F(xiàn)>中若不存在這樣的碼X、屬性組Y及非主屬性Z(ZY),使得X→Y,Y→Z成立,Y→X,則稱R<U,F(xiàn)>∈3NF。若R∈3NF,則每一個非主屬性既不部分依賴于碼也不傳遞依賴于碼。BCNF定義:關(guān)系模式R<U,F(xiàn)>∈1NF,若X→Y且YX時X必含有碼,則R<U,F(xiàn)>∈BCNF。等價于:每一個決定屬性因素都包含碼。多值依賴的定義:設(shè)R(U)是屬性集U上的一個關(guān)系模式。X,Y,Z是U的子集,并且Z=U-X-Y。關(guān)系模式R(U)中多值依賴X→→Y成立,當且僅當對R(U)的任一關(guān)系r,給定的一對(x,z)值有一組Y的值,這組值僅僅決定于x值而與z值無關(guān)。4NF定義:關(guān)系模式R<U,F(xiàn)>∈1NF,如果對于R的每個非平凡多值依賴X→→Y(YX),X都含有碼,則R∈4NF。連接依賴:設(shè)關(guān)系模式R、Ri的屬性集是U、Ui,UiU(1≤i≤n).若R每個容許的實例r均滿足r=∏U1(r)∞...∞∏Un(r)則稱R滿足連接依賴,記作∞(R1,...,Rn).若其中某個Ui=U,則稱連接依賴是平凡連接依賴。多值依賴也是連接依賴。5NF定義:如果關(guān)系模式R中的每一個連接依賴均由R的候選碼所隱含,則稱此關(guān)系模式符合第五范式。最小函數(shù)依賴集:如果函數(shù)依賴集F滿足下列條件,則稱F為最小函數(shù)依賴集或最小覆蓋。①F中的任何一個函數(shù)依賴的右部僅含有一個屬性;②F中不存在這樣一個函數(shù)依賴X→A,使得F與F-{X→A}等價;③F中不存在這樣一個函數(shù)依賴X→A,X有真子集Z使得F-{X→A}∪{Z→A}與F等價。無損分解:指的是對關(guān)系模式分解時,原關(guān)系模型下任一合法的關(guān)系值在分解之后應(yīng)能通過自然聯(lián)接運算恢復起來。反之,則稱為有損分解。2.現(xiàn)要建立關(guān)于系、學生、班級、學會等信息的一個關(guān)系數(shù)據(jù)庫。語義為:一個系有若干專業(yè),每個專業(yè)每年只招一個班,每個班有若干學生,一個系的學生住在同一個宿舍區(qū),每個學生可參加若干學會,每個學會有若干學生。描述學生的屬性有:學號、姓名、出生日期、系名、班號、宿舍區(qū);描述班級的屬性有:班號、專業(yè)名、系名、人數(shù)、入校年份;描述系的屬性有:系名、系號、系辦公室地點、人數(shù);描述學會的屬性有:學會名、成立年份、地點、人數(shù)、學生參加某學會有一個入會年份。=1\*GB2⑴請寫出關(guān)系模式。=2\*GB2⑵寫出每個關(guān)系模式的最小函數(shù)依賴集,指出是否存在傳遞依賴,在函數(shù)依賴左部是多屬性的情況下,討論函數(shù)依賴是完全依賴,還是部分依賴。=3\*GB2⑶指出各個關(guān)系模式的候選關(guān)鍵字、外部關(guān)鍵字,有沒有全關(guān)鍵字。答:=1\*GB2⑴關(guān)系模式:學生S(S#,SN,SB,DN,C#,SA)班級C(C#,CS,DN,CNUM,CDATE)系D(D#,DN,DA,DNUM)學會P(PN,DATE1,PA,PNUM)學生--學會SP(S#,PN,DATE2)其中,S#—學號,SN—姓名,SB—出生年月,SA—宿舍區(qū)C#—班號,CS—專業(yè)名,CNUM—班級人數(shù),CDATE—入校年份D#—系號,DN—系名,DA—系辦公室地點,DNUM—系人數(shù)PN—學會名,DATE1—成立年月,PA—地點,PNUM—學會人數(shù),DATE2—入會年份=2\*GB2⑵每個關(guān)系模式的極小函數(shù)依賴集:S:S#→SN,S#→SB,S#→C#,C#→DN,DN→SAC:C#→CS,C#→CNUM,C#→CDATE,CS→DN,(CS,CDATE)→C#D:D#→DN,DN→D#,D#→DA,D#→DNUMP:PN→DATE1,PN→PA,PN→PNUMSP:(S#,PN)→DATE2S中存在傳遞函數(shù)依賴:S#→DN,S#→SA,C#→SAC中存在傳遞函數(shù)依賴:C#→DN(S#,PN)→DATE2和(CS,CDATE)→C#均為SP中的函數(shù)依賴,是完全函數(shù)依賴=3\*GB2⑶S:主碼S#;外碼C#,DN;無全碼C:主碼C#,(CS,CDATE);外碼DN;無全碼D:主碼D#和DN;無外碼;無全碼P:主碼PN;無外碼;無全碼SP:主碼(S#,PN);外碼S#,PN;無全碼3.設(shè)關(guān)系模式R(A,B,C,D),函數(shù)依賴集F={A→C,C→A,B→AC,D→AC,BD→A}。=1\*GB2⑴求出R的候選碼;=2\*GB2⑵求出F的最小函數(shù)依賴集;=3\*GB2⑶將R分解為3NF,使其既具有無損連接性又具有函數(shù)依賴保持性。答:=1\*GB2⑴F={A→C,C→A,B→AC,D→AC,BD→A}。候選碼:BD=2\*GB2⑵Fmin={A→C,C→A,B→C,D→C}=3\*GB2⑶T={AC,BC,DC,BD}4.設(shè)有關(guān)系模式R(A,B,C),函數(shù)依賴集F={AB→C,C→A},R屬于第幾范式?為什么?答:首先,它是一個關(guān)系模式,所以至少滿足第一范式;其次,該函數(shù)依賴集中不存在部分函數(shù)依賴,所以滿足第二范式;再次,由于,(ABUC)交A=A,不等于空集,所以由傳遞函數(shù)依賴的定義知道,不存在傳遞函數(shù)依賴,所以滿足第三范式;

最后,由于A,B,C都是關(guān)系的主屬性,所以該關(guān)系中存在主屬性間的部分函數(shù)依賴(AB→C),所以不屬于BCNF。所以最高范式為第三范式。第7章數(shù)據(jù)庫設(shè)計習題一、選擇題1.數(shù)據(jù)庫外模式是在下列哪個階段設(shè)計()。A.數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計B.數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計C.數(shù)據(jù)庫物理設(shè)計D.數(shù)據(jù)庫實施和維護2.生成DBMS系統(tǒng)支持的數(shù)據(jù)模型是在下列哪個階段完成()。A.數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計B.數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計C.數(shù)據(jù)庫物理設(shè)計D.數(shù)據(jù)庫實施和維護3.根據(jù)應(yīng)用需求建立索引是在下列哪個階段完成()。A.數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計B.數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計C.數(shù)據(jù)庫物理設(shè)計D.數(shù)據(jù)庫實施和維護4.員工性別的取值,有的為“男”、“女”,有的為“1”、“0”,這種情況屬于()。A.屬性沖突B.命名沖突C.結(jié)構(gòu)沖突D.數(shù)據(jù)冗余二、簡答題1.試述數(shù)據(jù)庫設(shè)計過程。2.需求分析階段的設(shè)計目標是什么?調(diào)查的內(nèi)容是什么?3.學校中有若干系,每個系有若干班級和教研室,每個教研室有若干教員,其中有的教授和副教授每人各帶若干研究生,每個班有若干學生,每個學生選修若干課程,每門課可由若工學生選修。請用E-R圖畫出此學校的概念模型。4.某工廠生產(chǎn)若干產(chǎn)品,每種產(chǎn)品由不同的零件組成,有的零件可用在不同的產(chǎn)品上。這些零件由不同的原材料制成,不同零件所用的材料可以相同。這些零件按所屬的不同產(chǎn)品分別放在倉庫中,原材料按照類別放在若于倉庫中。請用E-R圖畫出此工廠產(chǎn)品、零件、材料、倉庫的概念模型。參考答案一、選擇題BBCA二、簡答題1.試述數(shù)據(jù)庫設(shè)計過程。答:這里只概要列出數(shù)據(jù)庫設(shè)計過程的6個階段:數(shù)據(jù)庫運行和維護。數(shù)據(jù)庫實施;數(shù)據(jù)庫物理設(shè)計;概念結(jié)構(gòu)設(shè)計;需求分析;邏輯結(jié)構(gòu)設(shè)計;這是一個完整的實際數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的設(shè)計過程。不僅包括設(shè)計數(shù)據(jù)庫本身,還包括數(shù)據(jù)庫的實施、數(shù)據(jù)庫的運行和維護。設(shè)計一個完善的數(shù)據(jù)庫應(yīng)用系統(tǒng)往往是上述6個階段的不斷反復。2.需求分析階段的設(shè)計目標是什么?調(diào)查的內(nèi)容是什么?答:需求分析階段的設(shè)計目標是通過詳細調(diào)查現(xiàn)實世界要處理的對象(組織、部門、企業(yè)等,充分了解原系統(tǒng)(手工系統(tǒng)或計算機系統(tǒng))工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能。調(diào)查的內(nèi)容是“數(shù)據(jù)”和“處理”,即獲得用戶對數(shù)據(jù)庫的如下要求:(1)信息要求。指用戶需要從數(shù)據(jù)庫中獲得信息的內(nèi)容與性質(zhì)。由信息要求可以導出數(shù)據(jù)要求,即在數(shù)據(jù)庫中需要存儲哪些數(shù)據(jù)。(2)處理要求。指用戶要完成什么處理功能,對處理的響應(yīng)時間有什么要求,處理方式是批處理還是聯(lián)機處理。(3)安全性與完整性要求。·3.學校中有若干系,每個系有若干班級和教研室,每個教研室有若干教員,其中有的教授和副教授每人各帶若干研究生,每個班有若干學生,每個學生選修若干課程,每門課可由若工學生選修。請用E-R圖畫出此學校的概念模型。答:解析:在畫E-R圖時,讀者可以按照習題中對問題的描述一步一步畫出每一句話中涉及的實體,再根據(jù)給出的實際語義畫出實體之間的聯(lián)系。例如,每個教研室有若干教員,每個班有若干學生,可以畫出教研室和教員,班級和學生之間一對多的聯(lián)系,從“有的教授和副教授每人各帶若干研究生”,一個研究生一般指定一個導師,這是通常的規(guī)則,所以可以畫出教員和學生之間一對多的聯(lián)系。E-R圖中各實體的屬性假設(shè)為:系:系編號,系名班級:班級編號,班級名教研室:教研室編號,教研室學生:學號,姓名,學歷課程:課程編號,課程名教員:職工號,姓名,職稱各聯(lián)系的屬性為:選修:成績其他聯(lián)系無屬性。4.某工廠生產(chǎn)若干產(chǎn)品,每種產(chǎn)品由不同的零件組成,有的零件可用在不同的產(chǎn)品上。這些零件由不同的原材料制成,不同零件所用的材料可以相同。這些零件按所屬的不同產(chǎn)品分別放在倉庫中,原材料按照類別放在若于倉庫中。請用E-R圖畫出此工廠產(chǎn)品、零件、材料、倉庫的概念模型。答:解析:對實體之間聯(lián)系的語義描述有時不是直截了當?shù)?,需要從對現(xiàn)實世界的整體描述中進行分析,導出實體之間的某種聯(lián)系。就如本題中,“零件和倉庫的聯(lián)系”就要從以下描述中分析:“零件按所屬的不同產(chǎn)品分別放在倉庫中”。因為一個產(chǎn)品由多種零件組成,所以一個倉庫中放多種零件。反過來,一種零件是放在一個倉庫還是多個倉庫中呢?因為一種零件可以用在多種產(chǎn)品上,這些零件按所屬的不同產(chǎn)品分別放在倉庫中,于是可以知道一種零件可以放在多個倉庫中。所以零件和倉庫之間是多對多的聯(lián)系?!安牧虾蛡}庫的聯(lián)系”則根據(jù)“原材料按照類別放在若干倉庫”這句話就可以得出:一個倉庫中放多種材料,而一種材料只放在一個倉庫中,所以倉庫和材料之間是一對多的聯(lián)系。各實體的屬性為:產(chǎn)品:產(chǎn)品號,產(chǎn)品名零件:零件號,零件名原材料:原材料號,原材料名,類別倉庫:倉庫號,倉庫名各聯(lián)系的屬性為:產(chǎn)品組成:使用零件量零件制造:使用原材料量零件存儲:存儲量材料存放:存放量第8章數(shù)據(jù)庫編程習題一、選擇題1.在SQLServer中,查看某個數(shù)據(jù)庫對象的信息的系統(tǒng)存儲過程是()。A.sp_helpindexB.sp_helpC.sp_helptextD.sp_stored_procedures

2.在SQLServer中,關(guān)于存儲過程的說法不正確的是()。A.存儲過程一般分為系統(tǒng)存儲過程、擴展存儲過程和用戶自定義存儲過程B.存儲過程是在數(shù)據(jù)庫管理系統(tǒng)中保存的、預先編譯的并能實現(xiàn)某種功能的SQL程序C.存儲過程幫助實現(xiàn)了模塊化編程D.用戶在創(chuàng)建自定義存儲過程后不能再被修改3.當對表進行哪項操作時觸發(fā)器不會自動執(zhí)行()。A.SelectB.InsertC.UpdateD.Delete4.關(guān)于ODBC連接方式,錯誤的一項是()。A.ODBC管理器負責安裝驅(qū)動程序,管理數(shù)據(jù)源B.數(shù)據(jù)源不是數(shù)據(jù)庫的位置C.系統(tǒng)DNS:ODBC系統(tǒng)數(shù)據(jù)源存儲了如何指定數(shù)據(jù)庫提供者連接的信息D.連接池允許應(yīng)用程序重用原來打開的連接句柄,節(jié)省到服務(wù)器的往返程序二、簡答題1.使用嵌入式SQL對學生-課程數(shù)據(jù)庫中的表完成下述功能:(1)查詢某一門課程的信息。要查詢的課程由用戶在程序運行過程中指定,放在主變量中。(2)查詢選修某一門課程的選課信息,要查詢的課程號由用戶在程序運行過程中指定,放在主變量中,然后根據(jù)用戶的要求修改其中某些記錄的成績字段。2.對學生-課程數(shù)據(jù)庫編寫存儲過程,完成下述功能:(1)統(tǒng)計離散數(shù)學的成績分布情況,即按照各分數(shù)段統(tǒng)計人數(shù)。(2)統(tǒng)計任意一門課的平均成績。(3)將學生選課成績從百分制改為等級制(即A、B、C、D、E)3.使用ODBC編寫應(yīng)用程序來對異構(gòu)數(shù)據(jù)庫進行各種數(shù)據(jù)操作。配置兩個不同的數(shù)據(jù)源,編寫程序連接兩個不同關(guān)系數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)源,對異構(gòu)數(shù)據(jù)庫進行操作。例如,將KingbaseES數(shù)據(jù)庫的某個表中的數(shù)據(jù)轉(zhuǎn)移到SQLServer數(shù)據(jù)參考答案一、選擇題BDAB二、簡答題1.使用嵌入式SQL對學生-課程數(shù)據(jù)庫中的表完成下述功能:(1)查詢某一門課程的信息。要查詢的課程由用戶在程序運行過程中指定,放在主變量中。答:解析:給出完成查詢的嵌入式SQL語句。/*定義主變量:HCno,:HCname,:HCpno,:HCeredit,:givencno*//*讀入用戶輸入的課程號,放人主變量:givencno*/EXECSQLSELECTCno,Cname,Cpno,CereditINTO:HCno,:HCname,:HCpno,:HCcredit/*把SQL查詢結(jié)果放入主變量中*/FROMCourseWHERECno=:givencno;(2)查詢選修某一門課程的選課信息,要查詢的課程號由用戶在程序運行過程中指定,放在主變量中,然后根據(jù)用戶的要求修改其中某些記錄的成績字段。答:解析:給出完成查詢要使用的游標以及嵌入式SQL語句。/*定義主變量:HSno,:HCno,:HGrade,:givencno,:NEWGrade*//*在程序中輸入要查詢的課程號,放入主變量:givencno*//*定義游標SCX,對應(yīng)的SQL語句*/EXECSQLDECLARESCXCURSORFORSELECTSno,Cno,GradeFROMSCWHERECno=:givencno;/*要查詢的課程號放在主變量givencno中*/EXECSQLOPENSCX;/*打開游標SCX,指向查詢結(jié)果的第一行*/for(;;)/*用循環(huán)結(jié)構(gòu)逐條處理結(jié)果集中的記錄*/{EXECSQLFETCHSCXINTO:HSno,:HCno,:HGrade;/*推進游標,將當前數(shù)據(jù)放入主變量*//*顯示查詢結(jié)果,詢問用戶是否要更新該條記錄的選修成績*//*如果選擇更新操作*//*用戶輸入新的成績到:NEWgrade中,然后對當前游標指向的選修課成績進行更新*/EXECSQLUPDATESC/*嵌入式SQL更新語句*/SETgrade=:NEWgradeWHERECURRENTOFSCX;/*對當前游標指向的選修課成績進行更新*//*全部處理完SC表后終止循環(huán)*/};EXECSQLCLOSESCX;/*關(guān)閉游標SCX不再和查詢結(jié)果對應(yīng)*//*提交更新*/2.對學生-課程數(shù)據(jù)庫編寫存儲過程,完成下述功能:(1)統(tǒng)計離散數(shù)學的成績分布情況,即按照各分數(shù)段統(tǒng)計人數(shù)。答:CREATEPROCEDUREdiscrete_math_grade()ASDECLARECURSORdistFORA/*定義游標*/SELECTgradeFROMSCWHEREcno=(SELECTCnoFROMCourseWHERECname='離散數(shù)學');P_100NUMBER:=0;P_90NUMBER:=0:p_80NUMBER:=0;P_70NUMBER:=0;P_60NUMBER:=0:p_othersNUMBER:=0:P_gradeNUMBER;BEGINOPENdist:/*打開游標*/LOOPFETCHdistINTOp_grade;/*使用游標*/EXITWHEN(dis%NOTFOUND):IF(p_grade==100)THENp_100:=p_100+1:ELSIF(p_grade>=90)THENp_90:=p_90+1;ELSIF(p_grade>=80)THENp_80:=p_80+1;ELSIF(p_grade>=70)THENp_70:=p_70+1:ELSIF(p_grade>=60)THENp_60:=p_60+1;ELSEp_others:=p_others+1;ENDIF;ENDLOOP;CLOSEdist;/*關(guān)閉游標*/END;(2)統(tǒng)計任意一門課的平均成績。答:解析:輸入任意一門課的課程名,計算選修該課程學生的平均成績。CREATEPROCEDUREavegrade(incnameCHAR(40))ASBEGINSELECTAVG(Grade)FROMSCWHERECno=(SELECTCnoFROMCourseWHERECname=incname);END;(3)將學生選課成績從百分制改為等級制(即A、B、C、D、E)答:解析:掃描SC表,把學生選課成績grade的值由百分制更新為等級制。CREATEPROCEDUREgradetype()ASDECLARECURSORgradecursorFORSELECTgradeFROMSC;scgradeNUMBER;scoreCHAR(1);BEGINOPENgradecursor;/*打開游標*/LOOP/*使用游標*/FETCHgradecursorINTOscgrade;EXITWHEN(gradecursor%NOTFOUND);IF(scgrade>=90ANDscgrade<=100)THENscore:='A';ELSIF(scgrade>=80)THENscore:='B';ELSIF(scgrade>=70)THENscore:='C';ELSIF(scgrade>=60)THENscore:='D';ELSEscore:='E';ENDIF;ENDLOOP;END;3.使用ODBC編寫應(yīng)用程序來對異構(gòu)數(shù)據(jù)庫進行各種數(shù)據(jù)操作。配置兩個不同的數(shù)據(jù)源,編寫程序連接兩個不同關(guān)系數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)源,對異構(gòu)數(shù)據(jù)庫進行操作。例如,將KingbaseES數(shù)據(jù)庫的某個表中的數(shù)據(jù)轉(zhuǎn)移到SQLServer數(shù)據(jù)庫的表中。答:解析:該操作涉及兩個不同的關(guān)系數(shù)據(jù)庫管理系統(tǒng)中的數(shù)據(jù)源,因此使用ODBC來開發(fā)應(yīng)用程序,只要改變應(yīng)用程序中連接函數(shù)(SQLConnect)的參數(shù),就可以連接不同關(guān)系數(shù)據(jù)庫管理系統(tǒng)的驅(qū)動程序,連接兩個數(shù)據(jù)源。在應(yīng)用程序運行前,已經(jīng)在KingbaseES和SQLServer中分別建立了Student關(guān)系表。應(yīng)用程序要執(zhí)行的操作是:在KingbaseES上執(zhí)行SELECT*FROMStudent;把獲取的結(jié)果集,通過多次執(zhí)行INSERT語插入到SQLServer的Student表中。第9章數(shù)據(jù)庫安全性習題一、選擇題1.對用戶訪問數(shù)據(jù)庫的權(quán)限加以限定是為了保護數(shù)據(jù)庫的()。A.安全性B.完整性C.一致性D.并發(fā)性2.在數(shù)據(jù)庫系統(tǒng)中,定義用戶可以對哪些數(shù)據(jù)對象進行何種操作被稱為()。A.審計B.授權(quán)C.定義D.視圖3.SQL中的視圖提高了數(shù)據(jù)庫系統(tǒng)的()。A.完整性B.并發(fā)控制C.隔離性D.安全性4.找出下面SQL命令中的數(shù)據(jù)控制命令()。A.GRANTB.COMMITC.UPDATED.SELECT二、簡答題1.什么是數(shù)據(jù)庫的安全性?2.數(shù)據(jù)庫不安全的因素主要有哪些?舉例說明對數(shù)據(jù)庫安全性產(chǎn)生威脅的因素。3.試述實現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)。4.什么是數(shù)據(jù)庫中的自主存取控制方法和強制存取控制方法?5.為什么強制存取控制提供了更高級別的數(shù)據(jù)庫安全性?6.什么是數(shù)據(jù)庫的審計功能,為什么要提供審計功能?7.現(xiàn)有兩個關(guān)系模式:職工(職工號,姓名,年齡,職務(wù),工資,部門號)部門(部門號,名稱,經(jīng)理名,地址,電話號)請用SQL的GRANT和REVOKE語句完成以下授權(quán)定義或存取控制功能:(1)用戶李燦對兩個表有SELECT權(quán)限;(2)用戶張明月對兩個表有INSERT和DELETE權(quán)限;(3)用戶馬歡對職工表有SELECT權(quán)限,對工資字段具有更新權(quán)限;(4)用戶楊紫涵具有修改這兩個表的結(jié)構(gòu)的權(quán)限;(5)用戶陳萍具有對兩個表的讀,插,改,刪權(quán)限,并具有給其他用戶授權(quán)的權(quán)限。參考答案一、選擇題ABDA二、簡答題1.什么是數(shù)據(jù)庫的安全性?答:數(shù)據(jù)庫的安全性(security)是指保護數(shù)據(jù)庫避免不合法的使用,以免數(shù)據(jù)的泄漏、更改或破壞。數(shù)據(jù)庫不安全的因素主要有哪些?舉例說明對數(shù)據(jù)庫安全性產(chǎn)生威脅的因素。答:不安全因素主要有:①非授權(quán)用戶對數(shù)據(jù)庫的惡意存取和破壞②數(shù)據(jù)庫中重要或敏感的數(shù)據(jù)被泄露③安全環(huán)境的脆弱性。試述實現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)。答:實現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)有:1)用戶標識和鑒別:該方法由系統(tǒng)提供一定的方式讓用戶標識自己的名字或身份。每次用戶要求進入系統(tǒng)時,由系統(tǒng)進行核對,通過鑒定后才提供系統(tǒng)的使用權(quán)。2)存取控制:通過用戶權(quán)限定義和合法權(quán)檢查確保只有合法權(quán)限的用戶訪問數(shù)據(jù)庫,所有未被授權(quán)的人員無法存取數(shù)據(jù)。例如C2級中的自主存取控制(DAC),B1級中的強制存取控制(MAC);3)視圖機制:為不同的用戶定義視圖,通過視圖機制把要保密的數(shù)據(jù)對無權(quán)存取的用戶隱藏起來,從而自動地對數(shù)據(jù)提供一定程度的安全保護。4)審計:建立審計日志,把用戶對數(shù)據(jù)庫的所有操作自動記錄下來放入審計日志中,DBA可以利用審計跟蹤的信息,重現(xiàn)導致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時間和內(nèi)容等。5)數(shù)據(jù)加密:對存儲和傳輸?shù)臄?shù)據(jù)進行加密處理,從而使得不知道解密算法的人無法獲知數(shù)據(jù)的內(nèi)容。4.什么是數(shù)據(jù)庫中的自主存取控制方法和強制存取控制方法?答:自主存取控制方法:定義各個用戶對不同數(shù)據(jù)對象的存取權(quán)限。當用戶對數(shù)據(jù)庫訪問時首先檢查用戶的存取權(quán)限。防止不合法用戶對數(shù)據(jù)庫的存取。強制存取控制方法:每一個數(shù)據(jù)對象被(強制地)標以一定的密級,每一個用戶也被(強制地)授予某

溫馨提示

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

評論

0/150

提交評論