伊人色婷婷综在合线亚洲,亚洲欧洲免费视频,亚洲午夜视频在线观看,最新国产成人盗摄精品视频,日韩激情视频在线观看,97公开免费视频,成人激情视频在线观看,成人免费淫片视频男直播,青草青草久热精品视频99

圖書管理系統(tǒng)論文模板(10篇)

時(shí)間:2023-03-17 18:11:13

導(dǎo)言:作為寫作愛好者,不可錯(cuò)過為您精心挑選的10篇圖書管理系統(tǒng)論文,它們將為您的寫作提供全新的視角,我們衷心期待您的閱讀,并希望這些內(nèi)容能為您提供靈感和參考。

圖書管理系統(tǒng)論文

篇1

藏書剔除即“將某些圖書從基本藏書區(qū)中撤出,轉(zhuǎn)人某種輔助藏書區(qū)、儲(chǔ)存中心,或加以注銷”的一個(gè)過程,將一部分失去使用價(jià)值或利用率很低的書刊撤離一線書庫(kù)[1],可使留下來的藏書更加符合圖書館的任務(wù)和讀者需要。

一、常用方法的藏書剔除

常用的藏書剔除辦法主要有主觀判斷法、書齡判斷法、使用年限法等,其中主觀判斷法是藏書剔除最常用的方法之一,是館員按照事先擬訂的一系列相關(guān)的剔除標(biāo)準(zhǔn)(或準(zhǔn)則),憑借自己的經(jīng)驗(yàn),直接在書架上剔除文獻(xiàn)資料。面對(duì)的是知識(shí)內(nèi)容千差萬(wàn)別、質(zhì)量水平參差不齊的藏書,運(yùn)用主觀判斷法進(jìn)行藏書剔除的尺度很難把握。

書齡判斷法是根據(jù)圖書年代進(jìn)行藏書剔除的一種方法??墒窍嗤瑫g圖書的利用率會(huì)相差甚遠(yuǎn),單純以年代決定藏書的去留,就有可能把一些有價(jià)值的、使用率高的舊書剔除出去,或者留下許多書齡較短、不符合讀者需求的圖書。

文獻(xiàn)壽命“半衰期”體現(xiàn)的是知識(shí)情報(bào)的老化與更新的基本規(guī)律,可以作為一線書庫(kù)藏書剔除的一個(gè)參考依據(jù)。然而在實(shí)際工作中,量化某一館藏是否超出其有效使用年限,或著超出了多少,都是很困難的。

調(diào)查研究法是開展特定范圍(讀者、專家)的調(diào)查,并根據(jù)調(diào)查結(jié)果進(jìn)行藏書剔除的一種方法。它過分注重代表范圍內(nèi)的即時(shí)需求,忽視館藏體系整體的、長(zhǎng)遠(yuǎn)的建設(shè)和發(fā)展。

滯架時(shí)間是反映圖書使用情況的一個(gè)客觀標(biāo)準(zhǔn),如果大量利用率很低的館藏文獻(xiàn)繼續(xù)留在一線書庫(kù),會(huì)增加館藏的承載負(fù)擔(dān)和經(jīng)濟(jì)支出,增加讀者查找和獲取的時(shí)間。但如果圖書沒有放到規(guī)定位置,或者讀者沒有發(fā)現(xiàn)它,那么它自然沒有被利用的記錄,很可能就被選為剔除對(duì)象。

目標(biāo)比對(duì)法是根據(jù)資源建設(shè)目標(biāo)進(jìn)行藏書剔除的一種方法。然而,藏書體系也需要不斷完善,這種方法有時(shí)會(huì)加大滯后的周期。

上述方法從不同角度為藏書剔除提供依據(jù),總體上說是各有千秋。有些時(shí)候,單獨(dú)使用上述方法在時(shí)間、人力、質(zhì)量等方面難以滿足藏書剔除的需要,需要結(jié)合目標(biāo)、摸索更先進(jìn)、更科學(xué)、更合適的藏書剔除方法。

二、圖書館管理系統(tǒng)發(fā)展概況

圖書館管理系統(tǒng),又稱圖書館自動(dòng)化管理系統(tǒng),自國(guó)內(nèi)圖書館開始運(yùn)用圖書館自動(dòng)化管理系統(tǒng),到目前已經(jīng)將傳統(tǒng)的圖書館業(yè)務(wù)手工操作轉(zhuǎn)變?yōu)橛?jì)算機(jī)管理,從簡(jiǎn)單的單個(gè)模塊管理提升到功能齊全和強(qiáng)大的集成系統(tǒng),使圖書館的主要業(yè)務(wù),包括采訪、編目、流通、連續(xù)出版物管理、公共檢索等,在一個(gè)書目數(shù)據(jù)庫(kù)中得以實(shí)現(xiàn)。隨著計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)在我國(guó)的快速發(fā)展,圖書館管理系統(tǒng)全面普及,傳統(tǒng)的人工工作逐項(xiàng)逐項(xiàng)地被計(jì)算機(jī)代替。圖書館管理系統(tǒng)本身從圖書館內(nèi)部提供信息資源朝著館際之間資源共享和信息資源的多媒體化[2-3]方向發(fā)展。圖書館管理系統(tǒng)實(shí)時(shí)顯示圖書的庫(kù)存數(shù)量、種類,以及圖書的借閱情況,有助于動(dòng)態(tài)的分析和決策,提高了圖書館的管理水平,提高了工作效率。

三、基于圖書館管理系統(tǒng)的藏書剔除

在圖書館集成管理系統(tǒng)得到普遍應(yīng)用的當(dāng)前,依托各集成管理系統(tǒng)的功能,跟蹤特定讀者群,核實(shí)電子文獻(xiàn)、各種數(shù)據(jù)庫(kù)、虛擬館藏的覆蓋面、特色和利用情況。與對(duì)口院系、各專業(yè)尤其重點(diǎn)學(xué)科、基地建立長(zhǎng)期的聯(lián)系,掌握對(duì)口院系學(xué)科的專業(yè)設(shè)置、課程設(shè)置及學(xué)生和教師用書需求。根據(jù)入藏、流通、閱覽統(tǒng)計(jì),確定反映本館利用狀況的藏書周轉(zhuǎn)基點(diǎn),研究剔除一部分非本館特色學(xué)科的文獻(xiàn)、剔除一部分少人問津的文獻(xiàn),對(duì)藏書結(jié)構(gòu)、滿足率、利用率造成的影響。傳統(tǒng)的藏書剔除工作也可以根據(jù)計(jì)劃進(jìn)度、一個(gè)庫(kù)一個(gè)庫(kù)、一類一類、持續(xù)不斷地開展,形成一個(gè)經(jīng)常性、制度化、規(guī)范化、以3~5年為周期的、按主題(或按類別)的藏書剔除制度。

利用計(jì)算機(jī)很容易列出長(zhǎng)期滯架文獻(xiàn)的清單,但是要從這幾十萬(wàn)條數(shù)據(jù)中判斷出哪些圖書應(yīng)該在這一批剔除的確有困難。況且,判斷館藏圖書是否有使用價(jià)值,使用頻率的高低只是其中的一個(gè)方面,使用頻率的高低并不一定與使用價(jià)值的大小同步,滯架書刊中不乏一些內(nèi)容質(zhì)量、及其時(shí)效性都是好的或比較好的書刊,不應(yīng)屬于剔除之列。因此必須啟用專用的系統(tǒng),把具體的量化指標(biāo)限定條件輸入計(jì)算機(jī),如歷年利用率要求、出版時(shí)間要求、復(fù)本數(shù)量要求、外觀狀態(tài)要求、修補(bǔ)次數(shù)要求等,其中連續(xù)利用率、出版時(shí)間、復(fù)本數(shù)量可以從數(shù)據(jù)庫(kù)獲得,外觀狀態(tài)和修補(bǔ)次數(shù)如果有記錄以記錄為準(zhǔn),沒有記錄則認(rèn)定外觀狀態(tài)正常、修補(bǔ)次數(shù)為零。在計(jì)算機(jī)分類分類平成檢索之后,記錄符合條件的分類結(jié)果,生成一個(gè)符合量化指標(biāo)的表單。面對(duì)學(xué)科知識(shí)千差萬(wàn)別、書品質(zhì)量參差不齊的具體藏書,不是用幾條原則標(biāo)準(zhǔn)就能決定取舍的,隨時(shí)都可出現(xiàn)的一些實(shí)際問題。所以還需具體問題具體分析,還須對(duì)藏書進(jìn)行逐類審查、逐種鑒別的,任何僵化的、一刀切的做法是不可取的,因此需要對(duì)擬剔除文獻(xiàn)進(jìn)行必要的復(fù)審。

對(duì)于通過復(fù)核的擬剔文獻(xiàn),才可以分門別類交付工作人員把對(duì)應(yīng)的文獻(xiàn)逐一從架位上按順序抽取出來,按順序集中存放。下架后應(yīng)設(shè)一道復(fù)核工序,即由復(fù)核人員對(duì)下架的剔除文獻(xiàn)進(jìn)行認(rèn)真核對(duì),以防止誤剔、漏剔。同時(shí),對(duì)獲批下架文獻(xiàn)進(jìn)行相應(yīng)的數(shù)據(jù)處理,把剔除文獻(xiàn)的去向反映到相應(yīng)的數(shù)據(jù)庫(kù),調(diào)整庫(kù)位,生成新的排架號(hào)。

藏書剔除的主要目的是為了提高藏書質(zhì)量,讓使用率高的藏書留在一線書庫(kù)的開架書位上,方便讀者取用,提高流通書位的利用率,控制開館成本。斯坦利J斯洛特的相關(guān)研究表明:“當(dāng)一個(gè)圖書館的核心藏書占該館現(xiàn)有圖書的72~84%時(shí),可以保證滿足99%的讀者使用需求”,換句話說,如果一個(gè)圖書館將其現(xiàn)有藏書的16~28%圖書予以剔除,會(huì)對(duì)1%的讀者需求產(chǎn)生影響。所以儲(chǔ)藏剔除不能將剔除文獻(xiàn)輕率地拋棄,對(duì)尚有一定參考、利用價(jià)值的書刊,優(yōu)先移至貯藏書庫(kù),密集排架,以為讀者可能產(chǎn)生的特殊文獻(xiàn)需求提供保障。通過對(duì)藏書剔除相關(guān)問題的研究、分析和解決,可從藏書是否符合讀者群的需求、藏書分類是否恰當(dāng)、藏書著錄是否準(zhǔn)確、藏書排架是否符合讀者習(xí)慣等一個(gè)個(gè)側(cè)面為館員改進(jìn)工作提供了非常重要的反饋信息,進(jìn)而有利于修正和調(diào)整資源建設(shè)的方針和政策,有利于管理水平的提高。

四、結(jié)束語(yǔ)

藏書剔除是藏書建設(shè)的重要環(huán)節(jié),在當(dāng)前圖書館集成管理系統(tǒng)得到普遍應(yīng)用的前提下,依托圖書館集成管理系統(tǒng)的功能,可為藏書剔除工作提供更客觀、更準(zhǔn)確的依據(jù),并有效地保障藏書剔除的進(jìn)度和質(zhì)量。

參考文獻(xiàn):

篇2

2圖書館光盤管理系統(tǒng)中面臨的著作權(quán)問題

圖書館光盤管理系統(tǒng)為讀者在電子資源檢索室及圖書館網(wǎng)站上瀏覽和下載光盤文獻(xiàn)資料提供服務(wù),這樣將大大促進(jìn)作品的傳播和使用。因此,作品的版權(quán)人不可能不關(guān)心這樣的問題:將光盤內(nèi)容存儲(chǔ)到服務(wù)器中是否屬于版權(quán)人的專有權(quán)利?是否應(yīng)該事先獲得該作品版權(quán)人的許可?是否違反了著作權(quán)法?

2.1復(fù)制權(quán)

我國(guó)著作權(quán)法規(guī)定:“圖書館、檔案館、紀(jì)念館、博物館、美術(shù)館等為陳列或者保存版本的需要,復(fù)制本館的作品,可以不經(jīng)著作權(quán)人許可,不向其支付報(bào)酬,但應(yīng)當(dāng)指明作者姓名、作品名稱,并且不得侵犯著作權(quán)人依照本法享有的其他權(quán)利?!眻D書館開發(fā)的光盤管理系統(tǒng),將隨書光盤資源上傳到圖書館專用服務(wù)器,改變的只是作品的載體,其作品內(nèi)容本身的完整性并沒有改變,是一種從數(shù)字到數(shù)字的復(fù)制,所以此時(shí)的數(shù)字化可以不經(jīng)過版權(quán)人的許可,也不必付費(fèi)。但是高校圖書館必須嚴(yán)格遵守相關(guān)法律條例,保證隨書光盤的開發(fā)和利用控制在合理使用的范圍內(nèi)。

2.2信息網(wǎng)絡(luò)傳播權(quán)

隨書光盤管理系統(tǒng)是在網(wǎng)絡(luò)環(huán)境下進(jìn)行的,必然涉及信息網(wǎng)絡(luò)傳播權(quán)。對(duì)于高校圖書館而言,各圖書館應(yīng)認(rèn)真遵守《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》的規(guī)定:“圖書館、檔案館、紀(jì)念館、博物館、美術(shù)館等可以不經(jīng)著作權(quán)人許可,通過信息網(wǎng)絡(luò)向本館館舍內(nèi)服務(wù)對(duì)象提供本館收藏的合法出版的數(shù)字作品和依法為陳列或者保存版本的需要以數(shù)字化形式復(fù)制的作品,不向其支付報(bào)酬,但不得直接或者間接獲得經(jīng)濟(jì)利益?!眻D書館要全面監(jiān)控讀者使用各種資源情況,有效規(guī)避讀者在信息使用過程中侵犯權(quán)利人的知識(shí)產(chǎn)權(quán)。

2.3署名權(quán)、修改權(quán)、保護(hù)作品完整權(quán)

光盤管理系統(tǒng)的開發(fā)過程主要涉及著作權(quán)人的人身權(quán),雖然不必取得著作權(quán)人許可,但要尊重作者的署名權(quán)、修改權(quán)、保護(hù)作品完整權(quán):在對(duì)光盤的編輯中應(yīng)指明作者姓名、不得擅自改變;也不能擅自對(duì)作品進(jìn)行修改、更正補(bǔ)充、篡改,防止作者的名譽(yù)、聲望受到損害,維護(hù)作品的純潔性。

3防范圖書館光盤管理系統(tǒng)中的著作權(quán)問題

3.1對(duì)館員進(jìn)行知識(shí)產(chǎn)權(quán)知識(shí)培訓(xùn)

嚴(yán)防盜版光盤的入藏在各種盜版活動(dòng)猖獗的今天,圖書館必須開展知識(shí)產(chǎn)權(quán)法宣傳與培訓(xùn),提高圖書館工作人員的知識(shí)產(chǎn)權(quán)意識(shí)和法律素質(zhì),對(duì)工作中容易侵權(quán)的問題要特別注意:選擇正規(guī)出版社的出版物,保護(hù)著者版權(quán),不購(gòu)買低價(jià)盜版光盤,加強(qiáng)隨書光盤訂購(gòu)、入藏、驗(yàn)收等環(huán)節(jié)的管理,嚴(yán)防盜版光盤的入藏與流通,一經(jīng)發(fā)現(xiàn)應(yīng)堅(jiān)決剔除。真正做到從行動(dòng)上去保護(hù)知識(shí)產(chǎn)權(quán),避免圖書館侵權(quán)行為的發(fā)生,首先要具備較高的知識(shí)產(chǎn)權(quán)保護(hù)意識(shí),

3.2正確利用“合理使用”制度

圖書館是一個(gè)為教育服務(wù)、非營(yíng)利性信息服務(wù)機(jī)構(gòu),為促進(jìn)信息資源的共建共享,世界各國(guó)的現(xiàn)行著作權(quán)法都在不同程度上允許社會(huì)公眾的合理使用。圖書館光盤管理系統(tǒng)是將本館的館藏光盤進(jìn)行數(shù)字化處理,是基于服務(wù)的并且無任何營(yíng)利目的,在本館內(nèi)、在原讀者范圍內(nèi)使用,可以事先不征得著作權(quán)人的同意,也無須支付任何費(fèi)用,但如果著作權(quán)人聲明其作品不允許復(fù)制,就不能將其作品拷貝并在網(wǎng)上傳播。圖書館應(yīng)當(dāng)以知識(shí)產(chǎn)權(quán)保護(hù)為基礎(chǔ),充分利用“合理使用”這一權(quán)力,以保證最大限度地實(shí)現(xiàn)信息資源的合理使用,從而進(jìn)一步擴(kuò)大信息資源共享的范圍,但同時(shí)也應(yīng)把握好尺度,嚴(yán)格遵循合理使用的范圍、權(quán)限。

3.3提高讀者知識(shí)產(chǎn)權(quán)意識(shí)

