国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

批量數(shù)據(jù)入庫在ASP中篩選重復(fù)的處理方法
——以湘西民族職業(yè)技術(shù)學院新生信息錄入庫為例*

2014-09-06 08:39
關(guān)鍵詞:身份證號源代碼數(shù)據(jù)表

龔 書

(湘西民族職業(yè)技術(shù)學院,湖南 吉首 416000)

批量數(shù)據(jù)入庫在ASP中篩選重復(fù)的處理方法
——以湘西民族職業(yè)技術(shù)學院新生信息錄入庫為例*

龔 書

(湘西民族職業(yè)技術(shù)學院,湖南 吉首 416000)

在建立數(shù)據(jù)庫時,重復(fù)數(shù)據(jù)的判斷對于數(shù)據(jù)庫管理至關(guān)重要,沒有準確關(guān)鍵詞作為對比,重復(fù)數(shù)據(jù)的判斷將變得非常困難.傳統(tǒng)的哈稀技術(shù)、固定分塊技術(shù)、滑動塊技術(shù)、可變分塊技術(shù)和數(shù)據(jù)指紋等對重復(fù)數(shù)據(jù)進行查找與刪除時,占用了大量系統(tǒng)處理時間,且準確性較低.為提高數(shù)據(jù)處理效率,提出了ASP批量數(shù)據(jù)在入庫時的查重篩選方法,實踐驗證了該方法的魯棒性與可靠性,極大地減輕了操作員對數(shù)據(jù)庫管理的繁重工作.

清除重復(fù);數(shù)據(jù)清理;數(shù)據(jù)核對;篩選入庫;數(shù)據(jù)倉庫;數(shù)據(jù)導(dǎo)出

網(wǎng)絡(luò)技術(shù)的高速發(fā)展和應(yīng)用,促使信息技術(shù)的革新與發(fā)展.隨著大批量信息的不斷增加,越來越多的人都在考慮如何共享資源,建立一個大的信息資源庫,“數(shù)據(jù)倉庫”[1]一詞便應(yīng)運而生.由于各種復(fù)雜原因,數(shù)據(jù)源在入庫時的標準不統(tǒng)一、錄入人員的失誤、數(shù)據(jù)屬性值的缺失、不同數(shù)據(jù)源對數(shù)據(jù)值的表示差異等,數(shù)據(jù)源數(shù)據(jù)變得繁雜而多樣,核對后發(fā)現(xiàn)其實許多都是相同或相似數(shù)據(jù)[2-4],對這樣的冗余數(shù)據(jù)必須加以處理之后方可入庫,從而保證數(shù)據(jù)庫的高效性和實用性.文中以某校新生數(shù)據(jù)入庫為例,闡述了重復(fù)ASP批量數(shù)據(jù)的入庫處理方法.

1 數(shù)據(jù)常規(guī)導(dǎo)入方法

新生數(shù)據(jù)采集方式通常采用網(wǎng)站B/S架構(gòu)形式,最初構(gòu)想是錄入人員分層次進行,比如學生、家長、招生人員、教師、管理員等,對每位數(shù)據(jù)采集人員進行權(quán)限等級設(shè)置,各司其職,對自己錄入數(shù)據(jù)可以反復(fù)查詢并修改,管理員可以通過后臺全面核查管理.

正常采集是操作人員登錄網(wǎng)站后進行數(shù)據(jù)錄入,在網(wǎng)頁界面中已經(jīng)實現(xiàn)對新數(shù)據(jù)與庫存數(shù)據(jù)的查重篩選,如果發(fā)現(xiàn)疑似數(shù)據(jù),就立即提醒操作人員核查以防重復(fù)數(shù)據(jù)入庫.具體實施辦法是提取學生姓名作為“指紋”[5-6],并與庫索引進行比較,次關(guān)鍵字為身份證號碼.本應(yīng)該身份證號為首關(guān)鍵字,姓名為次關(guān)鍵字,但在實際操作過程中有近50%以上的學生報名時無法提供身份證號.原因其一是家長不夠重視身份的確認,部分家長在學生初中畢業(yè)后還未辦理戶籍登記;其二是部分學生擁有2個身份證號碼,在辦理新住戶登記時未注銷舊號碼,甚至出現(xiàn)同一人有多個身份證號碼現(xiàn)象;其三是為節(jié)省時間,登記人員省略身份證號碼登記,這樣造成學生身份確認不嚴謹,加大了數(shù)據(jù)核查工作量.針對此類現(xiàn)象,對數(shù)據(jù)源數(shù)據(jù)進行相同或相似性篩選[2-4],篩選后將重復(fù)結(jié)果展示給錄入人員.錄入人員根據(jù)篩查情況進行相應(yīng)處理,這樣避免重復(fù)數(shù)據(jù)入庫,對于查出身份證號完全相同的情形,在提示過后堅決不允許入庫.

