數據庫系統原理課后習題答案_第1頁
數據庫系統原理課后習題答案_第2頁
數據庫系統原理課后習題答案_第3頁
數據庫系統原理課后習題答案_第4頁
數據庫系統原理課后習題答案_第5頁
已閱讀5頁,還剩24頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、【精品文檔】如有侵權,請聯系網站刪除,僅供學習與交流數據庫系統原理課后習題答案.精品文檔.第1章 緒論1 試述數據、數據庫、數據庫系統、數據庫管理系統的概念。答: ( l )數據( Data ) :描述事物的符號記錄稱為數據。數據的種類有數字、文字、圖形、圖像、聲音、正文等。數據與其語義是不可分的。解析在現代計算機系統中數據的概念是廣義的。早期的計算機系統主要用于科學計算,處理的數據是整數、實數、浮點數等傳統數學中的數據。現代計算機能存儲和處理的對象十分廣泛,表示這些對象的數據也越來越復雜。數據與其語義是不可分的。 500 這個數字可以表示一件物品的價格是 500 元,也可以表示一個學術會議參

2、加的人數有 500 人,還可以表示一袋奶粉重 500 克。 ( 2 )數據庫( DataBase ,簡稱 DB ) :數據庫是長期儲存在計算機內的、有組織的、可共享的數據集合。數據庫中的數據按一定的數據模型組織、描述和儲存,具有較小的冗余度、較高的數據獨立性和易擴展性,并可為各種用戶共享。( 3 )數據庫系統( DataBas 。 Sytem ,簡稱 DBS ) :數據庫系統是指在計算機系統中引入數據庫后的系統構成,一般由數據庫、數據庫管理系統(及其開發工具)、應用系統、數據庫管理員構成。解析數據庫系統和數據庫是兩個概念。數據庫系統是一個人一機系統,數據庫是數據庫系統的一個組成部分。但是在日常

3、工作中人們常常把數據庫系統簡稱為數據庫。希望讀者能夠從人們講話或文章的上下文中區分“數據庫系統”和“數據庫”,不要引起混淆。 ( 4 )數據庫管理系統( DataBase Management sytem ,簡稱 DBMs ) :數據庫管理系統是位于用戶與操作系統之間的一層數據管理軟件,用于科學地組織和存儲數據、高效地獲取和維護數據。 DBMS 的主要功能包括數據定義功能、數據操縱功能、數據庫的運行管理功能、數據庫的建立和維護功能。解析 DBMS 是一個大型的復雜的軟件系統,是計算機中的基礎軟件。目前,專門研制 DBMS 的廠商及其研制的 DBMS 產品很多。著名的有美國 IBM 公司的 DB

4、Z 關系數據庫管理系統和 IMS 層次數據庫管理系統、美國 Oracle 公司的 orade 關系數據庫管理系統、 s 油 ase 公司的 s 油 ase 關系數據庫管理系統、美國微軟公司的 SQL Serve ,關系數據庫管理系統等。 2 使用數據庫系統有什么好處?答:使用數據庫系統的好處是由數據庫管理系統的特點或優點決定的。使用數據庫系統的好處很多,例如,可以大大提高應用開發的效率,方便用戶的使用,減輕數據庫系統管理人員維護的負擔,等等。使用數據庫系統可以大大提高應用開發的效率。因為在數據庫系統中應用程序不必考慮數據的定義、存儲和數據存取的具體路徑,這些工作都由 DBMS 來完成。用一個通

5、俗的比喻,使用了 DBMS 就如有了一個好參謀、好助手,許多具體的技術工作都由這個助手來完成。開發人員就可以專注于應用邏輯的設計,而不必為數據管理的許許多多復雜的細節操心。還有,當應用邏輯改變,數據的邏輯結構也需要改變時,由于數據庫系統提供了數據與程序之間的獨立性,數據邏輯結構的改變是 DBA 的責任,開發人員不必修改應用程序,或者只需要修改很少的應用程序,從而既簡化了應用程序的編制,又大大減少了應用程序的維護和修改。使用數據庫系統可以減輕數據庫系統管理人員維護系統的負擔。因為 DBMS 在數據庫建立、運用和維護時對數據庫進行統一的管理和控制,包括數據的完整性、安全性、多用戶并發控制、故障恢復

6、等,都由 DBMS 執行。總之,使用數據庫系統的優點是很多的,既便于數據的集中管理,控制數據冗余,提高數據的利用率和一致性,又有利于應用程序的開發和維護。讀者可以在自己今后的工作中結合具體應用,認真加以體會和總結。 3 試述文件系統與數據庫系統的區別和聯系。答:文件系統與數據庫系統的區別是:文件系統面向某一應用程序,共享性差,冗余度大,數據獨立性差,記錄內有結構,整體無結構,由應用程序自己控制。數據庫系統面向現實世界,共享性高,冗余度小,具有較高的物理獨立性和一定的邏輯獨立性,整體結構化,用數據模型描述,由數據庫管理系統提供數據的安全性、完整性、并發控制和恢復能力。文件系統與數據庫系統的聯系是

