專利名稱:通過確定性自然數(shù)據(jù)的替換擾亂數(shù)據(jù)結(jié)構(gòu)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實施例涉及數(shù)據(jù)結(jié)構(gòu)擾亂的領(lǐng)域。更具體但非限制地,本發(fā)明的實施例 提供一種新的和有用的方法和系統(tǒng),用于使用反映了在數(shù)據(jù)結(jié)構(gòu)中數(shù)據(jù)值分配的被確定性 生成的偽隨機數(shù)據(jù)值來代替該數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)值。
背景技術(shù):
許多公司都維持有包括了客戶或雇員信息的數(shù)據(jù)庫。所述信息可包括姓名、地址、 電話號碼、社會保險號碼、公司名稱、薪水和購買歷史。例如一家互聯(lián)網(wǎng)銷售公司可以具有 包括了客戶姓名、電話號碼、支付方法和購買歷史的客戶數(shù)據(jù)庫。在另一個實施例中,財會 部分可具有關(guān)于其雇員的薪水信息。由于這些信息中諸如支付方法、社會保險號碼和薪水 等信息的敏感性,對這些信息的訪問只限于公司內(nèi)相對較小的一組人。正如軟件應(yīng)用中所普遍的,要求由計算機程序員進(jìn)行故障診斷就會引發(fā)一些問 題。當(dāng)在具有敏感信息的數(shù)據(jù)庫上運行的軟件應(yīng)用程序發(fā)生故障時,程序員為了故障診斷 需要訪問所述敏感數(shù)據(jù)庫。這就導(dǎo)致了敏感信息被通常對該信息不具有訪問權(quán)限的人看 到。例如在薪水發(fā)放的實例中,薪水信息的傳播會在公司內(nèi)引發(fā)關(guān)于薪水差異的內(nèi)部矛盾。 在互聯(lián)網(wǎng)銷售的實例中,支付方法和諸如社會保險號碼的其他個人信息的傳播會導(dǎo)致身份 盜用。然而為了有效地調(diào)試故障軟件應(yīng)用程序,程序員需要訪問實際數(shù)據(jù),尤其要訪問實際 數(shù)據(jù)的分配(地理分配、姓名分配等等)。本領(lǐng)域內(nèi)已知可通過隨機數(shù)據(jù)替代擾亂數(shù)據(jù)庫,從而生成了測試數(shù)據(jù)庫。然而隨 機數(shù)據(jù)替代不會產(chǎn)生在自然數(shù)據(jù)庫內(nèi)找到的實際數(shù)據(jù)分配。所以就需要一種方法和系統(tǒng)來 擾亂至少部分?jǐn)?shù)據(jù)庫以產(chǎn)生測試數(shù)據(jù)庫,該測試數(shù)據(jù)庫具有反映了在實際數(shù)據(jù)庫中找到的 分配的數(shù)據(jù)分配。
發(fā)明內(nèi)容
本發(fā)明的實施例提供了一種通過由確定性的自然數(shù)據(jù)替代的代替來擾亂數(shù)據(jù)的 方法。此外,本發(fā)明的實施例在所述技術(shù)領(lǐng)域內(nèi)可具有若干實際應(yīng)用,包括但不限于使用外 觀自然的數(shù)據(jù)確定性地代替機密數(shù)據(jù)。這些數(shù)據(jù)反映了就數(shù)據(jù)分布而言在原始數(shù)據(jù)中找到 的模式,但不包括原始的機密數(shù)據(jù)。在一個實施例中,提供一種用于擾亂數(shù)據(jù)的方法。所述方法包括對期望擾亂的第 一數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作并且基于所述第一數(shù)據(jù)結(jié)構(gòu)的一部分生成數(shù)據(jù)串?;谒鰯?shù)據(jù)串, 就從第三數(shù)據(jù)結(jié)構(gòu)中確定性地生成第二數(shù)據(jù)結(jié)構(gòu)并且所述第二數(shù)據(jù)結(jié)構(gòu)代替所述第一數(shù) 據(jù)結(jié)構(gòu)。在另一個實施例中,提供一種用于構(gòu)造測試數(shù)據(jù)結(jié)構(gòu)的方法。所述方法包括影響具有若干數(shù)據(jù)字段類型的源數(shù)據(jù)結(jié)構(gòu),其中每個數(shù)據(jù)字段都包括若干行數(shù)據(jù)并且所述方法 還確定用于每行數(shù)據(jù)的標(biāo)識符。接下來所述方法對于每行數(shù)據(jù),基于所述標(biāo)識符生成數(shù)據(jù) 串,把該數(shù)據(jù)串的一部分映射到參考數(shù)據(jù)結(jié)構(gòu)內(nèi)的值并且把所述參考數(shù)據(jù)結(jié)構(gòu)內(nèi)的映射值 裝入測試數(shù)據(jù)結(jié)構(gòu)。在又一個實施例中,提供一種計算機可讀介質(zhì),所述介質(zhì)具有用于執(zhí)行生成合成 數(shù)據(jù)結(jié)構(gòu)的方法的計算機可用指令。所述方法包括首先提供一種參考數(shù)據(jù)結(jié)構(gòu)和一種源數(shù) 據(jù)結(jié)構(gòu),其中每個數(shù)據(jù)結(jié)構(gòu)都具有若干數(shù)據(jù)字段類型并且每個數(shù)據(jù)字段類型都包括若干行 數(shù)據(jù)值。接下來,所述方法包括根據(jù)預(yù)定的模式為所述源數(shù)據(jù)結(jié)構(gòu)中的每行數(shù)據(jù)值分配加 權(quán)值并且為所述源數(shù)據(jù)結(jié)構(gòu)的每行數(shù)據(jù)值分別導(dǎo)出數(shù)據(jù)串。為了所述源數(shù)據(jù)結(jié)構(gòu)的每行數(shù) 據(jù)值,在所述數(shù)據(jù)值行內(nèi)的每個數(shù)據(jù)值都基于所述加權(quán)值、各自的數(shù)據(jù)串以及數(shù)據(jù)字段類 型,被映射到所述參考數(shù)據(jù)結(jié)構(gòu)內(nèi)數(shù)據(jù)值行中的數(shù)據(jù)值上。最后,用所述參考數(shù)據(jù)結(jié)構(gòu)的映 射值裝入所述合成的數(shù)據(jù)結(jié)構(gòu)。另外的特性將在如下詳細(xì)討論。
如下將參考附圖詳述本發(fā)明的實施例,結(jié)合在此作為參考的附圖包括圖IA是示出了一個典型定購過程的系統(tǒng)框圖;圖IB是示出了用于擾亂數(shù)據(jù)結(jié)構(gòu)的方法的一個實施例的流程圖;圖2是詳細(xì)示出了用于生成數(shù)據(jù)串的過程的一個實施例的流程圖;圖3是一個典型的數(shù)據(jù)串;圖4是一個期望被擾亂的典型數(shù)據(jù)結(jié)構(gòu);圖5是詳細(xì)示出了用于擾亂數(shù)據(jù)結(jié)構(gòu)的過程的一個實施例的流程圖;圖6是從圖4的數(shù)據(jù)結(jié)構(gòu)中導(dǎo)出的典型的被擾亂的數(shù)據(jù)結(jié)構(gòu);圖7是詳細(xì)示出了用于擾亂數(shù)據(jù)結(jié)構(gòu)的過程的另一個實施例的流程圖;圖8是示出了分配有加權(quán)值的各種數(shù)據(jù)字段類型的示意圖。
具體實施例方式本發(fā)明的實施例提供了一種新穎的方法和系統(tǒng),它們通過為在所述第一數(shù)據(jù)結(jié)構(gòu) 內(nèi)的每行數(shù)據(jù)值確定性地生成唯一的數(shù)據(jù)串,使用所述數(shù)據(jù)串將所述第一數(shù)據(jù)結(jié)構(gòu)的所述 行中的每個數(shù)據(jù)映射給參考數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)值并且基于在所述參考數(shù)據(jù)結(jié)構(gòu)中的映射數(shù) 據(jù)值來創(chuàng)建第二數(shù)據(jù)結(jié)構(gòu),來擾亂第一數(shù)據(jù)結(jié)構(gòu)內(nèi)的數(shù)據(jù)值。確定性的方法和系統(tǒng)能夠?qū)?現(xiàn)可再現(xiàn)的結(jié)果使得對于第一數(shù)據(jù)結(jié)構(gòu)擾亂的每個實例,第一數(shù)據(jù)結(jié)構(gòu)中的一行數(shù)據(jù)值都 能夠與第二數(shù)據(jù)結(jié)構(gòu)中的一行數(shù)據(jù)值相關(guān)。此外,在本發(fā)明各個實施例中示出的新穎方法和系統(tǒng)在某些實施例中可以將加權(quán) 值分配給所述第一數(shù)據(jù)結(jié)構(gòu)內(nèi)特定類型的數(shù)據(jù)值用于創(chuàng)建大致近似于第一數(shù)據(jù)結(jié)構(gòu)內(nèi)數(shù) 據(jù)值分配的第二數(shù)據(jù)結(jié)構(gòu)。這樣,隨機出現(xiàn)的所述第二數(shù)據(jù)結(jié)構(gòu)就在對所述第一數(shù)據(jù)結(jié)構(gòu) 進(jìn)行操作的軟件應(yīng)用程序的測試和故障診斷中十分有效。從隨后通過的詳細(xì)描述和本發(fā)明各個實施例的附圖中將更好地理解本發(fā)明的實 施例。盡管如此,不應(yīng)將詳細(xì)描述和附圖理解為將本發(fā)明限制在某些特定實施例上。相反地,提供這些特定的實施例是出于幫助更好的理解本發(fā)明的示意性目的。闡述了特定的硬件設(shè)備、編程語言、組件、程序以及包括操作環(huán)境等等的多種細(xì)節(jié) 用于提供對本發(fā)明的透徹理解。在其他實例中,結(jié)構(gòu)、設(shè)備和程序以框圖而非細(xì)節(jié)的形式示 出以避免模糊本發(fā)明的實施例。但是本領(lǐng)域普通技術(shù)人員應(yīng)該理解沒有這些特定細(xì)節(jié)也可 實現(xiàn)本發(fā)明的實施例。計算機系統(tǒng)、服務(wù)器、工作站和其他機器可以通過例如包括一個或多 個網(wǎng)絡(luò)的通信介質(zhì)相互連接。此外示出用于解釋本發(fā)明各個實施例的數(shù)據(jù)結(jié)構(gòu)可以是但不 限于數(shù)據(jù)庫、電子表格以及其他能夠作為存儲介質(zhì)的裝置。現(xiàn)在轉(zhuǎn)到圖1A,示出的是使用在圖IB到圖8中詳細(xì)描述的數(shù)據(jù)擾亂方法的典型定 購系統(tǒng)的過程10的系統(tǒng)框圖。過程10在客戶服務(wù)代理接收到客戶定單的步驟14處開始。 可以通過電子商務(wù)網(wǎng)站、電話或個人收到所述定單。在步驟16處,過程10從包括了客戶數(shù) 據(jù)結(jié)構(gòu)12A和庫存可用性數(shù)據(jù)結(jié)構(gòu)12B的數(shù)據(jù)結(jié)構(gòu)12中檢索用戶數(shù)據(jù)。客戶數(shù)據(jù)結(jié)構(gòu)12A 可以包括轉(zhuǎn)入地址、電話、公司社會保險號碼以及該客戶過去的支付方法的客戶信息。在步 驟18處,過程10基于來自庫存數(shù)據(jù)結(jié)構(gòu)12B的可用庫存以及來自客戶數(shù)據(jù)結(jié)構(gòu)12A的出 貨信息生成一張發(fā)票。在步驟20處,出貨給所述客戶的定單是基于在步驟18處生成的發(fā)票。在步驟22 處,如果客戶正當(dāng)?shù)厥盏皆摱▎尉屯瓿闪怂鲞^程。然而,如果該定單未被恰當(dāng)?shù)亟邮?諸 如在定單出貨錯誤或者合適的定單被送給錯誤的顧客的情況下),就必須調(diào)試過程10中使 用的軟件應(yīng)用程序以用于確定故障的根源。在步驟M處,使用來自客戶數(shù)據(jù)結(jié)構(gòu)12A和庫 存數(shù)據(jù)結(jié)構(gòu)12B的測試數(shù)據(jù)值生成數(shù)據(jù)結(jié)構(gòu)13。隨后就在步驟沈處使用測試數(shù)據(jù)結(jié)構(gòu)13 分析過程10使用的軟件應(yīng)用程序。通常期望包括在客戶數(shù)據(jù)結(jié)構(gòu)12A內(nèi)的敏感信息不要 被分發(fā)到要求訪問數(shù)據(jù)結(jié)構(gòu)12A內(nèi)信息的這些有限的一組人之外的地方。通過使用確定性 的方法擾亂數(shù)據(jù)結(jié)構(gòu)12A內(nèi)的數(shù)據(jù),就可生成帶有外表自然并且保護(hù)客戶機密信息的測試 數(shù)據(jù)結(jié)構(gòu)13。因為使用確定性的函數(shù)生成測試數(shù)據(jù)結(jié)構(gòu)13內(nèi)的數(shù)據(jù)值,所以在測試數(shù)據(jù)結(jié) 構(gòu)13內(nèi)的數(shù)據(jù)錄入項可被追溯到數(shù)據(jù)結(jié)構(gòu)12A內(nèi)的數(shù)據(jù)值從而定位過程10使用的所述軟 件應(yīng)用程序內(nèi)的問題根源。轉(zhuǎn)向圖1B,示出的是用于從期望被擾亂的第一或源數(shù)據(jù)結(jié)構(gòu)中生成測試或第二數(shù) 據(jù)結(jié)構(gòu)的方法100的一個實施例。圖4示出了具有列410-420和行422-432的典型數(shù)據(jù)結(jié) 構(gòu)400。數(shù)據(jù)結(jié)構(gòu)400包括數(shù)據(jù)字段類型的各個列。在典型的數(shù)據(jù)結(jié)構(gòu)400中,提供的列是 用于指示每行的ID號碼。包括在數(shù)據(jù)結(jié)構(gòu)400內(nèi)的各種數(shù)據(jù)字段類型包括名、姓、公司、性 別和電話號碼。在某些實施例中的數(shù)據(jù)結(jié)構(gòu)400還可包括諸如年齡和種族的其他數(shù)據(jù)字段 類型?,F(xiàn)在回到圖1B,所述擾亂方法100包括了為期望擾亂的數(shù)據(jù)結(jié)構(gòu)行生成數(shù)據(jù)串的 步驟110。例如數(shù)據(jù)結(jié)構(gòu)400的行422包括被操作用于生成數(shù)據(jù)串的ID號碼“0001”。在 步驟110處生成數(shù)據(jù)串的過程還參考了圖2進(jìn)行討論。繼續(xù)擾亂方法100,在步驟112處, 確定諸如數(shù)據(jù)結(jié)構(gòu)400內(nèi)的地址或姓名字段數(shù)據(jù)值的第一數(shù)據(jù)字段類型。例如,在行422 中的數(shù)據(jù)值“Chris”是由列412指定的“名”數(shù)據(jù)字段類型。在步驟114處,檢索行422和 列412處的數(shù)據(jù)值“Chris”。在步驟116處,基于數(shù)據(jù)類型和使用第三或一個或多個參考 數(shù)據(jù)結(jié)構(gòu)(未示出)的數(shù)據(jù)串來擾亂數(shù)據(jù)值“Chris”并創(chuàng)建相應(yīng)的測試數(shù)據(jù)結(jié)構(gòu)。所述測 試數(shù)據(jù)結(jié)構(gòu)包括對應(yīng)于數(shù)據(jù)值“Chris”的來自參考數(shù)據(jù)結(jié)構(gòu)的被擾亂數(shù)據(jù)值。在步驟118中,如果期望被擾亂的所述數(shù)據(jù)結(jié)構(gòu)中存在更多列,諸如數(shù)據(jù)結(jié)構(gòu)400的“姓”列414、“公 司”列416、“性別”列418和“電話號碼”列420,那么隨后就重復(fù)步驟112到116。在每列 都被擾亂之后,在步驟120處方法100移動到下一行。例如數(shù)據(jù)結(jié)構(gòu)400的行424。如果存 在更多的行,就在步驟110處生成數(shù)據(jù)串并且方法100重復(fù)步驟112至118。當(dāng)期望被擾亂 的數(shù)據(jù)結(jié)構(gòu)中沒有行存在時,就完成方法100。諸如圖IA中測試數(shù)據(jù)結(jié)構(gòu)13的第二或測試 數(shù)據(jù)結(jié)構(gòu)已經(jīng)被創(chuàng)建,并且在所述源數(shù)據(jù)結(jié)構(gòu)內(nèi)的機密數(shù)據(jù)也已被擾亂?,F(xiàn)在轉(zhuǎn)到圖2,示出的是用于生成圖IB步驟110的數(shù)據(jù)串的詳細(xì)過程。步驟110的 過程包括確定所述源數(shù)據(jù)結(jié)構(gòu)內(nèi)行數(shù)據(jù)值的標(biāo)識符的步驟110A。在數(shù)據(jù)結(jié)構(gòu)400中,“ID” 列410可用作標(biāo)識符。在行422內(nèi)的標(biāo)識符可以是“0001”。在步驟IlOB處,將標(biāo)識符應(yīng) 用到確定性的函數(shù)。確定性的函數(shù)的一個實例是MD-5(報文摘要算法5)加密算法。MD-5 是一種廣泛使用的帶有1 位散列輸出值的密碼散列函數(shù)。使用MD-5函數(shù),即使輸入消息 內(nèi)很小的變化也能導(dǎo)致完全不同的輸出消息或散列值。所述MD-5算法還在因特網(wǎng)工程特 別任務(wù)(IETF)請求評論(R. F. C. )1321中描述,該文結(jié)合在此作為參考。在此使用的所述 MD-5確定性的算法僅用作示意性的目的。本發(fā)明的各個實施例也可使用其他確定性的函 數(shù),諸如但不限于SHA-I和RIPEMD-160。繼續(xù)參考圖2,在步驟IlOC處,所述數(shù)據(jù)串的部分或所述確定性函數(shù)的輸出被分 配給所述源數(shù)據(jù)結(jié)構(gòu)內(nèi)的數(shù)據(jù)字段類型。圖4的數(shù)據(jù)結(jié)構(gòu)400包括若干數(shù)據(jù)字段類型,即 “ID”410、“名”412、“姓”414、“公司”416、“性別”418以及“電話號碼”420。參見圖3,示出 的是一個典型的一般數(shù)據(jù)串300。數(shù)據(jù)串300包括與數(shù)據(jù)結(jié)構(gòu)400的五個數(shù)據(jù)字段類型相 匹配的五個部分、在步驟IlOC的一個實施例中,數(shù)據(jù)串300的一個部分312可分配給包括 由“名”數(shù)據(jù)字段類型的數(shù)據(jù)結(jié)構(gòu)400的列412而數(shù)據(jù)串300的一個部分314可分配給包 括由“姓”數(shù)據(jù)字段類型的數(shù)據(jù)結(jié)構(gòu)400的列414。類似地,部分316可分配給列416、部分 318可分配給列418而部分320可分配給數(shù)據(jù)結(jié)構(gòu)400的列420、雖然在此實施例中數(shù)據(jù)串 300的各部分被以分塊方式分配給數(shù)據(jù)結(jié)構(gòu)400內(nèi)的數(shù)據(jù)字段類型,但是在本發(fā)明的其他 實施例,數(shù)據(jù)串300的各部分能夠以不連續(xù)組的形式被分配給數(shù)據(jù)結(jié)構(gòu)400內(nèi)的各個數(shù)據(jù) 字段類型的列。現(xiàn)在轉(zhuǎn)到圖5,示出的是用于擾亂在圖IB的步驟116中討論的源數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)值 的詳細(xì)過程。在步驟116A處,檢索在圖IB的步驟110處生成并在圖2中被進(jìn)一步解釋的數(shù) 據(jù)串的部分。出于示意性的目的,在步驟116A處檢索圖3的數(shù)據(jù)串300。在步驟116B處, 對應(yīng)于例如在數(shù)據(jù)結(jié)構(gòu)400的數(shù)據(jù)字段類型的數(shù)據(jù)串300的一部分被映射給對應(yīng)于在參考 結(jié)構(gòu)(未示出)中數(shù)據(jù)字段類型的數(shù)據(jù)值。所述參考數(shù)據(jù)結(jié)構(gòu)例如可以是包括了姓/名、 地址、性別、年齡、電話號碼、社會保險號碼和種族的普查資料。此外在本發(fā)明的其他實施例 中,所述參考數(shù)據(jù)結(jié)構(gòu)可以是單數(shù)據(jù)結(jié)構(gòu)或者是數(shù)據(jù)結(jié)構(gòu)的編譯,它們都包括對應(yīng)于數(shù)據(jù) 字段類型的數(shù)據(jù)值。在步驟116C處,檢索在參考數(shù)據(jù)結(jié)構(gòu)內(nèi)的映射數(shù)據(jù)值以創(chuàng)建合成或測 試數(shù)據(jù)結(jié)構(gòu)。一典型的合成數(shù)據(jù)結(jié)構(gòu)由圖6中的數(shù)據(jù)結(jié)構(gòu)300示出。合成的數(shù)據(jù)結(jié)構(gòu)600 包括與圖4中的源或被擾亂數(shù)據(jù)結(jié)構(gòu)400相同的列號和數(shù)據(jù)類型并且包括與圖4中數(shù)據(jù)結(jié) 構(gòu)400大致類似的數(shù)據(jù)。對每一實例都使用所述確定性函數(shù),使得來自源數(shù)據(jù)結(jié)構(gòu)的一行數(shù)據(jù)值被映射至 參考數(shù)據(jù)結(jié)構(gòu)以生成合成數(shù)據(jù)內(nèi)的一行數(shù)據(jù)值。在源數(shù)據(jù)結(jié)構(gòu)內(nèi)給定的一行數(shù)據(jù)值和在合成數(shù)據(jù)結(jié)構(gòu)內(nèi)相應(yīng)的被擾亂的一行數(shù)據(jù)值之間存在這可再生的關(guān)系。換句話說,參考圖4 和圖6,對于源數(shù)據(jù)結(jié)構(gòu)400的每一擾亂,圖4的行422都對應(yīng)于圖6的行622。如前關(guān)于圖 IA的描述,這一可再生的能力使得能夠多次調(diào)試在定單和出貨過程中使用的軟件應(yīng)用程序 而不丟失在客戶數(shù)據(jù)結(jié)構(gòu)12A和測試數(shù)據(jù)結(jié)構(gòu)13的數(shù)據(jù)值之間的關(guān)系。如前所述,圖3中數(shù)據(jù)串300的一部分被用于將數(shù)據(jù)結(jié)構(gòu)400中的一個值映射至 參考數(shù)據(jù)結(jié)構(gòu)(未示出)的一個值。例如,年齡數(shù)據(jù)類型可以對應(yīng)于數(shù)據(jù)串300的第22至 27位,而姓和名可以使用數(shù)據(jù)串300的11位最低有效位。在選擇姓和名的實例中,可從普 查統(tǒng)計局下載美國最流行的65000個姓和名。為了從普查統(tǒng)計局列出的65000個中選出一 個姓和名,就需要來自數(shù)據(jù)串300的特定的位數(shù)。例如,可從數(shù)據(jù)串300中選擇16個獨立 位并組合到一起用作姓,而從數(shù)據(jù)串300中選擇另外12位組合到一起用作名。雖然在此實 例中選擇了 12和16位,但是也可選擇其他的位數(shù)。例如,如果用于名的二進(jìn)制位數(shù)合計達(dá) 二,則就選擇參考數(shù)據(jù)結(jié)構(gòu)內(nèi)的第二輸入項。隨后就把從列出的65000個姓和名中選出的 姓和名插入合成的數(shù)據(jù)庫結(jié)構(gòu)500。類似地,當(dāng)使用地址時,數(shù)據(jù)串300的一部分就用于選 擇一個地址。例如,如果選作地址的數(shù)據(jù)串300的部分合計達(dá)192,則在地址參考數(shù)據(jù)庫中 的第192個輸入項就被選擇并插入圖6中的合成數(shù)據(jù)結(jié)構(gòu)600?,F(xiàn)在參考圖7,示出的是用于擾亂在圖IB的步驟116中描述的源數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù) 值的另一個實施例。在步驟U6D處,為特定的數(shù)據(jù)類型分配加權(quán)值。例如,以字母“m”開 頭的公司名出現(xiàn)的頻率要高于以字母“ζ”開頭的公司名。則加權(quán)算法可連同確定性的函數(shù) 一起被用于模擬總體中公司名的實際分布。結(jié)合參見圖4和圖6,在數(shù)據(jù)結(jié)構(gòu)400的“公司” 數(shù)據(jù)類型字段中以字母“m”開頭的公司出現(xiàn)的頻率要高于以字母“ζ”開頭的公司。類似地, 在圖6中數(shù)據(jù)結(jié)構(gòu)600的“公司”數(shù)據(jù)類型字段中,名字以字母“m”開頭的公司和名字以字 母“ζ”開頭的公司的出現(xiàn)頻率也與上述相同或類似。如圖8所示,將給予其他的數(shù)據(jù)字段 類型類似的加權(quán)值。加權(quán)值814可被分配給性別810、年齡812、姓和名816以及種族818。再次參見圖7,方法116在步驟116E處繼續(xù),其中檢索數(shù)據(jù)串300的一部分并在步 驟116F處將其映射給參考數(shù)據(jù)結(jié)構(gòu)中的值。隨后在步驟116G處,就利用來自參考數(shù)據(jù)結(jié) 構(gòu)的映射值生成合成數(shù)據(jù)結(jié)構(gòu)。雖然在一個實施例中的參考數(shù)據(jù)結(jié)構(gòu)可以包括了包含在期 望被擾亂的數(shù)據(jù)結(jié)構(gòu)內(nèi)的所有數(shù)據(jù)值和數(shù)據(jù)類型,但是其他實施例可以包括若干參考數(shù)據(jù) 結(jié)構(gòu),各自用于包含在期望被擾亂的數(shù)據(jù)結(jié)構(gòu)內(nèi)的每一數(shù)據(jù)類型。本發(fā)明的某些實施例可利用加權(quán)算法來精確再現(xiàn)總體中的數(shù)據(jù)類型分布。對加權(quán) 算法的使用依賴于在參考數(shù)據(jù)結(jié)構(gòu)內(nèi)被擾亂數(shù)據(jù)的期望精確度或者所述分布的精確度。已參考特定的實施例描述了本發(fā)明,這些實施例僅出于示意性而非限制性的目 的。本領(lǐng)域普通技術(shù)人員顯而易見的是可選實施例沒有背離本發(fā)明的范圍。由于本發(fā)明的 特性使得許多可選實施例存在但未包括在本說明中。熟練的程序員可以開發(fā)用于實現(xiàn)前述 改進(jìn)的可選方法而不背離本發(fā)明的范圍。應(yīng)該理解的是可以不參考其他的特性和子組合而 利用特定的特性和子組合并仍被認(rèn)為位于本權(quán)利要求的范圍之內(nèi)。在各附圖中列出的步驟 不必以特定的次序描述。前述流程圖中的步驟并非都是必須的步驟。
權(quán)利要求
1.一種數(shù)據(jù)擾亂的方法,包括對期望其擾亂的第一數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作,其中數(shù)據(jù)擾亂包括用確定性地生成的能夠反 映數(shù)據(jù)結(jié)構(gòu)中數(shù)據(jù)值的分布的偽隨機數(shù)據(jù)值來替換數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)值;基于所述第一數(shù)據(jù)結(jié)構(gòu)的一部分創(chuàng)建數(shù)據(jù)串,所述第一數(shù)據(jù)結(jié)構(gòu)包括一行或多行以及 一列或多列的數(shù)據(jù)值;基于所述數(shù)據(jù)串,從至少一個第三數(shù)據(jù)結(jié)構(gòu)中確定性地生成第二數(shù)據(jù)結(jié)構(gòu),(1)其中所述第二和至少一個第三數(shù)據(jù)結(jié)構(gòu)包括一行或多行以及一列或多列的數(shù)據(jù) 值,并且(2)在所述第二和至少一個第三數(shù)據(jù)結(jié)構(gòu)的一列或多列中的每一列都對應(yīng)于在所述第 一數(shù)據(jù)結(jié)構(gòu)的所述一列或多列的數(shù)據(jù)值類型;以及用所述第二數(shù)據(jù)結(jié)構(gòu)代替所述第一數(shù)據(jù)結(jié)構(gòu)。
2.如權(quán)利要求1所述的方法,其特征在于,所述第一數(shù)據(jù)結(jié)構(gòu)還包括用于所述一行或 多行數(shù)據(jù)值的每一行的標(biāo)識符。
3.如權(quán)利要求2所述的方法,其特征在于,還包括基于所述標(biāo)識符生成所述數(shù)據(jù)串。
4.如權(quán)利要求2所述的方法,其特征在于,還包括把加權(quán)值分配給所述第一數(shù)據(jù)結(jié)構(gòu)的所述一行或多行的每一行中的各個數(shù)據(jù)值類型;以及基于所述第一數(shù)據(jù)結(jié)構(gòu)的所述分配的加權(quán)值,將來自所述至少一個第三數(shù)據(jù)結(jié)構(gòu)的數(shù) 據(jù)值裝入所述第二數(shù)據(jù)結(jié)構(gòu)。
5.如權(quán)利要求4所述的方法,其特征在于,分配加權(quán)值還包括根據(jù)在所述第一數(shù)據(jù)結(jié) 構(gòu)的所述一行或多行的每一行中的所述數(shù)據(jù)值類型的總體中的出現(xiàn)來分配加權(quán)值,使得在 所述第二數(shù)據(jù)結(jié)構(gòu)內(nèi)相應(yīng)的數(shù)據(jù)值與實際總體中所找出的自然模式相匹配。
6.如權(quán)利要求5所述的方法,其特征在于,還包括把所述數(shù)據(jù)串的一部分分配給所述一種或多種數(shù)據(jù)字段類型的每一種;以及 基于所述部分和相應(yīng)的加權(quán)值,在所述至少一個參考數(shù)據(jù)結(jié)構(gòu)內(nèi)定位所述映射值。
7.如權(quán)利要求6所述的方法,其特征在于,所述數(shù)據(jù)字段類型對應(yīng)于名和姓、公司名、 性別、種族、支付方法、薪水和年齡。
全文摘要
通過確定性自然數(shù)據(jù)的替換擾亂數(shù)據(jù)結(jié)構(gòu)的方法和系統(tǒng),一種從被擾亂的數(shù)據(jù)結(jié)果創(chuàng)建數(shù)據(jù)結(jié)構(gòu)的方法和系統(tǒng)。首先,該系統(tǒng)對期望被擾亂的第一數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作,并且基于第一數(shù)據(jù)結(jié)構(gòu)的一部分生成一數(shù)據(jù)串。接下來就基于該數(shù)據(jù)串,從第三數(shù)據(jù)結(jié)構(gòu)確定性地生成第二數(shù)據(jù)結(jié)構(gòu),并且用第二數(shù)據(jù)結(jié)構(gòu)代替第一數(shù)據(jù)結(jié)構(gòu)。
文檔編號G06F21/00GK102063595SQ20111003888
公開日2011年5月18日 申請日期2006年1月6日 優(yōu)先權(quán)日2005年2月7日
發(fā)明者J·E·費 申請人:微軟公司