第一篇:數(shù)據(jù)庫原理實驗指導(dǎo)書
《數(shù)據(jù)庫原理實驗指導(dǎo)書》
河南科技大學(xué)電子信息工程學(xué)院目錄
實驗規(guī)則..................................................................................................................................0 實驗報告要求..........................................................................................................................2 基本實驗方法..........................................................................................................................2 實驗環(huán)境..................................................................................................................................2 實驗一:數(shù)據(jù)定義及更新語句練習(xí)......................................................................................3 實驗二:簡單查詢和連接查詢..............................................................................................5 實驗三:分組查詢和嵌套查詢..............................................................................................7 實驗四:視圖操作和數(shù)據(jù)控制..............................................................................................9 實驗五:觸發(fā)器和存儲過程................................................................................................11 選作題目................................................................................................................................13
實驗規(guī)則
為了順利完成實驗教學(xué)任務(wù),確保人身設(shè)備安全,培養(yǎng)嚴謹、踏實、實事求是的科學(xué)作風(fēng)和愛護國家財產(chǎn)的優(yōu)良品質(zhì),特制定以下實驗規(guī)則:
1、實驗紀律
(1)在實驗室不得做和實驗無關(guān)的事情。(2)遵守紀律,不遲到,不曠課。
(3)不能拆卸硬件,更不能拿走實驗設(shè)備或儀器。(4)保持實驗室安靜、整潔,愛護公物。
2、實驗過程
(1)預(yù)習(xí)實驗內(nèi)容。自行設(shè)計SQL語句。
(2)上機操作。每執(zhí)行一句記錄執(zhí)行情況,主要是錯誤信息和錯誤原因。(3)檢查操作結(jié)果是否正確。
(4)根據(jù)實驗過程的記錄書寫實驗報告。
實驗報告要求
1、報告用紙 采用統(tǒng)一的河南科技大學(xué)實驗報告用紙,不得用別的紙張代替。
2、實驗報告封面內(nèi)容
實驗名稱:(如實驗一 數(shù)據(jù)庫創(chuàng)建)班級名稱:(如計科101班)學(xué)生學(xué)號: 學(xué)生姓名: 實驗時間:
3、實驗報告內(nèi)容
見各具體實驗項目的要求。
基本實驗方法
本實驗要求熟悉SQL Server環(huán)境和數(shù)據(jù)庫的相關(guān)知識。
實驗環(huán)境
Microsoft SQL Server2012 2 實驗一:數(shù)據(jù)定義及更新語句練習(xí)一、二、實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)數(shù)據(jù)庫和基本表的創(chuàng)建、數(shù)據(jù)的更新。預(yù)習(xí)要求:實驗前復(fù)習(xí)講授過的有關(guān)創(chuàng)建數(shù)據(jù)庫、基本表的SQL語句,預(yù)習(xí)SQL Server2000環(huán)境,特別是資源管理器和查詢分析器的相關(guān)用法。
三、實驗內(nèi)容:
(一)用SQL語句建立如下mySPJ數(shù)據(jù)庫,包括S,P,J,和SPJ四個基本表(教材第二章習(xí)題5中的四個表),要求實現(xiàn)關(guān)系的三類完整性。
S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY)供應(yīng)商表S由供應(yīng)商代碼(SNO)、供應(yīng)商姓名(SNAME)、供應(yīng)商狀態(tài)(STATUS)、供應(yīng)商所在城市(CITY)組成。
零件表P由零件代碼(PNO)、零件名(PNAME)、顏色(COLOR)、重量(WEIGHT)組成。
工程項目表J由工程項目代碼(JNO)、工程項目名(JNAME)、工程項目所在城市(CITY)組成。
供應(yīng)情況表SPJ由供應(yīng)商代碼(SNO)、零件代碼(PNO)、工程項目代碼(JNO)、供應(yīng)數(shù)量(QTY)組成,表示某供應(yīng)商 供應(yīng)某種零件 給某工程項目的數(shù)量為QTY。
(二)分別使用插入、刪除、修改的方式更新基本表中的數(shù)據(jù)。
四、實驗方法和步驟:
(一)使用Microsoft SQL Server企業(yè)管理器和查詢分析器建立數(shù)據(jù)庫mySPJ: 1.打開“開始->程序->Microsoft SQL Server->企業(yè)管理器”;
2.在企業(yè)管理器左邊的樹標簽中依次打開“Microsoft SQL Server-> SQL Server組->(local)(Windows NT)->數(shù)據(jù)庫”,(local)(Windows NT)前的紅色標記轉(zhuǎn)化為綠色標記表明NT服務(wù)已啟動;
3.從企業(yè)管理器的“工具”菜單中選擇“SQL 查詢分析器”,打開查詢分析器后,在其窗口書寫創(chuàng)建數(shù)據(jù)庫mySPJ的SQL語句,點擊執(zhí)行按鈕(或F5鍵)執(zhí)行該SQL 3 語句;
4.在企業(yè)管理器左邊的樹標簽中查看數(shù)據(jù)庫是否建立成功。
(二)在數(shù)據(jù)庫mySPJ中建立S,P,J,和SPJ四個基本表:
按照實驗內(nèi)容給出的基本表結(jié)構(gòu)在查詢分析器窗口中書寫SQL語句分別建立各表,并設(shè)置主鍵和外鍵約束;
(三)更新表數(shù)據(jù):
1.利用Insert 語句將習(xí)題中給出的示例記錄插入各表。2.利用Update更新表中的記錄:
①將p表中的所有紅色零件的重量增加5。
②將spj表中所有天津供應(yīng)商的QTY屬性值減少10。用子查詢。
3.利用Delete語句刪除p表中的所有紅色零件的記錄。
4.SQL語句執(zhí)行后返回基本表查看更新后的結(jié)果,如果與期望不符,分析原因并記錄在實驗報告中。
五、思考題:
(一)在為各表設(shè)定關(guān)鍵字時彈出的頁面中有關(guān)鍵字和索引選項,試通過給基本表設(shè)定這兩個項目并說明二者的區(qū)別。
(二)在基本表中輸入數(shù)據(jù)時,注意數(shù)據(jù)與字段的數(shù)據(jù)類型和長度以及能否為空的屬性是否一致,保存時如有錯誤分析錯誤原因,及時改正并將錯誤報告寫在實驗報告中。
六、實驗報告要求:
(一)實驗?zāi)康模?二)實驗內(nèi)容:
(三)完成情況(附上設(shè)計的SQL語句)。
(四)實驗結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。(五)問題及解決:首先寫出執(zhí)行語句不成功的時候系統(tǒng)報告的錯誤信息。然后分析錯誤原因,并給出解決辦法。(六)回答思考題提出的問題,(七)實驗總結(jié):心得體會,建議等。
實驗二:簡單查詢和連接查詢
一、實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)的簡單查詢和多個數(shù)據(jù)表連接查詢。
二、預(yù)習(xí)要求:實驗前復(fù)習(xí)講授過的有關(guān)簡單查詢與多表查詢的知識,編寫相應(yīng)的SQL語句。
三、實驗內(nèi)容:
(一)完成下面的簡單查詢:
①查詢所有“天津”的供應(yīng)商明細; ②查詢所有“紅色”的14公斤以上的零件。③查詢工程名稱中含有“廠”字的工程明細。(二)完成下面的連接查詢:
①等值連接:求s表和j表的相同城市的等值連接。
②自然連接:查詢所有的供應(yīng)明細,要求顯示供應(yīng)商、零件和工程的名稱,并按照供應(yīng)、工程、零件排序。
③笛卡爾積:求s和p表的笛卡爾積 ④左連接:求j表和spj表的左連接。⑤右連接:求spj表和j表的右連接。
四、實驗方法和步驟:
參照實驗一中給出的使用Microsoft SQL Server企業(yè)管理器和SQL查詢分析器的方法,將實驗內(nèi)容中所要求的查詢項目依次用SQL語句實現(xiàn),并記錄下執(zhí)行結(jié)果。
五、思考題:
查看實驗內(nèi)容2中左連接和右連接的執(zhí)行結(jié)果是否一致,為什么?
六、實驗報告要求:(一)實驗?zāi)康模?二)實驗內(nèi)容:
5(三)完成情況(附上設(shè)計的SQL語句)。
(四)實驗結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。(五)問題及解決:首先寫出執(zhí)行語句不成功的時候系統(tǒng)報告的錯誤信息。然后分析錯誤原因,并給出解決辦法。(六)回答思考題提出的問題,(七)實驗總結(jié):心得體會,建議等。實驗三:分組查詢和嵌套查詢
一、實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)多個數(shù)據(jù)表的分組查詢和嵌套查詢。
二、預(yù)習(xí)要求:實驗前復(fù)習(xí)講授過的有關(guān)分組查詢和嵌套查詢的知識,編寫相應(yīng)的SQL語句。
三、實驗內(nèi)容:(一)分組查詢:
1.求各種顏色零件的平均重量。2.求北京供應(yīng)商和天津供應(yīng)商的總個數(shù)。3.求各供應(yīng)商供應(yīng)的零件總數(shù)。4.求各供應(yīng)商供應(yīng)給各工程的零件總數(shù)。5.求使用了100個以上P1零件的工程名稱。6.求各工程使用的各城市供應(yīng)的零件總數(shù)。
(二)嵌套查詢:
1.in連接謂詞查詢:
① 查詢沒有使用天津供應(yīng)商供應(yīng)的紅色零件的工程名稱。② 查詢供應(yīng)了1000個以上零件的供應(yīng)商名稱。(having)2.比較運算符:求重量大于所有零件平均重量的零件名稱。3.Exists連接謂詞:
① 查詢供應(yīng)J1的所有的零件都是紅色的供應(yīng)商名稱。② 至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號JNO。
四、實驗方法和步驟:
參照實驗一中給出的使用Microsoft SQL Server企業(yè)管理器和SQL查詢分析器的方法,將實驗內(nèi)容中所要求的查詢項目依次用SQL語句實現(xiàn),并記錄下執(zhí)行結(jié)果。
五、思考題:
(一)嵌套查詢中的in連接謂詞查詢,關(guān)鍵字in可以直接用any代替么?什么情況下in和any可以互相代替?
(二)嵌套查詢中的內(nèi)查詢?yōu)橥獠樵兎祷氐膬?nèi)容是什么?是表達式?視圖?還是物理數(shù)據(jù)集合?
六、實驗報告要求:(一)實驗?zāi)康模?二)實驗內(nèi)容:
(三)完成情況(附上設(shè)計的SQL語句)。
(四)實驗結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。(五)問題及解決:首先寫出執(zhí)行語句不成功的時候系統(tǒng)報告的錯誤信息。然后分析錯誤原因,并給出解決辦法。(六)回答思考題提出的問題,(七)實驗總結(jié):心得體會,建議等。
實驗四:視圖操作和數(shù)據(jù)控制
一、實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)視圖操作和數(shù)據(jù)控制。
二、預(yù)習(xí)要求:實驗前復(fù)習(xí)講授過的有關(guān)視圖操作和數(shù)據(jù)控制的知識,編寫相應(yīng)的SQL語句。
三、實驗內(nèi)容:
(一)定義如下視圖:
①查詢北京的供應(yīng)商的編號、名稱和城市。②查詢S1供應(yīng)商的所有供應(yīng)明細。
③查詢各工程名稱使用的各種顏色零件的個數(shù)。查詢上面定義的視圖。
(二)數(shù)據(jù)控制:
①使用GRANT把對S表查詢的權(quán)利授予WangLi。
②使用GRANT把對P表查詢、插入、修改、刪除的權(quán)利授予LiMing。
③使用REVOKE把LiMing對P表插入、刪除的權(quán)利回收。
四、實驗方法和步驟:
參照實驗一中給出的使用Microsoft SQL Server企業(yè)管理器和SQL查詢分析器的方法,將實驗內(nèi)容中所要求的查詢項目依次用SQL語句實現(xiàn),并記錄下執(zhí)行結(jié)果。
五、思考題:
實驗內(nèi)容中的哪些視圖可以用來更新記錄?
六、實驗報告要求:(一)實驗?zāi)康模?二)實驗內(nèi)容:
(三)完成情況(附上設(shè)計的SQL語句)。
(四)實驗結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。(五)問題及解決:首先寫出執(zhí)行語句不成功的時候系統(tǒng)報告的錯誤信息。然后 9 分析錯誤原因,并給出解決辦法。(六)回答思考題提出的問題,(七)實驗總結(jié):心得體會,建議等。
實驗五:觸發(fā)器和存儲過程
一、實驗?zāi)康模豪斫庥|發(fā)器和存儲過程的含義,掌握用SQL語句實現(xiàn)觸發(fā)器和存儲過程的編寫,并初步掌握什么情況下使用事務(wù)。
二、預(yù)習(xí)要求:存儲過程和觸發(fā)器的相關(guān)概念,事務(wù)的相關(guān)概念,編寫相應(yīng)的SQL語句。
三、實驗內(nèi)容:
有一個小型的圖書管理數(shù)據(jù)庫,包含的表為:
bookstore(bookid,bookname,bookauthor,purchasedate,state);--圖書庫存表
borrowcard(cardid,ownername);--借書證表
borrowlog(cardid,bookid,borrowdate,returndate);--借書記錄表 寫一個存儲過程,實現(xiàn)借書操作,要求有事務(wù)處理。(1)讀者借書,要先設(shè)置書籍不在庫標志state(借出),然后增加借書記錄,在同一事務(wù)中完成。(2)要求在事務(wù)執(zhí)行過程中引入錯誤觸發(fā)事件,以此體會事務(wù)的錯誤保護機制和事務(wù)編程的作用。(3)要求用觸發(fā)器實現(xiàn)表的完整性控制。
四、實驗方法和步驟:
(一)在查詢分析器中創(chuàng)建包含以上三張表的數(shù)據(jù)庫。
(二)參考CREATE PROCEDURE語句和Create Trigger語句。在事務(wù)執(zhí)行過程中引入錯誤觸發(fā)事件,可以考慮在增加借書記錄時違反實體完整性或參照完整性,以此體會事務(wù)的錯誤保護機制,并用觸發(fā)器實現(xiàn)表的完整性控制。
五、思考題:
如何通過系統(tǒng)的設(shè)置實現(xiàn)類似的功能,而不需觸發(fā)器?
六、實驗報告要求:(一)實驗?zāi)康模?二)實驗內(nèi)容:
(三)完成情況(附上設(shè)計的SQL語句)。
11(四)實驗結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。(五)問題及解決:首先寫出執(zhí)行語句不成功的時候系統(tǒng)報告的錯誤信息。然后分析錯誤原因,并給出解決辦法。(六)回答思考題提出的問題,實驗總結(jié):心得體會,建議等。
選作題目
選作題目1:用vb,delphi或者c++builder設(shè)計一個數(shù)據(jù)庫應(yīng)用程序,實現(xiàn)一個簡單的成績管理,建立三個表:學(xué)生表S,課程表C和成績表SC。要求實現(xiàn)的功能:(1)維護學(xué)生信息;(2)維護課程信息;(3)錄入成績;(4)查詢一個學(xué)生的所有課程成績;(5)查詢每門課程的平均成績。(6)打印學(xué)生成績報表;(7)打印每門課程的平均成績報表。
選作題目2:自由結(jié)合以(5-6)人為小組完成一個數(shù)據(jù)庫系統(tǒng)設(shè)計的小課題。要求用ERWIN工具對數(shù)據(jù)庫進行建模。
第二篇:(2008版)數(shù)據(jù)庫原理實驗5指導(dǎo)書
一 實驗題目:視圖的定義和使用
二 實驗?zāi)康模杭由顚σ晥D的理解,熟練視圖的定義、查看、修改等操作 三 實驗內(nèi)容及要求:(從下面10個題目中選一個)題目一:
學(xué)生(學(xué)號,年齡,性別,系名)課程(課號,課名,學(xué)分,學(xué)時)選課(學(xué)號,課號,成績)根據(jù)上面基本表的信息定義視圖顯示每門課的課名、選課人數(shù)、平均成績 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3 利用視圖,查詢平均成績最高的學(xué)生。
題目二:
圖書(書號,書名,價格,出版社)讀者(卡號,姓名,年齡,所屬單位)借閱(書號,卡號,借閱日期)根據(jù)上面基本表的信息定義視圖顯示每本書的書名、借閱次數(shù) 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢借閱次數(shù)最多的書。
題目三:
商品(編號,品名,進價,庫存,售價,廠商編號)顧客(卡號,姓名,電話,積分)廠商(編號,廠址,名稱、電話)
銷售(顧客卡號,商品編號,數(shù)量,日期)根據(jù)上面基本表的信息定義視圖顯示每種商品的品名、銷售數(shù)量 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢銷售數(shù)量最高的商品。
題目四:
圖書(書號,書名,作者編號,價格,出版社編號)作者(編號,姓名,電話)
出版社(編號,出版社名稱,地址)根據(jù)上面基本表的信息定義視圖顯示每個出版社的名稱、出版書的數(shù)量 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢出版書最多的出版社
題目五:
零件(編號,名稱,顏色,生產(chǎn)車間號)車間(編號,名稱,人數(shù),主任)產(chǎn)品(編號,名稱,車間編號)
使用(產(chǎn)品編號,使用零件編號,個數(shù))根據(jù)上面基本表的信息定義視圖顯示每個產(chǎn)品的編號,使用零件的編號,生產(chǎn)零件的車間號,車間主任 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢使用零件最多的產(chǎn)品。
題目六:
藥品(編號,名稱,價格,廠商)處方(藥品編號,數(shù)量,醫(yī)生編號)醫(yī)生(編號,姓名,科室,職稱)根據(jù)上面基本表的信息定義視圖顯示每種藥品的品名、銷售金額 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢最暢銷的藥品。
題目七:
學(xué)生(學(xué)號,年齡,性別,系名)
教材(編號,書名,出版社編號,價格)訂購(學(xué)號,書號,數(shù)量)出版社(編號,名稱,地址)根據(jù)上面基本表的信息定義視圖顯示每個學(xué)生姓名、應(yīng)繳書費 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢交費最高的學(xué)生。
題目八:
員工(編號,姓名,性別,年齡,部門編號,年薪)部門(編號,名稱,人數(shù),負責(zé)人)項目(編號,名稱,負責(zé)部門編號)根據(jù)上面基本表的信息定義視圖顯示每個部門名稱、年工資總額 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢工資額最高的部門
題目九:
帳戶(編號,姓名,余額,建立日期,儲蓄所編號)儲蓄所(編號,名稱,地址,人數(shù),所屬城市)借貸(帳戶,借貸類型,金額,日期)根據(jù)上面基本表的信息定義視圖顯示每個儲蓄所名稱、儲蓄總金額 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢儲蓄金額最高的儲蓄所。
題目十:
倉庫(編號,保管員編號,面積)
保管員(編號,姓名,年齡,電話、月薪)商品(編號,品名,倉庫編號、數(shù)量,單價)
1根據(jù)上面基本表的信息定義視圖顯示每個倉庫保管員姓名、保管商品價值總額 2 觀察基本表數(shù)據(jù)變化時,視圖中數(shù)據(jù)的變化。3利用視圖,查詢保管商品價值金額最高的保管員。
五 實驗報告要求: 給出建立視圖的步驟。給出基本表數(shù)據(jù)和視圖的內(nèi)容。給出查詢命令和測試數(shù)據(jù)、執(zhí)行結(jié)果。
第三篇:數(shù)據(jù)庫原理課程設(shè)計指導(dǎo)書
數(shù)據(jù)庫課程設(shè)計
第一節(jié)
序
言
數(shù)據(jù)庫是信息系統(tǒng)的核心和基礎(chǔ),它把信息系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來,提供存儲、維護、檢索數(shù)據(jù)的功能,使信息系統(tǒng)可以方便、及時、準確地從數(shù)據(jù)庫中獲得所需的信息。
數(shù)據(jù)庫設(shè)計是信息系統(tǒng)開發(fā)和建設(shè)的重要組成部分。
數(shù)據(jù)庫設(shè)計的基本任務(wù)是:對于一個給定的應(yīng)用領(lǐng)域,設(shè)計優(yōu)化的數(shù)據(jù)庫邏輯和物理結(jié)構(gòu),使之滿足用戶的信息管理要求和數(shù)據(jù)操作要求,有效地支持各種應(yīng)用系統(tǒng)的開發(fā)和運行。也就是說,數(shù)據(jù)庫設(shè)計應(yīng)該和應(yīng)用系統(tǒng)設(shè)計相結(jié)合,即整個設(shè)計過程中要把結(jié)構(gòu)(數(shù)據(jù))設(shè)計和行為(處理)設(shè)計密切結(jié)合起來。因此,數(shù)據(jù)庫設(shè)計的成果有二:一是數(shù)據(jù)模式,二是以數(shù)據(jù)庫為基礎(chǔ)的典型應(yīng)用程序。
數(shù)據(jù)庫設(shè)計和開發(fā)是一項復(fù)雜的工程,是涉及多學(xué)科的綜合性技術(shù)。
課程設(shè)計是課堂教學(xué)的實踐延伸,是重要的一環(huán)。學(xué)生按所選設(shè)計任務(wù)分組,在兩周的課程設(shè)計時間里,學(xué)生應(yīng)圍繞自己的題目內(nèi)容,結(jié)合軟件工程的原理和方法,體驗數(shù)據(jù)庫及其應(yīng)用系統(tǒng)開發(fā)全過程,尤其要突出數(shù)據(jù)庫設(shè)計的六個階段;同時體驗并發(fā)揮團隊合作精神。完成設(shè)計任務(wù)后,交付課程設(shè)計說明書。
第1頁
數(shù)據(jù)庫課程設(shè)計
第二節(jié)
課程設(shè)計步驟
選定設(shè)計任務(wù)后,分小組討論,初步劃分小組各成員的子任務(wù),選出小組負責(zé)人,同時按照軟件工程的原理和數(shù)據(jù)庫設(shè)計的步驟盡快安排小組的工作進度,指導(dǎo)教師在第二天檢查各小組的進度安排。
整個設(shè)計過程,小組各成員之間要有充分的交流,并作活動記錄,其關(guān)鍵部分要求載入課程設(shè)計說明書。
一般地,在設(shè)計的各階段,小組與指導(dǎo)教師之間至少要有一次交流、匯報,讓教師掌握其設(shè)計動態(tài)。
小組負責(zé)人要協(xié)調(diào)并控制小組各成員及整個項目(設(shè)計任務(wù))的開發(fā)進度。
第2頁
數(shù)據(jù)庫課程設(shè)計
第三節(jié)
設(shè)計說明書要求與格式參考
按軟件工程的要求編寫課程設(shè)計說明書,要求不少于3000字。說明書中除了在封面應(yīng)有題目、班級、姓名、學(xué)號和課程設(shè)計日期、地點以外,其正文一般有如下幾個方面的內(nèi)容:
(1)系統(tǒng)分析報告,包括系統(tǒng)的功能分析、系統(tǒng)的功能模塊設(shè)計、數(shù)據(jù)庫的數(shù)據(jù)字典,數(shù)據(jù)庫的概念結(jié)構(gòu)(E-R圖),數(shù)據(jù)庫中的表、視圖(如果使用)、存儲過程(如果使用)的結(jié)構(gòu)和定義(可以用SQL腳本提供);
(2)程序設(shè)計的報告:包括程序的運行環(huán)境、開發(fā)環(huán)境、程序的詳細設(shè)計(包括模塊之間的關(guān)系,模塊的功能、主要功能實現(xiàn)的程序段)
(3)系統(tǒng)的源程序,包括數(shù)據(jù)庫腳本程序。
其中數(shù)據(jù)庫設(shè)計部分應(yīng)盡量詳盡,該部分說明書的參考格式如下。
數(shù)據(jù)庫設(shè)計部分
1. 引言
1.1 項目名稱
1.2項目背景和內(nèi)容概要 1.3相關(guān)資料、縮略語、定義
(相關(guān)項目計劃、引用的文件、采用的標準等)(縮寫詞和名詞定義)2. 約定
數(shù)據(jù)庫中各種元素的命名約定。例如表名,字段名的命名約定。
3. 需求分析
數(shù)據(jù)流圖及相應(yīng)數(shù)據(jù)字典 4. 數(shù)據(jù)庫概念模型設(shè)計
4.1數(shù)據(jù)實體-關(guān)系圖
第3頁
數(shù)據(jù)庫課程設(shè)計
4.2數(shù)據(jù)實體描述
數(shù)據(jù)實體中文名,數(shù)據(jù)庫表名,數(shù)據(jù)實體描述 4.3實體關(guān)系描述
(描述每個實體間的關(guān)系)
實體1:實體2(1:1,1:n, m:n)
5.?dāng)?shù)據(jù)庫邏輯模型設(shè)計
5.1關(guān)系模型描述
(E-R圖向關(guān)系模型轉(zhuǎn)換)
數(shù)據(jù)庫表名: 同義詞(別名): 主鍵: 外鍵: 索引:
約束: 中文名稱 數(shù)據(jù)屬性名 數(shù)據(jù)類型 數(shù)據(jù)長度
約束范圍 是否空 注解
5.2數(shù)據(jù)視圖描述
(如用標準SQL語言中創(chuàng)建數(shù)據(jù)視圖的語句描述)5.3數(shù)據(jù)庫一致性設(shè)計
(如用標準SQL語言中創(chuàng)建表的語句描述)
6.物理實現(xiàn)
6.1數(shù)據(jù)庫的安排
。說明是否采用分布式數(shù)據(jù)庫,數(shù)據(jù)庫表如何分布。每個數(shù)據(jù)庫服務(wù)器上建立幾個數(shù)據(jù)庫,其存儲空間等安排
。數(shù)據(jù)庫表的的分配方法,例如:如何創(chuàng)建段,或表空間 6.2安全保密設(shè)計
用戶角色劃分方法,每個角色的權(quán)限
第4頁
數(shù)據(jù)庫課程設(shè)計
第四節(jié) 設(shè)計任務(wù) 題一:酒店管理系統(tǒng)
1、問題描述
某三星級酒店經(jīng)營住宿、餐飲、桑拿、會議業(yè)務(wù),其中住宿和餐飲服務(wù)收入占該酒店整個營業(yè)收入的80%??腿巳胱【频昕梢酝ㄟ^前臺登記、前臺預(yù)定;客房分為多個檔次以供不同消費者選擇;餐飲部既對內(nèi)部入住客人服務(wù),也對外營業(yè),入住客人可以通過電話訂購各種食品,在餐飲大廳就餐的客人必須先購餐券,然后憑餐券讓服務(wù)生領(lǐng)取食品。
該酒店為加強管理,提高整個酒店的運行效率,打算建設(shè)信息化管理系統(tǒng),其中客房部、餐飲部是整個系統(tǒng)的重要模塊。
試實現(xiàn)其中客房管理模塊
2、系統(tǒng)功能的基本要求:
? 前臺客人入住登記; ? 客人退房登記; ? 前臺收銀; ? 客房預(yù)訂登記;
? 換房(客人要求換房間)記錄; ? 住宿價格調(diào)整; ? 訪客登記; ? 綜合查詢
第5頁
數(shù)據(jù)庫課程設(shè)計
⑴ 房況查詢:某間或某類客房當(dāng)前入住情況查詢;預(yù)定房查詢;某段日期某客房入住記錄查詢;
⑵ 入住客人信息查詢:根據(jù)房間號查詢?nèi)胱】腿说男畔?;根?jù)客人證件或姓名查詢客人信息;根據(jù)來訪客人信息查詢被訪客人信息。
3、建議與提示: ? 采用B/S架構(gòu);
? 本選題建議最多4人選做;
題二:高校學(xué)生宿舍管理系統(tǒng)
1、問題描述:
某高校有學(xué)生3萬多人,學(xué)生統(tǒng)一住在學(xué)生宿舍。每間學(xué)生宿舍都配備有網(wǎng)絡(luò)接口、電表、水表;學(xué)校后勤集團可以根據(jù)情況設(shè)置網(wǎng)絡(luò)費、電費、水費標準,例如:每個學(xué)生每年交網(wǎng)絡(luò)費30元;每個學(xué)生每個月有5度免費電、3噸免費水,超過免費量就按市場價格收取該寢室水電費。
根據(jù)情況,??粕?、本科生、碩士研究生和博士研究生住房標準不同。一般,專科生是4-6人一間寢室;碩士生3人一間寢室;博士生兩人一室;除博士生外,所有學(xué)生每年都要按某個設(shè)定的價格繳納一定的住宿費。
對部分空置宿舍可以對外出租,租金由宿舍管理中心設(shè)定。該高校后勤集團學(xué)生宿舍管理中心擬開發(fā)一套管理軟件,以加強學(xué)生宿舍管理。2系統(tǒng)基本功能要求:
第6頁
數(shù)據(jù)庫課程設(shè)計
? 新生入住登記(包括宿舍住房分配、登記); ? 畢業(yè)生退房登記; ? 學(xué)生換宿舍記錄; ? 寢室衛(wèi)生檢查記錄; ? 寢室設(shè)備損壞保修登記; ? 水電表讀數(shù)記錄;
? 水電收費(可以每月一收,也可以每年一收); ? 空置宿舍外租管理; ? 外來客人登記記錄; ? 綜合查詢
⑴ 根據(jù)寢室號查學(xué)生信息; ⑵ 根據(jù)學(xué)號或姓名查寢室;
⑶ 查水電費帳目(根據(jù)寢室號、學(xué)號查某寢室某段時期內(nèi)的水電費);
發(fā)揮你的想象,可能還有哪些功能是需要的,實現(xiàn)它。
3、數(shù)據(jù)庫要求:在數(shù)據(jù)庫中至少應(yīng)該包含下列數(shù)據(jù)表:
? 寢室信息表(包括樓號、寢室號、類型、價格等); ? 學(xué)生信息表; ? 寢室衛(wèi)生檢查記錄; ? 水表度數(shù)記錄; ? 電表度數(shù)記錄; ? 外租客信息。
4、建議與提示: ? 采用B/S架構(gòu);
? 本選題建議最多4人選做;
第7頁
數(shù)據(jù)庫課程設(shè)計
題三:倉庫管理系統(tǒng)
1、問題描述:
某大型國有生產(chǎn)型企業(yè)擁有4個倉庫:原材料倉庫、成品倉庫、半成品倉庫和一個綜合倉庫。每個倉庫配有主管一名和保管員若干名。該企業(yè)為精簡冗員、減少倉庫管理成本、提高管理效率,擬開發(fā)一倉庫管理系統(tǒng)。
2、基本功能要求:
? 產(chǎn)品入庫管理,可以填寫入庫單,確認產(chǎn)品入庫; ? 產(chǎn)品出庫管理,可以填寫出庫單,確認出庫; ? 借出管理,憑借條借出,然后能夠還庫;
? 初始庫存設(shè)置,設(shè)置庫存的初始值,庫存的上下警戒線; ? 可以進行盤庫,反映每月、年的庫存情況;
? 可以查詢產(chǎn)品入庫情況、出庫情況、當(dāng)前庫存情況,可以按出庫單、入庫單,產(chǎn)品、時間進行查詢;
3、建議與提示: ? 采用B/S架構(gòu);
? 本選題建議最多4人選做;
題四:儲蓄系統(tǒng)
1、問題描述: 為方便儲戶,某銀行擬開發(fā)計算機儲蓄系統(tǒng)。儲戶填寫的存款單或取款單由業(yè)務(wù)員鍵入系統(tǒng),如果是存款,系統(tǒng)記錄存款人姓名、住址、存款類型、存款日期、利率等信息,并印出存款單給儲戶;如果是取款,系統(tǒng)計算利息并印出利息清單給儲戶。
第8頁
數(shù)據(jù)庫課程設(shè)計
2、系統(tǒng)功能基本要求:
? 儲戶開設(shè)帳戶(根據(jù)用戶類型分個人帳戶、企業(yè)帳戶); ? 存款(定期、活期);
? 取款(定期到期取款、活期取款)? 消戶
? 轉(zhuǎn)帳(注意事務(wù)處理)
3、建議與提示:
? 采用B(Browser)/S(Server)架構(gòu); ? 本選題建議最多3人選做;
題
五、簡單POS系統(tǒng)
1、問題描述:
某小型商店打算開發(fā)一簡單POS系統(tǒng)。系統(tǒng)要求記錄每一筆訂貨信息、每一筆銷售交易的詳情,并能查詢某種商品銷售情況,庫存情況;當(dāng)某種商品的庫存不足時,系統(tǒng)自動提醒訂貨。
2、系統(tǒng)功能基本要求:
? 訂貨信息(商品名稱、訂貨價、數(shù)量、供貨商等)錄入; ? 供貨商信息錄入;
? 銷售詳細信息(包括商品名稱、價格、數(shù)量等)錄入、查詢、打??;
? 銷售情況綜合查詢
⑴ 按照商品名稱、編號查詢某一段時間內(nèi)的銷售量和銷售額;
⑵ 查詢某種商品的銷售利潤((銷售價-訂貨價)×銷量); ? 庫存情況查詢:查詢某種商品的當(dāng)前庫存量
第9頁
數(shù)據(jù)庫課程設(shè)計
? 安全庫存量設(shè)置:為某種商品設(shè)定安全庫存量,如果當(dāng)前庫存量小于安全庫存量,系統(tǒng)自動提示訂貨;
3、建議與提示: ? 采用B/S架構(gòu);
? 本選題建議最多4人選做;
題
六、房產(chǎn)管理系統(tǒng)
1、問題描述:
在我國住房管理是一個關(guān)系到每個人切身利益的大問題?,F(xiàn)擬開發(fā)一個用計算機進行房產(chǎn)管理的系統(tǒng),要求系統(tǒng)具有分房、調(diào)房、退房和咨詢統(tǒng)計等功能。房產(chǎn)科把用戶申請表輸入系統(tǒng)以后,系統(tǒng)首先檢查申請表的合法性,對不合法的申請表系統(tǒng)拒絕接受;對合法的申請表根據(jù)類型分別進行處理。
如果是分房申請,則根據(jù)申請者的情況(年齡、工齡、職稱、職務(wù)、家庭人口等)計算其分數(shù),當(dāng)分數(shù)高于閾值分數(shù)時,按分數(shù)高低將申請單插到分房隊列的適當(dāng)位置。每月最后一天進行一次分房活動,從空房文件中讀出空房信息,如房號、面積、等級、單位面積房租等,把好房優(yōu)先分配給排在分房隊列前面的符合該等級條件的申請者,從空房文件中刪除這個房號的信息,從分房隊列中刪掉該申請單,并把此房號的信息和住戶信息一起寫到住房文件中,輸出住房分配單給住戶,同時計算房租并將算出的房租寫到房租文件中。
如果是退房申請,則從住房文件和房租文件中刪掉有關(guān)信息,再把此房號的信息寫到空房文件中。
如果是調(diào)房申請,則根據(jù)申請者的情況確定其住房等級,然后在第10頁
數(shù)據(jù)庫課程設(shè)計
空房文件中查找屬于該等級的空房,退掉原住房,再進行與分房類似的處理。
住戶可向系統(tǒng)詢問目前分房的閾值分數(shù),居住某類房屋的條件,某房號的單位面積房租等信息。房產(chǎn)科可以要求系統(tǒng)印出住房情況統(tǒng)計表,或更改某類房屋的居住條件、單位面積房租等。
2、基本功能要求: ? 住房申請信息錄入;
? 房產(chǎn)信息(包括位置、房型、面積、建造日期、房租等)錄入、修改、查詢;
? 分房閥值的設(shè)定、查詢; ? 非空房的住戶情況查詢; ? 住房分配單輸出; ? 評分標準的設(shè)定;
? 申請人申請信息公示(注意權(quán)限控制); ? 分房結(jié)果公示與查詢。
3、建議與提示: ? 采用B/S架構(gòu);
? 本選題建議最多4人選做;
題七:汽車客運中心票務(wù)管理系統(tǒng)
1、問題描述:
在長途汽車客運中心,旅客可以查看當(dāng)前班次信息(通過電子布告牌或普通布告牌),根據(jù)班次信息到售票窗口購票,然后憑票上車;旅客在開車前某段時間可以退票;車站管理人員可以發(fā)布車次信
第11頁
數(shù)據(jù)庫課程設(shè)計
息(如新開或增加某線路班次),可以根據(jù)市場行情來調(diào)整車票價格;售票窗口可以查詢某班次的售票情況,可以預(yù)售車票。
2、基本功能要求: ? 多個售票窗口售票; ? 退票受理; ? 發(fā)布車次情況; ? 調(diào)整車票價格;
? 記錄、調(diào)整某車次的司機、服務(wù)人員配備情況;
3、建議與提示: ? 采用B/S架構(gòu);
? 本選題建議最多3人選做;
題八:校友通信錄
1、問題描述:
校友通信錄是用來聯(lián)系往日校友的重要手段,它應(yīng)該具有新校友加入、校友查詢以及修改個人資料等功能。其中修改個人資料時需要有口令驗證。
2、基本功能要求: ? 有權(quán)限設(shè)置功能;
? 新校友加入時應(yīng)通過管理員的審核;
3、建議與提示: ? 采用B/S架構(gòu);
? 本選題建議最多2人選做;
第12頁
數(shù)據(jù)庫課程設(shè)計
題九:班主任助手
1、問題描述:
中學(xué)班主任不但承擔(dān)著繁重的教學(xué)任務(wù),還負責(zé)管理班上學(xué)生的學(xué)習(xí)、生活和思想,因而工作量相當(dāng)大。試設(shè)計并完成一個軟件,幫助班主任管理學(xué)生。
2、基本功能要求:
? 學(xué)生信息(包括個人信息、家庭情況、愛好等)的錄入、修改; ? 學(xué)生學(xué)習(xí)管理:每位學(xué)生每次考試成績的錄入、分析 ? 綜合查詢:
⑴ 按姓名或?qū)W號查某個學(xué)生的信息或家庭情況; ⑵ 按姓名或?qū)W號查某個學(xué)生某次考試的成績; ⑶ 統(tǒng)計某次考試的平均分;
⑷ 統(tǒng)計某個同學(xué)所有考試的平均分,描繪其成績走勢曲線圖。
3、建議與提示:
? 本選題建議最多2人選做;
題十:學(xué)籍管理系統(tǒng)
1、問題描述
某高校擬開發(fā)一學(xué)生學(xué)籍管理系統(tǒng),以幫助管理學(xué)生的基本信息、學(xué)習(xí)成績、獎懲情況等。要求學(xué)生從入學(xué)起,即在系統(tǒng)中記錄其基本信息,以后系統(tǒng)全程跟蹤學(xué)生的學(xué)習(xí)成績、獎懲情況等。
2、系統(tǒng)基本功能要求: ? 學(xué)生基本信息編輯
第13頁
數(shù)據(jù)庫課程設(shè)計
以班級為單位,在新生入學(xué)時錄入新生的基本信息,并能對學(xué)生基本信息進行隨時的修改(包括: 學(xué)生個人基本信息;入學(xué)成績;家庭信息;學(xué)生簡歷;學(xué)生軍訓(xùn);學(xué)生體檢)
? 學(xué)生成績管理
⑴ 在每學(xué)期考試結(jié)束后錄入學(xué)生考試成績,并能進行成績修改
⑵ 在錄入學(xué)生成績時應(yīng)先選擇分制:等級制;分數(shù)制
⑶ 如是分數(shù)制應(yīng)先設(shè)置平時分和考試分數(shù)在最后成績中的百分制
⑷ 如是等級制在寫入數(shù)據(jù)表中時應(yīng)先將等級轉(zhuǎn)化為分數(shù) ⑸ 在錄入學(xué)生成績表時先應(yīng)該選取操作班級,再以每門課程為單位進行成績的錄入,緩考學(xué)生的成績不需錄入,學(xué)生最后成績由程序根據(jù)用戶設(shè)置進行自動計算生成 ⑹ 能根據(jù)學(xué)生成績信息自動生成補考成績信息 ⑺ 在錄入緩考/補考信息時以班級為單位進行錄入 ⑻ 緩考/補考后應(yīng)相應(yīng)的更新成績表和緩考/補考信息表 ? 學(xué)生懲處/獎勵管理
⑴ 可隨時錄入學(xué)生獎勵/懲處信息,并能進行修改;
⑵ 在撤消懲處時應(yīng)相應(yīng)的更新學(xué)生懲處信息表。? 學(xué)生其他信息管理
(操作對象: 貸款管理信息;學(xué)生異動表;學(xué)生注冊表); ⑴ 可隨時錄入學(xué)生貸款管理/注冊信息,并能進行修改; ⑵ 在處理(執(zhí)行/恢復(fù))學(xué)生異動信息時,應(yīng)更新相應(yīng)的本學(xué)生信息(學(xué)生的學(xué)號,學(xué)生所屬班級編號);
⑶ 異動情況:留級(轉(zhuǎn)班相似),休學(xué)(同退學(xué)),退學(xué)(作一標志,并添加此學(xué)生信息到異動表),轉(zhuǎn)班級(作一標志,并添加此學(xué)生信息到異動表,更新此學(xué)生所有信息,學(xué)號關(guān)聯(lián)的更新)。? 綜合查詢: a.查詢學(xué)生基本信息
(操作對象: 學(xué)生信息表;入學(xué)成績表;家庭信息表;學(xué)生簡歷表;學(xué)生軍訓(xùn);學(xué)生體檢)⑴ 根據(jù)學(xué)生姓名,班級查詢(轉(zhuǎn)化為學(xué)號進行查詢)
第14頁
數(shù)據(jù)庫課程設(shè)計
⑵ 根據(jù)學(xué)號查詢 ⑶ 按班級查詢
b.查詢學(xué)生成績
⑴ 按學(xué)生學(xué)號查詢本學(xué)期成績
⑵ 按學(xué)生姓名,班級查詢本學(xué)期成績(轉(zhuǎn)化為學(xué)號進行查詢)⑶ 查詢某學(xué)生所有學(xué)期成績(按學(xué)號/按姓名,班級)⑷ 按專業(yè)班級查詢此班本學(xué)期需補考人次 ⑸ 查詢?nèi)K芯徔紝W(xué)生信息 ⑹ 全校還需補考的學(xué)生信息
⑺ 全校補考門次大于某一定數(shù)的學(xué)生信息
⑻ 全校范圍內(nèi)總學(xué)分小于某一定數(shù)的學(xué)生信息查詢 ⑼ 全校范圍內(nèi)學(xué)生總成績小于某一定數(shù)的學(xué)生信息查詢
c.獎勵/懲處查詢
⑴ 按學(xué)號查詢某學(xué)生獎勵/懲處信息 ⑵ 按姓名、班級查詢某學(xué)生獎勵/懲處信息 d.其它信息查詢 ⑴ 按學(xué)號查詢
⑵ 按學(xué)生姓名,班級查詢 ⑶ 按班級查詢
3、數(shù)據(jù)庫要求:在數(shù)據(jù)庫中至少應(yīng)該包含下列數(shù)據(jù): ⑴ 學(xué)生個人基本信息;⑵ 學(xué)生簡歷表;⑶ 入學(xué)成績表;⑷ 家庭信息表;⑸ 學(xué)生獎勵表;⑹ 學(xué)生處分表;⑺ 學(xué)生異動表;⑻ 學(xué)生成績表;⑼ 學(xué)生注冊表;⑽ 貸款管理表;
第15頁
數(shù)據(jù)庫課程設(shè)計
⑾ 學(xué)生體檢表;⑿ 學(xué)生軍訓(xùn)表;⒀ 班級信息;⒁ 緩考信息表;⒂ 補考信息表
4、建議與提示: ? 采用B/S架構(gòu); ? 本選題建議5人選做;
第五節(jié)
考勤與考核
全體同學(xué)在課程設(shè)計期間,必須在上課時間到專業(yè)機房進行考勤,一天四次(早上8:10及11:30,下午2:10及4:30)。
每個小組在課題完成之后,必須通過指導(dǎo)老師的考核,基本完成課題要求的起點為合格,另根據(jù)每個同學(xué)的具體完成模塊情況進行考核評分。
第16頁
第四篇:(2018版)數(shù)據(jù)庫原理實驗2指導(dǎo)書
一 實驗題目: SQL SERVER2008查詢分析器的使用
二 實驗?zāi)康模菏煜QL SERVER2008 環(huán)境,熟悉查詢分析器的使用,能夠熟練運用sql命令完成數(shù)據(jù)庫,基本表、主碼、外碼和其它必要的約束條件的定義。
三 實驗內(nèi)容及要求:(從下面10個題目中選擇一個)題目一: 利用sql建立學(xué)生信息數(shù)據(jù)庫,并定義以下基本表: 學(xué)生(學(xué)號,年齡,性別,系號)課程(課號,課名,學(xué)分,學(xué)時)選課(學(xué)號,課號,成績)
定義主碼、外碼、和年齡、學(xué)分、學(xué)分的取值范圍。在三個表中輸入若干記錄,注意如果輸入違反完整性約束條件的記錄系統(tǒng)有何反應(yīng)。
題目二: 利用sql建立圖書管理數(shù)據(jù)庫,并定義以下基本表: 圖書(書號,書名,價格,出版社)讀者(卡號,姓名,年齡,所屬單位)借閱(書號,卡號,借閱日期)
定義主碼、外碼、和年齡、價格的取值范圍。在三個表中輸入若干記錄,注意如果輸入違反完整性約束條件的記錄系統(tǒng)有何反應(yīng)。
題目三: 利用sql建立商品信息數(shù)據(jù)庫,并定義以下基本表: 商品(編號,品名,進價,庫存,售價,廠商編號)顧客(卡號,姓名,電話,積分)
廠商(編號,廠址,名稱、電話、經(jīng)理)銷售(卡號,商品編號,數(shù)量,日期)
定義主碼、外碼、和價格、積分的取值范圍。在表中輸入若干記錄,注意如果輸入違反完整性約束條件的記錄系統(tǒng)有何反應(yīng)。
題目四: 利用sql建立圖書信息數(shù)據(jù)庫,并定義以下基本表: 圖書(書號,書名,作者編號,價格,出版社編號)作者(編號,姓名,電話)
出版社(編號,出版社名稱,地址)定義主碼、外碼、和價格的取值范圍。在三個表中輸入若干記錄,注意如果輸入違反完整性約束條件的記錄系統(tǒng)有何反應(yīng)。
題目五: 利用sql建立零件信息數(shù)據(jù)庫,并定義以下基本表: 零件(編號,名稱,顏色,生產(chǎn)車間號)車間(編號,名稱,人數(shù),主任)產(chǎn)品(編號,名稱,車間編號)
使用(產(chǎn)品編號,使用零件編號,個數(shù))
定義主碼、外碼、和人數(shù)、個數(shù)的取值范圍。在三個表中輸入若干記錄,注意如果輸入違反完整性約束條件的記錄系統(tǒng)有何反應(yīng)。
題目六: 利用sql建立藥品信息數(shù)據(jù)庫,并定義以下基本表: 藥品(編號,名稱,價格,廠商編號)處方(藥品號,數(shù)量,醫(yī)生編號)醫(yī)生(編號,姓名,科室,職稱)
定義主碼、外碼、和數(shù)量、價格的取值范圍。在三個表中輸入若干記錄,注意如果輸入違反完整性約束條件的記錄系統(tǒng)有何反應(yīng)。
題目七: 利用sql建立教材數(shù)據(jù)庫,并定義以下基本表: 學(xué)生(學(xué)號,年齡,性別,系名)教材(編號,書名,出版社編號,價格)訂購(學(xué)號,書號,數(shù)量)出版社(編號,名稱,地址)
定義主碼、外碼、和價格、數(shù)量的取值范圍。在三個表中輸入若干記錄,注意如果輸入違反完整性約束條件的記錄系統(tǒng)有何反應(yīng)。
題目八: 利用sql建立雇員信息數(shù)據(jù)庫,并定義以下基本表: 員工(編號,姓名,性別,年齡,部門編號,年薪)部門(編號,名稱,人數(shù),負責(zé)人)項目(編號,名稱,負責(zé)部門)
定義主碼、外碼、和年齡、學(xué)分、學(xué)分的取值范圍。在三個表中輸入若干記錄,注意如果輸入違反完整性約束條件的記錄系統(tǒng)有何反應(yīng)。
題目九: 利用sql建立帳戶信息數(shù)據(jù)庫,并定義以下基本表: 帳戶(編號,姓名,余額,建立日期,儲蓄所編號)儲蓄所(編號,名稱,地址,人數(shù),所屬城市)借貸(帳戶,借貸類型,金額,日期)
定義主碼、外碼、和人數(shù)、余額的取值范圍。在三個表中輸入若干記錄,注意如果輸入違反完整性約束條件的記錄系統(tǒng)有何反應(yīng)。
題目十: 利用sql建立倉庫信息數(shù)據(jù)庫,并定義以下基本表: 倉庫(編號,保管員編號,面積)
保管員(編號,姓名,年齡,電話、月薪)商品(編號,品名,倉庫編號、數(shù)量,單價)定義主碼、外碼、和年齡、面積的取值范圍。在三個表中輸入若干記錄,注意如果輸入違反完整性約束條件的記錄系統(tǒng)有何反應(yīng)。
五 實驗報告要求: 給出使用查詢分析器的步驟 2 給出建庫、建表的SQL 命令腳本 3 實驗中出現(xiàn)的問題和解決方法
第五篇:數(shù)據(jù)庫實驗指導(dǎo)書
實驗一:數(shù)據(jù)定義及更新語句練習(xí)
一、實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)數(shù)據(jù)庫和基本表的創(chuàng)建、數(shù)據(jù)的更新。
二、預(yù)習(xí)要求:實驗前復(fù)習(xí)講授過的有關(guān)創(chuàng)建數(shù)據(jù)庫、基本表的SQL語句,預(yù)習(xí)SQL Server2000環(huán)境,特別是資源管理器和查詢分析器的相關(guān)用法。
三、實驗內(nèi)容:
(一)用SQL語句建立如下mySPJ數(shù)據(jù)庫,包括S,P,J,和SPJ四個基本表(教材第二章習(xí)題5中的四個表),要求實現(xiàn)關(guān)系的三類完整性。
S(SNO,SNAME,STATUS,CITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNAME,CITY);
SPJ(SNO,PNO,JNO,QTY)
供應(yīng)商表S由供應(yīng)商代碼(SNO)、供應(yīng)商姓名(SNAME)、供應(yīng)商狀態(tài)(STATUS)、供應(yīng)商所在城市(CITY)組成。
零件表P由零件代碼(PNO)、零件名(PNAME)、顏色(COLOR)、重量(WEIGHT)組成。
工程項目表J由工程項目代碼(JNO)、工程項目名(JNAME)、工程項目所在城市(CITY)組成。
供應(yīng)情況表SPJ由供應(yīng)商代碼(SNO)、零件代碼(PNO)、工程項目代碼(JNO)、供應(yīng)數(shù)量(QTY)組成,表示某供應(yīng)商 供應(yīng)某種零件 給某工程項目的數(shù)量為QTY。
(二)分別使用插入、刪除、修改的方式更新基本表中的數(shù)據(jù)。
四、實驗方法和步驟:
(一)使用Microsoft SQL Server企業(yè)管理器和查詢分析器建立數(shù)據(jù)庫mySPJ:
1.打開“開始->程序->Microsoft SQL Server->企業(yè)管理器”;
2.在企業(yè)管理器左邊的樹標簽中依次打開“Microsoft SQL Server-> SQL Server組->(local)(Windows NT)->數(shù)據(jù)庫”,(local)(Windows NT)前的紅色標記轉(zhuǎn)化為綠色標記表明NT服務(wù)已啟動;
3.從企業(yè)管理器的“工具”菜單中選擇“SQL 查詢分析器”,打開查詢分析器后,在其窗口書寫創(chuàng)建數(shù)據(jù)庫mySPJ的SQL語句,點擊執(zhí)行按鈕(或F5鍵)執(zhí)行該SQL語句;
4.在企業(yè)管理器左邊的樹標簽中查看數(shù)據(jù)庫是否建立成功。
(二)在數(shù)據(jù)庫mySPJ中建立S,P,J,和SPJ四個基本表:
按照實驗內(nèi)容給出的基本表結(jié)構(gòu)在查詢分析器窗口中書寫SQL語句分別建立各表,并設(shè)置主鍵和外鍵約束;
(三)更新表數(shù)據(jù):
1.利用Insert 語句將習(xí)題中給出的示例記錄插入各表。
2.利用Update更新表中的記錄:
①將p表中的所有紅色零件的重量增加5。
②將spj表中所有天津供應(yīng)商的QTY屬性值減少10。用子查詢。
3.利用Delete語句刪除p表中的所有紅色零件的記錄。
4.SQL語句執(zhí)行后返回基本表查看更新后的結(jié)果,如果與期望不符,分析原因并記錄在實驗報告中。
五、思考題:
(一)在為各表設(shè)定關(guān)鍵字時彈出的頁面中有關(guān)鍵字和索引選項,試通過給基本表設(shè)定這兩個項目并說明二者的區(qū)別。
(二)在基本表中輸入數(shù)據(jù)時,注意數(shù)據(jù)與字段的數(shù)據(jù)類型和長度以及能否為空的屬性是否一致,保存時如有錯誤分析錯誤原因,及時改正并將錯誤報告寫在實驗報告中。
六、實驗報告要求:
(一)實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)數(shù)據(jù)庫和基本表的創(chuàng)建、數(shù)據(jù)的更新。
(二)實驗內(nèi)容:需要創(chuàng)建的數(shù)據(jù)庫及其四個基本表:零件表、供應(yīng)商表、工程表、供應(yīng)關(guān)系表的表結(jié)構(gòu)、創(chuàng)建過程。
(三)完成情況(附上設(shè)計的SQL語句)。
(四)實驗結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。
(五)問題及解決:首先寫出執(zhí)行語句不成功的時候系統(tǒng)報告的錯誤信息。然后分析錯誤原因,并給出解決辦法。
(六)回答思考題提出的問題,(七)實驗總結(jié):心得體會,建議等。
實驗二:簡單查詢和連接查詢
一、實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)的簡單查詢和多個數(shù)據(jù)表連接查詢。
二、預(yù)習(xí)要求:實驗前復(fù)習(xí)講授過的有關(guān)簡單查詢與多表查詢的知識,編寫相應(yīng)的SQL語句。
三、實驗內(nèi)容:
(一)完成下面的簡單查詢:
①查詢所有“天津”的供應(yīng)商明細;
②查詢所有“紅色”的14公斤以上的零件。
③查詢工程名稱中含有“廠”字的工程明細。
(二)完成下面的連接查詢:
①等值連接:求s表和j表的相同城市的等值連接。
②自然連接:查詢所有的供應(yīng)明細,要求顯示供應(yīng)商、零件和工程的名稱,并按照供應(yīng)、工程、零件排序。
③笛卡爾積:求s和p表的笛卡爾積
④左連接:求j表和spj表的左連接。
⑤右連接:求spj表和j表的右連接。
四、實驗方法和步驟:
參照實驗一中給出的使用Microsoft SQL Server企業(yè)管理器和SQL查詢分析器的方法,將實驗內(nèi)容中所要求的查詢項目依次用SQL語句實現(xiàn),并記錄下執(zhí)行結(jié)果。
五、思考題:
查看實驗內(nèi)容2中左連接和右連接的執(zhí)行結(jié)果是否一致,為什么?
六、實驗報告要求:
(一)實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)數(shù)據(jù)庫和基本表的創(chuàng)建、數(shù)據(jù)的更新。
(二)實驗內(nèi)容:需要創(chuàng)建的數(shù)據(jù)庫及其四個基本表:零件表、供應(yīng)商表、工程表、供應(yīng)關(guān)系表的表結(jié)構(gòu)、創(chuàng)建過程。
(三)完成情況(附上設(shè)計的SQL語句)。
(四)實驗結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。
(五)問題及解決:首先寫出執(zhí)行語句不成功的時候系統(tǒng)報告的錯誤信息。然后分析錯誤原因,并給出解決辦法。
(六)回答思考題提出的問題,實驗總結(jié):心得體會,建議等。實驗三:分組查詢和嵌套查詢
一、實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)多個數(shù)據(jù)表的分組查詢和嵌套查詢。
二、預(yù)習(xí)要求:實驗前復(fù)習(xí)講授過的有關(guān)分組查詢和嵌套查詢的知識,編寫相應(yīng)的SQL語句。
三、實驗內(nèi)容:
(一)分組查詢:
1.求各種顏色零件的平均重量。
2.求北京供應(yīng)商和天津供應(yīng)商的總個數(shù)。
3.求各供應(yīng)商供應(yīng)的零件總數(shù)。
4.求各供應(yīng)商供應(yīng)給各工程的零件總數(shù)。
5.求使用了100個以上P1零件的工程名稱。
6.求各工程使用的各城市供應(yīng)的零件總數(shù)。
(二)嵌套查詢:
1.in連接謂詞查詢:
① 查詢沒有使用天津供應(yīng)商供應(yīng)的紅色零件的工程名稱。
② 查詢供應(yīng)了1000個以上零件的供應(yīng)商名稱。(having)
2.比較運算符:求重量大于所有零件平均重量的零件名稱。
3.Exists連接謂詞:
① 查詢供應(yīng)J1的所有的零件都是紅色的供應(yīng)商名稱。
② 至少用了供應(yīng)商S1所供應(yīng)的全部零件的工程號JNO。
四、實驗方法和步驟:
參照實驗一中給出的使用Microsoft SQL Server企業(yè)管理器和SQL查詢分析器的方法,將實驗內(nèi)容中所要求的查詢項目依次用SQL語句實現(xiàn),并記錄下執(zhí)行結(jié)果。
五、思考題:
(一)嵌套查詢中的in連接謂詞查詢,關(guān)鍵字in可以直接用any代替么?什么情況下in和any可以互相代替?
(二)嵌套查詢中的內(nèi)查詢?yōu)橥獠樵兎祷氐膬?nèi)容是什么?是表達式?視圖?還是物理數(shù)據(jù)集合?
六、實驗報告要求:
(一)實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)數(shù)據(jù)庫和基本表的創(chuàng)建、數(shù)據(jù)的更新。
(二)實驗內(nèi)容:需要創(chuàng)建的數(shù)據(jù)庫及其四個基本表:零件表、供應(yīng)商表、工程表、供應(yīng)關(guān)系表的表結(jié)構(gòu)、創(chuàng)建過程。
(三)完成情況(附上設(shè)計的SQL語句)。
(四)實驗結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。
(五)問題及解決:首先寫出執(zhí)行語句不成功的時候系統(tǒng)報告的錯誤信息。然后分析錯誤原因,并給出解決辦法。
(六)回答思考題提出的問題,(七)實驗總結(jié):心得體會,建議等。
實驗四:視圖操作和數(shù)據(jù)控制
一、實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)視圖操作和數(shù)據(jù)控制。
二、預(yù)習(xí)要求:實驗前復(fù)習(xí)講授過的有關(guān)視圖操作和數(shù)據(jù)控制的知識,編寫相應(yīng)的SQL語句。
三、實驗內(nèi)容:
(一)定義如下視圖:
①查詢北京的供應(yīng)商的編號、名稱和城市。
②查詢S1供應(yīng)商的所有供應(yīng)明細。
③查詢各工程名稱使用的各種顏色零件的個數(shù)。
查詢上面定義的視圖。
(二)數(shù)據(jù)控制:
①使用GRANT把對S表查詢的權(quán)利授予WangLi。
②使用GRANT把對P表查詢、插入、修改、刪除的權(quán)利授予LiMing。
③使用REVOKE把LiMing對P表插入、刪除的權(quán)利回收。
四、實驗方法和步驟:
參照實驗一中給出的使用Microsoft SQL Server企業(yè)管理器和SQL查詢分析器的方法,將實驗內(nèi)容中所要求的查詢項目依次用SQL語句實現(xiàn),并記錄下執(zhí)行結(jié)果。
五、思考題:
實驗內(nèi)容中的哪些視圖可以用來更新記錄?
六、實驗報告要求:
(一)實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)數(shù)據(jù)庫和基本表的創(chuàng)建、數(shù)據(jù)的更新。
(二)實驗內(nèi)容:需要創(chuàng)建的數(shù)據(jù)庫及其四個基本表:零件表、供應(yīng)商表、工程表、供應(yīng)關(guān)系表的表結(jié)構(gòu)、創(chuàng)建過程。
(三)完成情況(附上設(shè)計的SQL語句)。
(四)實驗結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。
(五)問題及解決:首先寫出執(zhí)行語句不成功的時候系統(tǒng)報告的錯誤信息。然后分析錯誤原因,并給出解決辦法。
(六)回答思考題提出的問題。
(七)實驗總結(jié):心得體會,建議等。
實驗五:觸發(fā)器和存儲過程
一、實驗?zāi)康模豪斫庥|發(fā)器和存儲過程的含義,掌握用SQL語句實現(xiàn)觸發(fā)器和存儲過程的編寫,并初步掌握什么情況下使用事務(wù)。
二、預(yù)習(xí)要求:存儲過程和觸發(fā)器的相關(guān)概念,事務(wù)的相關(guān)概念,編寫相應(yīng)的SQL語句。
三、實驗內(nèi)容:
(一)為S表的刪除操作定義一個觸發(fā)器,在刪除一個供應(yīng)商記錄時,將這個供應(yīng)商的所有供應(yīng)情況從spj表中刪除。
(二)有一個小型的圖書管理數(shù)據(jù)庫,包含的表為:
bookstore(bookid,bookname,bookauthor,purchasedate,state);--圖書庫存表
borrowcard(cardid,ownername);--借書證表
borrowlog(cardid,bookid,borrowdate,returndate);--借書記錄表
寫一個存儲過程,實現(xiàn)借書操作,要求有事務(wù)處理。(1)讀者借書,要先設(shè)置書籍不在庫標志state(借出),然后增加借書記錄,在同一事務(wù)中完成。(2)要求在事務(wù)執(zhí)行過程中引入錯誤觸發(fā)事件,以此體會事務(wù)的錯誤保護機制和事務(wù)編程的作用。
四、實驗方法和步驟:
(一)在查詢分析器中編寫實現(xiàn)上述功能的觸發(fā)器,參考Create Trigger語法。
(二)參考CREATE PROCEDURE語句。在事務(wù)執(zhí)行過程中引入錯誤觸發(fā)事件,可以考慮在增加借書記錄時違反實體完整性或參照完整性,以此體會事務(wù)的錯誤保護機制。
五、思考題:
如何通過系統(tǒng)的設(shè)置實現(xiàn)類似的功能,而不需觸發(fā)器?
六、實驗報告要求:
(一)實驗?zāi)康模菏炀氄莆沼肧QL語句實現(xiàn)數(shù)據(jù)庫和基本表的創(chuàng)建、數(shù)據(jù)的更新。
(二)實驗內(nèi)容:需要創(chuàng)建的數(shù)據(jù)庫及其四個基本表:零件表、供應(yīng)商表、工程表、供應(yīng)關(guān)系表的表結(jié)構(gòu)、創(chuàng)建過程。
(三)完成情況(附上設(shè)計的SQL語句)。
(四)實驗結(jié)果:如果是查詢語句,將查詢結(jié)果記錄列出來,其它可以不寫。
(五)問題及解決:首先寫出執(zhí)行語句不成功的時候系統(tǒng)報告的錯誤信息。然后分析錯誤原因,并給出解決辦法。
(六)回答思考題提出的問題,實驗總結(jié):心得體會,建議等。