圖書館要對(duì)讀者進(jìn)行知識(shí)產(chǎn)權(quán)保護(hù)的宣講活動(dòng),在數(shù)據(jù)庫(kù)主頁(yè)中版權(quán)公告,提醒讀者合理、合法使用數(shù)據(jù)庫(kù)資源,對(duì)讀者進(jìn)行有效的引導(dǎo)。圖書館還應(yīng)盡到注意義務(wù),對(duì)有可能發(fā)生的讀者侵權(quán)行為進(jìn)行警示,提醒讀者使用資源時(shí)尊重知識(shí)產(chǎn)權(quán),不得將從圖書館獲得的資源用于任何商業(yè)目的,同時(shí)一旦發(fā)現(xiàn)侵權(quán)內(nèi)容,立即采取適當(dāng)措施予以移除。只有圖書館廣大讀者確確實(shí)實(shí)地提高了知識(shí)產(chǎn)權(quán)保護(hù)的意識(shí),才能從根本上杜絕使用中侵權(quán)行為的發(fā)生,有效地規(guī)避知識(shí)產(chǎn)權(quán)風(fēng)險(xiǎn)。

3.4做好技術(shù)防范

首先,圖書館要嚴(yán)格控制傳播范圍,設(shè)置用戶賬號(hào)和密碼,中國(guó)管理信息化ChinaManagementInformationization確保光盤管理系統(tǒng)僅校內(nèi)讀者在館域網(wǎng)或校園網(wǎng)內(nèi)登錄訪問;還可以通過設(shè)置防火墻的方法來有效地將互聯(lián)網(wǎng)與內(nèi)部網(wǎng)隔離,防止不在授權(quán)范圍內(nèi)的網(wǎng)上讀者使用這些信息。其次,通過先進(jìn)的計(jì)算機(jī)技術(shù)限制讀者下載,只允許讀者在線瀏覽,保護(hù)著作權(quán)所有人的利益。

篇3

因此本人結(jié)合開入式圖書館的要求,對(duì)MSSQLServer2000數(shù)據(jù)庫(kù)管理系統(tǒng)、SQL語(yǔ)言原理、Delphi應(yīng)用程序設(shè)計(jì),Delphi數(shù)據(jù)庫(kù)技術(shù)進(jìn)行了較深入的學(xué)習(xí)和應(yīng)用,主要完成對(duì)圖書管理系統(tǒng)的需求分析、功能模塊劃分、數(shù)據(jù)庫(kù)模式分析,并由此設(shè)計(jì)了數(shù)據(jù)庫(kù)結(jié)構(gòu)和應(yīng)用程序。系統(tǒng)運(yùn)行結(jié)果證明,本文所設(shè)計(jì)的圖書管理系統(tǒng)可以滿足借閱者、圖書館工作人員和高級(jí)管理員三方面的需要。

第一章對(duì)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)和圖書管理系統(tǒng)進(jìn)行了簡(jiǎn)明的介紹,并分析了開發(fā)圖書管理系統(tǒng)所應(yīng)進(jìn)行的工作。

第二章對(duì)數(shù)據(jù)庫(kù)的設(shè)計(jì)和SQL語(yǔ)言的使用進(jìn)行了系統(tǒng)分析,為深入理解數(shù)據(jù)庫(kù)應(yīng)用打下了基礎(chǔ)。

第三章學(xué)習(xí)了具體的開發(fā)工具Delphi6.0,對(duì)其數(shù)據(jù)庫(kù)組件,SQL語(yǔ)言在Delphi中的應(yīng)用等數(shù)據(jù)庫(kù)編程關(guān)鍵技術(shù)進(jìn)行了系統(tǒng)的介紹。

第四章分析了圖書管理信息系統(tǒng)的應(yīng)用需求,按照數(shù)據(jù)庫(kù)設(shè)計(jì)理論一步一步地給出了系統(tǒng)需求說明書、局部ER圖、全局ER圖、系統(tǒng)關(guān)系模式,子模式,利用MSSQLServer2000建立了數(shù)據(jù)庫(kù)

第五章進(jìn)行了具體的程序設(shè)計(jì),具體劃分了三類用戶的操作權(quán)限,設(shè)計(jì)了了三個(gè)操作界面。實(shí)現(xiàn)了數(shù)據(jù)庫(kù)表的瀏覽,記錄的添加、刪除和修改,報(bào)表的生成,實(shí)現(xiàn)了多數(shù)據(jù)庫(kù)表的連接操作,實(shí)現(xiàn)了多條件查詢和模糊查詢,并靈活實(shí)現(xiàn)了對(duì)不可更新查詢結(jié)果集的更新操作,實(shí)現(xiàn)了主從表操作,實(shí)現(xiàn)了密碼維護(hù)功能,最后,系統(tǒng)還可以導(dǎo)入數(shù)據(jù)庫(kù)以對(duì)任意同結(jié)構(gòu)的數(shù)據(jù)庫(kù)進(jìn)行操作。

設(shè)計(jì)充分利用Delphi6、MSSQLServer2000數(shù)據(jù)庫(kù)技術(shù)的強(qiáng)大力量,提高了編程效率和可靠性。

關(guān)鍵詞:數(shù)據(jù)庫(kù),SQL語(yǔ)言,MSSQLServer,Delphi6,

數(shù)據(jù)庫(kù)組件,圖書管理,窗體,listview組件

目錄

摘要………………………………………………………………………………I

第一章緒論……………………………………………………………………1

§1.1數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)簡(jiǎn)介………………………………………………1

§1.2圖書管理系統(tǒng)………………………………………………………4

§1.3本文所做的主要工作……………………………………………………6

第二章數(shù)據(jù)庫(kù)理論基礎(chǔ)…………………………………………………………7

§2.1數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)及范式分析……………………………………………7

§2.2SQL語(yǔ)言介紹…………………………………………………………………11

2.2.1SQL基礎(chǔ)…………………………………………………………………11

2.2.2SQL語(yǔ)句…………………………………………………………………12

第三章應(yīng)用系統(tǒng)開發(fā)工具…………………………………………………16

§3.1Delphi6.0VCL組件的體系結(jié)構(gòu)………………………………………16

§3.2數(shù)據(jù)庫(kù)組件介紹……………………………………………………………17

§3.3SQL語(yǔ)言在Delphi中的應(yīng)用……………………………………………18

§3.4MSSQLServer簡(jiǎn)述……………………………………………………22

第四章圖書管理系統(tǒng)設(shè)計(jì)分析…………………………………………24

§4.1應(yīng)用需求分析……………………………………………………………24

§4.2系統(tǒng)功能模塊劃分………………………………………………………29

§4.3系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)…………………………………………………………29

第五章圖書管理系統(tǒng)應(yīng)用程序設(shè)計(jì)……………………………………37

§5.1系統(tǒng)窗體模塊組成…………………………………………………………37

§5.2數(shù)據(jù)模塊窗體的設(shè)置………………………………………………………37

§5.3啟動(dòng)畫面的實(shí)現(xiàn)……………………………………………………………38

§5.4用戶登錄窗體的的實(shí)現(xiàn)………………………………………………………39

§5.5用戶密碼認(rèn)證窗體的的實(shí)現(xiàn)…………………………………………………39

§5.6借閱者服務(wù)模塊的實(shí)現(xiàn)……………………………………………………40

5.6.1圖書查詢功能的實(shí)現(xiàn)…………………………………………………41

5.6.2借閱者登錄功能的實(shí)現(xiàn)…………………………………………………42

5.6.3借閱者借閱情況功能的實(shí)現(xiàn)……………………………………………43

5.6.4借閱者個(gè)人資料維護(hù)功能的實(shí)現(xiàn)………………………………………47

§5.7工作人員-圖書借閱/歸還模塊的實(shí)現(xiàn)………………………………………49

5.7.1工作人員進(jìn)行圖書借閱功能實(shí)現(xiàn)………………………………………50

5.7.2工作人員進(jìn)行圖書歸還功能實(shí)現(xiàn)………………………………………53

§5.8圖書館管理員模塊的實(shí)現(xiàn)……………………………………………54

5.8.1圖書館管理員圖書管理功能的實(shí)現(xiàn)……………………………………55

5.8.2圖書館管理員工作人員和管理員管理功能的實(shí)現(xiàn)……………………58

5.8.3圖書館管理員修改圖書類別及統(tǒng)記功能的實(shí)現(xiàn)………………………60

5.8.4圖書館管理員借閱者管理功能的實(shí)現(xiàn)…………………………………62

5.8.5圖書館維護(hù)借閱者管理功能的實(shí)現(xiàn)…………………………………62

5.8.6圖書館身份維護(hù)功能的實(shí)現(xiàn)………………………………………64

5.8.7圖書館借閱者統(tǒng)計(jì)功能的實(shí)現(xiàn)…………………………………65

5.8.8圖書館統(tǒng)計(jì)借閱過期記錄功能的實(shí)現(xiàn)…………………………67

§5.9系統(tǒng)信息顯示的實(shí)現(xiàn)…………………………………………………68

第六章結(jié)束語(yǔ)………………………………………………………………69

致謝………………………………………………………………………………70

參考書目……………………………………………………………………………70

第一章緒論

§1.1數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)簡(jiǎn)介

在數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)之前,對(duì)開發(fā)數(shù)據(jù)庫(kù)的基本概念應(yīng)當(dāng)了解,對(duì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)、開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序的步驟、開發(fā)體系及方法都應(yīng)當(dāng)有相當(dāng)清晰的了解和認(rèn)識(shí)。

數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)的目標(biāo)是建立一個(gè)滿足用戶長(zhǎng)期需求的產(chǎn)品。開發(fā)的主要過程為:理解用戶的需求,然后,把它們轉(zhuǎn)變?yōu)橛行У臄?shù)據(jù)庫(kù)設(shè)計(jì)。把設(shè)計(jì)轉(zhuǎn)變?yōu)閷?shí)際的數(shù)據(jù)庫(kù),并且這些數(shù)據(jù)庫(kù)帶有功能完備、高效能的應(yīng)用。

數(shù)據(jù)庫(kù)技術(shù)在計(jì)算機(jī)軟件鄰域研究中一直是非常重要的主題,產(chǎn)生于60年代,30多年來數(shù)據(jù)庫(kù)技術(shù)得到了迅速發(fā)展,并已形成較為完整的理論體系和一大批實(shí)用系統(tǒng)。并且,近年來,隨著WorldWideWeb(WWW)的猛增及Internet技術(shù)的迅速發(fā)展,使得數(shù)據(jù)庫(kù)技術(shù)之時(shí)成為最熱門技術(shù)之一。

1.1.1數(shù)據(jù)庫(kù)

如圖1.1顯示了數(shù)據(jù)庫(kù)系統(tǒng)的主要組件。數(shù)據(jù)庫(kù)由DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng))處理,DBMS則由開發(fā)人員和用戶通過應(yīng)用程序直接或間接地使用。它主要包括四個(gè)要素:用戶數(shù)據(jù)、元數(shù)據(jù)、索引和應(yīng)用元數(shù)據(jù)。

1.1.1.1用戶數(shù)據(jù)

目前,大多數(shù)主流數(shù)據(jù)庫(kù)管理系統(tǒng)把用戶數(shù)據(jù)表示為關(guān)系?,F(xiàn)在把關(guān)系看作數(shù)據(jù)表。表的列包含域或?qū)傩?,表的行包含?duì)應(yīng)業(yè)務(wù)環(huán)境中的實(shí)體的記錄。并非所有的關(guān)系都同樣符合要求,有些關(guān)系比其它關(guān)系更結(jié)構(gòu)化一些。第二章描述了一個(gè)用以產(chǎn)生良好結(jié)構(gòu)關(guān)系的過程,稱作規(guī)范化。

為了對(duì)比結(jié)構(gòu)差的關(guān)系和結(jié)構(gòu)好的關(guān)系之間的差別,以本文所設(shè)計(jì)的圖書管理系統(tǒng)中的圖書和圖書借閱者關(guān)系為例來說明,假若設(shè)計(jì)關(guān)系R1(借書證號(hào),姓名,性別,身份編號(hào),身份證,聯(lián)系電話,圖書編號(hào),圖書名稱,圖書類別,作者,出版社,出版日期,備注,價(jià)格,數(shù)量);這個(gè)關(guān)系的問題出在它有關(guān)于兩個(gè)不同主題的數(shù)據(jù),就是圖書借閱者和圖書。用這種方式構(gòu)成的關(guān)系在進(jìn)行修改時(shí),會(huì)出現(xiàn)問題。因?yàn)橐粋€(gè)圖書借閱者可能借閱多本書,如果某個(gè)圖書借閱者的某個(gè)字段(如聯(lián)系電話)出現(xiàn)變更,它所借閱的圖書記錄(可能多個(gè))也就必須變化,這是不好的。因此數(shù)據(jù)用兩個(gè)關(guān)系表示更好?,F(xiàn)在如果某圖書借閱者改變了它的聯(lián)系電話,只有關(guān)系(表)user的對(duì)應(yīng)行需要改變。當(dāng)然,要想產(chǎn)生一個(gè),顯示圖書名稱及其借閱者聯(lián)系電話的報(bào)表,就需要將這兩個(gè)表的行結(jié)合起來。結(jié)果表明,將關(guān)系分別存儲(chǔ),在生成報(bào)表的時(shí)候?qū)⑺鼈兘Y(jié)合起來,比把它們存儲(chǔ)在一個(gè)合成的表中更好。

user(借書證號(hào),姓名,性別,身份編號(hào),身份證,聯(lián)系電話,)

book(圖書編號(hào),圖書名稱,圖書類別,作者,出版社,出版日期,備注,價(jià)格,數(shù)量)

1.1.1.2元數(shù)據(jù)

數(shù)據(jù)庫(kù)是自描述的,這就意味著它自身包含了它的結(jié)構(gòu)的描述,這種結(jié)構(gòu)的描述稱作元數(shù)據(jù)。因?yàn)镈BMS產(chǎn)品是用來存儲(chǔ)和操縱表的,所以大多數(shù)產(chǎn)品把元數(shù)據(jù)以表的形式存儲(chǔ),有時(shí)稱作系統(tǒng)表。這些系統(tǒng)表存儲(chǔ)了數(shù)據(jù)庫(kù)中表的情況,指出每一個(gè)表中有多少列,那一列是主關(guān)鍵字,每一列的數(shù)據(jù)類型的描述,它也存儲(chǔ)索引、關(guān)鍵字、規(guī)則和數(shù)據(jù)庫(kù)結(jié)構(gòu)的其他部分。

在表中存儲(chǔ)元數(shù)據(jù)不僅對(duì)DBMS是有效的,對(duì)用戶也是方便的,因?yàn)樗麄兛梢允褂门c查詢用戶數(shù)據(jù)同樣的查詢工具來查詢?cè)獢?shù)據(jù)。本文第二章所介紹的SQL語(yǔ)言可以同時(shí)用于元數(shù)據(jù)和用戶數(shù)據(jù)。

1.1.1.3索引

第三種類型的數(shù)據(jù)改進(jìn)了數(shù)據(jù)庫(kù)的性能和可訪問性,這種數(shù)據(jù)經(jīng)常稱作開銷數(shù)據(jù),盡管有時(shí)也采用其他類型的數(shù)據(jù)結(jié)構(gòu),如鏈表,但它主要還是索引。索引可以用來排序和快速訪問數(shù)據(jù)。下面以本人的圖書管理信息系統(tǒng)中的book表為例來說明。

假定數(shù)據(jù)在磁盤上是按’圖書編號(hào)’的遞增順序排列的,用戶想打印一個(gè)按’圖書名稱’排序的圖書數(shù)據(jù)報(bào)表。為此,所有的數(shù)據(jù)都需要從源表中提取出來并排序,除非表很小,否則這是一個(gè)很費(fèi)時(shí)的過程?;蛘?,可以在‘圖書名稱’字段上創(chuàng)建一個(gè)索引,該索引的條目按照‘圖書名稱’排序,這樣,該索引的條目可以讀出來,并用來按順序訪問book數(shù)據(jù)。

索引用于快速訪問數(shù)據(jù)。例如,一個(gè)用戶只想訪問book表中‘圖書類別’值為‘01’的那些學(xué)生。如果沒有索引,則必須搜索整個(gè)源表;但有了索引之后,可以找到索引條目,并使用它來挑選所有合適的行。

索引對(duì)排序和查找是有幫助的,但要付出代價(jià)。book表中的行每次改變時(shí),索引也必須改變,這意味著索引并非隨意的,應(yīng)該在真正需要時(shí)保存。

1.1.1.4應(yīng)用元數(shù)據(jù)

存儲(chǔ)在數(shù)據(jù)庫(kù)中的第四種數(shù)據(jù)是應(yīng)用元數(shù)據(jù),它用來存儲(chǔ)用戶窗體、報(bào)表、查詢和其他形式的查詢組件。并非所有的DBMS都支持應(yīng)用組件,支持組件的DBMS也不一定把全部組件的結(jié)構(gòu)作為應(yīng)用元數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中。然而,大多數(shù)現(xiàn)代的DBMS產(chǎn)品存儲(chǔ)這種數(shù)據(jù)作為數(shù)據(jù)庫(kù)的一部分。一般來說,數(shù)據(jù)庫(kù)開發(fā)人員和用戶都不直接訪問應(yīng)用元數(shù)據(jù),想反,他們通過DBMS中的工具來處理這些數(shù)據(jù)。