該校招生結(jié)構(gòu)主要以地區(qū)招生組為主,70%以上數(shù)據(jù)均來自各招生組.招生工作的特殊性,使得很多時候無法登錄招生網(wǎng)站,無法直接進行數(shù)據(jù)采集.各招生組則采用Excel表自建完成,數(shù)據(jù)來源情況繁雜、參差不齊.為縮短數(shù)據(jù)入庫時間,提高入庫效率,對該數(shù)據(jù)源的處理方法一般采用Excel數(shù)據(jù)表導(dǎo)入形式.

通常的導(dǎo)入數(shù)據(jù)方法為按庫結(jié)構(gòu)建立Excel數(shù)據(jù)表[7],填充數(shù)據(jù)后再導(dǎo)入數(shù)據(jù)庫.源代碼如下:

創(chuàng)建Excel連接驅(qū)動

set StrConnect=CreateObject("ADODB.Connection")

StrConnect.Open "provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Excel&";Extended Properties=Excel 8.0"

創(chuàng)建數(shù)據(jù)對象

Set rs = Server.CreateObject("ADODB.Recordset")

rs.Open "select * from ["&Result&"$] ",StrConnect,2,2

set rssql=server.CreateObject("adodb.recordset")

rssql.Open "select * from "&Result&"",conn,1,3

數(shù)據(jù)入庫

rssql.Open "select * from "&Result&"",conn,1,3

rssql.AddNew

For i = 0 to rs.fields.count-1

if rs(i)<>"" then

rssql(i+1) = rs(i)

end if

next

rssql.Update

2 問題分析

以上代碼導(dǎo)入全表數(shù)據(jù)成功無誤,若遇到數(shù)據(jù)重復(fù),最常用的方法是根據(jù)身份證號碼作為關(guān)鍵字對比排查重復(fù),但實際情況有時會碰到數(shù)據(jù)缺失問題(數(shù)據(jù)屬性值欠缺),如身份證號碼不全或無身份證號碼.據(jù)統(tǒng)計,每年這種情況占50%之多,因此只能根據(jù)姓名及其他屬性信息進行排查(通常采用角度相似性測度匹配算法[7]).具體設(shè)計方案如下:

(1)將判斷重復(fù)首要關(guān)鍵字改為“姓名”,次關(guān)鍵字為“身份證號碼”,其他屬性值一一匹配排查.其具體源代碼如下:

if rs("IDcard")<>"" then ‘如果身份證號字段不為空,查重按姓名和身份證號對比

rssql.Open "select * from "&Result&" where RegName='" & rs("RegName") & "' or IDcard='" & rs("IDcard") & "'",conn,1,3

else ‘如果身份證號字段為空,查重只按姓名對比

rssql.Open "select * from "&Result&" where RegName='" & rs("RegName") & "'",conn,1,3

end if

在導(dǎo)入數(shù)據(jù)時,最先導(dǎo)入的數(shù)據(jù)可以作為特征詞[1],后續(xù)導(dǎo)入的數(shù)據(jù)與特征詞進行相似性比較,這樣可以保障新建庫時首次導(dǎo)入也能消除重復(fù)數(shù)據(jù).

(2)羅列出成功導(dǎo)入信息及失敗導(dǎo)入信息.其具體源代碼如下:

If rssql.eof or request.form("InsertID")<>"" Then '判斷不重復(fù)數(shù)據(jù)或強行導(dǎo)入重復(fù)數(shù)據(jù)

rssql.AddNew

寫入數(shù)據(jù)時,如果“ID”編號為自動,就不要在xls表中加入“ID字段”.導(dǎo)入提交數(shù)據(jù)前先刪除所有記錄,并重置序號,否則導(dǎo)入失敗.篩選重復(fù)后數(shù)據(jù)源導(dǎo)入數(shù)據(jù)庫的代碼如下:

For i = 0 to rs.fields.count-1

if rs(i)<>"" then

rssql(i+1) = rs(i)

end if

next

rssql.Update

TureCount=TureCount+1

response.write "

"

Response.Write "
"

