當前位置:才華齋>設計>網頁設計>

結構化查詢語言SQL習題與答案

網頁設計 閱讀(1.25W)

篇一:結構化查詢語言SQL習題與答案

結構化查詢語言SQL習題與答案

一、選擇題

1. 在SQL包含的功能中,最重要的功能是_______。

A) 資料查詢 B) 資料操縱 C) 資料定義 D) 資料控制

2. 使用SQL語言有兩種方式,它們是_______。

A) 選單式和互動式B) 嵌入式和程式式

C) 互動式和嵌入式D) 命令式和解釋式

3. SQL的全部功能可以用9個動詞概括,其中動詞INSERT是屬於下列______功能。

A) 資料查詢 B) 資料操縱 C) 資料定義 D) 資料控制

4. SQL語言支援資料庫的三級模式結構,其中模式對應於______。

A) 儲存檔案 B) 檢視 C) 基本表 D) 檢視和基本表

5. 在建立資料表時,可以給欄位規定NULL或NOT NULL值,NULL值的含義是______。

A) 0B) 空格 C) NULL D) 不確定

6. 在SQL的ALTER語句中,用於刪除欄位的子句是______。

A) ALTER B) DELETE C) DROP D) MODIFY

7. SQL中的INSERT語句可以用於______。

A) 插入一條記錄 B) 插入一個欄位

C) 插入一個索引 D) 插入一個表

8. 下列描述錯誤的是______。

A) 用INSERT-SQL語句可以插入一條記錄

B) 用INSERT-SQL語句可以插入多條記錄

C) 使用INSERT-SQL語句可以插入記錄的部分資料

D)使用INSERT-SQL語句插入記錄時列名的排列順序必須與表定義時的順

序一致

9. INSERT-SQL語句中所使用的資料不能來自於______。

A) 陣列 B) 變數 C) 查詢 D) 索引

10. SQL中的UPDATE語句可以用於______。

A) 更新資料表的結構 B) 更新資料表的值

C) 更新索引D) 更新查詢

11. 下列描述錯誤的是______。

A) SQL中的UPDATE語句可以修改一條記錄

B)SQL中的UPDATE語句可以修改多條記錄

C)SQL中的UPDATE語句可以用子查詢提供要修改的值

D)SQL中的UPDATE語句可以修改子查詢的結果

12. SQL中的DELETE語句可以用於______。

A) 刪除資料表的結構 B) 刪除資料表

C) 刪除資料表的記錄 D) 刪除資料表的欄位

13. 在SELECT語句中,為了在查詢結果中消去重複記錄,應使用________項。

A) PERCENTB) DISTINCTC) TOP ND) WITH TIES

14. 為了在查詢結果中只包含兩個表中符合條件的記錄,應使用________聯接型別。

A) INNER B) LEFT C) RIGHT D) FULL

15. 在SELECT-SQL語句中,要將查詢結果儲存在文字檔案中的選項是________。

A) INTO〈新表名〉B) TO FILE 〈檔名〉

C) TO PRINTER D) TO SCREEN

16. 在SQL查詢時,使用WHERE 子句提出的是________。

A) 查詢目標 B) 查詢結果 C) 查詢條件D) 查詢分組

17. 在SELECT語句中,如果要對輸出的記錄進行排序,應選使用________項。

A) ORDER B) GROUPC) HAVINGD) TOP

18. 在SELECT語句中,________子句後可能帶有HAVING短語。

A) ORDERB) GROUP C) WHERED) SELECT

19. 在SELECT-SQL語言中,________子句相當於關係中的投影運算。

A) WHEREB) JOINC) FROM D) SELECT

20. 如果要選擇分數在70和80之間的記錄,________是正確的。

A) 分數>=70 AND <=80 B) 分數BETWEEN 70 AND 80

C) 分數>=70 OR 分數<=80D) 分數IN (70,80)

21. 如果學生表中有”所在系”欄位,要統計全校有多少個系,可用命令子句________。

