數(shù)據(jù)庫課程設(shè)計論文圖書管理系統(tǒng)_第1頁
數(shù)據(jù)庫課程設(shè)計論文圖書管理系統(tǒng)_第2頁
數(shù)據(jù)庫課程設(shè)計論文圖書管理系統(tǒng)_第3頁
數(shù)據(jù)庫課程設(shè)計論文圖書管理系統(tǒng)_第4頁
數(shù)據(jù)庫課程設(shè)計論文圖書管理系統(tǒng)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄目錄一、題目(問題)描述和要求0二、需求分析階段02.1 用戶對系統(tǒng)的要求 12.11 管理員12.12 讀者12.2 數(shù)據(jù)流圖 32.3 數(shù)據(jù)字典 52.4安全性需求 72.5一致性需求 82.6完整性需求 8三、概念結(jié)構(gòu)設(shè)計83.1 把所有局部圖綜合成一個系統(tǒng)的總圖124.1 讀者關(guān)系模型144.2 管理員關(guān)系模型144.3 圖書關(guān)系模型14五、數(shù)據(jù)庫物理設(shè)計階段 145.1 確定數(shù)據(jù)庫的物理結(jié)構(gòu)145.2 各個管理系統(tǒng)功能圖155.2.1、讀者管理系統(tǒng) 155.2.3、管理員系統(tǒng) 16六 數(shù)據(jù)庫實施階段6.3 編制與調(diào)試應用程序 186.4 數(shù)據(jù)庫試運行 18七、數(shù)據(jù)庫的運行與維護

2、187.1 系統(tǒng)集成效果187.2 調(diào)試過程中遇到的問題 187.3 總結(jié)體會 18八系統(tǒng)的部分界面的截圖一、題目(問題)描述和要求一、題目(問題)描述和要求圖書管理系統(tǒng)是學校、政府、企業(yè)管理機制中的重要組成部分,通過對我校圖書管理系統(tǒng)的查詢和對圖書管理員的咨詢,開發(fā)了圖書管理系統(tǒng)。系統(tǒng)中解決了圖書管理事務中的圖書入庫、圖書入庫、圖書檢索、借還圖書等情況的問題。系統(tǒng)中包含七個功能模塊:系統(tǒng)登錄、圖書信息查詢、讀者信息查詢、管理員對系統(tǒng)的維護、圖書入出庫,借還圖書和其他。系統(tǒng)使有 sybase 公司推出的 pb 進行前端開發(fā),pb 是基于 windows 的面向?qū)ο蟮目梢暬_發(fā)工具。它采用了當今

3、軟件設(shè)計的最新技術(shù),具有開發(fā)效率高、設(shè)計靈活、生成的軟件界面友好美觀等特點。系統(tǒng)中通過 pb 和數(shù)據(jù)庫進行無縫連接,大量應用了 pb 中的控件和觸發(fā)事件。后端的開發(fā)工具是 microsoft sql server 2005,整個數(shù)據(jù)庫都是相互關(guān)聯(lián)的,使數(shù)據(jù)庫具有較高的完整性,一致性和安全性。二、需求分析階段二、需求分析階段圖書綜合信息管理系統(tǒng)的最終讀者包括管理員,讀者。從兩個不同的讀者視角出發(fā)管理和查詢圖書信息系統(tǒng)。2.12.1 讀者對系統(tǒng)的要求讀者對系統(tǒng)的要求2.112.11 管理員管理員(1)信息需求。管理員能夠查詢讀者借書有關(guān)的全部信息,包括讀者的基本信息,讀者借書還書以及違規(guī)現(xiàn)象的所有