MSSQLServer2000中就支持窗體、存儲(chǔ)過程等應(yīng)用元數(shù)據(jù)。

1.1.2數(shù)據(jù)庫(kù)管理系統(tǒng)

數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)是指數(shù)據(jù)庫(kù)系統(tǒng)中管理數(shù)據(jù)的軟件系統(tǒng)。DBMS是數(shù)據(jù)庫(kù)系統(tǒng)的核心組成部分。對(duì)數(shù)據(jù)庫(kù)的一切操作,包括定義、更新及各種控制,都是通過DBMS進(jìn)行的。DBMS總是基于某種數(shù)據(jù)模型,可以把DBMS看成是某種數(shù)據(jù)模型在計(jì)算機(jī)系統(tǒng)上的具體實(shí)現(xiàn)。根據(jù)數(shù)據(jù)模型的不同,DBMS可以分成層次型、網(wǎng)狀型、關(guān)系型、面向?qū)ο笮偷?。MSSQLServer2000就是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。

關(guān)系模型。關(guān)系模型主要是用二維表格結(jié)構(gòu)表達(dá)實(shí)體集,用外鍵表示實(shí)體間聯(lián)系。關(guān)系模型是由若干個(gè)關(guān)系模式組成的集合。關(guān)系模式相當(dāng)于前面提到的記錄類型,它的實(shí)例稱為關(guān)系,每個(gè)關(guān)系實(shí)際上是一張二維表格。

關(guān)系模型和層次、網(wǎng)狀模型的最大判別是用關(guān)鍵碼而不是用指針導(dǎo)航數(shù)據(jù),表格簡(jiǎn)單用戶易懂,編程時(shí)并不涉及存儲(chǔ)結(jié)構(gòu),訪問技術(shù)等細(xì)節(jié)。關(guān)系模型是數(shù)學(xué)化模型。SQL語(yǔ)言是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)化語(yǔ)言,已得到了廣泛的應(yīng)用。

如圖1.1所示,DBMS的特點(diǎn)和功能可以分為三個(gè)子系統(tǒng):設(shè)計(jì)工具子系統(tǒng)、運(yùn)行子系統(tǒng)和DBMS引擎。

設(shè)計(jì)子系統(tǒng)有一個(gè)方便數(shù)據(jù)庫(kù)及其應(yīng)用創(chuàng)建的工具集。它典型地包含產(chǎn)生表、窗體、查詢和報(bào)表的工具。DBMS產(chǎn)品還提供編程語(yǔ)言和對(duì)編程語(yǔ)言的接口。

運(yùn)行子系統(tǒng)處理用設(shè)計(jì)子系統(tǒng)開發(fā)的應(yīng)用組件。它所包含的運(yùn)行處理器用來處理窗體和數(shù)據(jù)庫(kù)的數(shù)據(jù)交互,以及回答查詢和打印報(bào)表等。

DBMS引擎從其他兩個(gè)組件接受請(qǐng)求,并把它們翻譯成對(duì)操作系統(tǒng)的命令,以便讀寫物理介質(zhì)上的數(shù)據(jù)。DBMS引擎還涉及事務(wù)管理、鎖、備份和恢復(fù)。

1.1.3創(chuàng)建數(shù)據(jù)庫(kù)

1.1.3.1數(shù)據(jù)庫(kù)模式

數(shù)據(jù)庫(kù)模式定義了數(shù)據(jù)庫(kù)的結(jié)構(gòu)、表、關(guān)系、域和業(yè)務(wù)規(guī)則。數(shù)據(jù)庫(kù)模式是一種設(shè)計(jì),數(shù)據(jù)庫(kù)和應(yīng)用正是建立在此基礎(chǔ)上的。

域是一列可能擁有的值的集合。必須為每一個(gè)表的每一定域。除了數(shù)據(jù)的物理格式外,還需要確定是否有些域?qū)Ρ韥碚f是唯一的。

數(shù)據(jù)庫(kù)模式的最后一個(gè)要素是業(yè)務(wù)規(guī)則,它是對(duì)需要反映在數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)應(yīng)用程序中的業(yè)務(wù)活動(dòng)的約束。業(yè)務(wù)規(guī)則是模式的一個(gè)重要部分,因?yàn)樗麄冎付藷o論什么數(shù)據(jù)變化到達(dá)DBMS引擎,允許的數(shù)據(jù)值必須滿足的約束。不管無效的數(shù)據(jù)變化請(qǐng)求是來自窗體的用戶、查詢/修改請(qǐng)求還是應(yīng)用程序,DBMS都應(yīng)該拒絕。

遺憾的是,不同的DBMS產(chǎn)品用不同的方法實(shí)施業(yè)務(wù)規(guī)則。在某些情況下,DBMS產(chǎn)品不具備實(shí)施必要業(yè)務(wù)規(guī)則的能力,必須以代碼形式把它們編入應(yīng)用程序。

1.1.3.2創(chuàng)建表

1.1.3.3定義聯(lián)系

1.1.4應(yīng)用組件

數(shù)據(jù)庫(kù)應(yīng)用包括窗體、查詢、報(bào)表、菜單和應(yīng)用程序。

§1.2圖書管理系統(tǒng)

當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代。在各行各業(yè)中離不開信息處理,這正是計(jì)算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計(jì)算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。

尤其對(duì)于復(fù)雜的信息管理,計(jì)算機(jī)能夠充分發(fā)揮它的優(yōu)越性。計(jì)算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。本系統(tǒng)就是為了管理好圖書館信息而設(shè)計(jì)的。

圖書館作為一種信息資源的集散地,圖書和用戶借閱資料繁多,包含很多的信息數(shù)據(jù)的管理,現(xiàn)今,有很多的圖書館都是初步開始使用,甚至尚未使用計(jì)算機(jī)進(jìn)行信息管理。根據(jù)調(diào)查得知,他們以前對(duì)信息管理的主要方式是基于文本、表格等紙介質(zhì)的手工處理,對(duì)于圖書借閱情況(如借書天數(shù)、超過限定借書時(shí)間的天數(shù))的統(tǒng)計(jì)和核實(shí)等往往采用對(duì)借書卡的人工檢查進(jìn)行,對(duì)借閱者的借閱權(quán)限、以及借閱天數(shù)等用人工計(jì)算、手抄進(jìn)行。數(shù)據(jù)信息處理工作量大,容易出錯(cuò);由于數(shù)據(jù)繁多,容易丟失,且不易查找??偟膩碚f,缺乏系統(tǒng),規(guī)范的信息管理手段。盡管有的圖書館有計(jì)算機(jī),但是尚未用于信息管理,沒有發(fā)揮它的效力,資源閑置比較突出,這就是管理信息系統(tǒng)的開發(fā)的基本環(huán)境。

數(shù)據(jù)處理手工操作,工作量大,出錯(cuò)率高,出錯(cuò)后不易更改。圖書館采取手工方式對(duì)圖書借閱情況進(jìn)行人工管理,由于信息比較多,圖書借閱信息的管理工作混亂而又復(fù)雜;一般借閱情況是記錄在借書證上,圖書的數(shù)目和內(nèi)容記錄在文件中,圖書館的工作人員和管理員也只是當(dāng)時(shí)對(duì)它比較清楚,時(shí)間一長(zhǎng),如再要進(jìn)行查詢,就得在眾多的資料中翻閱、查找了,造成查詢費(fèi)時(shí)、費(fèi)力。如要對(duì)很長(zhǎng)時(shí)間以前的圖書進(jìn)行更改就更加困難了。

基于這此問題,我認(rèn)為有必要建立一個(gè)圖書管理系統(tǒng),使圖書管理工作規(guī)范化,系統(tǒng)化,程序化,避免圖書管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢和修改圖書情況。

§1.1系統(tǒng)所做工作

1)了解應(yīng)用開發(fā)工具的現(xiàn)狀

2)DelPHi6.0編程基礎(chǔ)

3)MSSQLServer基礎(chǔ)

4)設(shè)計(jì)數(shù)據(jù)庫(kù);設(shè)計(jì)界面

5)開發(fā)數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)實(shí)現(xiàn)的一些功能有

l數(shù)據(jù)和數(shù)據(jù)說明的醒目顯示;

l多條件的查詢、多條記錄的檢索、模糊查詢;

l數(shù)據(jù)文件某種存儲(chǔ)格式導(dǎo)入數(shù)據(jù)窗體,經(jīng)過數(shù)據(jù)完整性校驗(yàn)存入數(shù)據(jù)庫(kù);

l數(shù)據(jù)庫(kù)安全性的設(shè)計(jì);

l數(shù)據(jù)庫(kù)的設(shè)計(jì)、數(shù)據(jù)接口、界面的設(shè)計(jì)。

§1.3本文所作工作

緒論部分對(duì)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的結(jié)構(gòu)、開發(fā)進(jìn)行了簡(jiǎn)要介紹,分析了圖書管理信息系統(tǒng)設(shè)計(jì)的特點(diǎn)和任務(wù)。

第二章介紹了數(shù)據(jù)庫(kù)的設(shè)計(jì)和范式分析,并系統(tǒng)介紹了SQL語(yǔ)言,為設(shè)計(jì)和理解應(yīng)用程序做了鋪墊。

第三章對(duì)系統(tǒng)介紹了Delphi6.0的數(shù)據(jù)庫(kù)編程技術(shù)、SQL語(yǔ)言在Delphi6.0中的應(yīng)用、MSSQLServer基礎(chǔ)。

第四章分析了圖書管理系統(tǒng)的應(yīng)用需求,設(shè)計(jì)了系統(tǒng)的數(shù)據(jù)庫(kù)結(jié)構(gòu),并根據(jù)需求對(duì)系統(tǒng)功能進(jìn)行了劃分和細(xì)化。

第五章根據(jù)第四章的設(shè)計(jì)結(jié)果利用MSSQLServer2000和Delphi6.0進(jìn)行了具體的應(yīng)用程序設(shè)計(jì)。

總結(jié)部分介紹了設(shè)計(jì)體會(huì)和編程體會(huì),并指出了系統(tǒng)設(shè)計(jì)中的不足和改進(jìn)的方向。

第二章數(shù)據(jù)庫(kù)理論基礎(chǔ)

一個(gè)成功的信息管理系統(tǒng),是建立在許多條件之上的,而數(shù)據(jù)庫(kù)是其中一個(gè)非常重要的條件和關(guān)鍵技術(shù)。

信息管理系統(tǒng)所涉及的數(shù)據(jù)庫(kù)設(shè)計(jì)分五個(gè)步驟:數(shù)據(jù)庫(kù)需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)與加載測(cè)試。

(1)數(shù)據(jù)庫(kù)需求分析的任務(wù)是將業(yè)務(wù)管理單證流化為數(shù)據(jù)流,劃分主題之間的邊界,繪制出DFD圖,并完成相應(yīng)的數(shù)據(jù)字典。

(2)概念設(shè)計(jì)的任務(wù)是從DFD出發(fā),繪制出本主題的實(shí)體-關(guān)系圖,并列出各個(gè)實(shí)體與關(guān)系的綱要表。

(3)邏輯設(shè)計(jì)的任務(wù)是從E-R圖與對(duì)應(yīng)的綱要表出發(fā),確定各個(gè)實(shí)體及關(guān)系的表名屬性。

(4)物理設(shè)計(jì)的任務(wù)是確定所有屬性的類型、寬度與取值范圍,設(shè)計(jì)出基本表的主鍵,將所有的表名與字段名英文化(現(xiàn)在很多軟件能支持中文字段,如MSSQLServer,我就是用的中文字段名),實(shí)現(xiàn)物理建庫(kù),完成數(shù)據(jù)庫(kù)物理設(shè)計(jì)字典。

(5)加載測(cè)試工作貫穿于程序測(cè)試工作的全過程,整個(gè)錄入、修改、查詢、處理工作均可視為對(duì)數(shù)據(jù)庫(kù)的加載測(cè)試工作。

要設(shè)計(jì)出一個(gè)好的信息管理系統(tǒng)數(shù)據(jù)庫(kù),除滿足系統(tǒng)所要求的功能外,還必須遵守下列原則:

²基本表的個(gè)數(shù)越少越好。

²主鍵的個(gè)數(shù)越少越好。鍵是表間連接的工具,主鍵越少,表間的連接就越簡(jiǎn)單。

²字段的個(gè)數(shù)越少越好。

²所有基本表的設(shè)計(jì)均應(yīng)盡量符合第三范式。

數(shù)據(jù)庫(kù)的設(shè)計(jì)中,如何處理多對(duì)多的關(guān)系和如何設(shè)計(jì)主鍵,是兩個(gè)有著較大難度、需要重點(diǎn)考慮的問題。下面我們著重從SQL應(yīng)用、數(shù)據(jù)庫(kù)設(shè)計(jì)范式和查詢優(yōu)化等方面來分析本課題的系統(tǒng)關(guān)鍵技術(shù)和實(shí)現(xiàn)難點(diǎn)并加以解決。

§2.1數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)及范式分析

信息系統(tǒng)的主要任務(wù)是通過大量的數(shù)據(jù)獲得管理所需要的信息,這就必須存儲(chǔ)和管理大量的數(shù)據(jù)。因此建立一個(gè)良好的數(shù)據(jù)組織結(jié)構(gòu)和數(shù)據(jù)庫(kù),使整個(gè)系統(tǒng)都可以迅速、方便、準(zhǔn)確地調(diào)用和管理所需的數(shù)據(jù),是衡量信息系統(tǒng)開發(fā)工作好壞的主要指標(biāo)之一。

2.1.1數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)

數(shù)據(jù)庫(kù)設(shè)計(jì)主要是進(jìn)行數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì),即將數(shù)據(jù)按一定的分類、分組系統(tǒng)和邏輯層次組織起來,是面向用戶的。數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)需要綜合企業(yè)各個(gè)部門的存檔數(shù)據(jù)和數(shù)據(jù)需求,分析各個(gè)數(shù)據(jù)之間的關(guān)系,按照DBMS提供的功能和描述工具,設(shè)計(jì)出規(guī)模適當(dāng)、正確反映數(shù)據(jù)關(guān)系、數(shù)據(jù)冗余少、存取效率高、能滿足多種查詢要求的數(shù)據(jù)模型。

數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟是:

(1)數(shù)據(jù)庫(kù)結(jié)構(gòu)定義:目前的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)有的是支持聯(lián)機(jī)事務(wù)處理CLTP(負(fù)責(zé)對(duì)事務(wù)數(shù)據(jù)進(jìn)行采集、處理、存儲(chǔ))的操作型DBMS,有的可支持?jǐn)?shù)據(jù)倉(cāng)庫(kù)、有聯(lián)機(jī)分析處理CLAP(指為支持決策的制定對(duì)數(shù)據(jù)的一種加工操作)功能的大型DBMS,有的數(shù)據(jù)庫(kù)是關(guān)系型的、有的可支持面向?qū)ο髷?shù)據(jù)庫(kù)。針對(duì)選擇的DBMS,進(jìn)行數(shù)據(jù)庫(kù)結(jié)構(gòu)定義。

(2)數(shù)據(jù)表定義:數(shù)據(jù)表定義指定義數(shù)據(jù)庫(kù)中數(shù)據(jù)表的結(jié)構(gòu),數(shù)據(jù)表的邏輯結(jié)構(gòu)包括:屬性名稱、類型、表示形式、缺省值、校驗(yàn)規(guī)則、是否關(guān)鍵字、可否為空等。關(guān)系型數(shù)據(jù)庫(kù)要盡量按關(guān)系規(guī)范化要求進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì),但為使效率高,規(guī)范化程度應(yīng)根據(jù)應(yīng)用環(huán)境和條件來決定。數(shù)據(jù)表設(shè)計(jì)不僅要滿足數(shù)據(jù)存儲(chǔ)的要求,還要增加一些如反映有關(guān)信息、操作責(zé)任、中間數(shù)據(jù)的字段或臨時(shí)數(shù)據(jù)表。

(3)存儲(chǔ)設(shè)備和存儲(chǔ)空間組織:確定數(shù)據(jù)的存放地點(diǎn)、存儲(chǔ)路徑、存儲(chǔ)設(shè)備等,備份方案,對(duì)多版本如何保證一致性和數(shù)據(jù)的完整性。

(4)數(shù)據(jù)使用權(quán)限設(shè)置:針對(duì)用戶的不同使用要求,確定數(shù)據(jù)的用戶使用權(quán)限,確保數(shù)據(jù)安全。

(5)數(shù)據(jù)字典設(shè)計(jì):用數(shù)據(jù)字典描述數(shù)據(jù)庫(kù)的設(shè)計(jì),便于維護(hù)和修改。

為了更好地組織數(shù)據(jù)和設(shè)計(jì)出實(shí)際應(yīng)用數(shù)據(jù)庫(kù),應(yīng)該注意如下問題:

規(guī)范化地重組數(shù)據(jù)結(jié)構(gòu):對(duì)數(shù)據(jù)進(jìn)行規(guī)范化表達(dá),這在后面將會(huì)具體討論。

