數(shù)據(jù)庫原理實驗和課程設(shè)計指導書_第1頁
數(shù)據(jù)庫原理實驗和課程設(shè)計指導書_第2頁
數(shù)據(jù)庫原理實驗和課程設(shè)計指導書_第3頁
數(shù)據(jù)庫原理實驗和課程設(shè)計指導書_第4頁
數(shù)據(jù)庫原理實驗和課程設(shè)計指導書_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、數(shù)據(jù)庫原理實驗和課程設(shè)計指導書信息學院二七年十月I數(shù)據(jù)庫原理及應(yīng)用實驗和課程設(shè)計指導書目 錄實驗一 創(chuàng)建和修改數(shù)據(jù)庫1實驗二 創(chuàng)建和修改數(shù)據(jù)表6實驗三 添加記錄并建立查詢10實驗四 創(chuàng)建視圖13實驗五 創(chuàng)建索引14實驗六 創(chuàng)建觸發(fā)器15實驗七 創(chuàng)建存儲過程16實驗八 備份和恢復(fù)數(shù)據(jù)庫17實驗九 綜合練習數(shù)據(jù)庫設(shè)計(一)19實驗十 綜合練習數(shù)據(jù)庫設(shè)計(二)20課程設(shè)計21實驗一 創(chuàng)建和修改數(shù)據(jù)庫目的和意義學習創(chuàng)建和修改用戶數(shù)據(jù)庫的方法。實驗內(nèi)容分別使用SQLServer2000企業(yè)管理器和Transact-SQL語句,按下列要求創(chuàng)建和修改用戶數(shù)據(jù)庫。1. 創(chuàng)建一個數(shù)據(jù)庫,要求如下:(1) 數(shù)據(jù)庫

2、名"testDB"。(2) 數(shù)據(jù)庫中包含一個數(shù)據(jù)文件,邏輯文件名為 testDB_data,磁盤文件名為testDB_data.mdf,文件初始容量為5MB,最大容量為15MB,文件容量遞增值為1MB。(3) 事務(wù)日志文件,邏輯文件名為TestDB_log, 磁盤文件名為TestDB_log.ldf,文件 初始容量為5MB, 最大容量為10MB,文件容量遞增值為1MB。2. 對該數(shù)據(jù)庫做如下修改:(1) 添加一個數(shù)據(jù)文件,邏輯文件名為TestDB2_data,實際文件為TestDB2_data.ndf,文件初始容量為1MB,最大容量為6MB,文件容量遞增值為1MB。(2)

3、將日志文件的最大容量增加為15MB,遞增值改為2MB。實現(xiàn)步驟方法一:使用企業(yè)管理器創(chuàng)建和修改數(shù)據(jù)庫TestDB1. 設(shè)置常規(guī)選項卡(1) 在企業(yè)管理器的控制面板目錄中選中結(jié)點"數(shù)據(jù)庫",單擊鼠標右鍵,在彈出菜單中選擇"新建數(shù)據(jù)庫"命令。(2) 設(shè)置新建數(shù)據(jù)庫的常規(guī)選項卡,在"名稱"文本框中鍵入數(shù)據(jù)庫名稱"TestDB"。如圖1-l所示。圖A12. 設(shè)置數(shù)據(jù)文件選項卡在“文件名”字段中鍵入數(shù)據(jù)文件名“TestDB_data”。設(shè)置該文件初始大小為5MB。圖1-1選中“文件屬性”對話框中的復(fù)選框“文件自動增長”,并選

4、中“按兆字節(jié)”設(shè)置文件容量遞增值為1。在“最大文件大小”對話框中選擇“將文件增長限制為(MB)”為15。如圖1-2所示。圖1-23. 設(shè)置事務(wù)日志選項卡(1) 在"文件名"字段中鍵入事務(wù)日志文件的邏輯文件名"TestDB_log"。設(shè)置該文 件初始大小為5MBo(2) 選中"文件屬性"對話框中復(fù)選框"文件自動增長",并選中"按兆字節(jié)"設(shè)置文件容量遞增值為1。(3) 在"最大文件大小"對話框中選擇"將文件增長限制為(MB)"為10。如圖1-3所示。(4) 單

5、擊"確定"按鈕,完成數(shù)據(jù)庫的創(chuàng)建。 圖1-3設(shè)置事務(wù)日志選項卡4. 修改事務(wù)日志文件屬性(1) 從樹狀目錄窗口中找到剛剛創(chuàng)建的數(shù)據(jù)庫TestDB,單擊鼠標右鍵,從彈出菜單中選擇命令"屬性",打開數(shù)據(jù)庫TestDB的屬性窗口。(2) 選擇數(shù)據(jù)文件選項卡。在該選項卡中添加數(shù)據(jù)文件TestDB2_data,方法是:在"文件名"字段中鍵入數(shù)據(jù)文件邏輯文件名"TestDB2_data",設(shè)置該文件初始大小為 1MB,然后選中"文件屬性"對話框中復(fù)選框"文件自動增長",并選中"

