數據庫原理
第一組:
一、 SQL 語句編寫題
(一) 編寫 SQL 語句
對於教學數據庫的三個基本表
學生 S(S#,SNAME,AGE,SEX)
學習 SC(S#,C#,GRADE)
課程 C(C#,CNAME,TEACHER)
試用 SQL 語句表示:檢索 Liu 同學學的課程號。
(二) 編寫 SQL 語句
建立一個學生關系表 Student,表中有 5 個字段:學號 Sno(字符型)、姓名 Sname(字符型)、
性別 Sex(字符型)、年齡 Age(整型)、系別 Dept(字符型),其中 Sno 是關系的碼;建立
一個學生選課關系表 SC,表中有 3 個字段:學號 Sno(字符型)、課程號 Cno(字符型)、成
績 Grade(數值型),其中 Sno、Cno 是關系的碼,用 SQL 語言完成下列功能:
① 建立學生關系表 Student 和學生選課關系表 SC。
② 查詢計算機系(’CS’)所有同學的姓名和各科成績。
③ 添加一個學生記錄,學號為 20020003,姓名為吳剛,性別為男,年齡為 19 歲,所
在系為計算機系。
④ 邏輯刪除李江同學的相關記錄。
二、 解答題
(一) 解答題
學生運動會模型:
(1)有若干班級,每個班級包括: 班級號,班級名,專業,人數
(2)每個班級有若干運動員,運動員只能屬於一個班,包括:運動員號,姓名,性別,年
齡
(3)有若干比賽項目,包括:項目號,名稱,比賽地點
(4)每名運動員可參加多項比賽,每個項目可有多人參加
(5)要求能夠公布每個比賽項目的運動員名次與成績
(6)要求能夠公布各個班級團體總分的名次和成績
解題要求:
(1)畫出每個實體及其屬性關系、實體間實體聯系的 E-R 圖.
(2)根據試題中的處理要求:完成數據庫邏輯模型,包括各個表的名稱和屬性.並指出每
個表的主鍵和外鍵。
(二) 解答題
根據 3NF 的定義及規范化方法,對關系模式
U={學號,姓名,所在系,系主任,課程號,成績
F={學號→姓名,學號→所在系,所在系→系主任(學號,課程號)→成績
使其滿足 3NF。
第二組:
一、 SQL 語句編寫題
(一)編寫 SQL 語句
1.設有職工基本表:EMP(ENO
其屬性分別表示職工號、姓名、年齡、性別、工資。為每個工資低於
200 元,試寫出這個操作的
2. 設某工廠數據庫中有兩個基本表:
車間基本表:DEPT(DNO,DNAME
的職工號。
人數) 主鍵:班級號
,年齡,班級號) 主鍵:運動員號外鍵:班級號
比賽地點) 主鍵:項目號
,名次,得分) 主鍵:運動員號,項目號外鍵:運動員號;項目號
的定義及規范化方法,對關系模式 R(U,F)
學號,姓名,所在系,系主任,課程號,成績}
學號→姓名,學號→所在系,所在系→系主任(學號,課程號)→成績
的關系模式,要求不存在非碼屬性對碼的部分依賴和傳遞依賴。
)中存在姓名、學號對碼(學號,課程號)的部分依賴,存在系主
)分解為如下三個關系模式: {學號,姓名,所在系} {所在系,系主任
三個關系模式中,不存在非碼屬性對碼的部分依賴和傳遞依賴。
ENO,ENAME,AGE,SEX,SALARY),
其屬性分別表示職工號、姓名、年齡、性別、工資。為每個工資低於 1000
元,試寫出這個操作的 SQL 語句。
WHERE SALARY<1000 AND SEX='女';
設某工廠數據庫中有兩個基本表:
DNAME,MGR_ENO),其屬性分別表示車間編號、車間名和車間主任
項目號外鍵:運動員號;項目號
學號→姓名,學號→所在系,所在系→系主任(學號,課程號)→成績}進行分解。
)中存在姓名、學號對碼(學號,課程號)的部分依賴,存在系主
所在系,系主任} {學
1000 元的女職工加薪
),其屬性分別表示車間編號、車間名和車間主任
職工基本表:ERP(ENO,ENAME,AGE,SEX,SALARY,DNO),其屬性分別表示職工號、姓名、
年齡、性別、工資和所在車間的編號。
建立一個有關女車間主任的職工號和姓名的視圖,其結構如下: VIEW6(ENO,ENAME)。試
寫出創建該視圖 VIEW6 的 SQL 語句。
3. 設有一個工程供應數據庫系統,包括如下四個關系模式:
S(SNO,SNAME, STATUS,CITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNAME,CITY);
SPJ(SNO,PNO,JNO,QTY);
供應商表 S 由供應商號、供應商名、狀態、城市組成; 零件表 P 由零件號、零件名、顏
色、重量組成; 工程項目表 J 由項目號、項目名、城市組成;
供應情況表 SPJ 由供應商號、零件號、項目號、供應數量組成;
(1)用關系代數查詢沒有使用天津供應商生產的紅色零件的工程號;
(2) 用關系代數查詢至少使用了供應商 S1 所供應的全部零件的工程號 JNO;
(3)用 SQL 查詢供應工程 J1 零件為紅色的工程號 JNO;
(4)用 SQL 查詢沒有使用天津供應商生產的零件的工程號;
(5)用 SQL 語句將全部紅色零件改為藍色;
(6) 用 SQL 語句將(S2,P4,J6,400)插入供應情況關系。
(二)編寫 SQL 語句
1. 設有學生選課關系 SC(學號,課程號,成績),試用 SQL 語句檢索
每門課程的最高分。
2. 關系模式如下:
商品 P(PNO,PN,COLOR,PRICE) 商店 S(SNO;SN,CITY) 銷售 SP(PNO,SNO,QTY)
分別用關系代數和 SQL 寫出查詢語句:查詢銷售商品'TV”的商店名 SN。
SP 必須書寫在 S、P 之間
3.設有關系 R 和 S 如下圖所示。
試用 SQL 語句實現:
(1)查詢屬性 C>50 時,R 中與相關聯的屬性 B 之值。
(2)當屬性 C=40 時,將 R 中與之相關聯的屬性 B 值修改為 b4。
4. 設有關系 R 和函數依賴 F:
R(W,X,Y,Z),F = { X→Z,WX→Y }。 試求下列問題:
(1)關系 R 屬於第幾范式?
(2)如果關系 R 不屬於 BCNF,請將關系 R 逐步分解為 BCNF。
要求:寫出達到每一級范式的分解過程,並指明消除什么類型的函數依賴。
二、 解答題
(一)解答題
1. 設 T 1 ,T 2 ,T 3 是如下三個事務,其中 R 為數據庫中某個數據項,設 R 的初值為 0。
T 1 : R:=R+5
T 2 : R:=R*3
T 3 : R:=2
若允許三個事務並行執行,試列出所有可能的正確結果。采用什么手段,可以解決並行
調度的不一致問題?
3. 在關系模式 R(U,F)中,U=ABCDEF={A→C,AC→B,B→D,C→E,EC→B} 計算(AB)
+ 。
4. 簡述數據庫概念模型的主要特點。
5. 簡述在 SQL 中,DELETE 語句與 DROP TABLE 的區別。
(二)解答題
設有如下信息:下列 E-R 圖是反映產品與倉庫兩實體間聯系的信息模型,要求
(1)給出該 E-R 圖的關系數據庫模式,並指出相應的關鍵字。
(2)若倉庫號、倉庫名及倉庫地均為字符型且長度均為 10,用 SQL 語言為倉庫關系建立相
應的基表並說明實體完整性規則。
(3)將倉庫基表的查詢權限授予所有用戶,收回 User3 對倉庫的查詢權限。
第三組:
一、 SQL 語句編寫題
(一)編寫 SQL 語句
1.在數據表上機記錄中創建一個名為 insert_sjkh 的 insert 觸發器其作用是:當用戶在“上
機記錄”表中插入記錄時,若“上機卡”表中沒有該上機號,則提示用戶不能插入,否則,
提示記錄插入成功。(附:上機記錄表結構:(上機號 char(13),上機日期 datetime,開始時
間 datetime,結束時間 datetime,上機狀態 bit)。上機卡表結構:(上機號 char(13),姓名)
2.在 student 數據庫中的學生、課程注冊、課程表中創建一個帶參的存儲過程 cjcx。其功
能是:當任意輸入一個學生的姓名時,返回該學生的學號、選修的課程名和課程成績。然后
使用存儲過程,查詢學生“陳斌”的學號、選修的課程名和課程成績。
(二)編寫 SQL 語句
以下給出三個基本表:
Student(學生表)的字段按順序為學號、姓名、性別、年齡、所屬院系;
Course(課程表)的字段按順序為課程編號、課程名、先行課程、課程學分;
SC(選課表)的字段按順序為學號、課程號、成績。
各表的記錄如下:
1. 查詢與“劉晨”在同一個系學習的學生的學號、學生姓名。
2. 將一個新學生記錄(03020;陳冬;男;18;IS)插入 Student 表中。
3. 將計算機科學系(CS)全體學生的成績置零。
4. 創建信息系(IS)選修了 1 號課程的學生的視圖 IS_S1,字段包括 Sno、Sname、Grade。
二、 解答題
(一)解答題
學生與教師教學模型
1)有若干班級,每個班級包括:班級號、班級名、專業、人數、教室
2)每個班級有若干學生,學生只能屬於一個班,學生包括:學號、姓名、性別、年
齡
3)有若干教師,教師包括:編號、姓名、性別、年齡、職稱
4)開設若干課程,課程包括:課程號、課程名、課時、學分
5)一門課程可由多名教師任教,一名教師可任多門課程。
6)一門課程有多名學生選修,每名學生可選多門課,但選同一門課時,只能選其中
一名教師。
解題要求:
(1)畫出每個實體及其屬性關系、實體間實體聯系的(E-R)圖。
(2)根據試題中的處理要求:完成數據庫邏輯模型,包括各個表的名稱和屬性。
(二)解答題
有一個應用,包括三個實體集。
址,店經理。 實體類型
工”的屬性有:職工編號,職工名,性別,工資
工只能服務於一家商店。
系中應反映出職工參加某商店工作的開始時間,會員的加入時間。
(1)試畫出反映商店、職工、會員實體類型及聯系類型的
(2)將 ER 圖轉換成關系模式,並指出每個表的主鍵和外鍵;
(3)指出以上關系模式所達到的范式。
第四組:
一、 SQL 語句編寫題
(一)編寫 SQL 語句
以下各小題題基於教學數據庫的三個基本表
學生 S(S#,SNAME,AGE,SEX)
學習 SC(S#,C#,GRADE)
課程 C(C#,CNAME,TEACHER)
1. 試用元組表達式和關系代數表達式表示下列查詢語句:檢索年齡小於
2. 試用 SQL 的查詢語句表達下列查詢
3. 試用 SQL 的查詢語句表達下列查詢
4. 試用 SQL 更新語句表達以下更新操作:
(二)編寫 SQL 語句
設有如下 4 個關系模式:
S(SN,SNAME,CITY)
P(PN,PNAME,COLOR,WEIGHT)
J(JN,JNAME,CITY)
SPJ(SN,PN,JN,QTY)
其中:S 表示供應商,SN 為供應商編碼,SNAME 為供應商名字,CITY 為供應商所在城市;P
表示零件,PN 為零件編碼,PNAME 為零件名字,COLOR 為零件顏色,WEIGHT 為零件重量;J
表示工程,JN 為工程編碼,JNAME 為工程名字,CITY 為工程所在城市;SPJ 表示供應關系,
QTY 表示提供的零件數量。
寫出實現以下各題功能的 SQL 語句:
(1) 取出所有工程的全部細節。
(2) 取出所在城市為南京的所有工程的全部細節。
(3) 取出為所在城市為上海的工程提供零件的供應商編碼。
(4) 取出為所在城市為上海或北京的工程提供紅色零件的供應商編碼。
(5) 取出供應商與工程所在城市相同的供應商提供的零件編碼。
(6) 取出至少由一個和工程不在同一城市的供應商提供零件的工程編碼。
(7) 取出上海供應商不提供任何零件的工程編碼。
(8) 取出所有這樣的一些<CITY,CITY>二元組,使得第 1 個城市的供應商為第 2 個城市的
工程提供零件。
二、 解答題
(一)解答題
東方貨運公司數據庫的樣本數據如下。
表名稱:卡車
車號 貨運站編號 類型 總行程 購入日期
1001 501 1 59002.7 11/06/90
1002 502 2 54523.8 11/08/90
1003 503 2 32116.6 09/29/91
1004 504 2 3256.9 01/14/92
表名稱:貨運站
貨運編號 地址 電話 經理
501 北京市東城區花市大街
111 號
010—67301234 何東海
502 北京市海淀花園路 101
號
010—64248892 吳明君
表名稱:型號
類型 汽車型號
1 DJS130
2 DLS121
根據數據庫的表結構和內容:
a. 指出每個表的主碼和外碼。如果沒有外碼,則寫“無”。
b. 卡車表存在實體完整性和參照完整性嗎?請詳細說明。
c 具體說明卡車表與運貨站表之間存在着什么關系?
d.卡車表中包含多少個實體?
2.設有關系 R 與 S
R: A B C
2 3 4
4 5 6
7 8 9
S:
D E
7 5
4 8
計算 T
第五組:
一、 SQL 語句編寫題
(一)編寫 SQL 語句
建立一個學生關系表 Student,表中有 5 個字段:學號 Sno(字符型)、姓名 Sname(字符型)、
性別 Sex(字符型)、年齡 Age(整型)、系別 Dept(字符型),其中 Sno 是關系的碼;建立
一個學生選課關系表 SC,表中有 3 個字段:學號 Sno(字符型)、課程號 Cno(字符型)、成
績 Grade(數值型),其中 Sno、Cno 是關系的碼,用 SQL 語言完成下列功能:
① 建立學生關系表 Student 和學生選課關系表 SC。
② 查詢計算機系(’CS’)所有同學的姓名和各科成績。
③ 添加一個學生記錄,學號為 20020003,姓名為吳剛,性別為男,年齡為 19 歲,所
在系為計算機系。
④ 邏輯刪除李江同學的相關記錄。
(二)編寫 SQL 語句
表 1 部門表
表 2 職員表
1、根據表 1 和表 2,用 SQL 語句創建雇員表和部門表
假設有雇員關系表格,它的結構如下:
雇員(雇員編號,雇員姓名,年齡,受雇時間,薪水,電話號碼,部門編號)。雇員編號為
主鍵,部門編號為外鍵。
部門(部門編號,部門名稱,部門所在地)主鍵是部門編號
2、請寫出下列查詢和操作 SQL 語句。
1)以遞增的方式列出職工的部門號碼(不重復);
2)查找 AGE 年齡為 35 歲的職工全部信息;
3)查詢在部門 20 或者 30 工作的,工資大於 1600,年齡大於 35 歲的職工信息。
4)計算最高,最低和平均工資;
5)找處職工不足 3 人的部門及其相應的職工數;
6)將部門號為 10 部門所有人員工資提高 20%;
7)從雇員中找出工資大於平均工資的職工信息;
8)刪除在部門 10 的,工資大於 2500 的職工信息;
9)從雇員表雇員中選取工資大於 150 元職工的雇員編號,雇員姓名,工資和部門編號,構
成一個雇員工資視圖;
10) 查詢馬克所在部門名稱;
二、 解答題
(一)解答題
根據 3NF 的定義及規范化方法,對關系模式 R(U,F)
U={學號,姓名,所在系,系主任,課程號,成績}
F={學號→姓名,學號→所在系,所在系→系主任(學號,課程號)→成績}進行分解。
使其滿足 3NF。
(二)解答題
數據模型分析,關系模型 R(U,F)
U=ABCDEG,F={AD→E,AC→E,CB→G,BCD→AG,BD→A,AB→G,A→C}
(1) 求此模型的最小函數依賴集。
(2) 求出關系模式的候選碼。
(3) 此關系模型最高屬於哪級范式。
(4) 將此模型按照模式分解的要求分解為 3NF。