數(shù)據(jù)庫系統(tǒng)概論第五版課后習(xí)題答案王珊 薩師喧版_第1頁
數(shù)據(jù)庫系統(tǒng)概論第五版課后習(xí)題答案王珊 薩師喧版_第2頁
數(shù)據(jù)庫系統(tǒng)概論第五版課后習(xí)題答案王珊 薩師喧版_第3頁
數(shù)據(jù)庫系統(tǒng)概論第五版課后習(xí)題答案王珊 薩師喧版_第4頁
數(shù)據(jù)庫系統(tǒng)概論第五版課后習(xí)題答案王珊 薩師喧版_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第二章 關(guān)系數(shù)據(jù)庫1 試述關(guān)系模型的三個組成部分。答:關(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)系演算語言和域關(guān)系演算語言。SQL:具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言。這些關(guān)系數(shù)據(jù)語言的共同特點(diǎn)是,語言具有完備的表達(dá)能力,是非過程化的集合操作語言,功能強(qiáng),能夠嵌入高級語言中使用。3 (略)4 5 . 述關(guān)系模型的完整性規(guī)則。在參照完整性中,為什么外部碼屬性的值也可以為空?什么情況下才可以為空?答:實(shí)體完整性規(guī)則是指若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。若屬性(或

2、屬性組)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對于R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值);或者等于S中某個元組的主碼值。即屬性F本身不是主屬性,則可以取空值,否則不能取空值。6設(shè)有一個SPJ數(shù)據(jù)庫,包括S,P,J,SPJ四個關(guān)系模式:1)求供應(yīng)工程J1零件的供應(yīng)商號碼SNO:Sno(Jno=J1(SPJ))2)求供應(yīng)工程J1零件P1的供應(yīng)商號碼SNO:Sno(Jno=J1Pno=P1(SPJ)3)求供應(yīng)工程J1零件為紅色的供應(yīng)商號碼SNO:Sno(Sno,Pno(Jno=J1 (SPJ)Pno(COLOR=紅 (

3、P))4)求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號JNO:Jno(SPJ)- JNO(city=天津Color=紅 (SSPJP)5)求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號JNO:Jno,Pno(SPJ)÷ Pno(Sno=S1 (SPJ)7. 試述等值連接與自然連接的區(qū)別和聯(lián)系。答:連接運(yùn)算符是“=”的連接運(yùn)算稱為等值連接。它是從關(guān)系R與S的廣義笛卡爾積中選取A,B屬性值相等的那些元組自然連接是一種特殊的等值連接,它要求兩個關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉。8關(guān)系代數(shù)的基本運(yùn)算有哪些 ? 如何用這些基本運(yùn)算來表示其他運(yùn)算? 答:并、差、

4、笛卡爾積、投影和選擇5種運(yùn)算為基本的運(yùn)算。其他3種運(yùn)算,即交、連接和除,均可以用這5種基本運(yùn)算來表達(dá)。第三章 關(guān)系數(shù)據(jù)庫語言SQL1 試述 sQL 語言的特點(diǎn)。答:(l)綜合統(tǒng)一。 sQL 語言集數(shù)據(jù)定義語言 DDL 、數(shù)據(jù)操縱語言 DML 、數(shù)據(jù)控制語言 DCL 的功能于一體。(2)高度非過程化。用 sQL 語言進(jìn)行數(shù)據(jù)操作,只要提出“做什么”,而無需指明“怎么做”,因此無需了解存取路徑,存取路徑的選擇以及 sQL 語句的操作過程由系統(tǒng)自動完成。 (3)面向集合的操作方式。 sQL 語言采用集合操作方式,不僅操作對象、查找結(jié)果可以是元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的

5、集合。(4)以同一種語法結(jié)構(gòu)提供兩種使用方式。 sQL 語言既是自含式語言,又是嵌入式語言。作為自含式語言,它能夠獨(dú)立地用于聯(lián)機(jī)交互的使用方式;作為嵌入式語言,它能夠嵌入到高級語言程序中,供程序員設(shè)計程序時使用。(5)語言簡捷,易學(xué)易用。2. 3 (1) select * from S where A='10' (2) select 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

6、 * from S ,T where S.A<T.E; (6) select S.C,S.D,T.* from S ,T ;4用 sQL 語句建立第二章習(xí)題 6中的 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(

7、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 個表用 sQL 語言完成第二章習(xí)題6中的查詢。 ( l )求供應(yīng)工程 Jl 零件的供應(yīng)商號碼 SNO

8、;SELECT DIST SNO FROM SPJ WHERE JNO=J1 ( 2 )求供應(yīng)工程 Jl 零件 Pl 的供應(yīng)商號碼 SNO ; SELECT DIST SNO FROM SPJ WHERE JNO='J1' AND PNO='P1'( 3 )求供應(yīng)工程 Jl 零件為紅色的供應(yīng)商號碼 SNO ; SELECT SNO FROM SPJ,P WHERE JNO='J1' AND SPJ.PNO=P.PNO AND COLOR='紅'( 4 )求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號 JNO ;SELECT DIST

9、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)的全部零件的工程號 JNO ;由于VFP不允許子查詢嵌套太深,將查詢分為兩步A、查詢S1供應(yīng)商供應(yīng)的零件號SELECT DIST PNO FROM SPJ WHERE SNO='S1'結(jié)果是(P1,P2)B、查詢哪一個工程既使用P1零件又使用P2零件。SELECT J

10、NO FROM SPJ WHERE PNO='P1' AND JNO IN (SELECT JNO FROM SPJ WHERE PNO='P2')5針對上題中的四個表試用SQL語言完成以下各項操作:(1)找出所有供應(yīng)商的姓名和所在城市。 SELECT SNAME,CITY FROM S(2)找出所有零件的名稱、顏色、重量。SELECT PNAME,COLOR,WEIGHT FROM P(3)找出使用供應(yīng)商S1所供應(yīng)零件的工程號碼。 SELECT DIST JNO FROM SPJ WHERE SNO='S1'(4)找出工程項目J2使用的各種零件

11、的名稱及其數(shù)量。SELECT PNAME,QTY FROM SPJ,P WHERE P.PNO=SPJ.PNO AND SPJ.JNO='J2'(5)找出上海廠商供應(yīng)的所有零件號碼。SELECT PNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND CITY='上海'(6)出使用上海產(chǎn)的零件的工程名稱。SELECT JNAME FROM SPJ,S,JWHERE S.SNO=SPJ.SNO AND S.CITY='上海' AND J.JNO=SPJ.JNO(7)找出沒有使用天津產(chǎn)的零件的工程號碼。注意: SELECT DI

12、SP 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的

13、零件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)商號是S2的記錄,并從供應(yīng)情況關(guān)系中刪除相應(yīng)的記錄。 A、DELETE FROM S WHERE SNO=S2 B、DELETE FROM SPJ WHERE SNO=S2(11)請將(S2,J6,P4,200)插入供應(yīng)情況關(guān)系。 INSERT INTO SPJ VALUES(S2,J6,P4,200)6 什么是基本表?什么是視圖?兩者的區(qū)別和聯(lián)系是

14、什么?答:基本表是本身獨(dú)立存在的表,在 sQL 中一個關(guān)系就對應(yīng)一個表。視圖是從一個或幾個基本表導(dǎo)出的表。視圖本身不獨(dú)立存儲在數(shù)據(jù)庫中,是一個虛表。即數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在導(dǎo)出視圖的基本表中。視圖在概念上與基本表等同,用戶可以如同基本表那樣使用視圖,可以在視圖上再定義視圖。 7 試述視圖的優(yōu)點(diǎn)。答 ( l )視圖能夠簡化用戶的操作; ( 2 )視圖使用戶能以多種角度看待同一數(shù)據(jù); ( 3 )視圖對重構(gòu)數(shù)據(jù)庫提供了一定程度的邏輯獨(dú)立性; ( 4 )視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù)。8 哪類視圖是可以更新的?哪類視圖是不可更新的?各舉一例說明。答:基本表的行

