數(shù)據(jù)集,又稱為資料集、數(shù)據(jù)集合或資料集合,是一種由數(shù)據(jù)所組成的集合。
Data set(或dataset)是一個(gè)數(shù)據(jù)的集合,通常以表格形式出現(xiàn)。每一列代表一個(gè)特定變量。每一行都對應(yīng)于某一成員的數(shù)據(jù)集的問題。它列出的價(jià)值觀為每一個(gè)變量,如身高和體重的一個(gè)物體或價(jià)值的隨機(jī)數(shù)。每個(gè)數(shù)值被稱為數(shù)據(jù)資料。對應(yīng)于行數(shù),該數(shù)據(jù)集的數(shù)據(jù)可能包括一個(gè)或多個(gè)成員。
原理與分類
從歷史上看,這個(gè)術(shù)語起源于大型機(jī)領(lǐng)域,在那里它有一個(gè)明確界定的意義,非常接近現(xiàn)代的計(jì)算機(jī)檔案。這個(gè)主題是不包括在這里的。
最簡單的情況下,只有一個(gè)變量,然后在數(shù)據(jù)集由一列列的數(shù)值組成,往往被描述為一個(gè)列表。盡管名稱,這樣一個(gè)單數(shù)據(jù)集不是一套通常的數(shù)學(xué)意義,因?yàn)槟骋粋€(gè)指定數(shù)值,可能會(huì)出現(xiàn)多次。通常的順序并不重要,然后這樣數(shù)值的集合可能被視為多重集,而不是(順序)列表。
值可能是數(shù)字,例如真正的數(shù)字或整數(shù),例如代表一個(gè)人的身高多少厘米,但也可能是象征性的數(shù)據(jù)(即不包括數(shù)字),例如代表一個(gè)人的種族問題。更一般的說,價(jià)值可以是任何類型描述為某種程度的測量。對于每一個(gè)變量,通常所有的值都是同類。但是也可能是“遺漏值”,其中需要指出的某種方式。
數(shù)據(jù)集可以分成類型化數(shù)據(jù)集與非類型化數(shù)據(jù)集。
類型化數(shù)據(jù)集:這種數(shù)據(jù)集先從基DataSet 類派生,然后,使用XML 架構(gòu)文件(.xsd 文件)中的信息生成新類。架構(gòu)中的信息(表、列等)被作為一組第一類對象和屬性生成并編譯為此新數(shù)據(jù)集類。可以直接通過名稱引用表和列,在VS.NET中可以智能感知元素的類型。
非類型化數(shù)據(jù)集:這種數(shù)據(jù)集沒有相應(yīng)的內(nèi)置架構(gòu)。與類型化數(shù)據(jù)集一樣,非類型化數(shù)據(jù)集也包含表、列等,但它們只作為集合公開。需要通過Tables集合引用列。
作用
統(tǒng)計(jì)學(xué)
在統(tǒng)計(jì)數(shù)據(jù)集通常來自實(shí)際觀測得到的抽樣統(tǒng)計(jì)人口,每一行對應(yīng)于觀測的一個(gè)組成部分,人口。數(shù)據(jù)集可能會(huì)進(jìn)一步產(chǎn)生算法為測試目的某些種類的軟件。一些現(xiàn)代統(tǒng)計(jì)分析軟件,如PSPP仍然存在的數(shù)據(jù)中的經(jīng)典數(shù)據(jù)集的方式。常見的人口人力資源數(shù)據(jù)統(tǒng)計(jì)學(xué)數(shù)據(jù)集包括:??Gravesite locations of Veterans and beneficiaries in ALASKA, as of January 2011.(阿拉斯加州退伍軍人墓地的位置和受益人,自2011年1月)、2007-2008 County-to-County Migration Outflow(2007-2008郡縣之間移民流出)等。
數(shù)據(jù)庫
數(shù)據(jù)集在斷開CPU緩存中存儲(chǔ)數(shù)據(jù)。數(shù)據(jù)集的結(jié)構(gòu)類似于關(guān)系數(shù)據(jù)庫的結(jié)構(gòu);它公開表、行和列的分層對象模型。另外,它包含為數(shù)據(jù)集定義的約束和關(guān)系。
Delphi 4
Delphi 4中有四種類型的標(biāo)準(zhǔn)數(shù)據(jù)集構(gòu)件,分別是TTable、TQuery、TStoredProc和TClientDataSet。這些數(shù)據(jù)集構(gòu)件都是從一個(gè)共同的基類TDataSet繼承下來的,其中,只有TClientDataSet是直接從TDataSet繼承下來的,而TTable、TQuery、TStoredProc的直接上級是TDBDataSet,TDBDataSet的上級是TBDEDataSet,TBDEDataSet 的上級才是TDataSet。這幾個(gè)類之間的繼承關(guān)系可以用圖6.1來表示。
TDataSet是所有數(shù)據(jù)集的抽象基類,它的大部分屬性和方法是虛擬的或抽象的。所謂虛擬的方法,是指這些方法可以被派生類重載。所謂抽象的方法,是指這些方法只有聲明,沒有定義,派生類必須給出定義后才能調(diào)用這些方法,不同的派生類可以有不同的定義。
由于TDataSet中包含抽象的方法,您不能直接創(chuàng)建它的實(shí)例,否則會(huì)引起運(yùn)行期錯(cuò)誤。
如果從功能上劃分,TDataSet的屬性和方法可以分為這么幾大塊:打開和關(guān)閉數(shù)據(jù)集、瀏覽記錄、編輯數(shù)據(jù)、書簽管理、控制連接、訪問字段、記錄緩沖區(qū)管理、過濾、事件。
使用技巧
篩選與排序
在填充數(shù)據(jù)集之后,通常會(huì)發(fā)現(xiàn)使用表中的不同記錄子集或以不同順序查看數(shù)據(jù)很有用。可以通過對數(shù)據(jù)集內(nèi)的數(shù)據(jù)進(jìn)行篩選和排序來實(shí)現(xiàn)這一點(diǎn)。若要簡化此過程,可以創(chuàng)建數(shù)據(jù)視圖,數(shù)據(jù)視圖提供可合并篩選器和排序條件的對象,可用作數(shù)據(jù)綁定的源。
改用內(nèi)置的數(shù)據(jù)集功能來篩選和排序。有兩個(gè)選擇:
(1)數(shù)據(jù)表支持Select 方法,您可調(diào)用該方法來篩選和排序。該方法并不更改表中記錄的內(nèi)容和順序,相反,它向您提供一個(gè)記錄列表(或數(shù)組)表示所指定的條件。
(2)可以使用數(shù)據(jù)視圖(DataView 對象)。數(shù)據(jù)視圖是一個(gè)對象,它作為數(shù)據(jù)表之上的層,提供經(jīng)過篩選和排序后的表內(nèi)容視圖。(還可以使用數(shù)據(jù)視圖管理器,它的行為像數(shù)據(jù)視圖集合。)數(shù)據(jù)視圖類似于數(shù)據(jù)庫中的視圖,因?yàn)樗皇菙?shù)據(jù)的副本。相反,它只是查看表中數(shù)據(jù)的另一種方式。
數(shù)據(jù)視圖
數(shù)據(jù)視圖是位于數(shù)據(jù)表之上的獨(dú)立對象,是對單一數(shù)據(jù)進(jìn)行過濾和排序后的視圖,可以用作綁定控件的數(shù)據(jù)源,也可以為一個(gè)數(shù)據(jù)表創(chuàng)建多個(gè)數(shù)據(jù)視圖,視圖數(shù)據(jù)行實(shí)際引用了數(shù)據(jù)行的DataRowView對象,數(shù)據(jù)視圖的RowFilter 屬性,可以用來篩選數(shù)據(jù)表中的記錄以便僅使想操作的記錄可用。這在要操作數(shù)據(jù)集表中記錄的不同子集時(shí)很有用。若要指定篩選器條件,可以使用與創(chuàng)建列表達(dá)式所用語法相同的表達(dá)式語法。
參考資料 >