6、按兆字節(jié)"設(shè)置文件容量遞增值為1,最后在"最大文件大小"對話框中選擇"將文件增長限制為(MB)6。如圖1-4所示。圖1-4(3) 選擇事務(wù)日志選項卡,在該選項卡中將事務(wù)日志文件的最大容量改為15,遞增量改為2。如圖1-5所示。圖1-5方法二:使用Transact-SQL語句創(chuàng)建和修改數(shù)據(jù)庫TestDB1. 創(chuàng)建數(shù)據(jù)庫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ù)庫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習題 建立學生選課的數(shù)據(jù)庫stuDB, 邏輯文件名為 stuDB_data,磁盤文件名為stuDB_data.mdf,文件初始容量為10MB,最大容量為15MB,文件容量遞增值為2MB。事務(wù)日志文件,邏輯文件名為stuDB_log, 磁盤文件名為stuDB_log.ldf,文件初始容量為5MB,

9、最大容量為10MB,文件容量遞增值為1MB。體會實驗二 創(chuàng)建和修改數(shù)據(jù)表目的和意義熟悉有關(guān)數(shù)據(jù)表的創(chuàng)建和修改等工作,并了解主鍵、外鍵以及約束的創(chuàng)建和應(yīng)用,熟練掌握使用企業(yè)管理器和CREATE TABLE、ALTER TABLE等Transact-SQL語句對數(shù)據(jù)表的操作方法。實驗內(nèi)容分別使用企業(yè)管理器和Transact-SQL語旬按下列要求創(chuàng)建兩個數(shù)據(jù)表: 表B1項目數(shù)據(jù)表,表B2員工數(shù)據(jù)表,并按照步驟完成對表的相關(guān)修改和約束設(shè)置。項目表(Project)字段名數(shù)據(jù)類型字段長度注釋項目編號int主鍵名稱varchar長度為50負責人int客戶int開始日期datetime結(jié)束日期datetim

10、e員工數(shù)據(jù)表(Employee)字段名數(shù)據(jù)類型字段長度注釋編號int主鍵姓名varchar長度為50性別varchar長度為50所屬部門varchar長度為50工資money長度為8實現(xiàn)步驟方法一:使用企業(yè)管理器創(chuàng)建數(shù)據(jù)表并添加約束1. 打開企業(yè)管理器,在樹狀目錄窗口中找到數(shù)據(jù)庫節(jié)點TestDB,并選中下一級節(jié)點"表"。2. 單擊鼠標右鍵,從彈出菜單中選擇命令"新建表",打開表設(shè)計窗口,在窗口中按照"上機任務(wù)"中所列的"項目數(shù)據(jù)表"的字段及要求鍵入列名、數(shù)據(jù)類型、長度等屬性,并將"項目編號"設(shè)置

11、為主鍵。如圖2-l所示。圖2-l創(chuàng)建"項目數(shù)據(jù)表"3. 單擊"保存"按鈕,在彈出的對話框中輸入表名稱"項目數(shù)據(jù)表",關(guān)閉表設(shè)計窗口,完成表"項目數(shù)據(jù)表"的刨建。4. 重復(fù)1-3步,創(chuàng)建另一個數(shù)據(jù)表"員工數(shù)據(jù)表",表設(shè)計窗口如圖2-2所示。圖2-2創(chuàng)建"員工數(shù)據(jù)表"5. 添加外鍵約束:在"項目數(shù)據(jù)表"的"負責人"字段上添加外鍵約束,參照字段為"員工數(shù)據(jù)表"中的字段"編號",約束名為FK_pm。實現(xiàn)方

12、法為:首先在企業(yè)管理器中選中"項目數(shù)據(jù)表"并單擊鼠標右鍵,在彈出菜單中選擇命令"設(shè)計表"打開設(shè)計表窗口。然后在該窗口中單擊按鈕"表和索引屬性"按鈕,打開表的"屬性"對話框。最后選擇"關(guān)系"選項卡,在改選項卡中做如下的操作。單擊"新建"按鈕;從"主鍵表"中選擇"員工數(shù)據(jù)表",并選擇字段"編號"從"外鍵表"中選擇"項目數(shù)據(jù)表",并選擇字段"負責人"在"

13、關(guān)系名"中輸入FK_pm。單擊"關(guān)閉"按鈕,完成外鍵約束的設(shè)置。6. 添加檢查約束:將"員工數(shù)據(jù)表"中的字段"工資"的值限定在1000-10000,約束名CK_Salary。操作方法為:首先在企業(yè)管理器中選中"員工數(shù)據(jù)表"并單擊鼠標右鍵,在彈出菜單中選擇命令"設(shè)計表"打開設(shè)計表窗口。然后在該窗口中單擊按鈕"表和索引屬性"按鈕,打開表的"屬性"對話框。最后選擇"CHECK約束"選項卡,在改選項卡中做如下的操作:單擊標簽中&quo

14、t;新建"按鈕;在"約束表達式"文本框中輸入一個條件表達式;(工資>=1000 AND 工資<=10000)在"約束名"對話框中輸入所建核查約束名"CK_Salary"。如圖2-3所示。圖2-3方法二:使用Transact-SQL語句創(chuàng)建數(shù)據(jù)表并添加約束1. 創(chuàng)建項目數(shù)據(jù)表USE TestDBGOCREATE TABLE 項目數(shù)據(jù)表(項目編號 int PRIMARY KEY, 名稱 varchar(50),負責人 int, 客戶 int,開始日期 datatime,結(jié)束日期 datatime)2. 創(chuàng)建員工數(shù)據(jù)表