4、信息,還應能夠查詢當前圖書信息。(2)處理需求。管理員應能夠查詢修改讀者的基本信息; 查詢修改圖書信息包括圖書的入庫出庫的更新。(3)安全性與完整性要求安全性要求:系統(tǒng)應設(shè)置訪問讀者的標識以鑒別是否是合法讀者及其密碼。系統(tǒng)應對不同的數(shù)據(jù)設(shè)置不同的訪問級別,限制訪問讀者可查詢和處理完整性要求:各種信息記錄的完整性,信息記錄不能為空各種數(shù)據(jù)間相互聯(lián)系的正確性相同的數(shù)據(jù)在不同記錄中的一致性2.122.12 讀者讀者(1)信息需求。查詢本人基本信息、圖書的基本信息;根據(jù)檢索類型檢索圖書信息。(2)處理需求:借書、還書。(3)安全性與完整性要求安全性要求:讀者擁有讀者名及其密碼。僅僅可以查詢本人基本信息

5、和借還圖書完整性要求:各種信息記錄的完整性,信息記錄不能為空;各種數(shù)據(jù)間相互聯(lián)系的正確性;相同的數(shù)據(jù)在不同記錄中的一致性2.22.2 數(shù)據(jù)流圖數(shù)據(jù)流圖、管理員數(shù)據(jù)流圖:、管理員數(shù)據(jù)流圖:管理員查詢增刪改讀者信息,借還書信息以及罰款信息讀者信息讀者表查詢增刪改讀者信息讀者表查詢增刪改圖書表,圖書類別表圖書,圖書狀態(tài)表圖書信息圖書信息、讀者數(shù)據(jù)流圖數(shù)、讀者數(shù)據(jù)流圖數(shù)讀者查詢讀者信息讀者表查詢圖書表讀者信息圖書信息圖書信息借還書圖書信息圖書表圖書信息、總數(shù)據(jù)流圖、總數(shù)據(jù)流圖管理員查詢增刪改讀者信息讀者表借書表,罰款表查詢增刪改圖書表圖書信息圖書信息查詢讀者查詢查詢讀者查詢書借還書,以及罰款信息查詢讀

6、者信息2.32.3 數(shù)據(jù)字典數(shù)據(jù)字典1)數(shù)據(jù)項:book 表中數(shù)據(jù)項列名:book別名:圖書編號描述:唯一標識每一本圖書的數(shù)字編號數(shù)據(jù)類型:varchar長度:20列名:kindname別名:圖書類別描述:圖書的所屬的一種類別數(shù)據(jù)類型:varchar長度:20其他數(shù)據(jù)項的定義同理。其他數(shù)據(jù)項的定義同理。(2)數(shù)據(jù)結(jié)構(gòu):名稱:讀者檔案描述:記錄讀者的個人信息及借還書情況。定義:讀者信息=讀者編號+讀者姓名+密碼+允許借書量+已借書量+性別+工作單位+住址+電話其他數(shù)據(jù)結(jié)構(gòu)的描述同理。(3 3)數(shù)據(jù)流:)數(shù)據(jù)流:數(shù)據(jù)流名:圖書信息數(shù)據(jù)流說明:圖書信息數(shù)據(jù)結(jié)構(gòu)在系統(tǒng)內(nèi)的流向數(shù)據(jù)流來源:管理員接收事務

7、數(shù)據(jù)流向:管理員處理事務(4 4)數(shù)據(jù)存儲:)數(shù)據(jù)存儲:數(shù)據(jù)存儲名:圖書信息說明:圖書信息存儲,作為備用信息保存編號:最為圖順唯一標識,有管理員編輯輸入的數(shù)據(jù)流:圖書信息數(shù)據(jù)流,來自圖書輸出的數(shù)據(jù)流:圖書檔案,用于管理員與讀者數(shù)據(jù)結(jié)構(gòu):圖書檔案存取頻度:每天50 次,查詢300 次存取方式:檢索與更新(5 5)處理過程:)處理過程:處理過程名:管理員對圖書的登記處理說明:圖書的入庫,需要對圖書進行登記,存檔輸入:圖書入館輸出:圖書的各種信息處理:圖書登記過程就是對圖書的登記,處理頻度為每月一次,每當有新書入庫時,都需要對其進行登記存檔便于以后的處2.42.4安全性需求安全性需求: 考慮到不同讀