15、列子集視圖一般是可更新的。若視圖的屬性來自集合函數(shù)、表達(dá)式,則該視圖肯定是不可以更新的。所有的視圖是否都可以更新?為什么?答:不是。視圖是不實(shí)際存儲數(shù)據(jù)的虛表,因此對視圖的更新,最終要轉(zhuǎn)換為對基本表的更新。因為有些視圖的更新不能惟一有意義地轉(zhuǎn)換成對相應(yīng)基本表的更新,所以,并不是所有的視圖都是可更新的.9 請為三建工程項目建立一個供應(yīng)情況的視圖,包括供應(yīng)商代碼(SNO)、零件代碼(PNO)、供應(yīng)數(shù)量(QTY)。CREATE VIEW VSP AS SELECT SNO,SPJ.PNO,QTY FROM SPJ,J WHERE SPJ.JNO=J.JNO AND J.JNAME='三建&#

16、39;針對該視圖VSP完成下列查詢:(1)找出三建工程項目使用的各種零件代碼及其數(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 數(shù)據(jù)庫安全性和計算機(jī)系統(tǒng)的安全性有什么關(guān)系?答:安全性問題不是數(shù)據(jù)庫系統(tǒng)所獨(dú)有的,所有計算機(jī)系統(tǒng)都有這個問題。只是在數(shù)據(jù)庫系統(tǒng)中大量數(shù)據(jù)集中存放,而且為許多最終用戶直接共享,從而使安全性問題更為突出。系統(tǒng)安

17、全保護(hù)措施是否有效是數(shù)據(jù)庫系統(tǒng)的主要指標(biāo)之一。數(shù)據(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ù)有:( l )用戶標(biāo)識和鑒別:該方法由系統(tǒng)提供一定的方式讓用戶標(biāo)識自己的名字或身份。每次用戶要求進(jìn)入系統(tǒng)時,由系統(tǒng)進(jìn)行核對,通過鑒定后才提供系統(tǒng)的使用權(quán)。( 2 )存取控制:通過用戶權(quán)限定義和合法權(quán)檢查確保只有合法權(quán)限的用戶訪問數(shù)據(jù)庫,所有未被授權(quán)的人員無法存取數(shù)據(jù)。例如CZ 級中的自主存取控制( DAC ) , Bl 級中的強(qiáng)制存取控制(MAC )。( 3 )視圖機(jī)制:為不

18、同的用戶定義視圖,通過視圖機(jī)制把要保密的數(shù)據(jù)對無權(quán)存取的用戶隱藏起來,從而自動地對數(shù)據(jù)提供一定程度的安全保護(hù)。( 4 )審計:建立審計日志,把用戶對數(shù)據(jù)庫的所有操作自動記錄下來放入審計日志中,DBA 可以利用審計跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時間和內(nèi)容等。( 5 )數(shù)據(jù)加密:對存儲和傳輸?shù)臄?shù)據(jù)進(jìn)行加密處理,從而使得不知道解密算法的人無法獲知數(shù)據(jù)的內(nèi)容。5什么是數(shù)據(jù)庫中的自主存取控制方法和強(qiáng)制存取控制方法? 答:自主存取控制方法:定義各個用戶對不同數(shù)據(jù)對象的存取權(quán)限。當(dāng)用戶對數(shù)據(jù)庫訪問時首先檢查用戶的存取權(quán)限。防止不合法用戶對數(shù)據(jù)庫的存取。強(qiáng)制存取控制方法