15、USE TestDBGO(編號 int PRIMARY KEY,姓名 varchar(50),性別 varchar(50),所屬部門 varchar(50)工資 money(8)3. 添加外鍵約束ALTER TABLE 項目數(shù)據(jù)表 ADD CONSTRAINT PK_pm FOREIGN KEY(負責人) REFERENCES 員工數(shù)據(jù)表(編號)添加檢查約束ALTER TABLE 員工數(shù)據(jù)表ADD CONSTRAINT CK_pm CHECK(工資>=1000 AND 工資<=10000)習題 建立學生的基本信息表student、課程表course和選修課成績表sc.體會實驗三 添

16、加記錄并建立查詢目的和意義熟練掌握查詢語句。實驗內(nèi)容向數(shù)據(jù)庫TestDB中的兩個數(shù)據(jù)表"項目數(shù)據(jù)表"和"員工數(shù)據(jù)表"中添加記錄,如表Cl,C2所示。然后在查詢分析器中書寫Transact-SQL語句完成"實現(xiàn)步驟"中所列的任務(wù)。表c1項目數(shù)據(jù)表項目編號名稱負責人客戶開始日期結(jié)束日期1SiS2103/12/200006/12/20002SiS項目21104/06/200005/01/20003Pet2206/17/200008/17/20004Pet項目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ù)表編號姓名性別所屬部門工資1陳有朋男項目部20002孫曉晴女項目部30003張曉峰男錄入部10004慕容雪男檢驗部15005陳秋萍女檢驗部10006王理斌男檢驗部20007周晴晴女辦公室30008楊亭亭女項目部25009馬明宇男項目部400019劉燕女項目部3000實驗要求1·書寫語句查詢項目數(shù)據(jù)表中客戶字段的唯一值,并查看查詢結(jié)果。參考答案:SELECT UNIQUE客戶 FROM 項目數(shù)表;2·書寫語句查詢工資高于2000的項目部的人員的姓名。參考答案:SELECT姓名F

19、ROM員工數(shù)據(jù)表WHERE所屬部門=“項目部"AND工資>2000;3·書寫查詢語句查詢來自CCH公司的項目名稱(以CCH開始)和負責人姓名。參考答案: SELECT a.名稱,b.姓名 FROM 項目數(shù)據(jù)表 AS a , 員工數(shù)據(jù)表 AS bWHERE a.負責人=b.編號AND a.名稱 LIKE “CCH%”;4書寫語句查詢每個部門的平均工資,結(jié)果按照平均工資的多少排序SELECT 所屬部門,AVG(工資)FROM 員工數(shù)據(jù)表GROUP BY 所屬部門ORDER BY AVG(工資);5使用外向聯(lián)接輸出所有的員工姓名和負責人的項目名稱SELECT員工數(shù)據(jù)表.姓名

20、,項目數(shù)據(jù)表.名稱FROM 員工數(shù)據(jù)表 LEFT JOIN項目數(shù)據(jù)表ON員工數(shù)據(jù)表.編號=項目數(shù)據(jù)表.負責人;6使用子查詢輸出所有負責 CCH公司項目(以CCH開始)的員工姓名,以及沒有負責REALIDEA公司(以REALIDEA開始)項目的員工姓名 。SELECT 姓名 FROM 員工數(shù)據(jù)表 WHERE 編號 IN (SELECTDISTINCT 負責人 FROM 項目數(shù)據(jù)表WHERE 名稱 LIKE'CCH%') SELECT 姓名 FROM 員工數(shù)據(jù)表WHERE 編號 NOT IN (SELECT DISTINCT 負責人 FROM 項目數(shù)據(jù)表WHERE 名稱 LIKE&

21、#39;REALIDEA%');7·將所有REALIDEA公司的項目的結(jié)束日期更改為2002年1月8日 。UPDATE 項目數(shù)據(jù)表SET 結(jié)束日期= 'January 8, 2002'WHERE 名稱 LIKE 'REALIDEA%;8·錄入部的張曉峰決定辭職,請將員工數(shù)據(jù)庫中有關(guān)他的記錄刪除,并將他負責的項目移交給楊亭亭。書寫語句對數(shù)據(jù)表做相應(yīng)的更改。DELETE員工數(shù)據(jù)表WHERE 姓名=“張曉峰”UPDATE 項目數(shù)據(jù)表 SET負責人=8WHERE負責人=3;習題在student , course , sc中 添加元組1)從studen

22、t , course , sc表中選擇出當年年齡在20歲以上的學生的學號和姓名。2)統(tǒng)計平均年齡價格。3)“張三”同學要退學,請刪除他的所有信息。 體會實驗四 創(chuàng)建視圖目的和意義掌握使用T -SQL語句創(chuàng)建視圖的方法,包括視圖的建立、刪除、修改;了解如何應(yīng)用視圖有選擇地查看所需數(shù)據(jù),并熟悉通過視圖更改數(shù)據(jù)表中數(shù)據(jù)的方法。實驗內(nèi)容在數(shù)據(jù)庫Company_Data中,基于表"項目數(shù)據(jù)表"和"員工數(shù)據(jù)表"創(chuàng)建視圖,要求為:(1) 視圖名為"員工項目"。(2) 包含字段"編號"、"姓名"、"名

