左國才 符開耀

摘要:智慧校園建設過程中與高校各類信息系統數據交互頻繁,基礎數據依賴性較強,由于數據沒有及時更新,導致各系統數據庫的數據不一致,本文論述了如何實現教務管理系統中學生信息數據與宿舍門禁控制系統學生數據的實時同步,為宿舍門禁控制系統實時更新學生數據,保證數據的準確性、有效性。
關鍵詞:宿舍門禁控制;教務管理;數據實時同步
中圖分類號:TP391文獻標識碼 A文章編號:2095-2163(2015)06-
Abstract: In the process of construction of the wisdom of the campus and various types of colleges and universities, data exchange frequently happen in kinds of information systems, and has strong dependence on basic data. The situation that data is not changed timely results in inconsistent data of the database system. This paper discusses how to realizereal-time synchronization of student information data between educational administration management system managementand dormitory entrance guard control system, which achieve real-time updatedata for dormitory entrance guard control system, therefore ensures data accuracy and effectiveness.
Keywords: Entrance Control of Dormitory; Educational Administration; Data Synchronization
0引言
實施智慧校園建設是高校信息化發展的必然趨勢,也是高校現代化管理的獨有標志[1]。具體來說,就是構建與完善教學、科研、管理及服務手段方面的現代化。在此整體發展背景需求下,若能自動實現教務系統中關聯門禁控制系統所對應學生信息數據的對接交互,不僅可將研發者們從傳統手工數據的繁瑣窘境中解脫出來,更可為高校推進學生宿舍管理信息化提供現實可行的技術依據,因而也已然成為突破智慧校園發展瓶頸的關鍵所在。
一般情況下,學生宿舍多是通過宿舍管理員執行進出監管,這種方式存在一定的安全隱患,容易因為管控疏漏而發生外來閑雜人員混入等不良事件。因此,學校決策啟用校園宿舍門禁控制系統。學生進入宿舍時,需持校園卡在安裝于宿舍門上的讀卡器上刷卡,經電腦系統確認是本棟宿舍學生后,門鎖自動打開,若并未刷卡或不具開門權限的人員則禁其進入,由此可大大提高宿舍的安全防衛系數。
教務管理系統(學校購買的強智系統)與宿舍門禁控制系統之間存在著現實頻發的學生數據同步、數據交換等信息處理過程,因離校、調整宿舍、調換專業等原因所致,學生數據若不能及時更新到校園卡數據庫中,必將引發學生宿舍管理無法正常開展等問題發生。為了高效合理解決上述問題,本文研究利用數據庫觸發器技術實現教務管理系統與宿舍門禁控制系統中的學生信息的自動同步。
1數據結構分析
1.1 教務管理系統的數據結構
根據教務管理系統功能設計的要求以及功能模塊的劃分,對于教務管理數據庫中學生信息的描述管理,可以列出以下數據項和數據結構:
名稱:學生信息表
表名:Student表
數據來源:新生信息錄入模塊進行錄入。
學生信息表(Student)結構:
S_NO 學號
S_Name 姓名
S_Sex 性別
S_Birth 出生年月
S_Class_id 班級號
S_Entr_date 入學時間
S_Home 家庭地址
S_ID 身份證號碼
S_Dept 系別
1.2 門禁控制系統的數據結構
學生進、出宿舍均要刷卡,僅當具有開門權限時才允許該生進入,沒有卡或未獲開門權限的學生均禁止進入。學生進出宿舍應有詳細記錄,如學生姓名、有效證件號碼、系別、班級號、進入時間和出去時間等。
名稱:基本信息表
表名:CardInfo表
數據來源:辦理校園卡時基本信息錄入模塊進行錄入,學生信息部分由教務管理系統中導入。
基本信息表(CardInfo)結構:
C_ID 有效證件號碼
C_Name 姓名
C_Sex 性別
C_Dept 系別
C_Class_id班級號
C_E-mail 郵箱
C_Beg_date 證件有效起始日期
C_End_date 證件有效截止日期
C_Cert_Flag 狀態標識
教務管理系統數據庫與校園卡數據庫數據同步工作模式如圖1所示。
2數據同步的技術實現
由于教務管理系統和門禁控制系統都是分別獨立定制安裝的, 教務管理系統中數據庫變化較為頻繁,只要有系統中成員進校或離校,數據表軍要改變。為了保證兩個系統數據庫中數據能夠實時同步,本文采用觸發器實現兩個數據庫之間表數據的一致同步,在源數據庫中數據發生變化時,則會及時更新目的數據庫數據。
在此,給出實現步驟,詳述如下:
(1)對兩個服務器之間的數據庫表進行同步,首先要建立鏈接服務器。在EduManaServer上創建連接服務器,以便在 EduManaServer 中操作CamCardServer,實現同步:
exec sp_addlinkedserver 'CamCardServer','','SQLOLEDB','192.168.12.1'
exec sp_addlinkedsrvlogin 'CamCardServer','false',null,'TEST','TEST123'
(2)確保 MSDTC服務帳戶登錄為Network Service 帳戶。在運行對話框中,輸入services.msc后點擊確定。在服務窗口中找到Distributed Transaction Coordinator服務,并檢查登陸名為Network Service。
(3)啟用msdc以允許網絡事務。
點擊開始-管理工具-組件-組件服務-計算機-我的電腦,找到msdtc選項。
(4)更改hosts文件
文件參考如下:
# Copyright (c) 1993-1999 Microsoft Corp.
# source server
# 38.25.63.10 x.acme.com
127.0.0.1 localhost
192.168.8.200 EduManaServer
192.168.12.1 CamCardServer
(5)創建觸發器。代碼如下:
/*--兩個數據庫表數據實時同步--/*
CREATE TRIGGER [dbo].[Trigger_DataSynch] ON [dbo].[Student]
FOR INSERT,UPDATE,DELETE
AS
BEGIN
IF NOT EXISTS(SELECT * FROM deleted)
BEGIN
/*插入*/
INSERT INTO CamCardServer.Test.dbo.CardInfo(C_ID,C_name,C_Sex,C_Class_id,C_Dept)
SELECT S_ID,S_name,S_Sex,S_Class_id,S_Dept FROM inserted
WHERE NOT EXISTS (SELECT TOP 1 * FROM CamCardServer.Test.dbo.CardInfo WHERE inserted.S_ID = CamCardServer.Test.dbo.CardInfo.C_ID)
END
/*刪除*/
ELSE IF NOT EXISTS(SELECT * FROM inserted)
DELETE FROM CamCardServer.Test.dbo.CardInfo
WHERE C_ID IN (SELECT S_ID FROM deleted)
/*更新*/
ELSE
BEGIN
UPDATE CamCardServer.Test.dbo.CardInfo
SET S_ID = inserted.S_ID,
S_name = inserted.S_name,
S_Sex= inserted.S_Sex,
S_Class_id = inserted.S_Class_id,
S_Dept = inserted.S_Dept
FROM inserted
WHERE inserted.S_ID = CamCardServer.Test.dbo.CardInfo.S_ID
AND (inserted.S_name <> CamCardServer.Test.dbo.CardInfo.S_name
OR inserted.S_Sex <> CamCardServer.Test.dbo.CardInfo.S_Sex
OR inserted.S_Class_id <> CamCardServer.Test.dbo.CardInfo.S_Class_id
OR inserted.S_Dept<> CamCardServer.Test.dbo.CardInfo.S_Dept
)
END
END
建立了上述的觸發器,當Student表進行插入、刪除、修改操作時,本地服務器中的CardInfo表也會執行相應的操作,從而實現兩臺服務器間不同數據庫的表進行數據實時同步,最終使得兩個表中的相關數據獲得了完全一致的理想效果。
3 結束語
通過觸發器實時更新目標系統數據庫表的數據,進行系統間數據轉入,門禁系統基本上不需要負擔數據維護, 更不必錄入龐大的學生相關數據,節省了操作時間,提高了工作效率。實踐證明,這種方法簡單方便有效, 適于推廣使用。為我校的智慧校園建設提供了現實基礎,同時更為各信息系統之間數據同步提供了有益參考案例。
參考文獻:
[1] 王益.高校智慧校園中的信息共享與交換研究--以學生信息為例[J].中國教育信息化:高教職教,2013(7):76-78.
[2] 羅林球,孟琦,李曉等.異構數據庫遷移的設計和實現[J].計算機應用研究,2006,23(12):223-228.
[3] 王瑞坤.基于消息驅動的數據交換系統設計[D].武漢:武漢理工大學自動化學院,2007.
[4] 房成萍,馬坤,楊波等.分布式一體化及數據交換平臺的設計與實現[J].濟南大學學報: 自然科學版,2011,25(1): 11-25.
[5] 夏克儉,張瑛,巢群等.XML在智慧校園數據同步平臺中的應用研究.計算機工程與設計,2008,29(2):483-486.
[6] 王玉標,饒錫如,何盼.異構環境下數據庫增量同步更新機制[J].計算機工程與設計,2011,32(3):948-951.