關(guān)系數(shù)據(jù)結(jié)構(gòu)的建立:在進(jìn)行了數(shù)據(jù)基本結(jié)構(gòu)的規(guī)范化重組后,還必須建立整體數(shù)據(jù)的關(guān)系結(jié)構(gòu)。這一步設(shè)計(jì)完成后數(shù)據(jù)庫(kù)和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)工作基本完成,只待系統(tǒng)實(shí)現(xiàn)時(shí)將數(shù)據(jù)分析和數(shù)據(jù)字典的內(nèi)容代入到所設(shè)計(jì)的數(shù)據(jù)整體關(guān)系結(jié)構(gòu)中,一個(gè)規(guī)范化數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)就建立起來了。

建立關(guān)系數(shù)據(jù)結(jié)構(gòu)涉及三方面內(nèi)容:確定關(guān)聯(lián)的關(guān)鍵指標(biāo)項(xiàng)并建立關(guān)聯(lián)表;確定單一的父系記錄結(jié)構(gòu);建立整個(gè)數(shù)據(jù)庫(kù)的關(guān)系結(jié)構(gòu)。

(1)鏈接關(guān)系的確定

在進(jìn)行了上述數(shù)據(jù)規(guī)范化重組后,已經(jīng)可以確保每一個(gè)基本數(shù)據(jù)表(我們簡(jiǎn)稱為表)是規(guī)范的,但是這些單獨(dú)的表并不能完整地反映事物,通常需要通過指標(biāo)體系整體指標(biāo)數(shù)據(jù)才能完整全面地反映問題。也就是說在這些基本表的各宇段中,所存儲(chǔ)的是同一事物不同側(cè)面的屬性。那么計(jì)算機(jī)系統(tǒng)如何能知道哪些表中的哪些記錄應(yīng)與其它表中的哪些記錄相對(duì)應(yīng),它們表示的是同一個(gè)事物呢?這就需要在設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)時(shí)將這種各表之間的數(shù)據(jù)記錄關(guān)系確定下來。這種表與表之間的數(shù)據(jù)關(guān)系一般都是通過主或輔關(guān)鍵詞之間的連接來實(shí)現(xiàn)的。因?yàn)樵诿總€(gè)表中只有主關(guān)鍵詞才能唯一地標(biāo)識(shí)表中的這一個(gè)記錄值(因?yàn)楦鶕?jù)第三范式的要求,表中其它數(shù)據(jù)字段函數(shù)都依賴于主關(guān)鍵詞),所以將表通過關(guān)鍵詞連接就能夠唯一地標(biāo)識(shí)出某一事物不同屬性在不同表中的存放位置。

(2)確定單一的父子關(guān)系結(jié)構(gòu)

所謂確定單一的父系關(guān)系結(jié)構(gòu)就是要在所建立的各種表中消除多對(duì)多(以下用M:N來表示)的現(xiàn)象,即設(shè)法使得所有表中記錄之間的關(guān)系呈樹狀結(jié)構(gòu)(只能由一個(gè)主干發(fā)出若干條分支,而不能有若干條主干交錯(cuò)發(fā)出若干條分支狀況)。所謂的“父系”就是指表的上一級(jí)關(guān)系表。消除多對(duì)多關(guān)系可以借助于E-R圖的方法來解決,也可以在系統(tǒng)分析時(shí)予以注意,避免這種情況的發(fā)生。

消除這種M:N情況的辦法也很簡(jiǎn)單,只需在二表之間增加一個(gè)表,則原來M:N的關(guān)系就改成了M:1,1:N的關(guān)系了。

確定數(shù)據(jù)資源的安全保密屬性:

一般DBMS都提供給我們自己定義數(shù)據(jù)安全保密性的功能。系統(tǒng)所提供的安全保密功能一般有8個(gè)等級(jí)(0-7級(jí)),4種不同方式(只讀、只寫、刪除、修改),而且允許用戶利用這8個(gè)等級(jí)的4種方式對(duì)每一個(gè)表自由地進(jìn)行定義。

定義安全保密性的方法一般有如下幾種:

a.原則上所有文件都定義為4級(jí),個(gè)別優(yōu)先級(jí)特別高的辦公室(終端或微機(jī)的入網(wǎng)賬號(hào))可定義高于4級(jí)的級(jí)別,反之則定義為低于4的級(jí)別。

b.統(tǒng)計(jì)文件(表)和數(shù)據(jù)錄入文件一般只對(duì)本工作站定義為只寫方式,對(duì)其它工作站則定義為只讀方式。

c.財(cái)務(wù)等保密文件一般只對(duì)中工作站(如財(cái)務(wù)科等)定義為可寫、可改、可刪除方式,對(duì)其它工作站則定義為只讀方式,而且不是每個(gè)人都能讀,只有級(jí)別相同和高級(jí)別者才能讀。

2.1.2數(shù)據(jù)庫(kù)設(shè)計(jì)范式分析

建立起一個(gè)良好的數(shù)據(jù)指標(biāo)體系,是建立數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫(kù)的最重要的一環(huán)。一個(gè)良好的數(shù)據(jù)指標(biāo)體系是建立DB的必要條件,但不是充分條件。我們完全可以認(rèn)為所建指標(biāo)體系中的一個(gè)指標(biāo)類就是關(guān)系數(shù)據(jù)庫(kù)中的一個(gè)基本表,而這個(gè)指標(biāo)類下面的一個(gè)個(gè)具體指標(biāo)就是這個(gè)基本表中的一個(gè)字段。但如果直接按照這種方式建庫(kù)顯然還不能算最佳。對(duì)于指標(biāo)體系中數(shù)據(jù)的結(jié)構(gòu)在建庫(kù)前還必須進(jìn)行規(guī)范化的重新組織。

a.數(shù)據(jù)組織的規(guī)范化形式

在數(shù)據(jù)的規(guī)范化表達(dá)中,一般將一組相互關(guān)聯(lián)的數(shù)據(jù)稱為一個(gè)關(guān)系(relation),而在這個(gè)關(guān)系下的每個(gè)數(shù)據(jù)指標(biāo)項(xiàng)則被稱為數(shù)據(jù)元素(dataelement),這種關(guān)系落實(shí)到具體數(shù)據(jù)庫(kù)上就是基本表,而數(shù)據(jù)元素就是基本表中的一個(gè)字段(field)。規(guī)范化表達(dá)還規(guī)定在每一個(gè)基本表中必須定義一個(gè)數(shù)據(jù)元素為關(guān)鍵字(key),它可以唯一地標(biāo)識(shí)出該表中其它相關(guān)的數(shù)據(jù)元素。在規(guī)范化理論中表是二維的,它有如下四個(gè)性質(zhì):

l在表中的任意一列上,數(shù)據(jù)項(xiàng)應(yīng)屬于同一個(gè)屬性(如圖中每一列都存放著不同合同記錄的同一屬性數(shù)據(jù))。

l表中所有行都是不相同的,不允許有重復(fù)組項(xiàng)出現(xiàn)(如圖中每一行都是一個(gè)不同的合同記錄)。

l在表中,行的順序無關(guān)緊要(如圖中每行存的都是合同記錄,至于先放哪一個(gè)合同都沒關(guān)系)。

l在表中,列的順序無關(guān)緊要,但不能重復(fù)(如圖中合同號(hào)和合同名誰(shuí)先誰(shuí)后都沒關(guān)系,但二者不可重復(fù)或同名)。

在對(duì)表的形式進(jìn)行了規(guī)范化定義后,數(shù)據(jù)結(jié)構(gòu)還有五種規(guī)范化定義,定名為規(guī)范化模式,稱為范式。在這五種范式中,一般只用前三種,對(duì)于常用系統(tǒng)就足夠了。而且這五種范式是“向上兼容”的,即滿足第五范式的數(shù)據(jù)結(jié)構(gòu)自動(dòng)滿足一、二、三、四范式,滿足第四范式的數(shù)據(jù)結(jié)構(gòu)自動(dòng)滿足第一、二、三范式,……,依此類推。

第一范式(firstnormalform,簡(jiǎn)稱1stNF)就是指在同一表中沒有重復(fù)項(xiàng)出現(xiàn),如果有則應(yīng)將重復(fù)項(xiàng)去掉。這個(gè)去掉重復(fù)項(xiàng)的過程就稱之為規(guī)范化處理。在本文所討論的開發(fā)方法里,1stNF實(shí)際上是沒有什么意義的。因?yàn)槲覀儼匆?guī)范化建立的指標(biāo)體系和表的過程都自動(dòng)保證了所有表都滿足1stNF。

第二范式(secondnormalform,簡(jiǎn)稱2ndNF)是指每個(gè)表必須有一個(gè)(而且僅一個(gè))數(shù)據(jù)元素為主關(guān)鍵字(primarykey),其它數(shù)據(jù)元素與主關(guān)鍵字一一對(duì)應(yīng)。例如,在圖l9.7中如果我們將合同號(hào)定義為主關(guān)鍵字(其它數(shù)據(jù)元素中的記錄數(shù)據(jù)都有可能重名,故不能作為主關(guān)鍵字),故只要知道了一個(gè)合同記錄的合同號(hào),就可以唯一地在同一行中找到該合同的任何一項(xiàng)具體信息。通常我們稱這種關(guān)系為函數(shù)依賴(functionaldepEndence)關(guān)系。即表中其它數(shù)據(jù)元素都依賴于主關(guān)鍵字,或稱該數(shù)據(jù)元素唯一地被主關(guān)鍵字所標(biāo)識(shí)。

第三范式(thirdnormalform,簡(jiǎn)稱3rdNF)就是指表中的所有數(shù)據(jù)元素不但要能夠唯一地被主關(guān)鍵字所標(biāo)識(shí),而且它們之間還必須相互獨(dú)立,不存在其它的函數(shù)關(guān)系。也就是說對(duì)于一個(gè)滿足了2ndNF的數(shù)據(jù)結(jié)構(gòu)來說,表中有可能存在某些數(shù)據(jù)元素依賴于其它非關(guān)鍵宇數(shù)據(jù)元素的現(xiàn)象,必須加以消除。

為防止數(shù)據(jù)庫(kù)出現(xiàn)更新異常、插入異常、刪除異常、數(shù)據(jù)冗余太大等現(xiàn)象,關(guān)系型數(shù)據(jù)庫(kù)要盡量按關(guān)系規(guī)范化要求進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)。

§2.2SQL語(yǔ)言介紹

2.2.1SQL基礎(chǔ)

SQL(StructuredQueryLanguage,結(jié)構(gòu)查詢語(yǔ)言)是一個(gè)功能強(qiáng)大的數(shù)據(jù)庫(kù)語(yǔ)言。SQL通常使用于數(shù)據(jù)庫(kù)的通訊。ANSI(美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì))聲稱,SQL是關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言。SQL語(yǔ)句通常用于完成一些數(shù)據(jù)庫(kù)的操作任務(wù),比如在數(shù)據(jù)庫(kù)中更新數(shù)據(jù),或者從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)。使用SQL的常見關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)有:Oracle、Sybase、MicrosoftSQLServer、Access、Ingres等等。雖然絕大多數(shù)的數(shù)據(jù)庫(kù)系統(tǒng)使用SQL,但是它們同樣有它們自立另外的專有擴(kuò)展功能用于它們的系統(tǒng)。但是,標(biāo)準(zhǔn)的SQL命令,比如"Select"、"Insert"、"Update"、"Delete"、"Create"和"Drop"常常被用于完成絕大多數(shù)數(shù)據(jù)庫(kù)的操作。MSSQLServer就是用的Transact-SQL。

SQL語(yǔ)言有著非常突出的優(yōu)點(diǎn),主要是:

n非過程化語(yǔ)言

n統(tǒng)一的語(yǔ)言

n是所有關(guān)系數(shù)據(jù)庫(kù)的公共語(yǔ)言

非過程化語(yǔ)言:SQL是一個(gè)非過程化的語(yǔ)言,因?yàn)樗淮翁幚硪粋€(gè)記錄,對(duì)數(shù)據(jù)提供自動(dòng)導(dǎo)航。SQL允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對(duì)單個(gè)記錄進(jìn)行操作,可操作記錄集,所有SQL語(yǔ)句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語(yǔ)句的結(jié)果作為另一條SQL語(yǔ)句的輸入。

SQL不要求用戶指定對(duì)數(shù)據(jù)的存放方法,這種特性使用戶更易集中精力于要得到的結(jié)果;所有SQL語(yǔ)句使用查詢優(yōu)化器,它是RDBMS的一部分,由它決定對(duì)指定數(shù)據(jù)存取的最快速度的手段,查詢優(yōu)化器知道存在什么索引,在哪兒使用索引合適,而用戶則從不需要知道表是否有索引、有什么類型的索引。

統(tǒng)一的語(yǔ)言:SQL可用于所有用戶的DB活動(dòng)模型,包括系統(tǒng)管理員、數(shù)據(jù)庫(kù)管理員、應(yīng)用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶。

SQL為許多任務(wù)提供了命令,其中包括:

n查詢數(shù)據(jù)

n在表中插入、修改和刪除記錄

n建立、修改和刪除數(shù)據(jù)對(duì)象

n控制對(duì)數(shù)據(jù)和數(shù)據(jù)對(duì)象的存取

n保證數(shù)據(jù)庫(kù)一致性和完整性

以前的數(shù)據(jù)庫(kù)管理系統(tǒng)為上述各類操作提供單獨(dú)的語(yǔ)言,而SQL將全部任務(wù)統(tǒng)一在一種語(yǔ)言中。

所有關(guān)系數(shù)據(jù)庫(kù)的公共語(yǔ)言:由于所有主要的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)都支持SQL語(yǔ)言,用戶可將使用SQL的技能從一個(gè)RDBMS(關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng))轉(zhuǎn)到另一個(gè),所有用SQL編寫的程序都是可以移植的。

2.2.2SQL語(yǔ)句

SQL功能強(qiáng)大,是一種完備的數(shù)據(jù)處理語(yǔ)言,不僅用于數(shù)據(jù)庫(kù)查詢,而且用于數(shù)據(jù)庫(kù)中的數(shù)據(jù)修改和更新,概括起來,它可以分成以下幾組:

DML(DataManipulationLanguage,數(shù)據(jù)操作語(yǔ)言):用于檢索或者修改數(shù)據(jù);

DDL(DataDefinitionLanguage,數(shù)據(jù)定義語(yǔ)言):用于定義數(shù)據(jù)的結(jié)構(gòu),比如創(chuàng)建、修改或者刪除數(shù)據(jù)庫(kù)對(duì)象;

DCL(DataControlLanguage,數(shù)據(jù)控制語(yǔ)言):用于定義數(shù)據(jù)庫(kù)用戶的權(quán)限。

DML組可以細(xì)分為以下的幾個(gè)語(yǔ)句:

SELECT:用于檢索數(shù)據(jù);

INSERT:用于增加數(shù)據(jù)到數(shù)據(jù)庫(kù);

UPDATE:用于從數(shù)據(jù)庫(kù)中修改現(xiàn)存的數(shù)據(jù);

DELETE:用于從數(shù)據(jù)庫(kù)中刪除數(shù)據(jù)。

DDL語(yǔ)句可以用于創(chuàng)建用戶和重建數(shù)據(jù)庫(kù)對(duì)象。下面是DDL命令:

CREATETABLE,ALTERTABLE,DROPTABLE,CREATEINDEX,DROPINDEX

下面是一個(gè)簡(jiǎn)單SQL語(yǔ)句的例子:

我們使用SQL語(yǔ)句來從Book中檢索‘借書證號(hào)’為‘000001’的借閱者姓名:

SELECT姓名FROMBookWHERE借書證號(hào)=‘000001’

2.2.2.1DDL與DML

數(shù)據(jù)定義語(yǔ)言DDL:它是用來創(chuàng)建和修改數(shù)據(jù)庫(kù)結(jié)構(gòu)的一種語(yǔ)句,包括Create、Alter和Drop語(yǔ)句。

數(shù)據(jù)操作語(yǔ)言DML:包括數(shù)據(jù)查詢與數(shù)據(jù)更新。數(shù)據(jù)查詢主要是由Select語(yǔ)句完成,這一點(diǎn)不再贅述。而數(shù)據(jù)更新所造成的風(fēng)險(xiǎn)大大超過數(shù)據(jù)查詢。數(shù)據(jù)庫(kù)管理系統(tǒng)必須在更改期內(nèi)保護(hù)所存儲(chǔ)的數(shù)據(jù)的一致性,確保有效的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)必須保持一致性,DBMS還必須協(xié)調(diào)多用戶的并行更新,以確保用戶和它們的更改不至于影響其它用戶的作業(yè)。

用于修改數(shù)據(jù)庫(kù)內(nèi)容的SQL語(yǔ)句主要有以下三個(gè):

(1)Insert,向一個(gè)表中加入新的數(shù)據(jù)行

(2)Delete,從一個(gè)表中刪除數(shù)據(jù)行

(3)Update,更改數(shù)據(jù)庫(kù)中已經(jīng)存在的數(shù)據(jù)

Insert標(biāo)準(zhǔn)語(yǔ)法:

INSERTINTOtable_name(col1,col2...)VALUES(value1,value2...)

下例要將借書證號(hào)為‘000001’作為一個(gè)新的借書情況加入借書情況表OWNER中

InsertInto

owner(借書證號(hào),圖書編號(hào),借書日期)