7、:文件系統與數據庫系統都是計算機系統中管理數據的軟件。解析文件系統是操作系統的重要組成部分;而 DBMS 是獨立于操作系統的軟件。但是 DBMS 是在操作系統的基礎上實現的;數據庫中數據的組織和存儲是通過操作系統中的文件系統來實現的。4 舉出適合用文件系統而不是數據庫系統的例子;再舉出適合用數據庫系統的應用例子。答 :( l )適用于文件系統而不是數據庫系統的應用例子數據的備份、軟件或應用程序使用過程中的臨時數據存儲一般使用文件比較合適。早期功能比較簡單、比較固定的應用系統也適合用文件系統。 ( 2 )適用于數據庫系統而非文件系統的應用例子目前,幾乎所有企業或部門的信息系統都以數據庫為基礎,都

8、使用數據庫。例如,一個工廠的管理信息系統(其中會包括許多子系統,如庫存管理系統、物資采購系統、作業調度系統、設備管理系統、人事管理系統等),學校的學生管理系統,人事管理系統,圖書館的圖書管理系統,等等,都適合用數據庫系統。希望讀者能舉出自己了解的應用例子。5 試述數據庫系統的特點。答:數據庫系統的主要特點有: ( l )數據結構化數據庫系統實現整體數據的結構化,這是數據庫的主要特征之一,也是數據庫系統與文件系統的本質區別。解析注意這里的“整體夕兩個字。在數據庫系統中,數據不再針對某一個應用,而是面向全組織,具有整體的結構化。不僅數據是結構化的,而且數據的存取單位即一次可以存取數據的大小也很靈活

9、,可以小到某一個數據項(如一個學生的姓名),大到一組記錄(成千上萬個學生記錄)。而在文件系統中,數據的存取單位只有一個:記錄,如一個學生的完整記錄。 ( 2 )數據的共享性高,冗余度低,易擴充數據庫的數據不再面向某個應用而是面向整個系統,因此可以被多個用戶、多個應用以多種不同的語言共享使用。由于數據面向整個系統,是有結構的數據,不僅可以被多個應用共享使用,而且容易增加新的應用,這就使得數據庫系統彈性大,易于擴充。解析數據共享可以大大減少數據冗余,節約存儲空間,同時還能夠避免數據之間的不相容性與不一致性。所謂“數據面向某個應用”是指數據結構是針對某個應用設計的,只被這個應用程序或應用系統使用,可

10、以說數據是某個應用的“私有資源”。所謂“彈性大”是指系統容易擴充也容易收縮,即應用增加或減少時不必修改整個數據庫的結構,只需做很少的改動??梢匀≌w數據的各種子集用于不同的應用系統,當應用需求改變或增加時,只要重新選取不同的子集或加上一部分數據,便可以滿足新的需求。 ( 3 )數據獨立性高數據獨立性包括數據的物理獨立性和數據的邏輯獨立性。數據庫管理系統的模式結構和二級映像功能保證了數據庫中的數據具有很高的物理獨立性和邏輯獨立性。( 4 )數據由 DBMS 統一管理和控制數據庫的共享是并發的共享,即多個用戶可以同時存取數據庫中的數據甚至可以同時存取數據庫中同一個數據。為此, DBMS 必須提供統

11、一的數據控制功能,包括數據的安全性保護、數據的完整性檢查、并發控制和數據庫恢復。解析 DBMS 數據控制功能包括四個方面:數據的安全性保護:保護數據以防止不合法的使用造成的數據的泄密和破壞;數據的完整性檢查:將數據控制在有效的范圍內,或保證數據之間滿足一定的關系;并發控制:對多用戶的并發操作加以控制和協調,保證并發操作的正確性;數據庫恢復:當計算機系統發生硬件故障、軟件故障,或者由于操作員的失誤以及故意的破壞影響數據庫中數據的正確性,甚至造成數據庫部分或全部數據的丟失時,能將數據庫從錯誤狀態恢復到某一已知的正確狀態(亦稱為完整狀態或一致狀態)。下面可以得到“什么是數據庫”的一個定義:數據庫是長