19、:每一個數(shù)據(jù)對象被(強(qiáng)制地)標(biāo)以一定的密級,每一個用戶也被(強(qiáng)制地)授予某一個級別的許可證。系統(tǒng)規(guī)定只有具有某一許可證級別的用戶才能存取某一個密級的數(shù)據(jù)對象。6. (1) GRANT ALL PRIVILEGES ON Student,Class TO U1WITH 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 WI

20、TH ADMIN OPTION ; 7 .SQL 語言中提供了哪些數(shù)據(jù)控制(自主存取控制)的語句?請試舉幾例說明它們的使用方法。答:SQL 中的自主存取控制是通過GRANT語句和REVOKE語句來實(shí)現(xiàn)的。如:GRANT SELECT , INSERT ON Student TO 王平WITH GRANT OPTION ; 就將Student 表的SELECT 和INSERT 權(quán)限授予了用戶王平,后面的“WITH GRANT OPTION ”子句表示用戶王平同時也獲得了“授權(quán)”的權(quán)限,即可以把得到的權(quán)限繼續(xù)授予其他用戶。REVOKE INSERT ON Student FROM 王平CASCAD

21、E ; 就將Student 表的INSERT 權(quán)限從用戶王平處收回,選項CASCADE 表示,如果用戶王平將Student 的INSERT 權(quán)限又轉(zhuǎn)授給了其他用戶,那么這些權(quán)限也將從其他用戶處收回。7請用SQL的GRANT 和REVOKE語句(加上視圖機(jī)制)完成以下授權(quán)定義或存取控制功能:( a )用戶王明對兩個表有SELECT 權(quán)力。GRANT SELECT ON 職工,部門TO 王明( b )用戶李勇對兩個表有INSERT 和DELETE 權(quán)力。GRANT INSERT,DELETE ON 職工,部門TO 李勇( c ) 每個職工只對自己的記錄有SELECT 權(quán)力。GRANT SELECT