A) SELECT SUM(所在系)B) SELECT SUM(DISTINCT 所在系)

C) SELECT COUNT(所在系)D) SELECT COUNT(DISTINCT 所在系)

22. 下列語句錯誤的是________。

A) SELECT * FROM 學生表

B)SELECT 學號 AS 學生編號 FROM 學生表

C) SELECT ALL FIELDS FROM 學生表

D) SELECT DISTINCT 學號 FROM 選課表

23. 查詢除教授和副教授以外的教師姓名,其WHERE子句為________。

A)WHERE 職稱 NOT BETWEEN “教授” AND “副教授”

B)WHERE 職稱!=“教授” AND “副教授”

C)WHERE 職稱 NOT LIKE (“教授”,”副教授”)

D)WHERE 職稱NOT IN (“教授”,”副教授”)

24. 在選課表中,找出成績不為空的記錄,應使用下列語句________。

A)SELECT *FROM 選課表 WHERE 成績 IS “ “

B)SELECT *FROM 選課表 WHERE 成績=0

C)SELECT *FROM 選課表 WHERE 成績<>NULL

D)SELECT *FROM 選課表 WHERE 成績 IS NOT NULL

25. 下列COUNT函式的用法錯誤的是________。

A)COUNT(ALL)B)COUNT(*)

C)COUNT(成績)D)COUNT(DISTINCT 學號)

26. 要從選課表中統計每個學生選修的課程門數,應使用的SELECT-SQL語句是________。

A)SELECT COUNT(*)FROM 選課表

B)SELECT COUNT(*)FROM 選課表 GROUP BY 學號

C)SELECT DISTINCT COUNT(*)FROM 選課表

D)SELECT DISTINCT COUNT(*)FROM 選課表 GROUP BY 學號

27. 要從選課表中查詢選修了三門課程以上的學生學號,應使用的SELECT-SQL語句是________。

A)SELECT 學號 FROM 選課表 WHERE COUNT(*)>=3

B)SELECT 學號 FROM 選課表 HAVING COUNT(*)>=3

C)SELECT 學號 FROM 選課表 GROUP BY 學號 HAVING COUNT(*)>=3

D)SELECT 學號 FROM 選課表 GROUP BY 學號 WHERE COUNT(*)>=3

28. 要從學生表中查詢入校總分最高的3個學生的記錄,應使用的SELECT-SQL語句是________。

A)SELECT * FROM 學生表 ORDER BY 入校總分ASC

B)SELECT * FROM 學生表 ORDER BY 入校總分DESC

C)SELECT * FROM 學生表 TOP 3 ORDER BY 入校總分ASC

D)SELECT * FROM 學生表 TOP 3 ORDER BY 入校總分DESC

29. 在進行多表聯接查詢時,用________表明聯接的條件。

A)FOR或WHILE B)FOR或WHERE

C)WHERE 或ON D)JOIN 或ON

30. 查詢選修課成績在80分以上的女生姓名,用________語句。

A)SELECT 姓名 FROM 學生表,選課表 WHERE 學生表.學號=選課表.學號

.性別=“女”.成績>=80

B)SELECT 姓名 FROM 學生表,選課表 WHERE 學生表.學號=選課表.學號

.性別=“女”.成績>=80

C)SELECT 姓名 FROM 學生表,選課表 WHERE 學生表.學號=選課表.學號

.性別=“女”.成績>=80

D)SELECT 姓名 FROM 學生表,選課表 WHERE 學生表.學號=選課表.學號

.性別=“女”.成績>=80

31. 查詢所有教師所講授的課程,列出教師號,姓名和課程號,用________語句。

A)SELECT 教師表.教師號,姓名,課程號 FROM 教師表,授課表 WHERE 教師表.教師號=教師號

B)SELECT教師表.教師號,姓名,課程號 FROM 教師表,授課表

ON教師表.教師號=授課表.教師號

