freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

圖書(shū)倉(cāng)庫(kù)管理系統(tǒng)介紹(編輯修改稿)

2025-05-04 23:05 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 屬性數(shù)據(jù))。 表中所有行都是不相同的,不允許有重復(fù)組項(xiàng)出現(xiàn)(如圖中每一行都是一個(gè)不同的合同記錄)。在表中,行的順序無(wú)關(guān)緊要(如圖中每行存的都是合同記錄,至于先放哪一個(gè)合同都沒(méi)關(guān)系)。 在表中,列的順序無(wú)關(guān)緊要,但不能重復(fù)(如圖中合同號(hào)和合同名誰(shuí)先誰(shuí)后都沒(méi)關(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)滿足第一、二、三范式,……,依此類推。第一范式(first normal form,簡(jiǎn)稱1st NF)就是指在同一表中沒(méi)有重復(fù)項(xiàng)出現(xiàn),如果有則應(yīng)將重復(fù)項(xiàng)去掉。這個(gè)去掉重復(fù)項(xiàng)的過(guò)程就稱之為規(guī)范化處理。在本文所討論的開(kāi)發(fā)方法里,1st NF實(shí)際上是沒(méi)有什么意義的。因?yàn)槲覀儼匆?guī)范化建立的指標(biāo)體系和表的過(guò)程都自動(dòng)保證了所有表都滿足1st NF。 第二范式(second normal form,簡(jiǎn)稱 2nd NF)是指每個(gè)表必須有一個(gè)(而且僅一個(gè))數(shù)據(jù)元素為主關(guān)鍵字(primary key),其它數(shù)據(jù)元素與主關(guān)鍵字一一對(duì)應(yīng)。例如,(其它數(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,簡(jiǎn)稱 3rd NF)就是指表中的所有數(shù)據(jù)元素不但要能夠唯一地被主關(guān)鍵字所標(biāo)識(shí),而且它們之間還必須相互獨(dú)立,不存在其它的函數(shù)關(guān)系。也就是說(shuō)對(duì)于一個(gè)滿足了 2nd NF的數(shù)據(jù)結(jié)構(gòu)來(lái)說(shuō),表中有可能存在某些數(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ì)。167。 SQL語(yǔ)言基礎(chǔ) SQL簡(jiǎn)介用戶對(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)采納為國(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)品DBORACLE等都實(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)行快速檢索,用戶不需知道表上是否有索引或者有什么類型的索引等細(xì)節(jié)。SQL語(yǔ)言可以完成許多功能,例如:● 查詢數(shù)據(jù)● 在數(shù)據(jù)庫(kù)表格中插入、修改和刪除記錄● 建立、修改和刪除數(shù)據(jù)對(duì)象● 控制對(duì)數(shù)據(jù)和數(shù)據(jù)對(duì)象的存取● 確保數(shù)據(jù)庫(kù)的一致性和完整性等 SQL查詢數(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 BY 列名序列][HAVING 組條件表達(dá)式][ORDER BY列名 [ASC│DEAC]…]我在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等等。做為SELECT語(yǔ)句還有很多的使用方法,這里就不再敘述。 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á)式]在些作一點(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ǔ)言很方便,但考慮到自己對(duì)不同組件的理解程度、個(gè)人習(xí)慣以及其它各個(gè)方面,在本系統(tǒng)中我采用的是ADO組件來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。最簡(jiǎn)單的方法比如在TADOQuery組件的SQL屬性中就可以鍵入SQL語(yǔ)句,至于詳細(xì)的使用方法在后面進(jìn)行介紹。第三章 數(shù)據(jù)庫(kù)開(kāi)發(fā)工具167。 Delphi 簡(jiǎn)介Delphi類可以粗略地分成兩部分:一部分是組件類,這些組件類通常以某種方式出現(xiàn)在組件面板上,當(dāng)用戶從組件面板上點(diǎn)取一個(gè)類的圖標(biāo)后,在程序中就自動(dòng)生成了該類的對(duì)象(非可視組件除外);另一部分是功能類,這此功能類的對(duì)象通常出現(xiàn)在程序代碼中,起著不可代替的作用,但是這些功能類在組件面板上是找不到的。在Delphi中,每一個(gè)類的祖先都是Tobject類,整個(gè)類的層次結(jié)構(gòu)就像一棵倒掛的樹(shù),在最頂層的樹(shù)根即為T(mén)object類。這樣,按照面向?qū)ο缶幊痰幕舅枷?,就使得用戶可用Tobject類這個(gè)類型代替任何其它類的數(shù)據(jù)類型。實(shí)際上在Delphi的類庫(kù)中,Tobject類派生出了為數(shù)相當(dāng)眾多的子類,它們形成了一個(gè)龐大的體系,通常情況下,如果不自行開(kāi)發(fā)組件,就不必了解整個(gè)類的體系結(jié)構(gòu),只用到類層次樹(shù)的葉結(jié)點(diǎn)就足夠了。凡是做過(guò)程序開(kāi)發(fā)的人都知道從來(lái)沒(méi)有單純的數(shù)據(jù)應(yīng)用程序,也就是說(shuō),數(shù)據(jù)庫(kù)應(yīng)用程序必須和用戶界面(可以是圖形界面,也可以是命令接口)元素相結(jié)合,只講界面或只講數(shù)據(jù)庫(kù)本身都構(gòu)不成數(shù)據(jù)庫(kù)應(yīng)用程序,因而用Delphi 。Delphi6中的VCL組件可用圖31來(lái)說(shuō)明。組件在Delphi程序的開(kāi)發(fā)中是最顯眼的角色。大家知道,在編寫(xiě)程序時(shí)一般都開(kāi)始于在組件面板上選擇組件并定義組件間的相互作用。但也有一些組件不在組件面板上,例如Tform和Tapplication(典型的非可視組件)。組件是Tponents派生出來(lái)的子類,可以流的形式存放在DFM文件中,具有事件和Publish屬性。窗口組件類是窗口化的可視化組件類,在Delphi的類庫(kù)中占有最大的份額。在實(shí)際編程中,窗口組件類的對(duì)象都有句柄,可以接受輸入焦點(diǎn)和包含其它組件。圖形組件與窗口組件并列,是另一大類組件。圖形組件不是基于窗口的,因而不能有窗口句柄,不能接受輸入焦點(diǎn)和包含其它組件。從圖843中可以看出,圖形組件的基類是TgraphicControl,在實(shí)際編程中,它們必須寄生于它們的宿主——窗口組件類的對(duì)象,由它們的擁有者負(fù)責(zé)其顯示,而且它們還能觸發(fā)一些和鼠標(biāo)活動(dòng)相關(guān)的事件。圖形控件最典型的例子是Tlabel和TspeedButton。由此可以看出圖形組件的功能很弱,有讀者會(huì)問(wèn)圖形組件的用處何在呢?其實(shí)使用圖形組件的最大好處在于節(jié)省資源,正是因?yàn)樗鼈兊墓δ茌^弱,所以使用的系統(tǒng)資源就要少。在一個(gè)應(yīng)用程序中,如果能在不影響其功能的前提下合理大量地使用圖形組件,將會(huì)大減少程序?qū)ο到y(tǒng)資源的消耗。非可視組件是與可視組件相并列的另一類組件,非可視組件在程序運(yùn)行中是不可見(jiàn)的(除各種對(duì)話框組件之外,事實(shí)上有人認(rèn)為對(duì)話框組件不能歸入非可視組件,應(yīng)該是另一種介于可視與非可視之間的組件)。167。 Delphi 控件用Delphi6開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用,重點(diǎn)是和各種數(shù)據(jù)庫(kù)組件打交道,當(dāng)然也要使用其它的一些組件,現(xiàn)在就我在系統(tǒng)設(shè)計(jì)中所使用的重要組件給與簡(jiǎn)單介紹。 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是基于OLEDB之上的技術(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 。這種能力是通過(guò)一組新組件實(shí)現(xiàn)的,這些組件是在企業(yè)版的ADO組件頁(yè)中,在組件面版的ADO頁(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之間都具有這種類似的對(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 ,可以不借助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è)組件。 數(shù)據(jù)控制類DataControl數(shù)據(jù)控制類負(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。 數(shù)據(jù)訪問(wèn)類DataAccess數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中數(shù)據(jù)訪問(wèn)是一個(gè)首要問(wèn)題,包括單用戶和 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ù)連接顯示的聲明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ù)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1