工控系統設計(四)數據庫設計

四、數據庫設計

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)可以選擇被刪除的數據,導入到當前數據表的某個因子數據裏。導入後,該保留數據即會被永久刪除。

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