22、 ON 職工WHEN USER()=NAMETO ALL;( d )用戶劉星對職工表有SELECT 權(quán)力,對工資字段具有更新權(quán)力。GRANT SELECT,UPDATE(工資) ON 職工TO 劉星 ( e )用戶張新具有修改這兩個表的結(jié)構(gòu)的權(quán)力。GRANT ALTER TABLE ON 職工,部門TO 張新; ( f )用戶周平具有對兩個表所有權(quán)力(讀,插,改,刪數(shù)據(jù)),并具有給其他用戶授權(quán)的權(quán)力。GRANT ALL PRIVILIGES ON 職工,部門TO 周平WITH GRANT OPTION;( g )用戶楊蘭具有從每個部門職工中SELECT 最高工資、最低工資、平均工資的權(quán)力,他不

23、能查看每個人的工資。CREATE VIEW 部門工資 ASSELECT 部門.名稱,MAX(工資),MIN(工資),AVG(工資)FROM 職工,部門WHERE 職工.部門號=部門.部門號GROUP BY 職工.部門號GRANT SELECT ON 部門工資TO 楊蘭;8 把習(xí)題8 中(1)-(7)的每一種情況,撤銷各用戶所授予的權(quán)力(1) REVOKE SELECT ON 職工,部門 FROM 王明;(2) REVOKE INSERT , DELETE ON 職工,部門 FROM 李勇;(3) REOVKE SELECT ON 職工WHEN USER ( ) =NAMEFROM ALI ;(

24、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)中的活動實(shí)體,既包括DBMS 所管理的實(shí)際用戶,也包括代表用戶的各進(jìn)程。客體是系統(tǒng)中的被動實(shí)體,是受主體操縱的,包括文件、基表、索引、視圖等。對于主體和 客體,DBMS 為它們每個實(shí)例(值)指派

