丁晴
摘 要:以上海公安教育相關(guān)數(shù)據(jù)為研究對(duì)象,介紹上海公安教育訓(xùn)練數(shù)據(jù)分析系統(tǒng)的開發(fā)需求、軟件設(shè)計(jì)及關(guān)鍵技術(shù),提出一種建立統(tǒng)計(jì)中間表、利用矩陣+樹型遍歷算法的技術(shù),可實(shí)現(xiàn)公安教育數(shù)據(jù)分析快速化的目的。
關(guān)鍵詞:公安教育;數(shù)據(jù)分析;軟件開發(fā);大數(shù)據(jù)
中圖分類號(hào):TP274+.2 文獻(xiàn)標(biāo)識(shí)碼:B
1 引言
隨著信息技術(shù)的飛速發(fā)展和網(wǎng)絡(luò)應(yīng)用的不斷創(chuàng)新,公安信息化進(jìn)入了大數(shù)據(jù)時(shí)代。當(dāng)前,公安工作的信息化應(yīng)用系統(tǒng)每天產(chǎn)生并長(zhǎng)期保存著大量數(shù)據(jù)[1],如案事件數(shù)據(jù)、人口數(shù)據(jù)、車輛數(shù)據(jù)、出入境數(shù)據(jù)等。同樣,公安教育信息化的應(yīng)用系統(tǒng)中也存在著不斷增加的業(yè)務(wù)數(shù)據(jù),如學(xué)員數(shù)據(jù)、師資數(shù)據(jù)、課程數(shù)據(jù)、教學(xué)場(chǎng)館數(shù)據(jù)、一卡通數(shù)據(jù)等。本文以上海公安教育相關(guān)數(shù)據(jù)為研究對(duì)象,提出一種建立統(tǒng)計(jì)中間表、利用矩陣+樹型遍歷算法的技術(shù),可實(shí)現(xiàn)公安教育大數(shù)據(jù)分析快速化的目的。
2 公安教育數(shù)據(jù)分析軟件的需求
公安院校不同于社會(huì)上的普通高校,存在全日制學(xué)歷教育和短期職后培訓(xùn)并存的現(xiàn)象,教務(wù)處排課一般是一星期一課表,這使得教務(wù)處排課的工作量和復(fù)雜度十分巨大,且排課系統(tǒng)出現(xiàn)了許多特殊需求。有時(shí)一個(gè)班級(jí)需要拆分開同時(shí)上不同的課程,如某一個(gè)班級(jí)在同一課時(shí)之中,有持槍證的學(xué)員上《警務(wù)射擊》課、無持槍證的學(xué)員上《查緝戰(zhàn)術(shù)》課;有時(shí)多個(gè)教官可以同時(shí)為同一班級(jí)上同一門課程,如《道口布控》課程通常是由多個(gè)教官以角色扮演的方式合作授課。
2.1 技術(shù)難點(diǎn)
由于公安院校教務(wù)管理的復(fù)雜性和特殊性,使得在排課系統(tǒng)的課表數(shù)據(jù)中“課程”“地點(diǎn)”和“師資”等字段可能包含了多個(gè)獨(dú)立的有用數(shù)據(jù),從而使課表數(shù)據(jù)成為一個(gè)非標(biāo)準(zhǔn)的結(jié)構(gòu)化數(shù)據(jù)。因此,如何從這個(gè)非標(biāo)準(zhǔn)的結(jié)構(gòu)化課表數(shù)據(jù)中提取出“課程”“地點(diǎn)”和“師資”等數(shù)據(jù)用于數(shù)據(jù)分析,成為公安教育數(shù)據(jù)分析的一個(gè)技術(shù)難點(diǎn)。一個(gè)典型的課表數(shù)據(jù)如表1所示。
2.2 用戶角色
上海公安教育訓(xùn)練數(shù)據(jù)分析系統(tǒng)以B/S(瀏覽器/服務(wù)器)方式運(yùn)行在公安網(wǎng)上,軟件部署在Windows Server 2008/2012服務(wù)器上,用戶通過客戶端瀏覽器操作軟件。該軟件的用戶角色包括領(lǐng)導(dǎo)、操作員和管理員三種:
(1)領(lǐng)導(dǎo),可查閱全部統(tǒng)計(jì)分析數(shù)據(jù)及圖表。
(2)操作員,可查閱部分統(tǒng)計(jì)分析數(shù)據(jù)及圖表,可進(jìn)行部分統(tǒng)計(jì)操作。
(3)管理員,具有本系統(tǒng)的所有管理權(quán)限。
2.3 功能需求
上海公安教育訓(xùn)練數(shù)據(jù)分析系統(tǒng)包括六大功能模塊,其功能需求如表2所示。
2.4 性能需求
上海公安教育訓(xùn)練數(shù)據(jù)分析系統(tǒng)具有較高性能,操作快捷,操作響應(yīng)時(shí)間在7秒以內(nèi),對(duì)常用統(tǒng)計(jì)應(yīng)在3分鐘內(nèi)展示出結(jié)果。要求服務(wù)器運(yùn)行穩(wěn)定、安全可靠,不同用戶角色具有不同的操作權(quán)限,用戶不能越權(quán)操作。
3 公安教育數(shù)據(jù)分析軟件的設(shè)計(jì)
3.1 架構(gòu)設(shè)計(jì)
上海公安教育訓(xùn)練數(shù)據(jù)分析系統(tǒng)采用三層B/S(瀏覽器/服務(wù)器)架構(gòu)設(shè)計(jì),即客戶端瀏覽器層、Web服務(wù)層、數(shù)據(jù)庫層,如圖1所示。服務(wù)器的操作系統(tǒng)環(huán)境是Windows Server 2008/2012,客戶端瀏覽器的品牌種類不限。
本系統(tǒng)可以訪問學(xué)員數(shù)據(jù)庫、師資數(shù)據(jù)庫、課程數(shù)據(jù)庫、教學(xué)場(chǎng)館數(shù)據(jù)庫、一卡通數(shù)據(jù)庫等外部數(shù)據(jù)庫,但只有數(shù)據(jù)讀取權(quán)限、沒有修改權(quán)限,該系統(tǒng)可以將源數(shù)據(jù)庫中的記錄導(dǎo)入到本系統(tǒng)的數(shù)據(jù)庫中。
本系統(tǒng)對(duì)于內(nèi)部六大功能模塊的用戶訪問權(quán)限,提供了內(nèi)部數(shù)據(jù)訪問審計(jì)策略,系統(tǒng)能夠根據(jù)用戶登錄的信息識(shí)別用戶角色,然后根據(jù)不同用戶角色賦予相應(yīng)的訪問權(quán)限。
為了便于快速統(tǒng)計(jì)分析,本系統(tǒng)還設(shè)計(jì)了統(tǒng)計(jì)中間表,位于數(shù)據(jù)庫層,用于臨時(shí)從學(xué)員數(shù)據(jù)庫、師資數(shù)據(jù)庫、課程數(shù)據(jù)庫、教學(xué)場(chǎng)館數(shù)據(jù)庫、一卡通數(shù)據(jù)庫等匯總數(shù)據(jù),提高統(tǒng)計(jì)效率。
3.2 數(shù)據(jù)庫設(shè)計(jì)
本系統(tǒng)的數(shù)據(jù)庫中建立Table表。
Users: 用戶信息表(用戶名、姓名、角色、所在部門等)。
Codes:各表數(shù)據(jù)的代碼及對(duì)應(yīng)名稱表。
FieldName: 字段英文名稱及中文翻譯表。
Fx_xy:學(xué)員數(shù)據(jù)分析項(xiàng)及分析結(jié)果表。
Fx_sz:師資數(shù)據(jù)分析項(xiàng)及分析結(jié)果表。
Fx_kc:課程數(shù)據(jù)分析項(xiàng)及分析結(jié)果表。
Fx_cg:教學(xué)場(chǎng)館數(shù)據(jù)分析項(xiàng)及分析結(jié)果表。
Fx_ykt:一卡通數(shù)據(jù)分析項(xiàng)及分析結(jié)果表。
Fx_zh:綜合輔助決策分析項(xiàng)及分析結(jié)果表。
4 公安教育數(shù)據(jù)分析軟件的關(guān)鍵技術(shù)
一個(gè)數(shù)據(jù)分析過程往往需要訪問多個(gè)數(shù)據(jù)庫,耗時(shí)會(huì)很長(zhǎng)。為了實(shí)現(xiàn)分析過程快速化,需要優(yōu)化設(shè)計(jì)。通過建立統(tǒng)計(jì)中間表、利用矩陣+樹型遍歷算法,可實(shí)現(xiàn)數(shù)據(jù)分析快速化的目的[2]。
4.1 建立統(tǒng)計(jì)中間表
公安教育數(shù)據(jù)分析一般要涉及多個(gè)數(shù)據(jù)庫、多個(gè)數(shù)據(jù)表。如果數(shù)據(jù)分析軟件同時(shí)訪問多個(gè)數(shù)據(jù)庫,運(yùn)行效率會(huì)很低,對(duì)讀取數(shù)據(jù)進(jìn)行查詢和統(tǒng)計(jì)也會(huì)很慢。通過建立統(tǒng)計(jì)中間表、優(yōu)化遍歷算法,在統(tǒng)計(jì)中間表內(nèi)進(jìn)行查詢和統(tǒng)計(jì),將可以明顯提高數(shù)據(jù)分析的效率。
例如,分析某教師在一段日期范圍內(nèi)的授課信息,建立統(tǒng)計(jì)中間表的主要字段有“教師姓名、身份證號(hào)、所在部門、職稱、授課日期、授課地點(diǎn)、授課班級(jí)、課程名稱、課時(shí)量、對(duì)教師測(cè)評(píng)的學(xué)生滿意度”等,涉及了師資數(shù)據(jù)庫、課表數(shù)據(jù)庫、教學(xué)測(cè)評(píng)數(shù)據(jù)庫等。建立統(tǒng)計(jì)中間表tmpTeaching的SQL語句是:
CREATE TABLE tmpTeaching (
id int identity(1,1) primary key not null, --自增序列
teacherName varchar(20), --教師姓名
teacherID varchar(18), --身份證號(hào)
department varchar(50), --所在部門
professionalRanks varchar(20), --職稱
teachingDate datetime, --授課日期
teachingSite varchar(50) --授課地點(diǎn)
teachingClass varchar(50),--授課班級(jí)
courseName varchar(50),--課程名稱
teachingHours int,--課時(shí)量
studentSatisfaction int,--對(duì)教師測(cè)評(píng)的學(xué)生滿意度)。
4.2 矩陣+樹型遍歷算法
把課表數(shù)據(jù)中具有實(shí)際意義的最小數(shù)據(jù)單元稱為原子數(shù)據(jù),如師資數(shù)據(jù)“沈琪;趙銘,周曉峰”可分解為“沈琪”“趙銘”“周曉峰”三個(gè)原子數(shù)據(jù)。因?yàn)檎n表數(shù)據(jù)是一個(gè)非標(biāo)準(zhǔn)的結(jié)構(gòu)化數(shù)據(jù),所以從中提取出“課程”“地點(diǎn)”和“師資”等原子數(shù)據(jù)首先要解決對(duì)課表數(shù)據(jù)的建模問題。采用矩陣+樹型建模的方法,可以解決對(duì)非標(biāo)準(zhǔn)的結(jié)構(gòu)化課表數(shù)據(jù)的邏輯表示問題[3]。
設(shè)課表中一天的最大課時(shí)數(shù)為M節(jié)(通常M=10)、某一天的課表中有N個(gè)班級(jí),則該天課表最多包含M*N個(gè)單元格,并且每個(gè)單元格都包含了“課程”“地點(diǎn)”“師資”等數(shù)據(jù);如果有單元格合并,則合并單元格中的非首格數(shù)據(jù)為空。以每個(gè)單元格為根節(jié)點(diǎn),然后對(duì)單元格中數(shù)據(jù)進(jìn)行樹型建模。當(dāng)班級(jí)i(1≤i≤N)在第j(1≤i≤M)節(jié)課上課時(shí),單元格ij的建模方法是:以單元格為樹根,以課程名稱為第一層子節(jié)點(diǎn),每個(gè)課程節(jié)點(diǎn)的左邊第一個(gè)子節(jié)點(diǎn)是上課地點(diǎn),其余的子節(jié)點(diǎn)是師資姓名。課表數(shù)據(jù)的矩陣+樹型建模如圖2所示。
把某一天的課表可以看成是一個(gè)N行M列的矩陣,利用“矩陣+樹型遍歷”算法,以多重循環(huán)方式,遍歷課表數(shù)據(jù)中的所有單元格及其生成樹[4],則可從中提取出“課程”“地點(diǎn)”和“師資”等原子數(shù)據(jù)。該算法的PHP程序代碼結(jié)構(gòu)如下:
for (int i=1;i<=n;i++) //行遍歷開始,n為班級(jí)數(shù)
{ for (int j=1;j<=M;j++) //列遍歷開始,M為一天最大課時(shí)數(shù)
{ for (int k=1;k<=d;k++) //樹遍歷開始,d為樹節(jié)點(diǎn)數(shù)
{ varchar atomicData = get_ Atomic(theDate,i,j); //獲取單元格中原子數(shù)據(jù)
insert_tmpTeaching (atomicData); //將單元格原子數(shù)據(jù)存入統(tǒng)計(jì)中間表
} //樹遍歷結(jié)束
} //列遍歷結(jié)束
} //行遍歷結(jié)束
4.3 公安教育數(shù)據(jù)分析的四個(gè)步驟
公安教育數(shù)據(jù)分析可分為四個(gè)步驟:數(shù)據(jù)采集、預(yù)處理、統(tǒng)計(jì)分析和數(shù)據(jù)挖掘[5]。
第一步數(shù)據(jù)采集,新建一個(gè)數(shù)據(jù)分析數(shù)據(jù)庫,然后將學(xué)員數(shù)據(jù)庫、師資數(shù)據(jù)庫、課程數(shù)據(jù)庫、教學(xué)場(chǎng)館數(shù)據(jù)庫、一卡通數(shù)據(jù)庫的相關(guān)表一次性導(dǎo)入到該數(shù)據(jù)庫中。
第二步預(yù)處理,把一些無用的數(shù)據(jù)清洗掉,糾正不完整的數(shù)據(jù),去除重復(fù)數(shù)據(jù),將相關(guān)數(shù)據(jù)結(jié)合起來統(tǒng)一存儲(chǔ),并作關(guān)聯(lián)、標(biāo)記和集中保存。
第三步統(tǒng)計(jì)分析,根據(jù)分析需求在分析任務(wù)日志表中錄入相關(guān)信息,確定源數(shù)據(jù)范圍,運(yùn)用適當(dāng)?shù)臄?shù)理統(tǒng)計(jì)方法和SQL命令語句進(jìn)行統(tǒng)計(jì)和分析,并將統(tǒng)計(jì)和分析的結(jié)果保存于分析任務(wù)日志表中,以備用戶查閱。
第四步數(shù)據(jù)挖掘,進(jìn)行數(shù)據(jù)分類、估計(jì)、聚類、相關(guān)性分組等操作,并對(duì)將來的某項(xiàng)工作進(jìn)行預(yù)測(cè)。例如,預(yù)測(cè)警銜晉升培訓(xùn)開班涉及全局?jǐn)M晉升警銜的人員信息、師資配備情況、教學(xué)場(chǎng)館是否空余、宿舍是否空余等問題,需要訪問全局人事數(shù)據(jù)庫、學(xué)院教務(wù)數(shù)據(jù)庫、后勤數(shù)據(jù)庫等,通過建立統(tǒng)計(jì)中間表、利用“矩陣+樹型遍歷”算法,可以實(shí)現(xiàn)警銜晉升培訓(xùn)預(yù)測(cè)、數(shù)據(jù)快速展示的功能。預(yù)測(cè)2018年全局警銜晉升人員的操作界面如圖3所示。
5 結(jié)束語
上海公安教育訓(xùn)練數(shù)據(jù)分析系統(tǒng)為學(xué)院領(lǐng)導(dǎo)準(zhǔn)確掌握學(xué)員、師資、課程、教學(xué)資源等信息提供服務(wù),也為進(jìn)一步開展公安教育訓(xùn)練改革提供決策輔助,其中運(yùn)用的建立統(tǒng)計(jì)中間表、矩陣+樹型遍歷算法等技術(shù)可為兄弟公安院校開展公安教育數(shù)據(jù)分析工作提供參考。
參考文獻(xiàn)
[1] 余佳韻.ETL在某市公安局政治工作綜合服務(wù)系統(tǒng)中的研究應(yīng)用[D].東華大學(xué), 2016.
[2] 劉長(zhǎng)年.基于面向構(gòu)件的線損“四分”管理模型的設(shè)計(jì)與實(shí)現(xiàn)[D].山東大學(xué), 2012.
[3] 丁鵬程.基于樹型原子模型的管理信息系統(tǒng)建模及一致性研究[D].昆明理工大學(xué), 2013.
[4] 陳思穎.二叉排序樹與最小生成樹的實(shí)現(xiàn)[J].科研, 2016(10):00075-00075.
[5] 吳佳萍,王竹萍,楊歡聳.教育大數(shù)據(jù)的收集、數(shù)據(jù)質(zhì)量分析及數(shù)據(jù)預(yù)處理研究[J].寧波教育學(xué)院學(xué)報(bào), 2016, 18(6):62-65.