【正文】
方法: 10.試給出三個(gè)實(shí)際部門的ER圖,要求實(shí)體型之間具有一對一,一對多,多對多各種不同的聯(lián)系。 2. 一個(gè)關(guān)系只有一個(gè)( ) 。 4. 現(xiàn)有如下關(guān)系: 患者(患者編號,患者姓名,性別,出生日起,所在單位) 醫(yī)療(患者編號,患者姓名,醫(yī)生編號,醫(yī)生姓名,診斷日期,診斷結(jié)果) 其中,醫(yī)療關(guān)系中的外碼是( )。 A. 書號 B. 讀者號 C. 書號+讀者號 D. 書號+讀者號+借期 6. 關(guān)系模型中實(shí)現(xiàn)實(shí)體間 N:M 聯(lián)系是通過增加一個(gè)( ) 。 A. 關(guān)系運(yùn)算 B. 謂詞演算 C. 集合運(yùn)算 D. 代數(shù)運(yùn)算 8. 關(guān)系數(shù)據(jù)庫管理系統(tǒng)應(yīng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括( )。 A.∪ - σ π B.∪ - σ π C.∪ ∩ σ π D.∪ ∩ σ π 10. 關(guān)系代數(shù)表達(dá)式的優(yōu)化策略中,首先要做的是( ) 。 B. 抽出特定字段 D. 建立相應(yīng)的圖形 12. 從一個(gè)數(shù)據(jù)庫文件中取出滿足某個(gè)條件的所有記錄形成一個(gè)新的數(shù)據(jù)庫文件的操作是( )操作 。 B. 選擇和笛卡爾積 、選擇、笛卡爾積 D. 投影和笛卡爾積 14. 自然聯(lián)接是構(gòu)成新關(guān)系的有效方法。 B. 行 C. 屬性 D. 元組 15. 假設(shè)有關(guān)系R和S,在下列的關(guān)系運(yùn)算中,( )運(yùn)算不要求:“R和S具有相同的元數(shù),且它們的對應(yīng)屬性的數(shù)據(jù)類型也相同” 。 ∩S B. R∪S C. R-S D. RS 17. 下面列出的關(guān)系代數(shù)表達(dá)是中,那些式子能夠成立( ) 。 E1 =πA (σ B=C ∧ D=E′ (RS) ) E2 =πA (σ B=C (R σD=E′ (S) ) E3 =πA (R∞B=CσD=E′(S) ) E3 =πA (σD=E′ (R∞B=C S) ) 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ù)表達(dá)式是( ) 。 2. 試述關(guān)系數(shù)據(jù)語言的特點(diǎn)和分類。 試用關(guān)系代數(shù)完成如下查詢: ?。?) 求供應(yīng)工程J1零件的供應(yīng)商號碼SNO; (2) 求供應(yīng)工程J1零件P1的供應(yīng)商號碼SNO; ?。?) 求供應(yīng)工程J1零件為紅色的供應(yīng)商號碼SNO; ?。?) 求沒有使用天津供應(yīng)商生產(chǎn)的紅色零件的工程號JNO; (5) 求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號JNO。在參照完整性中,為什么外碼屬性的值有時(shí)也可以為空?什么情況下才可以為空? 6. 試述等值連接與自然連接的區(qū)別和聯(lián)系。 第三章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL 一、選擇題 1. SQL語言是( )的語言,容易學(xué)習(xí) 。其中最重要的,也是使用最頻繁的語句是( ) 。 A. 更新視圖 B. 查詢 C. 在視圖上定義新的表 D. 在視圖上定義新的視圖 4. SQL語言集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制功能于一體,其中,CREATE、DROP、ALTER語句是實(shí)現(xiàn)哪種功能( )。 6. 在SQL語言中的視圖VIEW是數(shù)據(jù)庫的( ) 。 A. CREATE TABLE B. DROP VIEW C. CREATE VIEW D. GRANT 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ù)庫中一個(gè)表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ù)庫中一個(gè)表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)建了一個(gè)表SC: CREATE TABLE SC (S CHAR(6) NOT NULL,C CHAR(3) NOT NULL,SCORE INTEGER,NOTE CHAR(20));向SC表插入如下行時(shí),( )行可以被插入 。要查詢選修“Computer”課的男生姓名,將涉及到關(guān)系( )。 答: ?。?)綜合統(tǒng)一。 (2)高度非過程化。 ?。?)面向集合的操作方式。 (4)以同一種語法結(jié)構(gòu)提供兩種使用方式。作為自含式語言,它能夠獨(dú)立地用于聯(lián)機(jī)交互的使用方式,也能夠嵌入到高級語言程序中,供程序員設(shè)計(jì)程序時(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. 針對上題中建立的四個(gè)表試用SQL語言完成第3章習(xí)題3中的查詢。 (5) 求至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號JNO 。S139。S139。 (2)找出所有零件的名稱、顏色、重量。 (4)找出工程項(xiàng)目J2使用的各種零件的名稱及其數(shù)量。 (6)找出使用上海產(chǎn)的零件的工程名稱。 (8)把全部紅色零件的顏色改成藍(lán)色。 (10)從供應(yīng)商關(guān)系中刪除S2的記錄,并從供應(yīng)情況關(guān)系中刪除相應(yīng)的記錄。 答: (1) 找出所有供應(yīng)商的姓名和所在城市。 (2) 找出所有零件的名稱、顏色、重量。 (3) 找出使用供應(yīng)商S1所供應(yīng)零件的工程號碼。 (4) 找出工程項(xiàng)目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) 把全部紅色零件的顏色改成藍(lán)色。藍(lán)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)系是什么? 答:基本表是本身獨(dú)立存在的表,在SQL中一個(gè)關(guān)系就對應(yīng)一個(gè)表。視圖本身不獨(dú)立存儲在數(shù)據(jù)庫中,是一個(gè)虛表。視圖在概念上與基本表等同,用戶可以如同基本表那樣使用視圖,可以在視圖上再定義視圖。 答:(1)視圖能夠簡化用戶的操作。 (3)視圖對重構(gòu)數(shù)據(jù)庫提供了一定程度的邏輯獨(dú)立性。 8. 所有的視圖是否都可以更新?為什么? 答:不是。因?yàn)橛行┮晥D的更新不能唯一地有意義地轉(zhuǎn)換成對相應(yīng)基本表的更新,所以,并不是所有的視圖都是可更新的。 9. 哪類視圖是可以更新的,哪類視圖是不可更新的? 各舉一例說明。如《概論》。 如《概論》。 答:(略) 解析:不同的系統(tǒng)對視圖更新的規(guī)定是不同的,讀者必須了解你所用系統(tǒng)對視圖更新的規(guī)定。針對該視圖完成下列查詢: (1)找出三建工程項(xiàng)目使用的各種零件代碼及其數(shù)量。 答:建視圖: CREATE VIEW V_SPJ AS SELECT SNO, PNO, QTY FROM SPJ WHERE JNO= (SELECT JNO FROM J WHERE JNAME=3