8、者的權(quán)限不同,第一次進入該系統(tǒng)時系統(tǒng)會根據(jù)你輸?shù)米x者名判斷你是管理員還是讀者還是讀者,進入數(shù)據(jù)庫主窗口中。這樣系統(tǒng)就可賦予不同讀者不同的權(quán)限。每位讀者根據(jù)自己的身份不同,可以進行不同的操作。對于讀者來說當進行不屬于自己權(quán)限允許的步驟時無法打開,因為進入時不能進行的操作就已經(jīng)變?yōu)榛疑珶o法執(zhí)行。管理員有權(quán)力行使所有的管理功能,讀者只能進行一般的查詢及借還書。例如讀者無權(quán)增刪圖書信息,無權(quán)修改其他讀者相應信息。 2.52.5一致性需求一致性需求: 在圖書管理系統(tǒng)相關(guān)的表之間,有較強的關(guān)聯(lián)性,為了實現(xiàn)一致性的需求,我們在各個表之間建立起了一致性約束。在此主要以實體完整性約束、參照完整性約束為主描述和說

9、明,因為這兩種完整性約束是關(guān)系數(shù)據(jù)庫最重要的完整性約束。兩表中任何一個的改變都將影響對方在系統(tǒng)中的信息,顧而在添加及刪除的時候作用十分重要,減少信息的被破壞和不正確信息的錄入。另外就是數(shù)據(jù)類型的約束,防止不匹配數(shù)據(jù)的錄入造成的信息失真。2.62.6完整性需求完整性需求: 根據(jù)圖書管理系統(tǒng)的要求,為保持數(shù)據(jù)的完整性,采用了數(shù)據(jù)庫的事務機制,防止出現(xiàn)操作故障。 三、三、概念結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)設(shè)計圖書信息管理系統(tǒng)中的實體有管理員、圖書,讀者讀者姓名性別密碼允許借書量已借書量編號學生實體的屬性聯(lián)系電話圖書書名作者出版社登記日期isbn編號圖書實體的屬性關(guān)鍵詞管理員密碼姓名性別出生日期權(quán)限登錄名圖書實體的

10、屬性3.13.1各個實體間關(guān)系(1) 讀者可以借書還書,可以查詢圖書信息和自己本人信息。(2) 管理員可以查詢圖書信息和讀者信息以及讀者借還書信息;還可以修改讀者,圖書信息。還可以維護系統(tǒng)(包括圖書信息維護,圖書狀態(tài)維護,讀者信息維護,圖書類別維護)e-r 圖:讀者管理員管理借閱圖書歸還管理借閱日期還書日期罰款1n1n11nn四、邏輯結(jié)構(gòu)設(shè)計本系統(tǒng)的數(shù)據(jù)庫管理系統(tǒng)使用 sql server 2005.下面將概念設(shè)計的 e-r 圖轉(zhuǎn)換成關(guān)系模型。關(guān)系的候選碼用下劃線標出。讀者關(guān)系模型4.1 讀者關(guān)系模型讀者(讀者編號,姓名,性別,密碼,允許借書量,已借書量,聯(lián)系電話,登錄名)此為讀者實體對應的關(guān)

11、系模式。4.2 管理員關(guān)系模型管理員(登錄名,密碼,姓名,性別,出生日期,權(quán)限)此為管理員實體對應的關(guān)系模式。4.3 圖書關(guān)系模型圖書(編號,書名,作者,出版社,登記日期,isbn,關(guān)鍵詞,登錄名,借閱日期,還書日期,罰款)此為圖書實體對應的關(guān)系模式。五、數(shù)據(jù)庫物理設(shè)計階段5.1 確定數(shù)據(jù)庫的物理結(jié)構(gòu):在整個系統(tǒng)中總共建了 9 張表: book 表主要用來存儲圖書信息字段名字段中文名數(shù)據(jù)類型是否為空book圖書編號varchar(20)noisbnisbnvarchar(50)nob_name圖書名稱varchar(40)nokindnumber圖書類別varchar(20) nostaten

