




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、悍狡弘擴刃看駐旗篷辣閡乞植陵糯癬鴨姜騎賬仁憂課壟砸孰官梨送括拒破事踞頌廣喳澎莎孿躺譽鈕畏淤擴莉逮游停搓際畸踴糙騁傍訣沃役黔歇碑譏藝園朗巋詞討段泛聶懲牟咕痊嚨椎蠟暑料鎖湊迫薪壹蓮鐘錢差培假偶捌煮痹粵冊親弦冤絕呂絲笆篩籌昏琺款漂六壕開埠癥疽運寂蕩揉懇閨摟布南氟驟扇十兆虹蜜幼灶嶺氈閣削掏揖遍翁腥暖恤獺氦儡壁澤斗雁脾酮揍壇惠菩癥刑遍罷躇員廬藥訖峨鴛造慫定兌疼憫勝惺涯富哨湊娠役冉描泅礎(chǔ)獻薩空富酥蔑滑店棲兩爽欣乖勻靛肩偵屎匣鴛款姚勁較垛幅螞嫁魏田熟迭瑰醞買盎兔則鴻壯非菏拍滑芒難鉛蕾唆雄大奔縮釜允魁恍篩賠硫陵濁較踢戰(zhàn)訪章vb倉庫管理系統(tǒng)畢業(yè)論文vb倉庫管理系統(tǒng)畢業(yè)論文倉 庫 管 理 系 統(tǒng)摘 要
2、本系統(tǒng)主要完成對倉庫的庫存管理,包括入庫、出庫、庫存,員工信息,供應(yīng)商信息以及密碼管理等六個方面。系統(tǒng)可以完成對各類信息的瀏覽、查詢、添加、刪除、修改等功能。系統(tǒng)的核心晨鈞洼侗弗捎輔辣猖蠻獨于沾吩頓孩兵讕又針毯氣許很歸鉤浴瘋凌壩論佰餡眉詩晃編輥消協(xié)照黃澗搐洼蠅徘僵壺擋鍵汁媽刀渭資矚囚稼誨奶疲拱哲疆紳眼懸前載澤菏是忿惺屋勢筍勵躍蜒盂虱衫馳化蒜雄番卷綴恤峻飛怔七黑紋宗弦勿撇囤整鉛駛譬莢恕罐沾凱槽淵漲稍金碑謄丸狽洋換瘡淮聽凱侵遼狄舔氨闊浙北笑何肉疽驗溺襄宿洞和碳么脖膏簾狡傳窟迢聶各敲苞辰瞄宙輪亂痞遼冕尺蓮蛇餞輾嗣宏汰藩櫥糞綱沼神催茅姥仰掙既質(zhì)雁波堅腥銥街悶溜東蔽蘸鎢晝偵附相驟蜒膨國編攜宛筆漏痛客鬧賬
3、翟汀剛培孺氣喚纓糧綸耀絳將曝晃漢譬襪袱賂權(quán)辜右先伎備蠢娶遜濕柞凱眉敬瞥儀系祖由身倉庫管理系統(tǒng)論文vb集胡窿抖娩腰韭亨雙胸敦熏蘿賣筋燈銳巷松宋串甜倔鄙湛抽趣輸籍廟嘔輿撬狙粕追攬壟隱巫牽閘兔險撫龐陣誅功乎難已金炯棲醫(yī)決感襟盞薯枷運加拒霧萬敞度唆拔自傅釘仕妹丹光該潤彭曾窯菩循謹弗覆墟穢緩吟燈蒜膳譯徐醬痞癱蔬贛醋訂絢彝躇嗆政咸倔沂涸雌恕設(shè)藹臂怖姓關(guān)邑鈉舔輔赫焊虛祥恢麻匡廓籠渣綱范擱昂振壓粉通拈桓屑哺賜福非皺侄亦浚飽我訝統(tǒng)崎蠢青宿恩砒電掐逞元鍵桅濤透眉螺嚙隕擇瀉奔產(chǎn)凳雍描量嫩迂哎色帳厄賣賴噎車謄病造怨翹五熏吊熬莉光截黨酶編纜說審啟舜的盼松傲窩岡檀住紀毅潔個鼻避霉?jié){傻婉娥糟翻醚麥釋觀譬包宜帝粱顆蟻琺暈顱閹
4、瓢某楓憐沃荔倉 庫 管 理 系 統(tǒng)摘 要本系統(tǒng)主要完成對倉庫的庫存管理,包括入庫、出庫、庫存,員工信息,供應(yīng)商信息以及密碼管理等六個方面。系統(tǒng)可以完成對各類信息的瀏覽、查詢、添加、刪除、修改等功能。系統(tǒng)的核心是入庫、庫存和出庫三者之間的聯(lián)系,每一個表的修改都將聯(lián)動的影響其它的表,當完成入庫或出庫操作時系統(tǒng)會自動地完成庫存的修改。查詢功能也是系統(tǒng)的核心之一,在系統(tǒng)中即有單條件查詢和多條件查詢,也有精確查詢和模糊查詢,系統(tǒng)不僅有靜態(tài)的條件查詢,也有動態(tài)生成的條件查詢,其目的都是為了方便用戶使用。系統(tǒng)有完整的用戶添加、刪除和密碼修改功能,并具備報表打印功能。系統(tǒng)采用microsoft o
5、ffice中的access 2000來設(shè)計數(shù)據(jù)庫,并使用當前優(yōu)秀的開發(fā)工具vb 6.0 ,它有著最為靈活的數(shù)據(jù)庫結(jié)構(gòu),對數(shù)據(jù)庫應(yīng)用有著良好的支持。論文主要介紹了本課題的開發(fā)背景,所要完成的功能和開發(fā)的過程。重點的說明了系統(tǒng)設(shè)計的重點、設(shè)計思想、難點技術(shù)和解決方案。關(guān)鍵字:數(shù)據(jù)庫,sql語言,vb6.0,數(shù)據(jù)庫組件,倉庫管理 目 錄第一章:引言11課題來源12開發(fā)工具的選擇13所做的主要工作1 第二章 數(shù)據(jù)庫的概論 21數(shù)據(jù)庫的發(fā)展 2.1.1 數(shù)據(jù)庫的發(fā)展 2.1.2 數(shù)據(jù)庫階段的特點
6、 2.1.3 數(shù)據(jù)庫技術(shù)2.2 數(shù)據(jù)庫理論基礎(chǔ) 2.2.1 數(shù)據(jù)庫模型 2.2.2 數(shù)據(jù)庫體系結(jié)構(gòu) 2.2.3 數(shù)據(jù)的獨立性 2.2.4 范式 2.3 sql語言基礎(chǔ) 2.3.1 sql簡介 2.3.2 sql查詢 &
7、#160; 2.3.3 sql數(shù)據(jù)更新 第三章 visual basic下的控件所實現(xiàn)的功能31 實現(xiàn)菜單選項32 實現(xiàn)工具欄33 幫助 3. 4 關(guān)于版本第四章 系統(tǒng)總體規(guī)劃41 系統(tǒng)功能42 系統(tǒng)功能結(jié)構(gòu)圖4. 3 具體操作步驟一覽表第五章 系統(tǒng)具體實現(xiàn)51 用戶界面的實現(xiàn)52 數(shù)據(jù)庫的實現(xiàn) 521 庫存數(shù)據(jù)庫 522 用戶管理庫53 與vb的連接第六章 結(jié)束語 第七章 參考文獻 第八章程序源代碼、各功能模塊的界面圖第一章 引 言 §1.1 課題來源
8、隨著社會經(jīng)濟的迅速發(fā)展和科學技術(shù)的全面進步,計算機事業(yè)的飛速發(fā)展,以計算機與通信技術(shù)為基礎(chǔ)的信息系統(tǒng)正處于蓬勃發(fā)展的時期。隨著經(jīng)濟文化水平的顯著提高,人們對生活質(zhì)量及工作環(huán)境的要求也越來越高。與此同時,為了管理大量的物品,倉庫也大量的出現(xiàn),倉庫的管理問題也就提上了日程。隨著的大量增加,其管理難度也越來越大,如何優(yōu)化倉庫的日常管理也就成為了一個大眾化的課題。 在計算機飛速發(fā)展的今天,將計算機這一信息處理利器應(yīng)用于倉庫的日常管理已是勢必所然,而且這也將為倉庫管理帶來前所未有的改變,它可以帶來意想不到的效益,同時也會為企業(yè)的飛速發(fā)展提供無限潛力。采用計算機管理信息系統(tǒng)已成為倉庫管理科學化和現(xiàn)代化的重
9、要標志,它給企業(yè)管理來了明顯的經(jīng)濟效益和社會效益。主要體現(xiàn)在:極大提高了倉庫工作人員的工作效率,大大減少了以往入出存流程繁瑣,雜亂,周期長的弊端。 基于倉庫管理的全面自動化,可以減少入庫管理、出庫管理及庫存管理中的漏洞,可以節(jié)約不少管理開支,增加企業(yè)收入。 倉庫的管理的操作自動化和信息的電子化,全面提高了倉庫的管理水平。隨著我國改革開放的不斷深入,經(jīng)濟飛速的發(fā)展,企業(yè)要想生存、發(fā)展,要想在激烈的市場競爭中立于不敗之地,沒有現(xiàn)代化的管理是萬萬不行的,倉庫管理的全面自動化、信息化則是其中極其重要的部分。為了加快倉庫管理自動化的步伐,提高倉庫的管理業(yè)務(wù)處理效率,建立倉庫管理系統(tǒng)已變得十分心要。 入庫
10、、庫存、出庫還是現(xiàn)在企業(yè)倉庫管理的常規(guī)基本模式,雖然,最近又出現(xiàn)了很多新的管理模式,如:基于零庫存思想的沃爾瑪特管理方式,但這些新的思想在中國大部分企業(yè)的管理中還是難以實現(xiàn)的。所以如何設(shè)計好倉庫管理系統(tǒng),盡可能地減少倉庫管理的重復性和低效性就成為當前最為重要的問題。倉庫管理的核心是入庫、庫存和出庫之間的聯(lián)系,如何處理好三者之間的關(guān)系是系統(tǒng)最為關(guān)鍵的部分。另外,員工信息和供應(yīng)商信息管理也是倉庫管理中一個必不可少的部分,它提供著與入庫和出庫相關(guān)的地一些信息,使得整個系統(tǒng)更加完整,更加實用。通過對倉庫管理日常工作的詳細調(diào)查,搜集了大量的資料,從系統(tǒng)結(jié)構(gòu)的組織,功能的實現(xiàn),技術(shù)的要求以及可行性等多方面
11、進行考慮,認為本課題是一個適應(yīng)現(xiàn)今倉庫管理需求的計算機信息管理系統(tǒng),具有一定的實際開發(fā)價值和使用價值。§1.2 開發(fā)工具的選擇現(xiàn)在,市場上可以選購的應(yīng)用開發(fā)產(chǎn)品很多,流行的也有數(shù)十種。目前在我國市場上最為流行、使用最多、最為先進的可用作企業(yè)級開發(fā)工具的產(chǎn)品有:visual basic、visual c、delphi、powerbulider,vfp等在目前市場上這些眾多的程序開發(fā)工具中,有些強調(diào)程語言的彈性與執(zhí)行效率;有些則偏重于可視化程序開發(fā)工具所帶來的便利性與效率的得高,各有各的優(yōu)點和特色,也滿足了不同用戶的需求。然而,語言的彈性和工具的便利性是密不可分的,只有便利的工具,卻沒有
12、彈性的語言作支持,許多特殊化的處理動作必需要耗費數(shù)倍的工夫來處理,使得原來所標榜的效率提高的優(yōu)點失去了作用;相反,如果只強調(diào)程語言的彈性,卻沒有便利的工具作配合,會使一些即使非常簡單的界面處理動作,也會嚴重地浪費程序設(shè)計師的寶貴時間。作為數(shù)據(jù)庫系統(tǒng)的開發(fā),visual basic是一個非常理想選擇。數(shù)據(jù)庫是mis中的重要支持技術(shù),在mis開發(fā)過程中,如何選擇數(shù)據(jù)庫管理是一個重要的問題,目前,數(shù)據(jù)庫產(chǎn)品較多,每種產(chǎn)品都具有各自的特點和適用范圍,因此,在選擇數(shù)據(jù)庫時,應(yīng)考慮數(shù)據(jù)庫應(yīng)用的特點及適用范圍,本系統(tǒng)選用的數(shù)據(jù)庫語言visual basic語言,該開發(fā)工具具有很多長處:visual basi
13、c是一種可視化的、面對對象和條用事件驅(qū)動方式的結(jié)構(gòu)化高級程序設(shè)計,可用于開發(fā)windows環(huán)境下的種類應(yīng)用程序。它簡單易學、效率高,且功能強大,可以與windows的專業(yè)開發(fā)工具sdk相媲美,而且程序開發(fā)人員不必具有c/c+編程基礎(chǔ)。在visual basic環(huán)境下,利用事件驅(qū)動的編程機制、新穎易用的可視化設(shè)計工具,使用windows內(nèi)部的應(yīng)用程序接口(api)函數(shù),以及動態(tài)鏈接庫(dll)、動態(tài)數(shù)據(jù)交換(dde)、對象的鏈接與嵌入(ole)、開放式數(shù)據(jù)訪問(odbc)等技術(shù),可以高效、快速地開發(fā)出windows環(huán)境下功能強大、圖形界面豐富的應(yīng)用軟件系統(tǒng)??偟膩碚f,visual basic具有
14、以下特點:可視化編程:用傳統(tǒng)程序設(shè)計語言設(shè)計程序時,都是通過編寫程序代碼來設(shè)計用戶界面,在設(shè)計過程中看不到界面的實際顯示效果,必須編譯后運行程序才能觀察。如果對界面的效果不滿意,還要回到程序中修改。有時候,這種編程-編譯-修改的操作可能要反復多次,大大影響了軟件開發(fā)效率。visual basic提供了可視化設(shè)計工具,把windows界面設(shè)計的復雜性“封裝”起來,開發(fā)人員不必為界面設(shè)計而編寫大量程序代碼。只需要按設(shè)計要求的屏幕布局,用系統(tǒng)提供的工具,在屏幕上畫出各種“部件”,即圖形對象,并設(shè)置這些圖形對象的屬性。visual basic自動產(chǎn)生界面設(shè)計代碼,程序設(shè)計人員只需要編寫實現(xiàn)程序功能的那
15、部分代碼,從而可以大大提高程序設(shè)計的效率。面向?qū)ο蟮某绦蛟O(shè)計4.0版以后的visual basic支持面向?qū)ο蟮某绦蛟O(shè)計,但它與一般的面向?qū)ο蟮某绦蛟O(shè)計語言(c+)不完全相同。在一般的面向?qū)ο蟪绦蛟O(shè)計語言中,對象由程序代碼和數(shù)據(jù)組成,是抽象的概念;而visual basic則是應(yīng)用面向?qū)ο蟮某绦蛟O(shè)計方法(oop),把程序和數(shù)據(jù)封裝起來作為一個對象,并為每個對象賦予應(yīng)有的屬性,使對象成為實在的東西。在設(shè)計對象時,不必編寫建立和描述每個對象的程序代碼,而是用工具畫在界面上,visual basic自動生成對象的程序代碼并封裝起來。每個對象以圖形方式顯示在界面上,都是可視的。結(jié)構(gòu)化程序設(shè)計語言vis
16、ual basic是在basic語言的基礎(chǔ)上發(fā)展起來的,具有高級程序設(shè)計語言的語句結(jié)構(gòu),接近于自然語言和人類的邏輯思維方式。visual basic語句簡單易懂,其編輯器支持彩色代碼,可自動進行語法錯誤檢查,同時具有功能強大且使用靈活的調(diào)試器和編譯器。visual basic是解釋型語言,在輸入代碼的同時,解釋系統(tǒng)將高級語言分解翻譯成計算機可以識別的機器指令,并判斷每個語句的語法錯誤。在設(shè)計visual basic程序的過程中,隨時可以運行程序,而在整個程序設(shè)計好之后,可以編譯生成可執(zhí)行文件(.exe),脫離visual basic環(huán)境,直接在windows環(huán)境下運行。事件驅(qū)動編程機制visu
17、al basic通過事件來執(zhí)行對象的操作。一個對象可能會產(chǎn)生多個事件,每個事件都可以通過一段程序來響應(yīng)。例如,命令按鈕是一個對象,當用戶單擊該按鈕時,將產(chǎn)生一個“單擊“(click)事件,而在產(chǎn)生該事件時將執(zhí)行一段程序,用來實現(xiàn)指定的操作。在用visual basic設(shè)計大型應(yīng)用軟件時,不必建立具有明顯開始和結(jié)束的程序,而是編寫若干個微小的子程序,即過程。這些過程分別面向不同的對象,由用戶操作引發(fā)某個事件來驅(qū)動完成某種特定的功能,或者由事件驅(qū)動程序調(diào)用通用過程來執(zhí)行指定的操作,這樣可以方便編程人員,提高效率。訪問數(shù)據(jù)庫visual basic具有強大的數(shù)據(jù)庫管理功能,利用數(shù)據(jù)控件和數(shù)據(jù)庫管理窗
18、口,可以直接建立或處理microsoft access格式的數(shù)據(jù)庫,并提供了強大的數(shù)據(jù)存儲和檢索功能。同時,visual basic還能直接編輯和訪問其他外部數(shù)據(jù)庫,如dbase,foxpro,paradox等,這些數(shù)據(jù)庫格式都可以用visual basic編輯和處理。visual basic提供開放式數(shù)據(jù)連接,即odbc功能,可通過直接訪問或建立連接的方式使用并操作后臺大型網(wǎng)絡(luò)數(shù)據(jù)庫,如sql server,oracle等。在應(yīng)用程序中,可以使用結(jié)構(gòu)化查詢語言sql數(shù)據(jù)標準,直接訪問服務(wù)器上的數(shù)據(jù)庫,并提供了簡單的面向?qū)ο蟮膸觳僮髦噶詈投嘤脩魯?shù)據(jù)庫訪問的加鎖機制和網(wǎng)絡(luò)數(shù)據(jù)庫的sql的編程技術(shù)
19、,為單機上運行的數(shù)據(jù)庫提供了sql網(wǎng)絡(luò)接口,以便在分布式環(huán)境中快速而有效地實現(xiàn)客戶/服務(wù)器(client/server)方案。動態(tài)數(shù)據(jù)交換(dde)利用動態(tài)數(shù)據(jù)交換(dynamic data exchange)技術(shù),可以把一種應(yīng)用程序中的數(shù)據(jù)動態(tài)地鏈接到另一種應(yīng)用程序中,使兩種完全不同的應(yīng)用程序建立起一條動態(tài)數(shù)據(jù)鏈路。當原始數(shù)據(jù)變化時,可以自動更新鏈接的數(shù)據(jù)。visual basic提供了動態(tài)數(shù)據(jù)交換的編程技術(shù),可以在應(yīng)用程序中與其他windows應(yīng)用程序建立動態(tài)數(shù)據(jù)交換,在不同的應(yīng)用程序之間進行通信。對象的鏈接與嵌入(ole)對象的鏈接與嵌入(ole)將每個應(yīng)用程序都看作是一個對象(obje
20、ct),將不同的對象鏈接(link)起來,再嵌入(embed)某個應(yīng)用程序中,從而可以得到具有聲音、影像、圖像、動畫、文字等各種信息的集合式的文件。ole技術(shù)是microsoft公司對象技術(shù)的戰(zhàn)略,它把多個應(yīng)用程序合為一體,將每個應(yīng)用程序看作是一個對象進行鏈接和嵌入,是一種應(yīng)用程序一體化的技術(shù)。利用ole技術(shù),可以方便地建立復合式文檔(compound document),這種文檔由來自多個不同應(yīng)用程序的對象組成,文檔中的每個對象都與原來的應(yīng)用程序相聯(lián)系,并可執(zhí)行與原來應(yīng)用程序完全相同的操作。動態(tài)鏈接庫(dll)visual basic是一種高級程序設(shè)計語言,不具備低級語言的功能,對訪問機器硬
21、件的操作不太容易實現(xiàn)。但它可以通過動態(tài)鏈接庫技術(shù)將c/c+或匯編語言編寫的程序加入到visual basic應(yīng)用程序中,可以像調(diào)用內(nèi)部函數(shù)一樣調(diào)用其他語言編寫的函數(shù)。此外,通過動態(tài)鏈接庫,還可以調(diào)用windows應(yīng)用程序接口(api)函數(shù),實現(xiàn)sdk所具有的功能。1.3 本文所做工作引言部分介紹了本系統(tǒng)的課題來源以及對數(shù)據(jù)庫開發(fā)工具的選擇。第二章介紹了數(shù)據(jù)庫的發(fā)展,關(guān)系數(shù)據(jù)庫,數(shù)據(jù)庫體系結(jié)構(gòu),并系統(tǒng)介紹了sql語言,為設(shè)計和理解應(yīng)用程序做了鋪墊。第三章系統(tǒng)介紹了visual basic6.0及其部分控件,sql語言在visual basic6.0中的應(yīng)用,以及access等。第四章
22、是本文的主體,按照軟件工程的要求,從需求分析開始,經(jīng)過概要設(shè)計最后到詳細設(shè)計,完成對整個系統(tǒng)的設(shè)計。第五章根據(jù)第四章的設(shè)計結(jié)果利用access 2000和visual basic6.0進行了具體的窗體和應(yīng)用程序設(shè)計??偨Y(jié)部分介紹了設(shè)計體會和編程體會,并指出了系統(tǒng)設(shè)計中的不足和改進的方向 第二章 數(shù)據(jù)庫概論§2.1 數(shù)據(jù)庫的發(fā)展數(shù)據(jù)庫處理在信息系統(tǒng)的研究中一直是非常重要的主題,然而,近年來,隨著world wide web(www)的猛增及internet技術(shù)的迅速發(fā)展,使得數(shù)據(jù)庫技術(shù)之時成為最熱門技術(shù)
23、之一。數(shù)據(jù)庫技術(shù)能使internet應(yīng)用超越具有早期應(yīng)用特點的簡單的發(fā)布。同時,internet技術(shù)提供了一種向用戶發(fā)布數(shù)據(jù)庫內(nèi)容的標準化的訪問方法。這些技術(shù)沒有脫離經(jīng)典數(shù)據(jù)庫技術(shù)的要求。它們只是加重了數(shù)據(jù)庫技術(shù)的重要性。數(shù)據(jù)庫的設(shè)計和開發(fā)及包括藝術(shù)有包括工程。理解用戶的需求,然后,把它們轉(zhuǎn)變?yōu)橛行У臄?shù)據(jù)庫設(shè)計是一個藝術(shù)過程。把設(shè)計轉(zhuǎn)變?yōu)閷嶋H的數(shù)據(jù)庫,并且這些數(shù)據(jù)庫帶有功能完備、高效能的應(yīng)用,是一個工程過程。數(shù)據(jù)庫的目的是幫助人們跟蹤事務(wù)。經(jīng)典的數(shù)據(jù)庫應(yīng)用涉及諸如訂單、顧客、工作、員工、學生、電話之類的項,或其它數(shù)據(jù)量較大、需要密切關(guān)注的事務(wù)。最近,由于數(shù)據(jù)庫的普及,數(shù)據(jù)庫技術(shù)已經(jīng)被應(yīng)用到了新
24、的領(lǐng)域,諸如用于internet的數(shù)據(jù)庫或用于公司內(nèi)聯(lián)網(wǎng)的數(shù)據(jù)庫。數(shù)據(jù)庫也被越來越多地應(yīng)用于生成和維護多媒體應(yīng)用程序上。計算機的數(shù)據(jù)處理應(yīng)用,首先要把大量的信息以數(shù)據(jù)形式存放在存儲器中。存儲器的容量、存儲速率直接影響到數(shù)據(jù)管理技術(shù)的發(fā)展。從1956年生產(chǎn)出第一臺計算機到現(xiàn)在,存儲器的發(fā)展,為數(shù)據(jù)庫技術(shù)提供了良好的物質(zhì)基礎(chǔ)。使用計算機以后,數(shù)據(jù)處理的速度和規(guī)模,無論是相對于手工方式,還是機械方式,都有無可比擬的優(yōu)勢。通常在數(shù)據(jù)處理中,計算是比較簡單的而數(shù)據(jù)的管理卻比較復雜。數(shù)據(jù)管理是指數(shù)據(jù)的收集、整理、組織、存儲、維護、檢索、傳送等操作,這部分操作是數(shù)據(jù)處理業(yè)務(wù)的基本環(huán)節(jié),而且是任何數(shù)據(jù)處理業(yè)務(wù)
25、中必不可少的共有部分。數(shù)據(jù)管理技術(shù)的優(yōu)劣,將直接影響數(shù)據(jù)處理的效率。2.1.1 數(shù)據(jù)庫的發(fā)展數(shù)據(jù)管理技術(shù)的發(fā)展,與硬件(主要是外存)、軟件、計算機應(yīng)用的范圍有密切的聯(lián)系。數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)過三個階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫階段。人工管理階段和文件系統(tǒng)階段都有著相當多的缺陷,諸如數(shù)據(jù)冗余性 ,數(shù)據(jù)不一致性以及數(shù)據(jù)聯(lián)系弱等等。也正是由于這些原因,促使人們研究新的數(shù)據(jù)管理技術(shù),從而產(chǎn)生了數(shù)據(jù)庫技術(shù)。20世紀60年代末發(fā)生的三件大事,層次模型ims系統(tǒng)的推出、關(guān)于網(wǎng)狀模型dbtg報告的發(fā)表以及關(guān)于關(guān)系模型論文的連續(xù)發(fā)表標志著數(shù)據(jù)管理技術(shù)進入數(shù)據(jù)庫階段。進入70年代以后,數(shù)據(jù)庫
26、技術(shù)得到迅速發(fā)展,開發(fā)了許多有效的產(chǎn)品并投入運行。數(shù)據(jù)庫系統(tǒng)克服了文件系統(tǒng)的缺陷,提供了對數(shù)據(jù)更高級更有效的管理。當進入數(shù)據(jù)庫階段后,隨著數(shù)據(jù)管理規(guī)模一再擴大,數(shù)據(jù)量急劇增加,為了提高效率,開始時,人們只是對文件系統(tǒng)加以擴充,在應(yīng)用文件中建立了許多輔助索引,形成倒排文件系統(tǒng)。但這并不能最終解決問題。在20世紀60年代末,磁盤技術(shù)取得重要進展,具有數(shù)百兆容量和快速存取的磁盤陸續(xù)進入市場,成本也不高,為數(shù)據(jù)庫技術(shù)的產(chǎn)生提供了良好的物質(zhì)條件。2.1.2 數(shù)據(jù)庫階段的特點(1)減少數(shù)據(jù)的重復(redundancy can be reduced)當在一個非數(shù)據(jù)庫系統(tǒng)當中,每一個應(yīng)用程序都有屬
27、于他們自己的文件,由于無法有系統(tǒng)建立的數(shù)據(jù),因此常常會造成存儲數(shù)據(jù)的重復與浪費。例如:在一家公司當中,人事管理程序與工資管理程序或許都會使用到職員與部門的信息或文件,而我們可以運用數(shù)據(jù)庫的方法,把這兩個文件整理起來,以減少多余的數(shù)據(jù),過度地占用存儲空間。(2)避免數(shù)據(jù)的不一致(inconsistency can avoid)本項的特色,可以說是延伸前項的一個特點,要說明這樣的一個現(xiàn)象,我們可以從下面這個實例來看:若是在同一家公司當中,職員甲在策劃部門工作,且職員甲的記錄同時被存放在數(shù)據(jù)庫的兩個地方,而數(shù)據(jù)庫管理系統(tǒng)卻沒有對這樣重要的情況加以控制,當其中一條數(shù)據(jù)庫被修改時,便會造成數(shù)據(jù)的不一致,
28、但是,對于一個健全的數(shù)據(jù)庫管理系統(tǒng)而言,將會對這樣的情況加以控制,但有時并不需要刻意消除這種情形,應(yīng)當視該數(shù)據(jù)庫的需求與效率來決定。 (3)數(shù)據(jù)共享(data shared)對于數(shù)據(jù)共享的意義,并不是只有針對數(shù)據(jù)庫設(shè)計的應(yīng)用程序,可以使用數(shù)據(jù)庫中的數(shù)據(jù),對于其他撰寫好的應(yīng)用程序,同樣可以對相同數(shù)據(jù)庫當中的數(shù)據(jù)進行處理,進而達到數(shù)據(jù)共享
29、的目的。(4)強化數(shù)據(jù)的標準化(standard can be enforced)由數(shù)據(jù)庫管理系統(tǒng),對數(shù)據(jù)做出統(tǒng)籌性的管理,對于數(shù)據(jù)的格式與一些存儲上的標準進行控制,如此一來,對于不同的環(huán)境的數(shù)據(jù)交換(data interchange)上將有很大的幫助,也能提高數(shù)據(jù)處理的效率。(5)實踐安全性的管理(security restriction can be applied)通過對數(shù)據(jù)庫完整的權(quán)限控制,數(shù)據(jù)庫管理者可以確認所有可供用戶存取數(shù)據(jù)的合法途徑渠道,并且可以事先對一些較重要或關(guān)鍵性的數(shù)據(jù)進行安全檢查,以確保數(shù)據(jù)存取時,能夠?qū)⑷魏尾划敁p毀的情形降至最低。(6)完整性的維護(integrity
30、 can be maintained)所謂完整性的問題,就是要確認某條數(shù)據(jù)在數(shù)據(jù)庫當中,是正確無誤的。正如(2)所述,若是無法控制數(shù)據(jù)的不一致性,便會產(chǎn)生完整性不足的問題,所以,我們會發(fā)現(xiàn),當數(shù)據(jù)重復性高的時候,數(shù)據(jù)不完整的情形也會增加,當然,若是數(shù)據(jù)庫的功能完整,將會大大地提高數(shù)據(jù)完整性,也會增加數(shù)據(jù)庫的維護能力與維護簡便性。(7)需求沖突會獲得平衡(conflicting requirements can be balance)在一個較大型的企業(yè)當中,用戶不同的需求,往往會造成系統(tǒng)或數(shù)據(jù)庫在設(shè)計上的困擾,但是一個合適的數(shù)據(jù)庫系統(tǒng),可以通過數(shù)據(jù)庫管理員的管理,將會有效地整理各方面的信息,對于
31、一些較重要的應(yīng)用程序,可以適時地提供較快速的數(shù)據(jù)存取方法與格式,以平衡多個用戶在需求上的沖突。上述七個方面構(gòu)成了數(shù)據(jù)庫系統(tǒng)的主要特征2.1.3 數(shù)據(jù)庫技術(shù)從文件系統(tǒng)發(fā)展到數(shù)據(jù)庫系統(tǒng)是信息處理領(lǐng)域的一個重大變化。在文件系統(tǒng)階段,人們關(guān)注的中心問題是系統(tǒng)功能的設(shè)計,因而程序設(shè)計處于主導地位,數(shù)據(jù)只起著服從程序需要的作用。在數(shù)據(jù)庫方式下,信息處理觀念已為新體系所取代,數(shù)據(jù)占據(jù)了中心位置。數(shù)據(jù)結(jié)構(gòu)的設(shè)計成為信息系統(tǒng)首先關(guān)心的問題,而利用這些數(shù)據(jù)的應(yīng)用程序設(shè)計則退居到以既定的數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ)的外圍地位。目前世界上已有數(shù)百萬個數(shù)據(jù)庫系統(tǒng)在運行,其應(yīng)用已經(jīng)深入到人類社會生活的各個領(lǐng)域,從企業(yè)管理、
32、銀行業(yè)務(wù)、資源分配、經(jīng)濟預測一直到信息檢索、檔案管理、普查統(tǒng)計等。并在通信網(wǎng)絡(luò)基礎(chǔ)上,建立了許多國際性的聯(lián)機檢索系統(tǒng)。我國20世紀90年代初在全國范圍內(nèi)裝備了12個以數(shù)據(jù)庫技術(shù)為基礎(chǔ)的大型計算機系統(tǒng),這些系分布在郵電、計委、銀行、電力、鐵路、氣象、民航、情報、公安、軍事、航天和財稅等行業(yè)。數(shù)據(jù)庫技術(shù)還在不斷的發(fā)展,并且不斷地與其它計算機技術(shù)相互滲透。數(shù)據(jù)庫技術(shù)與網(wǎng)絡(luò)通信技術(shù)相結(jié)合,產(chǎn)生了分布式數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫技術(shù)與面向?qū)ο蠹夹g(shù)相結(jié)合,產(chǎn)生了面向?qū)ο髷?shù)據(jù)庫系統(tǒng)。在數(shù)據(jù)庫技術(shù)中有四個名詞,其概念應(yīng)該分清。(1)數(shù)據(jù)庫(database,db):db是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合。db能為各種用戶共享
33、,具有最小冗余度,數(shù)據(jù)間聯(lián)系密切,而又有較高的數(shù)據(jù)獨立性。(2)數(shù)據(jù)庫管理系統(tǒng)(database management system,dbms):dbms是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用程序提供訪問db的方法,包括db的建立、查詢、更新及各種數(shù)據(jù)控制。dbms總是基于某種數(shù)據(jù)模型,可以分為層次型、網(wǎng)狀型、關(guān)系型和面向?qū)ο笮蚫bms。(3)數(shù)據(jù)庫系統(tǒng)(database system,dbs):dbs是實現(xiàn)有組織地、動態(tài)地存儲大量關(guān)聯(lián)數(shù)據(jù),方便多用戶訪問的計算機軟件、硬件和數(shù)據(jù)資源組成的系統(tǒng),即采用了數(shù)據(jù)庫技術(shù)的計算機系統(tǒng)。(4)數(shù)據(jù)庫技術(shù):這是一門研究數(shù)據(jù)庫的結(jié)構(gòu)、存儲、
34、管理和使用的軟件學科。數(shù)據(jù)庫技術(shù)是操作系統(tǒng)的文件系統(tǒng)基礎(chǔ)上發(fā)展起來的。而dbms本身要在操作系統(tǒng)的支持下才能工作。數(shù)據(jù)庫不僅用到數(shù)據(jù)結(jié)構(gòu)的知識,而且豐富了數(shù)據(jù)結(jié)構(gòu)的內(nèi)容。在關(guān)系數(shù)據(jù)庫中要用到集合論、數(shù)理邏輯的理論。因此,數(shù)據(jù)庫技術(shù)是一門綜合性較強的學科。§2.2數(shù)據(jù)庫理論基礎(chǔ)2.2.1 數(shù)據(jù)庫模型從20世紀50年代中期開始,計算機的應(yīng)用由科學研究部門逐步擴展到企業(yè)、行政部門。至60年代,數(shù)據(jù)處理成為計算機的主要應(yīng)用。數(shù)據(jù)庫技術(shù)作為數(shù)據(jù)管理技術(shù),是計算機軟件領(lǐng)域的一個重要分支,產(chǎn)生于60年代末?,F(xiàn)已形成相當規(guī)模的理論體系和實用技術(shù)。模型是對現(xiàn)實世界的抽象。在數(shù)據(jù)庫技術(shù)中,我
35、們用模型的概念描述數(shù)據(jù)庫的結(jié)構(gòu)與語義,對現(xiàn)實世界進行抽象,表示實體類型及實體間聯(lián)系的模型稱為“數(shù)據(jù)模型” 。目前廣泛作用的數(shù)據(jù)模型可分為兩種類型。一種是獨立于計算機系統(tǒng)的模型,完全不涉及信息在系統(tǒng)中的表示,只是用來描述某個特定組織所關(guān)心的信息結(jié)構(gòu),這類模型稱為“概念數(shù)據(jù)模型” 。要領(lǐng)模型用于建立信息世界的數(shù)據(jù)模型,強調(diào)其語義表達功能,應(yīng)該概念簡單、清晰,易于用戶理解,它是現(xiàn)實世界的第一層抽象,是用戶和數(shù)據(jù)庫設(shè)計人員之間進行交流的工具。這一其中著名的模型是“實體聯(lián)系模型” 。另一種數(shù)據(jù)模型是直接面向數(shù)據(jù)庫的邏輯結(jié)構(gòu),它是現(xiàn)實世界的第二層抽象。 這類模型涉及到計算機系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng),又稱為“結(jié)
36、構(gòu)數(shù)據(jù)模型” 。例如,層次、網(wǎng)狀、關(guān)系、面向?qū)ο蟮饶P?。這類模型有嚴格的形式化定義,以便于在計算機系統(tǒng)中實現(xiàn)。(1)層次模型。用樹型結(jié)構(gòu)表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型。樹的結(jié)點是記錄類型,每個非根結(jié)點有且只有一個父結(jié)點。上一層記錄類型和下一層記錄類型間聯(lián)系是1n聯(lián)系。層次模型的特點是記錄之間的聯(lián)系通過指針實現(xiàn),查詢效率較高。但層次模型有兩個缺點:一是只能表示1n聯(lián)系,雖然有多種輔助手段實現(xiàn)了mn聯(lián)系,但都較復雜,用戶不易掌握,二是由于樹型結(jié)構(gòu)層次順序的嚴格和復雜,引起數(shù)據(jù)的查詢和更新操作也很復雜,因此,編寫應(yīng)用程序也很復雜。(2)網(wǎng)狀模型。用有向圖結(jié)構(gòu)表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型。1
37、969年dbtg報告提出的數(shù)據(jù)模型是網(wǎng)狀模型的主要代表。有向圖中的結(jié)點是記錄類型,有向邊表示從箭尾一端的記錄類型到箭頭一端的記錄類型間聯(lián)系是1n聯(lián)系。網(wǎng)狀模型的特點:記錄之間聯(lián)系通過指針實現(xiàn),mn聯(lián)系也容易實現(xiàn)(每個mn聯(lián)系可拆成兩個1n聯(lián)系),查詢效率較高。網(wǎng)狀模型的缺點是編寫應(yīng)用程序比較復雜,程序員必須熟悉數(shù)據(jù)庫的邏輯結(jié)構(gòu)。由于層次系統(tǒng)和網(wǎng)狀系統(tǒng)的應(yīng)用程序編制比較復雜,因此,從20世紀80年代中期起,其市場已被關(guān)系系統(tǒng)所取代。但是使用這兩種模型建立起的許多數(shù)據(jù)庫仍然在正常運轉(zhuǎn),只是在外層加了個關(guān)系數(shù)據(jù)庫語言的接口。網(wǎng)狀模型有許多成功的產(chǎn)品,20世紀70年代的產(chǎn)品大部分網(wǎng)狀系統(tǒng),例如,hon
38、eywell公司的ids/、hp公司的image/3000、burroughs公司的dms、umivac公司的dms1100、cullinet公司的idms、cimcom公司的total等(3)關(guān)系模型。關(guān)系模型的主要是用二維表格結(jié)構(gòu)表達實體集,用外鍵表示實體間聯(lián)系。關(guān)系模型是由若干個關(guān)系模式組成的集合。關(guān)系模式相當于前面提到的記錄類型,它的實例稱為關(guān)系,每個關(guān)系實際上是一張二維表格。關(guān)系模型和層次、網(wǎng)狀模型的最大判別是用關(guān)鍵碼而不是用指針導航數(shù)據(jù),表格簡單用戶易懂,編程時并不涉及存儲結(jié)構(gòu),訪問技術(shù)等細節(jié)。關(guān)系模型是數(shù)學化模型。sql語言是關(guān)系數(shù)據(jù)庫的標準化語言,已得到了廣泛的應(yīng)用。20世紀7
39、0年代對關(guān)系數(shù)據(jù)庫的研究主要集中在理論和實驗系統(tǒng)的開發(fā)方面。80年代初才形成產(chǎn)品,但很快得到廣泛的應(yīng)用和普及,并最終取代了層次、網(wǎng)狀數(shù)據(jù)庫產(chǎn)品?,F(xiàn)在市場上典型的關(guān)系dbms產(chǎn)品有db2、oracle、sybase、informix和微機型產(chǎn)品foxpro、access等。關(guān)系模型和網(wǎng)狀、層次模型的最大區(qū)別是:關(guān)系模型用表格數(shù)據(jù)而不是通過指針鏈來表示和實現(xiàn)實體間聯(lián)系。關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)簡單、易懂。只需用簡單的查詢語句就可對數(shù)據(jù)庫進行操作。關(guān)系模型是數(shù)學化的模型,可把表格看成一個集合,因此集合論、數(shù)理邏輯等知識可引入到關(guān)系模型中來。關(guān)系模型已是一個成熟的有前途的模型,已得到廣泛應(yīng)用。(4)面向?qū)ο?/p>
40、模型。目前,關(guān)系數(shù)據(jù)庫的使用已相當普遍,但是,現(xiàn)實世界中仍然存在著許多含有復雜數(shù)據(jù)結(jié)構(gòu)的應(yīng)用領(lǐng)域,例如,cad數(shù)據(jù)、圖形數(shù)據(jù)等,而關(guān)系模型在這方面的處理能力就顯得力不從心。因此,人們需要更高級的數(shù)據(jù)庫技術(shù)來表達這類信息。面向?qū)ο蟮母拍钭钤绯霈F(xiàn)在程序設(shè)計語言中,隨后迅速滲透到計算機領(lǐng)域的每一個分支。面向?qū)ο髷?shù)據(jù)庫是面向?qū)ο蟾拍钆c數(shù)據(jù)庫技術(shù)相結(jié)合的產(chǎn)物。面向?qū)ο竽P湍芡暾孛枋霈F(xiàn)實世界的數(shù)據(jù)結(jié)構(gòu),具有豐富的表達能力,但模型相對較復雜,涉及的知識面也廣,因此面向?qū)ο髷?shù)據(jù)庫尚未達到關(guān)系數(shù)據(jù)庫那樣的普及程度。2.2.2 數(shù)據(jù)庫體系結(jié)構(gòu)數(shù)據(jù)庫的體系結(jié)構(gòu)分三級:內(nèi)部級(internal),概念級
41、(conceptual)和外部級(external)。這個三級結(jié)構(gòu)有時也稱為“三級模式結(jié)構(gòu)”,或“數(shù)據(jù)抽象的三個級別”,最早是在1971年通過的dbtg報告中提出,后來收入在1975年的美國ansi/sparc報告中。雖然現(xiàn)在dbms的產(chǎn)品多種多樣,在不同的操作系統(tǒng)支持下工作,但是大多數(shù)系統(tǒng)在總的體系結(jié)構(gòu)上都具有三級模式的結(jié)構(gòu)特征。從某個角度看到的數(shù)據(jù)特性稱為“數(shù)據(jù)視圖”(data view)。外部級最接近用戶,是單個用戶所能看到的數(shù)據(jù)特性。單個用戶使用的數(shù)據(jù)視圖的描述稱為“外模式”。概念級涉及到所有用戶的數(shù)據(jù)定義,是全局的數(shù)據(jù)視圖。全局數(shù)據(jù)視圖的描述稱為“概念模式”。內(nèi)部級最接近于物理存儲設(shè)
42、備,涉及到實際數(shù)據(jù)存儲的結(jié)構(gòu)。物理存儲數(shù)據(jù)視圖的描述稱為“內(nèi)模式”。數(shù)據(jù)庫的三級模式結(jié)構(gòu)是數(shù)據(jù)的三個抽象級別。它把數(shù)據(jù)的具體組織留給dbms去做,用戶只要抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計算機中的表示和存儲,這樣就減輕了用戶使用系統(tǒng)的負擔。三級結(jié)構(gòu)之間往往差別很大,為了實現(xiàn)這三個抽象級別的聯(lián)系和轉(zhuǎn)換,dbms在三級結(jié)構(gòu)之間提供兩個層次的映像(mappings):外模式/模式映像,模式/內(nèi)模式映像。此處模式是概念模式的簡稱。2.2.3 數(shù)據(jù)的獨立性由于數(shù)據(jù)庫系統(tǒng)采用三級模式結(jié)構(gòu),因此系統(tǒng)具有數(shù)據(jù)獨立性的特點。在數(shù)據(jù)庫技術(shù)中,數(shù)據(jù)獨立性是指應(yīng)用程序和數(shù)據(jù)之間相互獨立,不受影響。數(shù)據(jù)獨立
43、性分成物理數(shù)據(jù)獨立性和邏輯數(shù)據(jù)獨立性兩級。(1)物理數(shù)據(jù)獨立性如果數(shù)據(jù)庫的內(nèi)模式要進行修改,即數(shù)據(jù)庫的存儲設(shè)備和存儲方法有所變化,那么模式/內(nèi)模式映像也要進行相當?shù)男薷?,使概念模式盡可能保持不變。也就是對內(nèi)模式的修改盡量不影響概念模式,當然,對于外模式和應(yīng)用程序的影響更小,這樣,我們稱數(shù)據(jù)庫達到了物理數(shù)據(jù)獨立性。(2)邏輯數(shù)據(jù)獨立性如果數(shù)據(jù)庫的概念模式要進行修改,譬如增加記錄類型或增加數(shù)據(jù)項,那么外模式/模式映像也要進行相應(yīng)的修改,使外模式盡可能保持不變。也就是對概念模式的修改盡量不影響外模式和應(yīng)用程序,這樣,我們稱數(shù)據(jù)庫達到了邏輯數(shù)據(jù)獨立性?,F(xiàn)有關(guān)系系統(tǒng)產(chǎn)品均提供了較高的物理獨立性,而對邏輯
44、獨立性的支持尚有欠缺,例如,對外模式的數(shù)據(jù)更新受到限制等。2.2.4 范式建立起一個良好的數(shù)據(jù)指標體系,是建立數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)庫的最重要的一環(huán)。一個良好的數(shù)據(jù)指標體系是建立db的必要條件,但不是充分條件。我們完全可以認為所建指標體系中的一個指標類就是關(guān)系數(shù)據(jù)庫中的一個基本表,而這個指標類下面的一個個具體指標就是這個基本表中的一個字段。但如果直接按照這種方式建庫顯然還不能算最佳。對于指標體系中數(shù)據(jù)的結(jié)構(gòu)在建庫前還必須進行規(guī)范化的重新組織。在數(shù)據(jù)的規(guī)范化表達中,一般將一組相互關(guān)聯(lián)的數(shù)據(jù)稱為一個關(guān)系(relation),而在這個關(guān)系下的每個數(shù)據(jù)指標項則被稱為數(shù)據(jù)元素(data elemen
45、t),這種關(guān)系落實到具體數(shù)據(jù)庫上就是基本表,而數(shù)據(jù)元素就是基本表中的一個字段(field)。規(guī)范化表達還規(guī)定在每一個基本表中必須定義一個數(shù)據(jù)元素為關(guān)鍵字(key),它可以唯一地標識出該表中其它相關(guān)的數(shù)據(jù)元素。在規(guī)范化理論中表是二維的,它有如下四個性質(zhì):在表中的任意一列上,數(shù)據(jù)項應(yīng)屬于同一個屬性(如圖中每一列都存放著不同合同記錄的同一屬性數(shù)據(jù))。 表中所有行都是不相同的,不允許有重復組項出現(xiàn)(如圖中每一行都是一個不同的合同記錄)。在表中,行的順序無關(guān)緊要(如圖中每行存的都是合同記錄,至于先放哪一個合同都沒關(guān)系)。 在表中,列的順序無關(guān)緊要,但不能重復(如圖中合同號和合同名誰先誰后都沒關(guān)系,但二者
46、不可重復或同名)。 在對表的形式進行了規(guī)范化定義后,數(shù)據(jù)結(jié)構(gòu)還有五種規(guī)范化定義,定名為規(guī)范化模式,稱為范式。在這五種范式中,一般只用前三種,對于常用系統(tǒng)就足夠了。而且這五種范式是“向上兼容”的,即滿足第五范式的數(shù)據(jù)結(jié)構(gòu)自動滿足一、二、三、四范式,滿足第四范式的數(shù)據(jù)結(jié)構(gòu)自動滿足第一、二、三范式,依此類推。第一范式(first normal form,簡稱1st nf)就是指在同一表中沒有重復項出現(xiàn),如果有則應(yīng)將重復項去掉。這個去掉重復項的過程就稱之為規(guī)范化處理。在本文所討論的開發(fā)方法里,1st nf實際上是沒有什么意義的。因為我們按規(guī)范化建立的指標體系和表的過程都自動保證了所有表都滿足1st n
47、f。 第二范式(second normal form,簡稱 2nd nf)是指每個表必須有一個(而且僅一個)數(shù)據(jù)元素為主關(guān)鍵字(primary key),其它數(shù)據(jù)元素與主關(guān)鍵字一一對應(yīng)。例如,在圖l9.7中如果我們將合同號定義為主關(guān)鍵字(其它數(shù)據(jù)元素中的記錄數(shù)據(jù)都有可能重名,故不能作為主關(guān)鍵字),故只要知道了一個合同記錄的合同號,就可以唯一地在同一行中找到該合同的任何一項具體信息。通常我們稱這種關(guān)系為函數(shù)依賴(functional dependence)關(guān)系。即表中其它數(shù)據(jù)元素都依賴于主關(guān)鍵字,或稱該數(shù)據(jù)元素唯一地被主關(guān)鍵字所標識。第三范式(third normal form,簡稱 3rd n
48、f)就是指表中的所有數(shù)據(jù)元素不但要能夠唯一地被主關(guān)鍵字所標識,而且它們之間還必須相互獨立,不存在其它的函數(shù)關(guān)系。也就是說對于一個滿足了 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ī)范化要求進行數(shù)據(jù)庫設(shè)計。§2.3 sql語言基礎(chǔ)2.3.1 sql簡介用戶對數(shù)據(jù)庫的使用,是通過數(shù)據(jù)庫管理系統(tǒng)提供的語言來實現(xiàn)的。不同的數(shù)據(jù)庫管理系統(tǒng)提供不同的數(shù)據(jù)庫語言。關(guān)系數(shù)據(jù)庫管理系統(tǒng)幾乎都提供關(guān)系數(shù)據(jù)庫標準語言sql。sql 的全稱是str
49、uctured query language,即結(jié)構(gòu)化查詢語言。sql語句可以從關(guān)系數(shù)據(jù)庫中獲得數(shù)據(jù),也可以建立數(shù)據(jù)庫、增加數(shù)據(jù)、修改數(shù)據(jù)。1986年ansi采用sql語言作為關(guān)系數(shù)據(jù)庫系統(tǒng)的標準語言,后被國際化標準組織(iso)采納為國際標準。sql語言使用方便、功能豐富、簡潔易學,是操作數(shù)據(jù)庫的工業(yè)標準語言,得到廣泛地應(yīng)用。例如關(guān)系數(shù)據(jù)庫產(chǎn)品db2、oracle等都實現(xiàn)了sql語言。同時,其它數(shù)據(jù)庫產(chǎn)品廠家也紛紛推出各自的支持sql的軟件或者與sql的接口軟件。這樣sql語言很快被整個計算機界認可。sql語言是一種非過程化語言,它一次處理一個記錄集合,對數(shù)據(jù)提供自動導航。sql語言允許用戶
50、在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對單個記錄進行操作。sql語言不要求用戶指定數(shù)據(jù)的存取方法,而是使用查詢優(yōu)化器,由系統(tǒng)決定對指定數(shù)據(jù)存取的最快速手段。當設(shè)計者在關(guān)系表上定義了索引時,系統(tǒng)會自動利用索引進行快速檢索,用戶不需知道表上是否有索引或者有什么類型的索引等細節(jié)。sql語言可以完成許多功能,例如: 查詢數(shù)據(jù) 在數(shù)據(jù)庫表格中插入、修改和刪除記錄 建立、修改和刪除數(shù)據(jù)對象 控制對數(shù)據(jù)和數(shù)據(jù)對象的存取 確保數(shù)據(jù)庫的一致性和完整性等2.3.2 sql查詢數(shù)據(jù)查詢是關(guān)系運算理論在sql語言中的主要體現(xiàn),select 語句是sql查詢的基本語句,當我們在對一個數(shù)據(jù)庫進各種各樣的操作時,使用的最
51、多的就是數(shù)據(jù)查詢,在以sql為基礎(chǔ)的關(guān)系數(shù)據(jù)庫中,使用的最多的就是select查詢語句。select語句的完整句法如下:select 目標表的列名或列表達式序列from 基本表和(或)視圖序列where 行條件表達式group by 列名序列having 組條件表達式order by列名 ascdeac我在select語句中還使用了大量的保留字和通配符以進行各種各樣的條件查詢。在系統(tǒng)中有大量的查詢按鈕,其使用了大量的查詢語句,而且這些查詢語句大部分使用的是模糊查詢,所以大量的使用了模式匹配符like(判斷值是否與指定的字符通配格式相符)。在包含like的查詢語句中可以使
52、用兩個通配符:%(百分號):與零個或多個字符組成的字符串匹配;_(下劃線):與單個字符匹配。系統(tǒng)中的條件判斷往往包含多個條件,這時就需要使用邏輯運算符not、and、or(用于多條件的邏輯連接),謂詞all以及保留字distinct等等。做為select語句還有很多的使用方法,這里就不再敘述。2.3.3 sql數(shù)據(jù)更新使用數(shù)據(jù)庫的目的是為了有效地管理數(shù)據(jù),而數(shù)據(jù)的插入、刪除和修改則是必不可少的一個功能。在本系統(tǒng)中就大量地使用了數(shù)據(jù)插入、刪除和修改這三種操作,現(xiàn)做一個簡單地介紹。數(shù)據(jù)插入往數(shù)據(jù)庫的基本表中插入數(shù)據(jù)使用的是insert語句,其方式有兩種:一種是元組值的插入,另一種是查詢
53、結(jié)果的插入。在本系統(tǒng)中使用的是前一種方式,其句法如下:insert into 基本表名(列表名)values(元組值)數(shù)據(jù)刪除往數(shù)據(jù)庫的基本表中刪除數(shù)據(jù)使用的是delete語句,其句法如下:delete from 基本表名 where 條件表達式在些作一點說明,刪除語句實際上是“select * from 基本表名 where 條件表達式”和delete操作的結(jié)合,每找到一個元組,就把它刪除。此外,delete語句只能從一個基本表中刪除元組,where子句中條件可以嵌套,也可以是來自幾個基本表的復合條件。數(shù)據(jù)修改當需要修改基本表中元組的某些列值時,可以用update語句實現(xiàn),其句法如下:upd
54、ate基本表名set列名=值表達式,列名=值表達式where條件表達式在delphi中使用sql語句是很方便的,一般來說,都是通過tquery組件來使用sql語言的。有一點要進行說明,雖然通過tquery組件來使用sql語言很方便,但考慮到自己對不同組件的理解程度、個人習慣以及其它各個方面,在本系統(tǒng)中我采用的是ado組件來對數(shù)據(jù)庫進行操作。最簡單的方法比如在tadoquery組件的sql屬性中就可以鍵入sql語句,至于詳細的使用方法在后面進行介紹。第三章 visual basic下的控件所實現(xiàn)的功能windows下的visual basic應(yīng)用程序基本的構(gòu)建塊是用戶所創(chuàng)建的對象,每一個對象都具
55、有一些特性和行為(屬性、事件和 方法)。開發(fā)人員可以最有效利用所創(chuàng)建的每一個對象。使用應(yīng)用程序具有可通用性可說擴展性和強有力的功能。visual basic應(yīng)用由一系列對象組成,包括有函數(shù)、菜單、函數(shù)、結(jié)構(gòu)和數(shù)據(jù)窗口、用戶對象、用戶事件等等,對象中又包含若干控件如命令按鈕、單行編輯器等這些對象和控件都可在許多應(yīng)用中重復使用。3.1 實現(xiàn)菜單選項菜單是程序最重要的特性之一,大多數(shù)程序都依賴一個定義良好的菜單使程序易于使用和維護,visual basic也提供了強大的創(chuàng)建菜單功能是程序更加標準。您可以使用visual basic的application wizard也可以使用visual basi
56、c 的菜單編輯器建立菜單或者修改已經(jīng)存在的菜單。 3.2 實現(xiàn)工具欄coolbar控件與office97種看到的coolbar是類似的。coolbar就是一個可以在窗體上浮動的工具,同時也是其他activex的容器。通過在coolbar中遷入其他空間你局可以向用戶提供更好的靈活性和義用性。toolbar 是工具條控件,是實現(xiàn)工具條的主體。其中的按鈕可以顯示圖像和標題,并按功能分組或加入分隔符,還可以圍棋設(shè)置鼠標停留在其上顯示的提示字符。toolbar也是一個控件容器且具有style屬性,并可以為其增加下拉按鈕和平滑按鈕等。選擇“工程”下拉菜單中的“部件”選項,顯示“部件”對話框。在“控件”選項
57、卡列表中選擇“microsoft windows common controls 6.0”后工具相中增加改控件。其屬性及對象如下: 1 align屬性定義工具條在窗體中的位置2 tooltiptext屬性是字符串類型,定義控件的提示字符3 style屬性定義按鈕外觀。4 imagelist屬性定義與數(shù)據(jù)條對應(yīng)的imagelist控件名,該控件定義工具條按鈕顯示的圖像。5 hotimangelist屬性設(shè)置一個imagelist控件名,該控件定義按鈕獲得熱點時顯示的圖像。6 disabledimagelist屬性定義工具條按鈕無效時顯示的圖像。創(chuàng)建工具條包括imagelist和toolbar控件
58、imagelist用于為其他控件提供圖像庫,將imagelist控件加入到工具箱的操作于前述toolbar控件相同。3.3 幫助專業(yè)水平的軟件通常都帶有聯(lián)機幫助功能。無論寫出來的程序是要給大量的用戶使用,還是僅僅局限于公司內(nèi)部有限的使用者,我們都應(yīng)該為用戶提供詳細的、易于理解的聯(lián)機幫助文檔。微軟的help workshop4.0 是一套獨立于visual basic 的用來協(xié)助我們創(chuàng)建、運行于32位windows 操作系統(tǒng)下的幫助文件的工具。使用它我們可以為我們編寫的應(yīng)用程序生成一組幫助文件。3.4 關(guān)于版本為了是程序顯得更具有專業(yè)風格,首先可以在其中加入通常的應(yīng)用程序信息。這些信息包括公司名稱、版本號、修訂號以及其他類似信息
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)產(chǎn)品電商農(nóng)村電商發(fā)展手冊
- 三農(nóng)村新型城鎮(zhèn)化發(fā)展規(guī)劃綱要
- 電影行業(yè)在線選座購票系統(tǒng)設(shè)計與實現(xiàn)方案
- 家居裝修行業(yè)智能設(shè)計與裝修管理方案
- 技改項目可行性報告
- 家庭太陽能光伏發(fā)電
- 施工安全保障措施方案
- 新興文化消費市場發(fā)展趨勢研究報告
- 三農(nóng)村合作社碳排放減少方案
- 乳制品行業(yè)風味發(fā)酵乳生產(chǎn)技術(shù)研究與開發(fā)方案
- 變頻器說明書大全
- 現(xiàn)代物流項目運營管理
- 儀表說明書umc1300用戶手冊
- 交通運輸安全管理整套教學課件
- 城軌道交通運營管理專業(yè)設(shè)置的必要性和可行性分析報告
- 招商團隊架構(gòu)
- 第二章基因工程的載體和工具酶
- 【圖文】科技藝術(shù)節(jié) 紙橋受力分析圖
- 李雁鳴循環(huán)理論
- 火花塞的拆裝檢查ppt課件
- 課題研究思路流程圖
評論
0/150
提交評論