《數(shù)據(jù)庫原理與系統(tǒng)》習題解答[稻谷書屋]_第1頁
《數(shù)據(jù)庫原理與系統(tǒng)》習題解答[稻谷書屋]_第2頁
《數(shù)據(jù)庫原理與系統(tǒng)》習題解答[稻谷書屋]_第3頁
《數(shù)據(jù)庫原理與系統(tǒng)》習題解答[稻谷書屋]_第4頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫原理與系統(tǒng)習題解答習題一一、名詞解釋DB、DBMS、DBS、DBA、數(shù)據(jù)冗余、數(shù)據(jù)異常二、單項選擇題1DBMS是 A、數(shù)據(jù)庫 B、數(shù)據(jù)庫系統(tǒng) C、數(shù)據(jù)庫應用系統(tǒng) C、數(shù)據(jù)庫管理軟件2DB、DBMS和DBS三者之間的關(guān)系是A、DB包括DBMS和DBSB、DBMS包括DBS和DBC、DBS包括DB和DBMSD、DBS與DB和DBMS無關(guān)3關(guān)系數(shù)據(jù)模型的基本數(shù)據(jù)結(jié)構(gòu)是A、樹 B、圖 C、索引 D、關(guān)系4層次數(shù)據(jù)模型的基本數(shù)據(jù)結(jié)構(gòu)是A、樹 B、圖 C、索引 D、關(guān)系5層次模型實現(xiàn)數(shù)據(jù)之間聯(lián)系的方法?A、連接 B、指針 C、公共屬性 D、關(guān)系6常見的數(shù)據(jù)模型是A、層次模型、網(wǎng)狀模型、關(guān)系模型 B、

2、概念模型、實體模型、關(guān)系模型C、對象模型、外部模型、內(nèi)部模型 D、邏輯模型、概念模型、關(guān)系模型7提供數(shù)據(jù)庫定義、數(shù)據(jù)操縱數(shù)據(jù)控制和數(shù)據(jù)庫維護功能的軟件稱為A、OS B、DS C、DBMS D、DBS三、簡答題1數(shù)據(jù)庫系統(tǒng)的組成部分2DBA的主要職責3文件系統(tǒng)的數(shù)據(jù)管理方法4文件系統(tǒng)的主要缺陷5數(shù)據(jù)庫系統(tǒng)的主要優(yōu)點6什么是數(shù)據(jù)模型7層次結(jié)構(gòu)的特點8DBTG提出的關(guān)于數(shù)掂庫的3個重要規(guī)范9關(guān)系數(shù)據(jù)模型的基本結(jié)構(gòu)10關(guān)系數(shù)據(jù)模型實現(xiàn)數(shù)據(jù)聯(lián)系的方法習題二一、概念題1解釋下列事業(yè)術(shù)語的合義: 關(guān)系、元組、屬性、屬性域、超碼、候選碼、主碼、外碼。2簡述關(guān)系的性質(zhì)。3說明關(guān)系數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)之間聯(lián)系的方法。4

3、什么是實體完整性和參照完整性?5什么是數(shù)據(jù)字典和系統(tǒng)目錄?6什么是關(guān)系代數(shù)的選銹、投影、并、差、笛卡兒積、交和連接運算?7什么是自然連接?8什么是左外連接、右外連接和全外連接?9外連接與自然連接的區(qū)別是什么?二、單項選擇題1下面對關(guān)系性質(zhì)的描述中,錯誤的是 A、表中的行稱為一個元組 B、行與列交叉點不允許有多個值 C、表中的一列稱為一個屬性 D、表中任意兩行可能相同2“元數(shù)據(jù)”是指 A、數(shù)據(jù)結(jié)構(gòu)的描述 B、數(shù)據(jù)項的描述 C、數(shù)據(jù)的來源 D、系統(tǒng)自身的各種有用信息,包括數(shù)據(jù)結(jié)構(gòu)的描述3在數(shù)據(jù)庫系統(tǒng)中,空值是 A、0 B、空格 C、空字符串 D、不確定4實體完整性是指關(guān)系中 A、不允許有空行 B、

4、主碼不允許空值 C、屬性值外碼取空值 D、外碼允許取空值5已知關(guān)系R與S如圖2.25所示:在關(guān)系S中,違反參照完整性約束的元組是 A、 (11,21) B、 (22,NULL) C、 (33,33) A、 (44,11)6已知關(guān)系R和S,RS等價于 A、(R-S)-S B、S-(S-R) C、(S-R)-R D、S-(R-S)7關(guān)系R和S各有10個元組,則關(guān)系RS的元組個數(shù)為 A、10 B、20 C、100 D、不確定8從關(guān)系中選擇指定的屬性組成新關(guān)系的關(guān)系運算是 A、選取 B、投影 C、連接 D、笛卡兒乘積9有關(guān)系:學生(學號,姓名,性別,專業(yè),宿舍編號,宿舍地址),主碼是 A、宿合編號 B

