《數(shù)據(jù)庫課程設(shè)計》任務(wù)與指導(dǎo)手冊_第1頁
《數(shù)據(jù)庫課程設(shè)計》任務(wù)與指導(dǎo)手冊_第2頁
《數(shù)據(jù)庫課程設(shè)計》任務(wù)與指導(dǎo)手冊_第3頁
《數(shù)據(jù)庫課程設(shè)計》任務(wù)與指導(dǎo)手冊_第4頁
《數(shù)據(jù)庫課程設(shè)計》任務(wù)與指導(dǎo)手冊_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、長江大學(xué) 數(shù)據(jù)庫課程設(shè)計任務(wù)書?數(shù)據(jù)庫課程設(shè)計?任務(wù)書1. 任務(wù)與要求(1) 先修課程:?數(shù)據(jù)庫原理及應(yīng)用?,?面向?qū)ο蟪绦蛟O(shè)計C#?、ASP.NET或JAVA等。(2) 課程設(shè)計題目:?圖書管理系統(tǒng)?假設(shè)自選題目,那么需在課程設(shè)計第一天上報題目名稱,以及開發(fā)工具和數(shù)據(jù)庫。(3) 時間:2周,在?數(shù)據(jù)庫原理及應(yīng)用?課程結(jié)束后進行,建議提前58周開始準(zhǔn)備。(4) 開發(fā)工具和環(huán)境開發(fā)工具:VC、VB、C#、ASP.Net、Java、Delphi等任選。數(shù) 據(jù) 庫: SQL Server、Oracle、DB2、Sybase等任選。應(yīng)用程序:Windows界面程序C/S,或Web界面程序B/S。(5)

2、 設(shè)計報告正文字?jǐn)?shù)不少于5千字,報告附錄應(yīng)包括主要源代碼。要求層次清楚、整潔標(biāo)準(zhǔn),不得相互抄襲,凡正文內(nèi)容有整段相同者一律以作弊論處。明確課程設(shè)計的目的和重要性,認(rèn)真領(lǐng)會課程設(shè)計的題目,讀懂課程設(shè)計指導(dǎo)書的要求,學(xué)會設(shè)計的根本方法與步驟,積極認(rèn)真地做好準(zhǔn)備工作。課程設(shè)計中,學(xué)會應(yīng)用理論知識,收集、歸納相關(guān)資料,以及解決實際問題的方法。嚴(yán)格要求自己,自信但不固執(zhí),獨立完成課程設(shè)計任務(wù),善于接受教師的指導(dǎo)和聽取同學(xué)的意見,有意識地樹立嚴(yán)謹(jǐn)?shù)目茖W(xué)作風(fēng),要獨立思考,刻苦鉆研,勇于創(chuàng)新,按時完成課程設(shè)計任務(wù)。2. 考勤、考核與成績(1) 嚴(yán)格考勤制度,每次上機都要記錄,學(xué)生有事必須請假??记谟涗浻绊懽罱K

3、成績。(2) 因?qū)嶒炇噎h(huán)境不能滿足課題要求的,可以申請在實驗室外進行設(shè)計工作。(3) 在課程設(shè)計的最后一次上機之前,必須向老師申請考核,考核時要求演示程序并答復(fù)老師提出的問題。(4) 最終成績以考核成績?yōu)橹?,考核成績?0%以上。(5) 課程設(shè)計完成后的一周內(nèi)提交設(shè)計報告的Word電子文檔和打印件,以及程序源代碼文件含解決方案文件和工程文件、數(shù)據(jù)庫腳本文件和數(shù)據(jù)庫文件。3. 設(shè)計報告1要求采用統(tǒng)一格式的報告封面。2目錄,要求目錄層次結(jié)構(gòu)清晰、合理。3正文,要求包括概況、系統(tǒng)分析與設(shè)計、系統(tǒng)實現(xiàn)、總結(jié)、參考文獻等方面內(nèi)容。系統(tǒng)分析與設(shè)計可包括:系統(tǒng)功能分析、概念模型、數(shù)據(jù)表結(jié)構(gòu)、三層架構(gòu)、類的設(shè)

4、計等。系統(tǒng)實現(xiàn)可包括:數(shù)據(jù)庫實現(xiàn)SQL腳本、程序界面、界面操作、關(guān)鍵技術(shù)及實現(xiàn)代碼、調(diào)試中遇到的問題等??偨Y(jié)可包括:結(jié)論已完成功能、涉及的主要技術(shù)、下一步工作安排、收獲與體會等。4附錄,要求包括數(shù)據(jù)庫對象含存儲過程等的SQL腳本代碼,以及主要源程序代碼。2/48?圖書管理系統(tǒng)?C# 設(shè)計指導(dǎo)書 V2.02021.8.1 9.20 LSH?圖書管理系統(tǒng)?設(shè)計指導(dǎo)書1. 設(shè)計題目圖書管理系統(tǒng)2. 設(shè)計目的通過對圖書管理系統(tǒng)的系統(tǒng)分析、系統(tǒng)設(shè)計、編碼和調(diào)試等工作的實踐,熟悉管理信息系統(tǒng)的開發(fā)過程、設(shè)計方法及相關(guān)編程技術(shù),熟練掌握數(shù)據(jù)庫設(shè)計的根本理論及方法。3. 設(shè)計任務(wù)要求完成一個具有一定實用價值的

5、圖書管理系統(tǒng),主要任務(wù)包括: 在Microsoft SQL Server 2000/2005/2021環(huán)境下建立圖書管理系統(tǒng)所使用的數(shù)據(jù)庫,利用企業(yè)管理器或查詢分析器建立各種數(shù)據(jù)庫對象,包括:數(shù)據(jù)表、視圖、約束、存儲過程和觸發(fā)器等; 掌握ADO.NET編程技術(shù),對MS SQL Server數(shù)據(jù)庫進行連接和操縱; 掌握使用C#語言開發(fā)一個數(shù)據(jù)庫應(yīng)用系統(tǒng)的根本方法和步驟,熟悉一些根底功能的實現(xiàn)方法,如:數(shù)據(jù)維護插刪改等操作,數(shù)據(jù)查詢、瀏覽和Excel導(dǎo)出,統(tǒng)計與報表,用戶登錄和權(quán)限管理等。 了解C/S或B/S應(yīng)用程序的多層體系結(jié)構(gòu)及三層架構(gòu)方案設(shè)計思想,了解迭代式開發(fā),熟悉面向?qū)ο笤O(shè)計方法及其分析