12、umber圖書狀態(tài)varchar(20) nob_author圖書作者varchar(20)yesb_print出版社varchar(50)yesb_kw關(guān)鍵詞varchar(40)yesb_wt登記日期smalldatetimeyesreader 表主要存儲讀者的個人信息及借還書記錄字段名字段中文名數(shù)據(jù)類型是否為空readernumber讀者編號varchar(20)nor_name讀者姓名varchar(50)nor_password密碼varchar(50)nor_pbn允許借書量intnor_abn已借書量intnor_sex性別char(2)yesr_wp工作單位varchar(50

13、)yesr_address住址varchar(50)yesr_phone電話varchar(20)yeslibririan 表主要記錄圖書管理員的信息librarian 表字段名字段中文名數(shù)據(jù)類型是否為空l_login登錄名varchar(10)nol_password密碼varchar(10)nol_grant權(quán)限tinyintnol_name姓名varchar(50)nol_sex性別char(2)yesl_bt出生日期smalldatetimeyeskind 表是記錄區(qū)分圖書種類kind 表字段名字段中文名數(shù)據(jù)類型是否為空kindnumber類別編號varchar(20)nok_valu

14、e值varchar(10)nostate 表表現(xiàn)的是圖書狀態(tài)state 表字段名字段中文名數(shù)據(jù)類型是否為空statenumber狀態(tài)編號varchar(20)nos_value值varchar(10)nobookborrow 表字段名字段中文名數(shù)據(jù)類型是否為空book圖書編號varchar(20)noreadernumber讀者編號varchar(20)nob_name圖書名稱varchar(20)nor_bt借書日期datetimenor_rt應還日期datetimenofine 表記錄讀者的罰款明細fine 表字段名字段中文名數(shù)據(jù)類型是否為空f_number罰款編號varchar(20)n

15、obook圖書編號varchar(20)yesreaderrnumber瀆者編號varchar(20)yesf_datetime罰款日期smalldatetimeyesf_money應罰金額moneyyesinput 表字段名字段中文名數(shù)據(jù)類型是否為空book圖書編號varchar(20)nob_name圖書名稱varchar(40)yesb_print出版社varchar(20)yeskindnumber圖書類別varchar(20)yesincount入庫數(shù)量intyesintime入庫時間datetimeyesoutput 表字段名字段中文名數(shù)據(jù)類型是否為空book圖書編號varchar

16、(20)nob_name圖書名稱varchar(40)yesb_print出版社varchar(20)yeskindnumber圖書類別varchar(20)yesoutcount出庫數(shù)量intyesouttime出庫時間datetimeyes數(shù)據(jù)庫涉及到的主鍵,外鍵,索引表建立主鍵表名主鍵名主鍵字段bookpk_bookbook(圖書編號)readerpk_readernumberreadernumber(讀者編號)librarianpk_loginlogin(登錄名)statepk_statenumberstatenumber(狀態(tài)編號)kindpk_kindnumberkindnumbe

17、r(類別編號)finepk_f_numberf_number(罰款編號)建立外鍵表名外鍵名稱字段名對應表bookfk_book_statenumberstatenumberstatebookfk_book_kindnumberkindernumberkindbookfk_book_readernumberreadernumberreaderfinefk_fine_bookbookbookfinefk_fine_readernumberreadernumberreaderinputfk_input_kindnumberkindernumberkindoutputfk_output_kindnum

18、berkindernumberkind建立索引表名索引名字段名唯一索引booki_book_bookbook是booki_book_isbnisbn否booki_book_b_nameb_name否booki_book_readermunberreadernumber否booki_book-kindnumberkindnumber否5.3 各個管理系統(tǒng)功能圖5.2.15.2.1、讀者管理系統(tǒng)、讀者管理系統(tǒng)讀者可以進行圖書的檢索,可以按圖書編號查詢圖書信息查看自己需要的書目的相關(guān)信息,可以查詢自己的信息和借書情況,可以借閱和歸還相關(guān)圖書,當自己的圖書過期時會提示讓讀者罰款等等讀者 系 統(tǒng)查詢讀者