values(‘000001’,‘00000001’,‘2002-9-12’)

Insert語(yǔ)句還可以將多行數(shù)據(jù)添加到目標(biāo)表中去,在這種形式的Insert語(yǔ)句中,新行的數(shù)據(jù)值不是在語(yǔ)句正文中明確地指定的,而是語(yǔ)句中指定的一個(gè)數(shù)據(jù)庫(kù)查詢。添加的值來自數(shù)據(jù)庫(kù)自身的行,在某些特定的狀態(tài)下,這是非常有用的。多行Insert語(yǔ)句為拷貝數(shù)據(jù)提供了一種緊湊而高效的方法,但我在自已做的圖書管理系統(tǒng)中沒有使用這種方法,我在系統(tǒng)中是使用循環(huán)依照上面的用法來完成多個(gè)記錄的插入。

Update語(yǔ)句用于更新單表中選定行的一列或多列的值。要更新的目標(biāo)表在語(yǔ)句中定義,Set子句則指定要更新哪些列并計(jì)算它們的值。Update語(yǔ)句總是包含Where語(yǔ)句,而且Update語(yǔ)句比較危險(xiǎn),所以您必須明確地認(rèn)識(shí)到Where語(yǔ)句的重要性,Where語(yǔ)句被用來指定需要更新的行。

標(biāo)準(zhǔn)語(yǔ)法:

UPDATEtable_name

SETcolumnname1=value1

[,columname2=value2]...

WHEREsearch_condition

Delete語(yǔ)句標(biāo)準(zhǔn)語(yǔ)法:

DELETEFROMtablenameWHEREcondition

2.2.2.2復(fù)雜操作實(shí)現(xiàn)

在信息管理系統(tǒng)中,我們往往會(huì)遇到歸類、匯總、映射、索引、子查詢等復(fù)雜操作,相應(yīng)的支持與實(shí)現(xiàn)如下:

uGROUPBY方法

GROUPBY子句語(yǔ)法為:

SELECTcolumn1,SUM(column2)

FROM"list-of-tables"

GROUPBY"column-list";

這個(gè)GROUPBY子句將集中所有的行在一起,它包含了指定列的數(shù)據(jù)以及允許合計(jì)函數(shù)來計(jì)算一個(gè)或者多個(gè)列。

在本人的系統(tǒng)中在顯示數(shù)據(jù)時(shí)用到了此語(yǔ)句來對(duì)查詢所得的內(nèi)容排序然后再顯示。

u組合條件和布爾運(yùn)算符

以下的SQL語(yǔ)句中就含有組合條件:

SELECTcolumn1,SUM(column2)

FROM"list-of-tables"

WHERE"condition1"AND"condition2";

下面是一個(gè)示例:

SELECT身份描述

FROMID,user

WHEREID.身份編號(hào)=USER.身份編號(hào)anduser.借書證號(hào)=’000001’;

這條SQL語(yǔ)句是從user、id表中查找借閱證號(hào)為000001的借閱者的身份描述,第三條語(yǔ)句中如果其中有一個(gè)條件為假,那么就什么都沒有顯示。

uUNION子句

有些時(shí)候,需要一起瀏覽多個(gè)查詢的結(jié)果、組合它們的輸出,我們可以使用UNION關(guān)鍵字。

第三章應(yīng)用系統(tǒng)開發(fā)工具

§3.1Delphi6.0VCL組件的體系結(jié)構(gòu)

Delphi類可以粗略地分成兩部分:一部分是組件類,這些組件類通常以某種方式出現(xiàn)在組件面板上,當(dāng)用戶從組件面板上點(diǎn)取一個(gè)類的圖標(biāo)后,在程序中就自動(dòng)生成了該類的對(duì)象(非可視組件除外);另一部分是功能類,這此功能類的對(duì)象通常出現(xiàn)在程序代碼中,起著不可代替的作用,但是這些功能類在組件面板上是找不到的。在Delphi中,每一個(gè)類的祖先都是Tobject類,整個(gè)類的層次結(jié)構(gòu)就像一棵倒掛的樹,在最頂層的樹根即為Tobject類。這樣,按照面向?qū)ο缶幊痰幕舅枷?,就使得用戶可用Tobject類這個(gè)類型代替任何其它類的數(shù)據(jù)類型。實(shí)際上在Delphi的類庫(kù)中,Tobject類派生出了為數(shù)相當(dāng)眾多的子類,它們形成了一個(gè)龐大的體系,通常情況下,如果不自行開發(fā)組件,就不必了解整個(gè)類的體系結(jié)構(gòu),只用到類層次樹的葉結(jié)點(diǎn)就足夠了。

這一小節(jié)簡(jiǎn)略介紹一下Delphi6.0中VCL(可視化組件庫(kù))組件的體系結(jié)構(gòu)。凡是做過程序開發(fā)的人都知道從來沒有單純的數(shù)據(jù)應(yīng)用程序,也就是說,數(shù)據(jù)庫(kù)應(yīng)用程序必須和用戶界面(可以是圖形界面,也可以是命令接口)元素相結(jié)合,只講界面或只講數(shù)據(jù)庫(kù)本身都構(gòu)不成數(shù)據(jù)庫(kù)應(yīng)用程序,因而用Delphi6.0開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序就隱含著界面開發(fā)。Delphi6中的VCL組件可用圖3-1來說明。

組件在Delphi程序的開發(fā)中是最顯眼的角色。大家知道,在編寫程序時(shí)一般都開始于在組件面板上選擇組件并定義組件間的相互作用。但也有一些組件不在組件面板上,例如Tform和Tapplication(典型的非可視組件)。組件是Tcomponents派生出來的子類,可以流的形式存放在DFM文件中,具有事件和Publish屬性。

窗口組件類是窗口化的可視化組件類,在Delphi的類庫(kù)中占有最大的份額。在實(shí)際編程中,窗口組件類的對(duì)象都有句柄,可以接受輸入焦點(diǎn)和包含其它組件。

圖形組件與窗口組件并列,是另一大類組件。圖形組件不是基于窗口的,因而不能有窗口句柄,不能接受輸入焦點(diǎn)和包含其它組件。從圖8-43中可以看出,圖形組件的基類是TgraphicControl,在實(shí)際編程中,它們必須寄生于它們的宿主——窗口組件類的對(duì)象,由它們的擁有者負(fù)責(zé)其顯示,而且它們還能觸發(fā)一些和鼠標(biāo)活動(dòng)相關(guān)的事件。圖形控件最典型的例子是Tlabel和TspeedButton。由此可以看出圖形組件的功能很弱,圖形組件的用處何在呢?其實(shí)使用圖形組件的最大好處在于節(jié)省資源,正是因?yàn)樗鼈兊墓δ茌^弱,所以使用的系統(tǒng)資源就要少。在一個(gè)應(yīng)用程序中,如果能在不影響其功能的前提下合理大量地使用圖形組件,將會(huì)大減少程序?qū)ο到y(tǒng)資源的消耗。

非可視組件是與可視組件相并列的另一類組件,非可視組件在程序運(yùn)行中是不可見的(除各種對(duì)話框組件之外,事實(shí)上有人認(rèn)為對(duì)話框組件不能歸入非可視組件,應(yīng)該是另一種介于可視與非可視之間的組件)。

最后要說明一下,常說的控件實(shí)際上是一種組件。也就是說組件這個(gè)概念要大于控件,控件在內(nèi)涵上包含于組件中??丶蒞indows系列操作系統(tǒng)提出并使用,而組件是Borland和其它廠商在對(duì)Windows控件做了必要的擴(kuò)展之后提出來的概念,它們是在不同時(shí)期由不同的廠商提出的概念。

§3.2數(shù)據(jù)庫(kù)組件介紹

用Delphi6開發(fā)數(shù)據(jù)庫(kù)應(yīng)用,重點(diǎn)是和各種數(shù)據(jù)庫(kù)組件打交道,能和數(shù)據(jù)庫(kù)掛鉤的組件對(duì)象有5種,它們是:Session(數(shù)據(jù)庫(kù)會(huì)話)、Database(數(shù)據(jù)庫(kù))、Dataset(數(shù)據(jù)集)、DataSource(數(shù)據(jù)源)、Datacontrol(數(shù)據(jù)控制組件,也叫data-controls即數(shù)據(jù)感知組件)。其中前面4種統(tǒng)稱為數(shù)據(jù)訪問(DataAccess)組件。這些組件的相互關(guān)系如圖3-2所示。

ADO組件Delphi6.0包含了可以用來訪問Microsoft公司的ActiveXDataObjects(ADO)格式數(shù)據(jù)庫(kù)的組件。ADO是Micrsoft公司關(guān)于各種類型數(shù)據(jù)的高等界面,后來逐漸演變成滿足所有數(shù)據(jù)訪問需要的完整解決辦法。ADO的對(duì)象模型是所有數(shù)據(jù)訪問接口對(duì)象模型中最簡(jiǎn)單的一種。Microsoft公司用來訪問ADO數(shù)據(jù)的應(yīng)用程序界面技術(shù)是OLEDB。OLEDB是一種底層編程接口,用來訪問許多不同類型的數(shù)據(jù)源,其中包括消息、文件系統(tǒng)以及其他一些非傳統(tǒng)的數(shù)據(jù)源。OLEDB是一個(gè)由ComponentObjectModel(COM)接口組成的集合,用來隱藏創(chuàng)建數(shù)據(jù)訪問服務(wù)過程中的細(xì)節(jié)。OLEDB提供了訪問任何數(shù)據(jù)資源的方法,包括相互關(guān)聯(lián)的數(shù)據(jù)庫(kù)和相互不關(guān)聯(lián)的數(shù)據(jù)庫(kù)、Email和文件系統(tǒng)、文本和圖形以及用戶定義的數(shù)據(jù)對(duì)象。

Delphi的ADO組件無需依靠BDE而是使用ADO技術(shù),提供了可以通過數(shù)據(jù)控制組件訪問數(shù)據(jù)的新方法。唯一的要求是在使用ADO組件時(shí)必須運(yùn)行ADO/OLE-DB。ADO組件的使用使得DELPHI在訪問數(shù)據(jù)的類型和采用的技術(shù)方面都有了很大的突破。

數(shù)據(jù)模塊設(shè)計(jì)窗口數(shù)據(jù)模塊設(shè)計(jì)窗口是用來設(shè)計(jì)和維護(hù)數(shù)據(jù)模塊的。數(shù)據(jù)模塊設(shè)計(jì)窗口中包含了所有以.DTI作為文件擴(kuò)展名的DataDiagram文件的信息。DTI文件在編譯時(shí)不起任何作用。

§3.3SQL語(yǔ)言在Delphi中的應(yīng)用

在Delphi中使用SQL語(yǔ)言非常方便,一般來說,都是通過Tquery或TADOquery組件來使用SQL語(yǔ)言的??梢栽赥query或TADOquery組件的SQL屬性中設(shè)置SQL語(yǔ)句。設(shè)計(jì)程序時(shí),在該組件的屬性對(duì)話框中選擇SQL屬性,單擊帶省略號(hào)的按鈕,就可以打開StringListEditor對(duì)話框,然后我們就可以在對(duì)話框中添加SQL語(yǔ)句。還可以使用Delphi的SQLBuilder來自動(dòng)生成SQL語(yǔ)句,這樣可以避免手工編寫SQL而可能造成的語(yǔ)法錯(cuò)誤。

靜態(tài)SQL語(yǔ)句在程序設(shè)計(jì)時(shí)便已固定下來,它不包含任何參數(shù)和變量。

動(dòng)態(tài)SQL語(yǔ)句,也被稱作參數(shù)化的語(yǔ)句,在其中間包含著表示字段名或表名的參數(shù),例如下面的語(yǔ)句是一條動(dòng)態(tài)SQL語(yǔ)句:

Select*FromBookWhere圖書編號(hào)=:bookCode;

其中的變量bookCode便是一個(gè)參數(shù)變量,它由一個(gè)冒號(hào)引導(dǎo),在程序運(yùn)行過程中,必須要為該參數(shù)賦值,該條SQL語(yǔ)句才能正確執(zhí)行,每次運(yùn)行應(yīng)用程序時(shí)可以為該參數(shù)變量賦予不同的值。為參數(shù)賦值有三種方法:

①根據(jù)參數(shù)在SQL語(yǔ)句中出現(xiàn)的順序,設(shè)置TADOQuery組件的parameters屬性值為參數(shù)賦值。

②直接根據(jù)SQL語(yǔ)句中各參數(shù)的名字,調(diào)用ParamByName方法來為各參數(shù)賦值。

③將TADOQuery組件的DataSource屬性設(shè)置為另一個(gè)數(shù)據(jù)源,這樣將另一個(gè)數(shù)據(jù)源中與當(dāng)前TADOQuery組件的SQL語(yǔ)句中的參數(shù)名相匹配的字段值賦給其對(duì)應(yīng)的參數(shù)。利用這種方法也能實(shí)現(xiàn)所謂的連接查詢,創(chuàng)建主要—明細(xì)型數(shù)據(jù)庫(kù)應(yīng)用。

在使用動(dòng)態(tài)SQL語(yǔ)句編程時(shí),常常用到一個(gè)很重要的方法Prepare,調(diào)用Prepare方法之后,Delphi會(huì)將帶參數(shù)的SQL語(yǔ)句傳送給與其對(duì)應(yīng)的數(shù)據(jù)庫(kù)引擎,對(duì)動(dòng)態(tài)SQL語(yǔ)句進(jìn)行語(yǔ)法分析和優(yōu)化。雖然在用動(dòng)態(tài)SQL語(yǔ)句編程時(shí),調(diào)用Prepare方法并不是必須的,但是調(diào)用Prepare方法后,會(huì)極大地提高動(dòng)態(tài)SQL語(yǔ)句的執(zhí)行性能,特別是當(dāng)要反復(fù)多次執(zhí)行同一條動(dòng)態(tài)SQL語(yǔ)句時(shí),其優(yōu)越性會(huì)更加明顯。如果在應(yīng)用程序中執(zhí)行一條SQL語(yǔ)句之前并沒有顯式地調(diào)用Prepare方法,每次在執(zhí)行SQL語(yǔ)句時(shí),Delphi會(huì)隱含地調(diào)用Prepare方法以準(zhǔn)備這個(gè)查詢。

TadoQuery部件還有一個(gè)Prepare屬性,這是一個(gè)布爾型屬性,當(dāng)其屬性值為True時(shí),表明該查詢已被準(zhǔn)備好了(SQL語(yǔ)句已被傳送到數(shù)據(jù)庫(kù)引擎中),當(dāng)我們使用參數(shù)編輯器ParametersEditor來為動(dòng)態(tài)SQL語(yǔ)句中的參數(shù)賦值時(shí),當(dāng)設(shè)置完相應(yīng)的參數(shù)值并退出參數(shù)編輯器時(shí),Delphi會(huì)隱含地調(diào)用Prepare方法以準(zhǔn)備好查詢。

當(dāng)SQL語(yǔ)句執(zhí)行完之后,要想準(zhǔn)備下一個(gè)查詢,首先必須調(diào)用Close方法,然后才能調(diào)用Prepare方法準(zhǔn)備下一個(gè)查詢。一般來說,在一個(gè)應(yīng)用程序中應(yīng)該調(diào)用一次Prepare方法,常常在窗體的OnCreate事件處理過程中調(diào)用Prepare方法,然后用上述介紹的方法為參數(shù)賦值,最后調(diào)用Open方法或ExecSQL方法執(zhí)行SQL語(yǔ)句,以完成查詢。

當(dāng)然在調(diào)用Prepare方法準(zhǔn)備好一個(gè)查詢時(shí),會(huì)消耗一些數(shù)據(jù)庫(kù)資源,因而每當(dāng)一個(gè)查詢執(zhí)行完畢之后,要養(yǎng)成調(diào)用UnPrepare方法以撤消查詢的好習(xí)慣。在運(yùn)行程序過程中,通過程序改變TQuery或TADOquery部件的SQL屬性值時(shí),Delphi會(huì)自動(dòng)地調(diào)用Close方法和UnPrepare方法,以撤消查詢。

在程序運(yùn)行過程中,要想設(shè)置Tquery或TADOquery部件的SQL屬性,必須首先調(diào)用Close方法,關(guān)閉TQuery或TADOquery部件,然后再調(diào)用Clear方法清除SQL屬性中現(xiàn)存的SQL命令語(yǔ)句,最后再調(diào)用Add方法為SQL屬性設(shè)置新的SQL命令語(yǔ)句。例如:

datamodule4.adoquery2.close;

datamodule4.adoquery2.sql.clear;