12、期存儲在計算機內有組織的大量的共享的數據集合,它可以供各種用戶共享,具有最小冗余度和較高的數據獨立性。 DBMS 在數據庫建立、運用和維護時對數據庫進行統一控制,以保證數據的完整性、安全性,并在多用戶同時使用數據庫時進行并發控制,在發生故障后對系統進行恢復。數據庫系統的出現使信息系統從以加工數據的程序為中心轉向圍繞共享的數據庫為中心的新階段。 6 數據庫管理系統的主要功能有哪些?答:( l )數據庫定義功能; ( 2 )數據存取功能; ( 3 )數據庫運行管理; ( 4 )數據庫的建立和維護功能。7 試述數據模型的概念、數據模型的作用和數據模型的三個要素。答:數據模型是數據庫中用來對現實世界進

13、行抽象的工具,是數據庫中用于提供信息表示和操作手段的形式構架。一般地講,數據模型是嚴格定義的概念的集合。這些概念精確描述了系統的靜態特性、動態特性和完整性約束條件。因此數據模型通常由數據結構、數據操作和完整性約束三部分組成。 ( l )數據結構:是所研究的對象類型的集合,是對系統靜態特性的描述。 ( 2 )數據操作:是指對數據庫中各種對象(型)的實例(值)允許進行的操作的集合,包括操作及有關的操作規則,是對系統動態特性的描述。 ( 3 )數據的約束條件:是一組完整性規則的集合。完整性規則是給定的數據模型中數據及其聯系所具有的制約和依存規則,用以限定符合數據模型的數據庫狀態以及狀態的變化,以保證

14、數據的正確、有效、相容。解析數據模型是數據庫系統中最重要的概念之一。必須通過 概論 的學習真正掌握數據模型的概念和作用。數據模型是數據庫系統的基礎。任何一個 DBMS 都以某一個數據模型為基礎,或者說支持某一個數據模型。數據庫系統中,模型有不同的層次。根據模型應用的不同目的,可以將模型分成兩類或者說兩個層次:一類是概念模型,是按用戶的觀點來對數據和信息建模,用于信息世界的建模,強調語義表達能力,概念簡單清晰;另一類是數據模型,是按計算機系統的觀點對數據建模,用于機器世界,人們可以用它定義、操縱數據庫中的數據,一般需要有嚴格的形式化定義和一組嚴格定義了語法和語義的語言,并有一些規定和限制,便于在

15、機器上實現。8 試述概念模型的作用。答:概念模型實際上是現實世界到機器世界的一個中間層次。概念模型用于信息世界的建模,是現實世界到信息世界的第一層抽象,是數據庫設計人員進行數據庫設計的有力工具,也是數據庫設計人員和用戶之間進行交流的語言。9 定義并解釋概念模型中以下術語:實體,實體型,實體集,屬性,碼,實體聯系圖( E 一 R 圖)答:實體:客觀存在并可以相互區分的事物叫實體。實體型:具有相同屬性的實體具有相同的特征和性質,用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型。實體集:同型實體的集合稱為實體集。屬性:實體所具有的某一特性,一個實體可由若干個屬性來刻畫。碼:惟一標識實體的屬性集

16、稱為碼。實體聯系圖( E 一 R 圖):提供了表示實體型、屬性和聯系的方法: · 實體型:用矩形表示,矩形框內寫明實體名; · 屬性:用橢圓形表示,并用無向邊將其與相應的實體連接起來; · 聯系:用菱形表示,菱形框內寫明聯系名,并用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯系的類型( 1 : 1 , 1 : n 或 m : n )。10 試給出 3 個實際部門的 E 一 R 圖,要求實體型之間具有一對一、一對多、多對多各種不同的聯系。答:11 試給出一個實際部門的 E 一 R 圖,要求有三個實體型,而且 3 個實體型之間有多對多聯系。 3 個實體型之間的多

17、對多聯系和三個實體型兩兩之間的三個多對多聯系等價嗎?為什么?答:3 個實體型之間的多對多聯系和 3 個實體型兩兩之間的 3 個多對多聯系是不等價,因為它們擁有不同的語義。 3 個實體型兩兩之間的三個多對多聯系如下圖所示。12 學校中有若干系,每個系有若干班級和教研室,每個教研室有若干教員,其中有的教授和副教授每人各帶若干研究生;每個班有若干學生,每個學生選修若干課程,每門課可由若干學生選修。請用 E 一 R 圖畫出此學校的概念模型。答:13 某工廠生產若干產品,每種產品由不同的零件組成,有的零件可用在不同的產品上。這些零件由不同的原材料制成,不同零件所用的材料可以相同。這些零件按所屬的不同產品

18、分別放在倉庫中,原材料按照類別放在若干倉庫中。請用 E 一 R 圖畫出此工廠產品、零件、材料、倉庫的概念模型。答:14 試述層次模型的概念,舉出三個層次模型的實例。答: ( l )教員學生層次數據庫模型( 2 )行政機構層次數據庫模型( 3 )行政區域層次數據庫模型15今有一個層次數據庫實例,試用子女一兄弟鏈接法和層次序列鏈接法畫出它的存儲結構示意圖。答:子女兄弟鏈接法:層次序列鏈接法:16 試述網狀模型的概念,舉出三個網狀模型的實例。答:滿足下面兩個條件的基本層次聯系集合為網狀模型。 ( l )允許一個以上的結點無雙親; ( 2 )一個結點可以有多于一個的雙親。實例 1 : 實例 2 : 實