C)SELECT教師表.教師號,姓名,課程號 FROM 教師表 INNER JION授課表 ON 教師表.教師號=授課表.教師號

D)SELECT教師表.教師號,姓名,課程號 FROM 教師表 INNER JION授課表 WHERE 教師表.教師號=授課表.教師號

32. 查詢”陳靜”教師所講授的課程,列出姓名和課程名,用________語句。A)SELECT姓名,課程名 FROM 教師表,授課表 ,課程表

WHERE 教師表.教師號=授課表.教師號 AND 姓名=“陳靜”

B)SELECT姓名,課程名 FROM 教師表,授課表 ,課程表

WHERE 教師表.教師號=授課表.教師號 AND授課表.課程號=課程表.課程號AN

D 姓名=“陳靜”

C) SELECT姓名,課程名 FROM 教師表,授課表 ,課程表

WHERE 教師表.教師號=授課表.教師號 AND授課表.教師號=課程表.課程號AN

D 姓名=“陳靜”

D) SELECT姓名,課程名 FROM 教師表,授課表 ,課程表

WHERE 授課表.課程號=課程表.課程號AND 姓名=“陳靜”

33. 查詢所有比”陳靜”教師工資高的教師姓名及工資,使用下列語句 SELECT

X.姓名,X.工資 FROM 教師表 AS X,教師表 AS Y

WHERE X.工資>Y.工資AND Y.姓名=“陳靜”。

該語句使用的查詢是________。

A) 內連線查詢 B) 外連線查詢

C) 自身連線查詢D) 子查詢

34. 查詢與”陳靜”教師職稱相同的教師名,用________語句。

A)SELECT 姓名FROM 教師表 WHERE 職稱=“陳靜”職稱。

B)SELECT X.姓名FROM 教師表 AS X,教師表 AS Y

WHERE X.職稱=Y.職稱WHERE Y.姓名=“陳靜”。

C)SELECT姓名FROM 教師表WHERE 職稱=(SELECT職稱 FROM 教師

AND 姓名=“陳靜”)

D)SELECT姓名FROM 教師表WHERE 職稱=(SELECT職稱 FROM 教師

WHERE 姓名=“陳靜”)

35. 當子查詢返回的值是一個集合時,________不是在比較運算子和子查詢中使用的量詞。

A) RESTB) IN C) ALL D) ANY

36. 查詢講授課程號為C140的教師姓名,錯誤的語句是________。

A)SEL

ECT 姓名FROM 教師表 WHERE(教師號=ANY

(SELECT 教師號FROM 授課表 WHERE課程號=“C140”))

B)SELECT 姓名FROM 教師表 WHERE EXISTS(SELECT * FROM授課表

WHERE 教師號=教師表.教師號 AND課程號=“C140”)

C)SELECT 姓名FROM 教師表,授課表 WHERE教師表.教師號=授課表.教師

號 AND授課表.課程號=“C140”

D)SELECT 姓名FROM 教師表 WHERE(教師號=ALL

(SELECT 教師號FROM 授課表 WHERE課程號=“C140”))

37. 查詢其他系中比計算機系所有教師工資都高的教師姓名和工資,正確的語句是________。

A)SELECT 姓名,工資FROM 教師表 WHERE工資>ANY(SELECT 工資 FRO

M 教師表 WHERE所在系=“計算機”)AND 所在系<>計算機

B)SELECT 姓名,工資FROM 教師表 WHERE工資>(SELECT MIN(工資) FR

OM 教師表 WHERE所在系=“計算機”)AND 所在系<>計算機

C)SELECT 姓名,工資FROM 教師表 WHERE工資>ALL(SELECT 工資 FRO

M 教師表 WHERE所在系=“計算機”)AND 所在系<>計算機

D)SELECT 姓名,工資FROM 教師表 WHERE工資>(SELECT MAX(工資) F

ROM 教師表 WHERE所在系=“計算機”AND 所在系<>計算機)

