【正文】
ARCHAR(10), PhoneNumber Char(12) CONSTRAINT PK_SC RIMARY KEY(Deptno))。6 .假設(shè)有下面兩個(gè)關(guān)系模式:職工(職工號,姓名,年齡,職務(wù),工資,部門號),其中職工號為主碼;部門(部門號,名稱,經(jīng)理名,電話),其中部門號為主碼。如果允許修改主碼,首先要保證主碼的惟一性和非空,否則拒絕修改。一般是不能用 UPDATE 語句修改關(guān)系主碼的。 ( 3 )在參照關(guān)系中插入元組時(shí)的問題,這時(shí)系統(tǒng)可能采取的作法有: l )受限插入; 2 )遞歸插入。 2 )受限刪除( RESTRICTED ) 。 5 . RDBMS 在實(shí)現(xiàn)參照完整性時(shí)需要考慮哪些方面?答 RDBMs 在實(shí)現(xiàn)參照完整性時(shí)需要考慮以下幾個(gè)方面: ( l )外碼是否可以接受空值。動(dòng)態(tài)關(guān)系約束是加在關(guān)系變化前后狀態(tài)上的限制條件,例如事務(wù)一致性、原子性等約束條件。動(dòng)態(tài)列級約束是修改列定義或列值時(shí)應(yīng)滿足的約束條件,包括下面兩方面: ( l )修改列定義時(shí)的約束; ( 2 )修改列值時(shí)的約束。靜態(tài)關(guān)系約束是在一個(gè)關(guān)系的各個(gè)元組之間或者若干關(guān)系之間常常存在各種聯(lián)系或約束。靜態(tài)列級約束是對一個(gè)列的取值域的說明,包括以下幾個(gè)方面: ( l )對數(shù)據(jù)類型的約束,包括數(shù)據(jù)的類型、長度、單位、精度等; ( 2 )對數(shù)據(jù)格式的約束; ( 3 )對取值范圍或取值集合的約束; ( 4 )對空值的約束; ( 5 )其他約束。3 .什么是數(shù)據(jù)庫的完整性約束條件?可分為哪幾類?答完整性約束條件是指數(shù)據(jù)庫中的數(shù)據(jù)應(yīng)該滿足的語義約束條件。后者是保護(hù)數(shù)據(jù)庫防止惡意的破壞和非法的存取。2 .?dāng)?shù)據(jù)庫的完整性概念與數(shù)據(jù)庫的安全性概念有什么區(qū)別和聯(lián)系?答:數(shù)據(jù)的完整性和安全性是兩個(gè)不同的概念,但是有一定的聯(lián)系。但是,人們可以從合法的查詢中推導(dǎo)出不合法的信息,即可能存在隱蔽的信息通道,這是統(tǒng)計(jì)數(shù)據(jù)庫要研究和解決的特殊的安全性問題。利用數(shù)據(jù)庫的審計(jì)功能,DBA 可以根據(jù)審計(jì)跟蹤的信息,重現(xiàn)導(dǎo)致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時(shí)間和內(nèi)容等。13 .什么是數(shù)據(jù)庫的審計(jì)功能,為什么要提供審計(jì)功能?答:審計(jì)功能是指DBMS 的審計(jì)模塊在用戶對數(shù)據(jù)庫執(zhí)行操作的同時(shí)把所有操作自動(dòng)記錄到系統(tǒng)的審計(jì)日志中。 可信( Confidential )、公開(PubliC )等。對于主體和 客體,DBMS 為它們每個(gè)實(shí)例(值)指派一個(gè)敏感度標(biāo)記(Label )。答:主體是系統(tǒng)中的活動(dòng)實(shí)體,既包括DBMS 所管理的實(shí)際用戶,也包括代表用戶的各進(jìn)程。(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. 為什么強(qiáng)制存取控制提供了更高級別的數(shù)據(jù)庫安全性?答:強(qiáng)制存取控制(MAC )是對數(shù)據(jù)本身進(jìn)行密級標(biāo)記,無論數(shù)據(jù)如何復(fù)制,標(biāo)記與數(shù)據(jù)是一個(gè)不可分的整體,只有符合密級標(biāo)記要求的用戶才可以操縱數(shù)據(jù),從而提供了更高級別的安全性。 CREATE VIEW 部門工資 AS SELECT ,MAX(工資),MIN(工資),AVG(工資) FROM 職工,部門 WHERE = GROUP BY GRANT SELECT ON 部門工資 TO 楊蘭。 GRANT ALL PRIVILIGES ON 職工,部門 TO 周平 WITH GRANT OPTION。 GRANT ALTER TABLE ON 職工,部門 TO 張新。( d )用戶劉星對職工表有SELECT 權(quán)力,對工資字段具有更新權(quán)力。 GRANT INSERT,DELETE ON 職工,部門 TO 李勇( c ) 每個(gè)職工只對自己的記錄有SELECT 權(quán)力。8.請用SQL的GRANT 和REVOKE語句(加上視圖機(jī)制)完成以下授權(quán)定義或存取控制功能:( a )用戶王明對兩個(gè)表有SELECT 權(quán)力。REVOKE INSERT ON Student FROM 王平CASCADE 。如:GRANT SELECT , INSERT ON Student TO 王平WITH GRANT OPTION 。7 .SQL 語言中提供了哪些數(shù)據(jù)控制(自主存取控制)的語句?請?jiān)嚺e幾例說明它們的使用方法。強(qiáng)制存取控制方法:每一個(gè)數(shù)據(jù)對象被(強(qiáng)制地)標(biāo)以一定的密級,每一個(gè)用戶也被(強(qiáng)制地)授予某一個(gè)級別的許可證。當(dāng)用戶對數(shù)據(jù)庫訪問時(shí)首先檢查用戶的存取權(quán)限。( 5 )數(shù)據(jù)加密:對存儲和傳輸?shù)臄?shù)據(jù)進(jìn)行加密處理,從而使得不知道解密算法的人無法獲知數(shù)據(jù)的內(nèi)容。( 3 )視圖機(jī)制:為不同的用戶定義視圖,通過視圖機(jī)制把要保密的數(shù)據(jù)對無權(quán)存取的用戶隱藏起來,從而自動(dòng)地對數(shù)據(jù)提供一定程度的安全保護(hù)。( 2 )存取控制:通過用戶權(quán)限定義和合法權(quán)檢查確保只有合法權(quán)限的用戶訪問數(shù)據(jù)庫,所有未被授權(quán)的人員無法存取數(shù)據(jù)。答:實(shí)現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)有:( l )用戶標(biāo)識和鑒別:該方法由系統(tǒng)提供一定的方式讓用戶標(biāo)識自己的名字或身份。Al 級驗(yàn)證設(shè)計(jì),即提供B3 級保護(hù)的同時(shí)給出系統(tǒng)的形式化設(shè)計(jì)說明和驗(yàn)證以確信各安全保護(hù)真正實(shí)現(xiàn)。建立形式化的安全策略模型并對系統(tǒng)內(nèi)的所有主體和客體實(shí)施DAC 和MACo B3 級安全域。對系統(tǒng)的數(shù)據(jù)加以標(biāo)記,并對標(biāo)記的主體和客體實(shí)施強(qiáng)制存取控制(MAC )以及審計(jì)等安全機(jī)制。C2 級實(shí)際是安全產(chǎn)品的最低檔次,提供受控的存取保護(hù),即將Cl 級的DAC 進(jìn)一步細(xì)化,以個(gè)人身份注冊負(fù)責(zé),并實(shí)施審計(jì)和資源隔離。Cl 級只提供了非常初級的自主安全保護(hù)。各個(gè)等級的基本內(nèi)容為:D 級D 級是最低級別。答:根據(jù)計(jì)算機(jī)系統(tǒng)對安全性各項(xiàng)指標(biāo)的支持情況,TCSEC ( TDI )將系統(tǒng)劃分為四組(division ) 7 個(gè)等級,依次是D 、C ( CI , CZ )、B ( BI , BZ , B3 )、A ( AI ) ,按系統(tǒng)可靠或可信程度逐漸增高。每個(gè)方面又細(xì)分為若干項(xiàng)。在TDI 中定義了數(shù)據(jù)庫管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)中需滿足和用以進(jìn)行安全性級別評估的標(biāo)準(zhǔn)。目前各國引用或制定的一系列安全標(biāo)準(zhǔn)中,最重要的是美國國防部(DoD )正式頒布的《 DoD 可信計(jì)算機(jī)系統(tǒng)評估標(biāo)準(zhǔn)》 (伽sted Co 哪uter system Evaluation criteria ,簡稱TcsEc ,又稱桔皮書)。數(shù)據(jù)庫的安全性和計(jì)算機(jī)系統(tǒng)的安全性,包括操作系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)的安全性是緊密聯(lián)系、相互支持的,3 .試述可信計(jì)算機(jī)系統(tǒng)評測標(biāo)準(zhǔn)的情況,試述TDI / TCSEC 標(biāo)準(zhǔn)的基本內(nèi)容。只是在數(shù)據(jù)庫系統(tǒng)中大量數(shù)據(jù)集中存放,而且為許多最終用戶直接共享,從而使安全性問題更為突出。第4章 數(shù)據(jù)庫安全性1 .什么是數(shù)據(jù)庫的安全性?答:數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。SELECT DIST * FROM VSP WHERE SNO=39。針對該視圖VSP完成下列查詢:(1)找出三建工程項(xiàng)目使用的各種零件代碼及其數(shù)量。CREATE VIEW VSP AS SELECT SNO,PNO,QTY FROM SPJ,J WHERE = AND =39。10 .試述某個(gè)你熟悉的實(shí)際系統(tǒng)中對視圖更新的規(guī)定。答:基本表的行列子集視圖一般是可更新的。視圖是不實(shí)際存儲數(shù)據(jù)的虛表,因此對視圖的更新,最終要轉(zhuǎn)換為對基本表的更新。答 ( l )視圖能夠簡化用戶的操作; ( 2 )視圖使用戶能以多種角度看待同一數(shù)據(jù); ( 3 )視圖對重構(gòu)數(shù)據(jù)庫提供了一定程度的邏輯獨(dú)立性; ( 4 )視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù)。視圖在概念上與基本表等同,用戶可以如同基本表那樣使用視圖,可以在視圖上再定義視圖。視圖本身不獨(dú)立存儲在數(shù)據(jù)庫中,是一個(gè)虛表。 INSERT INTO SPJ VALUES(‘S2’,‘J6’,‘P4’,200)6 .什么是基本表?什么是視圖?答兩者的區(qū)別和聯(lián)系是什么?基本表是本身獨(dú)立存在的表,在 sQL 中一個(gè)關(guān)系就對應(yīng)一個(gè)表。(10)從供應(yīng)商關(guān)系中刪除供應(yīng)商號是S2的記錄,并從供應(yīng)情況關(guān)系中刪除相應(yīng)的記錄。 AND PNO=39。 AND JNO=39。 WHERE SNO=39。 UPDATE SPJ SET SNO=39。紅39。藍(lán)39。適用于JNO是唯一的情況(8)把全部紅色零件的顏色改成藍(lán)色。) 適用于JNO是唯一或不唯一的情況. 注意: SELECT DIST JNO FROM SPJ,S WHERE = AND 39。注意: SELECT DISP JNO FROM SPJ WHERE JNO NOT IN (SELECT DIST JNO FROM SPJ,S WHERE = AND =39。上海39。(6)出使用上海產(chǎn)的零件的工程名稱。SELECT PNO FROM SPJ,S WHERE = AND CITY=39。J239。(4)找出工程項(xiàng)目J2使用的各種零件的名稱及其數(shù)量。 SELECT DIST JNO FROM SPJ WHERE SNO=39。 SELECT SNAME,CITY FROM S(2)找出所有零件的名稱、顏色、重量。P239。P139。結(jié)果是(P1,P2)B、查詢哪一個(gè)工程既使用P1零件又使用P2零件。由于VFP不允許子查詢嵌套太深,將查詢分為兩步A、查詢S1供應(yīng)商供應(yīng)的零件號SELECT DIST PNO FROM SPJ WHERE SNO=39。 AND = AND =)。 AND COLOR=39。SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELE JNO FROM SPJ,P,S WHERE =39。紅39。J139。( 3 )求供應(yīng)工程 Jl 零件為紅色的供應(yīng)商號碼 SNO 。 AND PNO=39。 SELECT DIST SNO FROM SPJ WHERE JNO=39。 ( l )求供應(yīng)工程 Jl 零件的供應(yīng)商號碼 SNO 。 建 J 表:CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8), CITY C(4))對于 sPJ 表: sPJ ( sNo , PNo , JNo , QTY) 。建 P 表 :CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2), WEIGHT INT)。 建 S 表: CREATE TABLE S ( Sno C(2) UNIQUE,Sname C(6) ,Status C(2),City C(4))。3 .用 sQL 語句建立第二章習(xí)題 5 中的 4 個(gè)表。 sQL 的數(shù)據(jù)定義功能包括定義表、定義視圖和定義索引。(5)語言簡捷,易學(xué)易用。 sQL 語言既是自含式語言,又是嵌入式語言。 sQL 語言采用集合操作方式,不僅操作對象、查找結(jié)果可以是元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。用 sQL 語言進(jìn)行數(shù)據(jù)操作,只要提出“做什么”,而無需指明“怎么做”,因此無需了解存取路徑,存取路徑的選擇以及 sQL 語句的操作過程由系統(tǒng)自動(dòng)完成。 sQL 語言集數(shù)據(jù)定義語言 DDL 、數(shù)據(jù)操縱語言 DML 、數(shù)據(jù)控制語言 DCL 的功能于一體。第3章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL1 .試述 sQL 語言的特點(diǎn)。7.關(guān)系代數(shù)的基本運(yùn)算有哪些 ? 如何用這些基本運(yùn)算來表示其他運(yùn)算? 答:并、差、笛卡爾積、投影和選擇5種運(yùn)算為基本的運(yùn)算。答:連接運(yùn)算符是“=”的連接運(yùn)算稱為等值連接。5.設(shè)有一個(gè)SPJ數(shù)據(jù)庫,包括S,P,J,SPJ四個(gè)關(guān)系模式:1)求供應(yīng)工程J1零件的供應(yīng)商號碼SNO:πSno(σSno=‘J1’(SPJ))2)求供應(yīng)工程J1零件P1的供應(yīng)商號碼SNO:πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ))3)求供應(yīng)工程J1零件為紅色的供應(yīng)商號碼SNO:πSno(σPno=‘P1‘ (σCOLOR=’紅‘ (P)∞SPJ))4)求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號JNO:πJno(SPJ) πJNO(σcity=‘天津’∧Color=‘紅‘ (S∞SPJ∞P)5)求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號JNO:πJno,Pno(SPJ)247。若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對于R中每個(gè)元組在F上的值必須為:或者取空值(F的每個(gè)屬性值均為空值);或者等于S中某個(gè)元組的主碼值。4 .試述關(guān)系模型的完整性規(guī)則。SQL:具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言。答:關(guān)系數(shù)據(jù)語言可以分為三類:關(guān)系代數(shù)語言。答:關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束三部分組成。應(yīng)用程序員負(fù)責(zé)設(shè)計(jì)和編寫應(yīng)用系統(tǒng)的程序模塊,并進(jìn)行調(diào)試和安裝。數(shù)據(jù)庫設(shè)計(jì)人員必須參加用戶需求調(diào)查和系統(tǒng)分析,然后進(jìn)行數(shù)據(jù)庫設(shè)計(jì)。 25 .系統(tǒng)分析員、數(shù)據(jù)庫設(shè)計(jì)人員、應(yīng)用程序員的職責(zé)是什么?答系統(tǒng)分析員負(fù)責(zé)應(yīng)用系統(tǒng)的需求分析和規(guī)范說明,系統(tǒng)分析員要和用戶及 DBA 相結(jié)合,確定系統(tǒng)的硬件、軟件配置,并參與數(shù)據(jù)庫系統(tǒng)的概要設(shè)計(jì)。24 . DBA 的職責(zé)是什么?答:負(fù)責(zé)全面地管理和控制數(shù)據(jù)庫系統(tǒng)。 23 .試述數(shù)據(jù)庫系統(tǒng)的組成。數(shù)據(jù)與程序的物理獨(dú)立性:當(dāng)數(shù)據(jù)庫的存儲結(jié)構(gòu)改變了,由數(shù)據(jù)庫管理員對模式/內(nèi)模式映像做相應(yīng)改變,可以使模式保持不變,從而應(yīng)用程序也不必改變,保證了數(shù)據(jù)