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