23、稱"和"開始日期"。(3) 字段別名分別是"員工編號"、”員工姓名"、"項目名稱"、"項目開始日期"。實現(xiàn)步驟 (1)打開查詢分析器。在查詢窗口書寫CREATE VIEW語句創(chuàng)建視圖,并指定字段別名:USE TestDBGOCREATE VIEW 員工項目(員工編號,員工姓名,項目名稱,項目開始日期)ASSELECT a.編號,a.姓名,b.名稱,b.開始日期,FROM 員工數(shù)據(jù)表 AS a INNER JOIN 項目表 AS bON a.編號=b.負責人WHERE a.編號=b.負責人GO (

24、2)使用INSERT語句通過視圖向員工數(shù)據(jù)表中添加一條記錄,要求"姓名"字段值為"馬中興"。USETestDBGOINSERTINTO 員工項目(員工姓名)VALUES('馬中興')GO (3)使用UPPDATE語句通過視圖將第二步中插入記錄的員工姓名改為"馬中新"。USETestDBGOUPDATE員工項目SET 項目負責人= '馬中新,WHERE 項目負責人=馬中興GO (4)執(zhí)行系統(tǒng)存儲過程 sp_rename將視圖更名為"employee_project_VIEW "。USETest

25、DBGOEXEC sp_rename '員工項目', 'emp1oyee_project_VIEW'實驗五 創(chuàng)建索引目的和意義掌握創(chuàng)建索引的方法。實驗內(nèi)容分別使用企業(yè)管理器和Transact-SQL語句在實驗四的數(shù)據(jù)表"員工數(shù)據(jù)表"中基于"姓名"創(chuàng)建索引,要求索引名為"IDX_Name",索引類型為非聚集索引。實現(xiàn)步驟方法一,使用企業(yè)管理器 (1)打開企業(yè)管理器,在樹狀目錄中展開數(shù)據(jù)表"員工數(shù)據(jù)表"所在的數(shù)據(jù)庫節(jié)點TestDB,并選擇其下一級節(jié)點"表"。 (2)選

26、擇表"員工數(shù)據(jù)表",并單擊鼠標右鍵。在彈出菜單中選擇命令"所有任務(wù)管理索引",打開"管理索引"對話框。 (3)在"管理索引"對話框中的"數(shù)據(jù)庫"下拉菜單中選擇數(shù)據(jù)庫表。 (4)選擇"新建"按鈕,彈出"新建索引"對話框。 (5)在"新建索引"對話框的"索引名"文本框中輸入索引名稱"IDX_Name",然后選擇字段"姓名"并設(shè)置索引屬性。如圖5-l所示。圖5-l創(chuàng)建索引(6)設(shè)置索

27、引選項以后,單擊"確定"按鈕,返回到"管理索引"對話框。(7)單擊"關(guān)閉"按鈕,退出"管理索引"對話框,完成索引的創(chuàng)建。方法二:使用T-SQL語旬USE TestDBGOCREATE INDEX IDX_Name ON 員工數(shù)據(jù)表(姓名)GO實驗六 創(chuàng)建觸發(fā)器目的和意義理解觸發(fā)器的觸發(fā)過程和類型,掌握創(chuàng)建觸發(fā)器的方法。實驗內(nèi)容在數(shù)據(jù)庫 Company_Data的表"項目數(shù)據(jù)表"和"員工數(shù)據(jù)表"中分別創(chuàng)建觸發(fā)器。實現(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,將員工工資變動額限制在2000以內(nèi)。CREATE TRIGGER Trigger_SalaryChangeON員工數(shù)據(jù)表AFTER UPDATEASIFUPDATE(工資)BEGIN IF (SELECT MAX(ABS(inserted.工資一de1eted.工資) FROMinsertedJOINdeleted ONinserted.編號 = deleted.編號) > 2000BEGIN PRINT 工資變動不能超過 2000' ROLLBACKTRANSACTIONENDF.ND實驗七 創(chuàng)建存儲

30、過程目的和意義了解存儲過程的概念和作用,掌握創(chuàng)建存儲過程的方法。實驗內(nèi)容在數(shù)據(jù)庫Company_Data中創(chuàng)建存儲過程Procedure_SalaryByDept,要求返回某一特定部門所有員工的工資總和,其中特定部門的名稱以存儲過程的輸入?yún)?shù)進行傳遞。實現(xiàn)步驟 (1)打開查詢分析器。 (2)在查詢窗口書寫 CREATE PROCEDURE Transact-SQL語句創(chuàng)建存儲過程Procedure_SalaryByDept,并帶有一個輸入?yún)?shù)Department用于傳遞部門名稱,一個輸出參數(shù)TotalSalary用于傳遞輸出結(jié)果。CREATE PROCEDURE Procedure_Salar

31、yByDept Department varchar(40),TotalSalary money OUTPUTAS (3)選擇所屬部門為該參數(shù)傳遞的部門名稱的所有記錄,并對其工資字段求和。 SELECT Tota1Sa1ary=sum(工資)FROM員工數(shù)據(jù)表WHERE所屬部門=DepartmentGO(4)報告該部門的工資總額。PRINT'該部門的工資總額+CONVERT(varchar,TotalSalary)GO(5)執(zhí)行這個創(chuàng)建存儲過程的語句。(6)執(zhí)行系統(tǒng)存儲過程sp_help查看該存儲過程的一般信息。(7)執(zhí)行該存儲過程,分別計算項目部、錄入部、和檢驗部的工資總額。(8)用

