田富國 黃 靜
(泉州經(jīng)貿(mào)學院, 福建 泉州 362411)
?
消防安全管理系統(tǒng)消防檔案管理的設(shè)計與實現(xiàn)
田富國 黃 靜
(泉州經(jīng)貿(mào)學院, 福建 泉州 362411)
為將消防檔案資料整合到數(shù)據(jù)庫中進行集中統(tǒng)一管理,提出了3種形式的存儲方案,并優(yōu)選了最佳解決方案,完成了數(shù)據(jù)庫的設(shè)計與自動導(dǎo)入模塊的實現(xiàn)。
客戶機服務(wù)器; 數(shù)據(jù)存儲; 數(shù)據(jù)庫; 數(shù)據(jù)流圖
泉州經(jīng)貿(mào)學院的消防安全管理信息系統(tǒng)是一個數(shù)據(jù)庫管理系統(tǒng),是基于客戶端服務(wù)器設(shè)計的,可供分院消防安全管理部門工作人員共享的一個消防安全數(shù)據(jù)處理平臺。其中,消防檔案管理模塊是該系統(tǒng)中的一個重要模塊,可實現(xiàn)對消防檔案的統(tǒng)一管理。本次研究首先進行了需求分析,然后設(shè)計出數(shù)據(jù)流圖和功能結(jié)構(gòu)圖,完成了數(shù)據(jù)庫的設(shè)計與自動導(dǎo)入模塊的實現(xiàn)。
該模塊要求實現(xiàn)對消防檔案的統(tǒng)一管理。模塊的功能有:
(1) 創(chuàng)建消防檔案,建立一個消防文檔資料的電子檔案,統(tǒng)一存儲在中央服務(wù)器中;
(2) 能夠?qū)崿F(xiàn)對消防文檔資料的修改和刪除;
(3) 具有將消防文檔資料自動導(dǎo)入功能;
(4) 可以對用戶進行權(quán)限設(shè)置,使得不同的用戶具有不同的權(quán)限,不會對檔案數(shù)據(jù)造成破壞;
(5) 可以對消防檔案資料進行權(quán)限設(shè)置,使得不同的用戶具有不同的查看權(quán)限,不會造成重要檔案數(shù)據(jù)泄密;
(6) 應(yīng)具有良好的實用性,界面友好,操作簡單,使用方便;
(7) 應(yīng)具備數(shù)據(jù)的獨立性,在軟硬件環(huán)境發(fā)生變化時,能夠保證數(shù)據(jù)的完整性,確保數(shù)據(jù)的安全遷移[1-3]。
根據(jù)需求分析,繪制消防檔案管理模塊的數(shù)據(jù)流圖[4],見圖1。
圖1 消防檔案管理模型數(shù)據(jù)流圖
根據(jù)需求分析,繪制消防檔案管理模塊功能結(jié)構(gòu)圖,見圖2。
圖2 消防檔案管理模塊功能結(jié)構(gòu)圖
分院現(xiàn)有的消防檔案資料大部分是以文本文檔的形式存儲。針對如何將這些檔案資料高效整合到數(shù)據(jù)庫中進行集中統(tǒng)一管理,提出了3種方案,并優(yōu)選出1種最佳方案。
4.1 以文件形式管理
以文件形式進行管理是指將消防檔案資料進行分類和編號,設(shè)置檔案名,以word文本文檔形式保存各個檔案內(nèi)容,并以文件形式存儲在磁盤固定的路徑下。在數(shù)據(jù)庫中保存檔案編號、檔案類型、建檔時間、建檔人以及存取檔案資料的文件路徑和檔案名稱,其檔案表見表1。
表1 以文件形式管理的檔案表
為了處理檔案資料內(nèi)容顯示問題,在顯示窗口中添加一個OLE控件,并且通過編程實現(xiàn)在OLE控件中瀏覽顯示檔案資料內(nèi)容。
采用文件形式結(jié)合數(shù)據(jù)庫進行管理,檔案資料保存在文本文檔中,而文本文檔保存在固定路徑的磁盤下。在數(shù)據(jù)庫中只保存文件路徑和名稱,可以節(jié)省數(shù)據(jù)空間,避免數(shù)據(jù)庫過分膨脹,可以實現(xiàn)對檔案資料的統(tǒng)一管理,但文件資料必須在一定的目錄下,且同一目錄下文件不能重名,這對文件的管理造成了一定的困難;另外,在OLE控件中瀏覽顯示文件檔案資料時,由于每次都要調(diào)用服務(wù)器程序,所以速度較慢。 故該方案不予考慮。
4.2 以O(shè)LE存儲結(jié)構(gòu)形式管理
采用OLE存儲結(jié)構(gòu)形式管理,要將消防檔案資料進行分類和編號,設(shè)置檔案名,而檔案資料內(nèi)容是以O(shè)LE存儲結(jié)構(gòu)形式存儲在磁盤的一個文件中。在數(shù)據(jù)庫中,保存檔案編號、檔案名、檔案類型、建檔時間、建檔人等信息,其檔案表見表2。
表2 以O(shè)LE存儲結(jié)構(gòu)形式管理的檔案表
采用OLE存儲結(jié)構(gòu)形式結(jié)合數(shù)據(jù)庫進行管理,可以實現(xiàn)對檔案資料的統(tǒng)一管理。把所有的消防檔案資料存儲在一個OLE存儲文件中,管理比較方便,也避免了數(shù)據(jù)庫過分膨脹;并且打開存儲文件后,不需要每次都執(zhí)行服務(wù)器程序來顯示存儲信息,存取速度較快。由于數(shù)據(jù)是保存在本地的一個OLE存儲結(jié)構(gòu)形式的文件中,在單機的情況下以這種方式管理數(shù)據(jù),該方案比較理想。但由于本系統(tǒng)是基于客戶端服務(wù)器的,因此要求網(wǎng)絡(luò)用戶能夠共享數(shù)據(jù)庫中的數(shù)據(jù),而本方案不能解決數(shù)據(jù)的共享問題。
4.3 以image類型字段存儲形式管理
采用該形式管理,檔案資料內(nèi)容是以image類型字段存儲在數(shù)據(jù)庫中。在數(shù)據(jù)庫中,同時保存檔案編號、檔案名、檔案類型、建檔時間、建檔人等信息,其檔案表見表3。
表3 以image類型字段存儲形式管理的檔案表
檔案資料內(nèi)容以image類型字段形式存儲,可以很方便地實現(xiàn)對檔案資料的統(tǒng)一管理,并且將數(shù)據(jù)庫存儲在網(wǎng)絡(luò)服務(wù)器上,實現(xiàn)對數(shù)據(jù)的共享。 本系統(tǒng)是基于客戶端服務(wù)器設(shè)計的,要求實現(xiàn)數(shù)據(jù)的共享,故采用此方案。
客戶機分布在不同地方,數(shù)據(jù)庫服務(wù)器運行在主機上,各個客戶機上的客戶端應(yīng)用程序通過SQL語句訪問服務(wù)器上數(shù)據(jù)庫中的數(shù)據(jù)。數(shù)據(jù)庫服務(wù)器選擇Sysbase公司的Adaptive Server Anywhere 8。
5.1 數(shù)據(jù)庫表的設(shè)計
根據(jù)需求分析及客戶端要實現(xiàn)的功能模塊,設(shè)計了數(shù)據(jù)庫表。
(1) 檔案表(archive):參見表3。檔案訪問權(quán)限的設(shè)置:權(quán)限為0,為最高級別,僅供系統(tǒng)管理員、消防主管、消防檔案管理員查看,不允許消防設(shè)施管理員和一般用戶查看;權(quán)限為1,為中級別,可供系統(tǒng)管理員、消防主管、消防檔案管理員和消防設(shè)施管理員查看,不允許一般用戶查看;權(quán)限為2,為低級別,允許所有用戶查看。
(2) 用戶表(usertable):參見表4。用戶表權(quán)限的設(shè)置:權(quán)限(authority)為0,表示系統(tǒng)管理員;權(quán)限為1,表示消防主管;權(quán)限為2,表示消防檔案管理員;權(quán)限為3,表示消防設(shè)施管理員;權(quán)限為4,表示一般用戶。消防檔案管理員不僅對檔案有查看的權(quán)限,而且對檔案有錄入和修改的權(quán)限,其他用戶只有查看檔案的權(quán)限。權(quán)限允許(permission)為0,表示允許該用戶使用系統(tǒng);權(quán)限允許為其他,表示該用戶還未被允許使用系統(tǒng)。
表4 用戶表
5.2 自動導(dǎo)入模塊的實現(xiàn)
5.2.1 模塊的總體規(guī)劃
自動導(dǎo)入模塊的實現(xiàn)是指將消防文檔資料自動導(dǎo)入到數(shù)據(jù)庫中。在執(zhí)行自動導(dǎo)入程序之前,用戶先對要導(dǎo)入數(shù)據(jù)庫的文檔資料進行分類,建立幾個以檔案類型命名的文件夾,把分類后的文檔資料按各自歸類放在相應(yīng)的文件夾中;然后,執(zhí)行自動導(dǎo)入程序,將文檔資料從文件夾中自動導(dǎo)入到數(shù)據(jù)庫中。
5.2.2 導(dǎo)入數(shù)據(jù)庫函數(shù)的實現(xiàn)
程序中設(shè)計了一個自定義的局部函數(shù)f_intoDB,實現(xiàn)將單個文件導(dǎo)入數(shù)據(jù)庫。調(diào)用函數(shù)f_intoDB的程序傳遞3個參數(shù)給函數(shù)f_intoDB。調(diào)用的形式為:f_intoDB(filename,s_type,filepath),其中 3個參數(shù)filename,s_type,filepath分別為文件名、文件類型和文件路徑[5]。局部函數(shù)f_intoDB代碼實現(xiàn)如下:
string bh,mc,nx,wz,bz,jdr
integer qx
date d
long ll_id
blob nl
bh=""
mc=s_filename
nx=s_type
d=today()
wz=""
qx=2
jdr="自動導(dǎo)入"
bz=""
insert into
archive(number,name,content,type,setup,place,accessauthority,person,remarks)
values(:bh,:mc,:nl,:nx,:d,:wz,:qx,:jdr,:bz);
select max(id) into :ll_id from archive;
bh=s_type+string(ll_id)
update archive set number=:bh where id =:ll_id;
ole_1.insertfile(filepath)
sqlca.autocommit = true
nl= ole_1.objectdata
updateblob archive set content=:nl where id =:ll_id;
commit;
sqlca.autocommit = FALSE
5.2.3 模塊的具體實現(xiàn)
建立可視窗口。首先要求用戶輸入消防檔案資料所在的文件夾,用戶提供消防檔案資料所在的文件夾后,按下確定按鈕,程序開始查找文件夾中的所有文件,并依次把文件導(dǎo)入數(shù)據(jù)庫中。確定按鈕的click事件代碼如下:
string directoryname,s_type,filename="",filepath="",filetype="doc"
long hFind, hNext
s_find_data wfd
directoryname=sle_2.text
s_type=sle_3.text
filename=trim(directoryname) + "*." + trim(filetype)
hFind=FindFirstFile(filename,wfd) ∥查找第一個文件
if hfind>0 then
filename=wfd.filename
filepath=directoryname+filename
filename=left(filename,len(filename)-4)
f_intoDB(filename,s_type,filepath) ∥f_intoDB函數(shù)實現(xiàn)將文件導(dǎo)入數(shù)據(jù)庫
do while true
hNext=FindNextFile(hFind,wfd) ∥查找下一個文件
If hNext=0 Then
FindClose(hFind)
Exit
else
filename=wfd.filename
filepath=directoryname+filename
filename=left(filename,len(filename)-4)
f_intoDB(filename,s_type,filepath)
End If
loop
messagebox("成功導(dǎo)入數(shù)據(jù)庫!","您已成功將文件導(dǎo)入數(shù)據(jù)庫中!")
else
messagebox("找不到文件!","文件夾中找不到文件")
end if
close(parent)
程序中wfd 是一個自定義結(jié)構(gòu)類型s_find_data的變量,用來存放文件屬性,其中的一個屬性filename是string類型的變量,用來存放文件名。程序中的f_intoDB函數(shù)是一個自定義的局部函數(shù),實現(xiàn)將文件導(dǎo)入數(shù)據(jù)庫。另外,程序中還用到了3個全局外部函數(shù)FindFirstFile,F(xiàn)indNextFile,F(xiàn)indClose。
消防安全管理信息平臺,是一個供消防安全管理部門工作人員共享的工作平臺。針對如何對消防檔案資料進行集中統(tǒng)一管理的問題,對文件的存儲形式提出了3種方案。優(yōu)選后進行了數(shù)據(jù)設(shè)計與自動導(dǎo)入模塊的實現(xiàn),實現(xiàn)了消防檔案資料的集中統(tǒng)一管理。
[1] 希爾伯沙茨(美).數(shù)據(jù)庫系統(tǒng)概念[M].第6版.北京:機械工業(yè)出版社,2012:146-176.
[2] ULLMAN D J,WIDOM J.數(shù)據(jù)庫系統(tǒng)基礎(chǔ)教程[M].北京:清華大學出版社,1999:286-296.
[3] 董宇,安小米,錢澄,等.信息化視角下國外科技檔案管理研究進展與特點[J].檔案與建設(shè),2014(7):15-19.
[4] 王珊,薩師煊.數(shù)據(jù)庫系統(tǒng)概論[M].第4版.北京:高等教育出版社,2006:205-224.
[5] 陳明,楊勁松.PowerBuilder 8.0高級編程技術(shù)[M].北京:北京希望電子出版社,2002:320-324.
Design and Implementation of the Fire Fighting Archives Management Module in the Fire Safety Management System
TIANFuguoHUANGJing
(Quanzhou Vocational College of Economics and Business, Quanzhou Fujian 362411, China)
In order to unify the management, the fire archives data is integrated into the database. Three forms of storage solutions are put forward, and finally an optimal solution is chosen. And then the database design and automatic import module are completed.
clientserver; data storage; database; data flow chart
2016-06-24
2015年福建省中青年教師教育科研項目“基于CS的消防安全管理信息系統(tǒng)的建設(shè)”(JA15841)
田富國(1974 — ),男,福建三明人,碩士,講師,研究方向為數(shù)據(jù)庫。
TU998;TP311
A
1673-1980(2016)05-0086-04