圖書館管理系統(tǒng)
圖書館管理系統(tǒng)
摘要圖書管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。
因此本人結(jié)合開入式圖書館的要求,對MS SQL Server2000數(shù)據(jù)庫管理系統(tǒng)、SQL語言原理、Delphi應(yīng)用程序設(shè)計(jì),Delphi數(shù)據(jù)庫技術(shù)進(jìn)行了較深入的學(xué)習(xí)和應(yīng)用,主要完成對圖書管理系統(tǒng)的需求分析、功能模塊劃分、數(shù)據(jù)庫模式分析,并由此設(shè)計(jì)了數(shù)據(jù)庫結(jié)構(gòu)和應(yīng)用程序。系統(tǒng)運(yùn)行結(jié)果證明,本文所設(shè)計(jì)的圖書管理系統(tǒng)可以滿足借閱者、圖書館工作人員和高級(jí)管理員三方面的需要。
第一章對數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)和圖書管理系統(tǒng)進(jìn)行了簡明的介紹,并分析了開發(fā)圖書管理系統(tǒng)所應(yīng)進(jìn)行的工作。
第二章對數(shù)據(jù)庫的設(shè)計(jì)和SQL語言的使用進(jìn)行了系統(tǒng)分析,為深入理解數(shù)據(jù)庫應(yīng)用打下了基礎(chǔ)。
第三章學(xué)習(xí)了具體的開發(fā)工具Delphi 6.0,對其數(shù)據(jù)庫組件,SQL語言在Delphi中的應(yīng)用等數(shù)據(jù)庫編程關(guān)鍵技術(shù)進(jìn)行了系統(tǒng)的介紹。
第四章分析了圖書管理信息系統(tǒng)的應(yīng)用需求,按照數(shù)據(jù)庫設(shè)計(jì)理論一步一步地給出了系統(tǒng)需求說明書、局部ER圖、全局ER圖、系統(tǒng)關(guān)系模式,子模式,利用MS SQL Server2000建立了數(shù)據(jù)庫
第五章進(jìn)行了具體的程序設(shè)計(jì),具體劃分了三類用戶的操作權(quán)限,設(shè)計(jì)了了三個(gè)操作界面。實(shí)現(xiàn)了數(shù)據(jù)庫表的瀏覽,記錄的添加、刪除和修改,報(bào)表的生成,實(shí)現(xiàn)了多數(shù)據(jù)庫表的連接操作,實(shí)現(xiàn)了多條件查詢和模糊查詢,并靈活實(shí)現(xiàn)了對不可更新查詢結(jié)果集的更新操作,實(shí)現(xiàn)了主從表操作,實(shí)現(xiàn)了密碼維護(hù)功能,最后,系統(tǒng)還可以導(dǎo)入數(shù)據(jù)庫以對任意同結(jié)構(gòu)的數(shù)據(jù)庫進(jìn)行操作。
設(shè)計(jì)充分利用Delphi 6、MS SQL Server2000數(shù)據(jù)庫技術(shù)的強(qiáng)大力量,提高了編程效率和可靠性。
關(guān)鍵詞:數(shù)據(jù)庫,SQL語言,MS SQL Server,Delphi6,
數(shù)據(jù)庫組件,圖書管理,窗體,listview組件
目錄
摘要 ……………………………………………………………………………… I
第一章緒論 …………………………………………………………………… 1
§1.1 數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)簡介 ……………………………………………… 1
§1.2 圖書管理系統(tǒng) ……………………………………………………… 4
§1.3 本文所做的主要工作 …………………………………………………… 6
第二章數(shù)據(jù)庫理論基礎(chǔ) ………………………………………………………… 7
§2.1 數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)及范式分析 …………………………………………… 7
§2.2 SQL語言介紹………………………………………………………………… 11
2.2.1 SQL基礎(chǔ)………………………………………………………………… 11
2.2.2 SQL語句………………………………………………………………… 12
第三章應(yīng)用系統(tǒng)開發(fā)工具………………………………………………… 16
§3.1 Delphi6.0 VCL組件的體系結(jié)構(gòu)……………………………………… 16
§3.2 數(shù)據(jù)庫組件介紹…………………………………………………………… 17
§3.3 SQL語言在Delphi中的應(yīng)用…………………………………………… 18
§3.4 MS SQL Server簡述……………………………………………………22
第四章圖書管理系統(tǒng)設(shè)計(jì)分析 ………………………………………… 24
§4.1 應(yīng)用需求分析 …………………………………………………………… 24
§4.2 系統(tǒng)功能模塊劃分 ……………………………………………………… 29
§4.3 系統(tǒng)數(shù)據(jù)庫設(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é)束語 ……………………………………………………………… 69
致謝 ………………………………………………………………………………70
參考書目 …………………………………………………………………………… 70
第一章緒論
§1.1數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)簡介
在數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)之前,對開發(fā)數(shù)據(jù)庫的基本概念應(yīng)當(dāng)了解,對數(shù)據(jù)庫的結(jié)構(gòu)、開發(fā)數(shù)據(jù)庫應(yīng)用程序的步驟、開發(fā)體系及方法都應(yīng)當(dāng)有相當(dāng)清晰的了解和認(rèn)識(shí)。
數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)的目標(biāo)是建立一個(gè)滿足用戶長期需求的產(chǎn)品。開發(fā)的主要過程為:理解用戶的需求,然后,把它們轉(zhuǎn)變?yōu)橛行У臄?shù)據(jù)庫設(shè)計(jì)。把設(shè)計(jì)轉(zhuǎn)變?yōu)閷?shí)際的數(shù)據(jù)庫,并且這些數(shù)據(jù)庫帶有功能完備、高效能的應(yīng)用。
數(shù)據(jù)庫技術(shù)在計(jì)算機(jī)軟件鄰域研究中一直是非常重要的主題,產(chǎn)生于60年代,30多年來數(shù)據(jù)庫技術(shù)得到了迅速發(fā)展,并已形成較為完整的理論體系和一大批實(shí)用系統(tǒng)。并且,近年來,隨著World Wide Web(WWW)的猛增及Internet技術(shù)的迅速發(fā)展,使得數(shù)據(jù)庫技術(shù)之時(shí)成為最熱門技術(shù)之一。
1.1.1數(shù)據(jù)庫
如圖1.1顯示了數(shù)據(jù)庫系統(tǒng)的主要組件。數(shù)據(jù)庫由DBMS(數(shù)據(jù)庫管理系統(tǒng))處理,DBMS則由開發(fā)人員和用戶通過應(yīng)用程序直接或間接地使用。它主要包括四個(gè)要素:用戶數(shù)據(jù)、元數(shù)據(jù)、索引和應(yīng)用元數(shù)據(jù)。
1.1.1.1 用戶數(shù)據(jù)
目前,大多數(shù)主流數(shù)據(jù)庫管理系統(tǒng)把用戶數(shù)據(jù)表示為關(guān)系,F(xiàn)在把關(guān)系看作數(shù)據(jù)表。表的列包含域或?qū)傩,表的行包含對?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ī)范化。
為了對比結(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)系表示更好。現(xiàn)在如果某圖書借閱者改變了它的聯(lián)系電話,只有關(guān)系(表)user的對應(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ù)庫是自描述的,這就意味著它自身包含了它的結(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ù)庫中表的情況,指出每一個(gè)表中有多少列,那一列是主關(guān)鍵字,每一列的數(shù)據(jù)類型的描述,它也存儲(chǔ)索引、關(guān)鍵字、規(guī)則和數(shù)據(jù)庫結(jié)構(gòu)的其他部分。
在表中存儲(chǔ)元數(shù)據(jù)不僅對DBMS是有效的,對用戶也是方便的,因?yàn)樗麄兛梢允褂门c查詢用戶數(shù)據(jù)同樣的查詢工具來查詢元數(shù)據(jù)。本文第二章所介紹的SQL語言可以同時(shí)用于元數(shù)據(jù)和用戶數(shù)據(jù)。
1.1.1.3索引
第三種類型的數(shù)據(jù)改進(jìn)了數(shù)據(jù)庫的性能和可訪問性,這種數(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è)源表;但有了索引之后,可以找到索引條目,并使用它來挑選所有合適的行。
索引對排序和查找是有幫助的,但要付出代價(jià)。book表中的行每次改變時(shí),索引也必須改變,這意味著索引并非隨意的,應(yīng)該在真正需要時(shí)保存。
1.1.1.4應(yīng)用元數(shù)據(jù)
存儲(chǔ)在數(shù)據(jù)庫中的第四種數(shù)據(jù)是應(yīng)用元數(shù)據(jù),它用來存儲(chǔ)用戶窗體、報(bào)表、查詢和其他形式的查詢組件。并非所有的DBMS都支持應(yīng)用組件,支持組件的DBMS也不一定把全部組件的結(jié)構(gòu)作為應(yīng)用元數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中。然而,大多數(shù)現(xiàn)代的DBMS產(chǎn)品存儲(chǔ)這種數(shù)據(jù)作為數(shù)據(jù)庫的一部分。一般來說,數(shù)據(jù)庫開發(fā)人員和用戶都不直接訪問應(yīng)用元數(shù)據(jù),想反,他們通過DBMS中的工具來處理這些數(shù)據(jù)。
MS SQL Server2000中就支持窗體、存儲(chǔ)過程等應(yīng)用元數(shù)據(jù)。
1.1.2數(shù)據(jù)庫管理系統(tǒng)
數(shù)據(jù)庫管理系統(tǒng)(DBMS)是指數(shù)據(jù)庫系統(tǒng)中管理數(shù)據(jù)的軟件系統(tǒng)。DBMS是數(shù)據(jù)庫系統(tǒng)的核心組成部分。對數(shù)據(jù)庫的一切操作,包括定義、更新及各種控制,都是通過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ū)ο笮偷取S SQL Server2000就是一種關(guān)系型數(shù)據(jù)庫管理系統(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ù),表格簡單用戶易懂,編程時(shí)并不涉及存儲(chǔ)結(jié)構(gòu),訪問技術(shù)等細(xì)節(jié)。關(guān)系模型是數(shù)學(xué)化模型。SQL語言是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)化語言,已得到了廣泛的應(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ù)庫及其應(yīng)用創(chuàng)建的工具集。它典型地包含產(chǎn)生表、窗體、查詢和報(bào)表的工具。DBMS產(chǎn)品還提供編程語言和對編程語言的接口。
運(yùn)行子系統(tǒng)處理用設(shè)計(jì)子系統(tǒng)開發(fā)的應(yīng)用組件。它所包含的運(yùn)行處理器用來處理窗體和數(shù)據(jù)庫的數(shù)據(jù)交互,以及回答查詢和打印報(bào)表等。
DBMS引擎從其他兩個(gè)組件接受請求,并把它們翻譯成對操作系統(tǒng)的命令,以便讀寫物理介質(zhì)上的數(shù)據(jù)。DBMS引擎還涉及事務(wù)管
理、鎖、備份和恢復(fù)。
1.1.3創(chuàng)建數(shù)據(jù)庫
1.1.3.1數(shù)據(jù)庫模式
數(shù)據(jù)庫模式定義了數(shù)據(jù)庫的結(jié)構(gòu)、表、關(guān)系、域和業(yè)務(wù)規(guī)則。數(shù)據(jù)庫模式是一種設(shè)計(jì),數(shù)據(jù)庫和應(yīng)用正是建立在此基礎(chǔ)上的。
域是一列可能擁有的值的集合。必須為每一個(gè)表的每一列確定域。除了數(shù)據(jù)的物理格式外,還需要確定是否有些域?qū)Ρ韥碚f是唯一的。
數(shù)據(jù)庫模式的最后一個(gè)要素是業(yè)務(wù)規(guī)則,它是對需要反映在數(shù)據(jù)庫和數(shù)據(jù)庫應(yīng)用程序中的業(yè)務(wù)活動(dòng)的約束。業(yè)務(wù)規(guī)則是模式的一個(gè)重要部分,因?yàn)樗麄冎付藷o論什么數(shù)據(jù)變化到達(dá)DBMS引擎,允許的數(shù)據(jù)值必須滿足的約束。不管無效的數(shù)據(jù)變化請求是來自窗體的用戶、查詢/修改請求還是應(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ù)庫應(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)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。
尤其對于復(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)查得知,他們以前對信息管理的主要方式是基于文本、表格等紙介質(zhì)的`手工處理,對于圖書借閱情況(如借書天數(shù)、超過限定借書時(shí)間的天數(shù))的統(tǒng)計(jì)和核實(shí)等往往采用對借書卡的人工檢查進(jìn)行,對借閱者的借閱權(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ò)后不易更改。圖書館采取手工方式對圖書借閱情況進(jìn)行人工管理,由于信息比較多,圖書借閱信息的管理工作混亂而又復(fù)雜;一般借閱情況是記錄在借書證上,圖書的數(shù)目和內(nèi)容記錄在文件中,圖書館的工作人員和管理員也只是當(dāng)時(shí)對它比較清楚,時(shí)間一長,如再要進(jìn)行查詢,就得在眾多的資料中翻閱、查找了,造成查詢費(fèi)時(shí)、費(fèi)力。如要對很長時(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) MS SQL Server基礎(chǔ)
4) 設(shè)計(jì)數(shù)據(jù)庫;設(shè)計(jì)界面
5) 開發(fā)數(shù)據(jù)庫。數(shù)據(jù)庫實(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ù)庫;
l 數(shù)據(jù)庫安全性的設(shè)計(jì);
l 數(shù)據(jù)庫的設(shè)計(jì)、數(shù)據(jù)接口、界面的設(shè)計(jì)。
§1.3本文所作工作
緒論部分對數(shù)據(jù)庫應(yīng)用系統(tǒng)的結(jié)構(gòu)、開發(fā)進(jìn)行了簡要介紹,分析了圖書管理信息系統(tǒng)設(shè)計(jì)的特點(diǎn)和任務(wù)。
第二章介紹了數(shù)據(jù)庫的設(shè)計(jì)和范式分析,并系統(tǒng)介紹了SQL語言,為設(shè)計(jì)和理解應(yīng)用程序做了鋪墊。
第三章對系統(tǒng)介紹了Delphi 6.0的數(shù)據(jù)庫編程技術(shù)、SQL語言在Delphi 6.0中的應(yīng)用、MS SQL Server基礎(chǔ)。
第四章分析了圖書管理系統(tǒng)的應(yīng)用需求,設(shè)計(jì)了系統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu),并根據(jù)需求對系統(tǒng)功能進(jìn)行了劃分和細(xì)化。
第五章根據(jù)第四章的設(shè)計(jì)結(jié)果利用MSSQL Server2000和Delphi 6.0進(jìn)行了具體的應(yīng)用程序設(shè)計(jì)。
總結(jié)部分介紹了設(shè)計(jì)體會(huì)和編程體會(huì),并指出了系統(tǒng)設(shè)計(jì)中的不足和改進(jìn)的方向。
第二章數(shù)據(jù)庫理論基礎(chǔ)
一個(gè)成功的信息管理系統(tǒng),是建立在許多條件之上的,而數(shù)據(jù)庫是其中一個(gè)非常重要的條件和關(guān)鍵技術(shù)。
信息管理系統(tǒng)所涉及的數(shù)據(jù)庫設(shè)計(jì)分五個(gè)步驟:數(shù)據(jù)庫需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)與加載測試。
(1) 數(shù)據(jù)庫需求分析的任務(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圖與對應(yīng)的綱要表出發(fā),確定各個(gè)實(shí)體及關(guān)系的表名屬性。
(4) 物理設(shè)計(jì)的任務(wù)是確定所有屬性的類型、寬度與取值范圍,設(shè)計(jì)出基本表的主鍵,將所有的表名與字段名英文化(現(xiàn)在很多軟件能支持中文字段,如MS SQL Server,我就是用的中文字段名),實(shí)現(xiàn)物理建庫,完成數(shù)據(jù)庫物理設(shè)計(jì)字典。
(5) 加載測試工作貫穿于程序測試工作的全過程,整個(gè)錄入、修改、查詢、處理工作均可視為對數(shù)據(jù)庫的加載測試工作。
要設(shè)計(jì)出一個(gè)好的信息管理系統(tǒng)數(shù)據(jù)庫,除滿足系統(tǒng)所要求的功能外,還必須遵守下列原則:
² 基本表的個(gè)數(shù)越少越好。
² 主鍵的個(gè)數(shù)越少越好。鍵是表間連接的工具,主鍵越少,表間的連接就越簡單。
² 字段的個(gè)數(shù)越少越好。
² 所有基本表的設(shè)計(jì)均應(yīng)盡量符合第三范式。
數(shù)據(jù)庫的設(shè)計(jì)中,如何處理多對多的關(guān)系和如何設(shè)計(jì)主鍵,是兩個(gè)有著較大難度、需要重點(diǎn)考慮的問題。下面我們著重從SQL應(yīng)用、數(shù)據(jù)庫設(shè)計(jì)范式和查詢優(yōu)化等方面來分析本課題的系統(tǒng)關(guān)鍵技術(shù)和實(shí)現(xiàn)難點(diǎn)并加以解決。
§2.1數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)及范式分析
信息系統(tǒng)的主要任務(wù)是通過大量的數(shù)據(jù)獲得管理所需要的信息,這就必須存儲(chǔ)和管理大量的數(shù)據(jù)。因此建立一個(gè)良好的數(shù)據(jù)組織結(jié)構(gòu)和數(shù)據(jù)庫,使整個(gè)系統(tǒng)都可以迅速、方便、準(zhǔn)確地調(diào)用和管理所需的數(shù)據(jù),是衡量信息系統(tǒng)開發(fā)工作好壞的主要指標(biāo)之一。
2.1.1 數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)
數(shù)據(jù)庫設(shè)計(jì)主要是進(jìn)行數(shù)據(jù)庫的邏輯設(shè)計(jì),即將數(shù)據(jù)按一定
的分類、分組系統(tǒng)和邏輯層次組織起來,是面向用戶的。數(shù)據(jù)庫設(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ù)庫設(shè)計(jì)的步驟是:
(1) 數(shù)據(jù)庫結(jié)構(gòu)定義:目前的數(shù)據(jù)庫管理系統(tǒng)(DBMS)有的是支持聯(lián)機(jī)事務(wù)處理CLTP(負(fù)責(zé)對事務(wù)數(shù)據(jù)進(jìn)行采集、處理、存儲(chǔ))的操作型DBMS,有的可支持?jǐn)?shù)據(jù)倉庫、有聯(lián)機(jī)分析處理CLAP(指為支持決策的制定對數(shù)據(jù)的一種加工操作)功能的大型DBMS,有的數(shù)據(jù)庫是關(guān)系型的、有的可支持面向?qū)ο髷?shù)據(jù)庫。針對選擇的DBMS,進(jìn)行數(shù)據(jù)庫結(jié)構(gòu)定義。
(2) 數(shù)據(jù)表定義:數(shù)據(jù)表定義指定義數(shù)據(jù)庫中數(shù)據(jù)表的結(jié)構(gòu),數(shù)據(jù)表的邏輯結(jié)構(gòu)包括:屬性名稱、類型、表示形式、缺省值、校驗(yàn)規(guī)則、是否關(guān)鍵字、可否為空等。關(guān)系型數(shù)據(jù)庫要盡量按關(guān)系規(guī)范化要求進(jìn)行數(shù)據(jù)庫設(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è)備等,備份方案,對多版本如何保證一致性和數(shù)據(jù)的完整性。
(4) 數(shù)據(jù)使用權(quán)限設(shè)置:針對用戶的不同使用要求,確定數(shù)據(jù)的用戶使用權(quán)限,確保數(shù)據(jù)安全。
(5) 數(shù)據(jù)字典設(shè)計(jì):用數(shù)據(jù)字典描述數(shù)據(jù)庫的設(shè)計(jì),便于維護(hù)和修改。
為了更好地組織數(shù)據(jù)和設(shè)計(jì)出實(shí)際應(yīng)用數(shù)據(jù)庫,應(yīng)該注意如下問題:
規(guī)范化地重組數(shù)據(jù)結(jié)構(gòu):對數(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ù)庫和數(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ù)庫系統(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ù)庫的關(guān)系結(jié)構(gòu)。
(1)鏈接關(guān)系的確定
在進(jìn)行了上述數(shù)據(jù)規(guī)范化重組后,已經(jīng)可以確保每一個(gè)基本數(shù)據(jù)表(我們簡稱為表)是規(guī)范的,但是這些單獨(dú)的表并不能完整地反映事物,通常需要通過指標(biāo)體系整體指標(biāo)數(shù)據(jù)才能完整全面地反映問題。也就是說在這些基本表的各宇段中,所存儲(chǔ)的是同一事物不同側(cè)面的屬性。那么計(jì)算機(jī)系統(tǒng)如何能知道哪些表中的哪些記錄應(yīng)與其它表中的哪些記錄相對應(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)就是要在所建立的各種表中消除多對多(以下用M:N來表示)的現(xiàn)象,即設(shè)法使得所有表中記錄之間的關(guān)系呈樹狀結(jié)構(gòu)(只能由一個(gè)主干發(fā)出若干條分支,而不能有若干條主干交錯(cuò)發(fā)出若干條分支狀況)。所謂的“父系”就是指表的上一級(jí)關(guān)系表。消除多對多關(guān)系可以借助于E-R圖的方法來解決,也可以在系統(tǒng)分析時(shí)予以注意,避免這種情況的發(fā)生。
消除這種M: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種方式對每一個(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ù)錄入文件一般只對本工作站定義為只寫方式,對其它工作站則定義為只讀方式。
c.財(cái)務(wù)等保密文件一般只對中工作站(如財(cái)務(wù)科等)定義為可寫、可改、可刪除方式,對其它工作站則定義為只讀方式,而且不是每個(gè)人都能讀,只有級(jí)別相同和高級(jí)別者才能讀。
2.1.2數(shù)據(jù)庫設(shè)計(jì)范式分析
建立起一個(gè)良好的數(shù)據(jù)指標(biāo)體系,是建立數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫的最重要的一環(huán)。一個(gè)良好的數(shù)據(jù)指標(biāo)體系是建立DB的必要條件,但不是充分條件。我們完全可以認(rèn)為所建指標(biāo)體系中的一個(gè)指標(biāo)類就是關(guān)系數(shù)據(jù)庫中的一個(gè)基本表,而這個(gè)指標(biāo)類下面的一個(gè)個(gè)具體指標(biāo)就是這個(gè)基本表中的一個(gè)字段。但如果直接按照這種方式建庫顯然還不能算最佳。對于指標(biāo)體系中數(shù)據(jù)的結(jié)構(gòu)在建庫前還必須進(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ù)元素(data element),這種關(guān)系落實(shí)到具體數(shù)據(jù)庫上就是基本表,而數(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)和合同名誰先誰后都沒關(guān)系,但二者不可重復(fù)或同名)。
在對表的形式進(jìn)行了規(guī)范化定義后,數(shù)據(jù)結(jié)構(gòu)還有五種規(guī)范化定義,定名為規(guī)范化模式,稱為范式。在這五種范式中,一般只用前三種,對于常用系統(tǒng)就足夠了。而且這五種范式是“向上兼容”的,即滿足第五范式的數(shù)據(jù)結(jié)構(gòu)自動(dòng)滿足一、二、三、四范式,滿足第四范式的數(shù)據(jù)結(jié)構(gòu)自動(dòng)滿足第一、二、三范式,……,依此類推。
第一范式(first normal form,簡稱1st NF)就是指在同一表中沒有重復(fù)項(xiàng)出現(xiàn),如果有則應(yīng)將重復(fù)項(xiàng)去掉。這個(gè)去掉重復(fù)項(xiàng)的過程就稱之為規(guī)范化處理。在本文所討論的開發(fā)方法里,1st NF實(shí)際上是沒有什么意義的。因?yàn)槲覀儼匆?guī)范化建立的指標(biāo)體系和表的過程都自動(dòng)保證了所有表都滿足1st NF。
第二范式(second normal form,簡稱 2nd NF)是指每個(gè)表必須有一個(gè)(而且僅一個(gè))數(shù)據(jù)元素為主關(guān)鍵字(primary key),其它數(shù)據(jù)元素與主關(guān)鍵字一一對應(yīng)。例如,在圖l9.7中
如果我們將合同號(hào)定義為主關(guān)鍵字(其它數(shù)據(jù)元素中的記錄數(shù)據(jù)都有可能重名,故不能作為主關(guān)鍵字),故只要知道了一個(gè)合同記錄的合同號(hào),就可以唯一地在同一行中找到該合同的任何一項(xiàng)具體信息。通常我們稱這種關(guān)系為函數(shù)依賴(functional depEndence)關(guān)系。即表中其它數(shù)據(jù)元素都依賴于主關(guān)鍵字,或稱該數(shù)據(jù)元素唯一地被主關(guān)鍵字所標(biāo)識(shí)。
第三范式(third normal form,簡稱 3rd NF)就是指表中的所有數(shù)據(jù)元素不但要能夠唯一地被主關(guān)鍵字所標(biāo)識(shí),而且它們之間還必須相互獨(dú)立,不存在其它的函數(shù)關(guān)系。也就是說對于一個(gè)滿足了 2nd NF的數(shù)據(jù)結(jié)構(gòu)來說,表中有可能存在某些數(shù)據(jù)元素依賴于其它非關(guān)鍵宇數(shù)據(jù)元素的現(xiàn)象,必須加以消除。
為防止數(shù)據(jù)庫出現(xiàn)更新異常、插入異常、刪除異常、數(shù)據(jù)冗余太大等現(xiàn)象,關(guān)系型數(shù)據(jù)庫要盡量按關(guān)系規(guī)范化要求進(jìn)行數(shù)據(jù)庫設(shè)計(jì)。
§2.2SQL語言介紹
2.2.1SQL基礎(chǔ)
SQL(Structured Query Language,結(jié)構(gòu)查詢語言)是一個(gè)功能強(qiáng)大的數(shù)據(jù)庫語言。SQL通常使用于數(shù)據(jù)庫的通訊。ANSI(美國國家標(biāo)準(zhǔn)學(xué)會(huì))聲稱,SQL是關(guān)系數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言。SQL語句通常用于完成一些數(shù)據(jù)庫的操作任務(wù),比如在數(shù)據(jù)庫中更新數(shù)據(jù),或者從數(shù)據(jù)庫中檢索數(shù)據(jù)。使用SQL的常見關(guān)系數(shù)據(jù)庫管理系統(tǒng)有:Oracle、 Sybase、 Microsoft SQL Server、 Access、 Ingres等等。雖然絕大多數(shù)的數(shù)據(jù)庫系統(tǒng)使用SQL,但是它們同樣有它們自立另外的專有擴(kuò)展功能用于它們的系統(tǒng)。但是,標(biāo)準(zhǔn)的SQL命令,比如"Select"、 "Insert"、 "Update"、 "Delete"、 "Create"和 "Drop"常常被用于完成絕大多數(shù)數(shù)據(jù)庫的操作。MS SQL Server 就是用的Transact- SQL。
SQL語言有著非常突出的優(yōu)點(diǎn),主要是:
n 非過程化語言
n 統(tǒng)一的語言
n 是所有關(guān)系數(shù)據(jù)庫的公共語言
非過程化語言:SQL是一個(gè)非過程化的語言,因?yàn)樗淮翁幚硪粋(gè)記錄,對數(shù)據(jù)提供自動(dòng)導(dǎo)航。SQL允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對單個(gè)記錄進(jìn)行操作,可操作記錄集,所有SQL 語句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語句的結(jié)果作為另一條SQL語句的輸入。
SQL不要求用戶指定對數(shù)據(jù)的存放方法, 這種特性使用戶更易集中精力于要得到的結(jié)果;所有SQL語句使用查詢優(yōu)化器,它是RDBMS的一部分,由它決定對指定數(shù)據(jù)存取的最快速度的手段,查詢優(yōu)化器知道存在什么索引,在哪兒使用索引合適,而用戶則從不需要知道表是否有索引、有什么類型的索引。
統(tǒng)一的語言:SQL可用于所有用戶的DB活動(dòng)模型,包括系統(tǒng)管理員、數(shù)據(jù)庫管理員、 應(yīng)用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶。
SQL為許多任務(wù)提供了命令,其中包括:
n 查詢數(shù)據(jù)
n 在表中插入、修改和刪除記錄
n 建立、修改和刪除數(shù)據(jù)對象
n 控制對數(shù)據(jù)和數(shù)據(jù)對象的存取
n 保證數(shù)據(jù)庫一致性和完整性
以前的數(shù)據(jù)庫管理系統(tǒng)為上述各類操作提供單獨(dú)的語言,而SQL 將全部任務(wù)統(tǒng)一在一種語言中。
所有關(guān)系數(shù)據(jù)庫的公共語言:由于所有主要的關(guān)系數(shù)據(jù)庫管理系統(tǒng)都支持SQL語言,用戶可將使用SQL的技能從一個(gè)RDBMS(關(guān)系數(shù)據(jù)庫管理系統(tǒng))轉(zhuǎn)到另一個(gè),所有用SQL編寫的程序都是可以移植的。
2.2.2SQL語句
SQL功能強(qiáng)大,是一種完備的數(shù)據(jù)處理語言,不僅用于數(shù)據(jù)庫查詢,而且用于數(shù)據(jù)庫中的數(shù)據(jù)修改和更新,概括起來,它可以分成以下幾組:
DML(Data Manipulation Language,數(shù)據(jù)操作語言):用于檢索或者修改數(shù)據(jù);
DDL(Data Definition Language,數(shù)據(jù)定義語言): 用于定義數(shù)據(jù)的結(jié)構(gòu),比如 創(chuàng)建、修改或者刪除數(shù)據(jù)庫對象;
DCL(Data Control Language,數(shù)據(jù)控制語言):用于定義數(shù)據(jù)庫用戶的權(quán)限。
DML組可以細(xì)分為以下的幾個(gè)語句:
SELECT:用于檢索數(shù)據(jù);
INSERT:用于增加數(shù)據(jù)到數(shù)據(jù)庫;
UPDATE:用于從數(shù)據(jù)庫中修改現(xiàn)存的數(shù)據(jù);
DELETE:用于從數(shù)據(jù)庫中刪除數(shù)據(jù)。
DDL語句可以用于創(chuàng)建用戶和重建數(shù)據(jù)庫對象。下面是DDL命令:
CREATE TABLE,ALTER TABLE,DROP TABLE,CREATE INDEX,DROP INDEX
下面是一個(gè)簡單SQL語句的例子:
我們使用SQL語句來從Book中檢索‘借書證號(hào)’為‘000001’的借閱者姓名:
SELECT 姓名FROMBookWHERE 借書證號(hào) = ‘000001’
2.2.2.1 DDL與DML
數(shù)據(jù)定義語言DDL:它是用來創(chuàng)建和修改數(shù)據(jù)庫結(jié)構(gòu)的一種語句,包括 Create、Alter和Drop 語句。
數(shù)據(jù)操作語言DML:包括數(shù)據(jù)查詢與數(shù)據(jù)更新。數(shù)據(jù)查詢主要是由Select語句完成,這一點(diǎn)不再贅述。而數(shù)據(jù)更新所造成的風(fēng)險(xiǎn)大大超過數(shù)據(jù)查詢。數(shù)據(jù)庫管理系統(tǒng)必須在更改期內(nèi)保護(hù)所存儲(chǔ)的數(shù)據(jù)的一致性,確保有效的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫,數(shù)據(jù)庫必須保持一致性,DBMS還必須協(xié)調(diào)多用戶的并行更新,以確保用戶和它們的更改不至于影響其它用戶的作業(yè)。
用于修改數(shù)據(jù)庫內(nèi)容的 SQL 語句主要有以下三個(gè):
(1)Insert,向一個(gè)表中加入新的數(shù)據(jù)行
(2)Delete,從一個(gè)表中刪除數(shù)據(jù)行
(3)Update,更改數(shù)據(jù)庫中已經(jīng)存在的數(shù)據(jù)
Insert標(biāo)準(zhǔn)語法:
INSERT INTOtable_name (col1, col2...)VALUES(value1, value2...)
下例要將借書證號(hào)為‘000001’作為一個(gè)新的借書情況加入借書情況表OWNER中
Insert Into
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 yyfangchan@163.com (舉報(bào)時(shí)請帶上具體的網(wǎng)址) 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除