【正文】
第1章 緒論2 .使用數(shù)據(jù)庫系統(tǒng)有什么好處?答:使用數(shù)據(jù)庫系統(tǒng)的優(yōu)點(diǎn)是很多的,既便于數(shù)據(jù)的集中管理,控制數(shù)據(jù)冗余,提高數(shù)據(jù)的利用率和一致性,又有利于應(yīng)用程序的開發(fā)和維護(hù)。6 .?dāng)?shù)據(jù)庫管理系統(tǒng)的主要功能有哪些?答:( l )數(shù)據(jù)庫定義功能; ( 2 )數(shù)據(jù)存取功能; ( 3 )數(shù)據(jù)庫運(yùn)行管理; ( 4 )數(shù)據(jù)庫的建立和維護(hù)功能。8 .試述概念模型的作用。答:概念模型實(shí)際上是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次。概念模型用于信息世界的建模,是現(xiàn)實(shí)世界到信息世界的第一層抽象,是數(shù)據(jù)庫設(shè)計(jì)人員進(jìn)行數(shù)據(jù)庫設(shè)計(jì)的有力工具,也是數(shù)據(jù)庫設(shè)計(jì)人員和用戶之間進(jìn)行交流的語言。12 .學(xué)校中有若干系,每個(gè)系有若干班級(jí)和教研室,每個(gè)教研室有若干教員,其中有的教授和副教授每人各帶若干研究生;每個(gè)班有若干學(xué)生,每個(gè)學(xué)生選修若干課程,每門課可由若干學(xué)生選修。請(qǐng)用 E 一 R 圖畫出此學(xué)校的概念模型。答: 實(shí)體間聯(lián)系如下圖所示,聯(lián)系-選修有一個(gè)屬性:成績(jī)。各實(shí)體需要有屬性說明,需要畫出各實(shí)體的圖(帶屬性)或在下圖中直接添加實(shí)體的屬性,比如:學(xué)生的屬性包括學(xué)號(hào)、姓名、性別、身高、聯(lián)系方式等,此略。 13 .某工廠生產(chǎn)若干產(chǎn)品,每種產(chǎn)品由不同的零件組成,有的零件可用在不同的產(chǎn)品上。這些零件由不同的原材料制成,不同零件所用的材料可以相同。這些零件按所屬的不同產(chǎn)品分別放在倉庫中,原材料按照類別放在若干倉庫中。請(qǐng)用 E 一 R 圖畫出此工廠產(chǎn)品、零件、材料、倉庫的概念模型。答:各實(shí)體需要有屬性,此略。 聯(lián)系組成、制造、 儲(chǔ)存、存放都有屬性:數(shù)量。 20 .試述數(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ǔ)。數(shù)據(jù)庫系統(tǒng)在這三級(jí)模式之間提供了兩層映像:外模式/模式映像和模式/內(nèi)模式映像,這兩層映像保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性。22 .什么叫數(shù)據(jù)與程序的物理獨(dú)立性?什么叫數(shù)據(jù)與程序的邏輯獨(dú)立性?為什么數(shù)據(jù)庫系統(tǒng)具有數(shù)據(jù)與程序的獨(dú)立性?答:數(shù)據(jù)與程序的邏輯獨(dú)立性是指用戶的的應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨(dú)立的。數(shù)據(jù)與程序的物理獨(dú)立性是指用戶的的應(yīng)用程序與存儲(chǔ)在磁盤上的數(shù)據(jù)庫中數(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ú)立性,簡(jiǎn)稱數(shù)據(jù)的邏輯獨(dú)立性。當(dāng)數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)改變了,由數(shù)據(jù)庫管理員對(duì)模式/內(nèi)模式映像做相應(yīng)改變,可以使模式保持不變,從而應(yīng)用程序也不必改變,保證了數(shù)據(jù)與程序的物理獨(dú)立性,簡(jiǎn)稱數(shù)據(jù)的物理獨(dú)立性。數(shù)據(jù)庫管理系統(tǒng)在三級(jí)模式之間提供的兩層映像保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性。 第2章 關(guān)系數(shù)據(jù)庫4 .試述關(guān)系模型的完整性規(guī)則。在參照完整性中,為什么外部碼屬性的值也可以為空?什么情況下才可以為空?答:實(shí)體完整性規(guī)則是指若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。若屬性(或?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è)元組的主碼值。即屬性F本身不是主屬性,則可以取空值,否則不能取空值。5.設(shè)有一個(gè)SPJ數(shù)據(jù)庫,包括S,P,J,SPJ四個(gè)關(guān)系模式:1)求供應(yīng)工程J1零件的供應(yīng)商號(hào)碼SNO:πSno(σSno=‘J1’(SPJ))2)求供應(yīng)工程J1零件P1的供應(yīng)商號(hào)碼SNO:πSno(σSno=‘J1’∧Pno=‘P1‘(SPJ))3)求供應(yīng)工程J1零件為紅色的供應(yīng)商號(hào)碼SNO:πSno(σPno=‘P1‘ (σCOLOR=’紅‘ (P)∞SPJ))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)247。 πPno(σSno=‘S1‘ (SPJ))6.試述等值連接與自然連接的區(qū)別和聯(lián)系。答: 連接運(yùn)算符是“=”的連接運(yùn)算稱為等值連接。它是從關(guān)系R與S的廣義笛卡爾積中選取A,B屬性值相等的那些元組。自然連接是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉。第3章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL 4 個(gè)表試用 SQL 語言完成第二章習(xí)題 5 中的查詢。 ( l )求供應(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=39。J139。 AND PNO=39。P139。( 3 )求供應(yīng)工程 Jl 零件為紅色的供應(yīng)商號(hào)碼 SNO 。 SELECT SNO FROM SPJ,P WHERE JNO=39。J139。 AND = AND COLOR=39。紅39。( 4 )求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號(hào) JNO 。SELECT JNO FROM J WHERE JNO NOT IN (SELECT JNO FROM SPJ,P,S WHERE =39。天津39。 AND COLOR=39。紅39。 AND = AND =)。或SELECT JNO FROM J WHERE NOT EXISITS (SELECT * FROM SPJ,P,S WHERE =39。天津39。 AND COLOR=39。紅39。 AND = AND = AND =)。( 5 )求至少用了供應(yīng)商 Sl 所供應(yīng)的全部零件的工程號(hào) JNO 。SELECT JNO FROM SPJ X WHERE NOT EXISITS(SELECT * FROM SPJ Y WHERE SNO=39。S139。 AND NOT EXISITS(SELECT * FROM SPJ Z WHERE = AND =))5.針對(duì)習(xí)題3中的四個(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=39。S139。(4)找出工程項(xiàng)目J2使用的各種零件的名稱及其數(shù)量。SELECT PNAME,QTY FROM SPJ,P WHERE = AND =39。J239。(5)找出上海廠商供應(yīng)的所有零件號(hào)碼。SELECT PNO FROM SPJ,S WHERE = AND CITY=39。上海39。(6) 找出使用上海產(chǎn)的零件的工程名稱。SELECT JNAME FROM SPJ,S,JWHERE = AND =39。上海39。 AND =(7)找出沒有使用天津產(chǎn)的零件的工程號(hào)碼。類似上題中的第(4) 小題。注意考慮可能某個(gè)工程沒有使用任何零件,它的JNO不在SPJ中出現(xiàn),所以不能從SPJ中查詢?cè)擃}想要的結(jié)果。SELECT DISTINCT JNO FROM J WHERE JNO NOT IN (SELECT DIST JNO FROM SPJ,S WHERE = AND =39。天津39。)或 SELECT DISTINCT JNO FROM J WHERE NOT EXISITS (SELECT * FROM SPJ,S ,J WHERE = AND =39。天津39。 AND =.JNO) (8)把全部紅色零件的顏色改成藍(lán)色。UPDATE P SET COLOR=39。藍(lán)39。 WHERE COLOR=39。紅39。(9)由S5供給J4的零件P6改為由S3供應(yīng)。 UPDATE SPJ SET SNO=39。S339。 WHERE SNO=39。S539。 AND JNO=39。J439。 AND PNO=39。P639。(10)從供應(yīng)商關(guān)系中刪除供應(yīng)商號(hào)是S2的記錄,并從供應(yīng)情況關(guān)系中刪除相應(yīng)的記錄。 A、DELETE FROM SPJ WHERE SNO=‘S2’ B、DELETE FROM S WHERE SNO=’S2’(11)請(qǐng)將(S2,J6,P4,200)插入供應(yīng)情況關(guān)系。 INSERT INTO SPJ VALUES(‘S2’,‘J6’,‘P4’,200)6 .什么是基本表?什么是視圖??jī)烧叩膮^(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)。答 ( l )視圖能夠簡(jiǎn)化用戶的操作; ( 2 )視圖使用戶能以多種角度看待同一數(shù)據(jù); ( 3 )視圖對(duì)重構(gòu)數(shù)據(jù)庫提供了一定程度的邏輯獨(dú)立性; ( 4 )視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù)。(5)適當(dāng)?shù)睦靡晥D可以更清晰的表達(dá)查詢。11.請(qǐng)為三建工程項(xiàng)目建立一個(gè)供應(yīng)情況的視圖,包括供應(yīng)商代碼(SNO)、零件代碼(PNO)、供應(yīng)數(shù)量(QTY)。CREATE VIEW VSP AS SELECT SNO,PNO,QTY FROM SPJ,J WHERE = AND =39。三建39。針對(duì)該視圖VSP完成下列查詢:(1)找出三建工程項(xiàng)目使用的各種零件代碼及其數(shù)量。SELECT DIST PNO,QTY FROM VSP(2)找出供應(yīng)商S1的供應(yīng)情況。SELECT DIST * FROM VSP WHERE SNO=39。S139。第4章 數(shù)據(jù)庫安全性1 .什么是數(shù)據(jù)庫的安全性?答:數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。5 .試述實(shí)現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)。答:實(shí)現(xiàn)數(shù)據(jù)庫安全性控制的常用方法和技術(shù)有:( l )用戶標(biāo)識(shí)和鑒別 ( 2 )存取控制。( 3 )視圖機(jī)制。( 4 )審計(jì)。( 5 )數(shù)據(jù)加密。6 .什么是數(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ì)象。8.用SQL的GRANT 和REVOKE語句(加上視圖機(jī)制)完成以下授權(quán)定義或存取控制功能:( a )用戶王明對(duì)兩個(gè)表有SELECT 權(quán)力。 GRANT SELECT ON 職工,部門 TO 王明