6、與設(shè)計過程,了解UML文檔及其開發(fā)過程中的作用。指導(dǎo)書說明:1開發(fā)環(huán)境與目標(biāo):微軟 C#、SQL Server,基于C/S結(jié)構(gòu)的Windows應(yīng)用程序。2僅給出了局部功能的設(shè)計與實現(xiàn),以說明面向?qū)ο蠓治雠c設(shè)計的一般方法以及關(guān)鍵編程技術(shù),其它功能局部需要自己完成。3為減少篇幅和降低閱讀門檻,沒有追求使用標(biāo)準(zhǔn)的UML設(shè)計文檔和術(shù)語。4. 設(shè)計準(zhǔn)備4.1 系統(tǒng)準(zhǔn)備操作系統(tǒng):Windows xp/7/8數(shù)據(jù)庫系統(tǒng):SQL Server 2005/2021/2021客戶端開發(fā)工具:Visual Studio 2005/2021/2021/20214.2 知識準(zhǔn)備熟悉SQL Server 2005/202

7、1/2021的使用;熟悉C#、ASP.NET語言及其數(shù)據(jù)庫編程技術(shù)。了解:迭代式開發(fā)過程、UML設(shè)計文檔、設(shè)計模式;以及圖書館相關(guān)業(yè)務(wù)知識4.3 迭代式開發(fā)迭代式開發(fā)統(tǒng)一過程UP 系統(tǒng)開發(fā)被組織成一系列固定的短期一段為2-6周小工程,稱為迭代;每次迭代都產(chǎn)生可執(zhí)行的系統(tǒng)。每次迭代都包括方案、需求、分析、設(shè)計、編碼、測試等過程以及文檔編寫工作;第一次迭代考慮系統(tǒng)的核心功能,隨后的迭代逐步擴展系統(tǒng)功能;每次迭代的成果含需求、分析、設(shè)計、代碼和文檔等均為下一次迭代的工作根底,直至滿足最終需求。這種開發(fā)過程是基于面向?qū)ο蠓椒ǖ摹?. 系統(tǒng)分析系統(tǒng)邊界與約定(1) 系統(tǒng)限定在實體書庫的借閱和管理等業(yè)務(wù)范

8、圍;(2) 不考慮圖書館的電子書庫、訂購、情報、人事管理等業(yè)務(wù);(3) 不考慮圖書館的跨區(qū)分布情況,如長江大學(xué)圖書館包括多個校區(qū)圖書館;(4) 不考慮圖書的通借通還,如長江大學(xué)讀者可在湖北省高校任何一家圖書館借還圖書;(5) 不考慮珍藏圖書的借閱業(yè)務(wù);(6) 暫不考慮與校園一卡通系統(tǒng)的外部接口。一卡通系統(tǒng)為外部系統(tǒng)外部參與者,卡內(nèi)記錄有身份及相關(guān)信息,該系統(tǒng)負(fù)責(zé)身份驗證工作。(7) 期刊庫和論文庫的借閱和管理等業(yè)務(wù)可作為二期工程目標(biāo),視本系統(tǒng)使用情況而定。需求概要(1) 圖書管理系統(tǒng)的根本功能需求包括:讀者管理、圖書管理、借閱管理、用戶登錄與用戶管理等;其它功能需求包括:讀者查詢與預(yù)約借書*、

9、統(tǒng)計與報表*、數(shù)據(jù)備份*、書架管理*、期刊管理*、期刊借閱*、論文管理*、論文借閱*等。* 表示留待以后的迭代周期完成,下同(2) 相關(guān)領(lǐng)域概念:借書證讀者、圖書、借還書記錄。(3) 系統(tǒng)外部參與者:讀者、借書證管理員、圖書管理員、借閱管理員、系統(tǒng)管理員。將圖書館工作人員劃分為借書證管理、圖書管理、借閱管理等三類人員;系統(tǒng)管理員負(fù)責(zé)數(shù)據(jù)庫和軟件系統(tǒng)管理,包括各類管理員用戶的創(chuàng)立和授權(quán)、數(shù)據(jù)庫備份等工作。系統(tǒng)分析目標(biāo)找出系統(tǒng)用例,書寫用例文檔,建立領(lǐng)域模型(概念模型)。用例 use case,或譯為使用案例、用況。是指為了完成一個領(lǐng)域目標(biāo)或任務(wù),提供一個或多個場景來說明其在系統(tǒng)內(nèi)部與外部人員或外

10、部系統(tǒng)等之間的交互過程。如辦理借書證、借書、還書、用戶登錄等均為用例;而借閱管理不是用例,因為它包括多個任務(wù);讀者可否借書也不是用例,因為它不是一個領(lǐng)域任務(wù)或業(yè)務(wù)目標(biāo)。參見“參考資料01 用例.doc。用例是一個事件流,一個事件對應(yīng)一個系統(tǒng)操作;如借書用例中的“根據(jù)借書證號查詢讀者信息、“根據(jù)借書證號查詢超期未歸還圖書、“判斷讀者可否借書、“判斷圖書是否在館、“確認(rèn)借書等均為事件或系統(tǒng)操作。找出系統(tǒng)用例后,對每個用例的交互操作過程進行描述即書寫用例,通過用例發(fā)現(xiàn)領(lǐng)域概念及其屬性,并建立領(lǐng)域模型即概念模型。用例與領(lǐng)域模型的建立過程一般是交互進行的,并相互參考、印證和補充完善。通過用例發(fā)現(xiàn)事件或系