19、例 3 : 17 試述網狀、層次數據庫的優缺點。答:層次模型的優點主要有: ( l )模型簡單,對具有一對多層次關系的部門描述非常自然、直觀,容易理解,這是層次數據庫的突出優點; ( 2 )用層次模型的應用系統性能好,特別是對于那些實體間聯系是固定的且預先定義好的應用,采用層次模型來實現,其性能優于關系模型; ( 3 )層次數據模型提供了良好的完整性支持。層次模型的缺點主要有: ( l )現實世界中很多聯系是非層次性的,如多對多聯系、一個結點具有多個雙親等,層次模型不能自然地表示這類聯系,只能通過引入冗余數據或引入虛擬結點來解決; ( 2 )對插入和刪除操作的限制比較多; ( 3 )查詢子女結

20、點必須通過雙親結點。網狀數據模型的優點主要有: ( l )能夠更為直接地描述現實世界,如一個結點可以有多個雙親; ( 2 )具有良好的性能,存取效率較高。網狀數據模型的缺點主要有: ( l )結構比較復雜,而且隨著應用環境的擴大,數據庫的結構就變得越來越復雜,不利于最終用戶掌握; ( 2 )其 DDL 、 DML 語言復雜,用戶不容易使用。由于記錄之間聯系是通過存取路徑實現的,應用程序在訪問數據時必須選擇適當的存取路徑。因此,用戶必須了解系統結構的細節,加重了編寫應用程序的負擔。18 試述關系模型的概念,定義并解釋以下術語: ( l )關系( 2 )屬性( 3 )域( 4 )元組 ( 5 )主

21、碼( 6 )分量( 7 )關系模式答:關系模型由關系數據結構、關系操作集合和關系完整性約束三部分組成。在用戶觀點下,關系模型中數據的邏輯結構是一張二維表,它由行和列組成。 ( l )關系:一個關系對應通常說的一張表; ( 2 )屬性:表中的一列即為一個屬性; ( 3 )域:屬性的取值范圍; ( 4 )元組:表中的一行即為一個元組; ( 5 )主碼:表中的某個屬性組,它可以惟一確定一個元組; ( 6 )分量:元組中的一個屬性值; ( 7 )關系模式:對關系的描述,一般表示為關系名(屬性 1 ,屬性 2 , ,屬性 n ) 19 試述關系數據庫的特點。答:關系數據模型具有下列優點: ( l )關系

22、模型與非關系模型不同,它是建立在嚴格的數學概念的基礎上的。 ( 2 )關系模型的概念單一,無論實體還是實體之間的聯系都用關系表示,操作的對象和操作的結果都是關系,所以其數據結構簡單、清晰,用戶易懂易用。 ( 3 )關系模型的存取路徑對用戶透明,從而具有更高的數據獨立性、更好的安全保密性,也簡化了程序員的工作和數據庫開發建立的工作。當然,關系數據模型也有缺點,其中最主要的缺點是,由于存取路徑對用戶透明,查詢效率往往不如非關系數據模型。因此為了提高性能,必須對用戶的查詢請求進行優化,增加了開發數據庫管理系統的難度。 20 試述數據庫系統三級模式結構,這種結構的優點是什么?答:數據庫系統的三級模式結

23、構由外模式、模式和內模式組成。(參見書上圖 1 . 29 ) 外模式,亦稱子模式或用戶模式,是數據庫用戶(包括應用程序員和最終用戶)能夠看見和使用的局部數據的邏輯結構和特征的描述,是數據庫用戶的數據視圖,是與某一應用有關的數據的邏輯表示。模式,亦稱邏輯模式,是數據庫中全體數據的邏輯結構和特征的描述,是所有用戶的公共數據視圖。模式描述的是數據的全局邏輯結構。外模式涉及的是數據的局部邏輯結構,通常是模式的子集。內模式,亦稱存儲模式,是數據在數據庫系統內部的表示,即對數據的物理結構和存儲方式的描述。數據庫系統的三級模式是對數據的三個抽象級別,它把數據的具體組織留給 DBMs 管理,使用戶能邏輯抽象地