txtFile.WriteLine "


"

Else '判斷重復(fù)數(shù)據(jù)后列出

response.write "


"

FalseInto=FalseInto &"" '失敗記錄號累計

response.write "


"

Response.Write "
"

txtFile.WriteLine ""&year(date())&"年"&month(date())&"月"&day(date())&"日 "&time()&" 導(dǎo)入數(shù)據(jù)




"

導(dǎo)入數(shù)據(jù)后若出現(xiàn)失敗提示(見圖1),則首先確定是否重復(fù),如果確定數(shù)據(jù)沒有重復(fù),那么勾選“確定導(dǎo)入”,如果確定數(shù)據(jù)重復(fù)可不予處理.若需要對庫數(shù)據(jù)加以補充則可勾選“修改”,參照導(dǎo)入數(shù)據(jù)對庫數(shù)據(jù)進行完善.

圖1 導(dǎo)入數(shù)據(jù)后的提示界面

(3)數(shù)據(jù)處理過程.其源代碼如下:

response.Write "

"

response.Write ""

其處理辦法是客戶端提交需要導(dǎo)入的記錄,使用多選框勾選提交,服務(wù)器再進行2次導(dǎo)入,如果遇到記錄數(shù)過多時就記下失敗記錄號進行索引以備后查.其代碼如下:

FalseInto=FalseInto &"" '失敗記錄號累計

Response.Write "

失敗導(dǎo)入記錄號:
Excel公式:=LEFT(B1,LEN(B1)-1)

"

失敗記錄號可以進行頁內(nèi)鏈接跳轉(zhuǎn),點擊表中學生姓名,可以直接跳轉(zhuǎn)至該生信息所在位置,解決頁面信息過長等漏查現(xiàn)象,失敗記錄號可以從頁面中復(fù)制到Excel表中進行導(dǎo)入篩查.

身份證號碼有誤時,可以進行其他字段的自動對比判斷重復(fù),無需人工干預(yù)直接得出重復(fù)結(jié)論.但數(shù)據(jù)來源復(fù)雜會存在以下問題:(1)錯字現(xiàn)象,同音不同字,如“侯源”和“候沅”;(2)報錯的現(xiàn)象,如“張三”和“張小三”;(3)數(shù)據(jù)交錯現(xiàn)象,如A數(shù)據(jù)串到B.諸如此類人為錯誤過多,無法統(tǒng)計或估計,所以只能根據(jù)算法得出的相似度來判斷其是否重復(fù),這樣阻礙了一次性重復(fù)判斷的可能性.導(dǎo)入全過程使用日志記錄以備核查,從而進行2次導(dǎo)入確認數(shù)據(jù)的有效性,導(dǎo)入同時還可以進行數(shù)據(jù)合并操作.

3 數(shù)據(jù)導(dǎo)出

導(dǎo)出數(shù)據(jù)庫數(shù)據(jù)生成Excel數(shù)據(jù)表的源代碼如下[7]:

·創(chuàng)建文件對象

Set fs = server.CreateObject("scripting.filesystemobject")

filename = Server.MapPath("users.xls")

·創(chuàng)建EXCEL文件

set myfile = fs.CreateTextFile(filename,true)

·創(chuàng)建數(shù)據(jù)庫對象

strSql = "select * from "&mAction&""

·導(dǎo)出數(shù)據(jù)

Set rstData =conn.execute(strSql)

if not rstData.EOF and not rstData.BOF then

dim trLine,responsestr

strLine=""

For each x in rstData.fields

strLine = strLine & x.name & chr(9)

Next

myfile.writeline strLine '

Do while Not rstData.EOF

strLine=""

for each x in rstData.Fields

strLine = strLine & x.value & chr(9)

next

myfile.writeline strLine

rstData.MoveNext

loop

end if

rstData.Close

set rstData = nothing

Conn.Close