datamodule4.adoquery2.sql.add(''''SELECT借書證號(hào),密碼FROM[user]WHERE(借書證號(hào)=:tt)'''');

datamodule4.adoquery2.parameters[0].value:=username;

datamodule4.adoquery2.open;

在為TQuery或TADOquery部件設(shè)置SQL屬性時(shí)調(diào)用Close方法總是很安全的,如果TQuery或TADOquery部件已經(jīng)被關(guān)閉了,調(diào)用Close方法時(shí)不會(huì)產(chǎn)生任何影響。在應(yīng)用程序中為SQL屬性設(shè)置新的SQL命令語(yǔ)句時(shí),必須要調(diào)用Clear方法以清除SQL屬性中現(xiàn)存的SQL命令語(yǔ)句,如果不調(diào)用Clear方法,便調(diào)用Add方法向SQL屬性中設(shè)置SQL命令語(yǔ)句,那么新設(shè)置的SQL命令語(yǔ)句會(huì)追加在現(xiàn)存SQL命令語(yǔ)句后面,在程序運(yùn)行時(shí)常常會(huì)出現(xiàn)出乎意料的查詢結(jié)果甚至程序無法運(yùn)行下去。

在這里要特別注意的,一般情況下TQuery或TADOquery部件的SQL屬性只能包含一條完整的SQL語(yǔ)句,它不允許被設(shè)置成多條SQL語(yǔ)句。當(dāng)然有些數(shù)據(jù)庫(kù)服務(wù)器也支持在TQuery或TADOquery部件的SQL屬性中設(shè)置多條SQL語(yǔ)句,只要數(shù)據(jù)庫(kù)服務(wù)器允許這樣,我們?cè)诰幊虝r(shí)可以為SQL屬性設(shè)置多條SQL語(yǔ)句。

在為TQuery或TADOquery部件設(shè)置完SQL屬性的屬性值之后,也即編寫好適當(dāng)?shù)腟QL程序之后,可以有多種方式來執(zhí)行SQL程序。

在設(shè)計(jì)過程中,設(shè)置完TQuery或TADOquery部件的SQL屬性之后將其Active屬性的值置為True,這樣便可以執(zhí)行SQL屬性中的SQL程序,如果應(yīng)用中有與TQuery或TADOquery部件相連的數(shù)據(jù)瀏覽部件(如TDDGridTDBEdit等)那么在這些數(shù)據(jù)瀏覽部件中會(huì)顯示SQL程序的執(zhí)行結(jié)果。

在應(yīng)用程序運(yùn)行過程中,通過程序調(diào)用TQuery或TADOquery組件的Open方法或ExecSQL方法可以執(zhí)行其SQL屬性中的SQL程序。Open方法和ExecSQL方法是不一樣的。Open方法只能用來執(zhí)行SQL語(yǔ)言的查詢語(yǔ)句(Select命令),并返回一個(gè)查詢結(jié)果集,而ExecSQL方法還可以用來執(zhí)行其它常用的SQL語(yǔ)句(如INSERT,UPDATE,DELETE等命令),例如:

Query1.Open(這樣會(huì)返回一個(gè)查詢結(jié)果集)

如果調(diào)用Open方法,而沒有查詢結(jié)果時(shí),會(huì)出錯(cuò)。此時(shí)應(yīng)該調(diào)用ExecSQL方法來代替Open方法。如:

Query1.ExecSQL(沒有返回結(jié)果)

當(dāng)然在設(shè)計(jì)應(yīng)用程序時(shí),程序設(shè)計(jì)人員是無法確定TQuery或TADOquery組件中的SQL語(yǔ)句是否會(huì)返回一個(gè)查詢結(jié)果的。對(duì)于這種情況應(yīng)當(dāng)用Try…Except模塊來設(shè)計(jì)程序。在Try部分調(diào)用Open方法,而在Except部分調(diào)用ExceSQL方法,這樣才能保證程序的正確運(yùn)行。

例如:

Try

Query1.Open

Except

Query1.ExecSQL

End

通過Tquery或TADOquery組件可以獲得兩種類型的數(shù)據(jù):

u“活動(dòng)”的數(shù)據(jù)

這種數(shù)據(jù)就跟通過TTable部件獲得的數(shù)據(jù)一樣,用戶可以通過數(shù)據(jù)瀏覽部件來編輯修改這些數(shù)據(jù),并且當(dāng)調(diào)用Post方法或當(dāng)焦點(diǎn)離開當(dāng)前的數(shù)據(jù)瀏覽部件時(shí),用戶對(duì)數(shù)據(jù)的修改自動(dòng)地被寫回到數(shù)據(jù)庫(kù)中。

u非活動(dòng)的數(shù)據(jù)(只讀數(shù)據(jù))

用戶通過數(shù)據(jù)瀏覽部件是不能修改其中的數(shù)據(jù)。在缺省情況下,通過TQuery部件獲得的查詢結(jié)果數(shù)據(jù)是只讀數(shù)據(jù),要想獲得“活動(dòng)”的數(shù)據(jù),在應(yīng)用程序中必須要設(shè)置Tquery或TADOquery組件的RequestLive屬性值為True,然而并不是在任何情況下(通過設(shè)置RequestLive的屬值True)都可以獲得“活動(dòng)”的數(shù)據(jù)的,要想獲得“活動(dòng)”的數(shù)據(jù),除了將TQuery部件的RequestLive屬性設(shè)置為True外,相應(yīng)的SQL命令還要滿足以下條件。

本地SQL語(yǔ)句查詢情況下,要得到可更新的數(shù)據(jù)集,SQL語(yǔ)句的限制為:

n查詢只能涉及到一個(gè)單獨(dú)的表

nSQL語(yǔ)句中不能包含ORDERBY命令

nSQL語(yǔ)句中不能含聚集運(yùn)算符SUM或AVG

n在Select后的字段列表中不能有計(jì)算字段

n在Select語(yǔ)句WHERE部分只能包含字段值與常量的比較運(yùn)算,這些比較運(yùn)算符是:Like,>,<,>=,<=。各比較運(yùn)算之間可以有并和交運(yùn)算:AND和OR

當(dāng)通過SQL語(yǔ)句查詢數(shù)據(jù)庫(kù)服務(wù)器中的數(shù)據(jù)庫(kù)表:

n查詢只能涉及到一個(gè)單獨(dú)的表

nSQL語(yǔ)句中不能包含ORDERBY命令

nSQL語(yǔ)句中不能含聚集運(yùn)算符SUM或AVG運(yùn)算

另外,如果是查詢Sybase數(shù)據(jù)庫(kù)中的表,那么被查詢的表中只能有一個(gè)索引。

如果在應(yīng)用程序中要求TQuery或TADOquery組件返回一個(gè)“活動(dòng)”的查詢結(jié)果數(shù)據(jù)集,但是SQL命令語(yǔ)句不滿足上述約束條件時(shí),對(duì)于本地?cái)?shù)據(jù)庫(kù)的SQL查詢,BDE只能返回只讀的數(shù)據(jù)集。對(duì)于數(shù)據(jù)庫(kù)服務(wù)器中的SQL查詢,只能返回錯(cuò)誤的代碼。當(dāng)Tquery或TADOquery組件返回一個(gè)“活動(dòng)”的查詢結(jié)果數(shù)據(jù)集時(shí),它的CanModIfy屬性的值會(huì)被設(shè)置成True。

§3.4MSSQLServer簡(jiǎn)述

SQLServer是一個(gè)后臺(tái)數(shù)據(jù)庫(kù)管理系統(tǒng),它功能強(qiáng)大操作簡(jiǎn)便,日益為廣大數(shù)據(jù)庫(kù)用戶所喜愛。越來越多的開發(fā)工具提供了與SQLServer的接口。SQLServer是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發(fā)的。于1988年推出了第一個(gè)OS/2版本,在WindowsNT推出后,Microsoft與Sybase在SQLServer的開發(fā)上就分道揚(yáng)鑣了,Microsoft將SQLServer移植到WindowsNT系統(tǒng)上,專注于開發(fā)推廣SQLServer的WindowsNT版本。

SQLServer2000是Microsoft公司推出的SQLServer數(shù)據(jù)庫(kù)管理系統(tǒng)的最新版本,該版本繼承了SQLServer7.0版本的優(yōu)點(diǎn),同時(shí)又比它增加了許多更先進(jìn)的功能、具有使用方便、可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn)??煽缭綇倪\(yùn)行MicrosoftWindows98的膝上型電腦到運(yùn)行MicrosoftWindows2000的大型多處理器的服務(wù)器等多種平臺(tái)使用。MSSQLServer不但可以應(yīng)用于大中型數(shù)據(jù)庫(kù)管理中,建立分布式關(guān)系數(shù)據(jù)庫(kù),并且也可以開發(fā)桌面數(shù)據(jù)庫(kù)。事實(shí)上,SQLServer數(shù)據(jù)庫(kù)處理的基本結(jié)構(gòu),采取關(guān)系型數(shù)據(jù)庫(kù)模式,盡管如此,相信大家都可以輕易的發(fā)現(xiàn),在SQLServer的數(shù)據(jù)庫(kù)處理方式,則是使用面向?qū)ο蟮牟僮鞣绞脚c精神,也就是說,SQLServer的所有功能,都可以基于系統(tǒng)已經(jīng)建立好的一些對(duì)象來達(dá)成,是相當(dāng)OO(面向?qū)ο螅┑囊粋€(gè)系統(tǒng)結(jié)構(gòu)。

SQLServer企業(yè)管理器是SQLServer的主要管理工具,它提供了一個(gè)遵從MMC標(biāo)準(zhǔn)的用戶界面,使用戶得以:

·定義SQLServer實(shí)例組。

·將個(gè)別服務(wù)器注冊(cè)到組中。

·為每個(gè)已注冊(cè)的服務(wù)器配置所有SQLServer選項(xiàng)。

·在每個(gè)已注冊(cè)的服務(wù)器中創(chuàng)建并管理所有SQLServer數(shù)據(jù)庫(kù)、對(duì)象、登錄、用戶和權(quán)限。

·在每個(gè)已注冊(cè)的服務(wù)器上定義并執(zhí)行所有SQLServer管理任務(wù)。

·通過喚醒調(diào)用SQL查詢分析器,交互地設(shè)計(jì)并測(cè)試SQL語(yǔ)句、批處理和腳本。

·喚醒調(diào)用為SQLServer定義的各種向?qū)А?/p>

·

第三章圖書管理系統(tǒng)設(shè)計(jì)分析

§4.1應(yīng)用需求分析

圖書管理系統(tǒng)需要滿足來自三方面的需求,這三個(gè)方面分別是圖書借閱者、圖書館工作人員和圖書館管理人員。圖書借閱者的需求是查詢圖書館所存的圖書、個(gè)人借閱情況及個(gè)人信息的修改;圖書館工作人員對(duì)圖書借閱者的借閱及還書要求進(jìn)行操作,同時(shí)形成借書或還書報(bào)表給借閱者查看確認(rèn);圖書館管理人員的功能最為復(fù)雜,包括對(duì)工作人員、圖書借閱者、圖書進(jìn)行管理和維護(hù),及系統(tǒng)狀態(tài)的查看、維護(hù)并生成催還圖書報(bào)表。

圖書借閱者可直接查看圖書館圖書情況,如果圖書借閱者根據(jù)本人借書證號(hào)和密碼登錄系統(tǒng),還可以進(jìn)行本人借書情況的查詢和維護(hù)部分個(gè)人信息。一般情況下,圖書借閱者只應(yīng)該查詢和維護(hù)本人的借書情況和個(gè)人信息,若查詢和維護(hù)其他借閱者的借書情況和個(gè)人信息,就要知道其他圖書借閱者的借書證號(hào)和密碼。這些是很難得到的,特別是密碼,所以不但滿足了圖書借閱者的要求,還保護(hù)了圖書借閱者的個(gè)人隱私。

圖書館工作人員有修改圖書借閱者借書和還書記錄的權(quán)限,所以需對(duì)工作人員登陸本模塊進(jìn)行更多的考慮。在此模塊中,圖書館工作人員可以為圖書借閱者加入借書記錄或是還書記錄,并打印生成相應(yīng)的報(bào)表給用戶查看和確認(rèn)。

圖書館管理人員功能的信息量大,數(shù)據(jù)安全性和保密性要求最高。本功能實(shí)現(xiàn)對(duì)圖書信息、借閱者信息、總體借閱情況信息的管理和統(tǒng)計(jì)、工作人員和管理人員信息查看及維護(hù)。圖書館管理員可以瀏覽、查詢、添加、刪除、修改、統(tǒng)計(jì)圖書的基本信息;瀏覽、查詢、統(tǒng)計(jì)、添加、刪除和修改圖書借閱者的基本信息,瀏覽、查詢、統(tǒng)計(jì)圖書館的借閱信息,但不能添加、刪除和修改借閱信息,這部分功能應(yīng)該由圖書館工作人員執(zhí)行,但是,刪除某條圖書借閱者基本信息記錄時(shí),應(yīng)實(shí)現(xiàn)對(duì)該圖書借閱者借閱記錄的級(jí)聯(lián)刪除。并且還應(yīng)具有生成催還圖書報(bào)表,并打印輸出的功能。

在本系統(tǒng)中由于沒有打印機(jī)設(shè)備供試驗(yàn),所以預(yù)先把報(bào)表打印改成報(bào)表預(yù)覽。

設(shè)計(jì)不同用戶的操作權(quán)限和登陸方法

對(duì)所有用戶開放的圖書查詢

借閱者維護(hù)借閱者個(gè)人部分信息

借閱者查看個(gè)人借閱情況信息

維護(hù)借閱者個(gè)人密碼

根據(jù)借閱情況對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作并生成報(bào)表

根據(jù)還書情況對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作并生成報(bào)表

查詢及統(tǒng)計(jì)各種信息

維護(hù)圖書信息

維護(hù)工作人員和管理員信息

維護(hù)借閱者信息

處理信息的完整性

對(duì)借閱過期的圖書生成報(bào)表

圖4-2圖書管理系統(tǒng)數(shù)據(jù)庫(kù)應(yīng)用需求的總結(jié)

根據(jù)以上所做的需求分析,并略掉一些細(xì)節(jié)(如不考慮用戶的登錄;對(duì)記錄的維護(hù)),得出以下的三層數(shù)據(jù)流圖。

§4.2系統(tǒng)功能模塊劃分

系統(tǒng)功能框圖如圖4-10所示。

§4.3系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)

4.3.1概念設(shè)計(jì)

在概念設(shè)計(jì)階段中,設(shè)計(jì)人員從用戶的角度看待數(shù)據(jù)及處理要求和約束,產(chǎn)生一個(gè)反映用戶觀點(diǎn)的概念模式。然后再把概念模式轉(zhuǎn)換成邏輯模式。將概念設(shè)計(jì)從設(shè)計(jì)過程中獨(dú)立開來,使各階段的任務(wù)相對(duì)單一化,設(shè)計(jì)復(fù)雜程度大大降低,不受特定DBMS的限制。

利用ER方法進(jìn)行數(shù)據(jù)庫(kù)的概念設(shè)計(jì),可分成三步進(jìn)行:首先設(shè)計(jì)局部ER模式,然后把各局部ER模式綜合成一個(gè)全局模式,最后對(duì)全局ER模式進(jìn)行優(yōu)化,得到最終的模式,即概念模式。

(1)設(shè)計(jì)局部ER模式

實(shí)體和屬性的定義:

圖書(圖書編號(hào),圖書名稱,作者,出版社,出版日期,備注,價(jià)格,數(shù)量,)

借閱者(借書證號(hào),姓名,性別,身份證,聯(lián)系電話,密碼)

身份(身份編號(hào),身份描述,最大借閱數(shù))

圖書類別(圖書類別編號(hào),類別描述)

ER模型的“聯(lián)系”用于刻畫實(shí)體之間的關(guān)聯(lián)。一種完整的方式是對(duì)局部結(jié)構(gòu)中任意兩個(gè)實(shí)體類型,依據(jù)需求分析的結(jié)果,考察局部結(jié)構(gòu)中任意兩個(gè)實(shí)體類型之間是否存在聯(lián)系。若有聯(lián)系,進(jìn)一步確定是1:N,M:N,還是1:1等。還要考察一個(gè)實(shí)體類型內(nèi)部是否存在聯(lián)系,兩個(gè)實(shí)體類型之間是否存在聯(lián)系,多個(gè)實(shí)體類型之間是否存在聯(lián)系,等等。聯(lián)系定義如圖4-5所示。解釋如下:

u一個(gè)借閱者(用戶)只能具有一種身份,而一種身份可被多個(gè)借閱者所具有;

u一本圖書只能屬于一種圖書類別(類別),而一種圖書類別可以包含多本圖書;

u一個(gè)用戶可以借閱多本不同的書,而一本書也可以被多個(gè)不同的用戶所借閱。

(2)設(shè)計(jì)全局ER模式

所有局部ER模式都設(shè)計(jì)好了后,接下來就是把它們綜合成單一的全局概念結(jié)構(gòu)。全局概念結(jié)構(gòu)不僅要支持所有局部ER模式,而且必須合理地表示一個(gè)完整、一致的數(shù)據(jù)庫(kù)概念結(jié)構(gòu)。

1)確定公共實(shí)體類型

為了給多個(gè)局部ER模式的合并提供開始合并的基礎(chǔ),首先要確定各局部結(jié)構(gòu)中的公共實(shí)體類型。在這一步中我們僅根據(jù)實(shí)體類型名和鍵來認(rèn)定公共實(shí)體類型。一般把同名實(shí)體類型作為公共實(shí)體類型的一類候選,把具有相同鍵的實(shí)體類型作為公共實(shí)體類型的另一類候選。

2)局部ER模式的合并

