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