24、處理數據,而不必關心數據在計算機中的表示和存儲。為了能夠在內部實現這三個抽象層次的聯系和轉換,數據庫系統在這三級模式之間提供了兩層映像:外模式模式映像和模式內模式映像。正是這兩層映像保證了數據庫系統中的數據能夠具有較高的邏輯獨立性和物理獨立性。21 定義并解釋以下術語:模式、外模式、內模式、 DDL 、 DML 模式、外模式、內模式,亦稱邏輯模式,是數據庫中全體數據的邏輯結構和特征的描述,是所有用戶的公共數據視圖。模式描述的是數據的全局邏輯結構。外模式涉及的是數據的局部邏輯結構,通常是模式的子集。內模式,亦稱存儲模式,是數據在數據庫系統內部的表示,即對數據的物理結構和存儲方式的描述。 DDL

25、:數據定義語言,用來定義數據庫模式、外模式、內模式的語言。 DML :數據操縱語言,用來對數據庫中的數據進行查詢、插入、刪除和修改的語句。 22 什么叫數據與程序的物理獨立性?什么叫數據與程序的邏輯獨立性?為什么數據庫系統具有數據與程序的獨立性?答:數據與程序的邏輯獨立性:當模式改變時(例如增加新的關系、新的屬性、改變屬性的數據類型等),由數據庫管理員對各個外模式模式的映像做相應改變,可以使外模式保持不變。應用程序是依據數據的外模式編寫的,從而應用程序不必修改,保證了數據與程序的邏輯獨立性,簡稱數據的邏輯獨立性。數據與程序的物理獨立性:當數據庫的存儲結構改變了,由數據庫管理員對模式內模式映像做

26、相應改變,可以使模式保持不變,從而應用程序也不必改變,保證了數據與程序的物理獨立性,簡稱數據的物理獨立性。數據庫管理系統在三級模式之間提供的兩層映像保證了數據庫系統中的數據能夠具有較高的邏輯獨立性和物理獨立性。 23 試述數據庫系統的組成。答:數據庫系統一般由數據庫、數據庫管理系統(及其開發工具)、應用系統、數據庫管理員和用戶構成。24 . DBA 的職責是什么?答:負責全面地管理和控制數據庫系統。具體職責包括: 決定數據庫的信息內容和結構; 決定數據庫的存儲結構和存取策略; 定義數據的安全性要求和完整性約束條件; 監督和控制數據庫的使用和運行; 改進和重組數據庫系統。 25 系統分析員、數據

27、庫設計人員、應用程序員的職責是什么?答系統分析員負責應用系統的需求分析和規范說明,系統分析員要和用戶及 DBA 相結合,確定系統的硬件、軟件配置,并參與數據庫系統的概要設計。數據庫設計人員負責數據庫中數據的確定、數據庫各級模式的設計。數據庫設計人員必須參加用戶需求調查和系統分析,然后進行數據庫設計。在很多情況下,數據庫設計人員就由數據庫管理員擔任。應用程序員負責設計和編寫應用系統的程序模塊,并進行調試和安裝。第2章 關系數據庫1 試述關系模型的三個組成部分。答:關系模型由關系數據結構、關系操作集合和關系完整性約束三部分組成。2 試述關系數據語言的特點和分類。答:關系數據語言可以分為三類:關系代

28、數語言。關系演算語言:元組關系演算語言和域關系演算語言。SQL:具有關系代數和關系演算雙重特點的語言。這些關系數據語言的共同特點是,語言具有完備的表達能力,是非過程化的集合操作語言,功能強,能夠嵌入高級語言中使用。4 試述關系模型的完整性規則。在參照完整性中,為什么外部碼屬性的值也可以為空?什么情況下才可以為空?答:實體完整性規則是指若屬性A是基本關系R的主屬性,則屬性A不能取空值。若屬性(或屬性組)F是基本關系R的外碼,它與基本關系S的主碼Ks相對應(基本關系R和S不一定是不同的關系),則對于R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值);或者等于S中某個元組的主碼值。即

29、屬性F本身不是主屬性,則可以取空值,否則不能取空值。5設有一個SPJ數據庫,包括S,P,J,SPJ四個關系模式:1)求供應工程J1零件的供應商號碼SNO:Sno(Sno=J1(SPJ))2)求供應工程J1零件P1的供應商號碼SNO:Sno(Sno=J1Pno=P1(SPJ)3)求供應工程J1零件為紅色的供應商號碼SNO:Sno(Pno=P1 (COLOR=紅 (P)SPJ))4)求沒有使用天津供應商生產的紅色零件的工程號JNO:Jno(SPJ)- JNO(city=天津Color=紅 (SSPJP)5)求至少用了供應商S1所供應的全部零件的工程號JNO:Jno,Pno(SPJ)÷ P

