Notes資料庫——文檔資料庫探究

來源:互聯網
上載者:User

  美國Lotus公司(已被IBM公司兼并)於八十年代後期推出的群組工作軟體(群件)——Lotus Notes/Domino是一種基於Internet/Intranet技術為構架的群件系統,運行模式不但有客戶機/伺服器(Client/Server),而且有瀏覽器/伺服器(Browser/Server),是構造公司資訊網主要工具之一。現已被廣泛應用於辦公自動化、工作流程控制、協同工作環境等方面,它提供了功能強大的多媒體共用文檔資料庫和電子郵件系統,是工業界的群件標準。

  在SQL Server、DB2、Sybase、Oracle等大型關聯式資料庫得到普遍應用的大環境下,當前我國的院校學曆教育課程中,有關資料庫系統的教學內容主要集中在關聯式資料庫上,關於文檔資料庫的知識介紹較少。尤其是Notes文檔資料庫在我國大、中型行政和企、事業單位應用日趨普及的情況下,對於每一個轉向Notes的開發人員來說,必須有比較深刻的認識和理解。本文根據在實際開發中的經驗體會,結合對Notes應用中的需要來對文檔資料庫原理和模式結構進行比較分析,加以討論。

  一.關於Notes資料庫與關聯式資料庫的概念比較:

  我們知道在資料庫理論中,有外模式、模式和內模式之分。外模式(又稱子模式或使用者模式)是資料庫使用者使用的局部資料的邏輯結構和特徵的描述,是資料庫使用者的資料檢視,如視圖和表的結構、類型、長度、保密層級等。模式是資料庫中全體資料的邏輯結構和特徵的描述,是所有使用者的公用資料檢視,如不同表的結構、類型、長度、保密層級等,以及表和表之間的各種邏輯關係。內模式(又稱物理模式)是資料物理結構和儲存方式的描述,是資料在資料庫內部的表示方式,如儲存、索引方式以及資料壓縮、加密和聚簇等。為了對Notes文檔資料庫和關聯式資料庫進行比較,下面讓我們來瞭解一下Notes文檔資料庫的相關概念。

  1.Notes 資料庫檔案 (.NSF):資料庫檔案包容應用程式的資料,其結構由表單、域、檔案夾、視圖及其他顯示功能組件(諸如導航器和資料庫表徵圖)組成。具體分兩個部分:設計項目、資料文檔。設計項目就是表單(Form)、域(Field)、視圖(View)和檔案夾(Folder)等等,它們構成了應用的基礎。資料文檔(Document)是使用者提交的資料資訊。形象來說,它就是使用者儲存在Form中的文檔,例如:一份公文。

  2.表單(Form):NSF資料庫檔案中,一個NSF資料庫中可定義多個表單,表單由多個表單元素組成。表單元素是用於建立表單外觀和功能的組件。和頁面一樣,表單可以包含:文本、水平基準線、表格、區段、圖形、影像地圖、連結、自動功能、小程式、附件、嵌入元素和HTML。表單可由多個子表單組成,子表單是表單元素集合,它作為一個單獨的對象來儲存。子表單可以包含與常規表單相同的元素。使用子表單可以節省重新設計的時間。如果更改了子表單的某個域,則用到該子表單的每個表單都會更新。子表單的一般用法包括:向商務文檔中添加公司標誌,或向郵件和便箋表單中添加郵寄標籤資訊。子表單可以作為表單的永久組件,或者可以根據公式的結果有條件地顯示。例如:可以給使用者提供一種選擇,允許使用者使用不同的映像和樣式來為各種類型的郵件訊息定製郵件表單,例如便箋、警告或信函。在子表單中用到的網域名稱不能在表單的其他地方使用。對子表單所做的更改將影響到所有使用該子表單的表單和文檔。

  3.域(Field):域是構成表單的重要元素,對一個Notes資料庫來說,外部資料的錄入要通過域,庫記憶體放資料顯示也要依靠域。域類型確定了域可以包含的資訊類型。使用者可以在“域屬性”框中定義域類型。域類型是:文本、日期/時間、數字、對話方塊列表、複選框、選項按鈕、列表框、組合框、RTF 文本、作者、姓名、讀者、口令和公式。域的主要屬性是:
  可編輯:資料可以通過按鈕執行公式(Formulas)或指令碼(Script)來產生。
  隱含的:只作儲存,沒有顯示作用,顯示文檔時不顯示該域的資料。
  准許多值:單一域准許使用者存入多個值。

  4.文檔(Document):在Lotus Notes中,資訊是以文檔的形式儲存在資料庫中的,一個文檔相當於關係型資料庫中的一個記錄。

  5.視圖(View):視圖是 Lotus Notes中文檔的主要瀏覽視窗,當一個視圖的選擇條件給定以後,通過該視圖所看到的文檔就是合格文檔,每一視圖都包含符合一定條件的文檔。視圖除了有選擇條件外,還可以按不同的特性將文檔進行分類和排序,使得我們可以及其快捷地導航到要尋找的文檔。對於簡單的查詢,可以不編寫任何程式,而通過把視圖按合理的方式進行分類和排序就可以了。對使用者來說是直觀的,可列印輸出螢幕上顯示的視圖。如某一視圖的選擇條件為:Select form="通知";則開啟該視圖後,我們所看到的文檔都是通知。

  6.檔案夾(Folder): 檔案夾也是文檔的瀏覽視窗之一,但是和視圖不同的是,檔案夾沒有選擇條件。由於Lotus Notes的文檔是可以共用的,檔案夾也可以共用,也可以私人。裡面的文檔通過Putinfolder放進去,必須通過RemoveFromFolder來將其中的文檔移開。

  不難看出,在Notes的文檔資料庫當中,模式也是表格的定義表單(Form)和域(Field),它用來向使用者顯示和儲存資料。而外模式通常是一個使用者的能看到視圖(View)或是檔案夾(Folder)。

  從某種角度來看,一方面表單(Form)提供使用者瀏覽儲存在NSF檔案中的文檔資訊的方法,Form也是一種內模式的機制,我們可以實現為不同的使用者定製不同的Form,以達到不同的使用者他們能看到的文檔資訊(Form)是不同的。另一方面由於在Notes當中,表單(Form)本身並不儲存在文檔裡,只在顯示文檔時才起作用,Form也是一種資料庫的外模式的體現。另外不像關聯式資料庫,一個Table中的一行資料就必須是符合Table定義的。Notes文檔資料庫中的一份文檔可以不符合任何的格式定義,也沒有相應的資料約束,資料約束只在使用者透過Form輸入資料時是有效。

  我們可以認為,Notes中視圖(View)或是檔案夾(Folder)是一個外模式,它提供使用者瀏覽和尋找文檔資料的方法,我們可以為不同的使用者定製不同的視圖或檔案夾。例如:在常見的公文處理應用中,檔案審批者和承辦人,能看到視圖的內容是不一樣的。Notes的文檔資料庫與關聯式資料庫的類比關係(見表1)

  二.NSF資料庫與關聯式資料庫比較的技術特點:

  Lotus Notes/Domino是一個較優秀的群件工作平台,擁有較強的應用開發能力和編程能力,適應於企業級的管理和與互連網絡的整合等效能。並且它有很好的電子郵件系統,領先的全文檢索索引和複製功能。對資訊的查詢就是對文檔的查詢,資訊檢索技術作為Lotus Notes/Domino的一個主要技術,為使用者提供了包括全文檢索索引、按關鍵字查詢、視圖和檔案夾等多種方式。它還具有極強的安全機制,可以可靠地保證資訊安全性。但Notes不支援關係,NSF中的文檔不支援加鎖,Lotus Notes資料庫作為非關聯式資料庫管理系統,它的特點是:①.基於文檔組織模式;②.使用非結構化的資料元素;③.通過定時複製重新整理資料;④.使用視圖定位元據;⑤.通過全文檢索索引訪問資料。關聯式資料庫管理系統的特點是:①.基於事物處理模式;②.使用結構化資料元素;③.提供對資料的即時訪問;④.使用即時查詢定位元據;⑤.通過SQL語言訪問資料。

  三.訪問Notes資料庫的方法:

  Lotus Notes群件系統,它不僅僅是個應用軟體,更是一個開發平台。開發Notes應用系統,除了Notes自身的開發環境外,開發人員還可根據自己的技術、經驗以及工作環境來決定使用第三方廠商提供的開發工具。

  1.通過ODBC(Open Database Connectivity,開放式資料庫互接)方式訪問Notes資料庫,該方式需要安裝NotesSQL(ODBC Driver for Domino),驅動程式可到IBM公司的支援人員網站(http://www-142.ibm.com/software/sw-lotus/products/product4.nsf/wdocs/notessqlhome)下載,其最新版本是NotesSQL 3.02g。值得注意的是Notes儘管可以通過Notes ODBC訪問,但它並不支援全文檢索索引。

  2.使用COM(The Component Object Model,元件物件模型)和OLE(Object Link and Embed,對象連結和嵌入)訪問Notes資料庫。

  ①.OLE作為Windows的一個特徵,通過把應用程式的功能作為對象暴露給其他應用程式,這些對象擁有屬性(資料)和方法(函數),應用程式可以通過定義、調用OLE中的對象去執行相應的任務。Domino既可以作為一個OLE提供者被外部程式調用,也可以通過OLE去控制其他OLE對象。例如:Visual Basic可以利用OLE功能,通過CreatObject獲得Notes.NotesUIWorkspace 和 Notes.NotesSession對象來訪問Notes類。使用OLE有許多優點但也存在一些弊端,如Domino的OLE服務不支援早期繫結,應用程式中對OLE編程進行類型檢查、快速啟動時,需要強迫啟動Notes的用戶端,對系統壓力大且不能同時啟動多個NotesSession等。

  ②.Lotus Notes/Domino在R5.03以後的版本中,提供了一個背景COM類NotesSession。它是一個功能強大的物件模型,它提供了其他Notes對象的介面,即只有通過它才能訪問Notes中的資料庫物件NotesDatabase、NotesView等對象。 由於COM與OLE的相容性,使應用程式操作Domino變得十分容易,應用程式不需要調用Lotus Notes用戶端就可以訪問Notes的函數;且可以在設計時使用早期繫結,其速度比晚綁定快;COM的運行速度比Lotus Script快;可以獨立於Lotus Notes用戶端進行應用程式發布。如在VB中支援背景Domino對象,即Session,但對於UIWorkSpace 並不支援。

  3.使用第三方廠商提供的開發工具開發Notes應用系統,例如:Powersoft公司的Notes庫。PowerBuilder(以下簡稱為PB)作為客戶/伺服器計算環境下優秀的用戶端開發工具,在訪問Notes資料庫時就採用了不同於以往的資料庫連接方式,即利用PB提供的Lotus Notes資料庫應用開發庫(LLN,Power Builder Library for Lotus Notes)來實現對Lotus Notes資料庫的存取。依託PB下的Notes庫就可利用資料視窗訪問Notes資料庫,並將其結合到應用程式中,利用PB的特點開發出更完美的Notes應用程式。

  四.Notes資料庫與其他關係型資料庫的資料交換工具:

  異構資料環境已經是一個普遍存在的問題,Windows常用開放資料庫互連標準ODBC進行資料交換與操作,後來微軟又推出了ADO技術。在Notes應用開發過程中,經常需要實現Notes資料庫與其他關係型資料庫(如Oracle、Sybase、SQL Server、DB2等)的資料交換,為此Lotus公司推出了相關組件來完成Notes資料庫與RDBMS(關係型資料庫管理系統)之間高效、快速、可伸縮的批量資料交換,如Notes Pump和LEI等。

  早期的Notes Pump組件,它作為Lotus公司Domino/Notes 系列產品之一,是一個企業級規模的資料散發者,它可實現RDBMS和Notes 資料庫之間資料的周期性複製,主、輔Domino伺服器之間資料的及時和自動的同步。資料的移動可以是調度安排的,也可以是輪詢或手動的,還可以被某個特定的條件所激發。是一個基於伺服器的32位多任務資料轉送引擎(見圖1)。


 圖1

  Notes Pump包含三部分:伺服器、管理員、開發用戶端。Notes Pump伺服器必須安裝在已裝有必要的Notes DLL的平台上,但其運行可獨立於已安裝的Notes伺服器或用戶端。"管理員"是一個Notes 的應用程式資料庫,儲存在Domino伺服器上,且可運行於任何裝有Notes Client4.11或更高版本的平台上。Notes Pump開發客戶是一個可選組件,安裝後可為後面建立"活動(Activity)"時提供方便,並支援Notes Pump LotusScript Extensions編程。裝有Notes Pump 伺服器的機器還需要有相應的資料庫通訊軟體,如Oracle SQL *NET,DB/2CAE,ODBC等,以便和相應的資料庫伺服器串連。

  LEI(Lotus Enterprise Integrator)是Notes Pump的後繼產品,利用LEI工具的串連及行為來實現NOTES與SQL資料庫的串連,實際上起到中間伺服器的作用,它使不同資料庫通過它的connection及activity文檔來實行資料交換。如下(見圖2):


圖2

  五.分析Notes資料庫的工具:

  在這裡本人向大家推薦一款Notes資料庫分析工具——《Domino資料庫瀏覽器》,可以到南山軟體屋網站(http://www.nssoft.net/)中的“原創軟體”欄目中下載。《Domino資料庫瀏覽器》是一個小工具,可以用來瀏覽NSF(Domino資料庫)檔案中的所有文檔資料,並將其匯出。既可以瀏覽Domino伺服器上的所有文檔,也可以開啟瀏覽獨立的NSF檔案,作為軟體開發的協助分析工具。

  綜上所述,我們必須清醒地認識到文檔資料庫與傳統關係型資料庫應用程式開發系統有很大的差別,當然,這涉及到具體應用等很多其他的問題,如:應用是否適合用Notes來開發。試圖將傳統的應用程式開發技術映射到Notes環境中的開發人員,將很難獲得Notes應用程式的優點。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.