5、、學號 C、宿舍地址,姓名 D、宿舍編號,學號10有兩個關(guān)系:部門(編號,部門名稱,地址電話)和職工(職工號,姓名,性別,職務編號)。職工關(guān)系的外碼是 A、職工號 B、編號 C、職工號,編號 D、編號,部門名稱11若關(guān)系R1和R2的結(jié)構(gòu)相同,各有10個元組,則R1R2的元組個數(shù)為 A、10 B、小于等于10 C、20 D、小于等于2012設關(guān)系R和S的屬性個數(shù)分別為2和3,則與關(guān)系代數(shù)表達式等價的是A、 B、 C、 D、13當關(guān)系R和S自然連接時,能夠把R和S中不滿足連接條件的元組保留在結(jié)果關(guān)系中的運算是A、左外連接 B、右外連接 C、全外連接 D、等值連接14設關(guān)系R(A,B)和S(B,C)

6、中分別有10個和15個元組,屬性B是R的主碼則R| S中元組數(shù)目的范圍是 A、(0,15) B、(10,15) C、(10,25) D、(0,150)l 5設有關(guān)系R和S如圖226所示,則關(guān)系的元組數(shù)目是A、6 B、7 C、8 D、916設有關(guān)系R和S,如圖227所示,R的主碼是編號,S的主碼是學號、外碼是編號。若有如下4個元組:I(S3李林,C2),(Sl,江荷,C1), (S4,白玉C4), (S5,康嘉,NULL),能夠插入關(guān)系3的元組是A、I, B、I, C、I, D、I,7已知關(guān)系R如圖228所示,可以作為R主碼的屬性組是A、XYZ B、XYW C、XZW D、YZW8關(guān)系R和S分別

7、有20、15個元組,則RS、R-S、RS的元組數(shù)不可能是A、29,13,6 B、30,15,5 C、35,20,0 D、28,13,7R-S=R-(RS)9設關(guān)系R和S的屬性數(shù)目分別是a和b、則關(guān)系RS的屬性數(shù)目是 A、a十b B、ab C、ab D、ab三、解答題1設有4個關(guān)系模式:供應商關(guān)系:S(SNO,SNAME,CITY),屬性依次是供應商號、供應商名稱和所在城市零件關(guān)系:P(PNO,PNAME,COLOR),屬性依次是是產(chǎn)品號、品名和顏色工程關(guān)系:J(JNO,JNAME,CITY),屬性依次是是工程號、工程名和所在城市供應關(guān)系:SPJ(SNO,PNO,JNO,QTY),屬性依次是供應

8、商號、產(chǎn)品號、工程號和數(shù)量試用關(guān)系代數(shù)完成下列操作:()J1工程零件的所有供應商號i(2)求供應J1工程P1零件的供應商號;(3)求供應J1工程紅色零件的供應商號;(4)求沒有使用天津供應商生產(chǎn)的紅色零件的工程號;(5)求S1供應商供應零件的所有工程號。2設有3個關(guān)系模式: 學生(學號,姓名,性別,專業(yè)) 課程(課程號,課程名稱,學分) 成績(學號,課程號,分數(shù))試用關(guān)系代數(shù)表達式完成下列操作:(1)所有學生成績獲得滿分(100分)的課程號、課程名稱;(2)檢索至少有一門課程的分數(shù)達到95分以上的學生信息,包括學號、姓名和專業(yè)(3)檢索沒有任何一門課程成績在80分以下的學生的信息,包括學號、姓

9、名和專業(yè)(4)檢索”英語”專業(yè)學生所學課程的信息,包括學號、姓名 、課程名稱和分數(shù);(5)檢索“數(shù)據(jù)庫原理“課程分數(shù)高于90分的所有學生的學號、姓名、專業(yè)和分數(shù); (6)檢索沒有不及格分數(shù)的學生的信息,包括學號、姓名和專業(yè);(7)檢索“國際貿(mào)易”專業(yè)選修“數(shù)據(jù)庫原理”課程的學號和姓名。答案:(1)所有學生成績獲得滿分(100分)的課程號、課程名稱;課程號,課程名稱(分數(shù)=100(成績)| 課程)(2)檢索至少有一門課程的分數(shù)達到95分以上的學生信息,包括學號、姓名和專業(yè)學號,姓名,專業(yè)(分數(shù)=95(成績)| 學生)(3)檢索沒有任何一門課程成績在80分以下的學生的信息,包括學號、姓名和專業(yè)學號