32、ALTTER PROCEDURE語句將存儲過程加密。實驗八 備份和恢復(fù)數(shù)據(jù)庫目的和意義理解數(shù)據(jù)庫備份的過程和屬性設(shè)置,掌握使用企業(yè)管理器備份數(shù)據(jù)庫的方法。實驗內(nèi)容使用SQLServer2000企業(yè)管理器備份和恢復(fù)數(shù)據(jù)庫TestDB.實現(xiàn)步驟 (1)打開企業(yè)管理器,在控制面板目錄中選擇數(shù)據(jù)庫TestDB。 (2)單擊鼠標右鍵,從彈出菜單中選擇命令"所有任務(wù)備份數(shù)據(jù)庫"。 (3)在出現(xiàn)的"SQLServer備份"對話框中選擇"常規(guī)"選項卡。 (4)在該選項卡中的"名稱"文本框中鍵入"TestDB數(shù)據(jù)庫備份&q

33、uot;。 (5)在"描述"文本框中鍵入"備份集1"。 (6)在"備份"對話框中選中"數(shù)據(jù)庫-完全"選項,如圖8-1所示。 (7)單擊"添加"按鈕,在彈出的對話框中選擇"備份設(shè)備",然后從下拉列表中選擇備份使用的備份設(shè)備(注意:如果沒有現(xiàn)成的備份設(shè)備,應(yīng)在備份以前創(chuàng)建一個 具體方法參見相關(guān)章節(jié))。(8)單擊"重寫現(xiàn)有媒體"選項按鈕。 (9)單擊""選項"選項卡,在該選項卡中選中"完成后驗證備份"復(fù)選框。 (

34、10)單擊"確定"按鈕,出現(xiàn)"備份進度"對話框,備份完成后,將彈出消息框"備份操作及其驗證已成功完成”。 (11)單擊"確定"完成數(shù)據(jù)庫的備份。 (12)完成數(shù)據(jù)庫的還原,方法如下: 從企業(yè)管理器的樹狀目錄窗口中選擇需要還原的數(shù)據(jù)庫TestDB,單擊鼠標右鍵,從彈出菜單中選取命令"所有任務(wù)/還原數(shù)據(jù)庫",打開"還原數(shù)據(jù)庫”對話框。如圖8-2所示。然后在該對話框中選擇"還原-從設(shè)備,單擊"選擇設(shè)備"按鈕,并從彈出的對話框中選擇備份設(shè)備TestDB_backup。 最后

35、選擇"還原備份集"下的"數(shù)據(jù)庫-完全",單擊"確定"按鈕執(zhí)行數(shù)據(jù)庫的還原。圖8-1圖8-2實驗九 綜合練習數(shù)據(jù)庫設(shè)計(一)1.目的:使學生對使用 SQL Server 來設(shè)計一個數(shù)據(jù)庫應(yīng)用系統(tǒng)有一個初步的了解。2要求:在高校物資管理中,入庫時要簽發(fā)入庫單、固定資產(chǎn)卡、登記物資明細帳;出庫時要簽發(fā)領(lǐng)用申請單、登記物資發(fā)放卡和轉(zhuǎn)移單。此外,還有物資報損、調(diào)出情況請分析設(shè)計一個高校物資管理信息系統(tǒng)的數(shù)據(jù)庫并在SQL Server2000 上實現(xiàn)。該數(shù)據(jù)庫要能實現(xiàn)以下幾點要求:(1)能在這個數(shù)據(jù)庫上實現(xiàn)高校物資管理的整個業(yè)務(wù)流程。(2)能使用

36、SQL Server 提供的默認和規(guī)則來-維護數(shù)據(jù)的正確性。(3)能使用SQL Server 提供的約束、觸發(fā)器來維護數(shù)據(jù)的完整性。 3體會。實驗十 綜合練習數(shù)據(jù)庫設(shè)計(二)1.目的:使學生對使用 SQL Server 來設(shè)計一個數(shù)據(jù)庫應(yīng)用系統(tǒng)有一個初步的了解。2要求:同上。在高校物資管理中,入庫時要簽發(fā)入庫單、固定資產(chǎn)卡、登記物資明細帳;出庫時要簽 發(fā)領(lǐng)用申請單、登記物資發(fā)放卡和轉(zhuǎn)移單。此外,還有物資報損、調(diào)出情況請分析設(shè)計一個高校物資管理信息系統(tǒng)的數(shù)據(jù)庫,并在SQL Server2000 上實現(xiàn)。該數(shù)據(jù)庫要能實現(xiàn)以下幾點要求:(1)使用存儲過程來實現(xiàn)一部分復(fù)雜的應(yīng)用邏輯。(2)為不同的用戶

37、設(shè)計不同的用戶視圖。3體會。課程設(shè)計一. 開發(fā)平臺:不限(如、等),建議采用VB開發(fā)平臺。二. 名稱:圖書管理系統(tǒng)(實驗室物資管理系統(tǒng),學生選課管理系統(tǒng),學生學籍管理系統(tǒng),學生成績管理系統(tǒng),學生公寓管理系統(tǒng),機房管理系統(tǒng)等),同學們也可以提出自己的課題名,但必須得到任課老師的同意。三. 要求:(一)設(shè)計分析報告要求:1需求分析內(nèi)容:l 用戶需求說明;l 頂層上下文數(shù)據(jù)流圖,選擇畫出一個一層的數(shù)據(jù)流圖;l 選擇說明一個完整的數(shù)據(jù)字典。2概念設(shè)計內(nèi)容:l 畫出完整的E-R模型圖;l 包括實體、聯(lián)系以及實體、聯(lián)系的屬性。3邏輯設(shè)計:把E-R圖轉(zhuǎn)換為關(guān)系表。l 實體類型的轉(zhuǎn)換l 聯(lián)系的轉(zhuǎn)換4系統(tǒng)模塊設(shè)