38. 下列查詢

SELECT 學號,SUM(成績)AS 總分FROM 選課表 WHERE (學號=“C1011101”)

GROUP BY 學號

UNION

SELECT 學號,SUM(成績)AS 總分FROM 選課表 WHERE (學號=“C1011102”)

GROUP BY 學號

使用的是________。

A) 合併查詢 B) 外連線查詢

C) 自身連線查詢D) 子查詢

39. 下列________不是SQL語言具有的功能。

A) 資料定義 B) 資料操縱 C) 資料分配D) 資料查詢

40. SQL語言的核心是________。

A) 建表B) 查詢C) 彙總 D) 定義

41. DCL是下列________語言的簡稱。

A) 資料定義 B) 資料查詢 C) 資料操縱D) 資料控制

42. 檢視和基本表對應於資料庫三級模式中的________。

A) 外模式 B) 模式C) 內模式 D) 全部模式

43. 下列的完整性約束________是惟一性約束。

A) CHECK B) PRIMARY KEY

C) NULL/NOT NULL D) UNIQUE

44. 使用下列________約束,可以確保輸入的值在指定的範圍內。

A) CHECKB) PRIMARY KEY

C) NULL/NOT NULLD) FOREIGN KEY

45. 不屬於資料定義功能的SQL語句是________。

A) CREATE TABLEB) CREATE CURSOR

C) UPDATE D) ALTER TABLE

46. 在ALTER-SQL語句中________子句用於增加欄位的長度。

A) ADD B) ALTER

C) MODIFY D) DROP

47. SQL的資料操作語句不包括______。

A) INSERT B) ALTER C) DELETE D) UPDATE

48. 在使用命令 INSERT INTO 〈表名〉[(列名…)] VALUSE(〈值〉)時下列描述錯誤的是______。

A) INSERT-SQL語句中列名的順序可以與表定義時的列名順序一致

B) INSERT-SQL語句中列名的順序可以與表定義時的列名順序不一致

C) INSERT-SQL語句中值的順序可以與列名的順序不一致

D)INSERT-SQL語句中值的順序必須與列名的順序一致

49. UPDATE-SQL語句的功能是______。

篇二:資料庫 練習題(答案)

第四章練習題

一、選擇題

1、設有兩個關係R(A,B)和S(B,C),與下列SELECT語句

SELECT A,B FROM R WHERE B NOT IN(SELECT B FROM S WHERE C='C56'); C]B.πA,B等價的關係代數表示式是 [ A.πA,B(σ

A,BC≠'C56'(R?S)) (R ? S) C≠'C56'C.R-π(σC= 'C56'(R?S)) D.R-π

B] A,B(σC≠'C56' (R?S)) 2、嵌入式SQL的預處理方式,是指[

A.識別出SQL語句,加上字首標識和結束標誌

B.把嵌入的SQL語句處理成函式呼叫形式

C.對源程式進行格式化處理

D.把嵌入的SQL語句編譯成目標程式

3、SQL中,“DELETE FROM 表名”表示 [ A]

A.從基本表中刪除所有元組 C.從資料庫中撤消這個基本表 B.從基本表中刪除所有屬性 D.從基本表中刪除重複元組

[ C]

B.計算屬性的個數 4、SQL中,聚合函式COUNT(列名)用於 A.計算元組個數

C.對一列中的非空值計算個數 D.對一列中的非空值和空值計算個數

5、在傳統SQL技術中,使用“ORDER BY”子句的SELECT語句查詢的結果,實際上為 [

B] A.陣列 B.列表 C.包 D.集合

6、在資料庫中,能提高查詢速度的是(C )

A. 資料依賴 B. 檢視 C. 索引D. 資料壓縮

7、語句 from sc 表明( A )

A. 刪除sc中的全部記錄 B. 刪除基本表sc

C. 刪除基本表sc中的列資料 D. 刪除基本表sc中的部分行

8、在DB應用中,一般一條SQL 語句可產生或處理一組記錄,而DB主語言語句一般一次只能處理一條記錄,其協調可通過( B)實現。

A. 指標B. 遊標 C.陣列 D. 棧

9、在下列基本表的定義中,數值5表示( C )

CREATE TABLE student (Sno5) not null unique,Sname 2));

