数据库系统概论课后习题答案(第五版 王珊、萨师煊)(常用的数据网站汇总)
第1章 緒論
1 .試述數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)的概念。
答:
(1)數(shù)據(jù)(Data):描述事物的符號(hào)記錄稱為數(shù)據(jù)。數(shù)據(jù)的種類有數(shù)字、文字、圖形、圖像、聲音、正文等。
??在現(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ù)。現(xiàn)代計(jì)算機(jī)能存儲(chǔ)和處理的對(duì)象十分廣泛,表示這些對(duì)象的數(shù)據(jù)也越來越復(fù)雜。
??數(shù)據(jù)與其語義是不可分的。500 這個(gè)數(shù)字可以表示一件物品的價(jià)格是 500 元,也可以表示一個(gè)學(xué)術(shù)會(huì)議參加的人數(shù)有 500 人,還可以表示一袋奶粉重 500 克。
(2)數(shù)據(jù)庫(DataBase,簡稱DB):數(shù)據(jù)庫是長期儲(chǔ)存在計(jì)算機(jī)內(nèi)、有組織的、可共享的大量數(shù)據(jù)的集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲(chǔ)存,具有較小的冗余度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可為各種用戶共享。
(3)數(shù)據(jù)庫系統(tǒng)( DataBase Sytem ,簡稱 DBS ) :數(shù)據(jù)庫系統(tǒng)是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成,一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員構(gòu)成。
??數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫是兩個(gè)概念。數(shù)據(jù)庫系統(tǒng)是一個(gè)人-機(jī)系統(tǒng),數(shù)據(jù)庫是數(shù)據(jù)庫系統(tǒng)的一個(gè)組成部分。但是在日常工作中人們常常把數(shù)據(jù)庫系統(tǒng)簡稱為數(shù)據(jù)庫。希望讀者能夠從人們講話或文章的上下文中區(qū)分“數(shù)據(jù)庫系統(tǒng)”和“數(shù)據(jù)庫”,不要引起混淆。
(4)數(shù)據(jù)庫管理系統(tǒng)( DataBase Management sytem ,簡稱 DBMS ) :數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,用于科學(xué)地組織和存儲(chǔ)數(shù)據(jù)、高效地獲取和維護(hù)數(shù)據(jù)。 DBMS 的主要功能包括數(shù)據(jù)定義功能、數(shù)據(jù)操縱功能、數(shù)據(jù)庫的運(yùn)行管理功能、數(shù)據(jù)庫的建立和維護(hù)功能。
??DBMS 是一個(gè)大型的復(fù)雜的軟件系統(tǒng),是計(jì)算機(jī)中的基礎(chǔ)軟件。目前,專門研制 DBMS 的廠商及其研制的 DBMS 產(chǎn)品很多。著名的有美國 IBM 公司的 DB2 關(guān)系數(shù)據(jù)庫管理系統(tǒng)、IMS 層次數(shù)據(jù)庫管理系統(tǒng)、美國 Oracle 公司的 Oracle 關(guān)系數(shù)據(jù)庫管理系統(tǒng)、 美國微軟公司的 SQL Server 關(guān)系數(shù)據(jù)庫管理系統(tǒng)等。
2 .使用數(shù)據(jù)庫系統(tǒng)有什么好處?
答:
??使用數(shù)據(jù)庫系統(tǒng)的好處是由數(shù)據(jù)庫管理系統(tǒng)的特點(diǎn)或優(yōu)點(diǎn)決定的。使用數(shù)據(jù)庫系統(tǒng)的好處很多,例如:
??可以大大提高應(yīng)用開發(fā)的效率,方便用戶的使用,減輕數(shù)據(jù)庫系統(tǒng)管理人員維護(hù)的負(fù)擔(dān),等等。使用數(shù)據(jù)庫系統(tǒng)可以大大提高應(yīng)用開發(fā)的效率。因?yàn)樵跀?shù)據(jù)庫系統(tǒng)中應(yīng)用程序不必考慮數(shù)據(jù)的定義、存儲(chǔ)和數(shù)據(jù)存取的具體路徑,這些工作都由 DBMS 來完成。用一個(gè)通俗的比喻,使用了 DBMS 就如有了一個(gè)好參謀、好助手,許多具體的技術(shù)工作都由這個(gè)助手來完成。開發(fā)人員就可以專注于應(yīng)用邏輯的設(shè)計(jì),而不必為數(shù)據(jù)管理的許許多多復(fù)雜的細(xì)節(jié)操心。
??還有,當(dāng)應(yīng)用邏輯改變,數(shù)據(jù)的邏輯結(jié)構(gòu)也需要改變時(shí),由于數(shù)據(jù)庫系統(tǒng)提供了數(shù)據(jù)與程序之間的獨(dú)立性,數(shù)據(jù)邏輯結(jié)構(gòu)的改變是 DBA 的責(zé)任,開發(fā)人員不必修改應(yīng)用程序,或者只需要修改很少的應(yīng)用程序,從而既簡化了應(yīng)用程序的編制,又大大減少了應(yīng)用程序的維護(hù)和修改。使用數(shù)據(jù)庫系統(tǒng)可以減輕數(shù)據(jù)庫系統(tǒng)管理人員維護(hù)系統(tǒng)的負(fù)擔(dān)。因?yàn)?DBMS 在數(shù)據(jù)庫建立、運(yùn)用和維護(hù)時(shí)對(duì)數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理和控制,包括數(shù)據(jù)的完整性、安全性、多用戶并發(fā)控制、故障恢復(fù)等,都由 DBMS 執(zhí)行。總之,使用數(shù)據(jù)庫系統(tǒng)的優(yōu)點(diǎn)是很多的,既便于數(shù)據(jù)的集中管理,控制數(shù)據(jù)冗余,提高數(shù)據(jù)的利用率和一致性,又有利于應(yīng)用程序的開發(fā)和維護(hù)。
3 .試述文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的區(qū)別和聯(lián)系。
答:
??文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的區(qū)別:
??文件系統(tǒng)面向某一應(yīng)用程序,共享性差,冗余度大,數(shù)據(jù)獨(dú)立性差,記錄內(nèi)有結(jié)構(gòu),整體無結(jié)構(gòu),由應(yīng)用程序自己控制。
??數(shù)據(jù)庫系統(tǒng)面向現(xiàn)實(shí)世界,共享性高,冗余度小,具有較高的物理獨(dú)立性和一定的邏輯獨(dú)立性,整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述,由數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)的安全性、完整性、并發(fā)控制和恢復(fù)能力。
??文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的聯(lián)系:
??文件系統(tǒng)與數(shù)據(jù)庫系統(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ù)庫中數(shù)據(jù)的組織和存儲(chǔ)是通過操作系統(tǒng)中的文件系統(tǒng)來實(shí)現(xiàn)的。
4.舉出適合用文件系統(tǒng)而不是數(shù)據(jù)庫系統(tǒng)的例子;再舉出適合用數(shù)據(jù)庫系統(tǒng)的應(yīng)用例子。
答 :
(1)數(shù)據(jù)的備份、軟件或應(yīng)用程序使用過程中的臨時(shí)數(shù)據(jù)存儲(chǔ)一般使用文件比較合適。早期功能比較簡單、比較固定的應(yīng)用系統(tǒng)也適合用文件系統(tǒng)。
(2)目前,幾乎所有企業(yè)或部門的信息系統(tǒng)都以數(shù)據(jù)庫系統(tǒng)為基礎(chǔ),都使用數(shù)據(jù)庫。例如,一個(gè)工廠的管理信息系統(tǒng)會(huì)包括許多子系統(tǒng),如庫存管理系統(tǒng)、物資采購系統(tǒng)、作業(yè)調(diào)度系統(tǒng)、設(shè)備管理系統(tǒng)、人事管理系統(tǒng)等;再如學(xué)校的學(xué)生管理系統(tǒng)、人事管理系統(tǒng)、圖書館的圖書管理系統(tǒng)等都適合用數(shù)據(jù)庫系統(tǒng)。
5 .試述數(shù)據(jù)庫系統(tǒng)的特點(diǎn)。
答:
??數(shù)據(jù)庫系統(tǒng)的主要特點(diǎn)有:
(1)數(shù)據(jù)結(jié)構(gòu)化。數(shù)據(jù)庫系統(tǒng)實(shí)現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,這是數(shù)據(jù)庫的主要特征之一,也是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。
??注意這里的“整體’兩個(gè)字。在數(shù)據(jù)庫系統(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é)生的姓名),大到一組記錄(成千上萬個(gè)學(xué)生記錄)。而在文件系統(tǒng)中,數(shù)據(jù)的存取單位只有一個(gè):記錄,如一個(gè)學(xué)生的完整記錄。
(2)數(shù)據(jù)的共享性高,冗余度低,易擴(kuò)充。數(shù)據(jù)庫的數(shù)據(jù)不再面向某個(gè)應(yīng)用而是面向整個(gè)系統(tǒng),因此可以被多個(gè)用戶、多個(gè)應(yīng)用以多種不同的語言共享使用。由于數(shù)據(jù)面向整個(gè)系統(tǒng),是有結(jié)構(gòu)的數(shù)據(jù),不僅可以被多個(gè)應(yīng)用共享使用,而且容易增加新的應(yīng)用,這就使得數(shù)據(jù)庫系統(tǒng)彈性大,易于擴(kuò)充。數(shù)據(jù)共享可以大大減少數(shù)據(jù)冗余,節(jié)約存儲(chǔ)空間,同時(shí)還能夠避免數(shù)據(jù)之間的不相容性與不一致性。
??所謂“彈性大”是指系統(tǒng)容易擴(kuò)充也容易收縮,即應(yīng)用增加或減少時(shí)不必修改整個(gè)數(shù)據(jù)庫的結(jié)構(gòu),只需做很少的改動(dòng)。可以取整體數(shù)據(jù)的各種子集用于不同的應(yīng)用系統(tǒng),當(dāng)應(yīng)用需求改變或增加時(shí),只要重新選取不同的子集或加上一部分?jǐn)?shù)據(jù),便可以滿足新的需求。
(3)數(shù)據(jù)獨(dú)立性高。數(shù)據(jù)獨(dú)立性包括數(shù)據(jù)的物理獨(dú)立性和數(shù)據(jù)的邏輯獨(dú)立性。數(shù)據(jù)庫管理系統(tǒng)的模式結(jié)構(gòu)和二級(jí)映像功能保證了數(shù)據(jù)庫中的數(shù)據(jù)具有很高的物理獨(dú)立性和邏輯獨(dú)立性。
(4)數(shù)據(jù)由 DBMS 統(tǒng)一管理和控制。數(shù)據(jù)庫的共享是并發(fā)的共享,即多個(gè)用戶可以同時(shí)存取數(shù)據(jù)庫中的數(shù)據(jù)甚至可以同時(shí)存取數(shù)據(jù)庫中同一個(gè)數(shù)據(jù)。為此, DBMS 必須提供統(tǒng)一的數(shù)據(jù)控制功能,包括數(shù)據(jù)的安全性保護(hù)、數(shù)據(jù)的完整性檢查、并發(fā)控制和數(shù)據(jù)庫恢復(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ù)庫恢復(fù):當(dāng)計(jì)算機(jī)系統(tǒng)發(fā)生硬件故障、軟件故障,或者由于操作員的失誤以及故意的破壞影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,甚至造成數(shù)據(jù)庫部分或全部數(shù)據(jù)的丟失時(shí),能將數(shù)據(jù)庫從錯(cuò)誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài),亦稱為完整狀態(tài)或一致狀態(tài)。
??數(shù)據(jù)庫系統(tǒng)的出現(xiàn)使信息系統(tǒng)從以加工數(shù)據(jù)的程序?yàn)橹行霓D(zhuǎn)向圍繞共享的數(shù)據(jù)庫為中心的新階段。
6 .?dāng)?shù)據(jù)庫管理系統(tǒng)的主要功能有哪些?
答:
(1)數(shù)據(jù)庫定義功能;
(2)數(shù)據(jù)組織、存儲(chǔ)和管理功能;
(3)數(shù)據(jù)操縱功能;
(4)數(shù)據(jù)庫的事務(wù)管理和運(yùn)行管理;
(5)數(shù)據(jù)庫的建立和維護(hù)功能。
7 .什么是概念模型?試述概念模型的作用。
答:
??概念模型是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次。概念模型用于信息世界的建模,是現(xiàn)實(shí)世界到信息世界的第一層抽象,是數(shù)據(jù)庫設(shè)計(jì)人員進(jìn)行數(shù)據(jù)庫設(shè)計(jì)的有力工具,也是數(shù)據(jù)庫設(shè)計(jì)人員和用戶之間進(jìn)行交流的語言。
8.定義并解釋概念模型中以下術(shù)語:實(shí)體,實(shí)體型,實(shí)體集,實(shí)體之間的聯(lián)系。
答:
??實(shí)體:客觀存在并可以相互區(qū)分的事物叫實(shí)體。
??實(shí)體型:具有相同屬性的實(shí)體具有相同的特征和性質(zhì),用實(shí)體名及其屬性名集合來抽象和刻畫同類實(shí)體,稱為實(shí)體型。 ??實(shí)體集:同型實(shí)體的集合稱為實(shí)體集。
??實(shí)體之間的聯(lián)系:通常是指不同實(shí)體型的實(shí)體集之間的聯(lián)系,實(shí)體之間的聯(lián)系有一對(duì)一、一對(duì)多和多對(duì)多等多種類型。
9 .試述數(shù)據(jù)模型的概念、數(shù)據(jù)模型的作用和數(shù)據(jù)模型的三個(gè)要素。
答:
??數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)中最重要的概念之一。數(shù)據(jù)模型是數(shù)據(jù)庫中用來對(duì)現(xiàn)實(shí)世界進(jìn)行抽象的工具,是數(shù)據(jù)庫中用于提供信息表示和操作手段的形式構(gòu)架。
??一般地講,數(shù)據(jù)模型是嚴(yán)格定義的概念的集合。這些概念精確描述了系統(tǒng)的靜態(tài)特性、動(dòng)態(tài)特性和完整性約束條件。因此數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束三部分組成。
(1)數(shù)據(jù)結(jié)構(gòu):是所研究的對(duì)象類型的集合,是對(duì)系統(tǒng)靜態(tài)特性的描述。
(2)數(shù)據(jù)操作:是指對(duì)數(shù)據(jù)庫中各種對(duì)象(型)的實(shí)例(值)允許進(jìn)行的操作的集合,包括操作及有關(guān)的操作規(guī)則,是對(duì)系統(tǒng)動(dòng)態(tài)特性的描述。
(3)數(shù)據(jù)的約束條件:是一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。
??數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)。任何一個(gè) DBMS 都以某一個(gè)數(shù)據(jù)模型為基礎(chǔ),或者說支持某一個(gè)數(shù)據(jù)模型。數(shù)據(jù)庫系統(tǒng)中,模型有不同的層次。根據(jù)模型應(yīng)用的不同目的,可以將模型分成兩類或者說兩個(gè)層次:一是概念模型,是按用戶的觀點(diǎn)來對(duì)數(shù)據(jù)和信息建模,用于信息世界的建模,強(qiáng)調(diào)語義表達(dá)能力,概念簡單清晰;二是數(shù)據(jù)模型,是按計(jì)算機(jī)系統(tǒng)的觀點(diǎn)對(duì)數(shù)據(jù)建模,用于機(jī)器世界,人們可以用它定義、操縱數(shù)據(jù)庫中的數(shù)據(jù)。
10.試述層次模型的概念,舉出三個(gè)層次模型的實(shí)例。
答:
??滿足下面兩個(gè)條件的基本層次聯(lián)系的集合為層次模型。
(1)有且只有一個(gè)結(jié)點(diǎn)沒有雙親結(jié)點(diǎn),這個(gè)結(jié)點(diǎn)稱為根結(jié)點(diǎn);
(2)根以外的其他結(jié)點(diǎn)有且只有一個(gè)雙親結(jié)點(diǎn)。
??層次模型的實(shí)例:
(1)學(xué)校層次數(shù)據(jù)庫模型;
(2)行政機(jī)構(gòu)層次數(shù)據(jù)庫模型;
(3)行政區(qū)域?qū)哟螖?shù)據(jù)庫模型。
11.試述網(wǎng)狀模型的概念,舉出三個(gè)網(wǎng)狀模型的實(shí)例。
答:
??滿足下面兩個(gè)條件的基本層次聯(lián)系的集合為網(wǎng)狀模型。
(1)允許一個(gè)以上的結(jié)點(diǎn)無雙親;
(2)一個(gè)結(jié)點(diǎn)可以有多于一個(gè)的雙親。
??網(wǎng)狀模型的實(shí)例略。
12 .試述網(wǎng)狀、層次數(shù)據(jù)庫的優(yōu)缺點(diǎn)。
答:
??層次模型的優(yōu)點(diǎn)主要有:
(1)層次數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)比較簡單清晰;
(2)層次數(shù)據(jù)庫的查詢效率高;
(3)層次數(shù)據(jù)模型提供了良好的完整性支持。
??層次模型的缺點(diǎn)主要有:
(1)現(xiàn)實(shí)世界中很多聯(lián)系是非層次性的,層次數(shù)據(jù)庫不能自然地表示這類聯(lián)系;
(2)對(duì)插入和刪除操作的限制比較多;
(3)查詢子女結(jié)點(diǎn)必須通過雙親結(jié)點(diǎn)。
??網(wǎng)狀數(shù)據(jù)模型的優(yōu)點(diǎn)主要有:
(1)能夠更為直接地描述現(xiàn)實(shí)世界,如一個(gè)結(jié)點(diǎn)可以有多個(gè)雙親;
(2)具有良好的性能,存取效率較高。
?? 網(wǎng)狀數(shù)據(jù)模型的缺點(diǎn)主要有:
(1)結(jié)構(gòu)比較復(fù)雜,而且隨著應(yīng)用環(huán)境的擴(kuò)大,數(shù)據(jù)庫的結(jié)構(gòu)就變得越來越復(fù)雜,不利于最終用戶掌握;
(2)其 DDL 、 DML 語言復(fù)雜,用戶不容易使用。由于記錄之間聯(lián)系是通過存取路徑實(shí)現(xiàn)的,應(yīng)用程序在訪問數(shù)據(jù)時(shí)必須選擇適當(dāng)?shù)拇嫒÷窂健R虼耍脩舯仨毩私庀到y(tǒng)結(jié)構(gòu)的細(xì)節(jié),加重了編寫應(yīng)用程序的負(fù)擔(dān)。
13.試述關(guān)系模型的概念,定義并解釋以下術(shù)語:
關(guān)系,屬性,域,元組,碼,分量,關(guān)系模式
答:
??關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束三部分組成。在用戶觀點(diǎn)下,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。
(1)關(guān)系:一個(gè)關(guān)系對(duì)應(yīng)通常說的一張表;
(2)屬性:表中的一列即為一個(gè)屬性;
(3)域:屬性的取值范圍;
(4)元組:表中的一行即為一個(gè)元組;
(5)主碼:表中的某個(gè)屬性組,它可以惟一確定一個(gè)元組;
(6)分量:元組中的一個(gè)屬性值;
(7)關(guān)系模式:對(duì)關(guān)系的描述,一般表示為:關(guān)系名(屬性 1 ,屬性 2 , … ,屬性 n )
14 .試述關(guān)系數(shù)據(jù)庫的特點(diǎn)。
答:
?? 關(guān)系數(shù)據(jù)模型具有下列優(yōu)點(diǎn):
(1)關(guān)系模型與非關(guān)系模型不同,它是建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上的。
(2)關(guān)系模型的概念單一,無論實(shí)體還是實(shí)體之間的聯(lián)系都用關(guān)系表示,操作的對(duì)象和操作的結(jié)果都是關(guān)系,所以其數(shù)據(jù)結(jié)構(gòu)簡單、清晰,用戶易懂易用。
(3)關(guān)系模型的存取路徑對(duì)用戶透明,從而具有更高的數(shù)據(jù)獨(dú)立性、更好的安全保密性,也簡化了程序員的工作和數(shù)據(jù)庫開發(fā)建立的工作。
??當(dāng)然,關(guān)系數(shù)據(jù)模型也有缺點(diǎn),其中最主要的缺點(diǎn)是,由于存取路徑對(duì)用戶透明,查詢效率往往不如非關(guān)系數(shù)據(jù)模型。因此為了提高性能,必須對(duì)用戶的查詢請(qǐng)求進(jìn)行優(yōu)化,增加了開發(fā)數(shù)據(jù)庫管理系統(tǒng)的難度。
15.試述數(shù)據(jù)庫系統(tǒng)三級(jí)模式結(jié)構(gòu),這種結(jié)構(gòu)的優(yōu)點(diǎn)是什么?
答:
??數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。
??外模式,亦稱子模式或用戶模式,是數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶)能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。
??模式,亦稱邏輯模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。模式描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu)。外模式涉及的是數(shù)據(jù)的局部邏輯結(jié)構(gòu),通常是模式的子集。
??內(nèi)模式,亦稱存儲(chǔ)模式,是數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)部的表示,即對(duì)數(shù)據(jù)的物理結(jié)構(gòu)和存儲(chǔ)方式的描述。
??數(shù)據(jù)庫系統(tǒng)的三級(jí)模式是對(duì)數(shù)據(jù)的三個(gè)抽象級(jí)別,它把數(shù)據(jù)的具體組織留給 DBMS管理,使用戶能邏輯抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計(jì)算機(jī)中的表示和存儲(chǔ)。
??為了能夠在內(nèi)部實(shí)現(xiàn)這三個(gè)抽象層次的聯(lián)系和轉(zhuǎn)換,數(shù)據(jù)庫系統(tǒng)在這三級(jí)模式之間提供了兩層映像:外模式/模式映像和模式/內(nèi)模式映像。正是這兩層映像保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性。
16 .定義并解釋以下術(shù)語:
模式、外模式、內(nèi)模式、 DDL 、 DML
答:
?? 模式、外模式、內(nèi)模式的解釋參見第15題。
?? DDL :數(shù)據(jù)定義語言,用來定義數(shù)據(jù)庫模式、外模式、內(nèi)模式的語言。
?? DML :數(shù)據(jù)操縱語言,用來對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行查詢、插入、刪除和修改的語句。
17.什么叫數(shù)據(jù)與程序的物理獨(dú)立性?什么叫數(shù)據(jù)與程序的邏輯獨(dú)立性?為什么數(shù)據(jù)庫系統(tǒng)具有數(shù)據(jù)與程序的獨(dú)立性?
答:
?? 數(shù)據(jù)與程序的邏輯獨(dú)立性:當(dāng)模式改變時(shí)(例如增加新的關(guān)系、新的屬性、改變屬性的數(shù)據(jù)類型等),由數(shù)據(jù)庫管理員對(duì)各個(gè)外模式/模式的映像做相應(yīng)改變,可以使外模式保持不變。應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨(dú)立性,簡稱數(shù)據(jù)的邏輯獨(dú)立性。
?? 數(shù)據(jù)與程序的物理獨(dú)立性:當(dāng)數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)改變了,由數(shù)據(jù)庫管理員對(duì)模式/內(nèi)模式映像做相應(yīng)改變,可以使模式保持不變,從而應(yīng)用程序也不必改變,保證了數(shù)據(jù)與程序的物理獨(dú)立性,簡稱數(shù)據(jù)的物理獨(dú)立性。
?? 數(shù)據(jù)庫管理系統(tǒng)在三級(jí)模式之間提供的兩層映像保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性。
18 .試述數(shù)據(jù)庫系統(tǒng)的組成。
答:
數(shù)據(jù)庫系統(tǒng)一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構(gòu)成。
19 .?dāng)?shù)據(jù)庫管理員、系統(tǒng)分析員、數(shù)據(jù)庫設(shè)計(jì)人員、應(yīng)用程序員的職責(zé)是什么?
答:
?? 數(shù)據(jù)庫管理員的職責(zé):
(1)決定數(shù)據(jù)庫中的信息內(nèi)容和結(jié)構(gòu);
(2)決定數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)和存取策略;
(3)定義數(shù)據(jù)的安全性要求和完整性約束條件;
(4)監(jiān)控?cái)?shù)據(jù)庫的使用和運(yùn)行;
(5)數(shù)據(jù)庫的改進(jìn)和重組、重構(gòu)。
?? 系統(tǒng)分析員負(fù)責(zé)應(yīng)用系統(tǒng)的需求分析和規(guī)范說明,系統(tǒng)分析員要和用戶及 DBA 相結(jié)合,確定系統(tǒng)的硬件、軟件配置,并參與數(shù)據(jù)庫系統(tǒng)的概要設(shè)計(jì)。
?? 數(shù)據(jù)庫設(shè)計(jì)人員負(fù)責(zé)數(shù)據(jù)庫中數(shù)據(jù)的確定、數(shù)據(jù)庫各級(jí)模式的設(shè)計(jì)。數(shù)據(jù)庫設(shè)計(jì)人員必須參加用戶需求調(diào)查和系統(tǒng)分析,然后進(jìn)行數(shù)據(jù)庫設(shè)計(jì)。在很多情況下,數(shù)據(jù)庫設(shè)計(jì)人員就由數(shù)據(jù)庫管理員擔(dān)任。
?? 應(yīng)用程序員負(fù)責(zé)設(shè)計(jì)和編寫應(yīng)用系統(tǒng)的程序模塊,并進(jìn)行調(diào)試和安裝。
第二章 關(guān)系數(shù)據(jù)庫
1 .試述關(guān)系模型的三個(gè)組成部分。
答:
關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束三部分組成。
2 .試述關(guān)系數(shù)據(jù)語言的特點(diǎn)和分類。
答:
關(guān)系數(shù)據(jù)語言可以分為三類:關(guān)系代數(shù)語言、關(guān)系演算語言以及具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言。
3 .定義并理解下列術(shù)語,說明它們之間的聯(lián)系與區(qū)別:
答:
(1)域,笛卡兒積,關(guān)系,元組,屬性
域:域是一組具有相同數(shù)據(jù)類型的值的集合。
笛卡兒積:給定一組域D1,D2,…,Dn,允許其中某些,域是有相同的。這組域的笛卡兒積為
?? ?? D1xD2x…xDn={(d,d2,…,dn,)Idi屬于Di,i=1,2,…,n}
關(guān)系:在域D1,D2,…,Dn上笛卡兒積D1xD2x…xDn的子集稱為關(guān)系,表示為
?? ?? R(D1,D2,…,Dn)。
注意,這里是用較為形式化的方法來定義關(guān)系。在第1章中則是用通俗的語言來說明什么是關(guān)系,是一種不嚴(yán)格的定義。
元組:關(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)系R的主碼K相對(duì)應(yīng),則稱F是基本關(guān)系R的外部碼( foreign key),簡稱外碼。
(3)關(guān)系模式,關(guān)系,關(guān)系數(shù)據(jù)庫
關(guān)系模式:關(guān)系的描述稱為關(guān)系模式( relation schema)。它可以形式化地表示為
?? ?? R(U,D,DOM,F)
其中R為關(guān)系名,U為組成該關(guān)系的屬性名集合,D為屬性組U中屬性所來自的域,DOM為屬性向域的映像集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集合。
關(guān)系:見(1),關(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ù)庫中的數(shù)據(jù)。
關(guān)系數(shù)據(jù)庫:關(guān)系數(shù)據(jù)庫也有型和值之分。關(guān)系數(shù)據(jù)庫的型稱為關(guān)系數(shù)據(jù)庫模式,是對(duì)關(guān)系數(shù)據(jù)庫的描述,它包括若干域的定義以及在這些域上定義的若干關(guān)系模式。關(guān)系數(shù)據(jù)庫的值是這些關(guān)系模式在某一時(shí)刻對(duì)應(yīng)的關(guān)系的集合,通常就稱為關(guān)系數(shù)據(jù)庫。
4 .舉例說明關(guān)系模式和關(guān)系的區(qū)別。
答:
關(guān)系模式是型;關(guān)系是值,是關(guān)系模式的實(shí)例。例如:
Student( Sno,Sname ,Sage) 是關(guān)系模式,下面的表是關(guān)系,即某一時(shí)刻關(guān)系模式的值。
| Sno | Sname | Sage |
|---|---|---|
| S1 | 張俊麗 | 18 |
| S1 | 李紅鈺 | 19 |
| S1 | 王敏英 | 19 |
5 . 試述關(guān)系模型的完整性規(guī)則。在參照完整性中,什么情況下外碼屬性的值可以為空值?
答:
?? 關(guān)系模型中可以有三類完整性約束:實(shí)體完整性、參照完整性和用戶定義的完整性。關(guān)系模型的完整性規(guī)則是對(duì)關(guān)系的某種約束條件。
?? 實(shí)體完整性規(guī)則:若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。
?? 參照完整性規(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è)元組的主碼值。
?? 用戶定義的完整性是針對(duì)某一具體關(guān)系數(shù)據(jù)庫的約束條件。它反映某一具體應(yīng)用所設(shè)計(jì)的數(shù)據(jù)必須滿足的語義要求。
?? 在參照完整性中,如果外碼屬性不是其所在關(guān)系的主屬性,則可以取空值,否則不能取空值。
6.設(shè)有一個(gè)SPJ數(shù)據(jù)庫,包括S,P,J,SPJ四個(gè)關(guān)系模式:(剩余題干描述略,本文只給出關(guān)系代數(shù)表達(dá)式)
1)求供應(yīng)工程J1零件的供應(yīng)商號(hào)碼SNO:
πSno(σJno=‘J1’(SPJ))
2)求供應(yīng)工程J1零件P1的供應(yīng)商號(hào)碼SNO:
πSno(σJno=‘J1’∧Pno=‘P1‘(SPJ))
3)求供應(yīng)工程J1零件為紅色的供應(yīng)商號(hào)碼SNO:
πSno(πSno,Pno(σJno=‘J1‘ (SPJ))∞πPno(σCOLOR=’紅‘ (P)))
4)求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號(hào)JNO:
πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘紅‘ (S∞SPJ∞P)
5)求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號(hào)JNO:
πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ))
7. 試述等值連接與自然連接的區(qū)別和聯(lián)系。
答:
?? 連接運(yùn)算符是“=”的連接運(yùn)算稱為等值連接。它是從關(guān)系R與S的廣義笛卡爾積中選取A,B屬性值相等的那些元組;
?? 自然連接是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉。
8.關(guān)系代數(shù)的基本運(yùn)算有哪些 ? 如何用這些基本運(yùn)算來表示其他運(yùn)算?
答:
?? 并、差、笛卡爾積、投影和選擇5種運(yùn)算為基本運(yùn)算。其他3種運(yùn)算,即交、連接和除,均可以用這5種基本運(yùn)算來表達(dá)。
第三章 關(guān)系數(shù)據(jù)庫語言SQL
1 .試述 SQL 語言的特點(diǎn)。
答:
(1)綜合統(tǒng)一。 SQL 語言集數(shù)據(jù)定義語言 DDL 、數(shù)據(jù)操縱語言 DML 和數(shù)據(jù)控制語言 DCL 的功能于一體。
(2)高度非過程化。用 SQL 語言進(jìn)行數(shù)據(jù)操作,只要提出“做什么”,而無需指明“怎么做”,因此無需了解存取路徑,存取路徑的選擇以及 sQL 語句的操作過程由系統(tǒng)自動(dòng)完成。
(3)面向集合的操作方式。SQL 語言采用集合操作方式,不僅操作對(duì)象、查找結(jié)果可以是元組的集合,而且一次插入、刪除、更新操作的對(duì)象也可以是元組的集合。
(4)以同一種語法結(jié)構(gòu)提供兩種使用方式。SQL 語言既是自含式語言,又是嵌入式語言。作為自含式語言,它能夠獨(dú)立地用于聯(lián)機(jī)交互的使用方式;作為嵌入式語言,它能夠嵌入到高級(jí)語言程序中,供程序員設(shè)計(jì)程序時(shí)使用。
(5)語言簡捷,易學(xué)易用。
2 . 說明在DROP TABLE時(shí)RESTRICT和CASCADE的區(qū)別。
答:
?? RESTRICT表示表的刪除是有限制條件的。要?jiǎng)h除的基本表不能被其他表的約束所引州,不能有視圖,不能有觸發(fā)器,不能有存儲(chǔ)過程或函數(shù)等。如果存在這些依賴該表的對(duì)象,則表不能被刪除。
?? CASCADE表示表的刪除沒有限制條件,在刪除基本表的同時(shí),相關(guān)的依賴對(duì)象(如視圖)都將被刪除。
3 .有兩個(gè)關(guān)系S(A,B,C,D)和T(C,D,E,F),寫出與下列查詢等價(jià)的SQL表達(dá)式:
答:
(1) select * from S where A=‘10’;
(2) select distinct A,B from S;
(3) select A,B,S.C,S.D,E,F from S ,T where S.C=T.C and S.D=T.D;
(4) select * from S ,T where S.C=T.C;
(5) select * from S ,T where S.A<T.E;
(6) select S.C,S.D,T.* from S ,T ;
4.用 SQL 語句建立第二章習(xí)題6中的 4 個(gè)表;針對(duì)建立的 4 個(gè)表用 SQL 語言完成第二章習(xí)題6中的查詢。
答:
建 S 表: S ( SNO , SNAME , STATUS , CITY ) ;
?? CREATE TABLE S ( Sno C(2) UNIQUE,Sname C(6) ,Status C(2),City C(4));
建 P 表: P ( PNO , PNAME , COLOR , WEIGHT );
?? CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2), WEIGHT INT);
建 J 表: J ( JNO , JNAME , CITY) ;
?? CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8), CITY C(4))
建SPJ 表: sPJ ( sNo , PNo , JNo , QTY);
?? SPJ(SNO,PNO,JNO,QTY)
CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2), QTY INT))
(1)求供應(yīng)工程 Jl 零件的供應(yīng)商號(hào)碼 SNO ;
SELECT DIST SNO FROM SPJ WHERE JNO=’J1’;
(2)求供應(yīng)工程 Jl 零件 Pl 的供應(yīng)商號(hào)碼 SNO ;
SELECT DIST SNO FROM SPJ WHERE JNO=‘J1’ AND PNO=‘P1’;
(3)求供應(yīng)工程 Jl 零件為紅色的供應(yīng)商號(hào)碼 SNO ;
SELECT SNO FROM SPJ,P WHERE JNO=‘J1’ AND SPJ.PNO=P.PNO AND COLOR=‘紅’;
(4)求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號(hào) JNO ;
SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELE JNO FROM SPJ,P,S WHERE S.CITY=‘天津’ AND COLOR=‘紅’ AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO);
(5)求至少用了供應(yīng)商 Sl 所供應(yīng)的全部零件的工程號(hào) JNO ;
由于VFP不允許子查詢嵌套太深,將查詢分為兩步
A、查詢S1供應(yīng)商供應(yīng)的零件號(hào)
SELECT DIST PNO FROM SPJ WHERE SNO=’S1’結(jié)果是(P1,P2)
B、查詢哪一個(gè)工程既使用P1零件又使用P2零件。
SELECT JNO FROM SPJ WHERE PNO=‘P1’
AND JNO IN (SELECT JNO FROM SPJ WHERE PNO=‘P2’)
5.針對(duì)上題中的四個(gè)表試用SQL語言完成以下各項(xiàng)操作:
(1)找出所有供應(yīng)商的姓名和所在城市。
SELECT SNAME,CITY FROM S
(2)找出所有零件的名稱、顏色、重量。
SELECT PNAME,COLOR,WEIGHT FROM P
(3)找出使用供應(yīng)商S1所供應(yīng)零件的工程號(hào)碼。
SELECT DIST JNO FROM SPJ WHERE SNO=‘S1’
(4)找出工程項(xiàng)目J2使用的各種零件的名稱及其數(shù)量。
SELECT PNAME,QTY FROM SPJ,P
WHERE P.PNO=SPJ.PNO AND SPJ.JNO=‘J2’
(5)找出上海廠商供應(yīng)的所有零件號(hào)碼。
SELECT PNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND CITY=‘上海’
(6)出使用上海產(chǎn)的零件的工程名稱。
SELECT JNAME FROM SPJ,S,J
WHERE S.SNO=SPJ.SNO AND S.CITY=‘上海’ AND J.JNO=SPJ.JNO
(7)找出沒有使用天津產(chǎn)的零件的工程號(hào)碼。
注意: SELECT DISP JNO FROM SPJ WHERE JNO NOT IN (SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY=‘天津’) 適用于JNO是唯一或不唯一的情況.
注意: SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY<>’天津’適用于JNO是唯一的情況
(8)把全部紅色零件的顏色改成藍(lán)色。
UPDATE P SET COLOR=‘藍(lán)’ WHERE COLOR=‘紅’
(9)由S5供給J4的零件P6改為由S3供應(yīng)。
UPDATE SPJ SET SNO=‘S3’ WHERE SNO=‘S5’ AND JNO=‘J4’ AND PNO=‘P6’
(10)從供應(yīng)商關(guān)系中刪除供應(yīng)商號(hào)是S2的記錄,并從供應(yīng)情況關(guān)系中刪除相應(yīng)的記錄。
A、DELETE FROM S WHERE SNO=’S2’
B、DELETE FROM SPJ WHERE SNO=‘S2’
(11)請(qǐng)將(S2,J6,P4,200)插入供應(yīng)情況關(guān)系。
INSERT INTO SPJ VALUES(‘S2’,‘J6’,‘P4’,200)
6 .什么是基本表?什么是視圖?兩者的區(qū)別和聯(lián)系是什么?
答:
?? 基本表是本身獨(dú)立存在的表,在 SQL 中一個(gè)關(guān)系就對(duì)應(yīng)一個(gè)表。
?? 視圖是從一個(gè)或幾個(gè)基本表導(dǎo)出的表。視圖本身不獨(dú)立存儲(chǔ)在數(shù)據(jù)庫中,是一個(gè)虛表。即數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對(duì)應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在導(dǎo)出視圖的基本表中。視圖在概念上與基本表等同,用戶可以如同基本表那樣使用視圖,可以在視圖上再定義視圖。
7 .試述視圖的優(yōu)點(diǎn)。
答:
(1)視圖能夠簡化用戶的操作;
(2)視圖使用戶能以多種角度看待同一數(shù)據(jù);
(3)視圖對(duì)重構(gòu)數(shù)據(jù)庫提供了一定程度的邏輯獨(dú)立性;
(4)視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù)。
8 .哪類視圖是可以更新的?哪類視圖是不可更新的?各舉一例說明。
答:
?? 基本表的行列子集視圖一般是可更新的。
?? 若視圖的屬性來自集合函數(shù)、表達(dá)式,則該視圖肯定是不可以更新的。
【擴(kuò)展】所有的視圖是否都可以更新?為什么?
答:
?? 不是。視圖是不實(shí)際存儲(chǔ)數(shù)據(jù)的虛表,因此對(duì)視圖的更新,最終要轉(zhuǎn)換為對(duì)基本表的更新。因?yàn)橛行┮晥D的更新不能惟一有意義地轉(zhuǎn)換成對(duì)相應(yīng)基本表的更新,所以,并不是所有的視圖都是可更新的。
9 .請(qǐng)為三建工程項(xiàng)目建立一個(gè)供應(yīng)情況的視圖,包括供應(yīng)商代碼(SNO)、零件代碼(PNO)、供應(yīng)數(shù)量(QTY)。
答:
創(chuàng)建視圖:
CREATE VIEW VSP
AS
SELECT SNO,SPJ.PNO,QTY FROM SPJ,J
WHERE SPJ.JNO=J.JNO AND J.JNAME=‘三建’
針對(duì)該視圖VSP完成下列查詢:
(1)找出三建工程項(xiàng)目使用的各種零件代碼及其數(shù)量。
SELECT DIST PNO,QTY FROM VSP
(2)找出供應(yīng)商S1的供應(yīng)情況。
SELECT DIST * FROM VSP WHERE SNO=‘S1’。
第4章 數(shù)據(jù)庫安全性
1 .什么是數(shù)據(jù)庫的安全性?
答:
數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。
2 .?dāng)?shù)據(jù)庫安全性和計(jì)算機(jī)系統(tǒng)的安全性有什么關(guān)系?
答:
?? 安全性問題不是數(shù)據(jù)庫系統(tǒng)所獨(dú)有的,所有計(jì)算機(jī)系統(tǒng)都有這個(gè)問題。只是在數(shù)據(jù)庫系統(tǒng)中大量數(shù)據(jù)集中存放,而且為許多最終用戶直接共享,從而使安全性問題更為突出。
?? 系統(tǒng)安全保護(hù)措施是否有效是數(shù)據(jù)庫系統(tǒng)的主要指標(biāo)之一。
?? 數(shù)據(jù)庫的安全性和計(jì)算機(jī)系統(tǒng)的安全性,包括操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)的安全性是緊密聯(lián)系、相互支持的。
4 .試述實(shí)現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)。
答:
?? 實(shí)現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)有:
(1)用戶標(biāo)識(shí)和鑒別:該方法由系統(tǒng)提供一定的方式讓用戶標(biāo)識(shí)自己的名字或身份。每次用戶要求進(jìn)入系統(tǒng)時(shí),由系統(tǒng)進(jìn)行核對(duì),通過鑒定后才提供系統(tǒng)的使用權(quán)。
(2)存取控制:通過用戶權(quán)限定義和合法權(quán)檢查確保只有合法權(quán)限的用戶訪問數(shù)據(jù)庫,所有未被授權(quán)的人員無法存取數(shù)據(jù)。例如CZ 級(jí)中的自主存取控制( DAC ) , Bl 級(jí)中的強(qiáng)制存取控制(MAC )。
(3)視圖機(jī)制:為不同的用戶定義視圖,通過視圖機(jī)制把要保密的數(shù)據(jù)對(duì)無權(quán)存取的用戶隱藏起來,從而自動(dòng)地對(duì)數(shù)據(jù)提供一定程度的安全保護(hù)。
(4)審計(jì):建立審計(jì)日志,把用戶對(duì)數(shù)據(jù)庫的所有操作自動(dòng)記錄下來放入審計(jì)日志中,DBA 可以利用審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。
(5)數(shù)據(jù)加密:對(duì)存儲(chǔ)和傳輸?shù)臄?shù)據(jù)進(jìn)行加密處理,從而使得不知道解密算法的人無法獲知數(shù)據(jù)的內(nèi)容。
5 .什么是數(shù)據(jù)庫中的自主存取控制方法和強(qiáng)制存取控制方法?
答:
?? 自主存取控制方法:定義各個(gè)用戶對(duì)不同數(shù)據(jù)對(duì)象的存取權(quán)限。當(dāng)用戶對(duì)數(shù)據(jù)庫訪問時(shí)首先檢查用戶的存取權(quán)限。防止不合法用戶對(duì)數(shù)據(jù)庫的存取。
?? 強(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ì)象。
6 . 題干描述略。
答:
(1) GRANT ALL PRIVILEGES
ON Student,Class
TO U1
WITH GRANT OPTION ;
(2)GRANT SELECT,UPDATE(家庭住址),DELETE
ON Student
TO U2;
(3)GRANT SELECT ON Class TO PUBLIC;
(4)GRANT SELECT,UPDATE ON Student TO R1;
(5)GRANT R1 TO U1 WITH ADMIN OPTION ;
7.請(qǐng)用SQL的GRANT 和REVOKE語句(加上視圖機(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;
( 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è)人的工資。
CREATE VIEW 部門工資 AS
SELECT 部門.名稱,MAX(工資),MIN(工資),AVG(工資)
FROM 職工,部門
WHERE 職工.部門號(hào)=部門.部門號(hào)
GROUP BY 職工.部門號(hào)
GRANT SELECT ON 部門工資
TO 楊蘭;
8 .把習(xí)題7中(1)-(7)的每一種情況,撤銷各用戶所授予的權(quán)限。
答:
(1) REVOKE SELECT ON 職工,部門 FROM 王明;
(2) REVOKE INSERT , DELETE ON 職工,部門 FROM 李勇;
(3) REOVKE SELECT ON 職工
WHEN USER ( ) =NAME
FROM ALI ;
(4) REVOKE SELECT , UPDATE ON 職工
FROM 劉星;
(5) REVOKE ALTER TABLE ON 職工,部門
FROM 張新;
(6) REVOKE ALL PRIVILIGES ON 職工,部門
FROM 周平;
(7) REVOKE SELECT ON 部門工資
FROM 楊蘭;
DROP VIEW 部門工資;
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í)別,客體的敏感度標(biāo)記稱為密級(jí)。
11 .什么是數(shù)據(jù)庫的審計(jì)功能,為什么要提供審計(jì)功能?
答:
?? 審計(jì)功能是指DBMS 的審計(jì)模塊在用戶對(duì)數(shù)據(jù)庫執(zhí)行操作的同時(shí)把所有操作自動(dòng)記錄到系統(tǒng)的審計(jì)日志中。
?? 因?yàn)槿魏蜗到y(tǒng)的安全保護(hù)措施都不是完美無缺的,蓄意盜竊破壞數(shù)據(jù)的人總可能存在。利用數(shù)據(jù)庫的審計(jì)功能,DBA 可以根據(jù)審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。
第5章 數(shù)據(jù)庫完整性
1 . 什么是數(shù)據(jù)庫的完整性?
答:
數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。
2 .?dāng)?shù)據(jù)庫的完整性概念與數(shù)據(jù)庫的安全性概念有什么區(qū)別和聯(lián)系?
答:
?? 數(shù)據(jù)的完整性和安全性是兩個(gè)不同的概念,但是有一定的聯(lián)系。前者是為了防止數(shù)據(jù)庫中存在不符合語義的數(shù)據(jù),防止錯(cuò)誤信息的輸入和輸出,即所謂垃圾進(jìn)垃圾出( Garbage In Garbage out )所造成的無效操作和錯(cuò)誤結(jié)果。后者是保護(hù)數(shù)據(jù)庫防止惡意的破壞和非法的存取。也就是說,安全性措施的防范對(duì)象是非法用戶和非法操作,完整性措施的防范對(duì)象是不合語義的數(shù)據(jù)。
3 .什么是數(shù)據(jù)庫的完整性約束條件?
答:
完整性約束條件是指數(shù)據(jù)庫中的數(shù)據(jù)應(yīng)該滿足的語義約束條件。
4 . DBMS 的完整性控制機(jī)制應(yīng)具有哪三個(gè)方面的功能?
答:
DBMS 的完整性控制機(jī)制應(yīng)具有三個(gè)方面的功能:
(1)定義功能,即提供定義完整性約束條件的機(jī)制;
(2)檢查功能,即檢查用戶發(fā)出的操作請(qǐng)求是否違背了完整性約束條件;
(3)違約處理功能:如果發(fā)現(xiàn)用戶的操作請(qǐng)求使數(shù)據(jù)違背了完整性約束條件,則采取一定的動(dòng)作來保證數(shù)據(jù)的完整性。
5 . RDBMS 在實(shí)現(xiàn)參照完整性時(shí)需要考慮哪些方面?
答:
RDBMs 在實(shí)現(xiàn)參照完整性時(shí)需要考慮以下幾個(gè)方面:
( l )外碼是否可以接受空值。
( 2 )冊 l 除被參照關(guān)系的元組時(shí)的考慮,這時(shí)系統(tǒng)可能采取的作法有三種: l )級(jí)聯(lián)刪除( CASCADES ) ; 2 )受限刪除( RESTRICTED ) ; 3 )置空值刪除( NULLIFIES )。
( 3 )在參照關(guān)系中插入元組時(shí)的問題,這時(shí)系統(tǒng)可能采取的作法有: l )受限插入; 2 )遞歸插入。
( 4 )修改關(guān)系中主碼的問題。一般是不能用 UPDATE 語句修改關(guān)系主碼的。如果需要修改主碼值,只能先刪除該元組,然后再把具有新主碼值的元組插入到關(guān)系中。如果允許修改主碼,首先要保證主碼的惟一性和非空,否則拒絕修改。然后要區(qū)分是參照關(guān)系還是被參照關(guān)系。
6 .假設(shè)有下面兩個(gè)關(guān)系模式:職工(職工號(hào),姓名,年齡,職務(wù),工資,部門號(hào)),其中職工號(hào)為主碼;部門(部門號(hào),名稱,經(jīng)理名,電話),其中部門號(hào)為主碼。用 SQL 語言定義這兩個(gè)關(guān)系模式,要求在模式中完成以下完整性約束條件的定義:定義每個(gè)模式的主碼;定義參照完整性;定義職工年齡不得超過 60 歲。
答:
CREATE TABLE DEPT
(Deptno NUMBER(2),
Deptname VARCHAR(10),
Manager VARCHAR(10),
PhoneNumber Char(12)
CONSTRAINT PK_SC RIMARY KEY(Deptno));
CREATE TABLE EMP
(Empno NUMBER(4),
Ename VARCHAR(10),
Age NUMBER(2),
CONSTRAINT C1 CHECK ( Aage<=60),
Job VARCHAR(9),
Sal NUMBER(7,2),
Deptno NUMBER(2),
CONSTRAINT FK_DEPTNO
FOREIGN KEY(Deptno)
REFFERENCES DEPT(Deptno));
7 .關(guān)系系統(tǒng)中,當(dāng)操作違反實(shí)體完整性、參照完整性和用戶定義的完整性約束條件時(shí),一般是如何分別進(jìn)行處理的?
答:
?? 對(duì)于違反實(shí)體完整性和用戶定義的完整性的操作一般都采用拒絕執(zhí)行的方式進(jìn)行處理。而對(duì)于違反參照完整性的操作,并不都是簡單地拒絕執(zhí)行,有時(shí)要根據(jù)應(yīng)用語義執(zhí)行一些附加的操作,以保證數(shù)據(jù)庫的正確性。
第6章 關(guān)系數(shù)據(jù)庫理論
1 .理解并給出下列術(shù)語的定義:
函數(shù)依賴、部分函數(shù)依賴、完全函數(shù)依賴、傳遞依賴、候選碼、主碼、外碼、全碼(All 一key )、1 NF 、ZNF 、3NF 、BcNF 、多值依賴、4NF 。
答:
定義1:設(shè)R(U)是屬性集U上的關(guān)系模式。X,Y是屬性集U的子集。若對(duì)于R(U)的任意一個(gè)可能的關(guān)系r,r中不可能存在兩個(gè)元組在X上的屬性值相等,而在Y上的屬性值不等,則稱X函數(shù)確定Y或Y函數(shù)依賴于X,記作X->Y。(即只要X上的屬性值相等,Y上的值一定相等。)
術(shù)語和記號(hào):
X->Y,但Y不是X的子集,則稱X->Y是非平凡的函數(shù)依賴。若不特別聲明,總是討論非平凡的函數(shù)依賴。
X->Y,但Y是X的子集,則稱X->Y是平凡的函數(shù)依賴。
若X->Y,則X叫做決定因素(Determinant)。
若X->Y,Y->X,則記作X<–>Y。
若Y不函數(shù)依賴于X,則記作X ? Y。
定義2:在R(U)中,如果 X->Y,并且對(duì)于X的任何一個(gè)真子集X’,都有X’ ? Y,則稱Y對(duì)X完全函數(shù)依賴
若X-》Y,但Y不完全函數(shù)依賴于X,則稱Y對(duì)X部分函數(shù)依賴
定義3:若關(guān)系模式R的每一個(gè)分量是不可再分的數(shù)據(jù)項(xiàng),則關(guān)系模式R屬于第一范式(1NF)。
定義4:若關(guān)系模式R∈1NF,且每一個(gè)非主屬性完全函數(shù)依賴于碼,則關(guān)系模式R∈2NF 。(即1NF消除了非主屬性對(duì)碼的部分函數(shù)依賴則成為2NF)。
定義5:關(guān)系模式R<U,F(xiàn)> 中若不存在這樣的碼X、屬性組Y及非主屬性Z(Z不是Y的子集)使得X?Y,Y ? X,Y ? Z成立,則稱R<U,F(xiàn)>∈3NF。
定義6:關(guān)系模式R<U,F(xiàn)>∈1NF 。若X?Y且Y不是X的子集時(shí),X必含有碼,則R<U,F(xiàn)>∈BCNF。
定義7:關(guān)系模式R<U,F(xiàn)>∈1NF,如果對(duì)于R的每個(gè)非平凡多值依賴X??Y(Y不是X的子集,Z=U-X-Y不為空),X都含有碼,則稱R<U,F(xiàn)>∈4NF。
2.建立一個(gè)關(guān)于系、學(xué)生、班級(jí)、學(xué)會(huì)等諸信息的關(guān)系數(shù)據(jù)庫。
學(xué)生:學(xué)號(hào)、姓名、出生年月、系名、班號(hào)、宿舍區(qū)。
班級(jí):班號(hào)、專業(yè)名、系名、人數(shù)、入校年份。
系:系名、系號(hào)、系辦公地點(diǎn)、人數(shù)。
學(xué)會(huì):學(xué)會(huì)名、成立年份、辦公地點(diǎn)、人數(shù)。
語義如下:一個(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)系模式的候選碼、外部碼,有沒有全碼存在?
答:
(1)關(guān)系模式如下:
學(xué)生:S(Sno,Sname,Sbirth,Dept,Class,Rno)
班級(jí):C(Class,Pname,Dept,Cnum,Cyear)
系:D(Dept,Dno,Office,Dnum)
學(xué)會(huì):M(Mname,Myear,Maddr,Mnum)
(2)每個(gè)關(guān)系模式的最小函數(shù)依賴集如下:
A、學(xué)生S (Sno,Sname,Sbirth,Dept,Class,Rno) 的最小函數(shù)依賴集如下:Sno?Sname,Sno?Sbirth,Sno?Class,Class?Dept,DEPT?Rno
傳遞依賴如下:
由于Sno?Dept,而Dept?Sno ,Dept?Rno(宿舍區(qū))
所以Sno與Rno之間存在著傳遞函數(shù)依賴。
由于Class?Dept,Dept ? Class,Dept?Rno
所以Class與Rno之間存在著傳遞函數(shù)依賴。
由于Sno?Class,Class?Sno,Class?Dept
所以Sno與Dept之間存在著傳遞函數(shù)依賴。
B、班級(jí)C(Class,Pname,Dept,Cnum,Cyear)的最小函數(shù)依賴集如下:
Class?Pname,Class?Cnum,Class?Cyear,Pname?Dept.
由于Class?Pname,Pname?Class,Pname?Dept
所以C1ass與Dept之間存在著傳遞函數(shù)依賴。
C、系D(Dept,Dno,Office,Dnum)的最小函數(shù)依賴集如下:
Dept?Dno,Dno?Dept,Dno?Office,Dno?Dnum
根據(jù)上述函數(shù)依賴可知,Dept與Office,Dept與Dnum之間不存在傳遞依賴。
D、學(xué)會(huì)M(Mname,Myear,Maddr,Mnum)的最小函數(shù)依賴集如下:
Mname?Myear,Mname?Maddr,Mname?Mnum
該模式不存在傳遞依賴。
(3)各關(guān)系模式的候選碼、外部碼,全碼如下:
A、學(xué)生S候選碼:Sno;外部碼:Dept、Class;無全碼
B、班級(jí)C候選碼:Class;外部碼:Dept;無全碼
C、系D候選碼:Dept或Dno;無外部碼;無全碼
D、學(xué)會(huì)M候選碼:Mname;無外部碼;無全碼
7.下面的結(jié)論哪些是正確的? 哪些是錯(cuò)誤的? 對(duì)于錯(cuò)誤的請(qǐng)給一個(gè)反例說明之。
答:
(1)任何一個(gè)二目關(guān)系是屬于3NF。
答:正確。因?yàn)殛P(guān)系模式中只有兩個(gè)屬性,所以無傳遞。
(2)任何一個(gè)二目關(guān)系是屬于BCNF.
答:正確。按BCNF的定義,若X->Y,且Y不是X的子集時(shí),每個(gè)決定因素都包含碼,對(duì)于二目關(guān)系決定因素必然包含碼。詳細(xì)證明如下:(任何二元關(guān)系模式必定是BCNF)。
證明:設(shè)R為一個(gè)二目關(guān)系R(A1,A2),則屬性A1和A2之間可能存在以下幾種依賴關(guān)系:
A、A1->A2,但A2?A1,則關(guān)系R的碼為A1,決定因素都包含碼,所以,R是BCNF。
B、A1->A2,A2?A1,則關(guān)系R的碼為A2,所以決定因素都包含碼,R是BCNF。
第七章 數(shù)據(jù)庫設(shè)計(jì)
1.試述數(shù)據(jù)庫設(shè)計(jì)過程。
答:
( l )需求分析:準(zhǔn)確了解與分析用戶需求(包括數(shù)據(jù)與處理)。
( 2 )概念結(jié)構(gòu)設(shè)計(jì):通過對(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ù)庫物理設(shè)計(jì):為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲(chǔ)結(jié)構(gòu)和存取方法)。
( 5 )數(shù)據(jù)庫實(shí)施:設(shè)計(jì)人員運(yùn)用 DBMS 提供的數(shù)據(jù)語言、工具及宿主語言,根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進(jìn)行試運(yùn)行。
( 6 )數(shù)據(jù)庫運(yùn)行和維護(hù):在數(shù)據(jù)庫系統(tǒng)運(yùn)行過程中對(duì)其進(jìn)行評(píng)價(jià)、調(diào)整與修改。
?? 這是一個(gè)完整的實(shí)際數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的設(shè)計(jì)過程。不僅包括設(shè)計(jì)數(shù)據(jù)庫本身,還包括數(shù)據(jù)庫的實(shí)施、運(yùn)行和維護(hù)。
?? 設(shè)計(jì)一個(gè)完善的數(shù)據(jù)庫應(yīng)用系統(tǒng)往往是上述六個(gè)階段的不斷反復(fù)。
2 .試述數(shù)據(jù)庫設(shè)計(jì)過程中形成的數(shù)據(jù)庫模式。
答:
?? 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的不同階段形成數(shù)據(jù)庫的各級(jí)模式,即:
( l )在概念設(shè)計(jì)階段形成獨(dú)立于機(jī)器特點(diǎn),獨(dú)立于各個(gè) DBMS 產(chǎn)品的概念模式,在本篇中就是 E-R 圖;
( 2 )在邏輯設(shè)計(jì)階段將 E 一 R 圖轉(zhuǎn)換成具體的數(shù)據(jù)庫產(chǎn)品支持的數(shù)據(jù)模型,如關(guān)系模型,形成數(shù)據(jù)庫邏輯模式,然后在基本表的基礎(chǔ)上再建立必要的視圖 (view),形成數(shù)據(jù)的外模式;
( 3 )在物理設(shè)計(jì)階段,根據(jù) DBMS 特點(diǎn)和處理的需要,進(jìn)行物理存儲(chǔ)安排,建立索引,形成數(shù)據(jù)庫內(nèi)模式。
5 .什么是數(shù)據(jù)庫的概念結(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ù)庫設(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ì)策略通常有四種:
1 )自頂向下,即首先定義全局概念結(jié)構(gòu)的框架,然后逐步細(xì)化;
2 )自底向上,即首先定義各局部應(yīng)用的概念結(jié)構(gòu),然后將它們集成起來,得到全局概念結(jié)構(gòu);
3 )逐步擴(kuò)張,首先定義最重要的核心概念結(jié)構(gòu),然后向外擴(kuò)充,以滾雪球的方式逐步生成其他概念結(jié)構(gòu),直至總體概念結(jié)構(gòu);
4 )混合策略,即將自頂向下和自底向上相結(jié)合,用自頂向下策略設(shè)計(jì)一個(gè)全局概念結(jié)構(gòu)的框架,以它為骨架集成由自底向上策略中設(shè)計(jì)的各局部概念結(jié)構(gòu)。
7.學(xué)校中有若干系,每個(gè)系有若干班級(jí)和教研室,每個(gè)教研室有若干教員,其中有的教授和副教授每人各帶若干研究生;每個(gè)班有若干學(xué)生,每個(gè)學(xué)生選修若干課程,每門課可由若干學(xué)生選修。請(qǐng)用 E-R 圖畫出此學(xué)校的概念模型。
答:
各實(shí)體屬性為:
系:系編號(hào),系名
班級(jí):班級(jí)號(hào),班級(jí)名
教研室:教研室號(hào),教研室
學(xué)生:學(xué)號(hào),姓名,學(xué)歷
課程:課程號(hào),課程名
教員:職工號(hào),姓名,職稱
聯(lián)系的屬性:“選修”的屬性為“成績”
轉(zhuǎn)換為關(guān)系模型如下:
系(系編號(hào),系名,學(xué)校名)
班級(jí)(班級(jí)號(hào),班級(jí)名,系編號(hào))
教研室(教研室號(hào),教研室,系編號(hào))
學(xué)生(學(xué)號(hào),姓名,學(xué)歷,班級(jí)號(hào),導(dǎo)師職工號(hào))
課程( 課程號(hào),課程名)
教員(職工號(hào),姓名,職稱,教研室號(hào))
選修(學(xué)號(hào),課程號(hào),成績)
8 .某工廠生產(chǎn)若干產(chǎn)品,每種產(chǎn)品由不同的零件組成,有的零件可用在不同的產(chǎn)品上。這些零件由不同的原材料制成,不同零件所用的材料可以相同。這些零件按所屬的不同產(chǎn)品分別放在倉庫中,原材料按照類別放在若干倉庫中。請(qǐng)用 E 一 R 圖畫出此工廠產(chǎn)品、零件、材料、倉庫的概念模型。
答:
各實(shí)體屬性為:
產(chǎn)品:產(chǎn)品號(hào),產(chǎn)品名
零件:零件號(hào),零件名
原材料:原材料號(hào),原材料名,類別
倉庫:倉庫號(hào),倉庫名
各聯(lián)系的屬性為:
產(chǎn)品組成:使用零件量
零件制造:使用原材料量
零件存儲(chǔ):存儲(chǔ)量
材料存放:存儲(chǔ)量
轉(zhuǎn)換為關(guān)系模型如下:
產(chǎn)品(產(chǎn)品號(hào),產(chǎn)品名,倉庫號(hào))
零件:零件號(hào),零件名
原材料:原材料號(hào),原材料名,類別,倉庫號(hào),存放量)
倉庫(倉庫號(hào),倉庫名)
產(chǎn)品組成(產(chǎn)品號(hào),零件號(hào),使用零件量)
零件組成(零件號(hào),原材料號(hào),使用原材料量)
零件儲(chǔ)存(零件號(hào),倉庫號(hào),存儲(chǔ)量)
9 .什么是數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計(jì)?試述其設(shè)計(jì)步驟。
答:
?? 數(shù)據(jù)庫的邏輯結(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ì)步驟為 :
( l )將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型;
( 2 )將轉(zhuǎn)換來的關(guān)系、網(wǎng)狀、層次模型向特定 DBMS 支持下的數(shù)據(jù)模型轉(zhuǎn)換;
( 3 )對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化。
《數(shù)據(jù)庫系統(tǒng)概論》思維導(dǎo)圖點(diǎn)這里奧~
版權(quán)聲明
文章作者:早知曉
博文鏈接:點(diǎn)擊此處
希望大家都走在開滿鮮花的路上,加油鴨~
總結(jié)
以上是生活随笔為你收集整理的数据库系统概论课后习题答案(第五版 王珊、萨师煊)(常用的数据网站汇总)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何把SAP Kyma和SAP Clou
- 下一篇: 3ds Max怎么制作水杯 3ds Ma