10、,姓名,專業(yè)(學生)-學號,姓名,專業(yè)(分數(shù)90( 成績)|學生)(6)檢索沒有不及格分數(shù)的學生的信息,包括學號、姓名和專業(yè);學號,姓名,專業(yè)(學生)-學號,姓名,專業(yè)(分數(shù)100000(員工|工作)(4)列出所有居住地與工作的公司在同一城市的員工姓名;職工姓名 (員工.城市=公司.城市(員工|工作|公司) (5)列出不在泰斗公司的所有員工的姓名職工姓名(員工)- 職工姓名(公司名稱=泰斗公司(員工|工作|)習題三一、單項選擇題1SQL語言是 A、高級語言 B、宿主語言 C、匯編語言 D、非過程化語言2在SQL語言查詢語句中,SELECT子句實現(xiàn)關(guān)系代數(shù)的 A、投影運算 B、選擇運算 C、連接

11、運算 D、交運算3在SQL語言查詢語句中,WHERE子句實現(xiàn)關(guān)系代數(shù)的 A、投影運算 B、選擇運算 C、連接運算 D、交運算4為在查詢結(jié)果中去掉重復元組應該使用保留字 A、UNIQUE B、UNION C、COUNT D、DISTINCT 5當關(guān)系R和S做自然連接時,能夠保留R中不滿足連接條件元組的操作是 A、左外連接 B、右外連接 C、內(nèi)部連接 D、全外連接6SQL語言中,更新表結(jié)構(gòu)的的命令是 A、UPDATE TABLE B、MODIFY TABLE C、ALTER TABLE D、CHANGE TABLE7下列聚合函數(shù)中不忽略空值(NULL)的是 A、SUM(列名) B、MAX(列名)

12、C、AVG(列名) D、COUNT(*)8SQL語言中,下列涉及空值操作的短語,不正確的是(VFP全部正確, SQL SERVER中C錯) A、AGE IS NULL B、AGE IS NOT NULL C、AGENULL D、NOT (AGE IS NULL)9SQL語言中,刪除一個表的命令是 A、CLEAR TABLE C、DROP TABLEC、DELETE TABLE D、REMOVE TABLE10設有一個關(guān)系:DEPT(DNO,DNANE)如果要找出倒數(shù)第三個字母為W并且至少包含4個字母的DNAME,則查詢條件子句應寫成WHERE DNANC LIKE /有疑問A_ _W_, B

13、_W_, C _ _W_ D_W_ _SELECT * FROM STUDENT WHERE SNAME LIKE _林_%11 已知班級和學生關(guān)系如圖3.11所示。執(zhí)行下列語句,在學生關(guān)系中插入新的數(shù)據(jù):I INSERT INTO 學生 VALUES(101,”李玲”,”女”,”C01”)INSERT INTO 學生 VALUES(103,”田京”,”男”,”C03”) INSERT INTO 學生 VALUES(106,”康雨”,” 男”,NULL) INSERT INTO 學生 VALUES(105,”何光”,” 男”,”C02”)能正確執(zhí)行的語句是 A、I, B、, C、I, D、I,

14、二、解答題1沒有3個關(guān)系模式:業(yè)務員(業(yè)務員編號,業(yè)務員姓名,性別,年齡,月薪)訂單(訂單號,日期,客戶編號,業(yè)務員編號,金額)客戶(客戶編號,客戶姓名,地址,類別)用SQL語句解答下列(1)-(12)題。(1)顯示所有50歲以上女業(yè)務員的姓名和年齡;(2)檢索年齡最大的業(yè)務員姓名和年齡;(3)顯示所有業(yè)務員的姓名和月薪要求按照月薪降序排列;(4)檢索月薪在2000元到3000元之間的業(yè)務員姓名。用BETWEEN關(guān)鍵詞;(5)統(tǒng)計每個客戶簽定訂單的數(shù)目和總金額; (6)檢索所有經(jīng)辦客戶王明訂單的業(yè)務員姓名(分別用連接和子查詢實現(xiàn))(7)統(tǒng)計每個業(yè)務員簽定500元以上訂單的數(shù)目;(8)檢索簽定2

15、個以上訂單的業(yè)務員姓名;(9)將所有業(yè)務員的月薪增加10;(10)將業(yè)務員關(guān)悅的月薪改為3500元;(11)檢索超過平均月薪的業(yè)務員姓名和年齡;(12)將簽定訂單總金額超過2萬元的月薪增加5。答案:(1)顯示所有50歲以上女業(yè)務員的姓名和年齡;SELECT 業(yè)務員姓名, 年齡 FROM 業(yè)務員 WHERE 年齡50 AND 性別=女(2)檢索年齡最大的業(yè)務員姓名和年齡;SELECT 業(yè)務員姓名, 年齡 FROM 業(yè)務員 WHERE 年齡=(SELECT MAX(年齡) FROM 業(yè)務員 )(3)顯示所有業(yè)務員的姓名和月薪要求按照月薪降序排列;SELECT 業(yè)務員姓名,月薪 FROM 業(yè)務員 O

16、RDER BY月薪 DESC(4)檢索月薪在2000元到3000元之間的業(yè)務員姓名。用BETWEEN關(guān)鍵詞;SELECT 業(yè)務員姓名 FROM 業(yè)務員 WHERE 月薪 BETWEEN 2000 AND 3000(5)統(tǒng)計每個客戶簽定訂單的數(shù)目和總金額;SELECT客戶編號,COUNT(*) 訂單數(shù)目,SUM(金額) 總金額 FROM 訂單 GROUP BY 客戶編號(6)檢索所有經(jīng)辦客戶王明訂單的業(yè)務員姓名(分別用連接和子查詢實現(xiàn))SELECT 業(yè)務員.業(yè)務員姓名 FROM 業(yè)務員,訂單,客戶 WHERE 業(yè)務員.業(yè)務員編號=訂單.業(yè)務員編號 AND 訂單.客戶編號=客戶.客戶編號 AND

17、客戶.客戶姓名=王明SELECT 業(yè)務員.業(yè)務員姓名 FROM 業(yè)務員 inner join 訂單 inner join 客戶 on 業(yè)務員.業(yè)務員編號=訂單.業(yè)務員編號 on 訂單.客戶編號=客戶.客戶編號 where 客戶.客戶姓名=王明SELECT 業(yè)務員姓名 FROM 業(yè)務員 WHERE 業(yè)務員.業(yè)務員編號 IN(SELECT 業(yè)務員編號 FROM 訂單 WHERE 客戶編號 IN(SELECT 客戶編號 FROM 客戶 WHERE 客戶姓名=王明)(7)統(tǒng)計每個業(yè)務員簽定500元以上訂單的數(shù)目;SELECT 業(yè)務員編號,COUNT(*) 訂單數(shù)目 FROM 訂單 where 金額50

18、0 GROUP BY 業(yè)務員編號 (8)檢索簽定2個以上訂單的業(yè)務員姓名;SELECT 業(yè)務員姓名 FROM 業(yè)務員 WHERE 業(yè)務員編號 IN(SELECT 業(yè)務員編號 FROM 訂單 GROUP BY 業(yè)務員編號 HAVING COUNT(*)2)(9)將所有業(yè)務員的月薪增加10;UPDATE 業(yè)務員 SET 月薪=月薪*1.1(10)將業(yè)務員關(guān)悅的月薪改為3500元;UPDATE 業(yè)務員 SET 月薪=3500 WHERE業(yè)務員姓名=關(guān)悅(11)檢索超過平均月薪的業(yè)務員姓名和年齡;SELECT 業(yè)務員姓名, 年齡 FROM 業(yè)務員 WHERE月薪(SELECT AVG(月薪) FROM

19、 業(yè)務員 )(12)將簽定訂單總金額超過2萬元的月薪增加5。UPDATE 業(yè)務員 SET 月薪=月薪*1.05 WHERE 業(yè)務員編號 IN(SELECT 業(yè)務員編號 FROM 業(yè)務員 GROUP BY 業(yè)務員編號 HAVING SUM(金額) 20000)2設有3個關(guān)系模式:學生(學號,姓名,性別,專業(yè),籍貫)課程(課程號,課程名,學時,性質(zhì))成績(學號,課程號,分數(shù))回答下列(1)-(10)題。(1)檢索所有女同學的姓名。試寫出實現(xiàn)該查詢的關(guān)系代數(shù)表達式;(2)檢索選修“數(shù)據(jù)庫”課程的學生姓名。要求寫出關(guān)系代數(shù)表達式和實現(xiàn)這個查詢的SQL語句;(3)檢索課程號等于“C101”,且分數(shù)90分

20、以上(含90分)學生的姓名。要求寫出關(guān)系代數(shù)表達式和實現(xiàn)這個查詢的SQL語句;(4)寫出SQL語句,檢索學習“Cl01”課程中分數(shù)最高的學生姓名;(5)寫出SQL語句,檢索所有未選修“Cl01”課程的學生姓名;(6)寫出SQL語句,在成績表中增加“學分”列,并根據(jù)學分學時/18的算法,填上每門課程的學分;(7)寫出SQL語句,實現(xiàn)關(guān)系代數(shù)表達式:成績-s分數(shù)=60(成績);(8)寫出SQL語句,檢索選修5門以上課程的學生姓名;(9)創(chuàng)建一個查詢成績的視圖VSK,其屬性有姓名、課程名和分數(shù);(10)檢索學生選課情況,顯示姓名、課程名和分數(shù),其中包括沒有選課的學生。答案:(1)檢索所有女同學的姓名

21、。試寫出實現(xiàn)該查詢的關(guān)系代數(shù)表達式;姓名 (性別=女(學生)(2)檢索選修“數(shù)據(jù)庫”課程的學生姓名。要求寫出關(guān)系代數(shù)表達式和實現(xiàn)這個查詢的SQL語句;姓名 (課程名= 數(shù)據(jù)庫(課程|成績)|學生)SELECT姓名 FROM 課程,成績,學生 WHERE課程.課程名=數(shù)據(jù)庫 AND 課程.課程號=成績.課程號 AND 成績.學號=學生.學號(3)檢索課程號等于“C101”,且分數(shù)90分以上(含90分)學生的姓名。要求寫出關(guān)系代數(shù)表達式和實現(xiàn)這個查詢的SQL語句;姓名 (課程號= C101分數(shù)=90(成績)|學生)SELECT姓名 FROM 成績,學生 WHERE 成績.課程號=C101 AND

22、成績.分數(shù) =90 AND成績.學號=學生.學號(4)寫出SQL語句,檢索學習“Cl01”課程中分數(shù)最高的學生姓名;SELECT姓名 FROM 學生 WHERE 學號 IN (SELECT 學號 FROM 成績 WHERE 課程號=C101 AND 分數(shù)=(SELECT MAX(分數(shù)) FROM 成績 WHERE 課程號=C101)(5)寫出SQL語句,檢索所有未選修“Cl01”課程的學生姓名;SELECT姓名 FROM 學生 WHERE 學號 NOT IN (SELECT 學號 FROM 成績 WHERE 課程號=C101)SELECT姓名 FROM 學生 WHERE 學號 IN (SELE

23、CT 學號 FROM 成績 WHERE NOT 課程號=C101)(6)寫出SQL語句,在成績表中增加“學分”列,并根據(jù)學分學時18的算法,填上每門課程的學分;ALTER TABLE 成績 ADD 學分 INTEGERUPDATE 成績 SET 學分課程.學時/18 FROM成績 INNER JOIN 課程 ON 成績.課程號= 課程.課程號(7)寫出SQL語句,實現(xiàn)關(guān)系代數(shù)表達式:成績-s分數(shù)=60(成績);SELECT * FROM 成績 WHERE NOT 分數(shù)=60(8)寫出SQL語句,檢索選修5門以上課程的學生姓名;SELECT姓名 FROM 學生 WHERE 學號 IN (SELE

24、CT 學號 FROM 成績 GOUP BY 學號 HAVING COUNT(*)5)(9)創(chuàng)建一個查詢成績的視圖VSK,其屬性有姓名、課程名和分數(shù);CREATE VIEW VSK AS SELECT學生.姓名,課程.課程名,成績.分數(shù) FROM 課程,成績,學生 WHERE 課程.課程號=成績.課程號 AND 成績.學號=學生.學號(10)檢索學生選課情況,顯示姓名、課程名和分數(shù),其中包括沒有選課的學生。SELECT學生.姓名,課程.課程名,成績.分數(shù) FROM 學生 left outer join 成績 inner join課程 on 成績.學號=學生.學號 ON 課程.課程號=成績.課程號

25、 (錯誤的寫法)SELECT學生.姓名,課程.課程名,成績.分數(shù) FROM 學生 left outer join 成績 on 成績.學號=學生.學號 inner join課程 ON 課程.課程號=成績.課程號 inner、outer可省略SELECT student.sname,ame,sc.grade FROM student left outer join sc on sc.sno=student.sno inner join course ON o=o習題四一、名詞解釋實體、實體集、屬性、屬性域、主碼、單值屬性、多值屬性、派生屬性、基數(shù)二、單項選擇題1數(shù)據(jù)庫設計中,概念模型A、依賴于計算

26、機的硬件 B、依賴于DBMSC、獨立于DBMS D、獨立于計算機的硬件和DBMS2將E-R模型轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型屬于數(shù)據(jù)庫的A、概念設計 B、物理設計 C、邏輯設計 D、運行設計3設在某個公司環(huán)境中,一個部門有多名職工,一名職工只能屬于一個部門,則部門與職工之間的聯(lián)系是A、對一 B、一對多 C、多對多 D、不確定4概念結(jié)構(gòu)設計的主要目標是真實地反映 A、企業(yè)對信息的需求 B、DBA的管理信息需求 C、數(shù)據(jù)庫系統(tǒng)的維護需求 D、應用程序員的編程需求5數(shù)據(jù)庫設計人員和用戶之間溝通信息的橋梁是 A、程序流程圖 B、實體-聯(lián)系圖 C、模塊結(jié)構(gòu)圖 D、數(shù)據(jù)結(jié)構(gòu)圖6在E-R模型轉(zhuǎn)換成關(guān)系模型的過程中,下列

27、不正確的做法是 A、每個聯(lián)系均轉(zhuǎn)換成一個關(guān)系 B、每個實體集均轉(zhuǎn)換成一個關(guān)系 C、1:N聯(lián)系不必轉(zhuǎn)換成關(guān)系 D、M:N聯(lián)系轉(zhuǎn)換成個關(guān)系7假設任一個E-R模型中,存在10個不同的實體集和12個不同的二元聯(lián)系(二元聯(lián)系是指兩個實體集之目的聯(lián)系),其中3個1:1聯(lián)系、4個1:N聯(lián)系、5個M:N聯(lián)系,則這個E-R模型轉(zhuǎn)換成關(guān)系的數(shù)目可能是 A、14 B、15 C、19 D、228當同一個實體集內(nèi)部實體之間存在著一個M:N的關(guān)系時,根據(jù)E-R模型轉(zhuǎn)換成關(guān)系模型的規(guī)則,轉(zhuǎn)換成關(guān)系的數(shù)目為A、1 B、2 C、3 D、4三、簡答題1簡述數(shù)據(jù)庫設計的基本步驟。2概念設計的主要內(nèi)容有哪些?3使用派生屬性有什么好處

28、?4確定基數(shù)的依據(jù)是什么?基數(shù)的用途是什么?5舉例說明一元、二元、三元和N元聯(lián)系。6舉例說明實體之間的聯(lián)系方式?7簡述E-R模型轉(zhuǎn)換為關(guān)系模型的規(guī)則。四、設計題1假設圖書館業(yè)務規(guī)則:(1)讀者需要憑借書證借閱圖書,借書證有借書證號、姓名、年齡、單位等屬性;(2)每一本圖書有書號、書名、作者、出版社等屬性;(3)每一本借出的圖書有借書證號、書號、借出日期、應還日期。試:根據(jù)上述業(yè)務規(guī)則設計E-R模型,要求E-R圖中注明屬性和聯(lián)系的類型。將E-R模型轉(zhuǎn)換成關(guān)系模型。用SQL語句創(chuàng)建表、定義完整性規(guī)則。答案:三個關(guān)系模式:借書證(借書證號,姓名,年齡,單位),主碼為借書證號;圖書(書號,書名,作者,

29、出版社),主碼為書號;借閱(借書證號,書號,借出日期,應還日期),主碼為借書證號,書號,借書證號為外碼,書號為外碼。書名借書證借書證號姓名單位年齡圖書書號作者m借閱借出日期n出版社應還日期略2假設城市交通管理業(yè)務規(guī)則:(1)每個駕車者必須有駕駛執(zhí)照,駕照有編號、姓名、性別、年齡、身份證號、工作單位、發(fā)證日期等屬性(2)每個機動車要有一個牌照,牌照有車號、型號、制造商、生產(chǎn)日期、所有者等屬性;(3)如果司機違反交通規(guī)則,將受到懲罰,懲罰記錄有日期、車號、駕照編號、違章情節(jié)記載、處罰方式等屬性。試:根據(jù)上述業(yè)務規(guī)則設計E-R模型,要求E-R圖中注明屬性和聯(lián)系的類型。將E-R模型轉(zhuǎn)換成關(guān)系模型。用S

30、QL語句創(chuàng)建表、定義完整性規(guī)則。答案:型號駕照編號姓名性別年齡牌照車號制造商n懲罰日期m生產(chǎn)日期違章情節(jié)記載處罰方式三個關(guān)系模式:略3假設某集團公司生產(chǎn)多種產(chǎn)品,公司在全國沒有多個代理兩,由代理商經(jīng)銷本公司的所有產(chǎn)品。每個代理商可以經(jīng)銷公司的多種產(chǎn)品,且在每一個代理商處都能夠買到公司的任何一種產(chǎn)品。代理商有編號、代理商名稱和地址等屬性;產(chǎn)品有產(chǎn)品號、品名、規(guī)格、單價等屬性。代理商與產(chǎn)品之間存在供貨聯(lián)系,每次供貨將記錄供貸日期、產(chǎn)品號、數(shù)量、單價和經(jīng)辦人。試:根據(jù)上述業(yè)務規(guī)則設計E-R模型,要求E-R圖中注明屬性和聯(lián)系的類型。將E-R模型轉(zhuǎn)換成關(guān)系模型。用SQL語句創(chuàng)建表、定義完整性規(guī)則。答案:

31、略習題五一、單項選擇題1如果關(guān)系模式R屬于1NF,且每個非主屬性都完全函數(shù)依賴于R的主碼,則R屬于A、2NF B、3NF C、BCNF D、4NF2有關(guān)系R(P,Q,M,N),F(xiàn)是R上成立的函數(shù)依賴集,F(xiàn)(PQ,QM)|,則R的候選碼是A、P B、Q C、PQ D、PN3有學生關(guān)系R(學號,姓名,系名稱,系地址),每一名學生屬于一個系,每一個系有一個地址,則R屬于A、1NF B、2 NF C、3 NF D、4 NF4下列陳述中錯誤的是A、2NF必然屬于1NF B、3NF必然屬于2NFC、3NF必然屬于BCNF D、BCNF必然屬于3NF5已知關(guān)系R(A,B,C,D),F(xiàn)是R上成立的函數(shù)依賴集,

32、F(A,BC,D),BD,則R應分解成A、R1(A,B)和R2(C,D) B、R1(A,B,C) 和 R2(B,D)C、R1 (A,C)和R2(B,D) D、R1(A,B,D) 和R2(B,C)6在訂單管理中,客戶次購物(一張訂單)可以訂購多種商品。設有訂單關(guān)系R(訂單號,日期,客戶名稱,商品編碼,數(shù)量),則R的主碼是A、訂單號 B、訂單號,客戶名稱 C、商品編碼 D、訂單號,商品編碼7第6題中的關(guān)系R最高屬于A、1NF B、2NF C、3NF D、4NF(商品編碼,數(shù)量,日期多值依賴于訂單號,但是訂單號不是候選碼)8設有關(guān)系模式R(A,B,C,D)F是R上的函數(shù)依賴集,F(xiàn)DA,DB,R的候選

33、碼是A、AD B、BC C、BD D、CD9設有關(guān)系模式R(A,B,C,D,M,N),R上的函數(shù)依賴集F MD,CB,BA,(C,M)N,則R最高達到/推出C,M為候選碼,推出(C,M)D,推出MD為部分函數(shù)依賴A、1NF B、2NF C、3NF D、4NF二、綜合設計題解題步驟:1)分析問題中包含的基本概念(即實體)2)假設一個實體對應一個關(guān)系模式,確定每個關(guān)系模式的主碼3)由上述基本關(guān)系模式的主碼合并成一個超碼4)剔除超碼中的部分屬性,得到給定關(guān)系模式的候選碼5)由每個關(guān)系模式的主碼、給定關(guān)系模式的候選碼識別出屬性間的基本函數(shù)依賴關(guān)系6)識別出部分依賴關(guān)系、傳遞依賴關(guān)系1假設某商業(yè)集團數(shù)據(jù)