A. 表中有5條記錄 B. 表中有5列

C. 表中字串Sno 的長度 D. 表格的大小

10、 在檢視上不能完成的操作是(C )

A. 更新檢視B. 查詢 C. 在檢視上定義新的基本表 D. 在檢視上定義新檢視

11、下列聚合函式中不忽略空值 (null) 的是 (C)

A、SUM (列名)B、MAX (列名)C、COUNT ( * )D、AVG (列名)

12、SQL的查詢語句的where子句中,對空值的操作,不正確的是 ( C )

A、where AGE IS NULLB、where AGE IS NOT NULL

C、where AGE = NULL D、where NOT (AGE IS NULL)

13、Transact-SQL對標準SQL的擴充套件主要表現為( A )。

A. 加入了程式控制結構和變數 B. 加入了建庫和建表語句

C. 提供了分組(Group By)查詢功能D. 提供了Min、Max待統計函式

14、以下哪種情況應儘量建立索引( A )。

A. 在Where子句中出現頻率較高的列 B. 具有很多NULL值的列

C. 記錄較少的基本表 D. 需要更新頻繁的基本表

15、下列SQL Server語句中出現語法錯誤的是(D )。

A. DECLARE @Myvar INT B. SELECT * FROM [AAA]

C. CREATE DATABASE AAA D. DELETE * FROM AAA

16、屬於事務控制的語句是(A)。

A. Begin Tran、Commit、RollBackB. Begin、Continue、End

C. Create Tran、Commit、RollBack D. Begin Tran、Continue、End

17、在SQL語言的SELECT語句中,實現投影操作的是哪個子句?(A )

A)select B)fromC)where D)grou by

18、 用二維表結構表示實體以及實體間聯絡的資料模型稱為(C )

A)網狀模型 B)層次模型 C)關係模型 D)面向物件模型

第(19)至(21)題是基於如下兩個關係,其中僱員資訊表關係EMP的主鍵是僱員號,部門資訊表關係DEPT的主鍵是部門號

EMP DEPT

19、 若執行下面列出的操作,哪個操作不能成功執行?(D )

A) 從EMP中刪除行(‘010’,‘王巨集達’,‘01’,1200)

B) 在EMP中插入行(‘102’,‘趙敏’,‘01’,1500)

C) 將EMP中僱員號=‘056’的工資改為1600元

D) 將EMP中僱員號=‘101’的部門號改為‘05’

20、若執行下面列出的操作,哪個操作不能成功執行?(C )

A) 從DEPT 中刪除部門號=‘03’的行

B)在DEPT中插入行(‘06’,‘計劃部’,‘6號樓’)

C) 將DEPT中部門號=‘02’的部門號改為‘10’

D) 將DEPT中部門號=‘01’的地址改為‘5號樓’

21、在僱員資訊表關係EMP中,哪個屬性是外來鍵(foreign key)?(C )

A) 僱員號 B) 僱員名 C) 部門號 D) 工資

22、設關係R和關係S的元數分別是3和4,關係T是R與S的廣義笛卡爾積,即:T=R×S,

則關係T的元數是(A )

A) 7B) 9C) 12D) 1

23、設屬性A是關係R的主屬性,則屬性A不能取空值(NULL)。這是(A )

A) 實體完整性規則 B) 參照完整性規則

C) 使用者定義完整性規則D) 域完整性規則

24、 下面列出的關於“檢視(View)”的條目中,哪一條是不正確的?( B)

A) 檢視是外模式 B)使用檢視可以加快查詢語句的執行速度

C) 檢視是虛表 D) 使用檢視可以簡化查詢語句的編寫