19、信息查詢圖書信息借閱圖書歸還圖書按圖書編號檢索按讀者編號檢索5.2.2、管理員系統(tǒng)讀者可以進行圖書的檢索查看圖書信息庫存從而確定是否圖書入庫,查看圖書借閱記錄統(tǒng)計各類書的借閱情況從而確定該書是否屬于冗余書目來確定出庫。管理讀者信息系統(tǒng)讀者退學了及時刪除讀者信息取消其操作權(quán)限,讀者入學了及時插入讀者信息增加其操作權(quán)限。管理讀者信息系統(tǒng)讀者離職了及時刪除讀者信息取消其操作權(quán)限,及時對圖書的類別,狀態(tài),進行維護管 理 員 系 統(tǒng)查詢讀者信息按圖書編號按讀者編號插入圖書修改圖書信息保存圖書修改圖書查詢圖書信息系統(tǒng)維護圖書類別圖書信息讀者信息圖書狀態(tài)刪除圖書六、數(shù)據(jù)庫的實施階段六、數(shù)據(jù)庫的實施階段6.1

20、6.1 編制與調(diào)試應用程序編制與調(diào)試應用程序6.1.1 數(shù)據(jù)庫的模塊:七個功能模塊:系統(tǒng)登錄、圖書信息查詢、讀者信息查詢、管理員對系統(tǒng)的維護、圖書入出庫,借還圖書和其他。6.1.1.16.1.1.1 系統(tǒng)登錄模塊系統(tǒng)登錄模塊:在登錄模塊中我們實現(xiàn)了一些權(quán)限的約束,只有在授權(quán)范圍內(nèi)的用戶才有權(quán)利登錄系統(tǒng),其他情況系統(tǒng)自動報錯,而且在用戶輸入錯誤信息次數(shù)超過 3 次,則會退出登錄系統(tǒng),防止了一些非法用戶登錄string correct_pswdif sle_1.text= then/pop a message boxmessagebox(信息提示,用戶名不能為空)/sle_1 get the fo

21、cussle_1.setfocus()elseif sle_2.text= then/pop a message boxmessagebox(信息提示,密碼不能為空)/sle_2 get the focussle_2.setfocus()elseg_input_time=g_input_time+1g_user=sle_1.textg_pwd=sle_2.text/取出數(shù)據(jù)庫用戶口令表格中對應用戶的口令select r_password into:correct_pswdfrom readerwhere readernumber=:g_user;/將數(shù)據(jù)庫中保存的口令和用戶輸入的口令作比較if

22、 g_pwd=correct_pswd thenopen(w_parent)close(w_reader)elseif g_input_time3 thenmessagebox(警告,輸入用戶口令的次數(shù)太多!)close(w_reader)elsemessagebox(警告,輸入的用戶口令有誤,請重新輸入)end ifend ifend if6 61.1.21.1.2 圖書信息查詢模塊圖書信息查詢模塊:圖書信息查詢模塊主要實現(xiàn)了根據(jù)圖書的編號檢索圖書的信息,主要實現(xiàn)的代碼:string ll_numberstring isbn,name,author,keywordll_number=trim

23、(em_1.text)isbn=sle_1.textname=sle_2.textauthor=sle_3.textkeyword=sle_4.textdw_3.retrieve(ll_number)if dw_3.rowcount()=0 thenmessagebox(錯誤! ,輸入的用戶編號或密碼錯誤!)dw_3.insertrow(0)returnend ifopen 事件中:sqlca.autocommit=truedw_1.retrieve(ll_number)dw_3.settransobject(sqlca)dw_3.insertrow(0)dw_1.settransobject