11、統(tǒng)操作,可進行下一步的設(shè)計和實現(xiàn)工作,是系統(tǒng)設(shè)計主要內(nèi)容。在面向?qū)ο蠓椒ǖ拈_發(fā)過程中,分析與設(shè)計沒有明顯的界限,只是側(cè)重面不同而已。5.1 讀者管理讀者管理即借書證管理,包括的業(yè)務(wù)即用例有:辦理借書證、借書證變更、借書證掛失、解除掛失、補辦借書證、注銷借書證、批量辦理新生借書證*等。*表示留待迭代2及以后完成,下同。完成此類用例文檔并實現(xiàn)其功能者,教師可酌情加分借書證讀者可分為2種類別:教師、學(xué)生。借書證教師=借書證號、姓名、性別、所在單位、辦證日期、照片等。借書證學(xué)生=借書證號、學(xué)號、姓名、性別、專業(yè)、班級、辦證日期、有效期、照片等。其中,有效期由學(xué)生類別決定,本科生4年、專科生3年、碩士生

12、3年等。相關(guān)業(yè)務(wù)規(guī)那么:(1)讀者憑借書證借書;(2)教師最多借書12本,借書期限最長為60天,可續(xù)借2次;學(xué)生最多借書8本,借書期限最長為30天,可續(xù)借1次;(3)處于掛失、注銷狀態(tài)的讀者不能借書;(4)未歸還圖書者不能注銷其借書證。分析:增加讀者類別概念,統(tǒng)一并簡化讀者信息,采用教師屬性項,而學(xué)生可在所在單位填寫班級,學(xué)生特有讀者信息可留待以后的開發(fā)周期處理。可得到2個概念:讀者、讀者類別。讀者=借書證號、姓名、性別、所在單位、讀者類別、辦證日期、照片等。另可加: 、郵箱等讀者類別=讀者類別號、類別名稱、可借書本數(shù)、可借書天數(shù)、可續(xù)借次數(shù)。思考:學(xué)生借書證的有效期如何處理?1. 辦理借書證

13、用例名稱:辦理借書證迭 代:1 說明:第1次迭代期間的用例文檔參 與 者:借書證管理員或系統(tǒng)管理員、讀者綜 述:用例起始于讀者來到借書證管理辦公室,管理員給讀者辦理新借書證。觸 發(fā) 器: 說明該用例的觸發(fā)條件前置條件:登錄用戶具備讀者管理權(quán)限。過程描述: 標(biāo)題名或為:根本流程、根本領(lǐng)件流、主要成功場景等1. 管理員輸入:讀者類別、所在單位、姓名。2. 點擊“查詢。3. 系統(tǒng)查詢讀者信息,并顯示查詢結(jié)果。4. 管理員判斷該讀者是否已辦理借書證,假設(shè)是,那么可取消辦證過程。人工操作5. 管理員輸入讀者信息:讀者類別、姓名、性別、所在單位、辦證日期、照片等。類別、姓名、單位等可預(yù)置為過程1中輸入值,

14、辦證日期可預(yù)置為系統(tǒng)日期6. 確認(rèn)辦證。后置條件:創(chuàng)立新的讀者對象,并具有新的借書證號;系統(tǒng)記錄讀者信息。業(yè)務(wù)規(guī)那么:借書證號應(yīng)具有唯一性。待解決問題: 1. 打印借書證;注 釋:未考慮校園一卡通做為借書證使用的情況作者與日期: 2013-7-24日,LSH,版本號1.0思考:讀者分成教師和學(xué)生2個概念時,用例有何不同?2. 變更借書證變更借書證類別、有效期、所在單位等,以及其它信息;借書證號不可更改。用例略 要求自己完成3. 掛失借書證用例名稱:掛失借書證參 與 者:借書證管理員、讀者綜 述:用例起始于讀者來到借書證管理辦公室,管理員給讀者辦理借書證掛失。前置條件:登錄用戶具備讀者管理權(quán)限,

15、且讀者已經(jīng)存在過程描述:1. 輸入借書證號,或輸入讀者的類別、單位、姓名。2. 點擊“查詢。3. 系統(tǒng)查詢并顯示讀者信息。4. 找到其借書證,且讀者狀態(tài)為有效。5. 確認(rèn)掛失。系統(tǒng)修改讀者狀態(tài)為掛失。后置條件:系統(tǒng)記錄讀者信息。業(yè)務(wù)規(guī)那么:借書證掛失后禁止讀者借書。分析:修改讀者概念,增加屬性“借書證狀態(tài);并修改辦理借書證用例。4. 解除掛失用例名稱:解除掛失參 與 者:借書證管理員、讀者綜 述:用例起始于讀者來到借書證管理辦公室,管理員給讀者辦理解除借書證掛失。前置條件:登錄用戶具備讀者管理權(quán)限,且讀者已經(jīng)存在過程描述:1. 輸入借書證號,或輸入讀者的類別、單位、姓名。2. 點擊“查詢。3.

16、 系統(tǒng)查詢并顯示讀者信息。4. 找到其借書證。5. 確認(rèn)解除掛失。前提:讀者狀態(tài)為掛失6. 系統(tǒng)修改讀者狀態(tài)為有效。后置條件:系統(tǒng)記錄讀者信息。5. 補辦借書證補辦借書證過程:創(chuàng)立新借書證復(fù)制原讀者信息,但借書證需取新號,其它信息不變,并將原借書證的借閱記錄轉(zhuǎn)移到新證上,原借書證注銷。用例略 自己完成6. 注銷借書證相關(guān)規(guī)那么:有未歸還圖書者不能辦理注銷。用例略 自己完成7. 批量辦理新生借書證*從教務(wù)管理系統(tǒng)導(dǎo)入新生信息,系統(tǒng)生成借書證信息,管理員核實后辦理借書證。用例略,思考:聯(lián)機在線導(dǎo)入,離線導(dǎo)入8. 讀者類型管理從系統(tǒng)的功能完整性來看,還存在一個隱性的功能需求:讀者類型管理,即讀者類型

