數(shù)據(jù)庫系統(tǒng)包括題目和答案
真誠為您提供優(yōu)質(zhì)參考資料,若有不當之處,請指正。數(shù)據(jù)庫系統(tǒng)原理復習題第章一、選擇題1. 數(shù)據(jù)庫(DB)、數(shù)據(jù)庫系統(tǒng)(DBS)和數(shù)據(jù)庫管理系統(tǒng)(DBMS)之間的關(guān)系是(A )。 A. DBS包括DB和DBMS B. DBMS包括DB和DBSC. DB包括DBS和DBMS D. DBS就是DB,也就是DBMS2. 概念模型是現(xiàn)實世界的第一層抽象,這一類模型中最著名的模型是(D )。A. 層次模型 B. 關(guān)系模型 C. 網(wǎng)狀模型 D. 實體-聯(lián)系模型3. 目前,數(shù)據(jù)庫管理系統(tǒng)最常用的邏輯數(shù)據(jù)模型是( C)。A網(wǎng)狀模型 B層次模型C關(guān)系模型 D面向?qū)ο竽P?4. 下列四項中,不屬于數(shù)據(jù)庫系統(tǒng)特點的是( C)。A. 數(shù)據(jù)共享 B. 數(shù)據(jù)完整性 C. 數(shù)據(jù)冗余度高 D. 數(shù)據(jù)獨立性高5. 數(shù)據(jù)模型的三個要素分別是(B )。A. 實體完整性、參照完整性、用戶自定義完整性B. 數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、數(shù)據(jù)完整性約束條件 C. 插入數(shù)據(jù)、修改數(shù)據(jù)、刪除數(shù)據(jù) D. 外模式、模式、內(nèi)模式 6. 數(shù)據(jù)庫三級結(jié)構(gòu)從內(nèi)到外的3個層次依次為(B)。A. 外模式、模式、內(nèi)模式 B. 內(nèi)模式、模式、外模式C. 模式、外模式、內(nèi)模式 D. 內(nèi)模式、外模式、模式7. 下列關(guān)于數(shù)據(jù)庫系統(tǒng)的正確敘述是(A):A. 數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余B. 數(shù)據(jù)庫系統(tǒng)避免了一切冗余C. 數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致D. 數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)8. 數(shù)據(jù)的邏輯獨立性是指(B)。A外模式改變時保持應用程序不變B模式改變時保持外模式不變1 / 30C內(nèi)模式改變時保持模式不變D數(shù)據(jù)改變時保持應用程序不變9. 數(shù)據(jù)的物理獨立性是指(C)。A外模式改變時保持應用程序不變B模式改變時保持外模式不變C內(nèi)模式改變時保持模式不變D數(shù)據(jù)改變時保持應用程序不變10. 公司有多個部門和多名職員,每個職員只能屬于一個部門,一個部門可以有多名職員,從部門到職員的聯(lián)系類型是(D)。A. 多對多 B. 一對一 C. 多對一 D. 一對多11. 儲蓄所有多個儲戶,儲戶在多個儲蓄所之間存款,儲戶與儲蓄所之間是(C)。A. 一對一聯(lián)系 B. 一對多聯(lián)系 C. 多對多聯(lián)系 D. 不確定聯(lián)系12. 描述數(shù)據(jù)庫全體數(shù)據(jù)的全局邏輯結(jié)構(gòu)和特性的是( A)。 A. 模式 B. 內(nèi)模式 C. 外模式 D. 以上三級模式 二、填空1. 數(shù)據(jù)庫系統(tǒng)一般由(數(shù)據(jù)庫)、(數(shù)據(jù)庫管理系統(tǒng))、(應用程序)和(數(shù)據(jù)庫管理員)組成。2. 數(shù)據(jù)庫是長期存儲在計算機中、有(組織)的、可(共享)的數(shù)據(jù)集合。3. DBMS表示(DataBase Management System),它是位于(用戶)和(操作系統(tǒng))之間的一層數(shù)據(jù)管理軟件。4. 實體之間的聯(lián)系可抽象為三類,它們是(一對一)、(一對多)和(多對多)。5. 數(shù)據(jù)模型的三要素包括(數(shù)據(jù)結(jié)構(gòu))、(數(shù)據(jù)操作)和(數(shù)據(jù)完整性約束條件)三部分。6. 根據(jù)數(shù)據(jù)模型的應用目的不同,數(shù)據(jù)模型分為(概念模型)、(邏輯模型)和(物理模型)等。7. 按照數(shù)據(jù)結(jié)構(gòu)的類型命名,邏輯模型分為(關(guān)系模型)、(層次模型)和(網(wǎng)狀模型)等。8. E-R圖中,(矩形)表示實體,(橢圓)表示屬性,(菱形)表示實體之間的聯(lián)系。三、簡述題1. 數(shù)據(jù)庫是長期存貯在計算機內(nèi)的、有組織的、可共享的大量數(shù)據(jù)的集合。2. 數(shù)據(jù)庫管理系統(tǒng)的主要功能包括: (1)數(shù)據(jù)定義功能, (2)數(shù)據(jù)的組織、存儲和管理, (3)數(shù)據(jù)操縱功能, (4)數(shù)據(jù)庫事務的管理與運行管理, (5)數(shù)據(jù)的建立與維護, (6)其它功能。3. 數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)完整性約束條件構(gòu)成數(shù)據(jù)模型的三要素。4. 數(shù)據(jù)庫中數(shù)據(jù)操作包括插入、修改、刪除和查詢。6. 實體型之間的聯(lián)系包括一對一聯(lián)系、一對多聯(lián)系和多對多聯(lián)系三種類型。8. 數(shù)據(jù)庫領(lǐng)域中常用的邏輯數(shù)據(jù)模型有層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο竽P偷取?. 數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、應用系統(tǒng)和數(shù)據(jù)庫管理員等組成。10. 數(shù)據(jù)庫系統(tǒng)三級模式結(jié)構(gòu)是指模式、內(nèi)模式和外模式。三、簡述題1 數(shù)據(jù)庫的定義是什么?2 數(shù)據(jù)庫管理系統(tǒng)的主要功能有哪些?3 數(shù)據(jù)模型的三要素是什么?4 數(shù)據(jù)庫中數(shù)據(jù)操作包括哪些?5 實體型之間的聯(lián)系包括哪三種?6 數(shù)據(jù)庫領(lǐng)域中常用的邏輯數(shù)據(jù)模型有哪些?7 數(shù)據(jù)庫系統(tǒng)由哪幾部分組成?8 數(shù)據(jù)庫系統(tǒng)三級模式結(jié)構(gòu)?答案:1. 數(shù)據(jù)庫是長期存貯在計算機內(nèi)的、有組織的、可共享的大量數(shù)據(jù)的集合。2. 數(shù)據(jù)庫管理系統(tǒng)的主要功能包括: (1)數(shù)據(jù)定義功能, (2)數(shù)據(jù)的組織、存儲和管理, (3)數(shù)據(jù)操縱功能, (4)數(shù)據(jù)庫事務的管理與運行管理, (5)數(shù)據(jù)的建立與維護, (6)其它功能。3. 數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)完整性約束條件構(gòu)成數(shù)據(jù)模型的三要素。4. 數(shù)據(jù)庫中數(shù)據(jù)操作包括插入、修改、刪除和查詢。6. 實體型之間的聯(lián)系包括一對一聯(lián)系、一對多聯(lián)系和多對多聯(lián)系三種類型。8. 數(shù)據(jù)庫領(lǐng)域中常用的邏輯數(shù)據(jù)模型有層次模型、網(wǎng)狀模型、關(guān)系模型、面向?qū)ο竽P偷取?. 數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、應用系統(tǒng)和數(shù)據(jù)庫管理員等組成。10. 數(shù)據(jù)庫系統(tǒng)三級模式結(jié)構(gòu)是指模式、內(nèi)模式和外模式。四、應用題1. 設(shè)有商品和顧客兩個實體,商品實體包括商品編號、名稱、單價等屬性,顧客實體包括顧客編號、姓名、聯(lián)系電話等屬性,兩個實體存在如下的關(guān)系:l 一個顧客可購買多種任意商品l 每次可購買一定數(shù)量的商品(一天只限一次購物)繪出E-R圖,并標明屬性和聯(lián)系的類型2. 為某百貨公司設(shè)計一個E-R模型:百貨公司管轄若干個連鎖商店,每家商店經(jīng)營若干商品,每家商店有若干職工,但每個職工只能服務于一家商店。實體類型“商店”的屬性有:商店編號、商店名稱、地址、聯(lián)系電話。實體類型“商品”的屬性有:商品編號、商品名稱、單價、產(chǎn)地。實體類型“職工”的屬性有:職工編號、職工姓名、性別、工資。在聯(lián)系中應反映出職工參加某商店工作的工作時間,商店推銷產(chǎn)品的銷售量。3. 試為一網(wǎng)上書店建立概念模型。第2章1、 選擇題1.關(guān)于關(guān)系模型,下列說法中不正確的是( D)。B. 關(guān)系模型是建立在集合代數(shù)的基礎(chǔ)上的 C. 數(shù)據(jù)的邏輯結(jié)構(gòu)是一個二維表 D. 關(guān)系操作是面向集合的操作方式 E. 關(guān)系中的數(shù)據(jù)可以是任意的2關(guān)于關(guān)系,下列說法中不正確的是(D )。B. 關(guān)系中每個屬性值都是不可分解的 B. 關(guān)系中不允許出現(xiàn)相同的元組 C. 關(guān)系中不考慮元組間的順序 D. 元組中的屬性是有序的 3關(guān)系代數(shù)中,選擇運算的運算符號是(C)A B C D4關(guān)系查詢時取出關(guān)系的某些列,并取消重復元組的關(guān)系運算為(B)。B. 選擇運算 B. 投影運算 C. 連接運算 D.笛卡兒積5根據(jù)關(guān)系模式的實體完整性規(guī)則,一個關(guān)系的主碼屬性(C)。A不能有兩個 B不能成為另一個關(guān)系的外碼C不允許為空 D可以取任意值6在關(guān)系模式R(R#,RN,S#)和S(S#,SN,SD)中,R的主鍵是R#,S的主鍵是S#,則S#在R中稱為( B)。 C. 主碼 B. 外碼 C. 候選碼 D. 全碼 7“成績在0-100之間”這種約束屬于哪種完整性約束(C )。 D. 主鍵約束 B. 外鍵約束 C. 用戶定義的完整性約束 D. 全不是 8關(guān)系R如下圖所示,a1的象集是( B)。 ABCa1b1c1a1b2c3a2b1c2E. b1,b2 B. (b1,c1),(b2,c3)C. c1,c3 D. (b1,c1),(b2,c3), (b1,c2)二、簡述題9 關(guān)系模型的三個組成部分是什么?10 關(guān)系模型的完整性約束分為哪三類?11 關(guān)系代數(shù)中提供了哪些關(guān)系的查詢運算? 答案1. 關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作和關(guān)系的完整性約束條件三部分組成。2. 關(guān)系的完整性約束包括主鍵約束、外鍵約束和用戶定義的完整性約束三種。 3.關(guān)系代數(shù)中的查詢包括關(guān)系的并、交、差、笛卡兒積、選擇、投影、連接和除法等三、用關(guān)系代數(shù)表示查詢12設(shè)有選課關(guān)系數(shù)據(jù)庫模式如下:Student(Sno,Sname,Sage,Ssex)Course(Cno,Cname)SC(Sno,Cno,Grade)請用關(guān)系代數(shù)表達式表示下列查詢:(1) 查詢選修了2號課程的學生的學號(2) 查詢學號為“03”的學生的學號和姓名(3) 查詢年齡大于20歲的男同學的學號和姓名(4) 查詢選修了課程的學生的學號和姓名(5) 查詢有選修學生的課程號和課程名(6) 查詢選修了5號課程的學生的姓名和成績(7) 查詢選修了“數(shù)據(jù)庫原理”課程的學生的學號和姓名 答案:(1) Sno (Cno=2(SC) select sno from sc where cno=2(2) Sno,Sname (Sno=03(Student) Select sno,sname from student where sno=03(3) Sno,Sname (Sage 20 Ssex=男(Student)Select sno,sname from student where sage>20 and ssex=男(4) Sno,Sname (Student SC )Select sc.sno,sanme from sc,student where student.sno=sc.sno(5) Cno,Cname (Course SC)Select o,cname from course,sc where o=o(6) Sname,Grade (Student (Cno=5 (SC ) )Select sname,grade from student,sc where student.sno=sc.sno and cno=5(7) Sno,Sname (Cname=數(shù)據(jù)庫原理(Student SC Course)或Sno,Sname (Student Sno ( SC Cname=數(shù)據(jù)庫原理(Course) )Select sno,sname from student,sc,course where sc.sno=student.sno and o=o and cname=數(shù)據(jù)庫原理13現(xiàn)有圖書借閱關(guān)系數(shù)據(jù)庫模式如下:圖書(圖書號,書名,作者,單價,庫存量)讀者(讀者號,姓名,工作單位,地址)借閱(圖書號,讀者號,借期,還期,備注)其中,還期為NULL表示該書未還。用關(guān)系代數(shù)表示如下查詢:(1) 查詢讀者號為“R016”的讀者姓名、工作單位(2) 查詢圖書號為“B5”的讀者姓名(3) 查詢讀者“李林”所借閱圖書的書名(4) 查詢讀者“李林”所借閱圖書中未還的書名答案(1) 姓名,工作單位(讀者號=R016(讀者))(2) 姓名(圖書號 =B5(讀者 借閱))(3) 書名(姓名 =李林(讀者 借閱 圖書))(4) 姓名(姓名 =李林 還期 = NULL(讀者 借閱 圖書)或 姓名(姓名=李林(讀者) (還期 = NULL(借閱) 圖書)2、Sname,Grade (Cno=5(Student SC))3、Sno,Sname (Student Sno (SC Cname=操作系統(tǒng)(Course)第3章1、 選擇題1. SQL語言稱為( C)。A結(jié)構(gòu)化定義語言 B. 結(jié)構(gòu)化操縱語言 C. 結(jié)構(gòu)化查詢語言 D. 結(jié)構(gòu)化控制語言2. 下列SQL語句中,修改表結(jié)構(gòu)的是 ( D)ACREATE BUPDATE CINSERT DALTER 3. 在SELECT語句中, 用于實現(xiàn)數(shù)據(jù)分組統(tǒng)計的子句是 (C )AFROM子句 BWHERE子句 CGROUP BY子句 DORDER BY 子句4. 下列哪種運算不能引出子查詢。( B ) AIN BLIKE CEXISTS D比較運算 5. 基于學生選課數(shù)據(jù)庫中的3個關(guān)系:S(學號, 姓名, 性別, 年齡)、C(課程號, 課程名, 任課教師)、 SC(學號, 課程號, 成績),若要求查找選修“數(shù)據(jù)庫技術(shù)”這門課程的學生姓名和成績,將使用關(guān)系(D )AS和SC BSC和C CS和C DS、SC和C6. 基于學生選課數(shù)據(jù)庫中的3個關(guān)系:S(學號, 姓名, 性別, 年齡)、C(課程號, 課程名, 任課教師)、 SC(學號, 課程號, 成績),若要求查找學生的平均成績大于80分的學號和平均成績,下面列出的SQL語句,正確的是(C )。ASELECT 學號, AVG(成績) FROM SC WHERE AVG(成績)>80BSELECT 學號, AVG(成績) FROM SC WHERE AVG(成績)>80 GROUP BY 學號CSELECT 學號, AVG(成績) FROM SC GROUP BY 學號 HAVING AVG(成績)>80DSELECT 學號, 成績 FROM SC GROUP BY 學號 HAVING AVG(成績)>807. 下列SQL語句中,正確的是( C)。ASELECT S#, SNAME FROM SC GROUP BY S#BSELECT S# FROM SC GROUP BY S# HAVING COUNT(*)>3CSELECT S# FROM SC GROUP BY S# WHERE COUNT(*)>3 DSELECT S# FROM SC WHERE COUNT(*)>3 GROUP BY S#8. 在視圖上不能完成的操作是(C)。A更新視圖 B查詢視圖C在視圖上定義新的基本表 D在視圖上定義新視圖二、填空1. 在SQL的查詢語句中,使用(FROM)子句數(shù)據(jù)源,使用(WHERE)子句選擇參與運算的數(shù)據(jù)行,使用(SELECT)子句指定目標列??墒褂茫℅ROUP BY)子句結(jié)合聚集函數(shù)進行分組統(tǒng)計。若對查詢結(jié)果排序可使用(ORDER BY)子句。2. 在SQL中,(CREATE TBLE)語句創(chuàng)建表和聲明完整性約束條件。如果要為一個基本表增加列和完整性約束條件,應該使用(ALTER TABLE)語句。刪除表的定義及表中的數(shù)據(jù)和索引,應該使用的語句是(DROP TABLE)。3. 視圖是定義在(基本表)之上的虛表,對視圖也可以進行插入、修改、刪除和查詢操作。但視圖不存儲數(shù)據(jù),對視圖的一切操作最終要轉(zhuǎn)換為對(基本表)的操作。三、簡述題1.SQL語言的特點?2.SQL語言中常用的語句有哪些?3.SQL中提供了哪些常用的聚集函數(shù)?它們?nèi)绾问褂茫?.什么是連接查詢?連接查詢?nèi)绾沃付ㄟB接條件?5.什么是子查詢?用在WHERE子句中的子查詢有幾種調(diào)用方式?答案:1. SQL語言集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控功能于一體,其主要的操作語句包括CREATE、ALTER、DROP、INSERT、UPDATE、DELETE、SELECT、GRANT、REVOKE等。2. SQL中提供了一些聚集函數(shù),用于統(tǒng)計數(shù)據(jù)庫數(shù)據(jù),包括COUNT、AVG、SUM、MAX、MIN等,除COUNT(*)用法外,統(tǒng)計時均忽略空值,使用DISTINCT選項可忽略對重復數(shù)據(jù)的統(tǒng)計。聚集行數(shù)只可用于SELECT子句和HAVING子句。3. 若一個查詢同時涉及到兩個表,則稱之為連接查詢。連接查詢的連接條件可在WHERE子句中通過一個比較運算指定,或在FROM子句中在指定連接方式的同時指定連接條件。4. 子查詢又稱嵌套查詢,是嵌套在SELECT、INSERT、UPDATE、DELETE等語句中的SELECT查詢語句。多用在WHERE子句中,使用子查詢的結(jié)果作為搜索條件。在Where子句中使用子查詢有以下幾種方式:由IN引出子查詢、由比較運算符引出子查詢、由EXISTS引出子查詢。四、數(shù)據(jù)庫操作1. 倉庫管理系統(tǒng)在某倉庫管理系統(tǒng)中,有兩個表:KC表和CKMX表,其結(jié)構(gòu)和部分數(shù)據(jù)如下:表1、KC表結(jié)構(gòu)和數(shù)據(jù)材料代碼材料名稱單位單價庫存數(shù)量01計算機臺5000.001002電視機臺2000.0020表2、CKMX表結(jié)構(gòu)和數(shù)據(jù)編號材料代碼出庫日期出庫數(shù)量1012009-10-1042012009-11-2033022009-11-205其中,KC表保存當前倉庫庫存材料的信息,CKMX表存放庫存材料的出庫名細。例如,KC表第一行表示該倉庫中現(xiàn)有計算機10臺。CKMX表第二行表示2009年11月20日從倉庫中出庫3臺計算機。(1) 試寫出創(chuàng)建KC表和CKMX表的SQL語句,要求定義實體和參照完整性。(2) 寫出在KC表上按材料名稱建立唯一索引的SQL語句。(3) 創(chuàng)建一個視圖,用于查詢計算機的出庫明細。(4) 寫出將表中數(shù)據(jù)插入到相應表中的語句。(5) 從表CKMX中統(tǒng)計出各種材料的出庫次數(shù)和出庫總數(shù)量,試寫出SQL語句。(6) 寫出由KC表和CKMX表產(chǎn)生如下結(jié)果集的查詢語句:編號出庫日期材料名稱單價出庫數(shù)量金額12009-10-10計算機5000.00420000.0022009-11-20計算機5000.00315000.00答案:. 倉庫管理系統(tǒng)(8) 創(chuàng)建表CREATE TABLE KC( 材料代碼 char(2) PRIMARY KEY,材料名稱 char(20),單位 char(10),單價 numeric(10,2),庫存數(shù)量 int )CREATE TABLE CKMX( 編號 char(4) PRIMARY KEY,材料代碼 char(2) REFERENCES KC(材料代碼),出庫日期 date,出庫數(shù)量 int)Or或者CREATE TABLE CKMX( 編號 char(4) PRIMARY KEY,材料代碼 char(2),出庫日期 date,出庫數(shù)量 int, Foreign key (材料代碼) REFERENCES KC(材料代碼)(9) 創(chuàng)建索引CREATE UNIQUE INDEX index1 ON KC(材料名稱)Drop index index1 on KC(10) 創(chuàng)建視圖CREATE VIEW viewComputer ASSELECT * FROM CKMX,KC WHERE CKMX.材料代碼=KC.材料代碼 and KC.材料名稱= 計算機(11) 插入數(shù)據(jù)INSERT INTO KC VALUES(01,計算機,臺,5000.00,10)INSERT INTO KC VALUES(02,電視機,臺,2000.00,20)INSERT INTO CKMX VALUES(1,01,2009-10-10,4)INSERT INTO CKMX VALUES(2,01,2009-10-20,3)INSERT INTO CKMX VALUES(3,02,2009-10-20,5)(12) 統(tǒng)計SELECT 材料代碼,COUNT(*) as 次數(shù), SUM(出庫數(shù)量) as 出庫數(shù)量from CKMX group by 材料代碼(13) 查詢SELECT ckmx.編號,出庫日期,材料名稱,單價,出庫數(shù)量,出庫數(shù)量*單價 as 金額FROM KC,CKMXWHERE KC.材料代碼 = CKMX.材料代碼2. 財務管理系統(tǒng)學校有多名學生,財務處每年要收一次學費。財務處現(xiàn)用兩個表記錄相關(guān)信息,其結(jié)構(gòu)和部分數(shù)據(jù)如下表:表1、XS表結(jié)構(gòu)和數(shù)據(jù)學號姓名性別年齡所在系200901張明男18計算機200902王曉萌21信息200903李剛男20計算機表2、JFQK表結(jié)構(gòu)和數(shù)據(jù)序號學號交費日期書費學費12009012009-09-10500.50500022009022009-09-10400.00500032009012010-10-10300.204000其中,XS表是在校學生名冊和基本信息登記表,JFQK表是學生交學費情況記錄。(1) 試寫出創(chuàng)建XS表和JFQK表的SQL語句,要求定義實體和參照完整性。(2) 寫出在XS表上按學生姓名建立唯一索引的SQL語句。(3) 創(chuàng)建一個視圖,用于查詢計算機系同學的基本信息。(4) 寫出將表中數(shù)據(jù)插入到相應表中的語句。(5) 將計算機系同學的年齡增加1歲,并將計算機系同學的學費減1000元。(6) 從表JFQK中統(tǒng)計出每個同學的交費次數(shù)和交費總金額,試寫出SQL語句。(7) 寫出由XS表和JFQK表能產(chǎn)生類似如下結(jié)果集的查詢語句:序號姓名交費日期書費學費合計1張明2009-09-10500.5050005500.502王曉萌2009-09-10400.0050005400.00答案 財務管理系統(tǒng)(5) 創(chuàng)建表CREATE TABLE XS( 學號 char(6) PRIMARY KEY,姓名 char(10) not null,性別 char(2) null,年齡 smallint,所在系 char(20)CREATE TABLE JFQK( 序號 int PRIMARY KEY,學號 char(6) REFERENCES XS(學號),交費日期 date,書費 numeric(6,2),學費 int)(6) 創(chuàng)建索引CREATE UNIQUE INDEX index1 ON XS(姓名)(7) 創(chuàng)建視圖CREATE VIEW viewComputer1 AS SELECT * FROM XS WHERE 所在系 = 計算機(8) 插入數(shù)據(jù)INSERT INTO XS VALUES(200901,張明, 男,18,計算機)INSERT INTO XS VALUES(200902,王曉萌,null,21,信息)INSERT INTO XS VALUES(200903,李剛, 男,20,計算機)INSERT INTO JFQK VALUES(1,200901,2009-09-10,500.50,5000)INSERT INTO JFQK VALUES(2,200902,2009-09-10,400.00,5000)INSERT INTO JFQK VALUES(3,200901,2010-10-10,300.20,4000)(9) 更新數(shù)據(jù)UPDATE XS SET 年齡 = 年齡 + 1WHERE 所在系 = 計算機或 UPDATE viewComputer1 SET 年齡 = 年齡 + 1UPDATE JFQK SET 學費 = 學費 -1000 WHERE 計算機 = (SELECT 所在系 FROM XS WHERE XS.學號 = JFQK.學號)(10) 統(tǒng)計SELECT 學號,COUNT(*) as 交費次數(shù), SUM(書費+學費) as 總金額FROM JFQKGROUP BY 學號(11) 查詢SELECT 序號,姓名,交費日期,書費,學費,書費+學費 as 合計FROM XS,JFQKWHERE XS.學號 = JFQK.學號第4、5章1、 選擇題1. 實體完整性要求主屬性不能取空值,這通常是通過(D )。ADBMS自動保證 B. 用戶定義的完整性約束來保證 C. 定義外鍵來保證 D. 定義主鍵來保證2. 下列SQL語句中,能夠?qū)崿F(xiàn)參照完整性控制的語句是(D )。A. NOT NULL B. PRIMARY KEY C. UNIQUE D. FOREIGN KEY3. 若關(guān)系R(A,B,C)主碼為A, 關(guān)系S(D,A)主碼為D,外碼為A,下面在關(guān)系S中哪個元組違反了完整性約束條件?( C)。 R SABCDA12213312342Null31A. (1, 2) B. (2, Null) C. (3, 3) D. (4, 1)4. 使用CREATE TABLE STU (NO CHAR(4) NOT NULL, NAME CHAR(8) NOT NULL, SEX CHAR(2), AGE INT ) 創(chuàng)建了表STU ,下列哪些語句可以插入到表中。( B)AINSERT INTO STU VALUES(1031,張華,男,23)BINSERT INTO STU VALUES (1031, 張華,NULL,NULL)CINSERT INTO STU VALUES(NULL, 張華,男,23)DINSERT INTO STU VALUES (1031,NULL, 男,23)5. 下列哪種操作不會激活觸發(fā)器。( A)A. SELECT B. UPDATE CINSERT D DELETE 6. 在SQL語言中授權(quán)的操作是通過(C)語句實現(xiàn)的。ADELETE BUPDATE CGRANT DREVOKE二、簡述題1. 什么是數(shù)據(jù)庫的安全性?數(shù)據(jù)庫系統(tǒng)中常用的安全控制方法和技術(shù)有哪些?2. 什么是數(shù)據(jù)庫的完整性?關(guān)系數(shù)據(jù)庫的完整性包括哪幾類?3. 什么是觸發(fā)器?觸發(fā)器由哪些事件激活?答案:1. 數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫,防止因用戶非法使用數(shù)據(jù)庫造成數(shù)據(jù)泄露、更改或破壞。數(shù)據(jù)庫系統(tǒng)中常用的安全控制方法有技術(shù)包括用戶標識和鑒別、存取控制、定義視圖、審計、數(shù)據(jù)加密等。2. 數(shù)據(jù)完整性是指數(shù)據(jù)庫中的數(shù)據(jù)在邏輯上的一致性和準確性。關(guān)系數(shù)據(jù)庫的完整性包括實體完整性、參照完整性和用戶定義完整性三類。3. 觸發(fā)器(Trigger)是用戶定義在關(guān)系表上的一類由事件驅(qū)動的特殊存儲過程。觸發(fā)器由對表的插入、修改和刪除事件激活。三、完整性約束定義1. 設(shè)有關(guān)系S、SC、C如下:S(sno, sname, age, sex, sdept)C(cno, cname, teacher)SC(sno, cno, score)用SQL完成下列功能: (1)創(chuàng)建學生表S和課程表C(要求標明主碼)(2)創(chuàng)建選修課程情況表SC。(要求標明主碼、外碼及成績的范圍). 創(chuàng)建關(guān)系S、SC、CCREATE TABLE S ( Sno CHAR(8) PRIMARY KEY, /*主碼約束*/ Sname CHAR(20) UNIQUE, /*唯一約束*/ Ssex CHAR(2) NOT NULL, /*非空約束*/ Sage SMALLINT, Sdept CHAR(20) ); CREATE TABLE C( Cno CHAR(4) PRIMARY KEY, /*主碼約束*/ Cname CHAR(40) NOT NULL, Teacher CHAR(8) , ); CREATE TABLE SC( Sno CHAR(8) REFERENCES S(Sno), /*外碼約束*/ Cno CHAR(4), Score SMALLINT CHECK(Score<=100), /*檢查約束*/ PRIMARY KEY (Sno,Cno), /*主碼約束*/ FOREIGN KEY (Cno) REFERENCES C(Cno) /*外碼約束*/ ); 2. 假設(shè)有下面兩個關(guān)系模式:職工(職工號,姓名,年齡,進校時間,工資,部門號),其中職工號為主碼部門(部門號,部門名稱,經(jīng)理名,電話),其中部門號為主碼用SQL語言定義這兩個關(guān)系模式,要求在模式中完成以下完整性約束條件的定義:(1)定義每個模式的主碼(2)定義參照完整性(3)定義職工年齡不得超過60歲 ); 2. 創(chuàng)建關(guān)系部門、職工CREATE TABLE 部門( 部門號 char(4) PRIMARY KEY, /*主碼*/ 部門名稱 char(20),經(jīng)理名 char(8),電話 char(11)CREATE TABLE 職工( 職工號 char(8) PRIMARY KEY,姓名 char(8),年齡 smallint CHECK(年齡<=60),進校時間 date,工資 numeric(10,2),部門號 char(4) REFERENCES 部門(部門號)第6章一、選擇題1. 關(guān)系數(shù)據(jù)庫規(guī)范化是為了解決關(guān)系數(shù)據(jù)庫中( B)的問題而引入的。A提高查詢速度B插入、刪除、更新異常和數(shù)據(jù)冗余C保證數(shù)據(jù)的安全性和完整性D恢復數(shù)據(jù)庫2. 關(guān)系模式中每個分量都是不可分的數(shù)據(jù)項,則關(guān)系模式屬于( A)A. 1NF B. 2NF C. 3N D. BCNF3. 若R2NF,則R的每個(B )A非主屬性部分依賴于碼 B非主屬性完全依賴于碼C主屬性部分依賴于碼 D主屬性完全依賴于碼4. 消除了非主屬性對碼傳遞函數(shù)依賴的2NF的關(guān)系模式,必定屬于( C)A1NF B2NF C. 3NF D. BCNF5. 關(guān)系模式中,滿足2NF的模式( B )A可能是1NF B必定是1NF C必定是3NF D必定是BCNF二、關(guān)系模式規(guī)范化1. 設(shè)有關(guān)系模式: 選修(姓名,專業(yè),課程,任課教師,成績)假設(shè):每個學生在一個專業(yè)學習;每門課程有一個任課教師;每個學生選修的每門課程只有一個成績;姓名、課程無重名。(1)請寫出選修關(guān)系中存在的基本函數(shù)依賴集。(2)找出關(guān)系模式的候選碼,指出哪些是主屬性?那些是非主屬性。(3)分析關(guān)系模式最高屬于第幾范式?為什么?(4)如果選修關(guān)系不屬于3NF,請將其分解為第3NF模式集。關(guān)系模式: 選修(姓名,專業(yè),課程,任課教師,成績)(1)基本函數(shù)依賴包括:姓名專業(yè) 課程任課教師 (姓名,課程)專業(yè) 部分 (姓名,課程)任課教師 部分 (姓名,課程)成績 完全(2)關(guān)系模式的碼為:(姓名,課程) 主屬性包括“姓名”和“課程”。 非主屬性包括“專業(yè)”,“任課教師”和“成績”。(3)關(guān)系模式達到1NF,但未達到2NF。因為在關(guān)系模式中存在非主屬性“專業(yè)”和“任課教師”部分依賴于碼的現(xiàn)象。(4)關(guān)系模式可分解為:學生(姓名,專業(yè))課程(課程,任課教師)成績(姓名,課程,成績)2. 現(xiàn)有一個描述學生、課程以及選課信息的關(guān)系模式:SelectCourse(學號,姓名,年齡,課程名稱,成績,學分)。其中:每個學生可選多門課程,每門課程只選一次;每個學生選修的每門課程有一個成績; 每門課程都規(guī)定一定的學分。(1)請寫出SelectCourse關(guān)系中存在的基本函數(shù)依賴集。(2)找出關(guān)系模式的候選碼。(3)分析關(guān)系模式最高屬于第幾范式?為什么?(4)請將SelectCourse關(guān)系模式分解為第3NF模式集。. 關(guān)系模式: SelectCourse(學號,姓名,年齡,課程名稱,成績,學分)(1)基本函數(shù)依賴包括:學號姓名學號年齡課程名稱學分(學號,課程名稱)成績(學號,課程名稱)姓名(學號,課程名稱)學分(學號,課程名稱)年齡(2)關(guān)系模式的碼為:(姓名,課程名稱)(3)關(guān)系模式達到1NF,但未達到2NF。因為在關(guān)系模式中存在 “姓名”和“學分”等非主屬性部分依賴于碼的現(xiàn)象。(4)關(guān)系模式可分解為:學生(學號,姓名,年齡)課程(課程名稱,學分)選課(姓名,課程名稱,成績)3. 假設(shè)某商業(yè)集團數(shù)據(jù)庫中有一關(guān)系模式R如下:R(商店編號,商品編號,數(shù)量,部門編號,負責人)。如果規(guī)定:(1)每個商店的每種商品只在一個部門銷售。(2)每個商店的每個部門只有一個負責人。(3)每個商店的每種商品只有一個庫存量。請回答下列問題:(1)寫出R關(guān)系中存在的基本函數(shù)依賴集。(2)找出關(guān)系模式的候選碼。(3)分析關(guān)系模式最高屬于第幾范式?為什么?(4)如果R不屬于3NF,請將R分解為第3NF模式集。關(guān)系模式: R(商店編號,商品編號,數(shù)量,部門編號,負責人)(1)基本函數(shù)依賴包括:(商店編號,商品編號)部門編號(商店編號,部門編號)負責人(商店編號,商品編號)數(shù)量(2)關(guān)系模式的碼為:(商店編號,商品編號)(3)關(guān)系模式達到2NF,因為在關(guān)系模式中不存在非主屬性部分依賴于碼的現(xiàn)象。但未達到3NF,因為在關(guān)系模式中存在非主屬性“負責人”傳遞依賴于碼的現(xiàn)象。(4)關(guān)系模式可分解為:R1(商店編號,商品編號,數(shù)量,部門編號)R2(商店編號,部門編號,負責人)第7章一、選擇題1. 在數(shù)據(jù)庫設(shè)計中,將E-R圖轉(zhuǎn)換為關(guān)系模式的過程屬于( B ) 。A需求分析階段 B邏輯設(shè)計階段C概念設(shè)計階段 D物理設(shè)計階段2. 關(guān)系模式中,表示實體間M:N聯(lián)系是通過增加一個 ( B)A屬性實現(xiàn) B關(guān)系實現(xiàn)C關(guān)系或一個屬性實現(xiàn)D關(guān)系和一個屬性實現(xiàn)3. 從E-R模型向關(guān)系模型轉(zhuǎn)換時,一個M:N的聯(lián)系轉(zhuǎn)換為一個關(guān)系模式,該關(guān)系模式的關(guān)鍵字是 ( C)AM端實體的關(guān)鍵字 BN端實體的關(guān)鍵字CM端實體的關(guān)鍵字與N端實體的關(guān)鍵字的組合D重新選取其它屬性4. 在E-R模型中,如果有3個不同的實體型,2個M:N聯(lián)系,根據(jù)E-R模型轉(zhuǎn)換為關(guān)系模型的規(guī)則,轉(zhuǎn)換為關(guān)系的數(shù)目是。( C )A3 B4 C5 D6二、簡述題1. 數(shù)據(jù)庫設(shè)計涉及哪些方面的技術(shù)和知識? 2. 數(shù)據(jù)庫設(shè)計包括哪幾個階段?3. 建立E-R圖包括哪幾個步驟?答案:1. 數(shù)據(jù)庫設(shè)計涉及多方面的技術(shù)和知識,包括計算機的基礎(chǔ)知識、程序設(shè)計的方法和技巧、軟件工程的原理和方法、數(shù)據(jù)庫的基本知識、數(shù)據(jù)庫設(shè)計技術(shù)和應用領(lǐng)域的知識。2. 數(shù)據(jù)庫設(shè)計包括需求分析、概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫實施和數(shù)據(jù)庫運行與維護六個階段。3. 建立E-R圖的過程包括:(1)首先確定實體型,(2)確定聯(lián)系類型,(3)把實體型和聯(lián)系組合成E-R圖,(4)確定實體型和聯(lián)系的屬性。三、數(shù)據(jù)庫設(shè)計1. 某圖書館中圖書按類分別存放在多個書庫中,可供讀者借閱。每個書庫中有若干個管理員(這些管理員不再管理其它書庫)。請設(shè)計一個數(shù)據(jù)庫保存相關(guān)的信息。其中:(1) 書庫的屬性包括書庫編號、位置、面積等, 圖書的屬性包括書號、書名、出版社等,讀者的屬性包括讀者號、姓名、單位等,管理員的屬性包括職工編號、職工姓名等屬性;其它屬性請自己指定。(2) 描述借閱關(guān)系的屬性包括借出日期和應還日期等試畫出書庫、圖書、讀者、管理員及其聯(lián)系的E-R圖(要求注明相關(guān)屬性及聯(lián)系的類型), 并將其轉(zhuǎn)換成關(guān)系模式(要求注明主碼)。(2)轉(zhuǎn)換為關(guān)系模式如下:書庫(書庫編號,地址,面積)職工(職工編號,姓名,年齡,書庫編號)圖書(圖書編號,書名,作者,出版社,書庫編號) 讀者(讀者編號,姓名,單位) 借閱(圖書編號,讀者編號,借出日期,還書日期)2. 假設(shè)一個部門的數(shù)據(jù)庫包括如下信息:職工的信息:職工號、姓名、地址和所在部門。部門的信息:部門名稱、經(jīng)理名、電話。產(chǎn)品的信息:產(chǎn)品編號、產(chǎn)品名、價格、型號。制造商的信息:廠稱、廠址、傳真。另外還包括部門銷售產(chǎn)品的信息和制造商生產(chǎn)產(chǎn)品的信息。試畫這個數(shù)據(jù)庫的E-R圖(要求注明相關(guān)屬性及聯(lián)系的類型), 并將其轉(zhuǎn)換成關(guān)系模式(要求注明主碼)。數(shù)據(jù)庫E-R圖如下:)轉(zhuǎn)換為關(guān)系模式如下:職工(職工號,姓名,地址,部門名稱)部門(部門名稱,經(jīng)理,電話)產(chǎn)品(產(chǎn)品編號,產(chǎn)品名,型號,單價) 銷售(部門名稱,產(chǎn)品編號,數(shù)量)制造商(廠名,廠址,傳真) 生產(chǎn)(產(chǎn)品編號,廠名,數(shù)量) 溫馨提示:最好仔細閱讀后才下載使用,萬分感謝!