0 引言
在PDM(Product Data Management,產品數據管理)的異地協同設計系統中,主要需要面對設計的文檔、圖紙文件等二進制數據信息,這些數據數據量大,需要解決文件存儲位置的問題并對系統的數據模型進行設計分析。本文對此進行了研究。
1 PDM文件存放方式的確定
1.1 在服務器中存放文件
在早期PDM系統中,圖紙文件大部分存放在文件服務器中,這種方案的文件系統由兩部分組成,分別是數據庫服務器和文件服務器。數據庫中存儲用于描述文檔屬性的文檔主記錄以及與文件服務器中相應文件的鏈接:另外一部分是文件本身,這部分的數據一般是放在文件服務器中,在PDM中經常稱為文件倉庫(File Vault)。而在文檔主記錄中,文件的鏈接一般用一個字段來描述這個文件服務器的位置和路徑,從而把兩個部分的數據關聯起來,如圖1所示。
圖1 文件服務器存儲方式
這種方式的優點是對數據庫的要求比較低,處理問題的可選方式比較多,也比較容易加入一些特殊的功能,但設計上和管理上的難度比較大。
1.2 在數據庫中存放文件
數據庫技術的發展,特別是面向對象技術在數據庫領域得到廣泛應用,使得數據庫處理大對象的能力和方法手段大大增強,因此,新一代的PDM系統都傾向于把文件對象放在數據庫中管理,如圖2所示。
圖2 數據庫存儲方式
將文件記錄看成在數據庫數據表中的一條數據記錄,而記錄文件本身內容的是一個數據庫的特殊字段,例如(BLOB,FLOB,CLOB)等。這種字段在存儲大對象的時候,實際上存儲在另外的“表空間”中,主記錄表中僅僅存儲大對象在這個表空間的地址指針,因此對主記錄數據表的訪問速度沒有任何影響。
現代數據庫可以把“大對象表空間”指定到不同的磁盤分區、卷、硬盤,甚至其他計算機的目錄中。數據庫管理員也可以隨時追加“大對象表空間”的目錄空間。這樣雖然從存儲的物理位置上,文件記錄和文件內容本身確實在不同“空間”存儲,但從邏輯上它們是一體的,使用者并不需要知道文件具體存儲的位置,這就從根本上保證了數據的完整性、一致性,并且降低了系統管理員部署和維護的難度。
1.3 文件存儲方案的選定
綜合以上討論,本項目規定在合作方原有數據庫使用比較輕量級的數據庫(比如Sql Server2000)的時候,可以在相應點采用文件服務器方案,但不作為首選方案。在數據庫層次比較高的場合(比如采用Oracle數據庫),應該盡可能采用數據庫存儲的方式。選擇數據庫存儲方案是基于以下原因:
(1)從根本上保證數據的一致性和完備性
在數據庫中,文件本身與文件記錄從邏輯上是一條數據庫記錄,這就從根本上保證了數據的一致性和完備性,系統的可維護性比較好。
在文件服務器方式下,對于邏輯上需要保證“元事務特性”的數據操作,編程上會比較困難。在文件上傳到PDM系統的過程中,一旦網絡發生了故障,就可能造成數據的不一致。如果采用數據庫存儲文件,那么這個文件在數據庫中不會有任何記錄存在,在數據庫中“元事務特性”得到了根本的保證。
(2)部署更為簡單、安全性更好
a.只需要架設數據庫服務器:用戶只需要架設數據庫服務器就可以了,這大大降低了部署上的難度,也使得潛在的設計缺陷得以減少,降低了開發的成本。
b.可以利用獨立的數據庫安全機制:數據庫有自己獨立的安全機制,文件的存儲更安全,避免了由于文件服務器的共享服務帶來的不安全因素。
c.數據傳輸協議標準:數據在傳輸過程中都通過指定的TCP/IP協議和特定的端口進行,文件在傳輸過程中沒有采用任何其他文件傳輸協議。
d.避免文件存儲中感染病毒:很多文件在存儲中會被感染病毒,造成數據的損失,而文件存儲在數據庫中,避免了感染各種文件型病毒的可能。
(3)數據庫的平臺無關性
a.文件存放與操作系統無關:目前大多數數據庫與操作系統平臺無關,文件的存放也與操作系統無關,能夠進一步提高數據的安全性。
b.存儲空間可以獨立于操作系統之外:數據庫的存儲空間可以獨立于操作系統,這樣數據庫對數據的物理操作不通過操作系統提供的接口,而直接對物理硬盤進行操作,這可以更進一步提高大數據量的訪問性能,而在文件服務器模式下,就需要面對更大的工作量和風險。
(4)容量的擴展更為方便
由于數據庫表空間可以隨時擴展,該擴展不受文件分區的限制,表空間可以擴展到其他分區、硬盤,甚至其他計算機上,保證了系統的持久應用。若采用文件服務器的形式,則擴展具有較大局限性,而且實現復雜。
(5)數據備份和恢復更為容易
與文件服務器模型相比,系統管理員只需要關心數據庫如何備份即可,數據庫會自動將邏輯上是一體的數據從邏輯完備性的角度一起備份出來。如果采用文件服務器的形式,那么系統管理員還要考慮數據庫本身的備份和文件備份的對應關系,很容易出現差錯。特別是在熱備份的過程中,由于系統還在使用,備份也需要時間,任何增、刪、改的操作,都可能使得備份出的數據與原始數據不一致,設計上的難度會很大。
2 數據模型的建立
本研究采用的方法是從構建領域模型開始,白頂向下分解細化,直至正確構建數據結構。下面僅以PDM系統中的一個項目管理子功能為例,來說明數據模型的建立過程。首先建立領域靜態模型,每個類表示一個概念,如圖3所示。
對于多對多關系,需要增加一個關聯表。關聯表的方案可以有多種。在本研究情況下,無論人員、設備還是材料,與任務的關系都比較復雜,所以關聯表采用“聯合主鍵”的方式。依據已經建立的領域模型,對每個領域類的屬性進行分析,得到一個初步的PDM協同設計系統關于項目管理部分的數據模型,如圖4所示。
圖3 領域模型
圖4 PDM文件管理數據結構
在正確構建表關系的基礎之上,進一步對每個表的字段進行細化定義,完成對數據模型的設計。
3 結束語
數據模型的設計是該PDM系統設計的重點工作,在數據模型設計時堅持采用模型驅動的設計方法。首先精確建立領域模型,在仔細分析該領域模型的基礎上再過渡到數據模型,使數據模型與企業現狀很好地結合。設計過程采用白頂向下逐步細化的方法,即首先關注數據對象之間的關系,然后再細致考慮每個數據對象的細節,從而保證了數據模型設計結果的穩定性。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:異地協同設計PDM系統數據模型的建立