17、信息的插、刪、改、查等數(shù)據(jù)維護操作。用例略 要求自己完成5.2 圖書管理包括業(yè)務(wù)用例:圖書編目*、新書入庫、圖書信息維護、圖書變賣與銷毀處理*等。圖書信息=書號、書名、作者、出版社、出版日期、ISBN、分類號、語言、頁數(shù)、單價、內(nèi)容簡介、圖書封面、圖書狀態(tài)等;圖書狀態(tài)包括:在館、借出、遺失、變賣、銷毀1. 圖書編目*新書入庫前,圖書管理員對圖書進行圖書編目工作,即根據(jù)該館的現(xiàn)有圖書分類目錄信息編寫新書的分類號,需要時根據(jù)圖書分類法增加新的圖書分類條目。圖書信息= 、分類號、圖書分類目錄=分類號、分類名。圖書分類信息主要用于統(tǒng)計,如中文圖書分類條目:-分類號分類名TP自動化技術(shù)、計算機技術(shù)TP3

18、計算技術(shù)、計算機技術(shù)TP31計算機軟件TP311程序設(shè)計、軟件工程TP312程序語言、算法語言TP311.13數(shù)據(jù)庫理論與系統(tǒng)TP311.131數(shù)據(jù)庫理論新書分類號,如圖書“C#高級編程(第7版)可編為:TP312/3033.2圖書分類概念暫不考慮, 可留待以后開發(fā)周期處理。用例名稱:圖書編目略2. 新書入庫用例名稱:新書入庫參 與 者:圖書管理員前置條件:登錄用戶具備圖書管理身份和權(quán)限過程描述:1. 輸入或系統(tǒng)生成起始書號(BkNO)。2. 輸入:圖書信息(書名、作者、出版社、出版日期、語言、頁數(shù)、單價、ISBN、分類號、內(nèi)容簡介等)、入庫數(shù)量(N,N>=1)、入館日期。3. 確認(rèn)圖書

19、入庫。4. 圖書館工作人員對圖書進行貼書簽分類號、印書號或條形碼、蓋圖書館印章。5. 圖書上架。后置條件:創(chuàng)立N個圖書對象,書號分別為BkNO、BkNO+1、BkNO+N-1,這N本圖書的狀態(tài)均修改為在館;系統(tǒng)記錄圖書信息。注 釋:BkNO+N可作為下一次新書入庫的起始書號。思考:圖書信息劃分為2個概念是否更為合理?館藏圖書目錄=書名、作者、出版社、出版日期、ISBN、分類號、語言、頁數(shù)、單價、內(nèi)容簡介、圖書封面、入庫數(shù)量、入館日期圖書=書號、分類號、圖書狀態(tài)3. 圖書信息維護圖書信息的查、刪、改等信息維護操作。用例名稱:圖書信息維護略 自己完成,提示:先查找,再刪改4. 在館圖書變賣與銷毀處

20、理*長期沒有借閱記錄且失去保存價值的圖書可以進行變賣或銷毀處理。用例名稱:在館圖書銷毀和變賣處理略5.3 借閱管理包括業(yè)務(wù)用例:借書、續(xù)借、還書等。還書過程涉及超期罰款、遺失圖書罰款等業(yè)務(wù)規(guī)那么。罰款規(guī)那么:1超期罰款規(guī)那么 應(yīng)罰款金額=超期天數(shù)*罰款率,罰款率=0.05元/天,罰款率可能隨時間或讀者類別而變化;實際罰款金額<=應(yīng)罰款金額,根據(jù)實際情況可以進行減免。2遺失罰款規(guī)那么 遺失圖書應(yīng)罰款金額=3*圖書單價;實際罰款金額在1*圖書單價,3*圖書單價之間。3遺失罰款規(guī)那么優(yōu)先于超期罰款規(guī)那么。借書記錄=借書證號、書號、借書操作員、借書日期、應(yīng)還日期續(xù)借記錄=借書證號、書號、續(xù)借操作

21、員、續(xù)借日期、應(yīng)還日期,續(xù)借次數(shù)還書記錄=借書證號、書號、還書操作員、還書日期、應(yīng)還日期,超期天數(shù)、應(yīng)罰款金額,實際罰款金額分析:借書記錄、續(xù)借記錄、還書記錄等信息可合并為借閱記錄,續(xù)借可舍去局部信息。借閱歷史記錄應(yīng)該長期保存在數(shù)據(jù)庫中,以便于統(tǒng)計分析,另外,讀者對一本書可能屢次借閱,故借閱信息應(yīng)該增加一個標(biāo)識項:借書順序號。借閱信息=借書順序號、借書證號、書號、借書操作員、借書日期、應(yīng)還日期,續(xù)借次數(shù)、還書操作員、還書日期,超期天數(shù)、應(yīng)罰款金額,實際罰款金額1. 借書用例名稱:借書參 與 者:借閱管理員、讀者綜 述:用例起始于讀者帶著圖書來到圖書借閱大廳,管理員給讀者辦理借書手續(xù)。前置條件:

22、登錄用戶具備借閱管理權(quán)限。過程描述:1. 管理員輸入借書證號,點擊“查詢讀者。2. 系統(tǒng)查詢讀者信息、未歸還圖書信息含超期,并進行顯示。3. 系統(tǒng)判斷讀者可否借書借書證狀態(tài)為有效,已借書數(shù)量小于可借書數(shù)量,不存在超期未歸還圖書。假設(shè)不可借書,那么禁止借書。4. 管理員輸入待借圖書的書號,點擊“查詢圖書。5. 系統(tǒng)查詢,并顯示圖書信息。6. 系統(tǒng)判斷圖書是否在館,假設(shè)不在館,那么禁止借書。7. 管理員點擊“借書。8. 系統(tǒng)完成以下操作:8.a 創(chuàng)立借閱記錄對象借書順序號由系統(tǒng)自動產(chǎn)生,借書證號和書號為上述輸入值,借書操作員=登錄用戶,借書日期=系統(tǒng)日期,應(yīng)還日期=系統(tǒng)日期+可借書天數(shù),續(xù)借次數(shù)=

