左湘文++胡斌++陳小軍++康鶴
摘 要: 隨著我國氣象技術(shù)裝備的快速發(fā)展,投入業(yè)務(wù)使用的大氣探測(cè)裝備數(shù)量和種類越來越豐富,自動(dòng)化程度越來越高,對(duì)氣象裝備信息的高效管理也提出了更高的要求。氣象裝備信息數(shù)據(jù)庫的建立實(shí)現(xiàn)了氣象裝備信息的數(shù)字化、自動(dòng)化管理。該文介紹和分析了氣象裝備信息數(shù)據(jù)庫的設(shè)計(jì)思路和技術(shù)路線,并詳細(xì)地闡述了氣象裝備信息數(shù)據(jù)庫實(shí)現(xiàn)的關(guān)鍵技術(shù)。
關(guān)鍵詞:氣象裝備信息 數(shù)據(jù)庫 關(guān)鍵技術(shù)分析
中圖分類號(hào):TP31 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2016)12(c)-0004-02
寧夏氣象裝備供應(yīng)、檢定管理、備件管理還停留利用紙質(zhì)管理為主的階段,盡管以前陸續(xù)開發(fā)和引進(jìn)了一些相關(guān)數(shù)據(jù)庫管理系統(tǒng),但應(yīng)用效果不是很好,沒有形成統(tǒng)一的管理模式,不能對(duì)服役儀器、檢定設(shè)備、標(biāo)準(zhǔn)器具等氣象儀器的使用情況進(jìn)行有效管理并對(duì)全區(qū)氣象器材及設(shè)備物資的采購、供應(yīng)和管理進(jìn)行跟蹤,全區(qū)氣象儀器及設(shè)備的科學(xué)化管理水平不高,管理方式較為落后,管理人員工作量大,查詢檢索起來非常困難。更主要的是無法對(duì)各氣象臺(tái)站的裝備進(jìn)行跟蹤管理,致使有的儀器、裝備超期服役發(fā)生。這種情況將直接影響氣象觀測(cè)質(zhì)量。為了解決存在的問題,實(shí)現(xiàn)對(duì)全區(qū)儀器裝備的分布情況、使用狀態(tài)、歷史沿革檔案、計(jì)量檢定、運(yùn)行狀況、維修經(jīng)驗(yàn)、物流態(tài)勢(shì)、備份儀器等內(nèi)容進(jìn)行自動(dòng)化管理,開發(fā)適于氣象裝備管理業(yè)務(wù)需要的氣象裝備信息數(shù)據(jù)庫管理系統(tǒng)是十分必要和勢(shì)在必行的。
1 系統(tǒng)設(shè)計(jì)和技術(shù)路線
各類氣象裝備的分類標(biāo)準(zhǔn)和信息規(guī)范化方案:是氣象裝備信息數(shù)據(jù)庫建設(shè)的關(guān)鍵,在查閱國家氣象局有關(guān)氣象裝備的分類標(biāo)準(zhǔn)的基礎(chǔ)上,邀請(qǐng)各方面的專家組成技術(shù)小組,根據(jù)國家氣象局的分類標(biāo)準(zhǔn)和實(shí)際應(yīng)用分類方法,確立統(tǒng)一的氣象裝備分類標(biāo)準(zhǔn)和信息規(guī)范化方案。
氣象裝備信息數(shù)據(jù)庫設(shè)計(jì):通過征求氣象裝備管理人員、氣象站觀測(cè)員等多方面的意見,在用戶應(yīng)用需求分析的基礎(chǔ)上,以大型數(shù)據(jù)庫系統(tǒng)MS SQL Server為底層數(shù)據(jù)庫管理系統(tǒng)和存儲(chǔ)模式,建立標(biāo)準(zhǔn)統(tǒng)一、規(guī)范、信息完整的氣象裝備信息數(shù)據(jù)庫。要實(shí)現(xiàn)MS SQL Server管理數(shù)據(jù)庫的運(yùn)行和控制(包括數(shù)據(jù)安全控制、數(shù)據(jù)完整性控制、多用戶環(huán)境的并發(fā)控制等)、用戶管理(用戶定義、訪問權(quán)限定義等)和數(shù)據(jù)通信,氣象裝備信息數(shù)據(jù)庫管理系統(tǒng)則負(fù)責(zé)數(shù)據(jù)庫的操縱(數(shù)庫數(shù)據(jù)的查詢、插入、更新和刪除等操作)、數(shù)據(jù)庫維護(hù)(包括數(shù)據(jù)庫的載入、轉(zhuǎn)儲(chǔ)、恢復(fù)和數(shù)據(jù)字典的維護(hù)等)和數(shù)據(jù)庫的定義。
建立氣象裝備信息數(shù)據(jù)庫管理系統(tǒng):采用原型化開發(fā)方案,在ASP.NET平臺(tái)下,利用腳本語言開發(fā)數(shù)據(jù)庫管理系統(tǒng),實(shí)現(xiàn)對(duì)數(shù)據(jù)庫數(shù)據(jù)的查詢、編輯等基本操縱功能及氣象信息主干網(wǎng)中氣象裝備信息數(shù)據(jù)的自動(dòng)收集和數(shù)據(jù)庫自動(dòng)更新功能,數(shù)據(jù)庫數(shù)據(jù)的載入、轉(zhuǎn)儲(chǔ)、恢復(fù)和數(shù)據(jù)字典的維護(hù)功能等。采用SQL Server建立與氣象裝備信息數(shù)據(jù)庫的連接,保持管理系統(tǒng)與數(shù)據(jù)庫之間的獨(dú)立性。
2 關(guān)鍵技術(shù)分析
2.1 數(shù)據(jù)庫多表查詢
系統(tǒng)在對(duì)數(shù)據(jù)庫操作時(shí)會(huì)存在許多需要多表查詢的情況,如在出入庫單查詢中就涉及到出入庫單的信息表要和出入庫明細(xì)表聯(lián)合顯示的問題,查詢的方法有很多,在這里選用了內(nèi)聯(lián)查詢法和外聯(lián)查詢法,連接查詢?cè)跀?shù)據(jù)量不多的情況下(測(cè)試10萬行數(shù)據(jù)一下)效率要比子查詢高得多。聯(lián)系該次開發(fā)數(shù)據(jù)量比較小的實(shí)際情況,選用聯(lián)接查詢方法。
下面是實(shí)現(xiàn)將存有備件相關(guān)信息的多個(gè)表連接顯示的代碼(VB語言):
Sub bindgrid(ByVal a As Integer)
‘綁定數(shù)據(jù)庫
Cnn = New SqlConnection("server=localhost;uid=sa;pwd=sa;database=infortae")
Cnn.Open()
‘根據(jù)變量a的取值來選擇要執(zhí)行的SQL語句
Select Case a
Case 1
sql = "select equipnar.E_ID, equipnar.E_ID,equipnar.E_stor,equipnar.E_outn,equipnar.E_buti,equipnar.E_prti,station.name,atteqip.eqan,equipnar.E_mafa,equipnar.E_mode,equipnar.E_tsur from "
sql += "equipnar inner join atteqip on left(equipnar.E_ID,9) = atteqip.codi inner join station on station.id=equipnar.E_stor where left(equipnar.E_ID,9)='" & Trim(DropDownList1.SelectedValue) & "' and equipnar.E_stor='" & str3 & "' and equipnar.E_cond='1'"
End Select
cmd = New SqlCommand(sql, Cnn)
dap = New SqlDataAdapter(cmd)
dat = New DataSet
dap.Fill(dat, "mytable")
‘綁定數(shù)據(jù)
DataGrid1.DataSource = dat.Tables("mytable")
DataGrid1.DataBind()
Cnn.Close()
‘formatstring()是格式化方法,用來格式化DataGrid1顯示的數(shù)據(jù)
formatstring()
End Sub
2.2 圖片的存儲(chǔ)
在臺(tái)站信息存儲(chǔ)中需要存儲(chǔ)每一個(gè)臺(tái)站的圖片,因?yàn)樾枰鎯?chǔ)的圖片不多,所以考慮將圖片轉(zhuǎn)換為二進(jìn)制流存入數(shù)據(jù)庫,但是經(jīng)過試驗(yàn),發(fā)現(xiàn)即使圖片較少,數(shù)據(jù)庫信息量還是非常大。最后筆者改變了存儲(chǔ)方法,將上傳的圖片重命名后存入指定的文件夾中,把文件的文件名存入數(shù)據(jù)庫,在提取圖片時(shí),根據(jù)數(shù)據(jù)庫中該圖片的信息,然后在指定文件夾內(nèi)檢索,就可得到所需要的圖片,實(shí)現(xiàn)代碼如下:
(C#語言)
public class addimg
{
String theid;
FileUpload Fimg;
Image Fpop;
//構(gòu)造函數(shù)
public addimg(FileUpload FU)
{
Fimg=FU;
}
public addimg(Image IM)
{
Fpop = IM;
}
public String thisid
{
set { theid = value;}
}
//將圖片存入服務(wù)器指定文件夾
public Boolean saveimg(string num)
{
Boolean i = false;
if (theid == "")
{
i = false;
}
else
{
string filepath = Fimg.PostedFile.FileName;
//按順序自動(dòng)生成圖片文件名
string fileex = filepath.Substring(filepath.LastIndexOf(".") + 1).Trim();
string filename = theid + num + "." + "jpg";
string savepath = System.Web.HttpContext.Current.Server.MapPath("../Images/") + filename;
if (fileex == "bmp" || fileex == "jpg" || fileex == "gif" || fileex == "JPGE")
{
Fimg.PostedFile.SaveAs(savepath);
i = true;
}
}
return i;
}
2.3 用DataGrid實(shí)現(xiàn)信息的插入
在出入庫單的制作中涉及到添加整條數(shù)據(jù)信息的操作,經(jīng)過思考和分析,筆者決定在指定操作信息的DataTable中添加一個(gè)空行,然后與DataGrid空間綁定,將信息插入該行后再將DataTable中的所有信息更新到數(shù)據(jù)庫中。
3 結(jié)語
氣象裝備信息數(shù)據(jù)庫建成后,已運(yùn)行1年。運(yùn)行穩(wěn)定可靠。使氣象裝備信息達(dá)到了統(tǒng)一的規(guī)范,實(shí)現(xiàn)了各種設(shè)備的庫存及供應(yīng)情況、維修保障情況、業(yè)務(wù)運(yùn)行情況等統(tǒng)一建庫,進(jìn)行自動(dòng)化、科學(xué)化的管理。有效改善了工作效率,降低管理人員的勞動(dòng)強(qiáng)度,提高裝備信息管理效率。
參考文獻(xiàn)
[1] 韓笑.一種第地市級(jí)氣象數(shù)據(jù)庫的設(shè)計(jì)與應(yīng)用[J].氣象科技,2015,43(6):1053-1059.
[2] 張潔.信息管理中數(shù)據(jù)庫技術(shù)應(yīng)用分析[J].電腦知識(shí)與技術(shù),2016,12(22):13-14.
[3] 曹文勤.電網(wǎng)環(huán)境監(jiān)測(cè)數(shù)據(jù)庫系統(tǒng)的設(shè)計(jì)與應(yīng)用[J].科技資訊,2015(4):4-6,8.