將全庫數(shù)據(jù)原樣導(dǎo)出成Excel數(shù)據(jù)表,其數(shù)據(jù)類型會發(fā)生改變,如身份證號碼的數(shù)據(jù)類型由字符型“433101199012035431”變成數(shù)值型“4433101199012035000”.解決辦法是將導(dǎo)出數(shù)據(jù)進行類型處理,程序段“strLine = strLine & x.value & chr(9)”改成“strline= strline & "="""&x.value &""""& chr(9)”,在導(dǎo)出的Excel數(shù)據(jù)表中將全部數(shù)據(jù)復(fù)制,選擇性粘貼時選擇“數(shù)值”,即可得到無損數(shù)據(jù).

4 結(jié)語

在全人工處理過程中,通常將多方數(shù)據(jù)源進行合并,由于采集數(shù)據(jù)人員的習慣及環(huán)境因素的限制等因素,造成了數(shù)據(jù)值不準確或缺失,給數(shù)據(jù)后期合并處理帶來了極大的困難.傳統(tǒng)方法是利用Excel高級篩選、Excel函數(shù)“=countif(A:A,A1) ”或Excel2007及以上版本對數(shù)據(jù)進行重復(fù)值的查詢及刪除,但這種做法耗時耗力.采用文中方法導(dǎo)入查重程序進行合并數(shù)據(jù)后,大大縮短合并時間,讓操作人員從繁重的數(shù)據(jù)管理工作中得以解脫.該方法已成功實現(xiàn)大批量數(shù)據(jù)的入庫及核查重復(fù)工作,效率比人工處理提高了85%以上.

[1] 趙 群.消除重復(fù)值數(shù)據(jù)清理方法的研究[J].福建電腦,2006(4):51-52.

[2] 敖 莉,舒繼武,李明強.重復(fù)數(shù)據(jù)刪除技術(shù)[J].軟件學報,2010,21(5):916-929.

[3] 程菊生.重復(fù)數(shù)據(jù)刪除技術(shù)的研究[J].華賽科技,2008(4):8-11.

[4] 顏 軍.重復(fù)數(shù)據(jù)刪除帶來集群架構(gòu)革命[J].計算機世界,2008(24):40-41.

[5] 廖海生,趙躍龍.基于MD5算法的重復(fù)數(shù)據(jù)刪除技術(shù)的研究與改進[J].計算機測量與控制,2010,18(3):635-638.

[6] BOBBARJUNG D R,JAGANNATHAN S,DUBNICKI C.Improving Duplicate Elimi-nation in Storage Systems[J].ACM Trans.On Storage,2006,2(4):424-448.

[7] 王 斌,吳 磊.中文版Excel2003實用教程[M].北京:清華大學出版社,2007.

(責任編輯 陳炳權(quán))

MethodsofDuplicationScreeningforASPMassDataStorage: A Case Study of Enrollment Information Storage in Xiangxi Vocational and Technical College for Nationalities

GONG Shu

(XiangXi Vocational and Technical College For Nationalities,Jishou 416000,Hunan China)

When a database is established,judgment on data duplication is crucial for its administration,which will be difficult without accurate keywords for reference.The commonly used methods-Hash technology,fixed-sized partition detection technology,sliding block technology,content-defined chunking detection technology,and fingerprint data exploitation,require a large amount of processing time for the detection and removal of duplication.This paper describes the ASP mass data storage method and duplication screening method,and verifies the robustness and validity of these methods.It is shown that the heavy workload of database management for operators can be greatly reduced.

duplication removal;data cleaning;data check;screening and storage;data warehouse;data export

1007-2985(2014)06-0038-04

2014-10-29

龔 書(1979—),男,湖南鳳凰人,湘西民族職業(yè)技術(shù)學院講師,主要從事計算機應(yīng)用研究.

TP309

A

10.3969/j.issn.1007-2985.2014.06.010

猜你喜歡
身份證號源代碼數(shù)據(jù)表
基于TXL的源代碼插樁技術(shù)研究
湖北省新冠肺炎疫情數(shù)據(jù)表
老師情
作品賞析(3)
基于列控工程數(shù)據(jù)表建立線路拓撲關(guān)系的研究
軟件源代碼非公知性司法鑒定方法探析
基于語法和語義結(jié)合的源代碼精確搜索方法
揭秘龍湖產(chǎn)品“源代碼”
圖表
《網(wǎng)印工業(yè)》關(guān)于作者投稿同時提供身份證號的通知
永和县| 珠海市| 芜湖县| 梁山县| 枣强县| 灌阳县| 清水河县| 固原市| 固始县| 金平| 济南市| 乌兰浩特市| 香港| 宁南县| 清徐县| 朝阳区| 绥棱县| 肇东市| 苏州市| 海安县| 昔阳县| 应用必备| 托里县| 河源市| 东乌| 邛崃市| 太仆寺旗| 玛曲县| 湖南省| 交城县| 贺州市| 博客| 佛山市| 元朗区| 武川县| 江西省| 揭东县| 六枝特区| 丹寨县| 通山县| 三明市|