數(shù)據(jù)庫系統(tǒng)概論第四版課后習題答案
第1章 緒論
1.試述數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)的概念。
答:
( l)數(shù)據(jù)( Data ) :描述事物的符號記錄稱為數(shù)據(jù)。數(shù)據(jù)的種類有數(shù)字、文字、圖形、圖像、聲音、正文等。數(shù)據(jù)與其語義是不可分的。解析在現(xiàn)代計算機系統(tǒng)中數(shù)據(jù)的概念是廣義的。早期的計算機系統(tǒng)主要用于科學計算,處理的數(shù)據(jù)是整數(shù)、實數(shù)、浮點數(shù)等傳統(tǒng)數(shù)學中的數(shù)據(jù)。現(xiàn)代計算機能存儲和處理的對象十分廣泛,表示這些對象的數(shù)據(jù)也越來越復雜。數(shù)據(jù)與其語義是不可分的。 500這個數(shù)字可以表示一件物品的價格是 500元,也可以表示一個學術會議參加的人數(shù)有 500人,還可以表示一袋奶粉重 500克。
( 2)數(shù)據(jù)庫( DataBase,簡稱 DB ) :數(shù)據(jù)庫是長期儲存在計算機內的、有組織的、可共
享的數(shù)據(jù)集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲存,具有較小的冗余度、較高的數(shù)據(jù)獨立性和易擴展性,并可為各種用戶共享。
( 3)數(shù)據(jù)庫系統(tǒng)( DataBas。 Sytem,簡稱 DBS ) :數(shù)據(jù)庫系統(tǒng)是指在計算機系統(tǒng)中引
入數(shù)據(jù)庫后的系統(tǒng)構成,一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應用系統(tǒng)、數(shù)據(jù)庫管理員構成。解析數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫是兩個概念。數(shù)據(jù)庫系統(tǒng)是一個人一機系統(tǒng),數(shù)據(jù)庫是數(shù)據(jù)庫系統(tǒng)的一個組成部分。但是在日常工作中人們常常把數(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ù)管理軟件,用于科學地組織和存儲數(shù)據(jù)、高效地獲取
和維護數(shù)據(jù)。DBMS的主要功能包括數(shù)據(jù)定義功能、數(shù)據(jù)操縱功能、數(shù)據(jù)庫的運行管理功能、
數(shù)據(jù)庫的建立和維護功能。解析 DBMS是一個大型的復雜的軟件系統(tǒng),是計算機中的基礎
軟件。目前,專門研制 DBMS的廠商及其研制的 DBMS產品很多。著名的有美國 IBM 公
司的 DBZ關系數(shù)據(jù)庫管理系統(tǒng)和 IMS層次數(shù)據(jù)庫管理系統(tǒng)、美國 Oracle公司的 orade
關系數(shù)據(jù)庫管理系統(tǒng)、 s油 ase公司的 s油 ase關系數(shù)據(jù)庫管理系統(tǒng)、美國微軟公司的
SQL Serve,關系數(shù)據(jù)庫管理系統(tǒng)等。
2.使用數(shù)據(jù)庫系統(tǒng)有什么好處?
答:
使用數(shù)據(jù)庫系統(tǒng)的好處是由數(shù)據(jù)庫管理系統(tǒng)的特點或優(yōu)點決定的。使用數(shù)據(jù)庫系統(tǒng)的好處很
多,例如,可以大大提高應用開發(fā)的效率,方便用戶的使用,減輕數(shù)據(jù)庫系統(tǒng)管理人員維
護的負擔,等等。使用數(shù)據(jù)庫系統(tǒng)可以大大提高應用開發(fā)的效率。因為在數(shù)據(jù)庫系統(tǒng)中應用
程序不必考慮數(shù)據(jù)的定義、存儲和數(shù)據(jù)存取的具體路徑,這些工作都由 DBMS來完成。用
一個通俗的比喻,使用了
DBMS就如有了一個好參謀、好助手,許多具體的技術工作都由
這個助手來完成。開發(fā)人員就可以專注于應用邏輯的設計,而不必為數(shù)據(jù)管理的許許多多復
雜的細節(jié)操心。還有,當應用邏輯改變,數(shù)據(jù)的邏輯結構也需要改變時,由于數(shù)據(jù)庫系統(tǒng)提
供了數(shù)據(jù)與程序之間的獨立性,數(shù)據(jù)邏輯結構的改變是 DBA的責任,開發(fā)人員不必修改
應用程序,或者只需要修改很少的應用程序,從而既簡化了應用程序的編制,又大大減少
了應用程序的維護和修改。使用數(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ù)的利用率和一致性,又
有利于應用程序的開發(fā)和維護。讀者可以在自己今后的工作中結合具體應用,認真加以體會
和總結。
3.試述文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的區(qū)別和聯(lián)系。
答:
文件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的區(qū)別是:文件系統(tǒng)面向某一應用程序,共享性差,冗余度大,數(shù)
據(jù)獨立性差,記錄內有結構,整體無結構,由應用程序自己控制。數(shù)據(jù)庫系統(tǒng)面向現(xiàn)實世界,
共享性高,冗余度小,具有較高的物理獨立性和一定的邏輯獨立性,整體結構化,用數(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)是操作系統(tǒng)的重要組成部分;而
DBMS是獨立于操作系統(tǒng)的軟件。但是
DBMS是在操作系統(tǒng)的基礎上實現(xiàn)的;數(shù)據(jù)庫中數(shù)據(jù)的組織和存儲是通過操作系統(tǒng)中的文
件系統(tǒng)來實現(xiàn)的。
4.舉出適合用文件系統(tǒng)而不是數(shù)據(jù)庫系統(tǒng)的例子;再舉出適合用數(shù)據(jù)庫系統(tǒng)的應用例子。
答 :
(l)適用于文件系統(tǒng)而不是數(shù)據(jù)庫系統(tǒng)的應用例子數(shù)據(jù)的備份、軟件或應用程序使用過程
中的臨時數(shù)據(jù)存儲一般使用文件比較合適。早期功能比較簡單、比較固定的應用系統(tǒng)也適合
用文件系統(tǒng)。
(2)適用于數(shù)據(jù)庫系統(tǒng)而非文件系統(tǒng)的應用例子目前,幾乎所有企業(yè)或部門的信息系統(tǒng)
都以數(shù)據(jù)庫系統(tǒng)為基礎,都使用數(shù)據(jù)庫。例如,一個工廠的管理信息系統(tǒng)(其中會包括許多
子系統(tǒng),如庫存管理系統(tǒng)、物資采購系統(tǒng)、作業(yè)調度系統(tǒng)、設備管理系統(tǒng)、人事管理系統(tǒng)等),
學校的學生管理系統(tǒng),人事管理系統(tǒng),圖書館的圖書管理系統(tǒng),等等,都適合用數(shù)據(jù)庫系
統(tǒng)。希望讀者能舉出自己了解的應用例子。
5.試述數(shù)據(jù)庫系統(tǒng)的特點。
答:
數(shù)據(jù)庫系統(tǒng)的主要特點有:
(l)數(shù)據(jù)結構化數(shù)據(jù)庫系統(tǒng)實現(xiàn)整體數(shù)據(jù)的結構化,這是數(shù)據(jù)庫的主要特征之一,也是
數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的本質區(qū)別。解析注意這里的“整體’夕兩個字。在數(shù)據(jù)庫系統(tǒng)中,
數(shù)據(jù)不再針對某一個應用,而是面向全組織,具有整體的結構化。不僅數(shù)據(jù)是結構化的,而
且數(shù)據(jù)的存取單位即一次可以存取數(shù)據(jù)的大小也很靈活,可以小到某一個數(shù)據(jù)項(如一個
學生的姓名),大到一組記錄(成千上萬個學生記錄)。而在文件系統(tǒng)中,數(shù)據(jù)的存取單位
只有一個:記錄,如一個學生的完整記錄。
(2)數(shù)據(jù)的共享性高,冗余度低,易擴充數(shù)據(jù)庫的數(shù)據(jù)不再面向某個應用而是面向整個
系統(tǒng),因此可以被多個用戶、多個應用以多種不同的語言共享使用。由于數(shù)據(jù)面向整個系統(tǒng),
是有結構的數(shù)據(jù),不僅可以被多個應用共享使用,而且容易增加新的應用,這就使得數(shù)據(jù)
庫系統(tǒng)彈性大,易于擴充。解析數(shù)據(jù)共享可以大大減少數(shù)據(jù)冗余,節(jié)約存儲空間,同時還能
夠避免數(shù)據(jù)之間的不相容性與不一致性。所謂“數(shù)據(jù)面向某個應用”是指數(shù)據(jù)結構是針對某
個應用設計的,只被這個應用程序或應用系統(tǒng)使用,可以說數(shù)據(jù)是某個應用的“私有資源
”。所謂“彈性大”是指系統(tǒng)容易擴充也容易收縮,即應用增加或減少時不必修改整個數(shù)據(jù)
庫的結構,只需做很少的改動??梢匀≌w數(shù)據(jù)的各種子集用于不同的應用系統(tǒng),當應用需
求改變或增加時,只要重新選取不同的子集或加上一部分數(shù)據(jù),便可以滿足新的需求。
( 3)數(shù)據(jù)獨立性高數(shù)據(jù)獨立性包括數(shù)據(jù)的物理獨立性和數(shù)據(jù)的邏輯獨立性。數(shù)據(jù)庫管理系
統(tǒng)的模式結構和二級映像功能保證了數(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ù)庫恢復。解析
DBMS數(shù)據(jù)控制功能包括四個方面:數(shù)據(jù)的安全性保護:保護數(shù)據(jù)以防止不合法的使用造
成的數(shù)據(jù)的泄密和破壞;數(shù)據(jù)的完整性檢查:將數(shù)據(jù)控制在有效的范圍內,或保證數(shù)據(jù)之
間滿足一定的關系;并發(fā)控制:對多用戶的并發(fā)操作加以控制和協(xié)調,保證并發(fā)操作的正
確性;數(shù)據(jù)庫恢復:當計算機系統(tǒng)發(fā)生硬件故障、軟件故障,或者由于操作員的失誤以及故
意的破壞影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,甚至造成數(shù)據(jù)庫部分或全部數(shù)據(jù)的丟失時,能將數(shù)
據(jù)庫從錯誤狀態(tài)恢復到某一已知的正確狀態(tài)(亦稱為完整狀態(tài)或一致狀態(tài))。下面可以得到
“什么是數(shù)據(jù)庫”的一個定義:數(shù)據(jù)庫是長期存儲在計算機內有組織的大量的共享的數(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ù)的程序為中心轉向圍繞共享的數(shù)據(jù)庫為中心的新階段。
6.數(shù)據(jù)庫管理系統(tǒng)的主要功能有哪些?
答:
( l)數(shù)據(jù)庫定義功能;
( 2)數(shù)據(jù)存取功能;
( 3)數(shù)據(jù)庫運行管理;
( 4)數(shù)據(jù)庫的建立和維護功能。
7.試述數(shù)據(jù)模型的概念、數(shù)據(jù)模型的作用和數(shù)據(jù)模型的三個要素。
答:
數(shù)據(jù)模型是數(shù)據(jù)庫中用來對現(xiàn)實世界進行抽象的工具,是數(shù)據(jù)庫中用于提供信息表示和操
作手段的形式構架。一般地講,數(shù)據(jù)模型是嚴格定義的概念的集合。這些概念精確描述了系
統(tǒng)的靜態(tài)特性、動態(tài)特性和完整性約束條件。因此數(shù)據(jù)模型通常由數(shù)據(jù)結構、數(shù)據(jù)操作和完整性約束三部分組成。
( l)數(shù)據(jù)結構:是所研究的對象類型的集合,是對系統(tǒng)靜態(tài)特性的描述。
(2)數(shù)據(jù)操作:是指對數(shù)據(jù)庫中各種對象(型)的實例(值)允許進行的操作的集合,
包括操作及有關的操作規(guī)則,是對系統(tǒ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)中最重要的概念之一。必須通過《 概論 》的學習真正掌握數(shù)據(jù)模型的概念和作用。數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的基礎。任何一個 DBMS都以某一個數(shù)據(jù)模型為基礎,或者說支持某一個數(shù)據(jù)模型。數(shù)據(jù)庫系統(tǒng)中,模型有不同的層次。根據(jù)模型應用的不同目的,可以將模型分成兩類或者說兩個層次:一類是概念模型,是按用戶的觀點來對數(shù)據(jù)和信息建模,用于信息世界的建模,強調語義表達能力,
概念簡單清晰;另一類是數(shù)據(jù)模型,是按計算機系統(tǒng)的觀點對數(shù)據(jù)建模,用于機器世界,
人們可以用它定義、操縱數(shù)據(jù)庫中的數(shù)據(jù),一般需要有嚴格的形式化定義和一組嚴格定義了
語法和語義的語言,并有一些規(guī)定和限制,便于在機器上實現(xiàn)。
8.試述概念模型的作用。
答:
概念模型實際上是現(xiàn)實世界到機器世界的一個中間層次。概念模型用于信息世界的建模,是
現(xiàn)實世界到信息世界的第一層抽象,是數(shù)據(jù)庫設計人員進行數(shù)據(jù)庫設計的有力工具,也是
數(shù)據(jù)庫設計人員和用戶之間進行交流的語言。
9.定義并解釋概念模型中以下術語:實體,實體型,實體集,屬性,碼,實體聯(lián)系圖(
E一 R圖)
答:
實體:客觀存在并可以相互區(qū)分的事物叫實體。實體型:具有相同屬性的實體具有相同的特
征和性質,用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型。實體集:同型實
體的集合稱為實體集。屬性:實體所具有的某一特性,一個實體可由若干個屬性來刻畫。碼:
惟一標識實體的屬性集稱為碼。實體聯(lián)系圖( E一 R圖):提供了表示實體型、屬性和聯(lián)
系的方法: ·實體型:用矩形表示,矩形框內寫明實體名;
·屬性:用橢圓形表示,并用
無向邊將其與相應的實體連接起來;
·聯(lián)系:用菱形表示,菱形框內寫明聯(lián)系名,并用無
向邊分別與有關實體連接起來,同時在無向邊旁標上聯(lián)系的類型( 1: 1,1: n或 m: n)
。
10.試給出
3個實際部門的 E一 R圖,要求實體型之間具有一對一、一對多、多對多各種
不同的聯(lián)系。
答:
11.試給出一個實際部門的 E一 R圖,要求有三個實體型,而且
3個實體型之間有多對
多聯(lián)系。 3個實體型之間的多對多聯(lián)系和三個實體型兩兩之間的三個多對多聯(lián)系等價嗎?
為什么?
答:
3個實體型之間的多對多聯(lián)系和 3個實體型兩兩之間的 3個多對多聯(lián)系是不等價,因為它
們擁有不同的語義。 3個實體型兩兩之間的三個多對多聯(lián)系如下圖所示。
12.學校中有若干系,每個系有若干班級和教研室,每個教研室有若干教員,其中有的教
授和副教授每人各帶若干研究生;每個班有若干學生,每個學生選修若干課程,每門課可
由若干學生選修。請用 E一 R圖畫出此學校的概念模型。
答:
13.某工廠生產若干產品,每種產品由不同的零件組成,有的零件可用在不同的產品上。
這些零件由不同的原材料制成,不同零件所用的材料可以相同。這些零件按所屬的不同產品
分別放在倉庫中,原材料按照類別放在若干倉庫中。請用 E一 R圖畫出此工廠產品、零件、
材料、倉庫的概念模型。
答:
14.試述層次模型的概念,舉出三個層次模型的實例。
答:
( l)教員學生層次數(shù)據(jù)庫模型
( 2)行政機構層次數(shù)據(jù)庫模型
( 3)行政區(qū)域層次數(shù)據(jù)庫模型
15.今有一個層次數(shù)據(jù)庫實例,試用子女一兄弟鏈接法和層次序列鏈接法畫出它的存儲結
構示意圖。
答:
子女兄弟鏈接法:
層次序列鏈接法:
16.試述網狀模型的概念,舉出三個網狀模型的實例。
答:
滿足下面兩個條件的基本層次聯(lián)系集合為網狀模型。
( l)允許一個以上的結點無雙親;
( 2)一個結點可以有多于一個的雙親
17.試述網狀、層次數(shù)據(jù)庫的優(yōu)缺點。
答:
層次模型的優(yōu)點主要有: ( l)模型簡單,對具有一對多層次關系的部門描述非常自然、直
觀,容易理解,這是層次數(shù)據(jù)庫的突出優(yōu)點;
(2)用層次模型的應用系統(tǒng)性能好,特別
是對于那些實體間聯(lián)系是固定的且預先定義好的應用,采用層次模型來實現(xiàn),其性能優(yōu)于
關系模型;
( 3)層次數(shù)據(jù)模型提供了良好的完整性支持。
層次模型的缺點主要有: ( l)現(xiàn)實世界中很多聯(lián)系是非層次性的,如多對多聯(lián)系、一個結
點具有多個雙親等,層次模型不能自然地表示這類聯(lián)系,只能通過引入冗余數(shù)據(jù)或引入虛
擬結點來解決;
(2)對插入和刪除操作的限制比較多;
(3)查詢子女結點必須通過雙
親結點。
網狀數(shù)據(jù)模型的優(yōu)點主要有: (l)能夠更為直接地描述現(xiàn)實世界,如一個結點可以有多
個雙親;
( 2)具有良好的性能,存取效率較高。
網狀數(shù)據(jù)模型的缺點主要有: (l)結構比較復雜,而且隨著應用環(huán)境的擴大,數(shù)據(jù)庫的
結構就變得越來越復雜,不利于最終用戶掌握;
( 2)其 DDL、 DML語言復雜,用戶不
容易使用。由于記錄之間聯(lián)系是通過存取路徑實現(xiàn)的,應用程序在訪問數(shù)據(jù)時必須選擇適當
的存取路徑。因此,用戶必須了解系統(tǒng)結構的細節(jié),加重了編寫應用程序的負擔。
18.試述關系模型的概念,定義并解釋以下術語: (l)關系( 2)屬性( 3)域( 4)元組 ( 5)主碼( 6)分量( 7)關系模式
答:
關系模型由關系數(shù)據(jù)結構、關系操作集合和關系完整性約束三部分組成。在用戶觀點下,關
系模型中數(shù)據(jù)的邏輯結構是一張二維表,它由行和列組成。 ( l)關系:一個關系對應通常
說的一張表;
( 2)屬性:表中的一列即為一個屬性;
( 3)域:屬性的取值范圍;
( 4)
元組:表中的一行即為一個元組;
( 5)主碼:表中的某個屬性組,它可以惟一確定一個
元組;
(6)分量:元組中的一個屬性值;
(7)關系模式:對關系的描述,一般表示為
關系名(屬性 1,屬性 2, …,屬性 n)
19.試述關系數(shù)據(jù)庫的特點。
答:
關系數(shù)據(jù)模型具有下列優(yōu)點: (l)關系模型與非關系模型不同,它是建立在嚴格的數(shù)學
概念的基礎上的。( 2)關系模型的概念單一,無論實體還是實體之間的聯(lián)系都用關系表示,
操作的對象和操作的結果都是關系,所以其數(shù)據(jù)結構簡單、清晰,用戶易懂易用。 ( 3)關
系模型的存取路徑對用戶透明,從而具有更高的數(shù)據(jù)獨立性、更好的安全保密性,也簡化了
程序員的工作和數(shù)據(jù)庫開發(fā)建立的工作。當然,關系數(shù)據(jù)模型也有缺點,其中最主要的缺點
是,由于存取路徑對用戶透明,查詢效率往往不如非關系數(shù)據(jù)模型。因此為了提高性能,必
須對用戶的查詢請求進行優(yōu)化,增加了開發(fā)數(shù)據(jù)庫管理系統(tǒng)的難度。
20.試述數(shù)據(jù)庫系統(tǒng)三級模式結構,這種結構的優(yōu)點是什么?
答:
數(shù)據(jù)庫系統(tǒng)的三級模式結構由外模式、模式和內模式組成。(參見書上圖 1 . 29 ) 外模式,
亦稱子模式或用戶模式,是數(shù)據(jù)庫用戶(包括應用程序員和最終用戶)能夠看見和使用的
局部數(shù)據(jù)的邏輯結構和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應用有關的數(shù)據(jù)
的邏輯表示。模式,亦稱邏輯模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結構和特征的描述,是所有
用戶的公共數(shù)據(jù)視圖。模式描述的是數(shù)據(jù)的全局邏輯結構。外模式涉及的是數(shù)據(jù)的局部邏輯
結構,通常是模式的子集。內模式,亦稱存儲模式,是數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內部的表示,即對
數(shù)據(jù)的物理結構和存儲方式的描述。數(shù)據(jù)庫系統(tǒng)的三級模式是對數(shù)據(jù)的三個抽象級別,它把
數(shù)據(jù)的具體組織留給
DBMs管理,使用戶能邏輯抽象地處理數(shù)據(jù),而不必關心數(shù)據(jù)在計算
機中的表示和存儲。為了能夠在內部實現(xiàn)這三個抽象層次的聯(lián)系和轉換,數(shù)據(jù)庫系統(tǒng)在這三
級模式之間提供了兩層映像:外模式/模式映像和模式/內模式映像。正是這兩層映像保證
了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨立性和物理獨立性。
21.定義并解釋以下術語:模式、外模式、內模式、DDL、DML模式、外模式、內模式,亦
稱邏輯模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結構和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。
模式描述的是數(shù)據(jù)的全局邏輯結構。外模式涉及的是數(shù)據(jù)的局部邏輯結構,通常是模式的子
集。內模式,亦稱存儲模式,是數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內部的表示,即對數(shù)據(jù)的物理結構和存儲
方式的描述。 DDL:數(shù)據(jù)定義語言,用來定義數(shù)據(jù)庫模式、外模式、內模式的語言。 DML:數(shù)據(jù)操縱語言,用來對數(shù)據(jù)庫中的數(shù)據(jù)進行查詢、插入、刪除和修改的語句。
22.什么叫數(shù)據(jù)與程序的物理獨立性?什么叫數(shù)據(jù)與程序的邏輯獨立性?為什么數(shù)據(jù)庫系
統(tǒng)具有數(shù)據(jù)與程序的獨立性?
答:
數(shù)據(jù)與程序的邏輯獨立性:當模式改變時(例如增加新的關系、新的屬性、改變屬性的數(shù)據(jù)
類型等),由數(shù)據(jù)庫管理員對各個外模式/模式的映像做相應改變,可以使外模式保持不
變。應用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應用程序不必修改,保證了數(shù)據(jù)與程序的邏
輯獨立性,簡稱數(shù)據(jù)的邏輯獨立性。數(shù)據(jù)與程序的物理獨立性:當數(shù)據(jù)庫的存儲結構改變了,
由數(shù)據(jù)庫管理員對模式/內模式映像做相應改變,可以使模式保持不變,從而應用程序也
不必改變,保證了數(shù)據(jù)與程序的物理獨立性,簡稱數(shù)據(jù)的物理獨立性。數(shù)據(jù)庫管理系統(tǒng)在三
級模式之間提供的兩層映像保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨立性和物理
獨立性。
23.試述數(shù)據(jù)庫系統(tǒng)的組成。
答:
數(shù)據(jù)庫系統(tǒng)一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應用系統(tǒng)、數(shù)據(jù)庫管理員和用
戶構成。
24 .DBA的職責是什么?
答:
負責全面地管理和控制數(shù)據(jù)庫系統(tǒng)。具體職責包括: ①決定數(shù)據(jù)庫的信息內容和結構;
②決定數(shù)據(jù)庫的存儲結構和存取策略;
③定義數(shù)據(jù)的安全性要求和完整性約束條件;
④監(jiān)督和控制數(shù)據(jù)庫的使用和運行;
⑤改進和重組數(shù)據(jù)庫系統(tǒng)。 25.系統(tǒng)分析員、數(shù)據(jù)
庫設計人員、應用程序員的職責是什么?答系統(tǒng)分析員負責應用系統(tǒng)的需求分析和規(guī)范說明,
系統(tǒng)分析員要和用戶及 DBA相結合,確定系統(tǒng)的硬件、軟件配置,并參與數(shù)據(jù)庫系統(tǒng)的概
要設計。數(shù)據(jù)庫設計人員負責數(shù)據(jù)庫中數(shù)據(jù)的確定、數(shù)據(jù)庫各級模式的設計。數(shù)據(jù)庫設計人員
必須參加用戶需求調查和系統(tǒng)分析,然后進行數(shù)據(jù)庫設計。在很多情況下,數(shù)據(jù)庫設計人員
就由數(shù)據(jù)庫管理員擔任。應用程序員負責設計和編寫應用系統(tǒng)的程序模塊,并進行調試和安
裝。
第2章 關系數(shù)據(jù)庫
1.試述關系模型的三個組成部分。
答:關系模型由關系數(shù)據(jù)結構、關系操作集合和關系完整性約束三部分組成。
2.試述關系數(shù)據(jù)語言的特點和分類。
答:關系數(shù)據(jù)語言可以分為三類:
關系代數(shù)語言。
關系演算語言:元組關系演算語言和域關系演算語言。
SQL:具有關系代數(shù)和關系演算雙重特點的語言。
這些關系數(shù)據(jù)語言的共同特點是,語言具有完備的表達能力,是非過程化的集合操作
語言,功能強,能夠嵌入高級語言中使用。
4.試述關系模型的完整性規(guī)則。在參照完整性中,為什么外部碼屬性的值也可以為空?什
么情況下才可以為空?
答:實體完整性規(guī)則是指若屬性A是基本關系R的主屬性,則屬性A不能取空值。
若屬性(或屬性組 )F是基本關系 R的外碼,它與基本關系 S的主碼
Ks相對應 (基本關系 R
和 S不一定是不同的關系 ),則對于 R中每個元組在 F上的值必須為:或者取空值
(F的每
個屬性值均為空值
);或者等于 S中某個元組的主碼值。即屬性 F本身不是主屬性,則可以
取空值,否則不能取空值。
5.設有一個SPJ數(shù)據(jù)庫,包括S,P,J,SPJ四個關系模式:
1)求供應工程J1零件的供應商號碼
SNO:
πSno(σSno=‘J1’(SPJ))
2)求供應工程J1零件P1的供應商號碼
SNO:
πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ))
3)求供應工程J1零件為紅色的供應商號碼
SNO:
πSno(σPno=‘P1‘ (σCOLOR=’紅‘(P)∞SPJ))
4)求沒有使用天津供應商生產的紅色零件的工程號JNO:
πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘紅‘(S∞SPJ∞P)
5)求至少用了供應商S1所供應的全部零件的工程號JNO:
πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘ (SPJ))
6.試述等值連接與自然連接的區(qū)別和聯(lián)系。
答:連接運算符是“ =”的連接運算稱為等值連接。它是從關系 R與S的廣義笛卡爾積中選
取A,B屬性值相等的那些元組
自然連接是一種特殊的等值連接,它要求兩個關系中進行比較的分量必須是相同的屬性組,
并且在結果中把重復的屬性列去掉。
7.關系代數(shù)的基本運算有哪些 ?如何用這些基本運算來表示其他運算?
答:并、差、笛卡爾積、投影和選擇
5種運算為基本的運算。其他
3種運算,即交、連接和除,
均可以用這5種基本運算來表達。
第3章 關系數(shù)據(jù)庫標準語言
SQL
1.試述 sQL語言的特點。
答:
(l)綜合統(tǒng)一。sQL語言集數(shù)據(jù)定義語言
DDL、數(shù)據(jù)操縱語言
DML、數(shù)據(jù)控制語言
DCL
的功能于一體。
(2)高度非過程化。用 sQL語言進行數(shù)據(jù)操作,只要提出“做什么”,而無需指明“怎么
做”,因此無需了解存取路徑,存取路徑的選擇以及 sQL語句的操作過程由系統(tǒng)自動完
成。
(3)面向集合的操作方式。sQL語言采用集合操作方式,不僅操作對象、查找結果可以是元
組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。
(4)以同一種語法結構提供兩種使用方式。sQL語言既是自含式語言,又是嵌入式語言。作
為自含式語言,它能夠獨立地用于聯(lián)機交互的使用方式;作為嵌入式語言,它能夠嵌入到
高級語言程序中,供程序員設計程序時使用。
(5)語言簡捷,易學易用。
2.試述 sQL的定義功能。
sQL的數(shù)據(jù)定義功能包括定義表、定義視圖和定義索引。 SQL語言使用 cREATE TABLE
語句建立基本表, ALTER TABLE語句修改基本表定義, DROP TABLE語句刪除基本
表;使用 CREATE INDEX語句建立索引, DROP INDEX語句刪除索引;使用
CREATE VIEW語句建立視圖, DROP VIEW語句刪除視圖。
3.用 sQL語句建立第二章習題
5中的 4個表。
答:
對于 S表: S(
SNO
,
SNAME
,STATUS
,
CITY
)
;
建 S表:
CREATE TABLE S ( Sno C(2) UNIQUE,Sname C(6) ,Status C(2),City C(4));
對于 P表: P ( PNO , PNAME , COLOR , WEIGHT );
建 P表 :
CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2), WEIGHT
INT);
對于 J表: J ( JNO , JNAME , CITY) ;
建 J表:
CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8), CITY C(4))
對于 sPJ表: sPJ ( sNo ,PNo ,JNo ,QTY) ;
建 SPJ表:SPJ(SNO,PNO,JNO,QTY)
CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2), QTY INT))
4.針對上題中建立的 4個表試用 sQL語言完成第二章習題
5中的查詢。
( l)求供應工程 Jl零件的供應商號碼
SNO ;
SELECT
DIST
SNO
FROM
SPJ
WHERE
JNO=’J1’
( 2)求供應工程 Jl零件 Pl的供應商號碼
SNO ;
SELECT DIST SNO FROM SPJ WHERE JNO='J1' AND PNO='P1'
( 3)求供應工程 Jl零件為紅色的供應商號碼
SNO ;
SELECT
SNO
FROM
SPJ,P
WHERE
JNO='J1'AND
SPJ.PNO=P.PNO
AND
COLOR='紅'
( 4)求沒有使用天津供應商生產的紅色零件的工程號 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)求至少用了供應商 Sl所供應的全部零件的工程號 JNO ;
由于VFP不允許子查詢嵌套太深,將查詢分為兩步
A、查詢
S1供應商供應的零件號
SELECT
DIST
PNO
FROM
SPJ
WHERE
SNO='S1'結果是(P1,P2)
B、查詢哪一個工程既使用P1零件又使用P2零件。
SELECT
JNO
FROM
SPJ
WHERE
PNO='P1'
AND
JNO
IN
(SELECT
JNO
FROM
SPJ
WHERE
PNO='P2')
5.針對習題
3中的四個表試用SQL語言完成以下各項操作:
(1)找出所有供應商的姓名和所在城市。
SELECT SNAME,CITY FROM S
(2)找出所有零件的名稱、顏色、重量。
SELECT PNAME,COLOR,WEIGHT FROM P
(3)找出使用供應商S1所供應零件的工程號碼。
SELECT DIST JNO FROM SPJ WHERE SNO='S1'
(4)找出工程項目J2使用的各種零件的名稱及其數(shù)量。
SELECT PNAME,QTY FROM SPJ,P
WHERE P.PNO=SPJ.PNO AND SPJ.JNO='J2'
(5)找出上海廠商供應的所有零件號碼。
SELECT PNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND CITY='上海'
(6)出使用上海產的零件的工程名稱。
SELECT JNAME FROM SPJ,S,J
WHERE S.SNO=SPJ.SNO AND S.CITY='上海' AND J.JNO=SPJ.JNO
(7)找出沒有使用天津產的零件的工程號碼。
注意
: 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)把全部紅色零件的顏色改成藍色。
UPDATE P SET COLOR='藍' WHERE COLOR='紅'
(9)由S5供給
J4的零件P6改為由S3供應。
UPDATE SPJ SET SNO='S3' WHERE SNO='S5' AND JNO='J4' AND PNO='P6'
(10)從供應商關系中刪除供應商號是S2的記錄,并從供應情況關系中刪除相應的記錄。
A、DELETE FROM S WHERE SNO=’S2’
B、DELETE FROM SPJ WHERE SNO=‘S2’
(11)請將(S2,J6,P4,200)插入供應情況關系。
INSERT INTO SPJ VALUES(‘S2’,‘J6’,‘P4’,200)
6.什么是基本表?什么是視圖?
答
兩者的區(qū)別和聯(lián)系是什么?基本表是本身獨立存在的表,在 sQL中一個關系就對應一個
表。視圖是從一個或幾個基本表導出的表。視圖本身不獨立存儲在數(shù)據(jù)庫中,是一個虛表。即
數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對應的數(shù)據(jù),這些數(shù)據(jù)仍存放在導出視圖的基本
表中。視圖在概念上與基本表等同,用戶可以如同基本表那樣使用視圖,可以在視圖上再定
義視圖。
7.試述視圖的優(yōu)點。
答
(l)視圖能夠簡化用戶的操作;
(2)視圖使用戶能以多種角度看待同一數(shù)據(jù);
( 3)視
圖對重構數(shù)據(jù)庫提供了一定程度的邏輯獨立性;
( 4)視圖能夠對機密數(shù)據(jù)提供安全保護。
8.所有的視圖是否都可以更新?為什么?
答:
不是。視圖是不實際存儲數(shù)據(jù)的虛表,因此對視圖的更新,最終要轉換為對基本表的更新。
因為有些視圖的更新不能惟一有意義地轉換成對相應基本表的更新,所以,并不是所有的
視圖都是可更新的.
9.哪類視圖是可以更新的?哪類視圖是不可更新的?各舉一例說明。
答:基本表的行列子集視圖一般是可更新的。若視圖的屬性來自集函數(shù)、表達式,則該視圖
肯定是不可以更新的。
10.試述某個你熟悉的實際系統(tǒng)中對視圖更新的規(guī)定。
答
VFP
11.請為三建工程項目建立一個供應情況的視圖,包括供應商代碼(SNO)、零件代碼(PNO)、
供應數(shù)量(QTY)。
CREATE VIEW VSP AS SELECT SNO,PNO,QTY FROM SPJ,J
WHERE SPJ.JNO=J.JNO AND J.JNAME='三建'
針對該視圖VSP完成下列查詢:
(1)找出三建工程項目使用的各種零件代碼及其數(shù)量。
SELECT DIST PNO,QTY FROM VSP
(2)找出供應商S1的供應情況。
SELECT DIST * FROM VSP WHERE SNO='S1'
第4章 數(shù)據(jù)庫安全性
1.什么是數(shù)據(jù)庫的安全性?
答:數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。
2.數(shù)據(jù)庫安全性和計算機系統(tǒng)的安全性有什么關系?
答:安全性問題不是數(shù)據(jù)庫系統(tǒng)所獨有的,所有計算機系統(tǒng)都有這個問題。只是在數(shù)據(jù)庫系
統(tǒng)中大量數(shù)據(jù)集中存放,而且為許多最終用戶直接共享,從而使安全性問題更為突出。
系統(tǒng)安全保護措施是否有效是數(shù)據(jù)庫系統(tǒng)的主要指標之一。
數(shù)據(jù)庫的安全性和計算機系統(tǒng)的安全性,包括操作系統(tǒng)、網絡系統(tǒng)的安全性是緊密聯(lián)系、相
互支持的,
3.試述可信計算機系統(tǒng)評測標準的情況,試述TDI / TCSEC標準的基本內容。
答:各個國家在計算機安全技術方面都建立了一套可信標準。目前各國引用或制定的一系列
安全標準中,最重要的是美國國防部(DoD)正式頒布的《
DoD可信計算機系統(tǒng)評估標準》
(伽
sted Co哪
uter system Evaluation criteria,簡稱 TcsEc,又稱桔皮書)。( TDI /
TCSEC標準是將
TcsEc擴展到數(shù)據(jù)庫管理系統(tǒng),即《可信計算機系統(tǒng)評估標準關于可信
數(shù)據(jù)庫系統(tǒng)的解釋》(Tmsted Database Interpretation簡稱TDI ,又稱紫皮書)。在TDI中
定義了數(shù)據(jù)庫管理系統(tǒng)的設計與實現(xiàn)中需滿足和用以進行安全性級別評估的標準。
TDI與TcsEc一樣,從安全策略、責任、保證和文檔四個方面來描述安全性級別劃分的指標。
每個方面又細分為若干項。
4.試述TcsEC ( TDI)將系統(tǒng)安全級別劃分為4組7個等級的基本內容。
答:根據(jù)計算機系統(tǒng)對安全性各項指標的支持情況,TCSEC ( TDI)將系統(tǒng)劃分為四組
(division ) 7個等級,依次是D、C( CI, CZ)、B ( BI , BZ ,B3)、A( AI ) ,按系統(tǒng)可靠
或可信程度逐漸增高。
這些安全級別之間具有一種偏序向下兼容的關系,即較高安全性級別提供的安全保護包含
較低級別的所有保護要求,同時提供更多或更完善的保護能力。各個等級的基本內容為:
D級
D級是最低級別。一切不符合更高標準的系統(tǒng),統(tǒng)統(tǒng)歸于D組。
Cl級只提供了非常初級的自主安全保護。能夠實現(xiàn)對用戶和數(shù)據(jù)的分離,進行自主存取控
制( DAC ),保護或限制用戶權限的傳播。
C2級實際是安全產品的最低檔次,提供受控的存取保護,即將
Cl級的 DAC進一步細化,
以個人身份注冊負責,并實施審計和資源隔離。
Bl級標記安全保護。對系統(tǒng)的數(shù)據(jù)加以標記,并對標記的主體和客體實施強制存取控制
( MAC)以及審計等安全機制。
B2級結構化保護。建立形式化的安全策略模型并對系統(tǒng)內的所有主體和客體實施
DAC和
MACo
B3級安全域。該級的TCB必須滿足訪問監(jiān)控器的要求,審計跟蹤能力更強,并提供系統(tǒng)恢
復過程。
Al級驗證設計,即提供
B3級保護的同時給出系統(tǒng)的形式化設計說明和驗證以確信各安全
保護真正實現(xiàn)。
5.試述實現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術。
答:實現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術有:
(l)用戶標識和鑒別:該方法由系統(tǒng)提供一定的方式讓用戶標識自己的名字或身份。每次
用戶要求進入系統(tǒng)時,由系統(tǒng)進行核對,通過鑒定后才提供系統(tǒng)的使用權。
( 2)存取控制:通過用戶權限定義和合法權檢查確保只有合法權限的用戶訪問數(shù)據(jù)庫,所
有未被授權的人員無法存取數(shù)據(jù)。例如 CZ級中的自主存取控制( DAC ) , Bl級中的強制存
取控制( MAC)。
( 3)視圖機制:為不同的用戶定義視圖,通過視圖機制把要保密的數(shù)據(jù)對無權存取的用戶
隱藏起來,從而自動地對數(shù)據(jù)提供一定程度的安全保護。
(4)審計:建立審計日志,把用戶對數(shù)據(jù)庫的所有操作自動記錄下來放入審計日志中,
DBA可以利用審計跟蹤的信息,重現(xiàn)導致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)
據(jù)的人、時間和內容等。
( 5)數(shù)據(jù)加密:對存儲和傳輸?shù)臄?shù)據(jù)進行加密處理,從而使得不知道解密算法的人無法獲
知數(shù)據(jù)的內容。
6.什么是數(shù)據(jù)庫中的自主存取控制方法和強制存取控制方法?
答:
自主存取控制方法:定義各個用戶對不同數(shù)據(jù)對象的存取權限。當用戶對數(shù)據(jù)庫訪問時首先
檢查用戶的存取權限。防止不合法用戶對數(shù)據(jù)庫的存取。
強制存取控制方法:每一個數(shù)據(jù)對象被(強制地)標以一定的密級,每一個用戶也被(強
制地)授予某一個級別的許可證。系統(tǒng)規(guī)定只有具有某一許可證級別的用戶才能存取某一個
密級的數(shù)據(jù)對象。
7 .SQL語言中提供了哪些數(shù)據(jù)控制(自主存取控制)的語句?請試舉幾例說明它們的使用
方法。
答:
SQL中的自主存取控制是通過
GRANT語句和REVOKE語句來實現(xiàn)的。如:
GRANT SELECT , INSERT ON Student
TO王平
WITH GRANT OPTION ;
就將
Student表的 SELECT和 INSERT權限授予了用戶王平,后面的“ WITH GRANT
OPTION ”子句表示用戶王平同時也獲得了
“授權”的權限,即可以把得到的權限繼續(xù)授
予其他用戶。
REVOKE INSERT ON Student FROM王平
CASCADE ;
就將
Student表的 INSERT權限從用戶王平處收回,選項
CASCADE表示,如果用戶王平
將
Student的INSERT權限又轉授給了其他用戶,那么這些權限也將從其他用戶處收回。
8.請用SQL的GRANT和REVOKE語句(加上視圖機制 )完成以下授權定義或存取控制功
能:
( a)用戶王明對兩個表有 SELECT權力。
GRANT SELECT ON職工,部門
TO王明
( b)用戶李勇對兩個表有 INSERT和DELETE權力。
GRANT INSERT,DELETE ON職工,部門
TO李勇
( c) 每個職工只對自己的記錄有SELECT權力。
GRANT SELECT ON職工
WHEN USER()=NAME
TO ALL;
( d)用戶劉星對職工表有 SELECT權力,對工資字段具有更新權力。
GRANT SELECT,UPDATE(工資) ON職工
TO劉星
( e)用戶張新具有修改這兩個表的結構的權力。
GRANT ALTER TABLE ON職工,部門
TO張新;
(f)用戶周平具有對兩個表所有權力(讀,插,改,刪數(shù)據(jù)),并具有給其他用戶授權
的權力。
GRANT ALL PRIVILIGES ON職工,部門
TO周平
WITH GRANT OPTION;
( g)用戶楊蘭具有從每個部門職工中SELECT最高工資、最低工資、平均工資的權力,他
不能查看每個人的工資。
CREATE VIEW部門工資
AS
SELECT部門.名稱,MAX(工資),MIN(工資),AVG(工資)
FROM 職工,部門
WHERE職工.部門號=部門.部門號
GROUP BY職工.部門號
GRANT SELECT ON部門工資
TO楊蘭;
9.把習題
8中(1)---(7)的每一種情況,撤銷各用戶所授予的權力
(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部門工資;
10.為什么強制存取控制提供了更高級別的數(shù)據(jù)庫安全性?
答:強制存取控制( MAC)是對數(shù)據(jù)本身進行密級標記,無論數(shù)據(jù)如何復制,標記與數(shù)
據(jù)是一個不可分的整體,只有符合密級標記要求的用戶才可以操縱數(shù)據(jù),從而提供了更高
級別的安全性。
11.理解并解釋
MAC機制中主體、客體、敏感度標記的含義。
答:
主體是系統(tǒng)中的活動實體,既包括 DBMS所管理的實際用戶,也包括代表用戶的各進程。
客體是系統(tǒng)中的被動實體,是受主體操縱的,包括文件、基表、索引、視圖等。對于主體和客
體,DBMS為它們每個實例(值)指派一個敏感度標記(Label)。
敏感度標記被分成若干級別,例如絕密(Top Secret)、機密(Secret)·可信
( Confidential)、公開( PubliC)等。主體的敏感度標記稱為許可證級別(ClearanCe玫
vel ) ,客體的敏感度標記稱為密級(Classification Level)。
13.什么是數(shù)據(jù)庫的審計功能,為什么要提供審計功能?
答:審計功能是指 DBMS的審計模塊在用戶對數(shù)據(jù)庫執(zhí)行操作的同時把所有操作自動記錄
到系統(tǒng)的審計日志中。
因為任何系統(tǒng)的安全保護措施都不是完美無缺的,蓄意盜竊破壞數(shù)據(jù)的人總可能存在。利用
數(shù)據(jù)庫的審計功能, DBA可以根據(jù)審計跟蹤的信息,重現(xiàn)導致數(shù)據(jù)庫現(xiàn)有狀況的一系列事
件,找出非法存取數(shù)據(jù)的人、時間和內容等。
14.統(tǒng)計數(shù)據(jù)庫中存在何種特殊的安全性問題?
答:統(tǒng)計數(shù)據(jù)庫允許用戶查詢聚集類型的信息,如合計、平均值、最大值、最小值等,不允許
查詢單個記錄信息。但是,人們可以從合法的查詢中推導出不合法的信息,即可能存在隱蔽
的信息通道,這是統(tǒng)計數(shù)據(jù)庫要研究和解決的特殊的安全性問題。
第5章 數(shù)據(jù)庫完整性
1什么是數(shù)據(jù)庫的完整性?
答:
數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。
2.數(shù)據(jù)庫的完整性概念與數(shù)據(jù)庫的安全性概念有什么區(qū)別和聯(lián)系?
答:
數(shù)據(jù)的完整性和安全性是兩個不同的概念,但是有一定的聯(lián)系。前者是為了防止數(shù)據(jù)庫中存
在不符合語義的數(shù)據(jù),防止錯誤信息的輸入和輸出,即所謂垃圾進垃圾出( Garba : e In
Garba : e out )所造成的無效操作和錯誤結果。后者是保護數(shù)據(jù)庫防止惡意的破壞和非法的
存取。也就是說,安全性措施的防范對象是非法用戶和非法操作,完整性措施的防范對象是
不合語義的數(shù)據(jù)。
3.什么是數(shù)據(jù)庫的完整性約束條件?可分為哪幾類?
答
完整性約束條件是指數(shù)據(jù)庫中的數(shù)據(jù)應該滿足的語義約束條件。一般可以分為六類:靜態(tài)列
級約束、靜態(tài)元組約束、靜態(tài)關系約束、動態(tài)列級約束、動態(tài)元組約束、動態(tài)關系約束。靜態(tài)列
級約束是對一個列的取值域的說明,包括以下幾個方面: (l)對數(shù)據(jù)類型的約束,包括
數(shù)據(jù)的類型、長度、單位、精度等;
( 2)對數(shù)據(jù)格式的約束;
( 3)對取值范圍或取值集合
的約束;
( 4)對空值的約束;
( 5)其他約束。靜態(tài)元組約束就是規(guī)定組成一個元組的各
個列之間的約束關系,靜態(tài)元組約束只局限在單個元組上。靜態(tài)關系約束是在一個關系的各
個元組之間或者若干關系之間常常存在各種聯(lián)系或約束。
常見的靜態(tài)關系約束有: ( l)實體完整性約束;
( 2)參照完整性約束;
( 3)函數(shù)依賴
約束。
動態(tài)列級約束是修改列定義或列值時應滿足的約束條件,包括下面兩方面: (l)修改列
定義時的約束;
( 2)修改列值時的約束。動態(tài)元組約束是指修改某個元組的值時需要參照
其舊值,并且新舊值之間需要滿足某種約束條件。動態(tài)關系約束是加在關系變化前后狀態(tài)上
的限制條件,例如事務一致性、原子性等約束條件。
4 . DBMS的完整性控制機制應具有哪些功能?
答:
DBMS的完整性控制機制應具有三個方面的功能: (l)定義功能,即提供定義完整性約
束條件的機制;
(2)檢查功能,即檢查用戶發(fā)出的操作請求是否違背了完整性約束條件;
( 3)違約反應:如果發(fā)現(xiàn)用戶的操作請求使數(shù)據(jù)違背了完整性約束條件,則采取一定的動
作來保證數(shù)據(jù)的完整性。
5 . RDBMS在實現(xiàn)參照完整性時需要考慮哪些方面?
答
RDBMs在實現(xiàn)參照完整性時需要考慮以下幾個方面: (l)外碼是否可以接受空值。 (2)冊
l除被參照關系的元組時的考慮,這時系統(tǒng)可能采取的作法有三種: l)級聯(lián)刪除(
CASCADES ) ; 2)受限刪除( RESTRICTED ) ; 3)置空值刪除( NULLIFIES)。 ( 3)在參照關系中插入元組時的問題,這時系統(tǒng)可能采取的作法有: l)受限插入;
2)遞
歸插入。 ( 4)修改關系中主碼的問題。一般是不能用 UPDATE語句修改關系主碼的。如果
需要修改主碼值,只能先刪除該元組,然后再把具有新主碼值的元組插入到關系中。如果允
許修改主碼,首先要保證主碼的惟一性和非空,否則拒絕修改。然后要區(qū)分是參照關系還是
被參照關系。
6.假設有下面兩個關系模式:職工(職工號,姓名,年齡,職務,工資,部門號),其
中職工號為主碼;部門(部門號,名稱,經理名,電話),其中部門號為主碼。用 sQL語
言定義這兩個關系模式,要求在模式中完成以下完整性約束條件的定義:定義每個模式的
主碼;定義參照完整性;定義職工年齡不得超過
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.關系系統(tǒng)中,當操作違反實體完整性、參照完整性和用戶定義的完整性約束條件時,一
般是如何分別進行處理的?
答:
對于違反實體完整性和用戶定義的完整性的操作一般都采用拒絕執(zhí)行的方式進行處理。而對
于違反參照完整性的操作,并不都是簡單地拒絕執(zhí)行,有時要根據(jù)應用語義執(zhí)行一些附加
的操作,以保證數(shù)據(jù)庫的正確性。
第6章關系數(shù)據(jù)庫理論
1.理解并給出下列術語的定義:
函數(shù)依賴、部分函數(shù)依賴、完全函數(shù)依賴、傳遞依賴、候選碼、主碼、外碼、全碼(All一key)、
1 NF、ZNF、3NF、BcNF、多值依賴、4NF。
定義1:設
R(U)是屬性集U上的關系模式。X,Y是屬性集U的子集。若對于R(U)的任意一
個可能的關系 r,r中不可能存在兩個元組在 X上的屬性值相等,而在 Y上的屬性值不等,
則稱X函數(shù)確定Y或Y函數(shù)依賴于X,記作X.Y。(即只要X上的屬性值相等,Y上的值
一定相等。)
術語和記號:
X.Y,但Y不是X的子集,則稱X.Y是非平凡的函數(shù)依賴。若不特別聲明,總是