黃端香
【摘 要】Domino是目前辦公自動化系統(tǒng)的主流開發(fā)平臺之一,Domino自帶一個非關(guān)系型數(shù)據(jù)庫即文檔型數(shù)據(jù)庫,而目前大多數(shù)集團化財務(wù)管控信息都使用諸如SQL Server、oracle等關(guān)系型數(shù)據(jù)庫,因此,集團信息化建設(shè)勢必要涉及如何把Domino導(dǎo)入到oracle數(shù)據(jù)庫的問題。Domino與關(guān)系數(shù)據(jù)庫之間的相互交換信息,相互融合的技術(shù)伴隨著實際應(yīng)用的不斷增加,其技術(shù)也日漸成熟。本篇文章主要介紹的是Domino與oracle數(shù)據(jù)庫的融合,以這案例為模版來研究,這對Domino與關(guān)系數(shù)據(jù)庫之間在未來的交流發(fā)展上廣泛的應(yīng)用前景。
【關(guān)鍵詞】Domino 關(guān)系數(shù)據(jù) oracle數(shù)據(jù)庫 相互融合
【中圖分類號】TP311.13 【文獻標識碼】A 【文章編號】1672-5158(2013)03-0103-02
前言
Domino擁有一個文檔數(shù)據(jù)庫管理系統(tǒng),擅長于存儲非結(jié)構(gòu)化信息,并提供全文檢索、版本控制、留痕跡修改功能,有別于一般的關(guān)系型數(shù)據(jù)庫,如oracle、mysql、SQL server等,對單一的消息和工作流系統(tǒng)來說是不錯的架構(gòu),由于對關(guān)系數(shù)據(jù)處理能力非常弱,相對于關(guān)系型數(shù)據(jù)庫數(shù)據(jù)維護困難,查詢和數(shù)據(jù)統(tǒng)計效率就比較低下,如果想做較大規(guī)模的業(yè)務(wù)整合或者業(yè)務(wù)開發(fā),會是困難重重,因此與關(guān)系型數(shù)據(jù)庫如何的融合是個課題。
1 Domino重要概念介紹
Domino是一種群組工作軟件。使用了Domino的服務(wù)器稱為Domino服務(wù)器。Domino的功能強大,界面豐富,主要用于輔助多人協(xié)同工作,從而突破平臺、技術(shù)、組織和地理上的限制,充分實現(xiàn)信息與技術(shù)方面的共享。Domino系統(tǒng)的的關(guān)鍵專業(yè)術(shù)語有:組織單元,人員,服務(wù)器,驗證字,驗證者,標識符,目錄,Domino域等等。組織單元(Orgnization Unit)類似就是相當于現(xiàn)實生活中單位內(nèi)部的一個部門或者單位的一個分支機構(gòu)。在Domino環(huán)境中,人員就是Domino系統(tǒng)的用戶。服務(wù)器(Server)是用于存放數(shù)據(jù)信息的計算機。驗證字(certificate)在Domino環(huán)境中的組織單元,人員等都必須要有自己的驗證字,才能用在互相訪問和信息交換中驗證自己的身份。驗證者(Certifier)又名證明者,證明人,在DOMINO環(huán)境中,組織和組織單元被稱為驗證者,組織驗證者是最高級別的驗證者,組織單元驗證者是由組織驗證者產(chǎn)生的,人員和服務(wù)器的驗證字是經(jīng)過組織或組織單元驗證者驗證后產(chǎn)生的。標識符(ID)是把組織,組織單元,人員,服務(wù)器的驗證字有關(guān)信息,保存在一個后綴名為ID的磁盤文件中,這個文件就是組織,組織單元,人員或服務(wù)器的ID。Domino目錄用來存放組織,組織單元,人員,服務(wù)器及其配置信息的數(shù)據(jù)庫,其文件名一般是names.nsf。Domino域(Domino domain)共享同一個Domino目錄的一組Domino服務(wù)器。簡而言之就是使用同一個names.nsf的一組Domino服務(wù)器。
2 Domino 與關(guān)系數(shù)據(jù)庫的融合關(guān)鍵
關(guān)系數(shù)據(jù)庫,是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫,借助于集合代數(shù)等數(shù)學(xué)概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù),標準數(shù)據(jù)查詢語言SQL就是一種基于關(guān)系數(shù)據(jù)庫的語言,關(guān)系模型是由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合、關(guān)系完整性約束三部分組成。
在項目開發(fā)過程中,Domino很多功能需要Java代理及外接數(shù)據(jù)庫才好實現(xiàn),核心的問題是:如何把原先的關(guān)系型數(shù)據(jù)庫中的內(nèi)容全部導(dǎo)入Domino 中是因為企業(yè)現(xiàn)在的所有數(shù)據(jù)都集中在一個關(guān)系型數(shù)據(jù)庫中,因此希望domino數(shù)據(jù)庫能與舊的關(guān)系庫互操作,而不必在數(shù)據(jù)庫轉(zhuǎn)換上浪費更多資源。對于企業(yè)來說,如果企業(yè)數(shù)據(jù)存放在不止一個關(guān)系庫中,那么就需要購買若干個此類產(chǎn)品,而且實現(xiàn)過程較為復(fù)雜。
因此能否通過Lotus Script編寫一個通用的數(shù)據(jù)庫轉(zhuǎn)換程序就成為系統(tǒng)開發(fā)的關(guān)鍵之一。具體解決方法如下:
第一步 在控制面板——>32位ODBC數(shù)據(jù)源中建立用戶數(shù)據(jù)源
Test;
第二步 在Domino R5中新建一個數(shù)據(jù)庫Try,并建立一個空白表單Connection,此表單沒有任何內(nèi)容,然后在表單上創(chuàng)建一個“操作”,起名為“Read”;
第三步 在“Read”操作的編程窗口中選擇編程語言為Lotus Script;
第四步 在編程窗口的對象窗口中點擊“Option”事件,并寫入如下腳本: Uselsx "*lsxodbc" // 使用Lotus Script 擴展對象中的ODBC類
第五步 選中“Declare”事件,在其中寫入:
Dim session As NotesSession Dim db As NotesDataBase
Dim doc As NotesDocument
Dim qry As ODBCQuery
Dim result As ODBCResultSet
Dim con As ODBCConnection
定義程序中使用到的各種對象。
第六步 選中“Click”事件,在其中寫入:
Sub Click(Source As Button)
Set New Value
Set session = New NotesSession
Set con = New ODBCConnection
// 新建ODBCConnection對象實例
Set qry = New ODBCQuery
// 新建ODBCQuery對象實例
Set result = New ODBCResultSet
// 新建ODBCResultSet對象實例
取得當前數(shù)據(jù)庫信息
Set db = session.CurrentDataBase
Set doc = New NotesDocument(db)
// 新建文檔 doc.form = "connection"
// 新建文檔的表單指向connection
Call con.Disconnect()
// 保證con對象當前沒有連接其他數(shù)據(jù)源
If con.ConnectTo("test") Then
// 如果連接成功
Set qry.connection = con
// 將建立好連接的con交給query對象
qry.SQL = "SELECT * FROM Table1"
// SQL 語句
Set result.Query = qry
// 將已經(jīng)連接上數(shù)據(jù)源并寫好SQL
語句的query對象賦給result對象
Call result.Execute()
// 循環(huán)直到結(jié)果集為空
Call result.NextRow()
// 指針指向下一條記錄
For i = 1 To result.Numcolumns
// 根據(jù)字段的索引值得到字段的名字value = result.GetValue(field)
// 取得字段值 If Isdate(value) Then
// 將關(guān)系庫中的值寫到Notes當前庫的當前表單中
Next Call doc.save(True,True)
// 當一條記錄的所有字段都被寫入 Notes庫后保存此文檔
Set db = session.CurrentDataBase Set doc = New NotesDocument(db)
// 斷開與數(shù)據(jù)源的連接
Else Messagebox("Could not connect to server")
End If End Sub
最后,保存表單并運行,用鼠標點擊Read 操作后,關(guān)系數(shù)據(jù)庫中的信息就融入到Notes的文檔型數(shù)據(jù)庫中了。
3 domino與Oracle數(shù)據(jù)庫融合關(guān)鍵
Oracle數(shù)據(jù)庫是一個功能超級強大的數(shù)據(jù)庫系統(tǒng)。它由是美國ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫為核心的一組軟件產(chǎn)品。ORACLE數(shù)據(jù)庫是目前世界上使用最為廣泛的數(shù)據(jù)庫管理系統(tǒng),因為它具備強大的功能和卓越的性能所以被廣泛的使用在各個領(lǐng)域中,并擔任著極為重要的角色,如集團財務(wù)管控系統(tǒng)大都采用Oracle數(shù)據(jù)庫。
在了解domino與關(guān)系數(shù)據(jù)有著可交互的關(guān)系,并且知道oracle數(shù)據(jù)庫可以通過用HS+ODBC技術(shù)導(dǎo)入到domino中,經(jīng)過一步一步的了解和認識可以大膽的設(shè)想domino與oracle數(shù)據(jù)庫可以融合的可操作性。
在一個像Access這樣的應(yīng)用程序中創(chuàng)建數(shù)據(jù)庫框架通常會更容易一些,因為Access可以非常輕松地提供完成任務(wù)所需的各種功能。一旦設(shè)計了數(shù)據(jù)庫,就要為其創(chuàng)建ODBC數(shù)據(jù)源。
1. 雙擊Control Panel(控制面板)中的32位ODBC小程序。會看到ODBC Data Source Administrator(ODBC數(shù)據(jù)源管理員)對話框,對系統(tǒng)級數(shù)據(jù)庫來說,使用System DSN(系統(tǒng)數(shù)據(jù)源名)選項卡;對文件級數(shù)據(jù)源使用File DSN(文件數(shù)據(jù)源名)選項卡。你還會看到一個數(shù)據(jù)庫的缺省選項。
2. 單擊Add按鈕。會看到Create New Data Source(創(chuàng)建新的數(shù)據(jù)源)對話框。技巧檢查ODBC Data Source Administrator(ODBC數(shù)據(jù)源管理員)對話框的About選項卡,可以確定你正在使用的ODBC驅(qū)動程序的最新版本。
3. 選擇一個數(shù)據(jù)源。這里采用選擇Access數(shù)據(jù)源。單擊Finish(完成),會看到某種類型的配置對話框,注釋如果選擇的數(shù)據(jù)源那么所需的配置步驟也和這里說明的不同故每個ODBC驅(qū)動程序都要求不同類型的配置。
4.單擊Select(選擇)按鈕。你會看到一個File Open-type(文件打開類型)對話框,可以在那里選擇一個現(xiàn)有的數(shù)據(jù)庫。ODBC驅(qū)動程序會自動選擇正確的文件擴展名。技巧并不是一定要提前設(shè)計數(shù)據(jù)庫。請注意,Access ODBC驅(qū)動程序還包括一個創(chuàng)建新數(shù)據(jù)庫的按鈕。很多ODBC驅(qū)動程序都提供了這種功能,但并不是全都這樣。單擊這個按鈕會啟動數(shù)據(jù)庫管理器應(yīng)用程序,并允許設(shè)計數(shù)據(jù)庫。
5. 選擇系統(tǒng)數(shù)據(jù)庫選項。在大多數(shù)情況下要選擇None(無),除非為應(yīng)用程序特別創(chuàng)建了一個系統(tǒng)數(shù)據(jù)庫。如果確實添加了系統(tǒng)數(shù)據(jù)庫,它會出現(xiàn)在ODBC Microsoft Access 97 Setup(設(shè)置)對話框的System DSN(系統(tǒng)DSN)選項卡上。
6. 單擊Advanced(高級)按鈕,會看到Set Advanced Options(設(shè)置高級選項)對話框,如下圖所示。無需對很多項做修改。但是,要把客戶名添加到LoginName(注冊名)域中,把客戶口令添加到Password(口令)域中。這允許客戶在訪問的數(shù)據(jù)庫時,根本不用了解訪問的細節(jié)——甚至不用了解被記錄的客戶名。技巧為最優(yōu)化潛在的區(qū)域,可以瀏覽一下 ODBC驅(qū)動程序提供的一系列高級選項。由于Windows使用了一些處理器循環(huán)對線程實施管理,所以使用了過多的線程又會降低應(yīng)用程序的速度。
7. 設(shè)置完所需的高級選項后單擊OK。
8. 再次單擊OK關(guān)閉ODBC Microsoft Access 97 Setup(設(shè)置)對話框。應(yīng)該看到,新的設(shè)置項已經(jīng)添加到ODBC Data Source Administrator(ODBC數(shù)據(jù)源管理員)對話框中。如果今后要為數(shù)據(jù)庫更改這些設(shè)置,只要簡單地加亮它并單擊Configure(配置)。刪除數(shù)據(jù)庫配置也很容易,只要加亮DSN并單擊Remove(刪除)即可。創(chuàng)建系統(tǒng)DSN和制作用戶DSN差不多。兩者間一個顯著的差別是,使用它們的目的不同。
4 結(jié)論
本文所研究的Domino與oracle數(shù)據(jù)庫的融合技術(shù)。在詳細了解Domino這種軟件中,認識其是一個群組軟件,深入探討其群組中的每一個構(gòu)件,分析他們所具有的作用,對Domino與數(shù)據(jù)之間的互相操作進行變換,再將此變換轉(zhuǎn)入到Domino與oracle數(shù)據(jù)庫的相互融合,進行實例操作。本項目在實際操作中已成功運行。
參考文獻:
[1]陳驊; Oracle數(shù)據(jù)庫中業(yè)務(wù)數(shù)據(jù)文本導(dǎo)出[J];電腦編程技巧與維護;2006年08期
[2]宋初一;時宏杰;姜艷清;滿達圖;;一種與基于Lotus-Domino的辦公自動化系統(tǒng)進行數(shù)據(jù)交換的方法[J];內(nèi)蒙古民族大學(xué)學(xué)報(自然科學(xué)版);2008年02期
[3]王飛;白改朝;;Oracle數(shù)據(jù)庫中自帶Java的簡單應(yīng)用[J];電腦知識與技術(shù);2008年25期
[4]甲骨文推出Oracle融合中間件11g[N]. 電腦報. 2009年
[5]邵建強;;如何利用Java將Excel文件中的數(shù)據(jù)導(dǎo)入SQL Server[J];軟件導(dǎo)刊;2008年03期
[6]邢小萍;Oracle身陷兩重困境[N];網(wǎng)絡(luò)世界;2009年
[7]李彥澎;夏陽;;基于Domino的企業(yè)級工作流引擎[J];微計算機信息;2009年15期
[8]尹茂林;基于Domino平臺的知識管理系統(tǒng)的設(shè)計與實現(xiàn)[D];哈爾濱工業(yè)大學(xué);2011年
[9]馬妍妍;解軍; 基于Domino系統(tǒng)的移動辦公系統(tǒng)研發(fā)[J];機械管理開發(fā);2012年04期