23、0,還書日期=NULL,還書操作員=NULL,并標(biāo)記為未歸還;8.b 修改讀者對象的已借書數(shù)量+1;8.c 修改圖書狀態(tài)為借出;后置條件:系統(tǒng)記錄借閱對象、讀者對象、圖書對象。業(yè)務(wù)規(guī)那么:(1)借書證狀態(tài)為掛失、注銷者不能借書;(2)借書數(shù)量不能超過可借書數(shù)量;(3)有超期未歸還圖書者不能借書。注 釋:未歸還圖書狀態(tài)可采用還書日期為空NULL來標(biāo)記,或另加屬性表示是否還書。修改讀者信息:增加“已借書數(shù)量;修改用例辦理借書證:后置條件中,已借書數(shù)量=0。練習(xí):修改用例以滿足讀者攜帶多本圖書進行借書的要求。2. 續(xù)借用例名稱:續(xù)借參 與 者:借閱管理員、讀者前置條件:登錄用戶具備借閱管理權(quán)限、圖書

24、狀態(tài)為借出過程描述:1. 輸入待續(xù)借圖書書號。2. 系統(tǒng)查詢并獲取圖書對象、未歸還狀態(tài)的借閱記錄對象、及其讀者對象,并進行顯示。3. 系統(tǒng)判斷可否續(xù)借續(xù)借次數(shù)<可續(xù)借次數(shù), 讀者狀態(tài)為有效。4. 點擊“續(xù)借。后置條件:修改借閱記錄對象續(xù)借次數(shù)+1,應(yīng)還日期+=可借書天數(shù),圖書狀態(tài)為借出,并保存到數(shù)據(jù)庫中。業(yè)務(wù)規(guī)那么:(1)借書證狀態(tài)為掛失、注銷者不能續(xù)借;(2)續(xù)借次數(shù)不能超過可續(xù)借次數(shù)。注 釋:續(xù)借前后圖書狀態(tài)應(yīng)為借出3. 還書還書用例需要處理超期罰款、遺失圖書罰款處理2種情況。用例名稱:歸還圖書略 要求自己完成,完成罰款處理者,教師可酌情加分5.4 用戶登錄與用戶管理包括用例:用戶登

25、錄、密碼修改、用戶管理*,為本系統(tǒng)的根底和主要功能。用戶包括2類:讀者、管理員。其中,管理員用戶權(quán)限是4種角色的組合:借書證管理、圖書管理、借閱管理、系統(tǒng)管理;系統(tǒng)管理員負(fù)責(zé)所有管理員用戶及其權(quán)限的管理,借書證管理員負(fù)責(zé)讀者管理即借書證管理。管理員是讀者,但讀者不一定是管理員;讀者與管理員間存在(1對0.1)聯(lián)系。讀者信息+=密碼。管理員信息=用戶號、用戶名、密碼、管理角色管理角色設(shè)計:可采用4位二進制,借書證管理(0001)2=1、圖書管理(0010)2=2、借閱管理(0100)2=4、系統(tǒng)管理(1000)2=8。如表示圖書管理和借閱管理權(quán)限:2+4=6;判斷7是否具備圖書管理權(quán)限:7位與2

26、,即(0111)2位與(0010)2=(0010)2,表示有此權(quán)限。分析:將管理員信息合并到讀者中,可簡化概念,此時,非管理員的管理角色(0000)2=0。好處:簡化用戶登錄用例;害處:概念不夠清晰,給用戶管理帶來不便。第1個迭代周期采用簡化概念設(shè)計。另外也可用4個邏輯數(shù)據(jù)項分別表示4個管理角色。讀者信息+=密碼、管理角色。需修改用例辦理借書證自己完成。1. 用戶登錄用例名稱:用戶登錄參 與 者:讀者或管理員前置條件:無過程描述:1. 輸入用戶號即借書證號、密碼;密碼采用掩碼“*號顯示。2. 點擊“登錄。3. 系統(tǒng)根據(jù)借書證號獲取讀者對象。3a. 未獲取讀者對象時,顯示無此用戶,轉(zhuǎn)入1;3b.

27、 密碼未匹配時,顯示密碼錯誤,并清空密碼,轉(zhuǎn)入1;4. 進入系統(tǒng)主程序界面。后置條件:根據(jù)登錄用戶權(quán)限顯示或隱藏相應(yīng)的系統(tǒng)功能菜單等。待解決問題:1. 掛失或注銷借書證者不能登錄。注 釋:該登錄用戶讀者對象應(yīng)為全局可見系統(tǒng)功能與用戶角色之間的關(guān)系參見“表1 系統(tǒng)功能與用戶角色關(guān)系表。2. 密碼修改用例名稱:修改密碼參 與 者:用戶綜 述:用戶登錄后修改自己的登錄密碼。.略3. 用戶管理*用例名稱:用戶管理參 與 者:系統(tǒng)管理員、圖書館工作人員綜 述:系統(tǒng)管理員對圖書館工作人員進行權(quán)限管理。前置條件:登錄用戶為系統(tǒng)管理員,圖書館工作人員需先辦理借書證過程描述:1. 輸入借書證號,或輸入讀者的類別

28、、單位、姓名。2. 點擊“查詢。3. 系統(tǒng)查詢,并顯示讀者信息。4. 找到借書證后,設(shè)置該讀者的管理角色。5. 確認(rèn)完成。后置條件:修改讀者的管理員角色,系統(tǒng)記錄讀者信息。注 釋: 管理角色有4種:借書證管理、圖書管理、借閱管理、系統(tǒng)管理5.5 讀者查詢與預(yù)約借書*讀者非管理員用戶的功能需求,包括用例:未歸還圖書查詢與續(xù)借*含超期、即將到期查詢操作、預(yù)約借書*含在館圖書查詢操作等。該類讀者所使用的功能最好是采用web程序?qū)崿F(xiàn),Web程序功能可包括:讀者登錄、密碼修改、未歸還圖書查詢與續(xù)借*、預(yù)約借書*等。用例名稱:未歸還圖書查詢與續(xù)借略,思考:與續(xù)借用例有不同嗎?用例名稱:預(yù)約借書略,思考:對

