一種基於SQLite內存數據庫的監控係統設計與實現
應用技術
作者:何雲 周雅雲 謝明軍
[摘 要]隨著工廠對電氣係統運行及管理要求的不斷提高,迫切需要一套簡潔高效的電氣監控係統。本文提出了利用Qt作為監控係統的軟件開發平台,采用SQLite作為係統的內存數據庫,極大減輕了係統在實時數據庫處理方麵的工作量,而且利用成熟的技術提高了係統的可靠性。同時由於SQLite數據庫可以被多個進程同時訪問,係統中的各個模塊都被設計成獨立的進程,模塊之間的耦合更小,使得係統的運行更加穩定。
[關鍵詞]SQLite,;內存數據庫; Qt插件;電氣監控係統
中圖分類號:TP274+.2 文獻標識碼:A 文章編號:1009-914X(2014)34-0211-01
引言
電氣係統是工廠持續生產的重要保證,為了提高電氣係統運行及管理水平,迫切需要采用先進的計算機信息技術,開發一套簡潔高效的電氣監控係統。本文提出了利用SQLite作為監控係統的實時數據庫和係統數據配置庫、利用Qt插件開發通訊規約模塊、利用Qt Script模塊設計報表計算、開發了一套高效的跨平台監控係統。
1 SQLite介紹
SQLite是一個開源的嵌入式關係數據庫,在2000年由D. Richard Hipp發布。SQLite可以減少應用程序對數據管理的開銷,它的可移植性好,容易使用,占用空間小很小,高效而且可靠,因此不少應用程序都采用SQLite來管理和組織數據。
未經過加密的SQLite數據庫文件可以在不同的平台上使用,SQLite'安裝所占用的空間非常小,運行時占用的內存很小,而且生成的數據庫也更小。SQLite支持大部分的SQL92標準,支持命名和未命名的參數以UTF-8和UTF-16編碼通過優化的管道傳入SQLite內核。同時SQLite的源代碼是公開的,無論是個人還是商業應用都沒有任何的協議約束。
2 SQLite數據庫性能分析
SQLite數據庫同時支持文件和內存兩種模式。在打開SQLite數據庫的時候,如果使用的數據庫文件名為”:memory:”,數據庫的內容就會始終駐留在內存並且不會產生任何的磁盤文件。由於沒有持久化,該數據庫在當前數據庫連接被關閉後就會立刻消失,因此我們必須定期或在程序關閉的時候將內存數據庫的內容寫入到磁盤中。
SQLite基於內存和文件這兩種方式在查詢操作上表現出來的性能上差別不大,但由於插入、更新和刪除操作需要將內容更新到磁盤,因此它的操作時間比查詢來的要久,而基於內存模式的操作則性能比較出色。
3 電氣監控係統的設計與實現
電氣監控係統的設計與實現由告警模塊、曆史數據查詢模塊、規約管理模塊、主接線圖模塊、邏輯圖模塊、日誌模塊、裝置信息定義模塊、實時數據顯示模塊、算法控製模塊和數據庫模塊組成。其中數據庫模塊由以下幾個部分組成:實時數據庫、配置數據庫和曆史數據庫這三個模塊組成。