24、(sqlca)dw_3.retrieve()/dw_1.retrieve()6.1.1.36.1.1.3 讀者信息查詢模塊讀者信息查詢模塊:讀者信息查詢模塊主要是通過調(diào)用后臺的存儲過程來實現(xiàn)的,代碼如下:use librarysystemgocreate procedure getdetailsnumber varchar(20)asselect * from readerwhere readernumber=number6.1.1.46.1.1.4 讀者借還書模塊讀者借還書模塊:讀者借還書模塊主要實現(xiàn)的是先根據(jù)讀書的圖書的編號先檢索出圖書信息,然后讀者輸入自己的編號查看自己的借書記錄,讀者在

25、看見自己的允許借書量不為零時,此時讀者借書,其中借書按鈕的代碼如下:借書代碼:string bmc,bbh,dbhinteger rk,pkdbh=trim(em_2.text);bbh=trim(em_1.text);select b_name into:bmcfrom bookwhere book=:bbh;insert borrowbook (book,bookname,readernumber) values(:bbh,:bmc,:dbh); select r_pbn into:pk from reader where readernumber=:dbh; select r_abn i

26、nto:rk from reader where readernumber=:dbh;/ sle_1.text=string(pk)/ sle_2.text=string(rk) pk = pk - 1 rk = rk + 1update reader set r_pbn=:pk , r_abn=:rk where readernumber=:dbh;messagebox(提示,借閱成功!)/end if在圖書還書時,讀者在輸入圖書的編號后,會檢索出圖書借閱表的信息,顯示用戶歸還的時間是否過期,如果過期讀者不能歸還圖書,必須在交完罰款單后才能借書,這樣就實現(xiàn)了對用戶的約束,其中部分代碼如下:還

27、書按鈕代碼:string bbh,dbhinteger rk,pkdbh=trim(em_2.text);bbh=trim(em_1.text);delete from borrowbook where book=:dbh; select r_pbn into:pk from reader where readernumber=:bbh; select r_abn into:rk from reader where readernumber=:bbh; pk=pk + 1 rk=rk - 1update reader set r_pbn=:pk , r_abn=:rk where reader

28、number=:bbh; if sqlca.sqlcode0 then messagebox(!,!)elsemessagebox(提示,還書成功!)end if罰款按鈕:確認罰款:date fk,yhstring number,testdecimal je,jenewinteger jh;fk=today()test=trim(em_1.text)select readernumber into :number from fine;select rt into:yh from borrowbookwhere readernumber=:test;jh=(year(fk)-year(yh)*3

29、65+(month(fk)-month(yh)*30+(day(fk)-day(yh)*1if fkyh thenje=jh*0.5elsemessagebox(錯誤!,無需罰款!)end if6.1.1.46.1.1.4 圖書出入庫模塊:圖書出入庫模塊:圖書出入庫模塊是通過增加圖書和刪除圖書的記錄實現(xiàn)的,部分代碼如下:增加記錄:圖書入庫:dw_1.scrolltorow(dw_1.insertrow(0)dw_1.setfocus()dw_1.setcolumn(1)messagebox(提示!,入庫成功!)cb_3.enabled=falsecb_4.enabled=false6.1.1.

30、56.1.1.5 系統(tǒng)維護模塊:系統(tǒng)維護模塊:在系統(tǒng)維護模塊中,管理員通過了對讀者信息的維護,圖書信息的維護,圖書類別的維護,圖書狀態(tài)的維護,來實現(xiàn)對 信息的修改,讀者信息的修改,圖書類別以及圖書狀態(tài)的修改在圖書類別的維護中,如果輸入的圖書類別的編號不滿足所定義的字符長度,則系統(tǒng)報錯,這主要是調(diào)用了觸發(fā)器來實現(xiàn):觸發(fā)器代碼如下:use librarysystemgocreate procedure getdetailsnumber varchar(20)asselect * from readerwhere readernumber=number6.1.1.66.1.1.6:其他模塊:其他模塊:該模塊包括關(guān)于和退出兩個界面,關(guān)于主要是這個系統(tǒng)版權(quán)所有和開發(fā)信息,退出就是退出該界面說明:說明:1 定義 reader 表的過程中,對性別字段使用了 check 約束:在 c

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論