29、借書用例有何影響?可在迭代2完善借書用例5.6 統(tǒng)計與報表*包括:館藏圖書統(tǒng)計、借閱情況統(tǒng)計、借閱時段統(tǒng)計等等。館藏圖書統(tǒng)計可按圖書類別、入館時間統(tǒng)計圖書數(shù)量、金額等,可得圖書分布情況;借閱情況統(tǒng)計可按單位含專業(yè)、年級、圖書類別、借閱時間年、學(xué)期、月份等統(tǒng)計借閱次數(shù)和天數(shù),統(tǒng)計結(jié)果可作為訂購新書的參考依據(jù);借閱時段統(tǒng)計按工作日星期一、二、和時段8:00-8:30、8:30-9:00、統(tǒng)計借還書次數(shù),可得各時段的借閱工作量,并可依此安排借閱管理人員。注:涉及OLAP聯(lián)機分析處理技術(shù),開發(fā)者需理解“多維數(shù)據(jù)模型及相關(guān)概念。用例略5.7 數(shù)據(jù)備份*用戶備份是對SQL Server數(shù)據(jù)庫進行備份,由系

30、統(tǒng)管理員操作。5.8 系統(tǒng)功能與用戶角色表1 系統(tǒng)功能與用戶角色關(guān)系表序號系統(tǒng)功能借書證管理圖書管理借閱管理系統(tǒng)管理讀者1讀者管理2圖書管理3借閱管理4用戶登錄5密碼修改6用戶管理7讀者預(yù)約8統(tǒng)計與報表9數(shù)據(jù)備份105.9 領(lǐng)域模型領(lǐng)域概念小結(jié)讀者=讀者號借書證號、姓名、性別、所在單位、 、郵箱地址、辦證日期、照片、借書證狀態(tài)、已借書數(shù)量、密碼、管理角色。借書證狀態(tài):有效、掛失、注銷讀者類別=讀者類別號、讀者類別名稱、可借書數(shù)量、可借書天數(shù)、可續(xù)借次數(shù),罰款率,證件有效期。圖書=書號、書名、作者、出版社、出版日期、ISBN、分類號、語言、頁數(shù)、單價、內(nèi)容簡介、圖書封面、圖書狀態(tài)。圖書狀態(tài)包括:

31、在館、借出、遺失、銷毀、賣出借閱信息=借書順序號、讀者號、書號、借書操作員、借書日期、應(yīng)還日期、續(xù)借次數(shù)、還書操作員、還書日期,超期天數(shù)、應(yīng)罰款金額、實際罰款金額。領(lǐng)域模型圖1 圖書管理系統(tǒng)概念模型(V1)重要提示:在領(lǐng)域模型建立后、以及數(shù)據(jù)庫設(shè)計完成后,均應(yīng)檢查所有的用例文檔檢查重點:事件流、前置條件和后置條件,檢查兩者的一致性,發(fā)現(xiàn)缺漏點及矛盾之處,并進行修正。6.系統(tǒng)設(shè)計與實現(xiàn)6.1 數(shù)據(jù)庫設(shè)計與實現(xiàn)1. 讀者類別表(TB_ReaderType)序號字段名數(shù)據(jù)類型說明1rdTypeSmallInt讀者類別【主鍵】2rdTypeNameNvarchar(20)讀者類別名稱【唯一、非空】3C

32、anLendQtyInt可借書數(shù)量4CanLendDayInt可借書天數(shù)5CanContinueTimesInt可續(xù)借的次數(shù)6PunishRateFloat罰款率元/天7DateValidSmallInt證書有效期年【非空,0表示永久有效】2. 讀者信息表(TB_Reader)序號字段名數(shù)據(jù)類型說明1rdIDInt讀者編號/借書證號【主鍵】2rdNamenvarchar(20)讀者姓名3rdSexnchar(1)性別,男/女4rdTypeSmallInt讀者類別【外鍵TB_ReaderType】【非空】5rdDeptnvarchar (20)單位代碼/單位名稱6rdPhonenvarchar(

33、25) 號碼7rdEmailnvarchar(25)電子郵箱8rdDateRegdatetime讀者登記日期/辦證日期9rdPhotoimage讀者照片10rdStatusnchar(2)證件狀態(tài),3個:有效、掛失、注銷11rdBorrowQtyInt已借書數(shù)量(缺省值0)12rdPwdnvarchar (20)讀者密碼(初值123),可加密存儲13rdAdminRolesSmallInt管理角色,0-讀者、1-借書證管理、2-圖書管理、4-借閱管理、8-系統(tǒng)管理,可組合分析提示:1可將管理員另外建表,與讀者信息分開單獨進行設(shè)計。2單位rdType可以采用名稱,假設(shè)采用代碼那么需另建一張表:單

34、位代碼與名稱對照表,這樣便于按單位統(tǒng)計。3管理角色(rdAdminRoles)也可設(shè)計為4個bit類型字段。3. 圖書信息表(TB_Book)序號字段名數(shù)據(jù)類型說明1bkIDInt圖書序號【標(biāo)識列,主鍵】2bkCodeNvarchar (20)圖書編號或條碼號前文中的書號3bkNameNvarchar(50)書名4bkAuthorNvarchar(30)作者5bkPressNvarchar(50)出版社6bkDatePressdatetime出版日期7bkISBNNvarchar (15)ISBN書號8bkCatalogNvarchar(30)分類號如:TP316-21/1239bkLangu

35、ageSmallInt語言,0-中文,1-英文,2-日文,3-俄文,4-德文,5-法文10bkPagesInt頁數(shù)11bkPriceMoney價格12bkDateInDateTime入館日期13bkBriefText內(nèi)容簡介14bkCoverimage圖書封面照片15bkStatusNChar(2)圖書狀態(tài),在館、借出、遺失、變賣、銷毀說明:bkCode為前文中的書號,這里沒有設(shè)計為關(guān)鍵字,而增加bkID字段作為表關(guān)鍵字,其原因為:防止新書入庫時起始書號輸入錯誤時,因關(guān)鍵字而不易修改。4. 借閱信息表(TB_Borrow)序號字段名數(shù)據(jù)類型說明1BorrowIDNumeric(12,0)借書順

36、序號【主鍵】2rdIDInt讀者序號【外鍵TB_Reader】3bkIDInt圖書序號【外鍵TB_Book】4ldContinueTimesInt續(xù)借次數(shù)第一次借時,記為05ldDateOutDateTime借書日期6ldDateRetPlanDateTime應(yīng)還日期7ldDateRetActDateTime實際還書日期8ldOverDayInt超期天數(shù)9ldOverMoneyMoney超期金額應(yīng)罰款金額10ldPunishMoneyMoney罰款金額11lsHasReturnBit是否已經(jīng)還書,缺省為0-未還12OperatorLendNvarchar(20)借書操作員13OperatorR

