工控系统设计(四)数据库设计

四、数据库设计

4.1 数据库选用

考虑SQL Server、MySQL、SQLite这三款数据库。

SQL Server和MySQL从性能来说,没有实质性的差别。SQL Server是收费软件,如果使用免费版,会有一些限制(例如数据库大小、CPU核数等)。

SQLite相对于上述两款数据库,优点是体积小、无需安装。缺点是它没有数据库高级的功能(例如用户管理)。

在选用数据时,考虑几个应用场景:

(1)现场安装越简单越好。对于复杂并且固定的安装,其实可以在厂商出货前,让厂商在工控机上安装好。

(2)实际使用的数据库功能都是比较基础的。

综合上述的分析,推荐采用SQLite数据库。

4.2 旧数据转移

在采用新的数据库架构时,会遇到旧数据的处理问题。解决办法是制作小工作,从旧的数据库、旧的数据库格式里提取数据,转移到新的数据库架构中。

4.3 数据库备份文件

数据库本身有备份/还原、导出/导入等功能。备份功能是整个数据库的备份,而导出功能得到的是SQL文件。总体来说,这两种方法都不够灵活。在需要备份某个表、某个字段、某个时间段内的数据时,上述的方法难以满足。

我们采用以下的备份/还原方法:

备份:

(1)使用SQL语句查询目标记录。

(2)把目标记录按一定格式存储成文件,保存。

还原:

(1)读取备份文件,根据格式解析其内容,拼接成SQL语句。

(2)插入或更新数据库记录。

备份文件格式如下:

字节数

2

1

1

L

8

内容

文件头

版本

因子名长度L

设备名

起始时间

字节数

8

4

8*N

 

 

内容

结束时间

记录条数N

记录数据

 

 

4.4 每日备份

在突然断电、系统异常等情况下,数据库会出现损坏的情况。考虑到数据的安全性,需要每日备份,备份内容为当日产生的新数据。

如果有条件,备份内容应跟原始数据库放在不同的硬盘中,或者可以上传到中心服务器。

4.5 设备采集数据存储

在一台工控机上,连接了若干台分析仪,而每台分析仪,又有若干需要存储到数据库的因子。其存放方法如下:

(1)采集数据统一存放在一个表中。

(2)数据表的第一个字段是采集时间,除此之外,其他字段都是动态的。

(3)对于ID为n的因子,其在数据库中存放的字段名为Vn,例如ID为13的因子,其数据字段为V13。

(4)数据格式统一为双精度浮点数。

(5)在因子创建时,字段同时被创建。

(6)在因子被删除时,字段同时被清理。为保证数据的安全性,所有删除操作,原数据都会被保存在特定的地方。

(7)可以选择被删除的数据,导入到当前数据表的某个因子数据里。导入后,该保留数据即会被永久删除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章