合并的原則是:首先進(jìn)行兩兩合并;先和合并那些現(xiàn)實(shí)世界中有聯(lián)系的局部結(jié)構(gòu);合并從公共實(shí)體類型開始,最后再加入獨(dú)立的局部結(jié)構(gòu)。

3)消除沖突

沖突分為三類:屬性沖突、結(jié)構(gòu)沖突、命名沖突。

設(shè)計(jì)全局ER模式的目的不在于把若干局部ER模式形式上合并為一個(gè)ER模式,而在于消除沖突,使之成為能夠被所有用戶共同理解和接受的同一的概念模型。

3)全局ER模式的優(yōu)化

在得到全局ER模式后,為了提高數(shù)據(jù)庫(kù)系統(tǒng)的效率,還應(yīng)進(jìn)一步依據(jù)處理需求對(duì)ER模式進(jìn)行優(yōu)化。一個(gè)好的全局ER模式,除能準(zhǔn)確、全面地反映用戶功能需求外,還應(yīng)滿足下列條件:實(shí)體類型的個(gè)數(shù)要盡可能的少;實(shí)體類型所含屬性個(gè)數(shù)盡可能少;實(shí)體類型間聯(lián)系無冗余。

綜上所述,“圖書管理系統(tǒng)”的全局ER模式如圖4-13所示。

4.3.2關(guān)系數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)

由于概念設(shè)計(jì)的結(jié)果是ER圖,DBMS一般采用關(guān)系型(本人所使用的MSSQLServer就是關(guān)系型的DBMS),因此數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)過程就是把ER圖轉(zhuǎn)化為關(guān)系模式的過程。由于關(guān)系模型所具有的優(yōu)點(diǎn),邏輯設(shè)計(jì)可以充分運(yùn)用關(guān)系數(shù)據(jù)庫(kù)規(guī)范化理論,使設(shè)計(jì)過程形式化地進(jìn)行。設(shè)計(jì)結(jié)果是一組關(guān)系模式的定義。

(1)導(dǎo)出初始關(guān)系模式

book(圖書編號(hào)#,圖書名稱,圖書類別#,作者,出版社,出版日期,備注,價(jià)格,數(shù)量)class(圖書類別#,類別名)user(借書證號(hào)#,姓名,性別,身份編號(hào)#,身份證,聯(lián)系電話,密碼)ID(身份編號(hào)#,身份描述,最大借閱數(shù))Owner(借書證號(hào)#,圖書編號(hào)#,借書日期)

圖4-14關(guān)系模式集

(2)產(chǎn)生子模式

子模式是用戶所用到的那部分?jǐn)?shù)據(jù)的描述。除了指出用戶用到的數(shù)據(jù)外,還應(yīng)指出數(shù)據(jù)與概念模式中相應(yīng)數(shù)據(jù)的聯(lián)系,即指出概念模式與子模式之間的對(duì)應(yīng)性。

借書子模式(借書證號(hào)#,姓名,圖書編號(hào)#,圖書名稱,借書日期)

圖4-15部分子模式

(3)根據(jù)設(shè)計(jì)中出現(xiàn)的問題本人在寫系統(tǒng)時(shí)還加入了兩個(gè)關(guān)系模式:

1、ownertemp:用于工作人員在處理借書、還書工作時(shí)臨時(shí)存儲(chǔ)借書、還書信息,以便打印報(bào)表時(shí)使用。

2、keyer:用于存儲(chǔ)工作人員和圖書館管理員的用戶名和密碼及權(quán)限,以便工作人員或圖書館管理員進(jìn)入相應(yīng)的功能模塊時(shí)進(jìn)行驗(yàn)證用戶的身份。

4.3.3數(shù)據(jù)庫(kù)的實(shí)現(xiàn)

我選用MicrosoftSQLServer2000(企業(yè)版)數(shù)據(jù)庫(kù)來進(jìn)行數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)。首先創(chuàng)建七個(gè)基本數(shù)據(jù)庫(kù)表如表4-1-4-7所示,然后根據(jù)全局ER圖,建立各個(gè)表之間的聯(lián)系,如圖4-8所示。

表4-1借閱者基本信息表的結(jié)構(gòu)(User)

表4-2圖書信息表的結(jié)構(gòu)(Book)

表4-3圖書類別信息表的結(jié)構(gòu)(Class)

表4-4借閱者身份信息表的結(jié)構(gòu)(ID)

表4-5借閱情況信息表的結(jié)構(gòu)(Owner)

表4-6借閱情況臨時(shí)存儲(chǔ)信息表的結(jié)構(gòu)(Ownertemp)

注:在owner表和ownertemp表中加入了索引字段,用來唯一標(biāo)識(shí)一條借書記錄,并且設(shè)置為標(biāo)識(shí),標(biāo)識(shí)種子為1。

表4-7工作人員和管理員信息表的結(jié)構(gòu)(Keyer)

圖4-8數(shù)據(jù)庫(kù)表間聯(lián)系圖

第五章圖書管理系統(tǒng)應(yīng)用程序設(shè)計(jì)

§5.1系統(tǒng)窗體模塊組成

§5.2數(shù)據(jù)模塊窗體的設(shè)置

在編寫數(shù)據(jù)庫(kù)應(yīng)用程序時(shí),經(jīng)常要遇到這樣的情況,即好多組件、窗體同時(shí)訪問相同的數(shù)據(jù)源,如果為每一個(gè)組件或者窗體都設(shè)置一個(gè)數(shù)據(jù)源將是十分耗時(shí)的工件,而且要保證這些數(shù)據(jù)源的確是相同的也需花一番功夫。那么,能不能將這些數(shù)據(jù)源集中管理,最好是做成一個(gè)統(tǒng)一的模塊,需要時(shí)就將該模塊引入而不必直接操作數(shù)據(jù)源本身呢?數(shù)據(jù)模塊(DataModule)是解決這個(gè)問題最好的答案。簡(jiǎn)單說來,數(shù)據(jù)模塊是用來集中管理數(shù)據(jù)源的一個(gè)窗體,該窗體可被需要的地方隨時(shí)引入。

但本人在開發(fā)這個(gè)系統(tǒng)時(shí),開始使用了一下數(shù)據(jù)模塊,但在使用過程中卻碰到了一些問題。并且考慮這個(gè)系統(tǒng)使用到的TADOQuery控件比較多,如果使用數(shù)據(jù)控件可能會(huì)帶來管理上的麻煩,如弄混各個(gè)數(shù)據(jù)控件的作用。還考慮到使用動(dòng)態(tài)生成ADOQuery可能會(huì)更節(jié)省資源。所以在本人的系統(tǒng)中,開始做的第一個(gè)模塊“借閱者個(gè)人模塊”中還稍微使用了一下數(shù)據(jù)模塊。但在后面做的兩個(gè)模塊中大多都是用動(dòng)態(tài)生成ADOQuery來實(shí)現(xiàn)的。并且由于SQL語(yǔ)句是動(dòng)態(tài)加入的所以datamodule中的控件也不會(huì)多。

§5.3啟動(dòng)畫面的實(shí)現(xiàn)

啟動(dòng)畫面是為了給用戶一個(gè)良好的印像,加深軟件的親和力,沒有實(shí)際的功能,在Form1窗體中加入了Image和Time組件。啟動(dòng)畫面的窗體略,主要的源代碼如下:

§5.4用戶登錄窗體的的實(shí)現(xiàn)

本窗體是為三種不同的用戶(一般用戶,工作人員,管理員)提供選擇以進(jìn)入不同的模塊,滿足不同用戶的需求。源代碼比較簡(jiǎn)單,略。

§5.5用戶密碼認(rèn)證窗體的的實(shí)現(xiàn)

本窗體是為了讓工作人員或圖書館管理員按照用戶名和密碼進(jìn)行登錄,并且跟據(jù)用戶名檢查Keyer表中的“權(quán)限”字段,以分辯進(jìn)入圖書館管理人員模塊還是進(jìn)入工作人員模塊。窗體界面、源代碼如下

§5.6借閱者服務(wù)模塊的實(shí)現(xiàn)

借閱者服務(wù)窗體的功能主要是圖書的查詢,個(gè)人借閱情況查看及個(gè)人部分信息的修改。界面圖如下:

5.6.1圖書查詢功能的實(shí)現(xiàn)

在本系統(tǒng)中,任何人都有權(quán)限使用查詢功能,不做任何限制。界面如下,

由于實(shí)現(xiàn)的查詢功能有多種,如按圖書編號(hào)、圖書名稱等字段進(jìn)行完全體配查找和部分體配的模糊查找,還有按多個(gè)條件進(jìn)行邏輯與或是邏輯或的多條件查找。其中實(shí)現(xiàn)的方法者差不多,所以只給出多條件查找的代碼,如下:

5.6.2借閱者登錄功能的實(shí)現(xiàn)

這個(gè)功能的實(shí)現(xiàn)與工作人員和管理人員登錄功能實(shí)現(xiàn)的方法大致一樣,并且還要簡(jiǎn)單。是從User表中查到到借閱證號(hào)與密碼,看與用戶輸入的是否一致。如果一致,那么用戶就可查看自已的借閱情況并維護(hù)自己的部分信息。源代碼與借閱者登錄界面都略。

5.6.3借閱者借閱情況功能的實(shí)現(xiàn)

當(dāng)借閱者正確登錄到系統(tǒng)后,此功能將被激活,使用戶能查看到自身的借閱情況。在此系統(tǒng)中,信息的顯示一般用ListView來實(shí)現(xiàn),只在較少的情況下用到了DBgrid,因?yàn)槲矣X得ListView更好實(shí)現(xiàn),并能使信息數(shù)據(jù)對(duì)用戶的完全分離。

在這里跟據(jù)借閱者的不同要求實(shí)現(xiàn)借閱情況的查詢,有檢查所有的借閱情部、某本書的借閱情況、和根據(jù)已借閱天數(shù)的來查詢。其中根椐借閱天數(shù)來查詢更有代表性,有方式一和方式二。以下給出此功能的源代碼

按借閱天數(shù)查詢方式一

按借閱天數(shù)查詢方式二

5.6.4借閱者個(gè)人資料維護(hù)功能的實(shí)現(xiàn)

此功能實(shí)現(xiàn)當(dāng)前借閱者部份資料的修改,但借書證號(hào)和身份類別這樣的信息不允許修改,這是圖書館管理員模塊的功能。在此界面中點(diǎn)擊修改按鈕將出現(xiàn)“修改”窗體(Form8),點(diǎn)擊修改密碼按鈕將出現(xiàn)groupbox8,在這里進(jìn)行密碼修改。關(guān)鍵源代碼如下。

這里給出個(gè)人部分信息修改的源代碼:

這里給出密碼修改的源代碼:

5.7工作人員-圖書借閱/歸還模塊的實(shí)現(xiàn)

5.7.1工作人員進(jìn)行圖書借閱功能實(shí)現(xiàn)

在這個(gè)功能中,工作人員輸入借閱者的借閱證號(hào)和所要借閱的圖書的圖書編號(hào),然后點(diǎn)擊借閱按鈕就可進(jìn)行圖書借閱??紤]到實(shí)際中可能會(huì)出現(xiàn)只知圖書名而不知圖書編號(hào)的情況,在此界面下方加入了一個(gè)轉(zhuǎn)換功能,可以把圖書名稱轉(zhuǎn)換成圖書編號(hào),再進(jìn)行圖書借閱。

在借閱完成后會(huì)生借閱報(bào)表以便借閱者檢查和確認(rèn),借閱報(bào)表的打印效果如下圖,實(shí)現(xiàn)比較簡(jiǎn)單,略去實(shí)現(xiàn)過程。

5.7.2工作人員進(jìn)行圖書歸還功能實(shí)現(xiàn)

在此功能中,工作人員根據(jù)借閱者的借書證號(hào)和歸還的圖書編號(hào)進(jìn)行圖書的歸還工作。并且根據(jù)現(xiàn)實(shí)中可能會(huì)出現(xiàn)的只知圖書名不知圖書編號(hào)的歸還情況,所以加入了按書籍名稱進(jìn)行歸還的功能。這個(gè)功能是圖書借閱功能中把圖書名稱轉(zhuǎn)換成圖書編號(hào)的一種改進(jìn)方法,這樣就不用如借閱功能中一樣要先轉(zhuǎn)換再借閱了。歸還完成后,同樣會(huì)打印出歸還報(bào)表以便用戶檢查和確認(rèn)。

5.8圖書館管理員模塊的實(shí)現(xiàn)

5.8.1圖書館管理員圖書管理功能的實(shí)現(xiàn)

在這個(gè)功能中可以在(*圖書編號(hào))中輸入圖書編號(hào),點(diǎn)查找按鈕后就會(huì)在各個(gè)相應(yīng)的組件中顯示出信息,或按圖書名稱模糊查找到所要的記錄,在各個(gè)相應(yīng)的組件中顯示第一條記錄的信息,也可在下端的ListView組件中點(diǎn)擊某一條記錄,在各個(gè)相應(yīng)的組件中也會(huì)顯示所選記錄的信息。在入庫(kù)功能中只要不是相同的圖書編號(hào)并且?guī)В?hào)提示的字段不為空就可插入新的圖書記錄。刪除則刪除那些Book表中的圖書記錄,如果借出還可依用戶要求連帶刪除owner表中的記錄。因?yàn)閳D書修改與圖書入庫(kù)的功能與工作人員記錄修改和工作人員記錄添加的實(shí)現(xiàn)過程一樣,所以下面僅給出刪除功能的源代碼,如下

5.8.2圖書館管理員工作人員和管理員管理功能的實(shí)現(xiàn)

在此功能中可以加入工作人員或是管理員,或是修改他們的密碼、權(quán)限。

在此功能中如果選中ListView中的記錄,則在右邊相應(yīng)的組件中顯示出信息,并且管理員還可對(duì)這些記錄進(jìn)行修改或加入新的記錄。并且也可以點(diǎn)刪除按鈕刪除選中的一條或多條記錄。刪除功能與圖書記錄的刪除一般,所以下面只給出添加與修改的實(shí)現(xiàn)過程。

5.8.3圖書館管理員修改圖書類別及統(tǒng)記功能的實(shí)現(xiàn)

在此窗體中能對(duì)圖書的類別進(jìn)行刪除,添加和修改,這模塊的功能的實(shí)現(xiàn)過程與圖書記錄的刪除,添加和修改一樣的,但是這個(gè)窗體還能跟據(jù)圖書類別進(jìn)行統(tǒng)計(jì),還可根據(jù)Book表和owner表統(tǒng)計(jì)出圖書總數(shù)目,庫(kù)存圖書數(shù)目,借出圖書數(shù)目及借閱過期的圖書數(shù)目。在這里給出統(tǒng)計(jì)圖書總數(shù)目,庫(kù)存圖書數(shù)目,借出圖書數(shù)目及借閱過期的圖書數(shù)目的實(shí)現(xiàn)過程中的幾個(gè)函數(shù)和過程

5.8.4圖書館管理員借閱者管理功能的實(shí)現(xiàn)

查詢借閱者可根據(jù)借閱者的借書證號(hào)或姓名或身份編號(hào)查找到借閱者的信息,也可以實(shí)行模糊查找,這個(gè)功能的實(shí)現(xiàn)與前面圖書查找的實(shí)現(xiàn)過程一般,就不再詳細(xì)說明。

5.8.5圖書館維護(hù)借閱者管理功能的實(shí)現(xiàn)

此功能能對(duì)借閱者信息進(jìn)行查看添加、刪除、修改。在這里給出刷新按鈕的實(shí)現(xiàn)過程

5.8.6圖書館身份維護(hù)功能的實(shí)現(xiàn)

篇4

2數(shù)據(jù)庫(kù)安全設(shè)計(jì)

成熟完善的安全機(jī)制能夠保障數(shù)據(jù)的完整、保密性,防止被人為破壞情況的發(fā)生。完善的安全機(jī)制能夠有效防止誤操作或是人為的破壞。Oracle數(shù)據(jù)庫(kù)具備功能強(qiáng)大的安全管理工具,Oracle數(shù)據(jù)庫(kù)中的每一個(gè)用戶都由系統(tǒng)分配相應(yīng)的權(quán)限,因此,用戶只有具備對(duì)相關(guān)數(shù)據(jù)進(jìn)行訪問或是處理的相關(guān)權(quán)限才能夠做進(jìn)一步的操作,這為數(shù)據(jù)的安全性提供了保障。此外,Oracle安全管理工具能夠?qū)τ脩艚巧M(jìn)行相關(guān)的增、刪、除、改等操作,甚至可以為用戶配置特權(quán)。

2.1角色的規(guī)劃與建立基于土地管理部門的特點(diǎn),系統(tǒng)用戶劃分為4大類:(1)數(shù)據(jù)庫(kù)管理人員。(2)局長(zhǎng)、科長(zhǎng)等。(3)內(nèi)部普通員工。(4)外部人員。數(shù)據(jù)庫(kù)土地管理人員的主要職責(zé)在于開、關(guān)數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)進(jìn)行備份、恢復(fù)以及維護(hù)工作,用戶的安全管理也在其工作范圍內(nèi)??崎L(zhǎng)、局長(zhǎng)類似于數(shù)據(jù)庫(kù)的超級(jí)用戶,他們具有對(duì)簽字、批準(zhǔn)等特權(quán)。對(duì)于內(nèi)部工作人員,他們具有的權(quán)限即按照相應(yīng)要求對(duì)數(shù)據(jù)進(jìn)行錄入或是修改等操作。而外部人員一般是通過驗(yàn)證注冊(cè)身份得以瀏覽部分?jǐn)?shù)據(jù)。

