




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、江 西 理 工 大 學(xué) 南 昌 校 區(qū)畢 業(yè) 設(shè) 計(jì)(論文)題 目:圖書(shū)管理系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)查詢功能的實(shí)現(xiàn)系 :信息工程系專 業(yè):應(yīng)用電子技術(shù)班 級(jí):08應(yīng)用電子技術(shù)班學(xué) 生:張岑學(xué) 號(hào):08325149指導(dǎo)教師: 董玉婷老師 職稱:講師摘 要圖書(shū)管理系統(tǒng)是智能辦公系統(tǒng)(ioa)的重要組成部分,因此,圖書(shū)管理系統(tǒng)也以方便、快捷的有點(diǎn)正慢慢地進(jìn)入人們的生活,將傳統(tǒng)的圖書(shū)管理方式徹底的解脫出來(lái),提高效率,減輕工作人員以往繁忙的工作,減小出錯(cuò)的概率,使讀者花更多的時(shí)間在選擇書(shū)和看書(shū)上。從而使人們有更多的時(shí)間來(lái)獲取信息、了解信息、掌握信息。圖書(shū)館管理系統(tǒng)是典型的信息管理系統(tǒng)(mis),其開(kāi)發(fā)主要包括后
2、臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開(kāi)發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫(kù)。而對(duì)于后者則要求應(yīng)用程序功能完備、易使用等特點(diǎn)。采用sql數(shù)據(jù)庫(kù)作為后臺(tái)數(shù)據(jù)庫(kù)、sql編程語(yǔ)言作為前臺(tái)開(kāi)發(fā)工具,通過(guò)對(duì)數(shù)據(jù)庫(kù)技術(shù)進(jìn)行了較深入的學(xué)習(xí)和應(yīng)用,主要完成圖書(shū)管理系統(tǒng)查詢功能的實(shí)現(xiàn)。系統(tǒng)運(yùn)行結(jié)果證明,本文所設(shè)計(jì)的圖書(shū)管理系統(tǒng)查詢功能的實(shí)現(xiàn)可以滿足學(xué)生和教師借閱者、圖書(shū)管理人員兩方面的需求,達(dá)到了設(shè)計(jì)要求。關(guān)鍵詞:圖書(shū)管理系統(tǒng);數(shù)據(jù)庫(kù);查詢功能;sqlabstract library management system is the intelligent office syst
3、ems (ioa) an important part of, so a bit of library management system to quickly and easily is slowly into peoples lives, will be completely free of traditional library management, increase efficiency, reduce staff before the busy work, reducing the probability of error, so that readers spend more t
4、ime on in the choice of books and reading. so as to allow more time for people to get information, learn about information, information. library management system is a typical management information system(mis),the establishment and maintenance of database development includes the background and dev
5、elopment the two aspects of front-end applications. data consistency and integrity requirements established for the former library of strong, good data security. while the latter requires that the application functions, easy to use and so on. sqldatabase as a backend database,sql programming languag
6、es as the foreground development tools, through a more in-depth study and application of database technology, mainly implementation of query feature complete library management system. systems running turned out to this article the design of books management system realization of query functions can
7、 meet students and teachers, librarians two needs of the borrowing, meet design requirements.key words: library management systems; databases; queries;sql目 錄摘 要 圖書(shū)管理系統(tǒng)是智能辦公系統(tǒng)(ioa)的重要組成部分,因此,圖書(shū)管理系統(tǒng)也以方便、快捷的有點(diǎn)正慢慢地進(jìn)入人們的生活,將傳統(tǒng)的圖書(shū)管理方式徹底的解脫出來(lái),提高效率,減輕工作人員以往繁忙的工作,減小出錯(cuò)的概率,使讀者花更多的時(shí)間在選擇書(shū)和看書(shū)上。從而使人們有更多的時(shí)間來(lái)獲取信息、了解
8、信息、掌握信息。圖書(shū)館管理系統(tǒng)是典型的信息管理系統(tǒng)(mis),其開(kāi)發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開(kāi)發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫(kù)。采用sql數(shù)據(jù)庫(kù)作為后臺(tái)數(shù)據(jù)庫(kù)、sql編程語(yǔ)言作為前臺(tái)開(kāi)發(fā)工具,通過(guò)對(duì)數(shù)據(jù)庫(kù)技術(shù)進(jìn)行了較深入的學(xué)習(xí)和應(yīng)用,主要完成圖書(shū)管理系統(tǒng)查詢功能的實(shí)現(xiàn)。系統(tǒng)運(yùn)行結(jié)果證明,本文所設(shè)計(jì)的圖書(shū)管理系統(tǒng)查詢功能的實(shí)現(xiàn)可以滿足學(xué)生和教師借閱者、圖書(shū)管理人員兩方面的需求,達(dá)到了設(shè)計(jì)要求。關(guān)鍵詞:圖書(shū)管理系統(tǒng);數(shù)據(jù)庫(kù);查詢功能;sql第一章 前言1 1.1 概述1 1.2 圖書(shū)管理系統(tǒng)1 1.3 研究現(xiàn)狀2 1.4 個(gè)性化服務(wù)2第二
9、章 數(shù)據(jù)庫(kù)4 2.1 數(shù)據(jù)庫(kù)階段的特點(diǎn)4 2.2從文件系統(tǒng)發(fā)展到數(shù)據(jù)庫(kù)系統(tǒng)是信息處理領(lǐng)域的一個(gè)重大變化5 2.3數(shù)據(jù)庫(kù)模型5 2.4 數(shù)據(jù)庫(kù)體系結(jié)構(gòu)7 2.5 sql簡(jiǎn)介7 2.6 ado數(shù)據(jù)訪問(wèn)組件9 2.7數(shù)據(jù)控制類datacontrol10 2.8數(shù)據(jù)訪問(wèn)類dataaccess10 2.9 sql語(yǔ)言在delphi中的應(yīng)用11 第三章 圖書(shū)管理系統(tǒng)分析13 3.1 背景概述13 3.2 需求分析14 3.3 可行性分析15 3.4 系統(tǒng)分析15 3.5開(kāi)發(fā)環(huán)境16 3.6 功能需求16 3.7 性能需求17第四章 詳細(xì)設(shè)計(jì)18 4.1 程序流程圖18 4.2 程序接口描述19 4.3 數(shù)
10、據(jù)庫(kù)的設(shè)計(jì)20第五章 編碼實(shí)現(xiàn)22 5.1 程序編碼22第六章 測(cè)試分析報(bào)告26 61測(cè)試計(jì)劃和要點(diǎn)26 62 測(cè)試用例26 63 測(cè)試結(jié)果及結(jié)論27致謝29參考文獻(xiàn)30- 37 -江西理工大學(xué)2008屆畢業(yè)生論文第一章 前 言1.1概述現(xiàn)在,科學(xué)技術(shù)的飛速發(fā)展把人類社會(huì)推向了一個(gè)嶄新的時(shí)代信息時(shí)代。這已是無(wú)可爭(zhēng)議的事實(shí);信息對(duì)社會(huì)經(jīng)濟(jì)發(fā)展的巨大推動(dòng)作用,使其與物質(zhì)能源一起并列為現(xiàn)代社會(huì)的三大支柱,這已在全社會(huì)達(dá)到共識(shí)。隨著對(duì)信息作為一種資源來(lái)管理的需求日益加強(qiáng),信息研究領(lǐng)域出現(xiàn)了一種新的管理思想和模式信息管理。由于信息是普遍存在的,人類信息管理活動(dòng)的范圍也是十分廣泛的,信息管理不僅是信息工作
11、的一部分,而且已被認(rèn)為是現(xiàn)代管理的重要組成部分。 在信息化、知識(shí)化的現(xiàn)代社會(huì)里,浩如煙海的科技文獻(xiàn)信息和圖書(shū)資料是不可取的社會(huì)財(cái)富。計(jì)算機(jī)信息技術(shù)和internet的飛速發(fā)展與廣泛普及,給我們利用和開(kāi)發(fā)文獻(xiàn)息和圖書(shū)資料賦予了高效率的手段。傳統(tǒng)的紙介質(zhì)發(fā)展到紙張、電子、磁記錄、光存儲(chǔ)等多種介質(zhì)的大量應(yīng)用;信息處理和傳輸?shù)姆绞接蓚鹘y(tǒng)的書(shū)信進(jìn)化到文字、聲音、圖像的網(wǎng)絡(luò)實(shí)時(shí)傳輸。由于網(wǎng)絡(luò)的應(yīng)用,圖書(shū)館之間相互聯(lián)機(jī),資源共享,讀者被極為豐富的資源所包圍。隨著時(shí)代的發(fā)展,傳統(tǒng)的基于局域網(wǎng)和純文本類型的文獻(xiàn)信息系統(tǒng)己經(jīng)不能滿足發(fā)展的要求,需要賦予圖書(shū)管理系統(tǒng)先進(jìn)的技術(shù)和手段以向多種數(shù)據(jù)媒體、資源跨地域分布的
12、數(shù)字式圖書(shū)館發(fā)展,圖書(shū)管理朝著技術(shù)自動(dòng)化和服務(wù)手段多元化方向發(fā)展。圖書(shū)管理信息系統(tǒng)的開(kāi)發(fā)與應(yīng)用越來(lái)越顯迫切與重要,因此,開(kāi)發(fā)這樣一套圖書(shū)管理軟件成為很有必要的事情。1.2圖書(shū)管理系統(tǒng)圖書(shū)館管理系統(tǒng)是典型的信息管理系統(tǒng)(mis),其開(kāi)發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開(kāi)發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng).數(shù)據(jù)安全性好的庫(kù)。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。本文針對(duì)目前中小圖書(shū)管理實(shí)際,從系統(tǒng)的開(kāi)發(fā)背景、需求分析、設(shè)計(jì)原則及開(kāi)發(fā)過(guò)程等四個(gè)方面進(jìn)行了全面的闡述,采用visual basic6.0和sql sserver2000等軟件為開(kāi)發(fā)工具,闡述了中小
13、型圖書(shū)管理軟件中所應(yīng)具有的功能及其設(shè)計(jì)與實(shí)現(xiàn)。使用計(jì)算機(jī)軟件對(duì)圖書(shū)進(jìn)行管理,是計(jì)算機(jī)應(yīng)用的一部分。以實(shí)現(xiàn)圖書(shū)檢索迅速、可靠性高、存儲(chǔ)量大、壽命長(zhǎng)、成本低等特點(diǎn),能極大程度地提高圖書(shū)管理的效率,也是圖書(shū)管理信息化、正規(guī)化管理的必然趨勢(shì)。針對(duì)用戶對(duì)圖書(shū)資源進(jìn)行有效利用和管理的功能需求,用建模技術(shù)對(duì)圖書(shū)管理資源采用面向?qū)ο蟮拿枋龇绞?,在具體系統(tǒng)功能實(shí)現(xiàn)之前,建立起系統(tǒng)模型是很必要的,這里采用具有可視化、能夠柔性實(shí)現(xiàn)分析、設(shè)計(jì)和開(kāi)發(fā)系統(tǒng)的統(tǒng)一建模語(yǔ)言實(shí)現(xiàn)系統(tǒng)模型構(gòu)建。當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代。在各行各業(yè)中離不開(kāi)信息處理,這正是計(jì)算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計(jì)算機(jī)的最大好處在于利用它能夠進(jìn)行
14、信息管理。使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對(duì)于復(fù)雜的信息管理,計(jì)算機(jī)能夠充分發(fā)揮它的優(yōu)越性。計(jì)算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開(kāi)發(fā)密切相關(guān),系統(tǒng)的開(kāi)發(fā)是系統(tǒng)管理的前提。本系統(tǒng)就是為了管理好圖書(shū)館信息而設(shè)計(jì)的。 圖書(shū)館作為一種信息資源的集散地,圖書(shū)和用戶借閱資料繁多,包含很多的信息數(shù)據(jù)的管理,現(xiàn)今,有很多的圖書(shū)館都是初步開(kāi)始使用,甚至尚未使用計(jì)算機(jī)進(jìn)行信息管理。根據(jù)調(diào)查得知,他們以前對(duì)信息管理的主要方式是基于文本、表格等紙介質(zhì)的手工處理,對(duì)于圖書(shū)借閱情況(如借書(shū)天數(shù)、超過(guò)限定借書(shū)時(shí)間的天數(shù))的統(tǒng)計(jì)和核實(shí)等往往采用對(duì)借書(shū)卡的人工檢查進(jìn)行,對(duì)借閱者的借閱權(quán)限
15、、以及借閱天數(shù)等用人工計(jì)算、手抄進(jìn)行。數(shù)據(jù)信息處理工作量大,容易出錯(cuò);由于數(shù)據(jù)繁多,容易丟失,且不易查找??偟膩?lái)說(shuō),缺乏系統(tǒng),規(guī)范的信息管理手段。盡管有的圖書(shū)館有計(jì)算機(jī),但是尚未用于信息管理,沒(méi)有發(fā)揮它的效力,資源閑置比較突出,這就是管理信息系統(tǒng)的開(kāi)發(fā)的基本環(huán)境。 數(shù)據(jù)處理手工操作,工作量大,出錯(cuò)率高,出錯(cuò)后不易更改。圖書(shū)館采取手工方式對(duì)圖書(shū)借閱情況進(jìn)行人工管理,由于信息比較多,圖書(shū)借閱信息的管理工作混亂而又復(fù)雜;一般借閱情況是記錄在借書(shū)證上,圖書(shū)的數(shù)目和內(nèi)容記錄在文件中,圖書(shū)館的工作人員和管理員也只是當(dāng)時(shí)對(duì)它比較清楚,時(shí)間一長(zhǎng),如再要進(jìn)行查詢,就得在眾多的資料中翻閱、查找了,造成查詢費(fèi)時(shí)、費(fèi)
16、力。如要對(duì)很長(zhǎng)時(shí)間以前的圖書(shū)進(jìn)行更改就更加困難了。 基于這此問(wèn)題,我認(rèn)為有必要建立一個(gè)圖書(shū)管理系統(tǒng),使圖書(shū)管理工作規(guī)范化,系統(tǒng)化,程序化,避免圖書(shū)管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢和修改圖書(shū)情況。1.3研究現(xiàn)狀進(jìn)入21實(shí)際以來(lái),信息技術(shù)從根本上推動(dòng)了圖書(shū)館的快速發(fā)展,計(jì)算機(jī)和計(jì)算機(jī)管理系統(tǒng)已成為圖書(shū)館進(jìn)行圖書(shū)館管理的主要設(shè)備和系統(tǒng),國(guó)內(nèi)主要圖書(shū)館已經(jīng)呈現(xiàn)出網(wǎng)絡(luò)化、信息化、智能化、和社會(huì)化的特征。信息技術(shù)在改變?nèi)藗兩a(chǎn)、收集、組織、傳遞和使用知識(shí)信息的方式的同時(shí),也使信息服務(wù)的機(jī)制、結(jié)構(gòu)以及服務(wù)手段發(fā)生了巨大的變化。如何將一些先進(jìn)的信息技術(shù)運(yùn)用到圖書(shū)館的管理和服
17、務(wù)中,用這些技術(shù)來(lái)改變圖書(shū)館的傳統(tǒng)管理模式,多方面、多角度的滿足人們獲取知識(shí)是目前圖書(shū)館的工作重點(diǎn)。信息技術(shù)的發(fā)展和應(yīng)用不僅改變了圖書(shū)館的信息資源的結(jié)構(gòu)和獲取信息的方式,同時(shí)也促進(jìn)了圖書(shū)館傳統(tǒng)功能模式向開(kāi)放式、網(wǎng)絡(luò)式的信息服務(wù)模式改變,由單一功能向多功能改變,也改變了其服務(wù)理念。國(guó)內(nèi)大部分圖書(shū)館由于管理人員不多且大多數(shù)都不是圖書(shū)館管理的專業(yè)人員、業(yè)務(wù)分工也不是很明確,復(fù)雜的管理軟件對(duì)于他們來(lái)說(shuō)太龐大、復(fù)雜,所以應(yīng)用效果不是很好。這就需要開(kāi)發(fā)出一套既操作簡(jiǎn)便又功能強(qiáng)大的圖書(shū)館管理軟件來(lái)管理圖書(shū)館的相關(guān)信息。1.4個(gè)性化服務(wù)在網(wǎng)絡(luò)化時(shí)代,人們對(duì)信息的需求具有鮮明的個(gè)性特征,這是由于其知識(shí)背景、職業(yè)
18、背景、環(huán)境背景等等的不同所形成的,人們帶著個(gè)性化的需求利用圖書(shū)館,圖書(shū)館便需要提供個(gè)性化服務(wù)以迎合這種需求。所謂個(gè)性化信息服務(wù),是指能夠滿足用戶的個(gè)人信息需求的一種服務(wù),它根據(jù)用戶的特性提供具有針對(duì)性的信息內(nèi)容或系統(tǒng)功能,在某一特定的網(wǎng)上功能和服務(wù)方式中,設(shè)定網(wǎng)上信息的來(lái)源方式、表現(xiàn)形式、特定網(wǎng)上功能及其他網(wǎng)上服務(wù)方式等,主動(dòng)地向用戶提供其可能需要的信息服務(wù)。從其定義中我們可以看出,圖書(shū)館提供的個(gè)性化信息服務(wù)具有顯性含義:根據(jù)個(gè)性化的用戶提供個(gè)性化的信息,也即服務(wù)的針對(duì)性;同時(shí)它也具有隱性含義:并不停留在用戶所需要的直接信息上,而是同時(shí)提供相關(guān)信息,這些信息是用戶可能需要但其還沒(méi)有意識(shí)到的,可
19、以說(shuō)這是服務(wù)的拓展性。由于網(wǎng)絡(luò)的迅速發(fā)展,它必將成為圖書(shū)館與用戶相互交流的有效渠道,用戶通過(guò)網(wǎng)絡(luò)向圖書(shū)館提交信息需求,圖書(shū)館員作為信息導(dǎo)航員通過(guò)網(wǎng)絡(luò)傳送用戶所需求的信息,在多次的信息交流過(guò)程中實(shí)現(xiàn)信息服務(wù)的個(gè)性化。傳統(tǒng)圖書(shū)館所提出的特色化服務(wù)主要依托于特色化實(shí)體館藏,而在網(wǎng)絡(luò)環(huán)境下,有限的館藏資源和無(wú)限的網(wǎng)絡(luò)資源共同構(gòu)成圖書(shū)館信息服務(wù)的基礎(chǔ),圖書(shū)館應(yīng)該深入加工自己的文獻(xiàn)資源,深入到知識(shí)單元內(nèi)部,借助于網(wǎng)上信息資源,建立自己的特色化數(shù)據(jù)庫(kù)。因而,當(dāng)今環(huán)境下的特色化服務(wù)主要是指特色化數(shù)據(jù)庫(kù)提供的信息服務(wù),特色數(shù)據(jù)庫(kù)由特色內(nèi)容和特色技術(shù)構(gòu)成:特色內(nèi)容是指根據(jù)館藏特點(diǎn),依據(jù)已有的館藏資源,開(kāi)發(fā)出富有特
20、色的內(nèi)容體系,這一內(nèi)容體系應(yīng)為你無(wú)我有,你有我優(yōu);特色技術(shù)是指要有一定的規(guī)模,要有有效的檢索功能,要有多媒體信息,要有互動(dòng)界面,要能提供全文檢索。特色化數(shù)據(jù)庫(kù)是服務(wù)的內(nèi)容,它是吸引用戶最為關(guān)鍵的因素。除此之外,圖書(shū)館還要考慮為用戶提供特色化的服務(wù)形式,如記錄用戶的需求信息,為其提供專業(yè)或相關(guān)專業(yè)信息的主動(dòng)推送服務(wù);建立讀者庫(kù),促進(jìn)讀者之間的溝通,以讀者服務(wù)讀者。圖書(shū)館提供具有時(shí)效性的信息服務(wù)才能避免科研工作的延遲、重復(fù),才能使讀者最大限度地利用所獲取的信息,充分發(fā)揮信息的潛在價(jià)值。第二章 數(shù)據(jù)庫(kù)2.1數(shù)據(jù)庫(kù)階段的特點(diǎn)2.1.1減少數(shù)據(jù)的重復(fù)(redundancy can be reduced)
21、 當(dāng)在一個(gè)非數(shù)據(jù)庫(kù)系統(tǒng)當(dāng)中,每一個(gè)應(yīng)用程序都有屬于他們自己的文件,由于無(wú)法有系統(tǒng)建立的數(shù)據(jù),因此常常會(huì)造成存儲(chǔ)數(shù)據(jù)的重復(fù)與浪費(fèi)。例如:在一家公司當(dāng)中,人事管理程序與工資管理程序或許都會(huì)使用到職員與部門(mén)的信息或文件,而我們可以運(yùn)用數(shù)據(jù)庫(kù)的方法,把這兩個(gè)文件整理起來(lái),以減少多余的數(shù)據(jù),過(guò)度地占用存儲(chǔ)空間。2.1.2避免數(shù)據(jù)的不一致(inconsistency can avoid)本項(xiàng)的特色,可以說(shuō)是延伸前項(xiàng)的一個(gè)特點(diǎn),要說(shuō)明這樣的一個(gè)現(xiàn)象,我們可以從下面這個(gè)實(shí)例來(lái)看:若是在同一家公司當(dāng)中,職員甲在策劃部門(mén)工作,且職員甲的記錄同時(shí)被存放在數(shù)據(jù)庫(kù)的兩個(gè)地方,而數(shù)據(jù)庫(kù)管理系統(tǒng)卻沒(méi)有對(duì)這樣重要的情況加以控
22、制,當(dāng)其中一條數(shù)據(jù)庫(kù)被修改時(shí),便會(huì)造成數(shù)據(jù)的不一致,但是,對(duì)于一個(gè)健全的數(shù)據(jù)庫(kù)管理系統(tǒng)而言,將會(huì)對(duì)這樣的情況加以控制,但有時(shí)并不需要刻意消除這種情形,應(yīng)當(dāng)視該數(shù)據(jù)庫(kù)的需求與效率來(lái)決定。2.1.3數(shù)據(jù)共享(data shared)對(duì)于數(shù)據(jù)共享的意義,并不是只有針對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)的應(yīng)用程序,可以使用數(shù)據(jù)庫(kù)中的數(shù)據(jù),對(duì)于其他撰寫(xiě)好的應(yīng)用程序,同樣可以對(duì)相同數(shù)據(jù)庫(kù)當(dāng)中的數(shù)據(jù)進(jìn)行處理,進(jìn)而達(dá)到數(shù)據(jù)共享的目的。2.1.4強(qiáng)化數(shù)據(jù)的標(biāo)準(zhǔn)化(standard can be enforced)由數(shù)據(jù)庫(kù)管理系統(tǒng),對(duì)數(shù)據(jù)做出統(tǒng)籌性的管理,對(duì)于數(shù)據(jù)的格式與一些存儲(chǔ)上的標(biāo)準(zhǔn)進(jìn)行控制,如此一來(lái),對(duì)于不同的環(huán)境的數(shù)據(jù)交換(da
23、ta interchange)上將有很大的幫助,也能提高數(shù)據(jù)處理的效率。2.1.5實(shí)踐安全性的管理(security restriction can be applied)通過(guò)對(duì)數(shù)據(jù)庫(kù)完整的權(quán)限控制,數(shù)據(jù)庫(kù)管理者可以確認(rèn)所有可供用戶存取數(shù)據(jù)的合法途徑渠道,并且可以事先對(duì)一些較重要或關(guān)鍵性的數(shù)據(jù)進(jìn)行安全檢查,以確保數(shù)據(jù)存取時(shí),能夠?qū)⑷魏尾划?dāng)損毀的情形降至最低。2.1.6完整性的維護(hù)(integrity can be maintained) 所謂完整性的問(wèn)題,就是要確認(rèn)某條數(shù)據(jù)在數(shù)據(jù)庫(kù)當(dāng)中,是正確無(wú)誤的。正如(2)所述,若是無(wú)法控制數(shù)據(jù)的不一致性,便會(huì)產(chǎn)生完整性不足的問(wèn)題,所以,我們會(huì)發(fā)現(xiàn),當(dāng)數(shù)據(jù)
24、重復(fù)性高的時(shí)候,數(shù)據(jù)不完整的情形也會(huì)增加,當(dāng)然,若是數(shù)據(jù)庫(kù)的功能完整,將會(huì)大大地提高數(shù)據(jù)完整性,也會(huì)增加數(shù)據(jù)庫(kù)的維護(hù)能力與維護(hù)簡(jiǎn)便性。2.1.7需求沖突會(huì)獲得平衡(conflicting requirements can be balance) 在一個(gè)較大型的企業(yè)當(dāng)中,用戶不同的需求,往往會(huì)造成系統(tǒng)或數(shù)據(jù)庫(kù)在設(shè)計(jì)上的困擾,但是一個(gè)合適的數(shù)據(jù)庫(kù)系統(tǒng),可以通過(guò)數(shù)據(jù)庫(kù)管理員的管理,將會(huì)有效地整理各方面的信息,對(duì)于一些較重要的應(yīng)用程序,可以適時(shí)地提供較快速的數(shù)據(jù)存取方法與格式,以平衡多個(gè)用戶在需求上的沖突。2.2從文件系統(tǒng)發(fā)展到數(shù)據(jù)庫(kù)系統(tǒng)是信息處理領(lǐng)域的一個(gè)重大變化在文件系統(tǒng)階段,人們關(guān)注的中心問(wèn)題是
25、系統(tǒng)功能的設(shè)計(jì),因而程序設(shè)計(jì)處于主導(dǎo)地位,數(shù)據(jù)只起著服從程序需要的作用。在數(shù)據(jù)庫(kù)方式下,信息處理觀念已為新體系所取代,數(shù)據(jù)占據(jù)了中心位置。數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)成為信息系統(tǒng)首先關(guān)心的問(wèn)題,而利用這些數(shù)據(jù)的應(yīng)用程序設(shè)計(jì)則退居到以既定的數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ)的外圍地位。 目前世界上已有數(shù)百萬(wàn)個(gè)數(shù)據(jù)庫(kù)系統(tǒng)在運(yùn)行,其應(yīng)用已經(jīng)深入到人類社會(huì)生活的各個(gè)領(lǐng)域,從企業(yè)管理、銀行業(yè)務(wù)、資源分配、經(jīng)濟(jì)預(yù)測(cè)一直到信息檢索、檔案管理、普查統(tǒng)計(jì)等。并在通信網(wǎng)絡(luò)基礎(chǔ)上,建立了許多國(guó)際性的聯(lián)機(jī)檢索系統(tǒng)。我國(guó)20世紀(jì)90年代初在全國(guó)范圍內(nèi)裝備了12個(gè)以數(shù)據(jù)庫(kù)技術(shù)為基礎(chǔ)的大型計(jì)算機(jī)系統(tǒng),這些系分布在郵電、計(jì)委、銀行、電力、鐵路、氣象、民航、情
26、報(bào)、公安、軍事、航天和財(cái)稅等行業(yè)。 數(shù)據(jù)庫(kù)技術(shù)還在不斷的發(fā)展,并且不斷地與其它計(jì)算機(jī)技術(shù)相互滲透。數(shù)據(jù)庫(kù)技術(shù)與網(wǎng)絡(luò)通信技術(shù)相結(jié)合,產(chǎn)生了分布式數(shù)據(jù)庫(kù)系統(tǒng)。數(shù)據(jù)庫(kù)技術(shù)與面向?qū)ο蠹夹g(shù)相結(jié)合,產(chǎn)生了面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)。 在數(shù)據(jù)庫(kù)技術(shù)中有四個(gè)名詞,其概念應(yīng)該分清。 (1)數(shù)據(jù)庫(kù)(database,db):db是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合。db能為各種用戶共享,具有最小冗余度,數(shù)據(jù)間聯(lián)系密切,而又有較高的數(shù)據(jù)獨(dú)立性。 (2)數(shù)據(jù)庫(kù)管理系統(tǒng)(database management system dbms):dbms是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用程序提供訪問(wèn)db的方法,包括db的建立
27、、查詢、更新及各種數(shù)據(jù)控制。dbms總是基于某種數(shù)據(jù)模型,可以分為層次型、網(wǎng)狀型、關(guān)系型和面向?qū)ο笮蚫bms。 (3)數(shù)據(jù)庫(kù)系統(tǒng)(database system dbs):dbs是實(shí)現(xiàn)有組織地、動(dòng)態(tài)地存儲(chǔ)大量關(guān)聯(lián)數(shù)據(jù),方便多用戶訪問(wèn)的計(jì)算機(jī)軟件、硬件和數(shù)據(jù)資源組成的系統(tǒng),即采用了數(shù)據(jù)庫(kù)技術(shù)的計(jì)算機(jī)系統(tǒng)。 (4)數(shù)據(jù)庫(kù)技術(shù):這是一門(mén)研究數(shù)據(jù)庫(kù)的結(jié)構(gòu)、存儲(chǔ)、管理和使用的軟件學(xué)科。數(shù)據(jù)庫(kù)技術(shù)是操作系統(tǒng)的文件系統(tǒng)基礎(chǔ)上發(fā)展起來(lái)的。而dbms本身要在操作系統(tǒng)的支持下才能工作。數(shù)據(jù)庫(kù)不僅用到數(shù)據(jù)結(jié)構(gòu)的知識(shí),而且豐富了數(shù)據(jù)結(jié)構(gòu)的內(nèi)容。在關(guān)系數(shù)據(jù)庫(kù)中要用到集合論、數(shù)理邏輯的理論。因此,數(shù)據(jù)庫(kù)技術(shù)是一門(mén)綜合性較
28、強(qiáng)的學(xué)科。2.3 數(shù)據(jù)庫(kù)模型從20世紀(jì)50年代中期開(kāi)始,計(jì)算機(jī)的應(yīng)用由科學(xué)研究部門(mén)逐步擴(kuò)展到企業(yè)、行政部門(mén)。至60年代,數(shù)據(jù)處理成為計(jì)算機(jī)的主要應(yīng)用。數(shù)據(jù)庫(kù)技術(shù)作為數(shù)據(jù)管理技術(shù),是計(jì)算機(jī)軟件領(lǐng)域的一個(gè)重要分支,產(chǎn)生于60年代末?,F(xiàn)已形成相當(dāng)規(guī)模的理論體系和實(shí)用技術(shù)。模型是對(duì)現(xiàn)實(shí)世界的抽象。在數(shù)據(jù)庫(kù)技術(shù)中,我們用模型的概念描述數(shù)據(jù)庫(kù)的結(jié)構(gòu)與語(yǔ)義,對(duì)現(xiàn)實(shí)世界進(jìn)行抽象,表示實(shí)體類型及實(shí)體間聯(lián)系的模型稱為“數(shù)據(jù)模型” 。 目前廣泛作用的數(shù)據(jù)模型可分為兩種類型: 一種是獨(dú)立于計(jì)算機(jī)系統(tǒng)的模型,完全不涉及信息在系統(tǒng)中的表示,只是用來(lái)描述某個(gè)特定組織所關(guān)心的信息結(jié)構(gòu),這類模型稱為“概念數(shù)據(jù)模型” 。要領(lǐng)模型
29、用于建立信息世界的數(shù)據(jù)模型,強(qiáng)調(diào)其語(yǔ)義表達(dá)功能,應(yīng)該概念簡(jiǎn)單、清晰,易于用戶理解,它是現(xiàn)實(shí)世界的第一層抽象,是用戶和數(shù)據(jù)庫(kù)設(shè)計(jì)人員之間進(jìn)行交流的工具。這一其中著名的模型是“實(shí)體聯(lián)系模型” 。 另一種數(shù)據(jù)模型是直接面向數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),它是現(xiàn)實(shí)世界的第二層抽象。 這類模型涉及到計(jì)算機(jī)系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng),又稱為“結(jié)構(gòu)數(shù)據(jù)模型” 。例如,層次、網(wǎng)狀、關(guān)系、面向?qū)ο蟮饶P?。這類模型有嚴(yán)格的形式化定義,以便于在計(jì)算機(jī)系統(tǒng)中實(shí)現(xiàn)。 (1)層次模型。用樹(shù)型結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型。樹(shù)的結(jié)點(diǎn)是記錄類型,每個(gè)非根結(jié)點(diǎn)有且只有一個(gè)父結(jié)點(diǎn)。上一層記錄類型和下一層記錄類型間聯(lián)系是1n聯(lián)系。 層次模型的
30、特點(diǎn)是記錄之間的聯(lián)系通過(guò)指針實(shí)現(xiàn),查詢效率較高。但層次模型有兩個(gè)缺點(diǎn):一是只能表示1n聯(lián)系,雖然有多種輔助手段實(shí)現(xiàn)了mn聯(lián)系,但都較復(fù)雜,用戶不易掌握,二是由于樹(shù)型結(jié)構(gòu)層次順序的嚴(yán)格和復(fù)雜,引起數(shù)據(jù)的查詢和更新操作也很復(fù)雜,因此,編寫(xiě)應(yīng)用程序也很復(fù)雜。 (2)網(wǎng)狀模型。用有向圖結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型。1969年dbtg報(bào)告提出的數(shù)據(jù)模型是網(wǎng)狀模型的主要代表。有向圖中的結(jié)點(diǎn)是記錄類型,有向邊表示從箭尾一端的記錄類型到箭頭一端的記錄類型間聯(lián)系是1n聯(lián)系。 網(wǎng)狀模型的特點(diǎn):記錄之間聯(lián)系通過(guò)指針實(shí)現(xiàn),mn聯(lián)系也容易實(shí)現(xiàn)(每個(gè)mn聯(lián)系可拆成兩個(gè)1n聯(lián)系),查詢效率較高。網(wǎng)狀模型的缺點(diǎn)是編
31、寫(xiě)應(yīng)用程序比較復(fù)雜,程序員必須熟悉數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)。由于層次系統(tǒng)和網(wǎng)狀系統(tǒng)的應(yīng)用程序編制比較復(fù)雜,因此,從20世紀(jì)80年代中期起,其市場(chǎng)已被關(guān)系系統(tǒng)所取代。但是使用這兩種模型建立起的許多數(shù)據(jù)庫(kù)仍然在正常運(yùn)轉(zhuǎn),只是在外層加了個(gè)關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言的接口。網(wǎng)狀模型有許多成功的產(chǎn)品,20世紀(jì)70年代的產(chǎn)品大部分網(wǎng)狀系統(tǒng),例如,honeywell公司的ids/、hp公司的image/3000、burroughs公司的dms、umivac公司的dms1100、cullinet公司的idms、cimcom公司的total等 (3)關(guān)系模型。關(guān)系模型的主要是用二維表格結(jié)構(gòu)表達(dá)實(shí)體集,用外鍵表示實(shí)體間聯(lián)系。關(guān)系模型
32、是由若干個(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),訪問(wèn)技術(shù)等細(xì)節(jié)。關(guān)系模型是數(shù)學(xué)化模型。sql語(yǔ)言是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)化語(yǔ)言,已得到了廣泛的應(yīng)用。20世紀(jì)70年代對(duì)關(guān)系數(shù)據(jù)庫(kù)的研究主要集中在理論和實(shí)驗(yàn)系統(tǒng)的開(kāi)發(fā)方面。80年代初才形成產(chǎn)品,但很快得到廣泛的應(yīng)用和普及,并最終取代了層次、網(wǎng)狀數(shù)據(jù)庫(kù)產(chǎn)品?,F(xiàn)在市場(chǎng)上典型的關(guān)系dbms產(chǎn)品有db2、oracle、sybase、informix和微機(jī)型產(chǎn)品foxpro、access等。
33、關(guān)系模型和網(wǎng)狀、層次模型的最大區(qū)別是:關(guān)系模型用表格數(shù)據(jù)而不是通過(guò)指針鏈來(lái)表示和實(shí)現(xiàn)實(shí)體間聯(lián)系。關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單、易懂。只需用簡(jiǎn)單的查詢語(yǔ)句就可對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。 關(guān)系模型是數(shù)學(xué)化的模型,可把表格看成一個(gè)集合,因此集合論、數(shù)理邏輯等知識(shí)可引入到關(guān)系模型中來(lái)。關(guān)系模型已是一個(gè)成熟的有前途的模型,已得到廣泛應(yīng)用。 (4)面向?qū)ο竽P?。目前,關(guān)系數(shù)據(jù)庫(kù)的使用已相當(dāng)普遍,但是,現(xiàn)實(shí)世界中仍然存在著許多含有復(fù)雜數(shù)據(jù)結(jié)構(gòu)的應(yīng)用領(lǐng)域,例如,cad數(shù)據(jù)、圖形數(shù)據(jù)等,而關(guān)系模型在這方面的處理能力就顯得力不從心。因此,人們需要更高級(jí)的數(shù)據(jù)庫(kù)技術(shù)來(lái)表達(dá)這類信息。面向?qū)ο蟮母拍钭钤绯霈F(xiàn)在程序設(shè)計(jì)語(yǔ)言中,隨后迅速
34、滲透到計(jì)算機(jī)領(lǐng)域的每一個(gè)分支。面向?qū)ο髷?shù)據(jù)庫(kù)是面向?qū)ο蟾拍钆c數(shù)據(jù)庫(kù)技術(shù)相結(jié)合的產(chǎn)物。 面向?qū)ο竽P湍芡暾孛枋霈F(xiàn)實(shí)世界的數(shù)據(jù)結(jié)構(gòu),具有豐富的表達(dá)能力,但模型相對(duì)較復(fù)雜,涉及的知識(shí)面也廣,因此面向?qū)ο髷?shù)據(jù)庫(kù)尚未達(dá)到關(guān)系數(shù)據(jù)庫(kù)那樣的普及程度。2.4 數(shù)據(jù)庫(kù)體系結(jié)構(gòu)數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)分三級(jí):內(nèi)部級(jí)(internal),概念級(jí)(conceptual)和外部級(jí)(external)。這個(gè)三級(jí)結(jié)構(gòu)有時(shí)也稱為“三級(jí)模式結(jié)構(gòu)”,或“數(shù)據(jù)抽象的三個(gè)級(jí)別”,最早是在1971年通過(guò)的dbtg報(bào)告中提出,后來(lái)收入在1975年的美國(guó)ansi/sparc報(bào)告中。雖然現(xiàn)在dbms的產(chǎn)品多種多樣,在不同的操作系統(tǒng)支持下工作,但是
35、大多數(shù)系統(tǒng)在總的體系結(jié)構(gòu)上都具有三級(jí)模式的結(jié)構(gòu)特征。從某個(gè)角度看到的數(shù)據(jù)特性稱為“數(shù)據(jù)視圖”(data view)。 外部級(jí)最接近用戶,是單個(gè)用戶所能看到的數(shù)據(jù)特性。單個(gè)用戶使用的數(shù)據(jù)視圖的描述稱為“外模式”。 概念級(jí)涉及到所有用戶的數(shù)據(jù)定義,是全局的數(shù)據(jù)視圖。全局?jǐn)?shù)據(jù)視圖的描述稱為“概念模式”。 內(nèi)部級(jí)最接近于物理存儲(chǔ)設(shè)備,涉及到實(shí)際數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu)。物理存儲(chǔ)數(shù)據(jù)視圖的描述稱為“內(nèi)模式”。 數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)是數(shù)據(jù)的三個(gè)抽象級(jí)別。它把數(shù)據(jù)的具體組織留給dbms去做,用戶只要抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計(jì)算機(jī)中的表示和存儲(chǔ),這樣就減輕了用戶使用系統(tǒng)的負(fù)擔(dān)。 三級(jí)結(jié)構(gòu)之間往往差別很大,為了實(shí)
36、現(xiàn)這三個(gè)抽象級(jí)別的聯(lián)系和轉(zhuǎn)換,dbms在三級(jí)結(jié)構(gòu)之間提供兩個(gè)層次的映象(mappings):外模式/模式映象,模式/內(nèi)模式映象。此處模式是概念模式的簡(jiǎn)稱。2.5 sql簡(jiǎn)介2.5.1 sql用戶對(duì)數(shù)據(jù)庫(kù)的使用,是通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)提供的語(yǔ)言來(lái)實(shí)現(xiàn)的。不同的數(shù)據(jù)庫(kù)管理系統(tǒng)提供不同的數(shù)據(jù)庫(kù)語(yǔ)言。關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)幾乎都提供關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言sql。 sql 的全稱是structured query language,即結(jié)構(gòu)化查詢語(yǔ)言。sql語(yǔ)句可以從關(guān)系數(shù)據(jù)庫(kù)中獲得數(shù)據(jù),也可以建立數(shù)據(jù)庫(kù)、增加數(shù)據(jù)、修改數(shù)據(jù)。1986年ansi采用sql語(yǔ)言作為關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言,后被國(guó)際化標(biāo)準(zhǔn)組織(iso)
37、采納為國(guó)際標(biāo)準(zhǔn)。sql語(yǔ)言使用方便、功能豐富、簡(jiǎn)潔易學(xué),是操作數(shù)據(jù)庫(kù)的工業(yè)標(biāo)準(zhǔn)語(yǔ)言,得到廣泛地應(yīng)用。例如關(guān)系數(shù)據(jù)庫(kù)產(chǎn)品db2、oracle等都實(shí)現(xiàn)了sql語(yǔ)言。同時(shí),其它數(shù)據(jù)庫(kù)產(chǎn)品廠家也紛紛推出各自的支持sql的軟件或者與sql的接口軟件。這樣sql語(yǔ)言很快被整個(gè)計(jì)算機(jī)界認(rèn)可。 sql語(yǔ)言是一種非過(guò)程化語(yǔ)言,它一次處理一個(gè)記錄集合,對(duì)數(shù)據(jù)提供自動(dòng)導(dǎo)航。sql語(yǔ)言允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對(duì)單個(gè)記錄進(jìn)行操作。sql語(yǔ)言不要求用戶指定數(shù)據(jù)的存取方法,而是使用查詢優(yōu)化器,由系統(tǒng)決定對(duì)指定數(shù)據(jù)存取的最快速手段。當(dāng)設(shè)計(jì)者在關(guān)系表上定義了索引時(shí),系統(tǒng)會(huì)自動(dòng)利用索引進(jìn)行快速檢索,用戶不需知道表上是
38、否有索引或者有什么類型的索引等細(xì)節(jié)。 sql語(yǔ)言可以完成許多功能,例如: 查詢數(shù)據(jù) 在數(shù)據(jù)庫(kù)表格中插入、修改和刪除記錄 建立、修改和刪除數(shù)據(jù)對(duì)象 控制對(duì)數(shù)據(jù)和數(shù)據(jù)對(duì)象的存取 確保數(shù)據(jù)庫(kù)的一致性和完整性等2.5.2sql查詢 數(shù)據(jù)查詢是關(guān)系運(yùn)算理論在sql語(yǔ)言中的主要體現(xiàn),select 語(yǔ)句是sql查詢的基本語(yǔ)句,當(dāng)我們?cè)趯?duì)一個(gè)數(shù)據(jù)庫(kù)進(jìn)各種各樣的操作時(shí),使用的最多的就是數(shù)據(jù)查詢,在以sql為基礎(chǔ)的關(guān)系數(shù)據(jù)庫(kù)中,使用的最多的就是select查詢語(yǔ)句。 select語(yǔ)句的完整句法如下: select 目標(biāo)表的列名或列表達(dá)式序列 from 基本表和(或)視圖序列 where 行條件表達(dá)式 group
39、by 列名序列 having 組條件表達(dá)式 order by列名 ascdeac 我在select語(yǔ)句中還使用了大量的保留字和通配符以進(jìn)行各種各樣的條件查詢。在系統(tǒng)中有大量的查詢按鈕,其使用了大量的查詢語(yǔ)句,而且這些查詢語(yǔ)句大部分使用的是模糊查詢,所以大量的使用了模式匹配符like(判斷值是否與指定的字符通配格式相符)。在包含like的查詢語(yǔ)句中可以使用兩個(gè)通配符:%(百分號(hào)):與零個(gè)或多個(gè)字符組成的字符串匹配;_(下劃線):與單個(gè)字符匹配。系統(tǒng)中的條件判斷往往包含多個(gè)條件,這時(shí)就需要使用邏輯運(yùn)算符not、and、or(用于多條件的邏輯連接),謂詞all以及保留字distinct等等。做為se
40、lect語(yǔ)句還有很多的使用方法,這里就不再敘述。2.5.3 sql數(shù)據(jù)更新 使用數(shù)據(jù)庫(kù)的目的是為了有效地管理數(shù)據(jù),而數(shù)據(jù)的插入、刪除和修改則是必不可少的一個(gè)功能。在本系統(tǒng)中就大量地使用了數(shù)據(jù)插入、刪除和修改這三種操作,現(xiàn)做一個(gè)簡(jiǎn)單地介紹。 數(shù)據(jù)插入 往數(shù)據(jù)庫(kù)的基本表中插入數(shù)據(jù)使用的是insert語(yǔ)句,其方式有兩種:一種是元組值的插入,另一種是查詢結(jié)果的插入。在本系統(tǒng)中使用的是前一種方式,其句法如下:insert into 基本表名(列表名)values(元組值) 數(shù)據(jù)刪除 往數(shù)據(jù)庫(kù)的基本表中刪除數(shù)據(jù)使用的是delete語(yǔ)句,其句法如下: delete from 基本表名 where 條件表達(dá)式
41、 在些作一點(diǎn)說(shuō)明,刪除語(yǔ)句實(shí)際上是“select * from 基本表名 where 條件表達(dá)式”和delete操作的結(jié)合,每找到一個(gè)元組,就把它刪除。此外,delete語(yǔ)句只能從一個(gè)基本表中刪除元組,where子句中條件可以嵌套,也可以是來(lái)自幾個(gè)基本表的復(fù)合條件。 數(shù)據(jù)修改 當(dāng)需要修改基本表中元組的某些列值時(shí),可以用update語(yǔ)句實(shí)現(xiàn),其句法如下: update基本表名 set列名=值表達(dá)式,列名=值表達(dá)式 where條件表達(dá)式 在delphi中使用sql語(yǔ)句是很方便的,一般來(lái)說(shuō),都是通過(guò)tquery組件來(lái)使用sql語(yǔ)言的。有一點(diǎn)要進(jìn)行說(shuō)明,雖然通過(guò)tquery組件來(lái)使用sql語(yǔ)言很方便,
42、但考慮到自己對(duì)不同組件的理解程度、個(gè)人習(xí)慣以及其它各個(gè)方面,在本系統(tǒng)中我采用的是ado組件來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。最簡(jiǎn)單的方法比如在tadoquery組件的sql屬性中就可以鍵入sql語(yǔ)句,至于詳細(xì)的使用方法在后面進(jìn)行介紹。2.6 ado數(shù)據(jù)訪問(wèn)組件ado數(shù)據(jù)對(duì)象(active data objects)實(shí)際是一種提供訪問(wèn)各種數(shù)據(jù)類型的鏈接機(jī)制。ado設(shè)計(jì)為一種極簡(jiǎn)單的格式,通過(guò)odbc的方法同數(shù)據(jù)庫(kù)接口中,可以使用任何一種odbc數(shù)據(jù)源,即不止適合于sql server、oracle、access等數(shù)據(jù)庫(kù)應(yīng)用程序,也適合于excel表格、文本文件、圖形文件和無(wú)格式的數(shù)據(jù)文件。ado是基于ole-
43、db之上的技術(shù),因此ado通過(guò)其內(nèi)部的屬性和方法提供統(tǒng)一的數(shù)據(jù)訪問(wèn)接口方法。ado使您的客戶端應(yīng)用程序能夠通過(guò)ole db提供訪問(wèn)和操作在數(shù)據(jù)庫(kù)服務(wù)器中的數(shù)據(jù)。ado支持用于建立c/s和web的應(yīng)用程序的主要功能。其主要優(yōu)點(diǎn)是易于使用、高速度、低內(nèi)存支出和占用磁盤(pán)空間較少。ado同時(shí)具有遠(yuǎn)程數(shù)據(jù)服務(wù)(rds)功能,通過(guò)rds可以在一次往返過(guò)程中實(shí)現(xiàn)將數(shù)據(jù)從服務(wù)器移動(dòng)到客戶端應(yīng)用程序和web頁(yè)、在客戶端對(duì)數(shù)據(jù)進(jìn)行處然后將更新結(jié)果返回服務(wù)器的操作。 delphi 6.0繼續(xù)對(duì)microsoft的ado訪問(wèn)能力的支持。這種能力是通過(guò)一組新組件實(shí)現(xiàn)的,這些組件是在企業(yè)版的ado組件頁(yè)中,在組件面版的a
44、do頁(yè)上可以找到這些組件。利用在前面章節(jié)提到的tdataset抽象類,ado組件可以不通過(guò)bde而直接實(shí)現(xiàn)ado連接。這意味著只需要很少的代碼就可以實(shí)現(xiàn)該連接并且性能得到提高。 利用ado數(shù)據(jù)訪問(wèn)組件,可以只使用ado結(jié)構(gòu)與數(shù)據(jù)庫(kù)取得聯(lián)系并對(duì)其中的數(shù)據(jù)進(jìn)行操作,而在這些過(guò)程中完全不需要使用bde。大多數(shù)的ado連接和數(shù)據(jù)集組件都是與基于bde的連接和數(shù)據(jù)集組件相類似的。tadoconnection組件與基于bde的應(yīng)用程序中的tdatabase組件類似。tadotable與ttable,tadoquery與tquery,以及tadostoreproc和tstoredproc之間都具有這種類似的
45、對(duì)應(yīng)關(guān)系。使用這些ado組件的方式與我們常使用的數(shù)據(jù)訪問(wèn)組件(基于bde)都有許多相同之處。ttadodataset沒(méi)有直接的bde對(duì)應(yīng)組件,但它提供了許多與ttable和tquery相同的功能。同樣,tadocommand也沒(méi)有相對(duì)應(yīng)的bde組件,它是在delphi/ado環(huán)境中完成特定功能的組件。delphi 6.0通過(guò)ado數(shù)據(jù)集訪問(wèn)組件,可以不借助bde數(shù)據(jù)引擎而是通過(guò)微軟的oledb來(lái)訪問(wèn)更為廣泛的數(shù)據(jù)庫(kù)中的數(shù)據(jù)。ado數(shù)據(jù)集訪問(wèn)組件與常用的數(shù)據(jù)訪問(wèn)組件是并列的關(guān)系。 在系統(tǒng)中我主要使用的是adotablet和adoquery兩個(gè)組件。2.7 數(shù)據(jù)控制類datacontrol數(shù)據(jù)控制
46、類負(fù)責(zé)數(shù)據(jù)庫(kù)數(shù)據(jù)的顯示,并把用戶對(duì)數(shù)據(jù)的修改傳回。這里的絕大多數(shù)組件,如dbtext, dbedit, dbmemo, dbimage, dblistbox, dbcombobox, dbcheckbox, dbradiogroup, dblookuplistbox, dblookupcombox, dbctrgrid的功能和對(duì)應(yīng)的非數(shù)據(jù)感知組件相同,如tedit框,tradiogroups單選按鈕組等,只不過(guò)在顯示數(shù)據(jù)庫(kù)數(shù)據(jù)時(shí)要用而已。在系統(tǒng)中主要使用數(shù)據(jù)網(wǎng)格控件dbgrid和數(shù)據(jù)庫(kù)導(dǎo)航器控件dbnavigator。2.8 數(shù)據(jù)訪問(wèn)類dataaccess數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中數(shù)據(jù)訪問(wèn)是一個(gè)首要問(wèn)題
47、,包括單用戶和 c/s系統(tǒng),都必須聯(lián)系一些數(shù)據(jù)庫(kù)和數(shù)據(jù)表文件。delphi 6 提供了專門(mén)用于數(shù)據(jù)訪問(wèn)的基類控件。主要包括數(shù)據(jù)源控件datasource、客戶數(shù)據(jù)集控件clientdataset、數(shù)據(jù)集提供器控件datasetprovider等等。 tdatabase:當(dāng)一個(gè)基于bde的數(shù)據(jù)庫(kù)應(yīng)用程序需要一個(gè)永久數(shù)據(jù)庫(kù)連接時(shí),需要定制向一個(gè)數(shù)據(jù)庫(kù)服務(wù)器的連接時(shí),需要事務(wù)控制和特殊的數(shù)據(jù)庫(kù)別名時(shí)就得用到tdatabase對(duì)象。特別是當(dāng)連接到一個(gè)遠(yuǎn)程的sql數(shù)據(jù)庫(kù)服務(wù)器時(shí),如果要利用bde進(jìn)行數(shù)據(jù)庫(kù)事務(wù)處理,那么,tdatabase對(duì)象的威力就體現(xiàn)出來(lái)了。在一個(gè)應(yīng)用程序中為每一個(gè)數(shù)據(jù)庫(kù)連接顯示的聲
48、明tdatabase對(duì)象要根據(jù)需要而定,不是必需的。對(duì)一個(gè)數(shù)據(jù)庫(kù)連接,如果沒(méi)有顯示的聲明并實(shí)例化tdatabase對(duì)象,系統(tǒng)就會(huì)產(chǎn)生一個(gè)帶有默認(rèn)屬性的tdatabase對(duì)象。 tdatasource對(duì)象用于在dataset對(duì)象(包括tquery,tstoredproc,ttable等)和數(shù)據(jù)感知組件之間提供一個(gè)連接的紐帶,以便在窗體上顯示數(shù)據(jù)庫(kù)中的數(shù)據(jù),在數(shù)據(jù)庫(kù)中導(dǎo)航定位與編輯數(shù)據(jù)集中的數(shù)據(jù)。如果一個(gè)dataset對(duì)象中的數(shù)據(jù)想在數(shù)據(jù)感知組件中顯示和修改,它就必須和tdatasource對(duì)象相聯(lián)系。同樣,一個(gè)數(shù)據(jù)感知組件如果想和數(shù)據(jù)源相聯(lián)系以便顯示和操縱數(shù)據(jù),就必須以tdatasource對(duì)象
49、為中介。 用delphi6作數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)概括來(lái)說(shuō)如下:先利用數(shù)據(jù)存取組件和實(shí)際的數(shù)據(jù)庫(kù)建立連接,并用tsession對(duì)象和tdatabase對(duì)象管理這些連接。然后以tdatasource對(duì)象為中介,用數(shù)據(jù)感知組件向用戶顯示數(shù)據(jù)庫(kù)的內(nèi)容并接受用戶的查詢和修改等操作。2.9 sql語(yǔ)言在delphi中的應(yīng)用 在delphi中使用sql語(yǔ)言非常方便,一般來(lái)說(shuō),都是通過(guò)tquery組件來(lái)使用sql語(yǔ)言的??梢栽趖query組件的sql屬性中設(shè)置sql語(yǔ)句。設(shè)計(jì)程序時(shí),在該組件的屬性對(duì)話框中選擇sql屬性,單擊帶省略號(hào)的按鈕,就可以打開(kāi)string list editor對(duì)話框,然后我們就可以在對(duì)話框
50、中添加sql語(yǔ)句。還可以使用delphi的sql builder來(lái)自動(dòng)生成sql語(yǔ)句,這樣可以避免手工編寫(xiě)sql而可能造成的語(yǔ)法錯(cuò)誤。 靜態(tài)sql語(yǔ)句在程序設(shè)計(jì)時(shí)便已固定下來(lái),它不包含任何參數(shù)和變量。動(dòng)態(tài)sql語(yǔ)句,也被稱作參數(shù)化的語(yǔ)句,在其中間包含著表示字段名或表名的參數(shù),例如下面的語(yǔ)句是一條動(dòng)態(tài)sql語(yǔ)句: select * from students where studentcode =: studentcode;其中的變量studentcode便是一個(gè)參數(shù)變量,它由一個(gè)冒號(hào)引導(dǎo),在程序運(yùn)行過(guò)程中,必須要為該參數(shù)賦值,該條sql語(yǔ)句才能正確執(zhí)行,每次運(yùn)行應(yīng)用程序時(shí)可以為該參數(shù)變量賦予不
51、同的值。為參數(shù)賦值有三種方法:根據(jù)參數(shù)在sql語(yǔ)句中出現(xiàn)的順序,設(shè)置tquery部件的params屬性值為參數(shù)賦值。直接根據(jù)sql語(yǔ)句中各參數(shù)的名字,調(diào)用parambyname方法來(lái)為各參數(shù)賦值。將tquery部件的datasource屬性設(shè)置為另一個(gè)數(shù)據(jù)源,這樣將另一個(gè)數(shù)據(jù)源中與當(dāng)前tquery部件的sql語(yǔ)句中的參數(shù)名相匹配的字段值賦給其對(duì)應(yīng)的參數(shù)。利用這種方法也能實(shí)現(xiàn)所謂的連接查詢,創(chuàng)建主要明細(xì)型數(shù)據(jù)庫(kù)應(yīng)用。在程序運(yùn)行過(guò)程中,要想設(shè)置tquery部件的sql屬性,必須首先調(diào)用close方法,關(guān)閉tquery部件,然后再調(diào)用clear方法清除sql屬性中現(xiàn)存的sql命令語(yǔ)句, 最后再調(diào)用a
52、dd方法為sql屬性設(shè)置新的sql命令語(yǔ)句。例如:query1.close 關(guān)閉query1)query1.sql.clear 清除sql屬性中的sql命令語(yǔ)句query1.sql.add(select * from students);query1.sql.add( where name =lucy );在為tquery部件設(shè)置sql屬性時(shí)調(diào)用close方法總是很安全的,如果tquery部件已經(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)用ad
53、d方法向sql屬性中設(shè)置sql命令語(yǔ)句,那么新設(shè)置的sql命令語(yǔ)句會(huì)追加在現(xiàn)存sql命令語(yǔ)句后面, 在程序運(yùn)行時(shí)常常會(huì)出現(xiàn)出乎意料的查詢結(jié)果甚至程序無(wú)法運(yùn)行下去。在這里要特別注意的,一般情況下tquery部件的sql屬性只能包含一條完整的sql語(yǔ)句,它不允許被設(shè)置成多條sql語(yǔ)句。當(dāng)然有些數(shù)據(jù)庫(kù)服務(wù)器也支持在tquery部件的sql屬性中設(shè)置多條sql語(yǔ)句,只要數(shù)據(jù)庫(kù)服務(wù)器允許這樣,我們?cè)诰幊虝r(shí)可以為 sql 屬性設(shè)置多條sql語(yǔ)句。在為tquery部件設(shè)置完sql屬性的屬性值之后,也即編寫(xiě)好適當(dāng)?shù)膕ql程序之后,可以有多種方式來(lái)執(zhí)行sql程序。在設(shè)計(jì)過(guò)程中,設(shè)置完tquery部件的sql屬性
54、之后將其active屬性的值置為true, 這樣便可以執(zhí)行sql屬性中的sql程序,如果應(yīng)用中有與tquery部件相連的數(shù)據(jù)瀏覽部件( 如tddgrid tdbedit等)那么在這些數(shù)據(jù)瀏覽部件中會(huì)顯示sql程序的執(zhí)行結(jié)果。在應(yīng)用程序運(yùn)行過(guò)程中,通過(guò)程序調(diào)用tquery部件的open方法或execsql 方法可以執(zhí)行其sql屬性中的sql程序。open方法和execsql方法是不一樣的。open方法只能用來(lái)執(zhí)行sql語(yǔ)言的查詢語(yǔ)句(select命令), 并返回一個(gè)查詢結(jié)果集,而execsql方法還可以用來(lái)執(zhí)行其它常用的sql語(yǔ)句(如insert, update, delete等命令),例如:q
55、uery1.open (這樣會(huì)返回一個(gè)查詢結(jié)果集)如果調(diào)用open方法,而沒(méi)有查詢結(jié)果時(shí),會(huì)出錯(cuò)。此時(shí)應(yīng)該調(diào)用execsql 方法來(lái)代替open方法。如:query1.execsql (沒(méi)有返回結(jié)果)當(dāng)然在設(shè)計(jì)應(yīng)用程序時(shí),程序設(shè)計(jì)人員是無(wú)法確定tquery部件中的sql 語(yǔ)句是否會(huì)返回一個(gè)查詢結(jié)果的。對(duì)于這種情況應(yīng)當(dāng)用tryexcept模塊來(lái)設(shè)計(jì)程序。在 try 部分調(diào)用open方法,而在except部分調(diào)用excesql方法,這樣才能保證程序的正確運(yùn)行。delphi中用adoquery來(lái)使用sql語(yǔ)句同樣十分方便。在adoquery組件中首先通過(guò)connectionstring屬性值來(lái)聯(lián)接數(shù)據(jù)源,然后就通過(guò)雙擊sql屬性值來(lái)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年浙江省建筑安全員考試題庫(kù)及答案
- 外聘的合同范本
- 工業(yè)區(qū)位選擇+第二課時(shí)+工業(yè)集聚及可持續(xù)發(fā)展導(dǎo)學(xué)案 高中地理魯教版(2019)必修二
- 2025年哈爾濱職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)必考題
- 德國(guó)買(mǎi)房合同范本
- 應(yīng)用文寫(xiě)作+關(guān)于“A+Lifes+Work”的記敘文 講義 高三上學(xué)期入學(xué)考試英語(yǔ)試題
- 2025年貴州食品工程職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)審定版
- 合同范本編輯軟件
- 2025-2030年中國(guó)電子化工材料市場(chǎng)運(yùn)行現(xiàn)狀及發(fā)展前景分析報(bào)告
- 2025-2030年中國(guó)生物質(zhì)炭行業(yè)競(jìng)爭(zhēng)格局及發(fā)展規(guī)劃分析報(bào)告
- 2024-2025學(xué)年山東省濰坊市高三上學(xué)期1月期末英語(yǔ)試題
- 2025-2030年中國(guó)青海省旅游行業(yè)市場(chǎng)現(xiàn)狀調(diào)查及發(fā)展趨向研判報(bào)告
- 人力資源部門(mén)2023年度招聘效果分析
- 八年級(jí)數(shù)學(xué)下冊(cè) 第1章 單元綜合測(cè)試卷(北師版 2025年春)
- 舞蹈藝術(shù)賞析課件
- 2025年春新外研版(三起)英語(yǔ)三年級(jí)下冊(cè)課件 Unit1第1課時(shí)Startup
- 2025年安徽碳鑫科技有限公司招聘筆試參考題庫(kù)含答案解析
- 2025廣東珠海高新區(qū)科技產(chǎn)業(yè)局招聘專員1人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 數(shù)學(xué)-福建省泉州市2024-2025學(xué)年高三上學(xué)期質(zhì)量監(jiān)測(cè)(二)試卷和答案(泉州二模)
- 員工行為守則及職業(yè)道德規(guī)范
- 3學(xué)會(huì)反思 第一課時(shí) (說(shuō)課稿) -2023-2024學(xué)年道德與法治六年級(jí)下冊(cè)統(tǒng)編版
評(píng)論
0/150
提交評(píng)論