版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)庫(kù)原理實(shí)驗(yàn)和課程設(shè)計(jì)指導(dǎo)書信息學(xué)院二七年十月I數(shù)據(jù)庫(kù)原理及應(yīng)用實(shí)驗(yàn)和課程設(shè)計(jì)指導(dǎo)書目 錄實(shí)驗(yàn)一 創(chuàng)建和修改數(shù)據(jù)庫(kù)1實(shí)驗(yàn)二 創(chuàng)建和修改數(shù)據(jù)表6實(shí)驗(yàn)三 添加記錄并建立查詢10實(shí)驗(yàn)四 創(chuàng)建視圖13實(shí)驗(yàn)五 創(chuàng)建索引14實(shí)驗(yàn)六 創(chuàng)建觸發(fā)器15實(shí)驗(yàn)七 創(chuàng)建存儲(chǔ)過程16實(shí)驗(yàn)八 備份和恢復(fù)數(shù)據(jù)庫(kù)17實(shí)驗(yàn)九 綜合練習(xí)數(shù)據(jù)庫(kù)設(shè)計(jì)(一)19實(shí)驗(yàn)十 綜合練習(xí)數(shù)據(jù)庫(kù)設(shè)計(jì)(二)20課程設(shè)計(jì)21實(shí)驗(yàn)一 創(chuàng)建和修改數(shù)據(jù)庫(kù)目的和意義學(xué)習(xí)創(chuàng)建和修改用戶數(shù)據(jù)庫(kù)的方法。實(shí)驗(yàn)內(nèi)容分別使用SQLServer2000企業(yè)管理器和Transact-SQL語句,按下列要求創(chuàng)建和修改用戶數(shù)據(jù)庫(kù)。1. 創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),要求如下:(1) 數(shù)據(jù)庫(kù)
2、名"testDB"。(2) 數(shù)據(jù)庫(kù)中包含一個(gè)數(shù)據(jù)文件,邏輯文件名為 testDB_data,磁盤文件名為testDB_data.mdf,文件初始容量為5MB,最大容量為15MB,文件容量遞增值為1MB。(3) 事務(wù)日志文件,邏輯文件名為TestDB_log, 磁盤文件名為TestDB_log.ldf,文件 初始容量為5MB, 最大容量為10MB,文件容量遞增值為1MB。2. 對(duì)該數(shù)據(jù)庫(kù)做如下修改:(1) 添加一個(gè)數(shù)據(jù)文件,邏輯文件名為TestDB2_data,實(shí)際文件為TestDB2_data.ndf,文件初始容量為1MB,最大容量為6MB,文件容量遞增值為1MB。(2)
3、將日志文件的最大容量增加為15MB,遞增值改為2MB。實(shí)現(xiàn)步驟方法一:使用企業(yè)管理器創(chuàng)建和修改數(shù)據(jù)庫(kù)TestDB1. 設(shè)置常規(guī)選項(xiàng)卡(1) 在企業(yè)管理器的控制面板目錄中選中結(jié)點(diǎn)"數(shù)據(jù)庫(kù)",單擊鼠標(biāo)右鍵,在彈出菜單中選擇"新建數(shù)據(jù)庫(kù)"命令。(2) 設(shè)置新建數(shù)據(jù)庫(kù)的常規(guī)選項(xiàng)卡,在"名稱"文本框中鍵入數(shù)據(jù)庫(kù)名稱"TestDB"。如圖1-l所示。圖A12. 設(shè)置數(shù)據(jù)文件選項(xiàng)卡在“文件名”字段中鍵入數(shù)據(jù)文件名“TestDB_data”。設(shè)置該文件初始大小為5MB。圖1-1選中“文件屬性”對(duì)話框中的復(fù)選框“文件自動(dòng)增長(zhǎng)”,并選
4、中“按兆字節(jié)”設(shè)置文件容量遞增值為1。在“最大文件大小”對(duì)話框中選擇“將文件增長(zhǎng)限制為(MB)”為15。如圖1-2所示。圖1-23. 設(shè)置事務(wù)日志選項(xiàng)卡(1) 在"文件名"字段中鍵入事務(wù)日志文件的邏輯文件名"TestDB_log"。設(shè)置該文 件初始大小為5MBo(2) 選中"文件屬性"對(duì)話框中復(fù)選框"文件自動(dòng)增長(zhǎng)",并選中"按兆字節(jié)"設(shè)置文件容量遞增值為1。(3) 在"最大文件大小"對(duì)話框中選擇"將文件增長(zhǎng)限制為(MB)"為10。如圖1-3所示。(4) 單
5、擊"確定"按鈕,完成數(shù)據(jù)庫(kù)的創(chuàng)建。 圖1-3設(shè)置事務(wù)日志選項(xiàng)卡4. 修改事務(wù)日志文件屬性(1) 從樹狀目錄窗口中找到剛剛創(chuàng)建的數(shù)據(jù)庫(kù)TestDB,單擊鼠標(biāo)右鍵,從彈出菜單中選擇命令"屬性",打開數(shù)據(jù)庫(kù)TestDB的屬性窗口。(2) 選擇數(shù)據(jù)文件選項(xiàng)卡。在該選項(xiàng)卡中添加數(shù)據(jù)文件TestDB2_data,方法是:在"文件名"字段中鍵入數(shù)據(jù)文件邏輯文件名"TestDB2_data",設(shè)置該文件初始大小為 1MB,然后選中"文件屬性"對(duì)話框中復(fù)選框"文件自動(dòng)增長(zhǎng)",并選中"
6、按兆字節(jié)"設(shè)置文件容量遞增值為1,最后在"最大文件大小"對(duì)話框中選擇"將文件增長(zhǎng)限制為(MB)6。如圖1-4所示。圖1-4(3) 選擇事務(wù)日志選項(xiàng)卡,在該選項(xiàng)卡中將事務(wù)日志文件的最大容量改為15,遞增量改為2。如圖1-5所示。圖1-5方法二:使用Transact-SQL語句創(chuàng)建和修改數(shù)據(jù)庫(kù)TestDB1. 創(chuàng)建數(shù)據(jù)庫(kù)TestDBCREATE DATABASE TestDBON(NAME = TestDB_data,FILENAME=“D:Program filesMicrosoft sql servermssqldataTestDB_data.mdf”,
7、SIZE=5,MAXSIZE=15,FILEGROWTH=1)LOG ON(NAME = TestDB_log,FILENAME=“D:Program filesMicrosoft sql servermssqldataTestDB_log.ldf”,SIZE=5,MAXSIZE=10,FILEGROWTH=1)2. 修改數(shù)據(jù)庫(kù)TestDBALTER DATABASE TestDBADD FILE(NAME = TestDB2_data,FILENAME=“D:Program filesMicrosoft sql servermssqldataTestDB2_data.ndf”,SIZE=1,
8、MAXSIZE=6,FILEGROWTH=1)GOALTER DATABASE TestDBMODIFY FILE(NAME=TestDB_log,MAXSIZE=15)GOALTER DATABASE TestDBMODIFY FILE(NAME=TestDB_log,FILEGROWTH=2)GO習(xí)題 建立學(xué)生選課的數(shù)據(jù)庫(kù)stuDB, 邏輯文件名為 stuDB_data,磁盤文件名為stuDB_data.mdf,文件初始容量為10MB,最大容量為15MB,文件容量遞增值為2MB。事務(wù)日志文件,邏輯文件名為stuDB_log, 磁盤文件名為stuDB_log.ldf,文件初始容量為5MB,
9、最大容量為10MB,文件容量遞增值為1MB。體會(huì)實(shí)驗(yàn)二 創(chuàng)建和修改數(shù)據(jù)表目的和意義熟悉有關(guān)數(shù)據(jù)表的創(chuàng)建和修改等工作,并了解主鍵、外鍵以及約束的創(chuàng)建和應(yīng)用,熟練掌握使用企業(yè)管理器和CREATE TABLE、ALTER TABLE等Transact-SQL語句對(duì)數(shù)據(jù)表的操作方法。實(shí)驗(yàn)內(nèi)容分別使用企業(yè)管理器和Transact-SQL語旬按下列要求創(chuàng)建兩個(gè)數(shù)據(jù)表: 表B1項(xiàng)目數(shù)據(jù)表,表B2員工數(shù)據(jù)表,并按照步驟完成對(duì)表的相關(guān)修改和約束設(shè)置。項(xiàng)目表(Project)字段名數(shù)據(jù)類型字段長(zhǎng)度注釋項(xiàng)目編號(hào)int主鍵名稱varchar長(zhǎng)度為50負(fù)責(zé)人int客戶int開始日期datetime結(jié)束日期datetim
10、e員工數(shù)據(jù)表(Employee)字段名數(shù)據(jù)類型字段長(zhǎng)度注釋編號(hào)int主鍵姓名varchar長(zhǎng)度為50性別varchar長(zhǎng)度為50所屬部門varchar長(zhǎng)度為50工資money長(zhǎng)度為8實(shí)現(xiàn)步驟方法一:使用企業(yè)管理器創(chuàng)建數(shù)據(jù)表并添加約束1. 打開企業(yè)管理器,在樹狀目錄窗口中找到數(shù)據(jù)庫(kù)節(jié)點(diǎn)TestDB,并選中下一級(jí)節(jié)點(diǎn)"表"。2. 單擊鼠標(biāo)右鍵,從彈出菜單中選擇命令"新建表",打開表設(shè)計(jì)窗口,在窗口中按照"上機(jī)任務(wù)"中所列的"項(xiàng)目數(shù)據(jù)表"的字段及要求鍵入列名、數(shù)據(jù)類型、長(zhǎng)度等屬性,并將"項(xiàng)目編號(hào)"設(shè)置
11、為主鍵。如圖2-l所示。圖2-l創(chuàng)建"項(xiàng)目數(shù)據(jù)表"3. 單擊"保存"按鈕,在彈出的對(duì)話框中輸入表名稱"項(xiàng)目數(shù)據(jù)表",關(guān)閉表設(shè)計(jì)窗口,完成表"項(xiàng)目數(shù)據(jù)表"的刨建。4. 重復(fù)1-3步,創(chuàng)建另一個(gè)數(shù)據(jù)表"員工數(shù)據(jù)表",表設(shè)計(jì)窗口如圖2-2所示。圖2-2創(chuàng)建"員工數(shù)據(jù)表"5. 添加外鍵約束:在"項(xiàng)目數(shù)據(jù)表"的"負(fù)責(zé)人"字段上添加外鍵約束,參照字段為"員工數(shù)據(jù)表"中的字段"編號(hào)",約束名為FK_pm。實(shí)現(xiàn)方
12、法為:首先在企業(yè)管理器中選中"項(xiàng)目數(shù)據(jù)表"并單擊鼠標(biāo)右鍵,在彈出菜單中選擇命令"設(shè)計(jì)表"打開設(shè)計(jì)表窗口。然后在該窗口中單擊按鈕"表和索引屬性"按鈕,打開表的"屬性"對(duì)話框。最后選擇"關(guān)系"選項(xiàng)卡,在改選項(xiàng)卡中做如下的操作。單擊"新建"按鈕;從"主鍵表"中選擇"員工數(shù)據(jù)表",并選擇字段"編號(hào)"從"外鍵表"中選擇"項(xiàng)目數(shù)據(jù)表",并選擇字段"負(fù)責(zé)人"在"
13、關(guān)系名"中輸入FK_pm。單擊"關(guān)閉"按鈕,完成外鍵約束的設(shè)置。6. 添加檢查約束:將"員工數(shù)據(jù)表"中的字段"工資"的值限定在1000-10000,約束名CK_Salary。操作方法為:首先在企業(yè)管理器中選中"員工數(shù)據(jù)表"并單擊鼠標(biāo)右鍵,在彈出菜單中選擇命令"設(shè)計(jì)表"打開設(shè)計(jì)表窗口。然后在該窗口中單擊按鈕"表和索引屬性"按鈕,打開表的"屬性"對(duì)話框。最后選擇"CHECK約束"選項(xiàng)卡,在改選項(xiàng)卡中做如下的操作:單擊標(biāo)簽中&quo
14、t;新建"按鈕;在"約束表達(dá)式"文本框中輸入一個(gè)條件表達(dá)式;(工資>=1000 AND 工資<=10000)在"約束名"對(duì)話框中輸入所建核查約束名"CK_Salary"。如圖2-3所示。圖2-3方法二:使用Transact-SQL語句創(chuàng)建數(shù)據(jù)表并添加約束1. 創(chuàng)建項(xiàng)目數(shù)據(jù)表USE TestDBGOCREATE TABLE 項(xiàng)目數(shù)據(jù)表(項(xiàng)目編號(hào) int PRIMARY KEY, 名稱 varchar(50),負(fù)責(zé)人 int, 客戶 int,開始日期 datatime,結(jié)束日期 datatime)2. 創(chuàng)建員工數(shù)據(jù)表
15、USE TestDBGO(編號(hào) int PRIMARY KEY,姓名 varchar(50),性別 varchar(50),所屬部門 varchar(50)工資 money(8)3. 添加外鍵約束ALTER TABLE 項(xiàng)目數(shù)據(jù)表 ADD CONSTRAINT PK_pm FOREIGN KEY(負(fù)責(zé)人) REFERENCES 員工數(shù)據(jù)表(編號(hào))添加檢查約束ALTER TABLE 員工數(shù)據(jù)表ADD CONSTRAINT CK_pm CHECK(工資>=1000 AND 工資<=10000)習(xí)題 建立學(xué)生的基本信息表student、課程表course和選修課成績(jī)表sc.體會(huì)實(shí)驗(yàn)三 添
16、加記錄并建立查詢目的和意義熟練掌握查詢語句。實(shí)驗(yàn)內(nèi)容向數(shù)據(jù)庫(kù)TestDB中的兩個(gè)數(shù)據(jù)表"項(xiàng)目數(shù)據(jù)表"和"員工數(shù)據(jù)表"中添加記錄,如表Cl,C2所示。然后在查詢分析器中書寫Transact-SQL語句完成"實(shí)現(xiàn)步驟"中所列的任務(wù)。表c1項(xiàng)目數(shù)據(jù)表項(xiàng)目編號(hào)名稱負(fù)責(zé)人客戶開始日期結(jié)束日期1SiS2103/12/200006/12/20002SiS項(xiàng)目21104/06/200005/01/20003Pet2206/17/200008/17/20004Pet項(xiàng)目22209/01/200009/18/20005CCH3303/12/200006/
17、12/20006CCH_LXF4304/06/200005/01/20007CCH_ZHS7306/17/200008/17/20008CCH_LY9309/01/200009/18/20009CCH_LYAN19303/12/200006/12/200010PETER6404/06/200005/01/200011REALIDEA8506/17/200008/17/200012REALIDEA17509/01/200009/18/200013REALIDEA219503/12/200006/12/200014REALIDEA39504/06/200005/01/200015PPA4606/1
18、7/200008/17/200016NBA4709/01/200009/18/2000表C2員工數(shù)據(jù)表編號(hào)姓名性別所屬部門工資1陳有朋男項(xiàng)目部20002孫曉晴女項(xiàng)目部30003張曉峰男錄入部10004慕容雪男檢驗(yàn)部15005陳秋萍女檢驗(yàn)部10006王理斌男檢驗(yàn)部20007周晴晴女辦公室30008楊亭亭女項(xiàng)目部25009馬明宇男項(xiàng)目部400019劉燕女項(xiàng)目部3000實(shí)驗(yàn)要求1·書寫語句查詢項(xiàng)目數(shù)據(jù)表中客戶字段的唯一值,并查看查詢結(jié)果。參考答案:SELECT UNIQUE客戶 FROM 項(xiàng)目數(shù)表;2·書寫語句查詢工資高于2000的項(xiàng)目部的人員的姓名。參考答案:SELECT姓名F
19、ROM員工數(shù)據(jù)表WHERE所屬部門=“項(xiàng)目部"AND工資>2000;3·書寫查詢語句查詢來自CCH公司的項(xiàng)目名稱(以CCH開始)和負(fù)責(zé)人姓名。參考答案: SELECT a.名稱,b.姓名 FROM 項(xiàng)目數(shù)據(jù)表 AS a , 員工數(shù)據(jù)表 AS bWHERE a.負(fù)責(zé)人=b.編號(hào)AND a.名稱 LIKE “CCH%”;4書寫語句查詢每個(gè)部門的平均工資,結(jié)果按照平均工資的多少排序SELECT 所屬部門,AVG(工資)FROM 員工數(shù)據(jù)表GROUP BY 所屬部門ORDER BY AVG(工資);5使用外向聯(lián)接輸出所有的員工姓名和負(fù)責(zé)人的項(xiàng)目名稱SELECT員工數(shù)據(jù)表.姓名
20、,項(xiàng)目數(shù)據(jù)表.名稱FROM 員工數(shù)據(jù)表 LEFT JOIN項(xiàng)目數(shù)據(jù)表ON員工數(shù)據(jù)表.編號(hào)=項(xiàng)目數(shù)據(jù)表.負(fù)責(zé)人;6使用子查詢輸出所有負(fù)責(zé) CCH公司項(xiàng)目(以CCH開始)的員工姓名,以及沒有負(fù)責(zé)REALIDEA公司(以REALIDEA開始)項(xiàng)目的員工姓名 。SELECT 姓名 FROM 員工數(shù)據(jù)表 WHERE 編號(hào) IN (SELECTDISTINCT 負(fù)責(zé)人 FROM 項(xiàng)目數(shù)據(jù)表WHERE 名稱 LIKE'CCH%') SELECT 姓名 FROM 員工數(shù)據(jù)表WHERE 編號(hào) NOT IN (SELECT DISTINCT 負(fù)責(zé)人 FROM 項(xiàng)目數(shù)據(jù)表WHERE 名稱 LIKE&
21、#39;REALIDEA%');7·將所有REALIDEA公司的項(xiàng)目的結(jié)束日期更改為2002年1月8日 。UPDATE 項(xiàng)目數(shù)據(jù)表SET 結(jié)束日期= 'January 8, 2002'WHERE 名稱 LIKE 'REALIDEA%;8·錄入部的張曉峰決定辭職,請(qǐng)將員工數(shù)據(jù)庫(kù)中有關(guān)他的記錄刪除,并將他負(fù)責(zé)的項(xiàng)目移交給楊亭亭。書寫語句對(duì)數(shù)據(jù)表做相應(yīng)的更改。DELETE員工數(shù)據(jù)表WHERE 姓名=“張曉峰”UPDATE 項(xiàng)目數(shù)據(jù)表 SET負(fù)責(zé)人=8WHERE負(fù)責(zé)人=3;習(xí)題在student , course , sc中 添加元組1)從studen
22、t , course , sc表中選擇出當(dāng)年年齡在20歲以上的學(xué)生的學(xué)號(hào)和姓名。2)統(tǒng)計(jì)平均年齡價(jià)格。3)“張三”同學(xué)要退學(xué),請(qǐng)刪除他的所有信息。 體會(huì)實(shí)驗(yàn)四 創(chuàng)建視圖目的和意義掌握使用T -SQL語句創(chuàng)建視圖的方法,包括視圖的建立、刪除、修改;了解如何應(yīng)用視圖有選擇地查看所需數(shù)據(jù),并熟悉通過視圖更改數(shù)據(jù)表中數(shù)據(jù)的方法。實(shí)驗(yàn)內(nèi)容在數(shù)據(jù)庫(kù)Company_Data中,基于表"項(xiàng)目數(shù)據(jù)表"和"員工數(shù)據(jù)表"創(chuàng)建視圖,要求為:(1) 視圖名為"員工項(xiàng)目"。(2) 包含字段"編號(hào)"、"姓名"、"名
23、稱"和"開始日期"。(3) 字段別名分別是"員工編號(hào)"、”員工姓名"、"項(xiàng)目名稱"、"項(xiàng)目開始日期"。實(shí)現(xiàn)步驟 (1)打開查詢分析器。在查詢窗口書寫CREATE VIEW語句創(chuàng)建視圖,并指定字段別名:USE TestDBGOCREATE VIEW 員工項(xiàng)目(員工編號(hào),員工姓名,項(xiàng)目名稱,項(xiàng)目開始日期)ASSELECT a.編號(hào),a.姓名,b.名稱,b.開始日期,FROM 員工數(shù)據(jù)表 AS a INNER JOIN 項(xiàng)目表 AS bON a.編號(hào)=b.負(fù)責(zé)人WHERE a.編號(hào)=b.負(fù)責(zé)人GO (
24、2)使用INSERT語句通過視圖向員工數(shù)據(jù)表中添加一條記錄,要求"姓名"字段值為"馬中興"。USETestDBGOINSERTINTO 員工項(xiàng)目(員工姓名)VALUES('馬中興')GO (3)使用UPPDATE語句通過視圖將第二步中插入記錄的員工姓名改為"馬中新"。USETestDBGOUPDATE員工項(xiàng)目SET 項(xiàng)目負(fù)責(zé)人= '馬中新,WHERE 項(xiàng)目負(fù)責(zé)人=馬中興GO (4)執(zhí)行系統(tǒng)存儲(chǔ)過程 sp_rename將視圖更名為"employee_project_VIEW "。USETest
25、DBGOEXEC sp_rename '員工項(xiàng)目', 'emp1oyee_project_VIEW'實(shí)驗(yàn)五 創(chuàng)建索引目的和意義掌握創(chuàng)建索引的方法。實(shí)驗(yàn)內(nèi)容分別使用企業(yè)管理器和Transact-SQL語句在實(shí)驗(yàn)四的數(shù)據(jù)表"員工數(shù)據(jù)表"中基于"姓名"創(chuàng)建索引,要求索引名為"IDX_Name",索引類型為非聚集索引。實(shí)現(xiàn)步驟方法一,使用企業(yè)管理器 (1)打開企業(yè)管理器,在樹狀目錄中展開數(shù)據(jù)表"員工數(shù)據(jù)表"所在的數(shù)據(jù)庫(kù)節(jié)點(diǎn)TestDB,并選擇其下一級(jí)節(jié)點(diǎn)"表"。 (2)選
26、擇表"員工數(shù)據(jù)表",并單擊鼠標(biāo)右鍵。在彈出菜單中選擇命令"所有任務(wù)管理索引",打開"管理索引"對(duì)話框。 (3)在"管理索引"對(duì)話框中的"數(shù)據(jù)庫(kù)"下拉菜單中選擇數(shù)據(jù)庫(kù)表。 (4)選擇"新建"按鈕,彈出"新建索引"對(duì)話框。 (5)在"新建索引"對(duì)話框的"索引名"文本框中輸入索引名稱"IDX_Name",然后選擇字段"姓名"并設(shè)置索引屬性。如圖5-l所示。圖5-l創(chuàng)建索引(6)設(shè)置索
27、引選項(xiàng)以后,單擊"確定"按鈕,返回到"管理索引"對(duì)話框。(7)單擊"關(guān)閉"按鈕,退出"管理索引"對(duì)話框,完成索引的創(chuàng)建。方法二:使用T-SQL語旬USE TestDBGOCREATE INDEX IDX_Name ON 員工數(shù)據(jù)表(姓名)GO實(shí)驗(yàn)六 創(chuàng)建觸發(fā)器目的和意義理解觸發(fā)器的觸發(fā)過程和類型,掌握創(chuàng)建觸發(fā)器的方法。實(shí)驗(yàn)內(nèi)容在數(shù)據(jù)庫(kù) Company_Data的表"項(xiàng)目數(shù)據(jù)表"和"員工數(shù)據(jù)表"中分別創(chuàng)建觸發(fā)器。實(shí)現(xiàn)步驟 (1)打開查詢分析器。 (2)在查詢窗口書寫 CREAT
28、E TRIGGER語句,基于表"員工數(shù)據(jù)表"創(chuàng)建AFTER INSERT 觸發(fā)器 Tigger_NewEmployeeSalary,將插入員工的工資額限制在 5000以內(nèi)。USETestDB.GOCREATE TRIGGERTrigger_NewEmployeeSalaryON 員工數(shù)據(jù)表AFTER INSERTASIF (SELECT 工資 FROM inserted) > 5000BEGINPRINT '新員工工資不能超過5000'ROLLBACKENDGO(3)在查詢窗口書寫CREATE TRIGGER語句,基于表"員工數(shù)據(jù)表"
29、;創(chuàng)建AFTER UPDATE觸發(fā)器Trigger_SalaryChange,將員工工資變動(dòng)額限制在2000以內(nèi)。CREATE TRIGGER Trigger_SalaryChangeON員工數(shù)據(jù)表AFTER UPDATEASIFUPDATE(工資)BEGIN IF (SELECT MAX(ABS(inserted.工資一de1eted.工資) FROMinsertedJOINdeleted ONinserted.編號(hào) = deleted.編號(hào)) > 2000BEGIN PRINT 工資變動(dòng)不能超過 2000' ROLLBACKTRANSACTIONENDF.ND實(shí)驗(yàn)七 創(chuàng)建存儲(chǔ)
30、過程目的和意義了解存儲(chǔ)過程的概念和作用,掌握創(chuàng)建存儲(chǔ)過程的方法。實(shí)驗(yàn)內(nèi)容在數(shù)據(jù)庫(kù)Company_Data中創(chuàng)建存儲(chǔ)過程Procedure_SalaryByDept,要求返回某一特定部門所有員工的工資總和,其中特定部門的名稱以存儲(chǔ)過程的輸入?yún)?shù)進(jìn)行傳遞。實(shí)現(xiàn)步驟 (1)打開查詢分析器。 (2)在查詢窗口書寫 CREATE PROCEDURE Transact-SQL語句創(chuàng)建存儲(chǔ)過程Procedure_SalaryByDept,并帶有一個(gè)輸入?yún)?shù)Department用于傳遞部門名稱,一個(gè)輸出參數(shù)TotalSalary用于傳遞輸出結(jié)果。CREATE PROCEDURE Procedure_Salar
31、yByDept Department varchar(40),TotalSalary money OUTPUTAS (3)選擇所屬部門為該參數(shù)傳遞的部門名稱的所有記錄,并對(duì)其工資字段求和。 SELECT Tota1Sa1ary=sum(工資)FROM員工數(shù)據(jù)表WHERE所屬部門=DepartmentGO(4)報(bào)告該部門的工資總額。PRINT'該部門的工資總額+CONVERT(varchar,TotalSalary)GO(5)執(zhí)行這個(gè)創(chuàng)建存儲(chǔ)過程的語句。(6)執(zhí)行系統(tǒng)存儲(chǔ)過程sp_help查看該存儲(chǔ)過程的一般信息。(7)執(zhí)行該存儲(chǔ)過程,分別計(jì)算項(xiàng)目部、錄入部、和檢驗(yàn)部的工資總額。(8)用
32、ALTTER PROCEDURE語句將存儲(chǔ)過程加密。實(shí)驗(yàn)八 備份和恢復(fù)數(shù)據(jù)庫(kù)目的和意義理解數(shù)據(jù)庫(kù)備份的過程和屬性設(shè)置,掌握使用企業(yè)管理器備份數(shù)據(jù)庫(kù)的方法。實(shí)驗(yàn)內(nèi)容使用SQLServer2000企業(yè)管理器備份和恢復(fù)數(shù)據(jù)庫(kù)TestDB.實(shí)現(xiàn)步驟 (1)打開企業(yè)管理器,在控制面板目錄中選擇數(shù)據(jù)庫(kù)TestDB。 (2)單擊鼠標(biāo)右鍵,從彈出菜單中選擇命令"所有任務(wù)備份數(shù)據(jù)庫(kù)"。 (3)在出現(xiàn)的"SQLServer備份"對(duì)話框中選擇"常規(guī)"選項(xiàng)卡。 (4)在該選項(xiàng)卡中的"名稱"文本框中鍵入"TestDB數(shù)據(jù)庫(kù)備份&q
33、uot;。 (5)在"描述"文本框中鍵入"備份集1"。 (6)在"備份"對(duì)話框中選中"數(shù)據(jù)庫(kù)-完全"選項(xiàng),如圖8-1所示。 (7)單擊"添加"按鈕,在彈出的對(duì)話框中選擇"備份設(shè)備",然后從下拉列表中選擇備份使用的備份設(shè)備(注意:如果沒有現(xiàn)成的備份設(shè)備,應(yīng)在備份以前創(chuàng)建一個(gè) 具體方法參見相關(guān)章節(jié))。(8)單擊"重寫現(xiàn)有媒體"選項(xiàng)按鈕。 (9)單擊""選項(xiàng)"選項(xiàng)卡,在該選項(xiàng)卡中選中"完成后驗(yàn)證備份"復(fù)選框。 (
34、10)單擊"確定"按鈕,出現(xiàn)"備份進(jìn)度"對(duì)話框,備份完成后,將彈出消息框"備份操作及其驗(yàn)證已成功完成”。 (11)單擊"確定"完成數(shù)據(jù)庫(kù)的備份。 (12)完成數(shù)據(jù)庫(kù)的還原,方法如下: 從企業(yè)管理器的樹狀目錄窗口中選擇需要還原的數(shù)據(jù)庫(kù)TestDB,單擊鼠標(biāo)右鍵,從彈出菜單中選取命令"所有任務(wù)/還原數(shù)據(jù)庫(kù)",打開"還原數(shù)據(jù)庫(kù)”對(duì)話框。如圖8-2所示。然后在該對(duì)話框中選擇"還原-從設(shè)備,單擊"選擇設(shè)備"按鈕,并從彈出的對(duì)話框中選擇備份設(shè)備TestDB_backup。 最后
35、選擇"還原備份集"下的"數(shù)據(jù)庫(kù)-完全",單擊"確定"按鈕執(zhí)行數(shù)據(jù)庫(kù)的還原。圖8-1圖8-2實(shí)驗(yàn)九 綜合練習(xí)數(shù)據(jù)庫(kù)設(shè)計(jì)(一)1.目的:使學(xué)生對(duì)使用 SQL Server 來設(shè)計(jì)一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)有一個(gè)初步的了解。2要求:在高校物資管理中,入庫(kù)時(shí)要簽發(fā)入庫(kù)單、固定資產(chǎn)卡、登記物資明細(xì)帳;出庫(kù)時(shí)要簽發(fā)領(lǐng)用申請(qǐng)單、登記物資發(fā)放卡和轉(zhuǎn)移單。此外,還有物資報(bào)損、調(diào)出情況請(qǐng)分析設(shè)計(jì)一個(gè)高校物資管理信息系統(tǒng)的數(shù)據(jù)庫(kù)并在SQL Server2000 上實(shí)現(xiàn)。該數(shù)據(jù)庫(kù)要能實(shí)現(xiàn)以下幾點(diǎn)要求:(1)能在這個(gè)數(shù)據(jù)庫(kù)上實(shí)現(xiàn)高校物資管理的整個(gè)業(yè)務(wù)流程。(2)能使用
36、SQL Server 提供的默認(rèn)和規(guī)則來-維護(hù)數(shù)據(jù)的正確性。(3)能使用SQL Server 提供的約束、觸發(fā)器來維護(hù)數(shù)據(jù)的完整性。 3體會(huì)。實(shí)驗(yàn)十 綜合練習(xí)數(shù)據(jù)庫(kù)設(shè)計(jì)(二)1.目的:使學(xué)生對(duì)使用 SQL Server 來設(shè)計(jì)一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)有一個(gè)初步的了解。2要求:同上。在高校物資管理中,入庫(kù)時(shí)要簽發(fā)入庫(kù)單、固定資產(chǎn)卡、登記物資明細(xì)帳;出庫(kù)時(shí)要簽 發(fā)領(lǐng)用申請(qǐng)單、登記物資發(fā)放卡和轉(zhuǎn)移單。此外,還有物資報(bào)損、調(diào)出情況請(qǐng)分析設(shè)計(jì)一個(gè)高校物資管理信息系統(tǒng)的數(shù)據(jù)庫(kù),并在SQL Server2000 上實(shí)現(xiàn)。該數(shù)據(jù)庫(kù)要能實(shí)現(xiàn)以下幾點(diǎn)要求:(1)使用存儲(chǔ)過程來實(shí)現(xiàn)一部分復(fù)雜的應(yīng)用邏輯。(2)為不同的用戶
37、設(shè)計(jì)不同的用戶視圖。3體會(huì)。課程設(shè)計(jì)一. 開發(fā)平臺(tái):不限(如、等),建議采用VB開發(fā)平臺(tái)。二. 名稱:圖書管理系統(tǒng)(實(shí)驗(yàn)室物資管理系統(tǒng),學(xué)生選課管理系統(tǒng),學(xué)生學(xué)籍管理系統(tǒng),學(xué)生成績(jī)管理系統(tǒng),學(xué)生公寓管理系統(tǒng),機(jī)房管理系統(tǒng)等),同學(xué)們也可以提出自己的課題名,但必須得到任課老師的同意。三. 要求:(一)設(shè)計(jì)分析報(bào)告要求:1需求分析內(nèi)容:l 用戶需求說明;l 頂層上下文數(shù)據(jù)流圖,選擇畫出一個(gè)一層的數(shù)據(jù)流圖;l 選擇說明一個(gè)完整的數(shù)據(jù)字典。2概念設(shè)計(jì)內(nèi)容:l 畫出完整的E-R模型圖;l 包括實(shí)體、聯(lián)系以及實(shí)體、聯(lián)系的屬性。3邏輯設(shè)計(jì):把E-R圖轉(zhuǎn)換為關(guān)系表。l 實(shí)體類型的轉(zhuǎn)換l 聯(lián)系的轉(zhuǎn)換4系統(tǒng)模塊設(shè)
38、計(jì):l 系統(tǒng)的功能劃分及描述;l 主要用戶界面;l 系統(tǒng)使用說明和安裝說明等。(二)系統(tǒng)功能要求1基本實(shí)體類型:l 圖書借閱者實(shí)體l 圖書實(shí)體l 圖書管理員實(shí)體l 違規(guī)類型實(shí)體2管理功能:l 用戶(管理員和借閱者)登錄帳戶管理l 圖書借閱/歸還管理l 違規(guī)處罰管理(要記錄每次處罰情況)l 各種必要的查詢和報(bào)表功能3查詢界面和條件l 要有兩個(gè)以上的多表連接查詢;l 要有兩個(gè)以上的多個(gè)條件組合(與、或)查詢;l 每類基本的實(shí)體都有增、刪、改和查詢界面;(三)其它要求1界面要求 要求界面美觀,操作方便。2安全性需求(可簡(jiǎn)化)l 限制用戶對(duì)數(shù)據(jù)的訪問范圍l 限制用戶操作級(jí)別(普通用戶、設(shè)備管理員、系統(tǒng)
39、管理員)l 限制對(duì)數(shù)據(jù)表修改權(quán)限四. 作業(yè)提交要求:1課程設(shè)計(jì)說明書,內(nèi)容見上述要求。2提交可以執(zhí)行的源程序。五. 成績(jī)?cè)u(píng)定1成績(jī)分為優(yōu)、良、中、差四個(gè)等級(jí)。2成績(jī)?cè)u(píng)定分三個(gè)部分,一是考勤成績(jī),二是課程設(shè)計(jì)報(bào)告成績(jī),三是答辯成績(jī)。l 考勤占20%l 課程設(shè)計(jì)報(bào)告30%l 答辯占50%六. 課程設(shè)計(jì)示例綜合教務(wù)系統(tǒng)分析和設(shè)計(jì)本節(jié)綜合教務(wù)系統(tǒng)為例,說明數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的設(shè)計(jì)過程。本系統(tǒng)的分析和設(shè)計(jì)過程主要包括:需求分析;概念結(jié)構(gòu)設(shè)計(jì);邏輯結(jié)構(gòu)設(shè)計(jì);應(yīng)用系統(tǒng)的模塊設(shè)計(jì);應(yīng)用系統(tǒng)的用戶界面設(shè)計(jì)。由于本應(yīng)用系統(tǒng)比較簡(jiǎn)單,而我們的重點(diǎn)在于數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的分析和設(shè)計(jì),所以,本例中沒有給出物理結(jié)構(gòu)設(shè)計(jì),讀者可自
40、行考慮物理結(jié)構(gòu)設(shè)計(jì),建立合適的索引,提高查詢速度;對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的實(shí)施和維護(hù)也沒有給出。5.4.1 需求分析1 系統(tǒng)目標(biāo):實(shí)現(xiàn)一個(gè)計(jì)算機(jī)綜合教務(wù)管理系統(tǒng),完成班級(jí)信息管理,學(xué)生信息管理,課程信息管理和學(xué)生選課管理等功能。2 系統(tǒng)功能需求:本系統(tǒng)的用戶分為超級(jí)用戶和普通用戶兩類,超級(jí)用戶負(fù)責(zé)系統(tǒng)維護(hù),包括對(duì)班級(jí)信息,學(xué)生個(gè)人信息,課程信息的錄入,修改,查詢,刪除等。普通用戶即選課學(xué)生則只具有為自己選課的權(quán)限。(1) 功能劃分:用戶通過身份驗(yàn)證后進(jìn)入主界面。主界面為超級(jí)用戶提供6項(xiàng)選擇:學(xué)生信息管理,課程信息管理,班級(jí)信息管理,選課,口令修改和退出系統(tǒng)。普通用戶有4項(xiàng)功能選擇:選課,課程查詢,口令修
41、改和退出系統(tǒng)。(2) 功能描述:l 班級(jí)信息管理:給出所有班級(jí)的列表,超級(jí)用戶可以實(shí)現(xiàn)增加,修改,查找,刪除班級(jí)信息,維護(hù)指定班級(jí)所有學(xué)生信息,為指定班級(jí)設(shè)定必修課和選課學(xué)分限制等功能。在維護(hù)指定班級(jí)學(xué)生信息功能中,超級(jí)用戶可以實(shí)現(xiàn)增加,修改,刪除學(xué)生信息,察看某一學(xué)生選課情況,為學(xué)生更改口令等功能。在指定班級(jí)必修課功能中,以課表形式列出班級(jí)所有必修課的課程信息,實(shí)現(xiàn)為一個(gè)班級(jí)增加或刪除必修課的功能。l 學(xué)生信息管理:給出所有學(xué)生的列表,超級(jí)用戶可以增加,修改,刪除,查找學(xué)生信息,察看某個(gè)學(xué)生選課情況,為學(xué)生修改口令等功能。本項(xiàng)功能與班級(jí)信息維護(hù)功能中的維護(hù)指定班級(jí)學(xué)生信息功能相似,不同的是本
42、項(xiàng)功能中將列出所有班級(jí)的所有學(xué)生信息。l 課程信息管理:加入,修改,刪除課程紀(jì)錄,察看某門課的選課情況,查詢指定的課程信息。l 選課:以課表的形式列出學(xué)生選課情況,學(xué)生可以為自己選修或者退選課程,而超級(jí)用戶可以為任何學(xué)生選修或者退選課程。每個(gè)班級(jí)都有選課的學(xué)分限制,不允許學(xué)生選擇課程的總學(xué)分超過所在班級(jí)的選課最大學(xué)分限制,而當(dāng)退出選課功能時(shí),如果選取課程總學(xué)分未達(dá)到所在班級(jí)選課最小學(xué)分限制則給出警告信息(因?yàn)閷W(xué)生可以多次進(jìn)入選課界面選課)。l 修改口令:用戶需要輸入原口令,并且兩次輸入新口令一致后,系統(tǒng)即用新口令代替舊口令。l 退出系統(tǒng):當(dāng)用戶退出系統(tǒng)時(shí),如果選取的課程總學(xué)分未達(dá)到所在班級(jí)選課
43、最小學(xué)分限制,則給出警告信息。3 開發(fā)工具:該綜合教務(wù)系統(tǒng)的數(shù)據(jù)庫(kù)采用了Microsoft的SQL Server2000企業(yè)版,前臺(tái)應(yīng)用程序采用了ASP編寫,提供了Web界面方便學(xué)生從網(wǎng)上使用。由于采用了ADO數(shù)據(jù)庫(kù)接口,因此很容易修改為支持ORACLE,SYBASE,DB2等數(shù)據(jù)庫(kù),該系統(tǒng)的結(jié)構(gòu)為B/S結(jié)構(gòu),即瀏覽器/服務(wù)器結(jié)構(gòu)。4 系統(tǒng)的數(shù)據(jù)流圖:了解用戶的應(yīng)用要求,使用信息流程圖分析應(yīng)用系統(tǒng)中的信息流。綜合教務(wù)系統(tǒng)的簡(jiǎn)單信息流如下。(1)系統(tǒng)的上下文數(shù)據(jù)流圖如圖5-38錄入或更新學(xué)生、課程、班級(jí)信息選課/退選學(xué)生、班級(jí)、選課教學(xué)情況報(bào)表選課表 成績(jī)表監(jiān)控權(quán)限 密碼綜合教務(wù)系統(tǒng)學(xué)生教務(wù)管理
44、員系統(tǒng)管理員系統(tǒng)管理員教務(wù)管理員學(xué)生圖5-38 綜合教務(wù)系統(tǒng)的上下文數(shù)據(jù)流圖 (2) 學(xué)生選課的數(shù)據(jù)流圖如圖5-39學(xué)生班級(jí)信息身份驗(yàn)證選課申請(qǐng)選課處理審核通過的選課申請(qǐng)學(xué)生描述信息學(xué)生信息驗(yàn)證不通過選課信息記錄選課成功已選課程班級(jí)描述信息課程信息課程描述信息上課時(shí)間信息課程上課時(shí)間班級(jí)和課程信息班級(jí)必修課程圖5-39 學(xué)生選課的數(shù)據(jù)流圖5. 數(shù)據(jù)字典數(shù)據(jù)項(xiàng)名:學(xué)生編號(hào)說明: 標(biāo)識(shí)每個(gè)學(xué)生身份類型: CHAR長(zhǎng)度: 7別名: 學(xué)號(hào)取值范圍:970000979999數(shù)據(jù)流名:選課申請(qǐng)說明: 由學(xué)生的個(gè)人信息,欲選課程信息組成選課申請(qǐng)來自過程:無流至過程:身份驗(yàn)證數(shù)據(jù)結(jié)構(gòu):學(xué)生個(gè)人信息 欲選課信息
45、數(shù)據(jù)結(jié)構(gòu):學(xué)生個(gè)人信息說明: 說明了學(xué)生的個(gè)人情況。組成: 帳號(hào) 密碼數(shù)據(jù)存儲(chǔ):上課時(shí)間信息說明: 說明了每門課的上課時(shí)間,一門課可以有多個(gè)上課時(shí)間,同一時(shí)間可以有多門課程在上課。輸出數(shù)據(jù)流:課程上課時(shí)間數(shù)據(jù)描述:課程編號(hào) 上課時(shí)間數(shù)量: 每學(xué)期2030個(gè)存取方式:隨機(jī)存取處理過程:身份驗(yàn)證說明: 對(duì)學(xué)生輸入的帳號(hào),密碼進(jìn)行驗(yàn)證,確定正確,得到相應(yīng)的學(xué)生編號(hào)。輸入: 學(xué)生帳號(hào) 密碼 選課的課程編號(hào)輸出: 學(xué)生編號(hào) 選課的課程編號(hào)5.4.2 數(shù)據(jù)庫(kù)的概念設(shè)計(jì)1系統(tǒng)的概念模型:班級(jí)學(xué)分限制班級(jí)名學(xué)生學(xué)號(hào)姓名性別生日屬于必修課程選修上課時(shí)間上課課上課時(shí)間授課教師接納人數(shù)課號(hào)課名學(xué)分1mmnmmnn選
46、課系統(tǒng)DEMO概念模型的E/R圖上圖是選課系統(tǒng)DEMO的概念模型的E/R圖,該系統(tǒng)涉及的實(shí)體集有:班級(jí)實(shí)體集:具有屬性班級(jí)名稱和選課學(xué)分限制。學(xué)生實(shí)體集:具有屬性學(xué)號(hào)、姓名、性別和生日。課程實(shí)體集:具有屬性課程號(hào)、課程名、學(xué)分、授課教師、接納人數(shù)。上課時(shí)間實(shí)體集:具有屬性時(shí)間。一個(gè)班級(jí)可以有多個(gè)學(xué)生,一個(gè)學(xué)生只能屬于一個(gè)班級(jí),所以班級(jí)和學(xué)生之間的聯(lián)系為1:M的聯(lián)系。一個(gè)班級(jí)可以有多門必修課程,一門課程是多個(gè)班級(jí)的必修課,所以班級(jí)和課程之間的必修聯(lián)系是M:N的聯(lián)系。一個(gè)學(xué)生課以選修多門課程,一門課程可以被多個(gè)學(xué)生選修,所以學(xué)生和課程之間的聯(lián)系是M:N的聯(lián)系。一門課程可以有多個(gè)上課時(shí)間,同一時(shí)間內(nèi)
47、可以有多門課程在上課,所以課程和上課時(shí)間的聯(lián)系是M:N的聯(lián)系。5.4.3 將概念模型轉(zhuǎn)換成關(guān)系模型1. 將E-R模型轉(zhuǎn)換為關(guān)系模式 (1) 班級(jí)實(shí)體集可以轉(zhuǎn)換為關(guān)系:CLASS(CLASSNAME,MAXCREDIT,MINCREDIT)CLASSNAME表示班級(jí)名稱,MAXCREDIT表示最大學(xué)分限制,MINCREDIT表示最小學(xué)分限制。 (2) 學(xué)生實(shí)體集可以轉(zhuǎn)換為關(guān)系STUDENT(STUDENTID , NAME , SEX , BIRTHDAY)STUDENTID表示學(xué)號(hào),NAME表示姓名,SEX表示性別,BIRTHDAY表示生日 (3) 課程實(shí)體可以轉(zhuǎn)換為關(guān)系COURSE(COUR
48、SEID, COURSENAME, CREDIT, TEACHER, ACCEPTION)COURSEID表示課程號(hào),COURSENAM表示課程名,CREDIT表示學(xué)分,TEACHER表示授課教師,ACCEPTION表示接納人數(shù)。 (4) 班級(jí)和學(xué)生之間的聯(lián)系是1:M的聯(lián)系,所以沒有必要為其建立一個(gè)關(guān)系,可以通過擴(kuò)展學(xué)生關(guān)系來表示:STUDENT(STUDENTID , NAME , SEX , BIRTHDAY , CLASSNAME)CLASSNAME表示學(xué)生所在班級(jí)名。 (5) 班級(jí)和課程之間的必修聯(lián)系可以轉(zhuǎn)換為關(guān)系:CLASSCOURSE(CLASSNAME , COURSEID)CL
49、ASSNAME表示班級(jí)名稱,COURSEID表示課程號(hào)。 (6) 學(xué)生和課程之間的選修聯(lián)系可以轉(zhuǎn)化為關(guān)系:STUDENTCOUSE(STUDENTID, COURSEID)STUDENTID表示學(xué)號(hào),COURSEID表示課程號(hào)。 (7) 課程和上課之間的聯(lián)系可以轉(zhuǎn)化為關(guān)系:COURSETIME(COURSEID , TIME)COURSEID表示課程號(hào),TIME表示上課時(shí)間。2. 數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì):把關(guān)系模型轉(zhuǎn)化為表結(jié)構(gòu):班級(jí)信息表(class):包含所有的班級(jí)信息,定義如下:域名含義數(shù)據(jù)類型例子備注CLASSNAME班級(jí)名稱字符類型計(jì)71主碼MAXCREDIT最大學(xué)分限制數(shù)值類型30MINC
50、REDIT最小學(xué)分限制數(shù)值類型20學(xué)生信息表(student):包含所有學(xué)生的個(gè)人信息,定義如下:域名含義數(shù)據(jù)類型例子備注STUDENTID學(xué)號(hào)字符類型971329主碼NAME姓名字符類型王強(qiáng)SEX性別字符類型男BIRTHDAY生日日期類型79/07/15CLASSNAME班級(jí)名稱字符類型計(jì)71外碼課程信息表(course):包含所有課程信息,定義如下:域名含義數(shù)據(jù)類型例子備注COURSEID課程號(hào)字符類型000001主碼COURSENAME課程名稱字符類型數(shù)值分析CREDIT學(xué)分?jǐn)?shù)值類型4TEACHER任課教師字符類型劉強(qiáng)ACCEPTION接納人數(shù)數(shù)值類型28班級(jí)必修課表(classcour
51、se):包含所有班級(jí)的必修課信息,定義如下:域名含義數(shù)據(jù)類型例子備注CLASSNAME班級(jí)名稱字符類型計(jì)71外碼COURSEID課程號(hào)字符類型000001外碼學(xué)生選課表(studentcourse):包含所有學(xué)生的選課信息,定義如下:域名含義數(shù)據(jù)類型例子備注STUDENTID學(xué)號(hào)字符類型971329外碼COURSEID課程號(hào)字符類型000001外碼上課時(shí)間表(coursetime):包含所有課程的上課時(shí)間,定義如下:域名含義數(shù)據(jù)類型例子備注COURSEID課程號(hào)字符類型000001外碼COURSETIME上課時(shí)間數(shù)值類型21表示星期2第1節(jié)COURSETIME是一個(gè)整數(shù),整除10的商表示星期幾
52、上課,余數(shù)表示當(dāng)天的第幾節(jié)課。用戶賬號(hào)表(user):包含所有用戶的賬號(hào)和口令信息,定義如下:域名含義數(shù)據(jù)類型例子備注USERID用戶賬號(hào)字符類型ADMINUSERPASSWD用戶密碼字符類型ADMINUSERAUTH用戶權(quán)限數(shù)值類型0STUDENTID用戶學(xué)號(hào)字符類型971329USERAUTH用0,1表示用戶權(quán)限,0表示管理員,1表示普通用戶。其中普通用戶的STUDENTID為學(xué)生的學(xué)號(hào)。3實(shí)現(xiàn)數(shù)據(jù)完整性:通過各種約束,缺省,規(guī)則和觸發(fā)器實(shí)現(xiàn)數(shù)據(jù)的完整性。由于教務(wù)系統(tǒng)的重要性,和各個(gè)數(shù)據(jù)之間的復(fù)雜相關(guān)性,保證數(shù)據(jù)的完整性顯得更為重要。不能讓用戶隨意的刪除,修改數(shù)據(jù)。(1) CHECK約束保
53、證最大限選學(xué)分要大于最小限選學(xué)分。(2) 各種外碼約束保證數(shù)據(jù)的完整性,不能隨意刪除。外碼的設(shè)置在上面數(shù)據(jù)庫(kù)建表時(shí)已經(jīng)提到。(3) 主碼約束保證實(shí)體的完整性,主碼的設(shè)置在上面數(shù)據(jù)庫(kù)建表時(shí)也已經(jīng)提到了。(4) 創(chuàng)建規(guī)則保證學(xué)生的年齡在18歲到35歲之間(出生日期在1965-1-1到1982-12-31日之間),不會(huì)輸入錯(cuò)誤數(shù)據(jù)。(5) 創(chuàng)建觸發(fā)器,保證在添加學(xué)生信息的時(shí)候,自動(dòng)將該班級(jí)的必修課添加到選課表中。以上只是該教務(wù)系統(tǒng)中實(shí)現(xiàn)數(shù)據(jù)完整的部分方法。實(shí)際上要考慮的還有很多方面,實(shí)現(xiàn)手法也是多種多樣。在此留給學(xué)生自己思考。5. 數(shù)據(jù)庫(kù)的安裝安裝SQL SERVER2000,作為數(shù)據(jù)庫(kù)服務(wù)器,并用
54、ODBC設(shè)置SQL SERVER的數(shù)據(jù)源。5.4.4 應(yīng)用程序設(shè)計(jì)1. 選課系統(tǒng)DEMO的處理流程圖: 開始 用戶登錄 合法? 用戶選擇服務(wù) 選擇退出? 執(zhí)行服務(wù)操作退出NNYY Y 2. 總體結(jié)構(gòu)和外部模塊設(shè)計(jì):口令驗(yàn)證模塊 主模塊班級(jí)信息管理模塊學(xué)生信息管理模塊課程信息管理模塊選課模塊口令更改模塊退出5.4.5 編程實(shí)現(xiàn):下面給出系統(tǒng)的主要用戶界面。其他的操作界面用戶可以自行設(shè)計(jì)實(shí)現(xiàn)。1Login.Asp這是系統(tǒng)的登錄界面,用戶可以選擇以學(xué)生或管理員身份登錄,并要輸入相應(yīng)的用戶名稱,密碼。2AdminIndex.asp這是系統(tǒng)管理員登錄成功的界面,左側(cè)有管理員管理的各項(xiàng)職權(quán)。(1) 按下班級(jí)信息管理,進(jìn)入Class.asp,進(jìn)行班級(jí)信息維護(hù)管理。(2) 按下學(xué)生信息管理,進(jìn)入Student.asp,進(jìn)行學(xué)生信息維護(hù)管理。(3) 按下課程信息管理,進(jìn)入Course.asp,進(jìn)行課程信息維護(hù)管理。(4) 按下選課管理,進(jìn)入CourseSelect.asp,進(jìn)行選課。(5) 按下口令修改,進(jìn)入ChangePasswd.asp,更改用戶口令。(6) 按下退出,退出本系統(tǒng)。上述界面是在用管理員登錄時(shí)才能看到,其中班級(jí)信息維護(hù)管理和相應(yīng)的增加新班級(jí)功能為登陸后的默認(rèn)選項(xiàng)。3Cla
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度車間租賃安全協(xié)議書(含安全生產(chǎn)責(zé)任險(xiǎn))
- 二零二五年度茶業(yè)投資合作框架協(xié)議
- 2025年度解除婚約協(xié)議書(情感修復(fù)與法律支持)
- 二零二五年度油茶種植基地承包與生態(tài)修復(fù)協(xié)議
- 2025年度食堂食品安全風(fēng)險(xiǎn)評(píng)估與監(jiān)督執(zhí)行協(xié)議
- 施工現(xiàn)場(chǎng)施工防生物污染制度
- 施工日志填寫中的施工材料消耗記錄方法
- 個(gè)人商鋪抵押借款合同范本
- 云服務(wù)器托管服務(wù)合同(三)
- 二手廠房買賣合同
- GB/T 45107-2024表土剝離及其再利用技術(shù)要求
- 五年級(jí)上冊(cè)脫式計(jì)算100題及答案
- 大模型在航空航天領(lǐng)域的應(yīng)用:智能探索宇宙的無限可能
- 酒店行業(yè)客源渠道分析
- 2024年中國(guó)陪診服務(wù)行業(yè)市場(chǎng)發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告-智研咨詢重磅發(fā)布
- AVL-CRUISE-2019-整車經(jīng)濟(jì)性動(dòng)力性分析操作指導(dǎo)書
- 腸道醫(yī)學(xué)解剖和生理學(xué)
- 人教版九年級(jí)英語動(dòng)詞時(shí)態(tài)專項(xiàng)練習(xí)(含答案和解析)
- 蘭州市規(guī)范醫(yī)療服務(wù)價(jià)格項(xiàng)目基準(zhǔn)價(jià)格表
- 火災(zāi)隱患整改登記表
- 普通地質(zhì)學(xué)教材
評(píng)論
0/150
提交評(píng)論