37、etNvarchar(20)還書操作員分析提示:借閱信息即用于圖書的借還管理,同時又是統(tǒng)計分析的主要信息來源,故要求保持其歷史信息。設(shè)計時不能以讀者序號+圖書序號為關(guān)鍵字,否那么讀者不能第二次借閱同一本書了。5. 數(shù)據(jù)庫實現(xiàn)內(nèi)容:(1) 創(chuàng)立數(shù)據(jù)庫:Library;(2) 創(chuàng)立登錄名:LibAdmin,密碼:123;并設(shè)置為數(shù)據(jù)庫Library的dbo;(3) 創(chuàng)立上述4張數(shù)據(jù)表及約束;實現(xiàn)方法:(1) 采用SQL Server企業(yè)管理器手工操作方法完成創(chuàng)立工作;(自己完成)(2) 編寫SQL腳本文件,并在查詢窗口工具中運行并創(chuàng)立;如創(chuàng)立TB_ReaderType表:CREATE TABLE

38、dbo.TB_ReaderType(rdType smallint NOT NULL,rdTypeName nvarchar(20) NOT NULL,CanLendQty int NULL,CanLendDay int NULL,CanContinueTimes int NULL,PunishRate float NULL,DateValid smallint NULL DEFAULT (0), PRIMARY KEY (rdType), UNIQUE (rdTypeName)GOinsert into TB_ReaderTypevalues(10,'教師',12,60,2,

39、0.05,0);insert into TB_ReaderTypevalues(20,'本科生',8,30,1,0.05,4);insert into TB_ReaderTypevalues(21,'??粕?#39;,8,30,1,0.05,3);insert into TB_ReaderTypevalues(30,'碩士研究生',8,30,1,0.05,3);insert into TB_ReaderTypevalues(31,'博士研究生',8,30,1,0.05,4);GO6.2 三層架構(gòu)簡介采用三層體系結(jié)構(gòu),即表示層、業(yè)務(wù)邏輯層和

40、數(shù)據(jù)訪問層,如圖2所示,圖中箭頭表示調(diào)用和依賴關(guān)系。圖2 三層架構(gòu)示意圖表示層USL:也稱UI,提供交互式界面,形式:WinForm或HTML Web界面。業(yè)務(wù)邏輯層BLL:實現(xiàn)業(yè)務(wù)功能,為表示層提供效勞,形式:類庫。數(shù)據(jù)訪問層DAL:實現(xiàn)數(shù)據(jù)訪問功能如數(shù)據(jù)庫、文件等數(shù)據(jù)的讀取、保存和更新,為業(yè)務(wù)邏輯層提供效勞,形式:類庫。微軟公布的SQLHelper類提供了對SQL Server數(shù)據(jù)庫的一般訪問方法JAVA有類似的類或組件。實體類(Model):描述一個業(yè)務(wù)實體的類,也即應(yīng)用系統(tǒng)所涉及的業(yè)務(wù)對象。對數(shù)據(jù)庫來講,每個數(shù)據(jù)表對應(yīng)于一個實體類,數(shù)據(jù)表的每個字段對應(yīng)于類的一個屬性。表示層、業(yè)務(wù)邏輯層

41、、數(shù)據(jù)訪問層都依賴于業(yè)務(wù)實體。各層之間數(shù)據(jù)的傳遞主要是實體對象,業(yè)務(wù)信息封裝在實體對象中。6.3 搭建三層架構(gòu)解決方案創(chuàng)立C#應(yīng)用程序解決方案,包括4個工程:BookManageWindows窗口應(yīng)用程序、BookManage.Model類庫、BookManage.DAL類庫、BookManage.BLL類庫。1. 新建工程BookManage啟動工程MS VS菜單:“文件->“新建->“工程,在新建工程窗口中,選擇“C#->“Windows->“Windows窗口應(yīng)用程序,選擇工程文件的存儲位置,并輸入工程名稱:BookManage,如圖3。工程BookManage即

42、為UI層,該工程在VS .NET編譯后產(chǎn)生BookManage.exe文件。圖3 新建工程BookManage2. 添加新工程BookManage.ModelMS VS菜單:“文件->“添加->“新建工程,選擇“類庫,輸入工程名稱,如圖4。VS .NET編譯后產(chǎn)生BookManage.Model.dll文件.DLL后綴文件稱為動態(tài)鏈接庫。圖4 添加新建工程BookManage.Model3. 添加新工程BookManage.DAL操作與BookManage.Model類似,工程名稱設(shè)置為:BookManage.DAL。VS .NET編譯后產(chǎn)生BookManage.DAL.dll文件

43、。4. 添加新工程BookManage.BLL操作與BookManage.Model類似,工程名稱設(shè)置為:BookManage.BLL。VS .NET編譯后產(chǎn)生BookManage.BLL.dll文件。至此,解決方案參見圖5。圖5 圖書管理工程解決方案5. 設(shè)置啟動工程和工程引用關(guān)系在解決方案中設(shè)置BookManage為啟動工程“BookManage右鍵菜單“設(shè)為啟動工程。工程引用關(guān)系如表2所示。如BookManage.BLL工程引用DAL和Model,其設(shè)置方法:解決方案中工程“BookManage.BLL的右鍵菜單“添加引用,并按圖6進行設(shè)置。表2 工程引用關(guān)系。BookManageBoo

44、kManage.BLLBookManage.DALBookManage.ModelBookManage×BookManage.BLLBookManage.DALBookManage.Model圖6 給BookManage.BLL工程添加引用6.4 類總體設(shè)計迭代1實體類、數(shù)據(jù)訪問層類、業(yè)務(wù)邏輯層類、表示層窗口類的初步設(shè)計如表3。表3 實體類、數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層的類設(shè)計層類名說明實體類模塊ModelReaderType讀者類型實體類Reader讀者實體類Book圖書實體類Borrow借閱記錄實體類數(shù)據(jù)訪問層DALReaderTypeDAL讀者類型數(shù)據(jù)表訪問類插、刪、改、查、存儲過程

45、等ReaderDAL讀者數(shù)據(jù)表訪問類插、刪、改、查、存儲過程等BookDAL圖書數(shù)據(jù)表訪問類插、刪、改、查、存儲過程等BorrowDAL借閱數(shù)據(jù)表訪問類插、刪、改、查、存儲過程等SQLHelper微軟提供的對SQL Server數(shù)據(jù)庫進行訪問的通用類業(yè)務(wù)邏輯層BLLReaderTypeAdmin讀者類型管理類,實現(xiàn)插、刪、改、查等信息維護操作。ReaderAdmin讀者管理類,實現(xiàn)借書證辦理、變更、補辦、掛失、解除掛失、注銷等用例中的各種系統(tǒng)操作。BookAdmin圖書管理類,實現(xiàn)圖書管理各用例中的系統(tǒng)操作BorrowAdmin借閱管理類,實現(xiàn)借書、還書、續(xù)借等用例中的系統(tǒng)操作。UserAdm

46、in用戶管理類,表示層UIfrmLogin登錄窗口類frmMain程序主窗口類,含菜單、工具欄、狀態(tài)欄等frmReader讀者管理窗口類6.5 Model層實體類設(shè)計在BookManage.Model工程中添加4個實體類:ReaderType、Reader、Book、Borrow,分別對應(yīng)4個數(shù)據(jù)庫表。實體類的屬性與數(shù)據(jù)庫表結(jié)構(gòu)保持一致名稱、類型;實體類應(yīng)盡量簡單,除了實體對象的復(fù)制與比擬等方法外,不宜添加過多方法。其實實體類就是實現(xiàn)ORM。ORM Object Relational Mapping 對象關(guān)系映射,是為了解決面向?qū)ο蟮念?,與關(guān)系數(shù)據(jù)庫的表之間,存在的不匹配的現(xiàn)象,通過使用描述對

47、象和關(guān)系之間映射的元數(shù)據(jù),在程序中的類對象,與關(guān)系數(shù)據(jù)庫的表之間建立持久的關(guān)系,用于在程序中描述數(shù)據(jù)庫表。本質(zhì)上就是將數(shù)據(jù)從一種形式轉(zhuǎn)換到另外一種形式。ORM是一個廣義的概念,適應(yīng)于關(guān)系數(shù)據(jù)庫與應(yīng)用程序之間的各類數(shù)據(jù)轉(zhuǎn)換,目前有許多自動轉(zhuǎn)換工具可用,如codesmith 等,也可手工書寫實體類代碼來實現(xiàn)ORM。1. ReaderType類在Model工程中添加新建項:C#代碼類ReaderType.cs,如圖7所示。圖7 添加C#代碼類文件ReaderType.cs表字段映射為實體類屬性的根本方法VS 2005及以上版本如下: private string _rdTypeName; publi

48、c string rdTypeName get return _rdTypeName; set _rdTypeName = value; 而在VS 2021及以上版本中可簡化為: public string rdTypeName get; set; 表4 SQL字段類型與實體類屬性類型的映射關(guān)系SQL Server字段類型DataTable中類型C#實體類設(shè)計屬性nchar, nvarchar, textSystem.Stringstringint, smallintSystem.Int32, System.Int16intnumeric(12,0)System.Decimallongdate

49、timeSystem.DateTimeDateTimeFloat, moneySystem.Single, System.DecimalfloatbitSystem.BooleanboolimageSystem.ByteByte在VS 2021及以上版本中ReaderType類的實現(xiàn)代碼如下:在VS 2005含2021及以上版本中ReaderType類的實現(xiàn)代碼如下:另外,可添加復(fù)制構(gòu)造函數(shù),如下: public ReaderType(ReaderType rt) this.rdType = rt.rdType; this.rdTypeName = rt.rdTypeName; this.Ca

50、nLendQty = rt.CanLendQty; this.CanLendDay = rt.CanLendDay; this.CanContinueTimes = rt.CanContinueTimes; this.PunishRate = rt.PunishRate; this.DateValid = rt.DateValid; 2. Reader類略3. Book類略4. Borrow類略6.6 DAL層類設(shè)計除SqlHelper外,每個數(shù)據(jù)庫表對應(yīng)一個DAL層類,主要實現(xiàn)該表的插刪改查操作。1. SqlHelper類在BookManage.DAL工程中添加SqlHelper.cs文件,

51、該類是微軟SqlHelper類參見文件“參考資料03 微軟的SQLHelper類(含完整中文注釋).cs的簡化版(有源碼提供)。SqlHelper類主要包括的成員函數(shù)有:翻開數(shù)據(jù)庫連接、關(guān)閉數(shù)據(jù)庫連接、執(zhí)行SQL語句、執(zhí)行存儲過程等。表5 SqlHelper類簡化版成員1#private static string _strConnection = "Data Source=LSH-SL400SQLSERVER; Initial Catalog=Library;User ID=BookManage;Password=123;"<成員屬性> -連接SQL Serv

52、er的字符串常量。- LSH-SL400SQLSERVER為效勞器名稱,可在SQL Server Management Studio的“已注冊效勞器中查看菜單:“視圖->“已注冊效勞器。- 需修改為自己的連接??墒謩有薷?,或可采用MS VS的效勞器資源管理器得到菜單:“視圖->“效勞器資源管理器,“數(shù)據(jù)連接->“添加連接。2#private static SqlConnection conn = new SqlConnection(_strConnection);<成員屬性> -SQL Server數(shù)據(jù)庫連接對象常量;3#private static void O

53、penConn()<成員函數(shù)> -翻開數(shù)據(jù)庫連接4#private static void CloseConn()<成員函數(shù)> -關(guān)閉數(shù)據(jù)庫連接5public static int ExecuteNonQuery(string sql)<成員函數(shù)> -執(zhí)行非查詢的SQL語句,返回受影響的行數(shù)- sql指定要執(zhí)行的SQL語句,- 例:sql = "delete from TB_ReaderType where rdType=12"6#public static int ExecuteNonQuery(string sql, SqlParameter parameters)<成

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論