38、計:l 系統(tǒng)的功能劃分及描述;l 主要用戶界面;l 系統(tǒng)使用說明和安裝說明等。(二)系統(tǒng)功能要求1基本實體類型:l 圖書借閱者實體l 圖書實體l 圖書管理員實體l 違規(guī)類型實體2管理功能:l 用戶(管理員和借閱者)登錄帳戶管理l 圖書借閱/歸還管理l 違規(guī)處罰管理(要記錄每次處罰情況)l 各種必要的查詢和報表功能3查詢界面和條件l 要有兩個以上的多表連接查詢;l 要有兩個以上的多個條件組合(與、或)查詢;l 每類基本的實體都有增、刪、改和查詢界面;(三)其它要求1界面要求 要求界面美觀,操作方便。2安全性需求(可簡化)l 限制用戶對數(shù)據(jù)的訪問范圍l 限制用戶操作級別(普通用戶、設(shè)備管理員、系統(tǒng)

39、管理員)l 限制對數(shù)據(jù)表修改權(quán)限四. 作業(yè)提交要求:1課程設(shè)計說明書,內(nèi)容見上述要求。2提交可以執(zhí)行的源程序。五. 成績評定1成績分為優(yōu)、良、中、差四個等級。2成績評定分三個部分,一是考勤成績,二是課程設(shè)計報告成績,三是答辯成績。l 考勤占20%l 課程設(shè)計報告30%l 答辯占50%六. 課程設(shè)計示例綜合教務(wù)系統(tǒng)分析和設(shè)計本節(jié)綜合教務(wù)系統(tǒng)為例,說明數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計過程。本系統(tǒng)的分析和設(shè)計過程主要包括:需求分析;概念結(jié)構(gòu)設(shè)計;邏輯結(jié)構(gòu)設(shè)計;應(yīng)用系統(tǒng)的模塊設(shè)計;應(yīng)用系統(tǒng)的用戶界面設(shè)計。由于本應(yīng)用系統(tǒng)比較簡單,而我們的重點在于數(shù)據(jù)庫應(yīng)用系統(tǒng)的分析和設(shè)計,所以,本例中沒有給出物理結(jié)構(gòu)設(shè)計,讀者可自

40、行考慮物理結(jié)構(gòu)設(shè)計,建立合適的索引,提高查詢速度;對數(shù)據(jù)庫系統(tǒng)的實施和維護也沒有給出。5.4.1 需求分析1 系統(tǒng)目標:實現(xiàn)一個計算機綜合教務(wù)管理系統(tǒng),完成班級信息管理,學生信息管理,課程信息管理和學生選課管理等功能。2 系統(tǒng)功能需求:本系統(tǒng)的用戶分為超級用戶和普通用戶兩類,超級用戶負責系統(tǒng)維護,包括對班級信息,學生個人信息,課程信息的錄入,修改,查詢,刪除等。普通用戶即選課學生則只具有為自己選課的權(quán)限。(1) 功能劃分:用戶通過身份驗證后進入主界面。主界面為超級用戶提供6項選擇:學生信息管理,課程信息管理,班級信息管理,選課,口令修改和退出系統(tǒng)。普通用戶有4項功能選擇:選課,課程查詢,口令修

41、改和退出系統(tǒng)。(2) 功能描述:l 班級信息管理:給出所有班級的列表,超級用戶可以實現(xiàn)增加,修改,查找,刪除班級信息,維護指定班級所有學生信息,為指定班級設(shè)定必修課和選課學分限制等功能。在維護指定班級學生信息功能中,超級用戶可以實現(xiàn)增加,修改,刪除學生信息,察看某一學生選課情況,為學生更改口令等功能。在指定班級必修課功能中,以課表形式列出班級所有必修課的課程信息,實現(xiàn)為一個班級增加或刪除必修課的功能。l 學生信息管理:給出所有學生的列表,超級用戶可以增加,修改,刪除,查找學生信息,察看某個學生選課情況,為學生修改口令等功能。本項功能與班級信息維護功能中的維護指定班級學生信息功能相似,不同的是本

42、項功能中將列出所有班級的所有學生信息。l 課程信息管理:加入,修改,刪除課程紀錄,察看某門課的選課情況,查詢指定的課程信息。l 選課:以課表的形式列出學生選課情況,學生可以為自己選修或者退選課程,而超級用戶可以為任何學生選修或者退選課程。每個班級都有選課的學分限制,不允許學生選擇課程的總學分超過所在班級的選課最大學分限制,而當退出選課功能時,如果選取課程總學分未達到所在班級選課最小學分限制則給出警告信息(因為學生可以多次進入選課界面選課)。l 修改口令:用戶需要輸入原口令,并且兩次輸入新口令一致后,系統(tǒng)即用新口令代替舊口令。l 退出系統(tǒng):當用戶退出系統(tǒng)時,如果選取的課程總學分未達到所在班級選課

43、最小學分限制,則給出警告信息。3 開發(fā)工具:該綜合教務(wù)系統(tǒng)的數(shù)據(jù)庫采用了Microsoft的SQL Server2000企業(yè)版,前臺應(yīng)用程序采用了ASP編寫,提供了Web界面方便學生從網(wǎng)上使用。由于采用了ADO數(shù)據(jù)庫接口,因此很容易修改為支持ORACLE,SYBASE,DB2等數(shù)據(jù)庫,該系統(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)的簡單信息流如下。(1)系統(tǒng)的上下文數(shù)據(jù)流圖如圖5-38錄入或更新學生、課程、班級信息選課/退選學生、班級、選課教學情況報表選課表 成績表監(jiān)控權(quán)限 密碼綜合教務(wù)系統(tǒng)學生教務(wù)管理