25、 SQL語言集資料查詢、資料操縱、資料定義和資料控制功能於一體,語句INSERT、DELETE、

UPDATE實現哪類功能?(B )

A) 資料查詢 B) 資料操縱 C) 資料定義 D) 資料控制

26、在資料庫管理系統中,下面哪個模組不是資料庫存取的功能模組?( A)

A) 事務管理程式模組

B) 資料更新程式模組 D) 查詢處理程式模組 C) 互動式程式查詢模組

27、SQL查詢語句中,用於測試子查詢是否為空的謂詞是(A)。

A、EXISTS B、UNIQUE C、SOME D、ALL

28、下列SQL語句中,插入資料的是(D )。

A、CREATE B、ALTER C、UPDATED、INSERT

29、 在下面所列出的條目中,哪些是資料庫管理系統的基本功能?(D )

Ⅰ.資料庫定義

Ⅲ.資料庫存取

A) Ⅰ和Ⅱ Ⅱ.資料庫的建立和維護 Ⅳ.資料庫和網路中其他軟體系統的通訊 D) 都是 B) Ⅰ、Ⅱ和Ⅲ C) Ⅱ和Ⅲ

30、當修改基本資料時,下列關係檢視的說法正確的是(B )

A、需要重建 B、查以看到修改結果

C、無法看到修改結果式 D、不許修改帶檢視的基表

31、 在資料庫管理系統的層次結構中,由高階到低階的層次排列順序為(D )

A) 應用層、資料存取層、資料儲存層、語言翻譯處理層

B) 應用層、資料儲存層、資料存取層、語言翻譯處理層

C) 應用層、資料儲存層、語言翻譯處理層、資料存取層

D) 應用層、語言翻譯處理層、資料存取層、資料儲存層

32、在SQL語言的SELECT語句中,實現投影操作的是( A )子句。

A、select B、fromC、where D、grou by

33、SQL中,“AGE IN(20,22)”的語義是( D )。

A)AGE<=22 and="" age="">=20B)AGE<22 and="" age="">20

C)AGE =20 AND AGE =22 D)AGE =20 OR AGE =22

34 SQL中,聚合函式COUNT(列名)用於( C )

A.計算元組個數B.計算屬性的個數

C.對一列中的非空值計算個數 D.對一列中的非空值和空值計算個數

35、Transact-SQL對標準SQL的擴充套件主要表現為(A )。

A. 加入了程式控制結構和變數 B. 加入了建庫和建表語句

C. 提供了分組(Group By)查詢功能 D. 提供了Min、Max統計函式

36、已知關係:廠商(廠商號,廠名) PK=廠商號

產品(產品號,顏色,廠商號) PK=產品號,FK=廠商號

假設兩個關係中已經存在如圖所示元組:

廠商產品

若再往產品關係中插入如下元組:

I(P03,紅,C02) II(P01,藍,C01)

III(P04,白,C04) IV(P05,黑,null)

能夠插入的元組是( D )

A I,II,IV B I,IIIC I,IID I,IV

37、設有一個關係:DEPT(DNO,DNAME),如果要找出倒數第三個字母為W,並且至少包含4個字母的DNAME,則查詢條件子句應寫成WHERE DNAME LIKE ( B )

A ‘_ _ W _ %’B ‘_ % W _ _’C ‘_ W _ _’ D ‘_ W _ %’

38、下列SQL語句中,修改表結構的是(D )。

A、CREATE B、INSERT C、UPDATED、ALTER

39、SQL語句通常稱為( A)。

A、結構化查詢語言 B、結構化控制語言

C、結構化定義語言 D、結構化操縱語言

40、SQL語言的一體化特點主要是與( B)相比較而言的。

A、作業系統命令 B、非關係模型的資料語言C、高階語言D、自然語言

41、SQL語言中,刪除一個表的命令是( B )

A、 DELETE table B、DROP tableC、 CLEAR tableD、 REMORE table

