圖書(shū)館綜合管理系統(tǒng)ER圖_第1頁(yè)
圖書(shū)館綜合管理系統(tǒng)ER圖_第2頁(yè)
圖書(shū)館綜合管理系統(tǒng)ER圖_第3頁(yè)
圖書(shū)館綜合管理系統(tǒng)ER圖_第4頁(yè)
圖書(shū)館綜合管理系統(tǒng)ER圖_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

長(zhǎng)沙理工大學(xué)《程序設(shè)計(jì)實(shí)踐》課程設(shè)計(jì)匯報(bào)鄒松林學(xué)院計(jì)通學(xué)院專業(yè)計(jì)算機(jī)科學(xué)和技術(shù)班級(jí)計(jì)算機(jī)03-05學(xué)號(hào)27學(xué)生姓名鄒松林指導(dǎo)老師盧曼莎課程成績(jī)完成日期9月20號(hào)圖書(shū)館管理系統(tǒng)數(shù)據(jù)庫(kù)分析和設(shè)計(jì)學(xué)生姓名:鄒松林指導(dǎo)老師:盧曼莎摘要:圖書(shū)信息管理系統(tǒng)關(guān)鍵由讀者信息管理模塊,圖書(shū)信息管理模塊,借閱信息管理模塊,系統(tǒng)信息管理模塊等組成。其中又各自分成讀者注冊(cè),證件修改,用戶注銷,圖書(shū)查詢,操作統(tǒng)計(jì)等子模塊。在設(shè)計(jì)本系統(tǒng)過(guò)程中,我們第一步由自頂而下需求分析概括設(shè)計(jì)出系統(tǒng)總模塊數(shù)據(jù)流圖,再設(shè)計(jì)個(gè)子模塊對(duì)應(yīng)數(shù)據(jù)流圖,列出數(shù)據(jù)流信息及數(shù)據(jù)字典;第二步概念設(shè)計(jì)在需求分析基礎(chǔ)上用E-R圖表示出數(shù)據(jù)及相互間聯(lián)絡(luò),采取先作子圖,再合并成初步E-R圖,進(jìn)行修改和重構(gòu)后得到基礎(chǔ)E-R圖;第三步邏輯設(shè)計(jì),在SQLServer設(shè)計(jì)環(huán)境下把圖書(shū)館管理系統(tǒng)E-R圖轉(zhuǎn)化為成邏輯數(shù)據(jù)模型表示邏輯模式,同時(shí)實(shí)現(xiàn)數(shù)據(jù)模型優(yōu)化和數(shù)據(jù)模式規(guī)范化;第四步進(jìn)行物理設(shè)計(jì)設(shè)計(jì)數(shù)據(jù)內(nèi)模式,確定數(shù)據(jù)存放結(jié)構(gòu),存取路徑,存放空間分配等等,具體形式為表,視圖,索引建立。關(guān)鍵字:數(shù)據(jù)庫(kù),SQL語(yǔ)言,MSSQLServer,圖書(shū)管理1需求分析用戶需求具體表現(xiàn)在多種信息提供、保留、更新和查詢,這就要求數(shù)據(jù)庫(kù)結(jié)構(gòu)能充足滿足多種信息輸入和輸出。搜集基礎(chǔ)數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)處理步驟,為后面具體設(shè)計(jì)打下基礎(chǔ)。在仔細(xì)分析調(diào)查相關(guān)圖書(shū)館管理信息需求基礎(chǔ)上,我們關(guān)鍵考慮以下多個(gè)方面需求:1)用戶需求:圖書(shū)用戶要求計(jì)算機(jī)系統(tǒng)和SQLServer所工作范圍;2)應(yīng)用資源:數(shù)據(jù)庫(kù)應(yīng)用平臺(tái)包含物理平臺(tái)和圖書(shū)等;3)應(yīng)用質(zhì)量和可靠性要求:包含操作人員素質(zhì)和系統(tǒng)糾錯(cuò)能力等1.1項(xiàng)目名稱:圖書(shū)館信息管理系統(tǒng)1.2項(xiàng)目背景和內(nèi)容概要對(duì)圖書(shū)館管理信息系統(tǒng)進(jìn)行具體地分析后,我們將系統(tǒng)分為以下多個(gè)模塊:借閱管理模塊、借書(shū)證信息管理模塊、圖書(shū)信息管理模塊、系統(tǒng)管理模塊。其關(guān)鍵功效以下:借閱管理模塊關(guān)鍵功效以下:1).能夠?yàn)樽x者辦理,修改,注銷借書(shū)證,輸入讀者借書(shū)證基礎(chǔ)信息等,定制讀者借閱權(quán)限。2).能夠經(jīng)過(guò)借書(shū)證查詢圖書(shū)信息、借出圖書(shū)信息,借閱圖書(shū)。3).經(jīng)過(guò)借書(shū)證還書(shū),管理員能夠經(jīng)過(guò)對(duì)借閱信息管理對(duì)到期還未還書(shū),經(jīng)過(guò)查詢讀者借書(shū)證信息查詢讀者聯(lián)絡(luò)方法發(fā)出催還通知。借書(shū)證信息管理模塊關(guān)鍵功效以下:1).讀者基礎(chǔ)信息輸入,如:讀者姓名、性別、單位等。2).讀者信息修改、注銷等功效。3).添加新讀者及其信息等。圖書(shū)信息管理模塊關(guān)鍵功效以下:1).定制書(shū)籍多種信息管理,如:書(shū)名、作者、出版信息等。2).書(shū)籍信息修改,新圖書(shū)入庫(kù)管理和圖書(shū)注銷等。系統(tǒng)管理模塊關(guān)鍵功效以下:1).用戶登錄。2).修改密碼。3).添加用戶。系統(tǒng)備份和數(shù)據(jù)傳輸模塊關(guān)鍵功效以下:1).備份數(shù)據(jù)庫(kù)數(shù)據(jù)2).恢復(fù)數(shù)據(jù)庫(kù)數(shù)據(jù)3).網(wǎng)絡(luò)數(shù)據(jù)傳輸1.3數(shù)據(jù)流圖數(shù)據(jù)流總體圖示圖1-1數(shù)據(jù)流總體圖辦理借書(shū)證圖1-2輸借書(shū)證流圖借書(shū)證修改圖1-3借書(shū)證修改流圖借書(shū)證注銷圖1-4借書(shū)證注銷流圖借書(shū)系統(tǒng)不能借書(shū)原因不能借書(shū)原因圖1-5借書(shū)系統(tǒng)流圖檢索系統(tǒng)圖1-6檢索系統(tǒng)流圖還書(shū)系統(tǒng)圖1-7還書(shū)系統(tǒng)流圖圖書(shū)檔案管理系統(tǒng)圖1-8檔案管理流圖1.4數(shù)據(jù)字典參數(shù)名類型長(zhǎng)度取值范圍別名意義圖書(shū)書(shū)名字符型11SM圖書(shū)編號(hào)字符型11B-BSH作者字符型10YZ出版社字符型20CBS單價(jià)數(shù)值型8DJ借出日期日期型yy-mm-ddJS還書(shū)日期日期型yy-mm-ddHS借書(shū)證號(hào)字符型10-JSZ姓名字符型20NAME是否歸還字符型20YN性別字符型2SEX單位字符型20DW發(fā)證日期日期型yy-mm-ddFZ已借書(shū)冊(cè)數(shù)字符型2YNC是否許可借書(shū)字符型2YNS是或否類別字符型20LB進(jìn)冊(cè)數(shù)數(shù)值型10JC庫(kù)存量數(shù)值型10CZ操作員編號(hào)數(shù)值型10CB操作員姓名字符型10CNAME操作員密碼字符型15MM表1數(shù)據(jù)字典2概念結(jié)構(gòu)設(shè)計(jì)這一階段我們將用戶應(yīng)用需求抽象為信息世界結(jié)構(gòu),即對(duì)系統(tǒng)人、物、事和概念進(jìn)行人為處理,抽取大家所關(guān)心共同特征,同時(shí)把這些特征用概念正確描述。我們首先依據(jù)需求分析結(jié)果(數(shù)據(jù)流圖、數(shù)據(jù)字典等)對(duì)現(xiàn)實(shí)世界數(shù)據(jù)進(jìn)行抽象,設(shè)計(jì)各個(gè)局部E-R圖,然后合并成初步E-R圖,再進(jìn)行修改和重構(gòu)。2.1局部E-R圖圖書(shū)信息管理系統(tǒng)關(guān)鍵分為以下多個(gè)局部E-R圖:1).借書(shū)證處理系統(tǒng)ER圖:管理員管理員辦證改證銷證讀者檔案借書(shū)證身份驗(yàn)證身份驗(yàn)證身份驗(yàn)證1PPNMNMP1P圖2-1借書(shū)證處理系統(tǒng)ER圖圖中各實(shí)體屬性以下:讀者檔案:學(xué)號(hào),讀者姓名,性別,出生日期,借書(shū)證號(hào),職業(yè),單位,通訊地址,郵政編碼,聯(lián)絡(luò)電話借書(shū)證:借書(shū)證號(hào),姓名,性別,辦證日期,借閱范圍,最大借書(shū)量,照片,身份證號(hào)管理員:管理員編號(hào),管理員姓名,登陸密碼2).借書(shū)系統(tǒng)ER圖:讀者讀者借書(shū)證庫(kù)存表借出信息驗(yàn)證查詢借書(shū)檢驗(yàn)庫(kù)存索書(shū)條111N1NN圖2-2借書(shū)系統(tǒng)ER圖圖中各實(shí)體屬性以下:讀者:身份證號(hào),讀者姓名,借書(shū)證號(hào)借書(shū)證:借書(shū)證號(hào),姓名,性別,辦證日期(借閱范圍,最大借書(shū)量,照片,身份證號(hào))庫(kù)存信息:書(shū)號(hào),圖書(shū)編號(hào)借出信息:圖書(shū)編號(hào),借書(shū)證號(hào),借書(shū)日期,歸還日期3).索書(shū)系統(tǒng)ER圖:讀者讀者圖書(shū)檔案索書(shū)要求索書(shū)MN索書(shū)條圖2-3索書(shū)系統(tǒng)ER圖圖中各實(shí)體屬性以下:讀者:讀者姓名,借書(shū)證號(hào)圖書(shū)檔案:圖書(shū)編號(hào),書(shū)號(hào),書(shū)名,作者,出版單位,出版日期,單價(jià),藏書(shū)冊(cè)書(shū),類別,入庫(kù)日期4).還書(shū)系統(tǒng)ER圖:驗(yàn)證驗(yàn)證還書(shū)催還完整檢驗(yàn)讀者借書(shū)證庫(kù)存表借出信息管理員是否歸還1N1MMN1M1P圖2-4還書(shū)系統(tǒng)ER圖圖中各實(shí)體屬性以下:讀者:學(xué)號(hào),讀者姓名,借書(shū)證號(hào)借書(shū)證:借書(shū)證號(hào),姓名,性別,辦證日期庫(kù)存信息:書(shū)號(hào),圖書(shū)編號(hào)借出信息:圖書(shū)編號(hào),借書(shū)證號(hào),借書(shū)日期,歸還日期管理員:操作員編號(hào),管理員姓名,登陸密碼5).圖書(shū)檔案管理系統(tǒng)ER圖:管理員管理員修改輸入注銷圖書(shū)檔案庫(kù)存身份驗(yàn)證身份驗(yàn)證身份驗(yàn)證1N1NN1NNNN入庫(kù)清單圖2-5檔案管理系統(tǒng)ER圖圖中各實(shí)體屬性以下:管理員:操作員編號(hào),管理員姓名,登陸密碼庫(kù)存信息:書(shū)號(hào),圖書(shū)編號(hào)圖書(shū)檔案:圖書(shū)編號(hào),書(shū)號(hào),書(shū)名,作者,出版單位,出版日期,單價(jià),類別,入庫(kù)日期入庫(kù)清單:入庫(kù)日期,圖書(shū)編號(hào),管理員編號(hào),書(shū)名6).整體E-R圖讀者讀者圖書(shū)檔案借出書(shū)庫(kù)庫(kù)存表管理員借書(shū)證圖書(shū)管理證件處理催還借書(shū)還書(shū)查詢已借索書(shū)PPM1MN11MNPPMNNPMNN1N圖2-6整體ER圖圖中各實(shí)體屬性以下:讀者檔案:學(xué)號(hào),讀者姓名,性別,借書(shū)證號(hào),單位借書(shū)證:借書(shū)證號(hào),姓名,性別,辦證日期管理員:操作員編號(hào),管理員姓名,登陸密碼庫(kù)存信息:書(shū)號(hào),圖書(shū)編號(hào)借出信息:圖書(shū)編號(hào),借書(shū)證號(hào),借書(shū)日期,歸還日期圖書(shū)檔案:書(shū)號(hào),書(shū)名,作者,出版單位,出版日期,單價(jià),類別,藏書(shū)冊(cè)書(shū),圖書(shū)編號(hào)入庫(kù)日期2.2實(shí)體描述說(shuō)明:1、因?yàn)樽x者信息能夠在借書(shū)證辦理檔案中查到所以合并為借書(shū)證辦理檔案2.將借出書(shū)庫(kù)和入庫(kù)清單分別合并到了借書(shū)記錄表和圖書(shū)信息表中實(shí)體名稱借書(shū)證數(shù)據(jù)庫(kù)表借書(shū)證信息表實(shí)體說(shuō)明讀者和借書(shū)證信息實(shí)體屬性列表借書(shū)證號(hào),姓名,性別,辦證日期,最大借書(shū)量,學(xué)號(hào)實(shí)體名稱管理員數(shù)據(jù)庫(kù)表tz_passwd實(shí)體說(shuō)明管理員信息實(shí)體屬性列表管理員編號(hào),管理員姓名,登陸密碼實(shí)體名稱讀者數(shù)據(jù)庫(kù)表借書(shū)記錄表實(shí)體說(shuō)明圖書(shū)館未被借出圖書(shū)信息實(shí)體屬性列表書(shū)號(hào),圖書(shū)編號(hào)實(shí)體名稱讀者數(shù)據(jù)庫(kù)表還書(shū)記錄表實(shí)體說(shuō)明圖書(shū)館未被借出圖書(shū)信息實(shí)體屬性列表書(shū)號(hào),圖書(shū)編號(hào)實(shí)體名稱圖書(shū)檔案數(shù)據(jù)庫(kù)表圖書(shū)信息表實(shí)體說(shuō)明館藏圖書(shū)信息實(shí)體屬性列表書(shū)號(hào),書(shū)名,作者,出版單位,出版日期,版次,單價(jià),類別,圖書(shū)編號(hào),入庫(kù)日期表2實(shí)體描述2.3關(guān)系描述(已包含在E-R圖中)2.4實(shí)體--關(guān)系調(diào)整(實(shí)體描述表中已消除冗余實(shí)體和關(guān)系)2.5數(shù)據(jù)項(xiàng)定義1).圖書(shū)庫(kù)數(shù)據(jù)項(xiàng)定義:名稱別名類型長(zhǎng)度其它圖書(shū)書(shū)名SM字符型20一般索引書(shū)號(hào)SH數(shù)值型20主索引譯者YZ字符型10出版社CBS字符型20單價(jià)DJ數(shù)值型8出版時(shí)間CBSJ日期型8表3圖書(shū)庫(kù)數(shù)據(jù)項(xiàng)定義2).借、還書(shū)庫(kù)數(shù)據(jù)項(xiàng)定義:名稱別名類型長(zhǎng)度其它姓名XSXM字符型10一般索引借書(shū)證號(hào)JSZH數(shù)值型8主索引圖書(shū)書(shū)名SM字符型20圖書(shū)編號(hào)SH字符型20借書(shū)日期JSRQ日期型8還書(shū)日期HSRQ日期型8表4借、還書(shū)庫(kù)數(shù)據(jù)項(xiàng)定義3).借書(shū)證庫(kù)數(shù)據(jù)項(xiàng)定義:名稱別名類型長(zhǎng)度其它姓名JSXM字符型10一般索引借書(shū)證號(hào)JSGH字符型6主索引性別XB字符型4單位DW字符型8表5借書(shū)證庫(kù)數(shù)據(jù)項(xiàng)定義4).操作員庫(kù)數(shù)據(jù)項(xiàng)定義:名稱別名類型長(zhǎng)度其它操作員編號(hào)CZYYHH字符型10操作員用戶名CZYYHM字符型10口令KL字符型10表6操作員庫(kù)數(shù)據(jù)項(xiàng)定義2.6數(shù)據(jù)表(庫(kù))描述圖書(shū)數(shù)據(jù)庫(kù)=圖書(shū)書(shū)名+圖書(shū)編號(hào)+著者+出版社+單價(jià)+書(shū)號(hào)+出版時(shí)間借書(shū)庫(kù)=姓名+借書(shū)證號(hào)++老師姓名+圖書(shū)名稱+借書(shū)日期+還書(shū)日期老師數(shù)據(jù)庫(kù)=姓名+借書(shū)證號(hào)+單位操作員庫(kù)=操作員用戶名+口令2.7系統(tǒng)功效模塊圖軟件功效結(jié)構(gòu)圖:工商學(xué)院圖書(shū)信息管理系統(tǒng)系統(tǒng)管理基礎(chǔ)情況錄入借、還書(shū)管理查詢、統(tǒng)計(jì)初始化數(shù)據(jù)備份操作員管理通常見(jiàn)戶登陸新圖書(shū)登記新期發(fā)表記借書(shū)登記還書(shū)登記圖書(shū)庫(kù)藏查詢借書(shū)證庫(kù)查詢圖書(shū)查詢借書(shū)查詢還書(shū)查詢圖2-7軟件功效結(jié)構(gòu)2.8系統(tǒng)步驟圖:圖書(shū)管理系統(tǒng)讀者查詢系統(tǒng)圖書(shū)(期刊)庫(kù)查詢圖2-8系統(tǒng)步驟圖3邏輯結(jié)構(gòu)設(shè)計(jì)為了能夠用計(jì)算機(jī)和SQLServer實(shí)現(xiàn)用戶需求,可將概念結(jié)構(gòu)轉(zhuǎn)化為對(duì)應(yīng)數(shù)據(jù)模型,即是設(shè)計(jì)邏輯結(jié)構(gòu)。即由E-R圖建立了合適表,并按不一樣范式定義,對(duì)表進(jìn)行規(guī)范化。對(duì)規(guī)范化表,更據(jù)用戶需求建立數(shù)據(jù)庫(kù)結(jié)構(gòu)。3.1確定數(shù)據(jù)依靠關(guān)系名主要函數(shù)依賴管理員BCNF管理員編號(hào)—→(管理員姓名,登陸密碼)庫(kù)存信息BCNF圖書(shū)編號(hào)—→書(shū)名等借出信息BCNF(圖書(shū)編號(hào))—→(借書(shū)日期,借書(shū)證號(hào),歸還日期)借書(shū)證2NF借書(shū)證號(hào)—→(借書(shū)證號(hào),姓名,性別,單位,發(fā)證日期,已借書(shū)冊(cè)書(shū),是否許可借書(shū))以后擴(kuò)展:身份證號(hào)—→(姓名,性別,照片)圖書(shū)檔案2NF圖書(shū)編號(hào)—→(書(shū)號(hào),書(shū)名,作者,出版單位,出版日期,版次,單價(jià),內(nèi)容提要,分類號(hào),索書(shū)號(hào),所在書(shū)庫(kù),入庫(kù)日期)入庫(kù)清單BCNF圖書(shū)編號(hào)—→(管理員編號(hào),書(shū)名,入庫(kù)日期)還書(shū)信息BCNF借書(shū)證號(hào)—→(姓名,圖書(shū)編號(hào),書(shū)名,借出日期,還書(shū)日期)3.2數(shù)據(jù)依靠?jī)?yōu)化和調(diào)整3.2.1關(guān)系模式優(yōu)化(1)借書(shū)證信息:借書(shū)證(借書(shū)證號(hào),姓名,性別,單位,發(fā)證日期,已借書(shū)冊(cè)書(shū),是否許可借書(shū))滿足BCNF范式(2)管理員信息:管理員信息(管理員編號(hào),管理員姓名,登陸密碼)滿足BCNF范式(3)庫(kù)存信息:庫(kù)存信息(圖書(shū)編號(hào),書(shū)號(hào))滿足BCNF范式(4)借書(shū)信息:借書(shū)信息(圖書(shū)編號(hào),借書(shū)證號(hào),姓名,書(shū)名,借書(shū)日期,是否歸還)滿足BCNF范式(5)還書(shū)信息:還書(shū)信息(姓名,圖書(shū)編號(hào),書(shū)名,借出日期,還書(shū)日期)滿足BCNF范式(6)圖書(shū)信息:圖書(shū)檔案(圖書(shū)編號(hào),書(shū)名,作者,圖書(shū)類別,單價(jià),出版社,進(jìn)冊(cè)書(shū),庫(kù)存量)均滿足BCNF范式(7)入庫(kù)清單:入庫(kù)清單(圖書(shū)編號(hào),管理員編號(hào),書(shū)名,入庫(kù)日期)滿足BCNF范式3.2.2關(guān)系模式調(diào)整即使在關(guān)系模式優(yōu)化中將多種關(guān)系滿足了BCNF范式要求,不過(guò)對(duì)一些數(shù)據(jù)庫(kù)操作卻并沒(méi)有簡(jiǎn)化,相反造成了數(shù)據(jù)庫(kù)查詢等數(shù)據(jù)庫(kù)操作效率低下。于是對(duì)‘借書(shū)證信息’,和‘圖書(shū)信息’作出了以下調(diào)整。(1)借書(shū)證信息:借書(shū)證(借書(shū)證號(hào),姓名,性別,辦證日期,單位,已借書(shū)冊(cè)數(shù),借書(shū)許可,)(3NF)(2)圖書(shū)信息:圖書(shū)檔案(圖書(shū)編號(hào),書(shū)名,作者,出版單位,單價(jià),圖書(shū)類別,進(jìn)冊(cè)數(shù),入庫(kù)量)(2NF)4代碼設(shè)計(jì)圖書(shū)管理系統(tǒng)部分源代碼[圖書(shū)外借情況查詢代碼]tempstr=allt(thisform.container1.text1.value)tempstr="%"+tempstr+"%"ifbo1.text="借書(shū)證號(hào)"select*from借書(shū)記錄表where借書(shū)記錄表.借書(shū)證號(hào)liketempstrintocursortempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendififbo1.text="姓名"select*from借書(shū)記錄表where借書(shū)記錄表.姓名liketempstrintocursortempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendififbo1.text="圖書(shū)編號(hào)"select*from借書(shū)記錄表where借書(shū)記錄表.圖書(shū)編號(hào)liketempstrintocursortempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendififbo1.text="書(shū)名"select*from借書(shū)記錄表where借書(shū)記錄表.書(shū)名liketempstrintocursortempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendififbo1.text="是否歸還"select*from借書(shū)記錄表where借書(shū)記錄表.是否歸還liketempstrintocursortempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendifthisform.container1.text1.value=""[圖書(shū)外借和歸還情況查詢代碼]tempstr=allt(thisform.container1.text1.value)tempstr="%"+tempstr+"%"ifbo1.text="借書(shū)證號(hào)"select*from還書(shū)記錄表where還書(shū)記錄表.借書(shū)證號(hào)liketempstrintocursortempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendififbo1.text="姓名"select*from還書(shū)記錄表where還書(shū)記錄表.姓名liketempstrintocursortempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendififbo1.text="圖書(shū)編號(hào)"select*from還書(shū)記錄表where還書(shū)記錄表.圖書(shū)編號(hào)liketempstrintocursortempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendififbo1.text="書(shū)名"select*from還書(shū)記錄表where還書(shū)記錄表.書(shū)名liketempstrintocursortempcursorthisform.grid1.recordsource=tempcursorthisform.refreshendifthisform.container1.text1.value=""[存放過(guò)程代碼]procedurerideletelocalllretvalllretval=.t.if(isrlocked()and!deleted())or!rlock()llretval=.f.elseif!deleted()deleteifcursorgetprop('buffering')>1 =tableupdate()endifllretval=pnerror=0endifnotalreadydeletedendifunlockrecord(recno())returnllretvalprocedureriupdatelparameterstcfieldname,tcnewvalue,tccascadeparentlocalllretvalllretval=.t.ifisrlocked()or!rlock()llretval=.f.elseifeval(tcfieldname)<>tcnewvalueprivatepccascadeparentpccascadeparent=upper(iif(type("tccascadeparent")<>"c","",tccascadeparent))replace(tcfieldname)withtcnewvalueifcursorgetprop('buffering')>1 =tableupdate()endifllretval=pnerror=0endifvaluesdon'talreadymatchendifit'slockedalready,oriwasabletolockitunlockrecord(recno())returnllretvalprocedurerierrorparameterstnerrno,tcmessage,tccode,tcprogramlocallnerrorrows,lnxxlnerrorrows=alen(gaerrors,1)iftype('gaerrors[lnerrorrows,1]')<>"l"dimensiongaerrors[lnerrorrows+1,alen(gaerrors,2)]lnerrorrows=lnerrorrows+1endifgaerrors[lnerrorrows,1]=tnerrnogaerrors[lnerrorrows,2]=tcmessagegaerrors[lnerrorrows,3]=tccodegaerrors[lnerrorrows,4]=""lnxx=1dowhile!empty(program(lnxx))gaerrors[lnerrorrows,4]=gaerrors[lnerrorrows,4]+","+;program(lnxx)lnxx=lnxx+1enddogaerrors[lnerrorrows,5]=pcparentdbfgaerrors[lnerrorrows,6]=pnparentrecgaerrors[lnerrorrows,7]=pcparentidgaerrors[lnerrorrows,8]=pcparentexprgaerrors[lnerrorrows,9]=pcchilddbfgaerrors[lnerrorrows,10]=pnchildrecgaerrors[lnerrorrows,11]=pcchildidgaerrors[lnerrorrows,12]=pcchildexprreturntnerrnoprocedureriopenparameterstctable,tcorderlocallccurwkarea,lcnewwkarea,lninusespotlninusespot=atc(tctable+"*",pcricursors)iflninusespot=0lccurwkarea=select()select0lcnewwkarea=select()ifnotempty(tcorder)use(tctable)againorder(tcorder);alias("__ri"+ltrim(str(select())))shareelseuse(tctable)againalias("__ri"+ltrim(str(select())))shareendififpnerror=0pcricursors=pcricursors+upper(tctable)+"?"+str(select(),5)elselcnewwkarea=0endifsomethingbadhappenedwhileattemptingtoopenthefileelselcnewwkarea=val(substr(pcricursors,lninusespot+len(tctable)+1,5))pcricursors=strtran(pcricursors,upper(tctable)+"*"+str(lcnewwkarea,5),;upper(tctable)+"?"+str(lcnewwkarea,5))ifnotempty(tcorder)setorderto(tcorder)in(lcnewwkarea)endifsentanorderifpnerror<>0lcnewwkarea=0endifsomethingbadhappenedwhilesettingorderendifreturn(lcnewwkarea)procedureriendparameterstlsuccesslocallnxx,lnspot,lcworkareaiftlsuccessendtransactionelsesetdeletedoffrollbacksetdeletedonendififempty(pcriolderror)onerrorelseonerror&pcriolderror.endifforlnxx=1tooccurs("*",pcricursors)lnspot=atc("*",pcricursors,lnxx)+1usein(val(substr(pcricursors,lnspot,5)))endforifpcoldcompat="on" setcompatibleonendififpcolddele="off"setdeletedoffendififpcoldexact="on"setexactonendififpcoldtalk="on"settalkonendifdocasecaseempty(pcolddbc)setdatatocasepcolddbc<>dbc()setdatato(pcolddbc)endcasereturn.cedurerireuse*rireuse.prgparameterstctablename,tcwkareapcricursors=strtran(pcricursors,upper(tctablename)+"?"+str(tcwkarea,5),;upper(tctablename)+"*"+str(tcwkarea,5))return.t.**********************************************************************************"參考完整性刪除觸發(fā)器"借書(shū)證信息表procedure__ri_delete_借書(shū)證信息表localllretvalllretval=.t.privatepcparentdbf,pnparentrec,pcchilddbf,pnchildrec,pcparentid,pcchildidprivatepcparentexpr,pcchildexprstore""topcparentdbf,pcchilddbf,pcparentid,pcchildid,pcparentexpr,pcchildexprstore0topnparentrec,pnchildrecif_triggerlevel=1begintransactionprivatepcricursors,pcriwkareas,pcriolderror,pnerror,;pcolddele,pcoldexact,pcoldtalk,pcoldcompat,pcolddbcpcoldtalk=set("talk")settalkoffpcolddele=set("deleted")pcoldexact=set("exact")pcoldcompat=set("compatible")setcompatibleoffsetdeletedonsetexactoffpcricursors=""pcriwkareas=""pcriolderror=on("error")pnerror=0onerrorpnerror=rierror(error(),message(),message(1),program())iftype('gaerrors(1)')<>"u"releasegaerrorsendifpublicgaerrors(1,12)pcolddbc=dbc()setdatato("tsglxt")endiffirsttriggerlocallcparentid&&parent'svaluetobesoughtinchildlocallcchildwkarea&&childworkareahandlereturnedbyriopenlocallcparentwkarealocallldelheaderarealcstartarea=select()llretval=.t.lcparentwkarea=select()select(lcparentwkarea)pcparentdbf=dbf()pnparentrec=recno()store借書(shū)證號(hào)tolcparentid,pcparentidpcparentexpr="借書(shū)證號(hào)"lcchildwkarea=riopen("還書(shū)記錄表","借書(shū)證號(hào)")iflcchildwkarea<=0if_triggerlevel=1doriendwith.f.endifattheendofthehighesttriggerlevelreturn.f.endifnotabletoopenthechildworkareapcchilddbf=dbf(lcchildwkarea)llretval=!seek(lcparentid,lcchildwkarea)select(lcchildwkarea)pnchildrec=recno()pcchildid=借書(shū)證號(hào)pcchildexpr="借書(shū)證號(hào)"if!llretvaldorierrorwith-1,"違反刪除限制規(guī)則。","",""endif=rireuse("還書(shū)記錄表",lcchildwkarea)ifnotllretvalif_triggerlevel=1doriendwithllretvalendifattheendofthehighesttriggerlevelselect(lcstartarea)returnllretvalendifif_triggerlevel=1doriendwithllretvalendifattheendofthehighesttriggerlevelselect(lcstartarea)returnllretval**"結(jié)束參考完整性刪除觸發(fā)器"借書(shū)證信息表*********************************************************************procedure__ri_update_借書(shū)證信息表**"參考完整性更新觸發(fā)器"借書(shū)證信息表localllretvalllretval=.t.privatepcparentdbf,pnparentrec,pcchilddbf,pnchildrec,pcparentid,pcchildidprivatepcparentexpr,pcchildexprstore""topcparentdbf,pcchilddbf,pcparentid,pcchildid,pcparentexpr,pcchildexprstore0topnparentrec,pnchildrecif_triggerlevel=1begintransactionprivatepcricursors,pcriwkareas,pcriolderror,pnerror,;pcolddele,pcoldexact,pcoldtalk,pcoldcompat,pcolddbcpcoldtalk=set("talk")settalkoffpcolddele=set("deleted")pcoldexact=set("exact")pcoldcompat=set("compatible")setcompatibleoffsetdeletedonsetexactoffpcricursors=""pcriwkareas=""pcriolderror=on("error")pnerror=0onerrorpnerror=rierror(error(),message(),message(1),program())iftype('gaerrors(1)')<>"u"releasegaerrorsendifpublicgaerrors(1,12)pcolddbc=dbc()setdatato("tsglxt")endiffirsttriggerlocallcparentid&&parent'svaluetobesoughtinchildlocallcoldparentid&&previousparentidvaluelocallcchildwkarea&&childworkareahandlereturnedbyriopenlocallcchildid&&child'svaluetobesoughtinparentlocallcoldchildid&&oldchildidvaluelocallcparentwkarea&&parentworkareahandlereturnedbyriopenlocallcstartarealcstartarea=select()llretval=.t.lcparentwkarea=select()select(lcparentwkarea)pcparentdbf=dbf()pnparentrec=recno()lcoldparentid=oldval("借書(shū)證號(hào)")pcparentid=lcoldparentidpcparentexpr="借書(shū)證號(hào)"lcparentid=借書(shū)證號(hào)iflcparentid<>lcoldparentidlcchildwkarea=riopen("還書(shū)記錄表")iflcchildwkarea<=0if_triggerlevel=1doriendwith.f.endifattheendofthehighesttriggerlevelselect(lcstartarea)return.f.endifnotabletoopenthechildworkareapcchilddbf=dbf(lcchildwkarea)select(lcchildwkarea)scanfor借書(shū)證號(hào)=lcoldparentidpnchildrec=recno()pcchildid=借書(shū)證號(hào)pcchildexpr="借書(shū)證號(hào)"ifnotllretvalexitendif&¬llretvalllretval=riupdate("借書(shū)證號(hào)",lcparentid,"借書(shū)證信息表")endscangetallofthe還書(shū)記錄表records=rireuse("還書(shū)記錄表",lcchildwkarea)ifnotllretvalif_triggerlevel=1doriendwithllretvalendifattheendofthehighesttriggerlevelselect(lcstartarea)returnllretvalendifendifthisparentidchangedif_triggerlevel=1doriendwithllretvalendifattheendofthehighesttriggerlevelselect(lcstartarea)returnllretval**"結(jié)束參考完整性更新觸發(fā)器"借書(shū)證信息表********************************************************************************5數(shù)據(jù)庫(kù)系統(tǒng)性能評(píng)價(jià)在需求分析部分,我認(rèn)真閱讀了圖書(shū)管理系統(tǒng)功效簡(jiǎn)述,在此基礎(chǔ)上把整個(gè)系統(tǒng)按處理功效分解成若干模塊,進(jìn)行數(shù)據(jù)分解,畫(huà)出了總系統(tǒng)和各模塊數(shù)據(jù)流圖、數(shù)據(jù)項(xiàng)表、數(shù)據(jù)結(jié)構(gòu)表、數(shù)據(jù)流表等。得到需求分析關(guān)鍵結(jié)果,基礎(chǔ)反應(yīng)了用戶需求。在概念結(jié)構(gòu)設(shè)計(jì)時(shí),采取自底向上設(shè)計(jì)方法。將數(shù)據(jù)步驟圖中子圖抽象為E-R圖,然后再合并各個(gè)分E-R圖。設(shè)計(jì)出整體概念結(jié)構(gòu)內(nèi)部含有一致性,不僅能滿足需求分析階段確定全部要求,而且能正確反應(yīng)原來(lái)每個(gè)子視圖結(jié)構(gòu)。而且給出了各個(gè)實(shí)體描述,對(duì)實(shí)體和關(guān)系進(jìn)行了調(diào)整,消除了冗余實(shí)體和冗余關(guān)系。在邏輯結(jié)構(gòu)設(shè)計(jì)時(shí),選擇SQLServer所支持?jǐn)?shù)據(jù)模型,適于描述和表示概念結(jié)構(gòu)。我們遵照一定標(biāo)準(zhǔn)進(jìn)行實(shí)體、屬性和聯(lián)絡(luò)轉(zhuǎn)換。優(yōu)化了關(guān)系數(shù)據(jù)模型,依據(jù)具體應(yīng)用確定范式和關(guān)系模式分解和合并。確定了外模式和數(shù)據(jù)視圖。在物理結(jié)構(gòu)設(shè)計(jì)時(shí),設(shè)計(jì)存放結(jié)構(gòu)和存放方法考慮到了用戶應(yīng)用環(huán)境情況,為了縮短響應(yīng)時(shí)間優(yōu)化數(shù)據(jù)庫(kù)訪問(wèn),建立了常常查詢屬性索引。而且對(duì)數(shù)據(jù)庫(kù)表進(jìn)行了存放空間分配和劃分了用戶角色及每個(gè)角色權(quán)限,系統(tǒng)安全性提升。最終在數(shù)據(jù)庫(kù)實(shí)施設(shè)計(jì)階段,在具體DBMS下創(chuàng)建庫(kù),表,視圖,建

溫馨提示

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

評(píng)論

0/150

提交評(píng)論