30、no(Sno=S1 (SPJ)6試述等值連接與自然連接的區別和聯系。答:連接運算符是“=”的連接運算稱為等值連接。它是從關系R與S的廣義笛卡爾積中選取A,B屬性值相等的那些元組自然連接是一種特殊的等值連接,它要求兩個關系中進行比較的分量必須是相同的屬性組,并且在結果中把重復的屬性列去掉。7關系代數的基本運算有哪些 ? 如何用這些基本運算來表示其他運算? 答:并、差、笛卡爾積、投影和選擇5種運算為基本的運算。其他3種運算,即交、連接和除,均可以用這5種基本運算來表達。第3章 關系數據庫標準語言SQL1 試述 sQL 語言的特點。答:(l)綜合統一。 sQL 語言集數據定義語言 DDL 、數據操縱

31、語言 DML 、數據控制語言 DCL 的功能于一體。(2)高度非過程化。用 sQL 語言進行數據操作,只要提出“做什么”,而無需指明“怎么做”,因此無需了解存取路徑,存取路徑的選擇以及 sQL 語句的操作過程由系統自動完成。 (3)面向集合的操作方式。 sQL 語言采用集合操作方式,不僅操作對象、查找結果可以是元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。(4)以同一種語法結構提供兩種使用方式。 sQL 語言既是自含式語言,又是嵌入式語言。作為自含式語言,它能夠獨立地用于聯機交互的使用方式;作為嵌入式語言,它能夠嵌入到高級語言程序中,供程序員設計程序時使用。(5)語言簡捷,

32、易學易用。2 試述 sQL 的定義功能。 sQL 的數據定義功能包括定義表、定義視圖和定義索引。 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

33、( 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) ;

34、 建 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 )求供應工程

35、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 )求至少用了供應商

36、 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,C

37、ITY FROM S(2)找出所有零件的名稱、顏色、重量。SELECT PNAME,COLOR,WEIGHT FROM P(3)找出使用供應商S1所供應零件的工程號碼。 SELECT DIST JNO FROM SPJ WHERE SNO='S1'(4)找出工程項目J2使用的各種零件的名稱及其數量。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=

38、'上海'(6)出使用上海產的零件的工程名稱。SELECT JNAME FROM SPJ,S,JWHERE 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 S

39、PJ,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的記錄,并從供應情況關系中刪除相應的記錄。

40、 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 什么是基本表?什么是視圖?答兩者的區別和聯系是什么?基本表是本身獨立存在的表,在 sQL 中一個關系就對應一個表。視圖是從一個或幾個基本表導出的表。視圖本身不獨立存儲在數據庫中,是一個虛表。即數據庫中只存放視圖的定義而不存放視圖對應的數據,這些數據仍存放在導出視圖的基本表中。視圖在概念上與基本表等同,用戶可以如同基本表那樣使用視圖,可以在視圖

41、上再定義視圖。 7 試述視圖的優點。答 ( l )視圖能夠簡化用戶的操作; ( 2 )視圖使用戶能以多種角度看待同一數據; ( 3 )視圖對重構數據庫提供了一定程度的邏輯獨立性; ( 4 )視圖能夠對機密數據提供安全保護。8 所有的視圖是否都可以更新?為什么?答:不是。視圖是不實際存儲數據的虛表,因此對視圖的更新,最終要轉換為對基本表的更新。因為有些視圖的更新不能惟一有意義地轉換成對相應基本表的更新,所以,并不是所有的視圖都是可更新的.9 哪類視圖是可以更新的?哪類視圖是不可更新的?各舉一例說明。答:基本表的行列子集視圖一般是可更新的。若視圖的屬性來自集函數、表達式,則該視圖肯定是不可以更新的

42、。10 試述某個你熟悉的實際系統中對視圖更新的規定。答VFP11請為三建工程項目建立一個供應情況的視圖,包括供應商代碼(SNO)、零件代碼(PNO)、供應數量(QTY)。CREATE VIEW VSP AS SELECT SNO,PNO,QTY FROM SPJ,J WHERE SPJ.JNO=J.JNO AND J.JNAME='三建'針對該視圖VSP完成下列查詢:(1)找出三建工程項目使用的各種零件代碼及其數量。SELECT DIST PNO,QTY FROM VSP(2)找出供應商S1的供應情況。SELECT DIST * FROM VSP WHERE SNO='

43、S1'第4章 數據庫安全性1 什么是數據庫的安全性?答:數據庫的安全性是指保護數據庫以防止不合法的使用所造成的數據泄露、更改或破壞。2 數據庫安全性和計算機系統的安全性有什么關系?答:安全性問題不是數據庫系統所獨有的,所有計算機系統都有這個問題。只是在數據庫系統中大量數據集中存放,而且為許多最終用戶直接共享,從而使安全性問題更為突出。系統安全保護措施是否有效是數據庫系統的主要指標之一。數據庫的安全性和計算機系統的安全性,包括操作系統、網絡系統的安全性是緊密聯系、相互支持的,3 試述可信計算機系統評測標準的情況,試述TDI / TCSEC 標準的基本內容。答:各個國家在計算機安全技術方面