34、庫中有一個關(guān)系模式:R(商店編號,商品編號,數(shù)量,部門編號,負責人)如果規(guī)定:(1)每個商店的每種商品只在一個部門銷售;(2)每個商店的每個部門只有一個負責人;(3)每個商店的每種商品只有一個庫存數(shù)量。試回答下列問題:根據(jù)上述規(guī)定寫出R的基本函數(shù)依賴;找出R的候選碼;試問R最高達到第幾范式?為什么?如果R不屬于3NF,請將分解成3NF模式集。答案:R中包含三個基本概念:商店,商品,部門R的基本函數(shù)依賴包括:商店編號,商品編號數(shù)量,商店編號,商品編號部門編號,商店編號,商品編號負責人/傳遞依賴,部門編號負責人R的候選碼為商店編號,商品編號R最高達到2范式。因為非主屬性都完全函數(shù)依賴于候選碼,但存

35、在傳遞函數(shù)依賴商店編號,商品編號負責人可將R分解為兩個關(guān)系模式:商店商品(商店編號,商品編號,數(shù)量,部門編號)部門(部門編號,負責人)2假設當前使用一個手工操作的學生文檔,其文檔的格式如圖5.13所示假設規(guī)定:(1)一名學生可以選修多門課程,且一門課程有多人選修;(2)一門課程僅有一個教師講授,名教師可以講多門課程;(3)學生學習一門課程有一個分數(shù);(4)每一名教師有一個辦公室,一個辦公室有多么教師;如果依據(jù)上述文檔和規(guī)定,設計一個關(guān)系模式R:R(學號,學生姓名,課程號,課程名,分數(shù),教師姓名,教師辦公室)試:找出R的候選碼;寫出關(guān)系R的基本函數(shù)依賴集,并畫出函數(shù)依賴圖;判斷R最高達到第幾范式

