2009-05-27 70 views
3

我必須爲獨特的環境開發一個數據庫。我沒有數據庫設計經驗,可以使用每個人的智慧。物理硬件的數據庫設計

我的團隊正在設計一個物理硬件和數據採集系統的數據庫。我們需要一個存儲所有硬件配置參數的系統,並跟蹤這些參數在用戶更改時的變化。

的設置:

  • 我們有近200檢測器和與每個檢測器相關聯大約40的參數。在這40個參數中,我們預計在實驗過程中只有少數參數會發生變化。與單個檢測器相關的大多數參數都是靜態的。
  • 我們在定時運行中收集本實驗的數據。在這些運行期間,加載到硬件中的參數一定不能改變,儘管我們應該能夠隨時編輯數據庫以準備下一次運行。當前計劃:

    • 數據庫將提供當前參數與上次運行期間使用的參數之間的差異。
    • 在新運行開始時,最新的數據庫更改將加載到硬件中。
    • 用於即將到來的運行的設置必須標有運行編號和當前日期和時間。這是至關重要的。我需要運行實驗設置的歷史記錄。
  • 會有幾個不同的客戶端讀寫數據庫。儘管對數據庫的更改很少,但我不能保證這些更改不會同時發生。

  • 必須是健壯的和不可腐蝕的。實驗系統的配置取決於硬件。數據庫的任何故障都會阻止數據採集,而且我們的時間非常昂貴。數據庫備份?

我目前的計劃是使用sqlite數據庫實現上述要求,但我不確定它是否可以支持我所有的要求。還有其他技術我應該看看嗎?有沒有人做過類似的事情?我願意學習任何技術,只要它是成熟的。

提示和建議是受歡迎的。

謝謝

肖恩


更新1

數據庫訪問

有可讀寫的數據庫3個精簡版應用程序和一個只能讀取的應用程序。

具有寫入權限的應用程序負責設置硬件參數的非重疊子集。具體來說,我們有一個應用程序(其中可能有多個副本)設置高電壓,一個應用程序設置可能在實驗期間改變的硬件參數的剩餘部分,以及一個GUI設置參數的其餘部分這幾乎是靜態的,並且只對數據的正確重建至關重要。

只有讀取權限的程序是我們的數據分析軟件。它需要訪問數據庫中幾乎所有的參數,才能正確地將傳入數據格式化爲我們可以正確分析的內容。到數據庫的連接數應該> 10。

備份

在我們實驗室的另一個設置轉儲每次運行的XML文件。儘管我不認爲xml是合適的,但我打算每次運行都備份系統,以防萬一。

+0

你多久運行實驗?它是每秒幾次,每幾分鐘一次還是每天幾次?你多久更換一次參數?每運行一次,或每運行1000次,或?這些可能會影響數據庫的大小,從而影響實施。 – polyglot 2009-05-28 16:52:56

回答

1

有關設計的一些基本知識;你應該確保你不會刪除任何表中的數據;跟蹤最新的數據(可能是最近更新的日期時間最好的數據);但是,當數據值發生變化時,不要刪除舊數據。啓動運行時,標記每個使用Run ID的表(在另一列中);通過這種方式,您可以保持關於每個設置的完整歷史記錄,並且可以確切地確定在給定運行狀態下使用的狀態。

0

這並不是一個特別大的數據庫。因此,您可能能夠脫身使用Oracle's free database,這將爲您提供各種日誌記錄(不確定是否是實際字詞)和管理的極大靈活性。

在您說「將有幾個不同的客戶端讀取和寫入數據庫」之後,您提到「不可破壞」,這對我來說是一個紅旗。您是否打算創建某種具有此接口的應用程序?還是你計劃通過像TOAD這樣的工具直接訪問數據庫?

爲了保持您的數據完整性,您需要嚴格執行您的權限。我只允許一個(和一個備份)人員具有管理權限,以便能夠在GUI之外進行數據操作(這將使您的生活更輕鬆)。

備份?是的,一點沒錯!你不僅應該做每日,每週和每月備份,你應該做充分和增量。另外,經常測試備份映像以確認它們實際上正在工作。

至於數據結構,我需要在你試圖存儲的內容以及如何訪問它的過程中有更多的細節。但是,從你放什麼在這裏我想說,你需要下面的表格(與開始):

Detectors 
Parameters 
Detector_Parameters 

一些其他注意事項:

因爲你會做這麼多的變化,我建議使用版本控制例如SVN來跟蹤您所有的DDL等。我還建議使用類似bugzilla的錯誤跟蹤(如果需要)和使用google docs進行團隊文檔管理。

希望有所幫助。

1

問問你的同事。

你沒有說你正在做什麼樣的物理學,或者工作組有多大,但是在我的學科(粒子物理學)中,有一個很深的經驗來建立和運行這種類型的系統(我們稱之爲「慢速控制」等)。與你一起工作的人很可能已經完成了這項工作,或者知道有人已經完成了工作。可能會有人詳細描述上次出現在某人的論文中。

我不親自有很多工作要做這一點,但我知道這一點:一個共同的特點是有沒有刪除,無覆蓋的設計。您只能添加數據,從來沒有將其刪除。這會保留你搞清楚什麼在患難


的情況真的發生了也許我應該解釋一下的機會。雖然這是一項重要任務,有許多工作要做正確的,這是不是真的涉及到物理學,所以你不能看它在SpiresarXive.org。沒有人撰寫有關中型慢速控制數據庫設計和實施的論文。但他們有時會把它放在他們的論文中。尋找指針的最簡單方法是向實驗室周圍的一羣人詢問。

+0

感謝您的回覆。我在覈物理學。我做了一個溫和的文獻搜索,實際上大部分信息來自高能量社區。我碰到的問題是規模問題。我們的設備和支持的社區的複雜程度比圍繞許多高能設備的軍隊少1-2個數量級。如果您需要進一步澄清,我可以提供。 – Sean 2009-05-27 22:59:55