44、都建立了一套可信標準。目前各國引用或制定的一系列安全標準中,最重要的是美國國防部(DoD )正式頒布的 DoD 可信計算機系統評估標準 (伽sted Co 哪uter system Evaluation criteria ,簡稱TcsEc ,又稱桔皮書)。(TDI / TCSEC 標準是將TcsEc 擴展到數據庫管理系統,即 可信計算機系統評估標準關于可信數據庫系統的解釋 (Tmsted Database Interpretation 簡稱TDI , 又稱紫皮書)。在TDI 中定義了數據庫管理系統的設計與實現中需滿足和用以進行安全性級別評估的標準。TDI 與TcsEc 一樣,從安全策略、責任、

45、保證和文檔四個方面來描述安全性級別劃分的指標。每個方面又細分為若干項。4 試述TcsEC ( TDI )將系統安全級別劃分為4 組7 個等級的基本內容。答:根據計算機系統對安全性各項指標的支持情況,TCSEC ( TDI )將系統劃分為四組(division ) 7 個等級,依次是D 、C ( CI , CZ )、B ( BI , BZ , B3 )、A ( AI ) ,按系統可靠或可信程度逐漸增高。這些安全級別之間具有一種偏序向下兼容的關系,即較高安全性級別提供的安全保護包含較低級別的所有保護要求,同時提供更多或更完善的保護能力。各個等級的基本內容為:D 級D 級是最低級別。一切不符合更高標

46、準的系統,統統歸于D 組。Cl 級只提供了非常初級的自主安全保護。能夠實現對用戶和數據的分離,進行自主存取控制(DAC ) ,保護或限制用戶權限的傳播。C2 級實際是安全產品的最低檔次,提供受控的存取保護,即將Cl 級的DAC 進一步細化,以個人身份注冊負責,并實施審計和資源隔離。Bl 級標記安全保護。對系統的數據加以標記,并對標記的主體和客體實施強制存取控制(MAC )以及審計等安全機制。B2 級結構化保護。建立形式化的安全策略模型并對系統內的所有主體和客體實施DAC 和MACo B3 級安全域。該級的TCB 必須滿足訪問監控器的要求,審計跟蹤能力更強,并提供系統恢復過程。Al 級驗證設計,

47、即提供B3 級保護的同時給出系統的形式化設計說明和驗證以確信各安全保護真正實現。5 試述實現數據庫安全性控制的常用方法和技術。答:實現數據庫安全性控制的常用方法和技術有:( l )用戶標識和鑒別:該方法由系統提供一定的方式讓用戶標識自己的名字或身份。每次用戶要求進入系統時,由系統進行核對,通過鑒定后才提供系統的使用權。( 2 )存取控制:通過用戶權限定義和合法權檢查確保只有合法權限的用戶訪問數據庫,所有未被授權的人員無法存取數據。例如CZ 級中的自主存取控制( DAC ) , Bl 級中的強制存取控制(MAC )。( 3 )視圖機制:為不同的用戶定義視圖,通過視圖機制把要保密的數據對無權存取的

48、用戶隱藏起來,從而自動地對數據提供一定程度的安全保護。( 4 )審計:建立審計日志,把用戶對數據庫的所有操作自動記錄下來放入審計日志中,DBA 可以利用審計跟蹤的信息,重現導致數據庫現有狀況的一系列事件,找出非法存取數據的人、時間和內容等。( 5 )數據加密:對存儲和傳輸的數據進行加密處理,從而使得不知道解密算法的人無法獲知數據的內容。6 什么是數據庫中的自主存取控制方法和強制存取控制方法? 答:自主存取控制方法:定義各個用戶對不同數據對象的存取權限。當用戶對數據庫訪問時首先檢查用戶的存取權限。防止不合法用戶對數據庫的存取。強制存取控制方法:每一個數據對象被(強制地)標以一定的密級,每一個用戶

49、也被(強制地)授予某一個級別的許可證。系統規定只有具有某一許可證級別的用戶才能存取某一個密級的數據對象。7 .SQL 語言中提供了哪些數據控制(自主存取控制)的語句?請試舉幾例說明它們的使用方法。答:SQL 中的自主存取控制是通過GRANT語句和REVOKE語句來實現的。如:GRANT SELECT , INSERT ON Student TO 王平WITH GRANT OPTION ; 就將Student 表的SELECT 和INSERT 權限授予了用戶王平,后面的“WITH GRANT OPTION ”子句表示用戶王平同時也獲得了“授權”的權限,即可以把得到的權限繼續授予其他用戶。REVO

50、KE 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 )