25、一個敏感度標(biāo)記(Label )。敏感度標(biāo)記被分成若干級別,例如絕密(Top Secret )、機(jī)密(Secret )· 可信( Confidential )、公開(PubliC )等。主體的敏感度標(biāo)記稱為許可證級別(ClearanCe 玫vel ) ,客體的敏感度標(biāo)記稱為密級(Classification Level )。11 什么是數(shù)據(jù)庫的審計功能,為什么要提供審計功能?答:審計功能是指DBMS 的審計模塊在用戶對數(shù)據(jù)庫執(zhí)行操作的同時把所有操作自動記錄到系統(tǒng)的審計日志中。因為任何系統(tǒng)的安全保護(hù)措施都不是完美無缺的,蓄意盜竊破壞數(shù)據(jù)的人總可能存在。利用數(shù)據(jù)庫的審計功能,DBA 可以根

26、據(jù)審計跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時間和內(nèi)容等。第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ù),防止錯誤信息的輸入和輸出,即所謂垃圾進(jìn)垃圾出( Garba : e In Garba : e out )所造成的無效操作和錯誤結(jié)果。后者是保護(hù)數(shù)據(jù)庫防止惡意的破壞和非法的存取。也就是說,安全性措施的防范對象是非法用戶和非法操作,完整性措施的防范對象是不合語義

27、的數(shù)據(jù)。3 什么是數(shù)據(jù)庫的完整性約束條件?可分為哪幾類?答完整性約束條件是指數(shù)據(jù)庫中的數(shù)據(jù)應(yīng)該滿足的語義約束條件。一般可以分為六類:靜態(tài)列級約束、靜態(tài)元組約束、靜態(tài)關(guān)系約束、動態(tài)列級約束、動態(tài)元組約束、動態(tài)關(guān)系約束。靜態(tài)列級約束是對一個列的取值域的說明,包括以下幾個方面: ( l )對數(shù)據(jù)類型的約束,包括數(shù)據(jù)的類型、長度、單位、精度等; ( 2 )對數(shù)據(jù)格式的約束; ( 3 )對取值范圍或取值集合的約束; ( 4 )對空值的約束; ( 5 )其他約束。靜態(tài)元組約束就是規(guī)定組成一個元組的各個列之間的約束關(guān)系,靜態(tài)元組約束只局限在單個元組上。靜態(tài)關(guān)系約束是在一個關(guān)系的各個元組之間或者若干關(guān)系之間常

28、常存在各種聯(lián)系或約束。常見的靜態(tài)關(guān)系約束有: ( l )實(shí)體完整性約束; ( 2 )參照完整性約束; ( 3 )函數(shù)依賴約束。動態(tài)列級約束是修改列定義或列值時應(yīng)滿足的約束條件,包括下面兩方面: ( l )修改列定義時的約束; ( 2 )修改列值時的約束。動態(tài)元組約束是指修改某個元組的值時需要參照其舊值,并且新舊值之間需要滿足某種約束條件。動態(tài)關(guān)系約束是加在關(guān)系變化前后狀態(tài)上的限制條件,例如事務(wù)一致性、原子性等約束條件。4 . DBMS 的完整性控制機(jī)制應(yīng)具有哪些功能?答:DBMS 的完整性控制機(jī)制應(yīng)具有三個方面的功能: ( l )定義功能,即提供定義完整性約束條件的機(jī)制; ( 2 )檢查功能,

29、即檢查用戶發(fā)出的操作請求是否違背了完整性約束條件;( 3 )違約反應(yīng):如果發(fā)現(xiàn)用戶的操作請求使數(shù)據(jù)違背了完整性約束條件,則采取一定的動作來保證數(shù)據(jù)的完整性。 5 . RDBMS 在實(shí)現(xiàn)參照完整性時需要考慮哪些方面?答 RDBMs 在實(shí)現(xiàn)參照完整性時需要考慮以下幾個方面: ( l )外碼是否可以接受空值。( 2 )冊 l 除被參照關(guān)系的元組時的考慮,這時系統(tǒng)可能采取的作法有三種: l )級聯(lián)刪除( CASCADES ) ; 2 )受限刪除( RESTRICTED ) ; 3 )置空值刪除( NULLIFIES )。 ( 3 )在參照關(guān)系中插入元組時的問題,這時系統(tǒng)可能采取的作法有: l )受限插