44、員系統(tǒng)管理員系統(tǒng)管理員教務(wù)管理員學生圖5-38 綜合教務(wù)系統(tǒng)的上下文數(shù)據(jù)流圖 (2) 學生選課的數(shù)據(jù)流圖如圖5-39學生班級信息身份驗證選課申請選課處理審核通過的選課申請學生描述信息學生信息驗證不通過選課信息記錄選課成功已選課程班級描述信息課程信息課程描述信息上課時間信息課程上課時間班級和課程信息班級必修課程圖5-39 學生選課的數(shù)據(jù)流圖5. 數(shù)據(jù)字典數(shù)據(jù)項名:學生編號說明: 標識每個學生身份類型: CHAR長度: 7別名: 學號取值范圍:970000979999數(shù)據(jù)流名:選課申請說明: 由學生的個人信息,欲選課程信息組成選課申請來自過程:無流至過程:身份驗證數(shù)據(jù)結(jié)構(gòu):學生個人信息 欲選課信息

45、數(shù)據(jù)結(jié)構(gòu):學生個人信息說明: 說明了學生的個人情況。組成: 帳號 密碼數(shù)據(jù)存儲:上課時間信息說明: 說明了每門課的上課時間,一門課可以有多個上課時間,同一時間可以有多門課程在上課。輸出數(shù)據(jù)流:課程上課時間數(shù)據(jù)描述:課程編號 上課時間數(shù)量: 每學期2030個存取方式:隨機存取處理過程:身份驗證說明: 對學生輸入的帳號,密碼進行驗證,確定正確,得到相應(yīng)的學生編號。輸入: 學生帳號 密碼 選課的課程編號輸出: 學生編號 選課的課程編號5.4.2 數(shù)據(jù)庫的概念設(shè)計1系統(tǒng)的概念模型:班級學分限制班級名學生學號姓名性別生日屬于必修課程選修上課時間上課課上課時間授課教師接納人數(shù)課號課名學分1mmnmmnn選

46、課系統(tǒng)DEMO概念模型的E/R圖上圖是選課系統(tǒng)DEMO的概念模型的E/R圖,該系統(tǒng)涉及的實體集有:班級實體集:具有屬性班級名稱和選課學分限制。學生實體集:具有屬性學號、姓名、性別和生日。課程實體集:具有屬性課程號、課程名、學分、授課教師、接納人數(shù)。上課時間實體集:具有屬性時間。一個班級可以有多個學生,一個學生只能屬于一個班級,所以班級和學生之間的聯(lián)系為1:M的聯(lián)系。一個班級可以有多門必修課程,一門課程是多個班級的必修課,所以班級和課程之間的必修聯(lián)系是M:N的聯(lián)系。一個學生課以選修多門課程,一門課程可以被多個學生選修,所以學生和課程之間的聯(lián)系是M:N的聯(lián)系。一門課程可以有多個上課時間,同一時間內(nèi)

47、可以有多門課程在上課,所以課程和上課時間的聯(lián)系是M:N的聯(lián)系。5.4.3 將概念模型轉(zhuǎn)換成關(guān)系模型1. 將E-R模型轉(zhuǎn)換為關(guān)系模式 (1) 班級實體集可以轉(zhuǎn)換為關(guān)系:CLASS(CLASSNAME,MAXCREDIT,MINCREDIT)CLASSNAME表示班級名稱,MAXCREDIT表示最大學分限制,MINCREDIT表示最小學分限制。 (2) 學生實體集可以轉(zhuǎn)換為關(guān)系STUDENT(STUDENTID , NAME , SEX , BIRTHDAY)STUDENTID表示學號,NAME表示姓名,SEX表示性別,BIRTHDAY表示生日 (3) 課程實體可以轉(zhuǎn)換為關(guān)系COURSE(COUR

48、SEID, COURSENAME, CREDIT, TEACHER, ACCEPTION)COURSEID表示課程號,COURSENAM表示課程名,CREDIT表示學分,TEACHER表示授課教師,ACCEPTION表示接納人數(shù)。 (4) 班級和學生之間的聯(lián)系是1:M的聯(lián)系,所以沒有必要為其建立一個關(guān)系,可以通過擴展學生關(guān)系來表示:STUDENT(STUDENTID , NAME , SEX , BIRTHDAY , CLASSNAME)CLASSNAME表示學生所在班級名。 (5) 班級和課程之間的必修聯(lián)系可以轉(zhuǎn)換為關(guān)系:CLASSCOURSE(CLASSNAME , COURSEID)CL

49、ASSNAME表示班級名稱,COURSEID表示課程號。 (6) 學生和課程之間的選修聯(lián)系可以轉(zhuǎn)化為關(guān)系:STUDENTCOUSE(STUDENTID, COURSEID)STUDENTID表示學號,COURSEID表示課程號。 (7) 課程和上課之間的聯(lián)系可以轉(zhuǎn)化為關(guān)系:COURSETIME(COURSEID , TIME)COURSEID表示課程號,TIME表示上課時間。2. 數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計:把關(guān)系模型轉(zhuǎn)化為表結(jié)構(gòu):班級信息表(class):包含所有的班級信息,定義如下:域名含義數(shù)據(jù)類型例子備注CLASSNAME班級名稱字符類型計71主碼MAXCREDIT最大學分限制數(shù)值類型30MINC

