1.引言
隨著企業信息化建設不斷深入,陸續上線實施了OA、PDM、ERP、人力資源管理、財務管理、DNC、制造執行(MES)、成本管理、供應鏈(SRM)等系統,這些系統使用不同的數據庫,主要分屬于Oracle數據庫和MSSQLServer數據庫。由于上線實施分屬于不同時期、不同廠商的系統,系統與系統之間相互孤立,信息孤島比較突出,這一因素的存在,在一定程度上制約并影響著企業信息化后續的發展。系統集成如何實現,數據中心如何構建,本文將緊密圍繞這兩個問題展開論述,為企業信息化建設開啟一個更廣闊的思路。
2.數據集成與數據中心思路
系統集成的本質是數據集成,分布于網絡內相互獨立的各個物理數據庫(OA數據庫、PDM數據庫、ERP數據庫、HR數據庫、NC數據庫等),邏輯上可以看成為一個相對統一的大型數據庫系統,這個相對統一的大型數據庫系統內部間的數據庫與數據庫之間采用DataBaseLink建立互聯互通,業務應用系統通過DataBaseLink實現對各數據庫數據的直接訪問,從而實現業務應用系統之間的協同處理不在區分彼此,達到數據共享通用的目的。
數據中心它籠絡的是企業的核心數據,這些數據源于業務應用系統數據庫,由業務應用系統產生、維護與管理,數據中心的作用是將離散于各業務應用系統數據庫內、而又面向公共服務的數據,按照內在的聯系,有機的組織并存儲在一起。數據中心是各業務應用系統內有效版本數據的副本,與業務應用系統內的源數據同生命周期,構建數據中心的目的就是為近一步實現或增強各業務應用系統間數據的開放性、業務數據組織的靈活性和業務數據使用的直觀性。數據中心基于Oracle11G物化視圖技術構建,通過DataBaseLink把離散于各業務應用系統內相互關聯的業務數據集中存儲于物化視圖,形成企業數據中心。
3.企業數據中心架構
通過Oracle數據庫物化視圖技術構建數據中心數據庫,采用DataBaseLink技術把企業內部各業務應用系統數據庫聯接起來,構建企業互聯互通的數據中心系統。基于Oracle數據庫的DataBaseLink技術與物化視圖技術的企業數據中心架構如下圖所示。
圖1 企業數據中心架構
4.關鍵技術與應用方法
企業實施的業務應用系統大多采用Oracle數據庫或MSSQLServer數據庫,這類數據庫建立于關系數據模型的基礎之上,就是我們常說的關系型數據庫。關系型數據庫最大的優點就是可以讓我們采用數據之間的相互關聯關系來實現不斷變化的查詢需求,從而更加靈活的實現業務應用系統對數據的處理、保存、分析與挖掘,讓企業通過數據實現更大的價值追求。
企業數據中心與集成架構主要應用了基于Oracle11g數據庫的兩項關鍵技術:DataBaseLink技術與物化視圖技術。
4.1 基于Oracle11g的DataBaseLink技術
DataBaseLink在數據庫中被描述為一個Link對象,數據庫之間建立Link對象后,數據庫之間就建立了一條數據互訪通道,可以簡單理解為數據訪問通訊通道。如企業數據中心架構圖中所示,在OA數據庫與PDM數據庫分別建立PDM_LINK對象和OA_LINK對象,那么就可以在OA數據庫中通過PDM_LINK對象直接訪問PDM數據庫中的數據,同時也可以在PDM數據庫中采用OA_LINK對象直接訪問OA數據庫中的數據。
Oracle數據庫創建DataBaseLink的語法如下:
CREATE[PUBLIC]DATABASELINKLINK_NAME
CONNECTTOUSERNAMEIDENTIFIEDBYPASSWORD
USING‘CONNECTSTRING’
說明:
1)“LINK_NAME”即為語法中創建的LINK對象的對象名稱;
2)“USERNAME”與“PASSWORD”指登錄遠程數據庫的賬號與密碼,LINK對象一旦創建成功,在系統內隱式的顯示密碼;
3)“CONNECTSTRING”在本地創建的遠程數據庫服務名,采用OracleNetManager工具創建,其中包括了遠程數據庫實例名、主機地址、TCP/IP協議端口等信息。
經過反復實驗并進行經驗總結,DataBaseLink要成功創建LINK對象,必須滿足以下條件:
1)創建“LINK_NAME”對象時,當前用戶須具備CreateDATABASELINK權限;
2)“USERNAME”為遠程數據庫用戶,須具備CreateSession權限、CONNECTION權限,為確保業務應用系統數據安全,在滿足其它業務應用系統數據訪問需求的基礎上,應嚴格控制訪問權限和訪問范圍;
3)創建“LINK_NAME”對象時,若不指定用戶與密碼,則采用當前賬號與密碼訪問遠程數據庫;
4)數據庫全局服務名參數必須設置為FALSE,具體方法如下:
ALTERSYSTEMSETGLOBAL_NAMES=FALSE;(注意:修改此參數須重啟數據庫才能生效)
4.2 基于Oracle11g的物化視圖技術
物化視圖是一種特殊的視圖對象,與普通視圖相比較,物化視圖具有物理存儲空間,可以像表對象一樣,能夠存儲數據。物化視圖是基于Oracle10g在普通視圖基礎上產生的一項新技術,Oracle11g繼承了這項技術,并將它優化完善后形成一套技術規范。
Oracle數據庫創建物化視圖的語法如下:
CREATEMATERIALIZEDVIEWMT_VIEW
BUILDIMMEDIATE
REFRESHFASTONCOMMIT
ENABLEQUERYREWRITE
AS
SELECTTABLE01_NAME.DEPARTNO,TABLE02_NAME.FUNCTIONARY
FROMTABLE01_NAME,TABLE01_NAME
WHERETABLE01_NAME.DEPARTNO=TABLE02_NAME.DEPARTNO
說明:
1)“MATERIALIZED”創建物化視圖的關鍵字,如不帶此關建字,那么創建的就是一個普通視圖對象;
2)“MT_VIEW”即為語法中創建的物化視圖對象名稱;
3)“BUILDIMMEDIATE”表示立即創建物化視圖,與立即對應的就是延時,使用“BUILDDEFFERED”參數;
4)“REFRESHFASTONCOMMIT”說明刷新數據的類型為“FAST”類型,即快速刷新;
5)“ENABLEQUERYREWRITE”說明啟用查詢重寫功能。
經過反復實驗并進行經驗總結,要成功創建物化視圖對象,必須滿足以下條件:
1)創建物化視圖的數據庫賬號須具備CREATEMATERIALIZEDVIEW權限、QUERYREWRITE權限、CREATEANYTABLE權限、SELECTANYTABLE權限等;
2)數據庫必須啟用查詢重寫技術,具體方法如下:
ALTERSYSTEMQUERY_REWRITE_ENABLED=TRUE;(同樣必須重啟才能生效)采用物化視圖具有以下優點:
1)數據倉庫服務應用
針對基表或視圖中海量的數據,企業往往都有統計分析、匯總等需求,如果每次都是基于海量的數據開展統計查詢,那么將極大影響的查詢效率,讓用戶處于未知時間的等待中,從而造成用戶體驗感也極差,通過物化視圖,把用于統計、匯總、計算等發布的數據存儲到物化視圖中,用戶訪問只需簡單的查詢物化視圖就可以得到同樣的結果,從而更加快捷的支持決策。
2)分布式環境應用
由于物化視圖具有查詢重寫功能,它能夠基于源表或視圖通過不斷刷同步數據,因此可以適應分布式環境,把數據分布到不同的物理空間中,更好的響應用戶的查詢。
5.企業數據中心構建規范
5.1 業務應用系統數據庫創建通用數據庫用戶
在每個業務應用系統數據庫中創建統一名稱的數據庫用戶,并設置符合滿足復雜度要求的密碼,此用戶與密碼用于遠程數據庫通過LINK對象訪問本地數據庫時,提供憑據驗證。創建用戶與授權方法如下:
1)在HR數據庫中創建遠程訪問用戶
SQLPLUS/NOLOG
CONN***/*********@HRASSYSDBA
CREATEUSER‘USERNAME’
IDENTIFIEDBY‘PASSWORD’DEFAULTTABLESPACE‘TABLESPACE_NAME’
TEMPORARYTABLESPACE‘TEMP_TABLESPACE_NAME’
ACCOUNTUNLOCK
COMMIT;
2)為創建的遠程訪問用戶授權
GRANTCONNECTTO‘USERNAME’WITHGRANTOPTION;
GRANTRESOURCETO‘USERNAME’WITHGRANTOPTION;
GRANTSELECTON‘TABLE_NAME’TO‘USERNAME’WITHGRANTOPTION;
COMMIT;
值得說明的是,針對創建的“USERNAME”用戶,應該依據需求制定嚴格的訪問控制,為了確保數據安全,有必要建立一張權限控制表,通過權限控制表能夠清楚的查看到該用戶權限與訪問范圍。
5.2 業務應用系統數據庫創建DataBaseLink對象
在HR數據庫與NC數據庫中分別創建NC_LINK對象與HR_LINK對象,實現HR數據庫與NC數據庫之間數據的相互訪問與數據共享。具體方法如下:
SQLPLUS/NOLOG
CONN***/*********@HRASSYSDBA
CREATEPUBLICDATABASELINKNC_LINK
CONNECTTO‘USERNAME’INDETIFIEDBY‘PASSWORD’
USING‘NC’
CONN***/*********@NCASSYSDBA
CREATEPUBLICDATABASELINKNR_LINK
CONNECTTO‘USERNAME’INDETIFIEDBY‘PASSWORD’
USING‘HR’
5.3 在本地數據庫實現訪問遠程數據庫
建立了DataBaseLink對象后,即建立了數據庫間的數據訪問通道,就可以在數據庫間相互訪問數據。如在NC數據庫中訪問HR數據庫中的人員組織結構數據,方法如下:
SQLPLUS/NOLOG
CONN***/*********@NCASSYSDBA
SELECT*FROMhr_interface@HR_LINKORDERBYdeptcodeASC;
執行后就可以查看到HR數據庫中關于人員組織結構的數據。以下使用SQLPLUS工具可以更直觀的看到相應的結果。
圖2 通LINK訪問HR數據庫中的人員組織結構數據
5.4 通過物化視圖構建核心數據公用數據庫
創建“DATACENTER01”公用數據庫(不在本文范圍內,略過),通過物化視圖將PDM系統內有關產品信息的數據存儲到“DATACENTER01”公用數據庫中,公用數據庫由企業自己把握、維護與管理,當涉及新實施的業務應用系統需要獲取PDM系統中的產品數據時,新實施的業務應用系統無須與PDM系統建立聯系實施集成,可直接通過數據庫底層LINK技術訪問“DATACENTER01”公用數據庫,就可以有效的獲取產品數據。實施方法如下:
1)在“DATACENTER01”公用數據庫創建“DATACENTER”名稱的LINK對象
SQLPLUS/NOLOG
CONN***/*******@DATACENTER01ASSYSDBA
CREATEPUBLICDATABASELINKDATACENTER
CONNECTTOPDM
USING‘KMPDM’
通過SQLPLUS工具可以直接的查看到結果如下:
圖3 創建LINK對象
2)創建物化視圖“SFC_PROCESS_INTEGRATION”,通過LINK對象,將PDM數據庫中的產品工藝進程信息存儲到物化視圖“SFC_PROCESS_INTEGRATION”中。實施方法如下:
SQLPLUS/NOLOG
CONN***/*******@DATACENTER01ASSYSDBA
CREATEMATERIALIZEDVIEWSFC_PROCESS_INTEGRATIONAS
SELECT*FROMSFC_PROCESS_INTEGRATION@DATACENTER
通過SQLPLUS工具可以直接的查看到結果如下:
圖4 創建的SFC_PROCESS_INTEGRATION物化視圖
3)在“DATACENTER01”公用數據庫中查詢產品工藝進程數據
SQLPLUS/NOLOG
CONN***/*******@DATACENTER01ASSYSDBA
SELECT*FROMSFC_PROCESS_INTEGRATION;
執行后就可以查看到物化視圖“SFC_PROCESS_INTEGRATION”中存儲的產品工藝進程數據。使用SQLPLUSA工具可以更直觀的看到相應的結果。
圖5 查詢物化視圖“SFC_PROCESS_INTEGRATION”中的數據
6.結論
通過上述思路構建企業數據中心系統,一方面較好的實現了業務應用系統間數據的相互訪問與共享,同時實現了牢牢將涉及企業核心的數據(產品數據、物料編碼數據、人員結構數據)掌握在企業自身手中,有效避開了對系統廠商的依賴與限制,既節省了企業成本,為后續業務應用系統數據集成建立順暢的通道;同時這種方式也適用于現有業務應用系統,使現有業務應用系統在不做較大的改動的前提下,也能夠有效的實現補足,使業務應用系統在現有基礎上發揮更大的價值。
轉載請注明出處:拓步ERP資訊網http://www.lukmueng.com/