30、入; 2 )遞歸插入。 ( 4 )修改關(guān)系中主碼的問題。一般是不能用 UPDATE 語句修改關(guān)系主碼的。如果需要修改主碼值,只能先刪除該元組,然后再把具有新主碼值的元組插入到關(guān)系中。如果允許修改主碼,首先要保證主碼的惟一性和非空,否則拒絕修改。然后要區(qū)分是參照關(guān)系還是被參照關(guān)系。6 假設(shè)有下面兩個關(guān)系模式:職工(職工號,姓名,年齡,職務(wù),工資,部門號),其中職工號為主碼;部門(部門號,名稱,經(jīng)理名,電話),其中部門號為主碼。用 sQL 語言定義這兩個關(guān)系模式,要求在模式中完成以下完整性約束條件的定義:定義每個模式的主碼;定義參照完整性;定義職工年齡不得超過 60 歲。答CREATE TABLE

31、 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_DEPTN

32、O FOREIGN KEY(Deptno) REFFERENCES DEPT(Deptno);7 關(guān)系系統(tǒng)中,當(dāng)操作違反實(shí)體完整性、參照完整性和用戶定義的完整性約束條件時,一般是如何分別進(jìn)行處理的?答:對于違反實(shí)體完整性和用戶定義的完整性的操作一般都采用拒絕執(zhí)行的方式進(jìn)行處理。而對于違反參照完整性的操作,并不都是簡單地拒絕執(zhí)行,有時要根據(jù)應(yīng)用語義執(zhí)行一些附加的操作,以保證數(shù)據(jù)庫的正確性。第6章 關(guān)系數(shù)據(jù)庫理論1 理解并給出下列術(shù)語的定義:函數(shù)依賴、部分函數(shù)依賴、完全函數(shù)依賴、傳遞依賴、候選碼、主碼、外碼、全碼(All 一key )、1 NF 、ZNF 、3NF 、BcNF 、多值依賴、4NF

33、。定義1:設(shè)R(U)是屬性集U上的關(guān)系模式。X,Y是屬性集U的子集。若對于R(U)的任意一個可能的關(guān)系r,r中不可能存在兩個元組在X上的屬性值相等,而在Y上的屬性值不等,則稱X函數(shù)確定Y或Y函數(shù)依賴于X,記作XàY。(即只要X上的屬性值相等,Y上的值一定相等。)術(shù)語和記號:XàY,但Y不是X的子集,則稱XàY是非平凡的函數(shù)依賴。若不特別聲明,總是討論非平凡的函數(shù)依賴。XàY,但Y是X的子集,則稱XàY是平凡的函數(shù)依賴。若XàY,則X叫做決定因素(Determinant)。若XàY,YàX,則記作Xß

34、24;Y。若Y不函數(shù)依賴于X,則記作X à Y。定義2:在R(U)中,如果 XàY,并且對于X的任何一個真子集X,都有X à Y,則稱Y對X完全函數(shù)依賴 若XàY,但Y不完全函數(shù)依賴于X,則稱Y對X部分函數(shù)依賴定義3:若關(guān)系模式R的每一個分量是不可再分的數(shù)據(jù)項,則關(guān)系模式R屬于第一范式(1NF)。定義4:若關(guān)系模式R1NF,且每一個非主屬性完全函數(shù)依賴于碼,則關(guān)系模式R2NF 。(即1NF消除了非主屬性對碼的部分函數(shù)依賴則成為2NF)。定義5:關(guān)系模式R<U,F(xiàn)> 中若不存在這樣的碼X、屬性組Y及非主屬性Z(Z不是Y的子集)使得Xà