42、在基表S中查詢所有姓名中有“國”的學生,在WHERE子句中應使用( A)萬用字元。

A. LIKE ’%國%’ B. LIKE ‘%國_’ C. LIKE ’_國%’ D. LIKE ‘_國_’

43、下列哪個不屬於資料庫物件(B )

A、預設B、SELECT語句 C、儲存過程 D、檢視

44、下列那一個不屬於SQL SERVER工具(A )

A資料庫管理器 B、事件探查器 C、匯入和匯出資料 D、查詢分析器

45、 下列那一個不屬於企業管理器的功能(D )

A、註冊伺服器 B、配置本地和遠端伺服器

C、引入和匯出資料D、為WINDOWS建立作業系統使用者

46、關於SQL Server檔案組的敘述正確的是:( A )。

A、一個數據庫檔案不能存在於兩個或兩個以上的檔案組裡

B、日誌檔案可以屬於某個檔案組

C、檔案組可以包含不同資料庫的資料檔案

D、一個檔案組只能放在同一個儲存裝置中

47、下面關於外碼的描述中,不正確的是(C )。

A. 外碼體現了關係間的聯絡手段B. 外碼是某個關係的碼

C. 外碼不是任何關係的碼

D. 外碼是一個關係的碼同時是另一個關係的屬性

48、在SQL Server 中關於索引敘述正確的是:( B )。

A、每個資料庫表可以建立多個聚集索引B、每個表可以定義多個非聚集索引

C、索引的資料儲存在同一個表中D、索引不會改變表中的資料

49、關於索引描述錯誤的是以下的哪一個?( A)

A、表中的任何資料列都可以新增索引

B、建立索引的列最好不要含有許多重複的值

C、一般不給很少使用的列新增索引

D、並不是資料庫中聚集索引越多搜尋效率就越高

50、關於儲存過程的描述正確的一項是:( C )。

A、儲存過程的存在獨立於表,它存放在客戶端,供客戶使用

B、儲存過程只是一些T-SQL語句的.集合,不能看作SQL Server的物件

篇三:資料庫作業(答案)

《資料庫原理與應用》綜合設計任務書

前言

《資料庫原理與應用》課程的重點知識模組包括:1)資料庫設計、2)用SQL實現建庫、建表、查詢、更新、和建立檢視、3)儲存過程和觸發器設計。針對這三個應用能力,用一個案例作為背景,佈置三次大作業。

在校大學生都能理解“圖書管理系統”的應用場合和業務流程。因此,以圖書管理系統作為案例來佈置作業,可以降低業務分析難度,讓學生將主要精力放在知識消化與技術應用上。

本文件包括四個部分。第一部分描述系統的需求,第二部分提出E-R模型設計和關係模型設計的任務;第三部分提出在SQL Server中,用SQL語句來建庫、建表、查詢、更新資料、建立檢視的任務;第四部分,根據應用需求、安全需求和資料完整性要求,提出設計儲存過程和觸發器的任務。 每個任務之前,都給出了完成任務所需要掌握的關鍵知識點,學生可以在對這些知識點進行復習的基礎上完成任務,每個任務是一次大作業。

第一部分案例的需求描述

本部分描述“圖書管理系統”的需求,學生通過閱讀本部分內容,瞭解系統的功能要求、執行環境,對系統所需的資料有總體認識,作為三次作業的基礎。

1.2 需求分析 1)功能需求

圖1-1:功能需求示意圖

教師資訊管理:用於教師基本資料的增刪改查。

圖書資訊管理:用於圖書基本資訊的增刪改查,分類統計圖書冊數和價值。 借書登記:記錄借書時間、所借圖書、借書人、辦理人。 還書登記:記錄還書時間、所還圖書、還書人、辦理人。

催還:查詢借閱逾期的借書資訊,給借書人發電子郵件,給借書人的部門打電話。 2)執行環境要求

圖1-2:執行環境拓撲圖