51、每個職工只對自己的記錄有SELECT 權力。GRANT SELECT ON 職工WHEN USER()=NAMETO ALL;( d )用戶劉星對職工表有SELECT 權力,對工資字段具有更新權力。GRANT SELECT,UPDATE(工資) ON 職工TO 劉星 ( e )用戶張新具有修改這兩個表的結構的權力。GRANT ALTER TABLE ON 職工,部門TO 張新; ( f )用戶周平具有對兩個表所有權力(讀,插,改,刪數據),并具有給其他用戶授權的權力。GRANT ALL PRIVILIGES ON 職工,部門TO 周平WITH GRANT OPTION;( g )用戶楊蘭具有從

52、每個部門職工中SELECT 最高工資、最低工資、平均工資的權力,他不能查看每個人的工資。CREATE VIEW 部門工資 ASSELECT 部門.名稱,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 O

53、N 職工WHEN USER ( ) =NAMEFROM 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. 為什么強制存取控制提供了更高級別的數據庫安全性?答:強制存取控制(MAC )是對數據本身進行密級標記,無論數據如何復制,標記與數據是一個不可分的整體,只有符合密級標記要求的用戶才可以操縱數

54、據,從而提供了更高級別的安全性。11 理解并解釋MAC 機制中主體、客體、敏感度標記的含義。答:主體是系統中的活動實體,既包括DBMS 所管理的實際用戶,也包括代表用戶的各進程??腕w是系統中的被動實體,是受主體操縱的,包括文件、基表、索引、視圖等。對于主體和 客體,DBMS 為它們每個實例(值)指派一個敏感度標記(Label )。敏感度標記被分成若干級別,例如絕密(Top Secret )、機密(Secret )· 可信( Confidential )、公開(PubliC )等。主體的敏感度標記稱為許可證級別(ClearanCe 玫vel ) ,客體的敏感度標記稱為密級(Classi

55、fication Level )。13 什么是數據庫的審計功能,為什么要提供審計功能?答:審計功能是指DBMS 的審計模塊在用戶對數據庫執行操作的同時把所有操作自動記錄到系統的審計日志中。因為任何系統的安全保護措施都不是完美無缺的,蓄意盜竊破壞數據的人總可能存在。利用數據庫的審計功能,DBA 可以根據審計跟蹤的信息,重現導致數據庫現有狀況的一系列事件,找出非法存取數據的人、時間和內容等。14 統計數據庫中存在何種特殊的安全性問題?答:統計數據庫允許用戶查詢聚集類型的信息,如合計、平均值、最大值、最小值等,不允許查詢單個記錄信息。但是,人們可以從合法的查詢中推導出不合法的信息,即可能存在隱蔽的信

56、息通道,這是統計數據庫要研究和解決的特殊的安全性問題。第5章 數據庫完整性1什么是數據庫的完整性?答:數據庫的完整性是指數據的正確性和相容性。2 數據庫的完整性概念與數據庫的安全性概念有什么區別和聯系?答:數據的完整性和安全性是兩個不同的概念,但是有一定的聯系。前者是為了防止數據庫中存在不符合語義的數據,防止錯誤信息的輸入和輸出,即所謂垃圾進垃圾出( Garba : e In Garba : e out )所造成的無效操作和錯誤結果。后者是保護數據庫防止惡意的破壞和非法的存取。也就是說,安全性措施的防范對象是非法用戶和非法操作,完整性措施的防范對象是不合語義的數據。3 什么是數據庫的完整性約束

57、條件?可分為哪幾類?答完整性約束條件是指數據庫中的數據應該滿足的語義約束條件。一般可以分為六類:靜態列級約束、靜態元組約束、靜態關系約束、動態列級約束、動態元組約束、動態關系約束。靜態列級約束是對一個列的取值域的說明,包括以下幾個方面: ( l )對數據類型的約束,包括數據的類型、長度、單位、精度等; ( 2 )對數據格式的約束; ( 3 )對取值范圍或取值集合的約束; ( 4 )對空值的約束; ( 5 )其他約束。靜態元組約束就是規定組成一個元組的各個列之間的約束關系,靜態元組約束只局限在單個元組上。靜態關系約束是在一個關系的各個元組之間或者若干關系之間常常存在各種聯系或約束。常見的靜態關系約束有: ( l )實體完整性約束; ( 2 )參照完整性約束; ( 3 )函數依賴約束。動態列級約束是修改列定義或列值時應滿足的約束條件,包括下面兩方面: ( l )修改列定義時的約束; ( 2 )修改列值時的約束。動態元組約束是指修改某個元組的值時需要參照其舊值,并且新舊值之間需要滿足某種約束條件。動態關系約束是加在關系變化前后狀態上的限制條件,例如事務一致性、原子性等約束條件。4 . DBMS 的完整性

溫馨提示

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

評論

0/150

提交評論