气象装备信息数据库关键技术分析
2017-04-21左湘文胡斌陈小军康鹤
左湘文++胡斌++陈小军++康鹤
摘 要: 随着我国气象技术装备的快速发展,投入业务使用的大气探测装备数量和种类越来越丰富,自动化程度越来越高,对气象装备信息的高效管理也提出了更高的要求。气象装备信息数据库的建立实现了气象装备信息的数字化、自动化管理。该文介绍和分析了气象装备信息数据库的设计思路和技术路线,并详细地阐述了气象装备信息数据库实现的关键技术。
关键词:气象装备信息 数据库 关键技术分析
中图分类号:TP31 文獻标识码:A 文章编号:1672-3791(2016)12(c)-0004-02
宁夏气象装备供应、检定管理、备件管理还停留利用纸质管理为主的阶段,尽管以前陆续开发和引进了一些相关数据库管理系统,但应用效果不是很好,没有形成统一的管理模式,不能对服役仪器、检定设备、标准器具等气象仪器的使用情况进行有效管理并对全区气象器材及设备物资的采购、供应和管理进行跟踪,全区气象仪器及设备的科学化管理水平不高,管理方式较为落后,管理人员工作量大,查询检索起来非常困难。更主要的是无法对各气象台站的装备进行跟踪管理,致使有的仪器、装备超期服役发生。这种情况将直接影响气象观测质量。为了解决存在的问题,实现对全区仪器装备的分布情况、使用状态、历史沿革档案、计量检定、运行状况、维修经验、物流态势、备份仪器等内容进行自动化管理,开发适于气象装备管理业务需要的气象装备信息数据库管理系统是十分必要和势在必行的。
1 系统设计和技术路线
各类气象装备的分类标准和信息规范化方案:是气象装备信息数据库建设的关键,在查阅国家气象局有关气象装备的分类标准的基础上,邀请各方面的专家组成技术小组,根据国家气象局的分类标准和实际应用分类方法,确立统一的气象装备分类标准和信息规范化方案。
气象装备信息数据库设计:通过征求气象装备管理人员、气象站观测员等多方面的意见,在用户应用需求分析的基础上,以大型数据库系统MS SQL Server为底层数据库管理系统和存储模式,建立标准统一、规范、信息完整的气象装备信息数据库。要实现MS SQL Server管理数据库的运行和控制(包括数据安全控制、数据完整性控制、多用户环境的并发控制等)、用户管理(用户定义、访问权限定义等)和数据通信,气象装备信息数据库管理系统则负责数据库的操纵(数库数据的查询、插入、更新和删除等操作)、数据库维护(包括数据库的载入、转储、恢复和数据字典的维护等)和数据库的定义。
建立气象装备信息数据库管理系统:采用原型化开发方案,在ASP.NET平台下,利用脚本语言开发数据库管理系统,实现对数据库数据的查询、编辑等基本操纵功能及气象信息主干网中气象装备信息数据的自动收集和数据库自动更新功能,数据库数据的载入、转储、恢复和数据字典的维护功能等。采用SQL Server建立与气象装备信息数据库的连接,保持管理系统与数据库之间的独立性。
2 关键技术分析
2.1 数据库多表查询
系统在对数据库操作时会存在许多需要多表查询的情况,如在出入库单查询中就涉及到出入库单的信息表要和出入库明细表联合显示的问题,查询的方法有很多,在这里选用了内联查询法和外联查询法,连接查询在数据量不多的情况下(测试10万行数据一下)效率要比子查询高得多。联系该次开发数据量比较小的实际情况,选用联接查询方法。
下面是实现将存有备件相关信息的多个表连接显示的代码(VB语言):
Sub bindgrid(ByVal a As Integer)
‘绑定数据库
Cnn = New SqlConnection("server=localhost;uid=sa;pwd=sa;database=infortae")
Cnn.Open()
‘根据变量a的取值来选择要执行的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")
‘绑定数据
DataGrid1.DataSource = dat.Tables("mytable")
DataGrid1.DataBind()
Cnn.Close()
‘formatstring()是格式化方法,用来格式化DataGrid1显示的数据
formatstring()
End Sub
2.2 图片的存储
在台站信息存储中需要存储每一个台站的图片,因为需要存储的图片不多,所以考虑将图片转换为二进制流存入数据库,但是经过试验,发现即使图片较少,数据库信息量还是非常大。最后笔者改变了存储方法,将上传的图片重命名后存入指定的文件夾中,把文件的文件名存入数据库,在提取图片时,根据数据库中该图片的信息,然后在指定文件夹内检索,就可得到所需要的图片,实现代码如下:
(C#语言)
public class addimg
{
String theid;
FileUpload Fimg;
Image Fpop;
//构造函数
public addimg(FileUpload FU)
{
Fimg=FU;
}
public addimg(Image IM)
{
Fpop = IM;
}
public String thisid
{
set { theid = value;}
}
//将图片存入服务器指定文件夹
public Boolean saveimg(string num)
{
Boolean i = false;
if (theid == "")
{
i = false;
}
else
{
string filepath = Fimg.PostedFile.FileName;
//按顺序自动生成图片文件名
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实现信息的插入
在出入库单的制作中涉及到添加整条数据信息的操作,经过思考和分析,笔者决定在指定操作信息的DataTable中添加一个空行,然后与DataGrid空间绑定,将信息插入该行后再将DataTable中的所有信息更新到数据库中。
3 结语
气象装备信息数据库建成后,已运行1年。运行稳定可靠。使气象装备信息达到了统一的规范,实现了各种设备的库存及供应情况、维修保障情况、业务运行情况等统一建库,进行自动化、科学化的管理。有效改善了工作效率,降低管理人员的劳动强度,提高装备信息管理效率。
参考文献
[1] 韩笑.一种第地市级气象数据库的设计与应用[J].气象科技,2015,43(6):1053-1059.
[2] 张洁.信息管理中数据库技术应用分析[J].电脑知识与技术,2016,12(22):13-14.
[3] 曹文勤.电网环境监测数据库系统的设计与应用[J].科技资讯,2015(4):4-6,8.