【正文】
A. E3最快 B. E2最快 C. E4最快 D. E1最快 19. 有關(guān)系SC(S_ID,C_ID,AGE,SCORE),查找年齡大于22歲的學(xué)生的學(xué)號和分?jǐn)?shù),正確的關(guān)系代數(shù)表達式是( ) 。 2. 試述關(guān)系數(shù)據(jù)語言的特點和分類。 試用關(guān)系代數(shù)完成如下查詢: ?。?) 求供應(yīng)工程J1零件的供應(yīng)商號碼SNO; ?。?) 求供應(yīng)工程J1零件P1的供應(yīng)商號碼SNO; ?。?) 求供應(yīng)工程J1零件為紅色的供應(yīng)商號碼SNO; (4) 求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號JNO; ?。?) 求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號JNO。在參照完整性中,為什么外碼屬性的值有時也可以為空?什么情況下才可以為空? 6. 試述等值連接與自然連接的區(qū)別和聯(lián)系。 第三章 SQL語言 一、選擇題 1. SQL語言是( )的語言,容易學(xué)習(xí) 。其中最重要的,也是使用最頻繁的語句是( ) 。 A. 更新視圖 B. 查詢 C. 在視圖上定義新的表 D. 在視圖上定義新的視圖 4. SQL語言集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制功能于一體,其中,CREATE、DROP、ALTER語句是實現(xiàn)哪種功能( )。 6. 在SQL語言中的視圖VIEW是數(shù)據(jù)庫的( ) 。 A. CREATE TABLE B. DROP VIEW C. CREATE VIEW. D GRAN T 8. 若要撤銷數(shù)據(jù)庫中已經(jīng)存在的表S,可用( )。 TABLE S(CN CHAR(8)) TABLE S ALTER(CN CHAR(8)) TABLE S ADD(CN CHAR(8)) TABLE S (ADD CN CHAR(8)) 10. 學(xué)生關(guān)系模式 S( S#,Sname,Sex,Age),S的屬性分別表示學(xué)生的學(xué)號、姓名、性別、年齡。 A. DELETE Age from S B. ALTER TABLE S DROP Age C. UPDATE S Age D. ALTER TABLE S ‘Age’ 11. 有關(guān)系S(S#,SNAME,SAGE),C(C#,CNAME),SC(S#,C#,GRADE)。要查詢選修“ACCESS”課的年齡不小于20的全體學(xué)生姓名的SQL語句是SELECT SNAME FROM S,C,SC WHERE子句。 A. = and = and SAGE=20 and CNAME=‘ACCESS’ B. = and = and SAGE in=20 and CNAME in ‘ACCESS’ C. SAGE in=20 and CNAME in ‘ACCESS’ D. SAGE=20 and CNAME=’ ACCESS’ 12. 設(shè)關(guān)系數(shù)據(jù)庫中一個表S的結(jié)構(gòu)為S(SN,CN,grade),其中SN為學(xué)生名,CN為課程名,二者均為字符型;grade為成績,數(shù)值型,取值范圍0-100。 A. ADD INTO S VALUES(’張二’,’化學(xué)’,’80’) B. INSERT INTO S VALUES(’張二’,’化學(xué)’,’80’) C. ADD INTO S VALUES(’張二’,’化學(xué)’,80) D. INSERT INTO S VALUES(’張二’,’化學(xué)’,80) 13. 設(shè)關(guān)系數(shù)據(jù)庫中一個表S的結(jié)構(gòu)為:S(SN,CN,grade),其中SN為學(xué)生名,CN為課程名,二者均為字符型;grade為成績,數(shù)值型,取值范圍0-100。 A. UPDATE S SET grade=85 WHERE SN=’王二’ AND CN=’化學(xué)’ B. UPDATE S SET grade=’85’ WHERE SN=’王二’ AND CN=’化學(xué)’ C. UPDATE grade=85 WHERE SN=’王二’ AND CN=’化學(xué)’ D. UPDATE grade=’85’ WHERE SN=’王二’ AND CN=’化學(xué)’ 14. 在SQL語言中,子查詢是( ) 。 A. 高級算法 B. 人工智能 C. 關(guān)系數(shù)據(jù)庫 D. 函數(shù)型 16. 有關(guān)系S(S#,SNAME,SEX),C(C#,CNAME),SC(S#,C#,GRADE)。要查詢選修“數(shù)據(jù)庫”課的全體男生姓名的SQL語句是SELECT SNAME FROM S,C,SC WHERE子句。 = and = and SEX=’男’ and CNAME=’數(shù)據(jù)庫’ = and = and SEX in’男’and CNAME in’數(shù)據(jù)庫’ ’男’ and CNAME ’ 數(shù)據(jù)庫’ =’男’ and CNAME=’ 數(shù)據(jù)庫’ 17. 若用如下的SQL語句創(chuàng)建了一個表SC: CREATE TABLE SC (S CHAR(6) NOT NULL,C CHAR(3) NOT NULL,SCORE INTEGER,NOTE CHAR(20));向SC表插入如下行時,( )行可以被插入 。要查詢選修“Computer”課的男生姓名,將涉及到關(guān)系( )。 答: ?。?)綜合統(tǒng)一。 ?。?)高度非過程化。 ?。?)面向集合的操作方式。 ?。?)以同一種語法結(jié)構(gòu)提供兩種使用方式。作為自含式語言,它能夠獨立地用于聯(lián)機交互的使用方式,也能夠嵌入到高級語言程序中,供程序員設(shè)計程序時使用。 2. 試述SQL的定義功能。 SQL語言使用CREATE TABLE語句定義建立基本表,;ALTER TABLE語句修改基本表定義,DROP TABLE語句刪除基本表;建立索引使用CREATE INDEX語句建立索引, DROP INDEX語句刪除索引表;SQL語言使用CREATE VIEW命令建立視圖,DROP VIEW語句刪除視圖。 答: 對于S表:S( SNO,SNAME,STATUS,CITY); 建S表 CREATE TABLE S (SNO CHAR(3), SNAME CHAR(10), STATUS CHAR(2), CITY CHAR(10)); P(PNO,PNAME,COLOR,WEIGHT); 建P表 CREATE TABLE P (PNO CHAR(3), PNAME CHAR(10), COLOR CHAR(4), WEIGHT INT); J(JNO,JNAME,CITY); 建J表 CREATE TABLE J (JNO CHAR(3), JNAME CHAR(10), CITY CHAR(10)); SPJ(SNO,PNO,JNO,QTY); 建SPJ表 CREATE TABLE SPJ (SNO CHAR(3), PNO CHAR(3), JNO CHAR(3), QTY INT); 4. 針對上題中建立的四個表試用SQL語言完成第3章習(xí)題3中的查詢。 ?。?) 求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號JNO 。S139。S139。 (2)找出所有零件的名稱、顏色、重量。 (4)找出工程項目J2使用的各種零件的名稱及其數(shù)量。 (6)找出使用上海產(chǎn)的零件的工程名稱。 (8)把全部紅色零件的顏色改成藍色。 (10)從供應(yīng)商關(guān)系中刪除S2的記錄,并從供應(yīng)情況關(guān)系中刪除相應(yīng)的記錄。 答: (1) 找出所有供應(yīng)商的姓名和所在城市。 (2) 找出所有零件的名稱、顏色、重量。 (3) 找出使用供應(yīng)商S1所供應(yīng)零件的工程號碼。 (4) 找出工程項目J2使用的各種零件的名稱及其數(shù)量。J239。 SELECT DISTINCT PNO FROM SPJ WHERE SNO IN (SELECT SNO FROM S WHERE CITY=39。)。 SELECT JNAME FROM J, SPJ, S WHERE J. JNO=SPJ. JNO AND SPJ. SNO= AND =39。 或 SELECT JNAME FROM J WHERE JNO IN (SELECT JNO FROM SPJ, S WHERE SPJ. SNO= AND =39。)。 SELECT JNO FROM J WHERE NOT EXISTS (SELECT * FROM SPJ WHERE = AND SNO IN (SELECT SNO FROM S WHERE CITY=‘天津’)); 或 SELECT JNO FROM J WHERE NOT EXISTS (SELECT *1 FROM SPJ, S WHERE = AND = AND =‘天津’); (8) 把全部紅色零件的顏色改成藍色。藍39。紅39。 (9) 由S5供給J4的零件P6改為由S3供應(yīng),請作必要的修改。S339。S539。J439。P639。 DELETE FROM SPJ WHERE SNO=39。 或 DELETE FROM S WHERE SNO=39。 解析:注意刪除順序,應(yīng)該先從SPJ表中刪除供應(yīng)商S2所供應(yīng)零件的記錄,然后從從S表中刪除S2。 INSERT INTO SPJ(SNO, JNO, PNO, QTY) VALUES (S2,J6,P4,200)。 6. 什么是基本表?什么是視圖?兩者的區(qū)別和聯(lián)系是什么? 答:基本表是本身獨立存在的表,在SQL中一個關(guān)系就對應(yīng)一個表。視圖本身不獨立存儲在數(shù)據(jù)庫中,是一個虛表。視圖在概念上與基本表等同,用戶可以如同基本表那樣使用視圖,可以在視圖上再定義視圖。 答:(1)視圖能夠簡化用戶的操作。 (3)視圖對重構(gòu)數(shù)據(jù)庫提供了一定程度的邏輯獨立性。 8. 所有的視圖是否都可以更新?為什么? 答:不是。因為有些視圖的更新不能唯一地有意義地轉(zhuǎn)換成對相應(yīng)基本表的更新,所以,并不是所有的視圖都是可更新的。 9. 哪類視圖是可以更新的,哪類視圖是不可更新的? 各舉一例說明。如《概論》。 如《概論》。 答:(略) 解析:不同的系統(tǒng)對視圖更新的規(guī)定是不同的,讀者必須了解你所用系統(tǒng)對視圖更新的規(guī)定。針對該視圖完成下列查詢: (1)找出三建工程項目使用的各種零件代碼及其數(shù)量。 答:建視圖: CREATE VIEW V_SPJ AS SELECT SNO, PNO, QTY FROM SPJ WHERE JNO= (SELECT JNO FROM J WHERE JNAME=39。)。 SELECT PNO, QTY FROM V_SPJ。 SELECT PNO, QTY /* S1供應(yīng)三建工程的零件號和對應(yīng)的數(shù)量*/ FROM V_SPJ WHERE SNO=39。 第四章 關(guān)系系統(tǒng)及其優(yōu)化 一、選擇題 ,這一類最著名的模型是( ) 。 A. 名稱 B. 屬性 C. 對象 D. 概念 ,它的三個要素分別為( )。 B. 關(guān)系模型 D. 以上都有 5.( )的存取路徑對用戶透明,從而具有更高的數(shù)據(jù)獨立性、更好的安全保密性, 也簡化了程序員的工作和數(shù)據(jù)庫開發(fā)建立的工作。 B. 用戶定義完整性規(guī)則 D. 域完整性規(guī)則 選擇題答案: (1) D (2) B (3) B (4) A (5) B (6) C 二、簡答題 。 。 3. 定義并理解下列術(shù)語,說明它們之間的聯(lián)系與區(qū)別: ?。?)域,關(guān)系,元組,屬性 答: 域:域是一組具有相同數(shù)據(jù)類型的值的集合。 屬性:關(guān)系也是一個二維表,表的每行對應(yīng)一個元組,表的每列對應(yīng)一個域。 ?。?)主碼,候選碼,外部碼 答: 候選碼:若關(guān)系中的某一屬性組的值能唯一地標(biāo)識一個元組,則稱該屬性組為候選碼(Candidate key)。 外部碼:設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(guān)系R的碼,如果F與基本關(guān)系S的主碼Ks相對應(yīng),則稱F是基本關(guān)系R的外部碼(Foreign key),簡稱外碼。關(guān)系R和S可以是相同的關(guān)系。它可以形式化地表示為: R(U,D,dom,F(xiàn)) 其中R為關(guān)系名,U為組成該關(guān)系的屬性名集合,D為屬性組U中屬性所來自的域,dom為屬性向域的映象集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集合。關(guān)系模式是靜態(tài)的、穩(wěn)定的,而關(guān)系是動態(tài)的、隨時間不斷變化的,因為關(guān)系操作在不斷地更新著數(shù)據(jù)庫中的數(shù)據(jù)。關(guān)系數(shù)據(jù)庫的型也稱為關(guān)系數(shù)據(jù)庫模式,是對關(guān)系數(shù)據(jù)庫的描述,它包括若干域