50、REDIT最小學分限制數(shù)值類型20學生信息表(student):包含所有學生的個人信息,定義如下:域名含義數(shù)據(jù)類型例子備注STUDENTID學號字符類型971329主碼NAME姓名字符類型王強SEX性別字符類型男BIRTHDAY生日日期類型79/07/15CLASSNAME班級名稱字符類型計71外碼課程信息表(course):包含所有課程信息,定義如下:域名含義數(shù)據(jù)類型例子備注COURSEID課程號字符類型000001主碼COURSENAME課程名稱字符類型數(shù)值分析CREDIT學分數(shù)值類型4TEACHER任課教師字符類型劉強ACCEPTION接納人數(shù)數(shù)值類型28班級必修課表(classcour

51、se):包含所有班級的必修課信息,定義如下:域名含義數(shù)據(jù)類型例子備注CLASSNAME班級名稱字符類型計71外碼COURSEID課程號字符類型000001外碼學生選課表(studentcourse):包含所有學生的選課信息,定義如下:域名含義數(shù)據(jù)類型例子備注STUDENTID學號字符類型971329外碼COURSEID課程號字符類型000001外碼上課時間表(coursetime):包含所有課程的上課時間,定義如下:域名含義數(shù)據(jù)類型例子備注COURSEID課程號字符類型000001外碼COURSETIME上課時間數(shù)值類型21表示星期2第1節(jié)COURSETIME是一個整數(shù),整除10的商表示星期幾

52、上課,余數(shù)表示當天的第幾節(jié)課。用戶賬號表(user):包含所有用戶的賬號和口令信息,定義如下:域名含義數(shù)據(jù)類型例子備注USERID用戶賬號字符類型ADMINUSERPASSWD用戶密碼字符類型ADMINUSERAUTH用戶權(quán)限數(shù)值類型0STUDENTID用戶學號字符類型971329USERAUTH用0,1表示用戶權(quán)限,0表示管理員,1表示普通用戶。其中普通用戶的STUDENTID為學生的學號。3實現(xiàn)數(shù)據(jù)完整性:通過各種約束,缺省,規(guī)則和觸發(fā)器實現(xiàn)數(shù)據(jù)的完整性。由于教務(wù)系統(tǒng)的重要性,和各個數(shù)據(jù)之間的復(fù)雜相關(guān)性,保證數(shù)據(jù)的完整性顯得更為重要。不能讓用戶隨意的刪除,修改數(shù)據(jù)。(1) CHECK約束保

53、證最大限選學分要大于最小限選學分。(2) 各種外碼約束保證數(shù)據(jù)的完整性,不能隨意刪除。外碼的設(shè)置在上面數(shù)據(jù)庫建表時已經(jīng)提到。(3) 主碼約束保證實體的完整性,主碼的設(shè)置在上面數(shù)據(jù)庫建表時也已經(jīng)提到了。(4) 創(chuàng)建規(guī)則保證學生的年齡在18歲到35歲之間(出生日期在1965-1-1到1982-12-31日之間),不會輸入錯誤數(shù)據(jù)。(5) 創(chuàng)建觸發(fā)器,保證在添加學生信息的時候,自動將該班級的必修課添加到選課表中。以上只是該教務(wù)系統(tǒng)中實現(xiàn)數(shù)據(jù)完整的部分方法。實際上要考慮的還有很多方面,實現(xiàn)手法也是多種多樣。在此留給學生自己思考。5. 數(shù)據(jù)庫的安裝安裝SQL SERVER2000,作為數(shù)據(jù)庫服務(wù)器,并用

54、ODBC設(shè)置SQL SERVER的數(shù)據(jù)源。5.4.4 應(yīng)用程序設(shè)計1. 選課系統(tǒng)DEMO的處理流程圖: 開始 用戶登錄 合法? 用戶選擇服務(wù) 選擇退出? 執(zhí)行服務(wù)操作退出NNYY Y 2. 總體結(jié)構(gòu)和外部模塊設(shè)計:口令驗證模塊 主模塊班級信息管理模塊學生信息管理模塊課程信息管理模塊選課模塊口令更改模塊退出5.4.5 編程實現(xiàn):下面給出系統(tǒng)的主要用戶界面。其他的操作界面用戶可以自行設(shè)計實現(xiàn)。1Login.Asp這是系統(tǒng)的登錄界面,用戶可以選擇以學生或管理員身份登錄,并要輸入相應(yīng)的用戶名稱,密碼。2AdminIndex.asp這是系統(tǒng)管理員登錄成功的界面,左側(cè)有管理員管理的各項職權(quán)。(1) 按下班級信息管理,進入Class.asp,進行班級信息維護管理。(2) 按下學生信息管理,進入Student.asp,進行學生信息維護管理。(3) 按下課程信息管理,進入Course.asp,進行課程信息維護管理。(4) 按下選課管理,進入CourseSelect.asp,進行選課。(5) 按下口令修改,進入ChangePasswd.asp,更改用戶口令。(6) 按下退出,退出本系統(tǒng)。上述界面是在用管理員登錄時才能看到,其中班級信息維護管理和相應(yīng)的增加新班級功能為登陸后的默認選項。3Cla

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論