35、Y,Y à X,Y à Z成立,則稱R<U,F(xiàn)>3NF。定義6:關(guān)系模式R<U,F(xiàn)>1NF 。若XàY且Y不是X的子集時,X必含有碼,則R<U,F(xiàn)>BCNF。定義7:關(guān)系模式R<U,F(xiàn)>1NF,如果對于R的每個非平凡多值依賴XààY(Y不是X的子集,Z=U-X-Y不為空),X都含有碼,則稱R<U,F(xiàn)>4NF。2建立一個關(guān)于系、學(xué)生、班級、學(xué)會等諸信息的關(guān)系數(shù)據(jù)庫。學(xué)生:學(xué)號、姓名、出生年月、系名、班號、宿舍區(qū)。班級:班號、專業(yè)名、系名、人數(shù)、入校年份。系:系名、系號、系辦公地點(diǎn)、人數(shù)。

36、學(xué)會:學(xué)會名、成立年份、辦公地點(diǎn)、人數(shù)。 語義如下:一個系有若干專業(yè),每個專業(yè)每年只招一個班,每個班有若干學(xué)生。一個系的學(xué)生住在同一宿舍區(qū)。每個學(xué)生可參加若干學(xué)會,每個學(xué)會有若干學(xué)生。學(xué)生參加某學(xué)會有一個入會年份。請給出關(guān)系模式,寫出每個關(guān)系模式的極小函數(shù)依賴集,指出是否存在傳遞函數(shù)依賴,對于函數(shù)依賴左部是多屬性的情況討論函數(shù)依賴是完全函數(shù)依賴,還是部分函數(shù)依賴。指出各關(guān)系模式的候選碼、外部碼,有沒有全碼存在?解:(1)關(guān)系模式如下: 學(xué)生:S(Sno,Sname,Sbirth,Dept,Class,Rno) 班級:C(Class,Pname,Dept,Cnum,Cyear) 系:D(Dept

37、,Dno,Office,Dnum) 學(xué)會:M(Mname,Myear,Maddr,Mnum) (2)每個關(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 

38、24; Class,DeptàRno 所以Class與Rno之間存在著傳遞函數(shù)依賴。 由于SnoàClass,ClassàSno,ClassàDept 所以Sno與Dept之間存在著傳遞函數(shù)依賴。 B、班級C(Class,Pname,Dept,Cnum,Cyear)的最小函數(shù)依賴集如下: ClassàPname,ClassàCnum,ClassàCyear,PnameàDept. 由于ClassàPname,PnameàClass,PnameàDept 所以C1ass與Dept之間存在

39、著傳遞函數(shù)依賴。 C、系D(Dept,Dno,Office,Dnum)的最小函數(shù)依賴集如下: DeptàDno,DnoàDept,DnoàOffice,DnoàDnum 根據(jù)上述函數(shù)依賴可知,Dept與Office,Dept與Dnum之間不存在傳遞依賴。 D、學(xué)會M(Mname,Myear,Maddr,Mnum)的最小函數(shù)依賴集如下: MnameàMyear,MnameàMaddr,MnameàMnum 該模式不存在傳遞依賴。 (3)各關(guān)系模式的候選碼、外部碼,全碼如下: A、學(xué)生S候選碼:Sno;外部碼:Dept、Clas

40、s;無全碼 B、班級C候選碼:Class;外部碼:Dept;無全碼 C、系D候選碼:Dept或Dno;無外部碼;無全碼 D、學(xué)會M候選碼:Mname;無外部碼;無全碼7下面的結(jié)論哪些是正確的? 哪些是錯誤的? 對于錯誤的請給一個反例說明之。(1)任何一個二目關(guān)系是屬于3NF。答:正確。因為關(guān)系模式中只有兩個屬性,所以無傳遞。(2)任何一個二目關(guān)系是屬于BCNF.答:正確。按BCNF的定義,若XàY,且Y不是X的子集時,每個決定因素都包含碼,對于二目關(guān)系決定因素必然包含碼。詳細(xì)證明如下:(任何二元關(guān)系模式必定是BCNF)。證明:設(shè)R為一個二目關(guān)系R(A1,A2),則屬性A1和A2之間可

41、能存在以下幾種依賴關(guān)系:A、A1àA2,但A2àA1,則關(guān)系R的碼為A1,決定因素都包含碼,所以,R是BCNF。B、A1àA2,A2àA1,則關(guān)系R的碼為A2,所以決定因素都包含碼,R是BCNF。包含碼。R是BCNF。C、R的碼為(A1,A2)(即A1 àA2,A2 àA1),決定因素都第七章 數(shù)據(jù)庫設(shè)計1試述數(shù)據(jù)庫設(shè)計過程。答:這里只概要列出數(shù)據(jù)庫設(shè)計過程的六個階段: ( l )需求分析; ( 2 )概念結(jié)構(gòu)設(shè)計; ( 3 )邏輯結(jié)構(gòu)設(shè)計; ( 4 )數(shù)據(jù)庫物理設(shè)計; ( 5 )數(shù)據(jù)庫實(shí)施; ( 6 )數(shù)據(jù)庫運(yùn)行和維護(hù)。這是一個完整

42、的實(shí)際數(shù)據(jù)庫及其應(yīng)用系統(tǒng)的設(shè)計過程。不僅包括設(shè)計數(shù)據(jù)庫本身,還包括數(shù)據(jù)庫的實(shí)施、運(yùn)行和維護(hù)。設(shè)計一個完善的數(shù)據(jù)庫應(yīng)用系統(tǒng)往往是上述六個階段的不斷反復(fù)。2 試述數(shù)據(jù)庫設(shè)計過程各個階段上的設(shè)計描述。答:各階段的設(shè)計要點(diǎn)如下: ( l )需求分析:準(zhǔn)確了解與分析用戶需求(包括數(shù)據(jù)與處理)。 ( 2 )概念結(jié)構(gòu)設(shè)計:通過對用戶需求進(jìn)行綜合、歸納與抽象,形成一個獨(dú)立于具體 DBMS 的概念模型。 ( 3 )邏輯結(jié)構(gòu)設(shè)計:將概念結(jié)構(gòu)轉(zhuǎn)換為某個 DBMS 所支持的數(shù)據(jù)模型,并對其進(jìn)行優(yōu)化。 ( 4 )數(shù)據(jù)庫物理設(shè)計:為邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)和存取方法)。 ( 5 )數(shù)據(jù)庫

43、實(shí)施:設(shè)計人員運(yùn)用 DBMS 提供的數(shù)據(jù)語言、工具及宿主語言,根據(jù)邏輯設(shè)計和物理設(shè)計的結(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)行過程中對其進(jìn)行評價、調(diào)整與修改。3 試述數(shù)據(jù)庫設(shè)計過程中結(jié)構(gòu)設(shè)計部分形成的數(shù)據(jù)庫模式。答:數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的不同階段形成數(shù)據(jù)庫的各級模式,即: ( l )在概念設(shè)計階段形成獨(dú)立于機(jī)器特點(diǎn),獨(dú)立于各個 DBMS 產(chǎn)品的概念模式,在本篇中就是 E 一 R 圖; ( 2 )在邏輯設(shè)計階段將 E 一 R 圖轉(zhuǎn)換成具體的數(shù)據(jù)庫產(chǎn)品支持的數(shù)據(jù)模型,如關(guān)系模型,形成數(shù)據(jù)庫邏輯模式,然后在基本表的基礎(chǔ)上再建立必要的視圖 ( Vi 娜),形成數(shù)

溫馨提示

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

最新文檔

評論

0/150

提交評論