36、,說明理由;如果有必要,將R分解成3NF模式集。答案:R中包含三個基本概念:學生,課程,教師(學號,學生姓名,課程號,課程名,分數(shù),教師姓名,教師辦公室R的候選碼為學號,課程號R的基本函數(shù)依賴包括:學號,課程號學生姓名,/部分函數(shù)依賴學號,課程號課程名,/部分函數(shù)依賴學號,課程號分數(shù),學號,課程號教師姓名,/部分函數(shù)依賴學號,課程號教師辦公室,/傳遞依賴學號學生姓名,課程號課程名,教師姓名教師辦公室,課程號教師姓名,課程號教師辦公室R最高達到1范式。因為存在非主屬性部分函數(shù)依賴于主碼,如學號學生姓名可將R分解為五個關(guān)系模式:學生(學號,學生姓名)課程(課程號,課程名)教師(教師姓名,教師辦公室

37、)成績(學號,課程號,分數(shù))教師課程(教師姓名,課程號)函數(shù)依賴圖略3假設公司的訂單業(yè)務規(guī)定:(1)訂單號是惟一的,每一張訂單對應一個訂單號;(2)一張訂單可以訂購多種產(chǎn)品,每一種產(chǎn)品可以在多個訂單中出現(xiàn);(3)一張訂單有一個客戶,且一個客戶可以有多張訂單;(4)每一個產(chǎn)品編號對應一種產(chǎn)品的品名和單價;(5)每一個客戶有一個確定的名稱和電話號碼。根據(jù)上述規(guī)定設計一個關(guān)系模式:R(訂單號,日期,客戶名稱,電話號碼,產(chǎn)品編碼,品名,價格,數(shù)量)試:找出R的候選碼;寫出關(guān)系R的基本函數(shù)依賴集,并畫出函數(shù)依賴圖;判斷R最高達到第幾范式,說明理由;給出一個可能的3NF模式集。答案:訂單號,客戶名稱,產(chǎn)品

38、編碼為一個超碼,由于“一張訂單有一個客戶”,所以訂單號,產(chǎn)品編碼為一個候選碼關(guān)系R的基本函數(shù)依賴集為(訂單號日期),(客戶名稱電話號碼),(產(chǎn)品編碼品名),(產(chǎn)品編碼價格),(訂單號,產(chǎn)品編碼數(shù)量),(訂單號客戶名稱),(訂單號電話號碼)/傳遞依賴,(訂單號,產(chǎn)品編碼日期)/部分依賴,(訂單號,產(chǎn)品編碼客戶名稱),(訂單號,產(chǎn)品編碼電話號碼),(訂單號,產(chǎn)品編碼品名),(訂單號,產(chǎn)品編碼價格),(訂單號,產(chǎn)品編碼數(shù)量)函數(shù)依賴圖略R最高達到第幾范式1NF,因為非主屬性日期部分函數(shù)依賴于主碼訂單號,產(chǎn)品編碼一個可能的3NF模式集為:訂單(訂單號,客戶名稱,產(chǎn)品編碼,日期,數(shù)量),主碼為訂單號,產(chǎn)

39、品編碼客戶(客戶名稱,電話號碼),主碼為客戶名稱產(chǎn)品(產(chǎn)品編碼,品名,價格),主碼為產(chǎn)品編碼習題六一、簡答題1什么是局部變量和全局變量?2局部變量與全局變量的主要區(qū)別是什么?3在SQL程序設計中,游標的用途是什么?4簡述SQL程序設計中游標的使用方法。5什么是存儲過程?其優(yōu)點是什么?6什么是數(shù)據(jù)庫觸發(fā)器?其作用是什么?7INSERTED和DELETED表的用途是什么?8簡述INSERT觸發(fā)器的工作原理。9簡述DELETE觸發(fā)器的工作原理。10簡述UPDATE觸發(fā)器的工作原理。11簡述INSTEAD OF觸發(fā)器的工作原理。12簡述嵌入式SQL的預處理過程。二、SQL程序設計1. 編寫一個SQL程

40、序,完成將新生信息插入到學生檔案表,并將其中一部分信息再插入借書證表、學生貸款、學生醫(yī)療表,要求插入之后顯示插入的數(shù)據(jù)。2. 在學生檔案表上創(chuàng)建一個觸發(fā)器,實現(xiàn)下列任務:當新生信息插入到學生檔案表中時,將其中一部分信息再插入借書證表、學生貸款、學生醫(yī)療表,要求插入之后顯示插入的數(shù)據(jù)。CREATE TRIGGER TRIGGER_學生檔案表_INSERTON 學生檔案表 FOR INSERTAS BEGIN insert into 借書證表(學號) select學號from inserted insert into 學生貸款(學號) select學號from inserted insert in

41、to 學生醫(yī)療表(學號) select學號from inserted select * from inserted ENDGO3. 在某出版社數(shù)據(jù)厙中,有圖書關(guān)系R(書號,書名,類別,定價)。如果教材類圖書的平均定價大于30,則顯示“平均價格超過30元”,反之顯示“平均價格不超過30元”,并列出所有教材類的書名。編寫一個SQL程序完成這個任務。USE 出版社GOIF(SELECT AVG(定價) FROM R WHERE類別=教材)30 PRINT 平均價格超過30元ELSEBEGINPRINT 平均價格不超過30元SELECT書名FROM R WHERE類別=教材ENDGO4. 在某出版社數(shù)

42、據(jù)厙中,有圖書關(guān)系R(書號,書名,類別,定價)。如果教材類圖書的平均定價大于30,則執(zhí)行循環(huán),將高于平均值的教材類圖書的定價下調(diào)1%,直至所有教材類圖書的平均定價小于或等于30元為止。編寫一個SQL程序完成這個任務。USE 出版社GODECLARE PJDJ FloatWHILE (select PJDJ = AVG(定價) FROM R WHERE類別=教材) 30UPDATE R SET定價=定價*0.99 WHERE類別=教材 AND定價 PJDJGO5. 假設有銀行賬戶關(guān)系R(賬號,客戶姓名,余額)。轉(zhuǎn)賬業(yè)務規(guī)定,當一個賬戶余額大于等于轉(zhuǎn)賬金額時,則執(zhí)行轉(zhuǎn)賬業(yè)務,并通知客戶轉(zhuǎn)賬的金額和賬面余額;否則不執(zhí)行轉(zhuǎn)賬操作。通知客戶不執(zhí)行轉(zhuǎn)賬的理由。試編寫轉(zhuǎn)賬業(yè)務的存儲過程,該存儲過程有轉(zhuǎn)出賬號、轉(zhuǎn)入賬號和轉(zhuǎn)賬金額3個參數(shù),要求保證事務的原子性。6. 有學生和成績關(guān)系如下: S(學號,姓名,性別,專業(yè)) R(學號,課程號,課程名稱,分數(shù))試編

溫馨提示

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

評論

0/150

提交評論