系統採用C/S模式,有兩臺PC和一臺伺服器,聯成一個區域網。PC上安裝圖書管理軟體的客戶端,伺服器上安裝DBMS,伺服器也可由兩臺PC中的一臺來代替。

第二部分 作業1——E-R模型與關係模型設計

(滿分8分)

本部分的任務是:在需求分析的基礎上,進行E-R圖設計,然後將E-R模型轉換為關係模型。 任務: 1) 2)

根據需求描述,繪製E-R圖。

將E-R圖轉換成關係模型,寫出所有的關係模式,並寫出每一個關係是按照什麼規則轉換而成的。

3) 在已經形成的關係模型下,舉例說明連線運算、投影運算、選擇運算。 參考答案:(屬性寫在了實體和聯絡圖形內) 任務:

1) 根據需求描述,分別為“圖書管理系統”的不同功能模組繪製區域性E-R圖。 教師資訊管理:

圖書基本資訊管理:

借還書登記:

催還書登記:

2) 整體E-R圖

3) 關係模式

? 型別表(型別名,借閱期限),依據:實體轉換為關係。

? 圖書表(,書名,作者,出版社,出版時間,單價,型別名,狀態),依據:

實體轉換為關係,1:N的聯絡合併到N,在N方增加一個外來鍵: 型別名。注:狀態屬性為(庫存,借出)

? 管理員表() ,依據:實體轉換為關係。

? 教師表(教師工號,姓名,性別,Email,部門名), 依據:實體轉換為關係,1:N的聯絡合併

到N,在N方增加一個外來鍵: 部門名。

? 部門表(部門名,電話),依據:實體轉換為關係。

? 借還表(ISBN,教師工號,借辦理人,借出日期,還辦理人,歸還日期),依

據,M:N聯絡轉換為一個關係,取聯絡的實體的鍵加聯絡屬性作為其屬性,可以增加一個列作為主鍵。

? 催還表(ISBN,教師工號,辦理人,催還日期),依據,M:N聯絡轉換為一個

關係,取聯絡的實體的鍵加聯絡屬性作為其屬性,可以增加一個列作為主鍵。 4) 在已經形成的關係模型下,舉例說明連線運算、投影運算、選擇運算。

連線運算:檢視型別的圖書已經超過了有效借出期限。(需要圖書,型別,借還關係) 投影運算:檢視圖書的書名、作者。 選擇運算:檢視單價高於50元的圖書。

附:自底向上設計概念結構的方法

通常分為兩步:第一步:首先要根據需求分析的結果(資料流圖、資料字典等)對現實世界的資料進行抽象,設計各個區域性檢視即分E-R圖。 第二步:整合區域性檢視。

設計分E-R圖的步驟是:選擇區域性應用在需求分析階段,通過對應用環境和要求進行詳盡的調查分析,逐一設計分E-R圖,實體的屬性、標識實體的碼實際上實體與屬性是相對而言的,很難有截然劃分的界限。同一事物,在一種應用環境中作為"屬性",在另一種應用環境中就必須作為"實體"。一般說來,在給定的應用環境中:屬性不能再具有需要描述的性質。即屬性必須是不可分的資料項。

合併分E-R圖,生成初步E-R圖。各分E-R圖之間的衝突主要有三類:屬性衝突、命名衝突和結構衝突。。解決方法是根據應用的語義對實體聯絡的型別進行綜合或調整。 修改與重構,生成基本E-R圖分E-R圖經過合併生成的是初步E-R圖。之所以稱其為初步E-R圖,是因為其中可能存在冗餘的資料和冗餘的實體間聯絡,即存在可由基本資料匯出的資料和可由其他聯絡匯出的聯絡。冗餘資料和冗餘聯絡容易破壞資料庫的完整性,給資料庫維護增加困難,因此得到初步E-R圖後,還應當進一步檢查E-R圖中是否存在冗餘,如果存在,應設法予以消除。