2.2角色特權(quán)配置Oracle數(shù)據(jù)庫(kù)提供三種標(biāo)準(zhǔn)的角色:CONNECT、RESOURCE和DBA。CONNECT即為鏈接角色,其特權(quán)為相關(guān)用戶對(duì)某些表僅具有查詢權(quán)力,一般是第四類用戶;RESOURC表示可靠的數(shù)據(jù)庫(kù)用戶,第二、三類用戶屬于這個(gè)范疇,他們能夠創(chuàng)建相關(guān)的數(shù)據(jù)表、序列和引索等;DBA擁有所有的系統(tǒng)權(quán)限,擁有該角色特權(quán)的用戶行使對(duì)整個(gè)數(shù)據(jù)庫(kù)的更新維護(hù)以及數(shù)據(jù)備份工作,其他用戶擁有的權(quán)限也由DBA用戶賦予,上述各類用戶中的系統(tǒng)管理員被賦予DBA特權(quán)。除了Oracle本身的安全設(shè)置機(jī)制,登錄用戶和用戶密碼的驗(yàn)證也讓系統(tǒng)的安全性得到進(jìn)一步的保障。

3運(yùn)行開發(fā)環(huán)境

3.1服務(wù)器端(1)操作系統(tǒng):window2000以上操作系統(tǒng)。(2)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng):Oracle企業(yè)版。

3.2客戶端(1)操作系統(tǒng):window2000以上操作系統(tǒng)。(2)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng):Oracle客戶端。(3)開發(fā)環(huán)境和工具:VisualBasic、ADO(ActiveX控件)、報(bào)表生成工具(Oracledeveploper)。

4關(guān)鍵技術(shù)的實(shí)現(xiàn)

4.1界面控件與數(shù)據(jù)表的聯(lián)接VB環(huán)境下,利用數(shù)據(jù)庫(kù)設(shè)計(jì)工具將窗體控件與數(shù)據(jù)表中對(duì)應(yīng)的字段綁定。然后清空ADO的ConnectionString和RecordSource屬性。

4.2報(bào)表的打印功能用水晶報(bào)表軟件設(shè)計(jì)報(bào)表,將CRYSTAL32.OCX嵌入VB,然后對(duì)控件的屬性進(jìn)行設(shè)置,實(shí)現(xiàn)打印輸出。

篇5

――快樂閱讀與讀者權(quán)利、讀者義務(wù)關(guān)系之探討馬小紅,周翠萍 1:1―3

從“中國(guó)期刊全文數(shù)據(jù)庫(kù)”相關(guān)論文的關(guān)鍵詞詞頻分析看我國(guó)讀者工作及藏書建設(shè)的發(fā)展陸華娟 1:4―6

高校數(shù)字圖書館引進(jìn)SNS的研究分析張 琳 1:7―8,21

高校圖書館創(chuàng)新發(fā)展思考崔海峰 1:9―11

《圖書館戰(zhàn)爭(zhēng)》――日本式“圖書館自由”精神的體現(xiàn)梁文婕 1:12―13,54

論數(shù)據(jù)庫(kù)版權(quán)的保護(hù)溫 泉,黃繼蘭 2:1―2,17

知識(shí)價(jià)值鏈圖書館競(jìng)爭(zhēng)情報(bào)服務(wù)探析陳麗翎 2:3―75

晉商文獻(xiàn)資源共建共享體系的架構(gòu)頡艷萍 2:6―8

我國(guó)公共圖書館政府信息服務(wù)策略探析萬(wàn)文娟 2:9―11

關(guān)于公共圖書館延伸服務(wù)的實(shí)踐和思考宋國(guó)忠 2:12―14

論公共圖書館地方文獻(xiàn)贈(zèng)書的質(zhì)量引導(dǎo)及控制甘 新 2:15―17

論新形勢(shì)下科技查新的協(xié)作創(chuàng)新李 彥,劉玉蓮 2:18―20

結(jié)構(gòu)洞理論在高校圖書館專業(yè)分館建設(shè)中的應(yīng)用宋 潔 3:1―3

淺論公共圖書館的共享特征周會(huì)會(huì) 3:4,7

時(shí)間成本在高校圖書館服務(wù)中的效用李鳳英 3:5―7

圖書館與低碳經(jīng)濟(jì)陳蜀園 3:8―9,22

合作虛擬參考咨詢服務(wù)的館員保障杜文娟 3:10―11,29

論圖書館員隱性知識(shí)轉(zhuǎn)移的影響因素李玲 3:12―13,18

論圖書館發(fā)展的外在動(dòng)力――信息技術(shù)的驅(qū)動(dòng)李 欣 4:1―3,9

試論高校圖書館館員的知識(shí)地圖構(gòu)建莊青青 4:4―6

高校圖書館網(wǎng)絡(luò)信息資源個(gè)性化服務(wù)研究劉夢(mèng)琦,郭 磊 4:7―9

圖書館在云計(jì)算時(shí)代的機(jī)遇與挑戰(zhàn)黎意慧 4:10―12

論影視藝術(shù)院校圖書館外文文獻(xiàn)資源的建設(shè)與利用陳中國(guó) 4:13―15

論電子圖書對(duì)圖書館的影響及發(fā)展對(duì)策梁宏霞,黎維玲 4:16―18

論圖書館價(jià)值關(guān)系的本質(zhì)丁國(guó)順 5:1―2

云存儲(chǔ)影響下的數(shù)字圖書館黃 燕 5:3―4,10

公共性與學(xué)術(shù)性的兩難選擇

――對(duì)公共圖書館免費(fèi)開放的一些思考蔡 彥,王以儉 5:5―7

基于知識(shí)管理的圖書館信息服務(wù)運(yùn)營(yíng)研究祝 磊,孫 哲,胡 石 5:8―10

基于web環(huán)境下的數(shù)字化書包――電子書包張 倩,章祥峰 5:11―13

信息服務(wù)理論基礎(chǔ)淺析艾新革 5:14―16

試論館藏知識(shí)的使用價(jià)值龐桂香 5:17―18,94

淺談公共圖書館的文化自覺林忠娜,葛丹陽(yáng) 6:1―3

關(guān)聯(lián)數(shù)據(jù)特點(diǎn)及研究胡明玲,王建濤 6:4―6

基于語(yǔ)義技術(shù)的搜索引擎平臺(tái)搭建的可行性研究王清飛 6:7―9,28

公共圖書館公益的路徑選擇

――以北海市縣圖書館公益服務(wù)現(xiàn)實(shí)分析為例李建民 6:10―12,31

移動(dòng)圖書館在大學(xué)校園的發(fā)展概況及影響宋 飛 6:13―15

•科研項(xiàng)目•

廣西社會(huì)科學(xué)文獻(xiàn)資源建設(shè)效應(yīng)研究姚 倩 1:14―18

圖書館中的多模態(tài)應(yīng)用彭建武,于曉燕,齊 偉 1:19―21

國(guó)有大型企事業(yè)單位分布式科技信息資源的共建共享模式探討唐 迪,蔡 敏,黎 琳 1:22―24

安徽古籍保護(hù)的問題與對(duì)策研究朱開忠 1:25―27

知識(shí)服務(wù)的條件與內(nèi)容研究石聿根 1:28―30

廣西高校圖書館與公共圖書館合作共享調(diào)查報(bào)告廖 球,賴 群,莫崇菊 1:31―33,78

Web2.0環(huán)境下大學(xué)生信息素養(yǎng)實(shí)證調(diào)查與分析

――以南通大學(xué)為例黃 靜 1:34―37

數(shù)字圖書館互操作協(xié)議比較研究吳育芳 1:38―41

物聯(lián)網(wǎng)在高校圖書館東盟信息資源個(gè)性化服務(wù)中應(yīng)用初探唐小新 2:64―68

基于就業(yè)導(dǎo)向的高職院校圖書館信息服務(wù)模式研究羅木華 2:69―71

信息共享空間構(gòu)建研究

――以徐州工程學(xué)院圖書館為例王芙容 2:72―75

高校數(shù)字圖書館服務(wù)社區(qū)的策略探討晏 磊 2:76―78

重慶市現(xiàn)存抗戰(zhàn)大后方文獻(xiàn)及其特點(diǎn)王志昆 3:58―61

高校圖書館專利信息服務(wù)策略探討楊 麗 3:62―63

復(fù)合圖書館應(yīng)對(duì)云計(jì)算的發(fā)展思路郭麗英 3:64―65,85

實(shí)施文獻(xiàn)資源質(zhì)量工程的設(shè)想與探索張芳寧 3:66―68

中學(xué)圖書館資源建設(shè)探討

――廣雅中學(xué)教學(xué)資源使用情況調(diào)查分析謝 晗 3:69―71

淺談《中華再造善本》的分類與讀者服務(wù)績(jī)效

――以廣西師范大學(xué)圖書館為例唐咸明 3:72―73

湛江本土文化研究文獻(xiàn)的調(diào)查與分析羅 瑩 3:74―76

高校圖書館自建數(shù)據(jù)庫(kù)建設(shè)現(xiàn)狀分析

――以廣西高校圖書館為例王 虹 4:25―28

圖書采訪中錯(cuò)配圖書的成因及對(duì)策

――以淮海工學(xué)院圖書館為例夏詠梅 4:29―30,40

高校圖書館對(duì)新生代外來工知識(shí)援助的研究

――以佛山市新生代外來工為例陳響坤 4:31―33

學(xué)位論文管理系統(tǒng)論文自動(dòng)更新模型關(guān)鍵技術(shù)研究與實(shí)現(xiàn)侯 輝,周力青,張興旺 4:34―36,66

基于教學(xué)科研用戶服務(wù)的高職院圖書館供需矛盾探析王 玲 5:19―21

高職院校特色數(shù)據(jù)庫(kù)的建設(shè)與思考

――以“廣藝資源網(wǎng)”特色數(shù)據(jù)庫(kù)為例陳美芝,李 華 5:22―24,31

數(shù)字化環(huán)境下高校圖書館創(chuàng)新信息服務(wù)探析盧 山 5:25―27

基于熵權(quán)的圖書館信息服務(wù)質(zhì)量模糊綜合評(píng)判法鄧愛東 6:16―19

文獻(xiàn)檢索課實(shí)踐教學(xué)的變化與發(fā)展楊小鳳,馮向春 6:20―22

2006―2010年江西公共圖書館宏觀發(fā)展?fàn)顩r分析程春焱,龍 心,歐陽(yáng)周遐,王昭勇 6:23―28

基于網(wǎng)絡(luò)分析的期刊引用關(guān)系研究杜秀英 6:29―31

基于Internet的高校圖書館圖書采購(gòu)招投標(biāo)研究張 靜 6:32―35

山西省高校圖書館電子服務(wù)品牌建設(shè)劉金玉 6:36―39

•綜述論壇•

圖書館數(shù)據(jù)挖掘技術(shù)研究現(xiàn)狀述評(píng)唐吉深 1:42―44,66

袁崇煥研究文獻(xiàn)綜述何錦奮 1:45―48

我國(guó)圖書館期刊工作(2005―2009年)文獻(xiàn)研究的計(jì)量分析徐 婷 2:79―88

2000―2009年國(guó)內(nèi)鏈接分析研究文獻(xiàn)計(jì)量分析曾晶晶,王亞平,奉國(guó)和 2:82―88

圖書館之“首問負(fù)責(zé)制”研究:基于中文期刊數(shù)據(jù)庫(kù)的實(shí)證分析李 偉 2:89―92

面向肢體殘疾群體的閱讀療法研究綜述李 婧 5:35―37

2005―2010年我國(guó)“農(nóng)民工與圖書館”文獻(xiàn)研究的計(jì)量分析胡 軍 6:48―51

1992―2010年我國(guó)聯(lián)合參考咨詢領(lǐng)域文獻(xiàn)的計(jì)量分析郭 磊 6:52―55

•古籍研究•

《東華錄》版本述略?shī)涿鬏x 1:49―50

試論《論衡》的文獻(xiàn)價(jià)值楊妍靜 1:51―54

談“則天革命”時(shí)期的圖書編撰李巧愛 4:19―21

民國(guó)時(shí)期廣西經(jīng)濟(jì)期刊特點(diǎn)評(píng)介廖曉云 4:22―24

《閩書》明朝科第與人物傳記正誤十七則程妹芳 5:28―31

近代湖南私家藏書綜述劉雪平 5:32―34

《明史記》編纂考論展 龍,耿 勇 6:40―44,51

顏之推文獻(xiàn)整理的思想和方法探析樊 普 6:45―47

•工作研討•

圖書館文獻(xiàn)資源建設(shè)的新舉措:重點(diǎn)文獻(xiàn)入藏調(diào)研與補(bǔ)充

――以東莞圖書館為例李正祥,陳秀琴 1:55―57

湖北省高校圖書館特色數(shù)據(jù)庫(kù)建設(shè)現(xiàn)狀分析史立慧 1:58―60

少年兒童圖書館特殊兒童群體服務(wù)研究王永丹 1:61―63

中國(guó)圖書出版發(fā)行業(yè)的發(fā)展變革與圖書館采訪工作的對(duì)策熊 鷹 1:64―66

中小型圖書館書目數(shù)據(jù)質(zhì)量控制的三個(gè)環(huán)節(jié)張 梅 1:67―69

Interlib系統(tǒng)的使用技巧及問題解析范春玲 1:70―71

從我國(guó)南方的古籍保護(hù)工作談起王 芹,肖曉梅,魏笑英 1:72―74

高校圖書館讀者借閱權(quán)限相關(guān)問題探析蔡麗萍 1:75―78

說說館員的“傳幫帶”張亞軍 1:79―80

高校圖書館學(xué)科化服務(wù)創(chuàng)新發(fā)展實(shí)踐研究劉琳琳,洪 躍 1:81―82

中國(guó)―東盟博覽會(huì)文獻(xiàn)專業(yè)館采訪探索黃祖彬 1:83―85

試論《中國(guó)圖書館分類法》(第四版)部分注釋示例的幾個(gè)問題肖 燕 1:86―88

廣西文化信息資源共享工程建設(shè)實(shí)踐與探索徐欣祿 2:21―27

圖書館剪報(bào)服務(wù)的思考林 岫 2:24―27

發(fā)揮民間閱讀組織在公共圖書館閱讀推廣中的作用高小軍 2:28―30

電子書的認(rèn)知與使用

――基于北京科技大學(xué)讀者調(diào)查趙秀君 2:31―34

公共圖書館免費(fèi)開放的應(yīng)用性研究

――以重慶圖書館為例王寧遠(yuǎn) 2:35―37

圖書館開展3G手機(jī)服務(wù)的探討徐 靜 2:38―40

從視障用戶的信息需求思考無障礙數(shù)字圖書館的建設(shè)楊俊英,趙林靜,鄭 宏 2:41―92

淺談圖書館學(xué)術(shù)論文的寫作賴輝榮 2:44―46

關(guān)于修訂《中等專業(yè)學(xué)校圖書館規(guī)程》的芻議喻登科,徐 敏 2:47―68

華僑華人歷史文獻(xiàn)概述與搜集利用

――以暨南大學(xué)圖書館為例王 華 2:50―52

高校圖書館預(yù)約圖書復(fù)本量探析侯 茜 2:53―60

淺談閱讀跨越

――“聽書”:讀者閱讀的新選擇談 蘋 2:55―71

也談公共圖書館的自我展示談沁焱 2:57―58

校園一卡通在圖書館服務(wù)中的應(yīng)用徐金滿 2:59―60

圖書館電子閱覽室的服務(wù)創(chuàng)新實(shí)踐

――以沈陽(yáng)理工大學(xué)圖書館為例王 捷 2:61―63

省級(jí)圖書館學(xué)會(huì)工作的創(chuàng)新思考

――以廣西圖書館學(xué)會(huì)為例賈 瑩 3:14―18

淺析讀者知識(shí)庫(kù)的構(gòu)建黃 勇,徐翔鵬 3:19―22

對(duì)提升公共圖書館地方文獻(xiàn)服務(wù)社會(huì)效益的思考李志慧 3:23―25

基于建構(gòu)主義理論的大學(xué)生信息素養(yǎng)教育教學(xué)設(shè)計(jì)馮春英,盛興軍 3:26―29

圖書館虛擬參考咨詢體系構(gòu)建

――以鄭州輕工業(yè)學(xué)院圖書館為例喬 楊 3:30―33

現(xiàn)代圖書管理系統(tǒng)中的動(dòng)態(tài)清點(diǎn)工作

――以MELINETS為例王晉月 3:34―36

南寧市公共圖書館總分館建設(shè)的可行性分析周 明 3:37―39

圖書館崗位輪換策略探析

――以南開大學(xué)圖書館為例林紅狀,張伯山 3:40―42