kapok

          垃圾桶,嘿嘿,我藏的這么深你們還能找到啊,真牛!

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            455 隨筆 :: 0 文章 :: 76 評論 :: 0 Trackbacks
          http://dev.csdn.net/develop/article/21/21019.shtm
          數(shù)據(jù)訪問接口體系及數(shù)據(jù)對象模型探討(Beat 1.0)

                       
                                                         81_RedStar81@163.com
                                                         TomHornson.student@www.sina.com.cn


                                                         個人文集:
                                http://www.csdn.net/develop/author/netauthor/RedStar81/


          3.OLE DB(Object Link and Embedding DataBase)

           

          隨著網(wǎng)絡(luò)技術(shù)和數(shù)據(jù)庫技術(shù)的不斷發(fā)展,現(xiàn)在的應(yīng)用系統(tǒng)對數(shù)據(jù)集成的要求越來越高.有必要將不同的地方,不同的格式(如關(guān)系型數(shù)據(jù)庫和操作 系統(tǒng)中的文件、電子表格、電子郵件、多媒體數(shù)據(jù)以及目錄服務(wù)信息或主機系統(tǒng)中的IMSVSAM數(shù)據(jù)等等)的數(shù)據(jù)集成.傳統(tǒng)的解決方案是使用大型的數(shù)據(jù)庫系統(tǒng),把所有這些數(shù)據(jù)都移到數(shù)據(jù)庫系統(tǒng)中,然后按照操作數(shù)據(jù)庫的辦法對這些數(shù)據(jù)進行訪問,這樣做雖然能夠按統(tǒng)一的方式對數(shù)據(jù)進行各種操作,這種間接訪問方式帶來了很多問題,比如數(shù)據(jù)更新不及時、空間資源的冗余和訪問效率低等等

           

          此時Microsoft公司的通用數(shù)據(jù)訪問技術(shù)(UDA)應(yīng)運而生,它使數(shù)據(jù)應(yīng)用系統(tǒng)能通過實現(xiàn)標準OLE DB接口的數(shù)據(jù)提供者來訪問各種各樣的數(shù)據(jù),而不管數(shù)據(jù)駐留在何處,也不需要進行數(shù)據(jù)轉(zhuǎn)移或復(fù)制、轉(zhuǎn)換.

           

          OLE DB作為一種數(shù)據(jù)訪問接口體系,體現(xiàn)了Microsoft的通用數(shù)據(jù)訪問(UDA)策略的理念.UDA能夠通過標準接口來訪問各種類型的數(shù)據(jù).同于ODBC體系它也提供了一套標準API,不過OLE DB API是完全基于COM,其特點是采用了多層模型.COM通信層的一側(cè)是數(shù)據(jù)另一側(cè)則是數(shù)據(jù)使用者.這種基于COM的通信可被概括為在抽象對象(DataSourceSessionCommand Rowset)上執(zhí)行的操作.因此,當(dāng)使用者連接到DataSource,打開 Session,發(fā)出Command,并返回數(shù)據(jù)Rowset,便會出現(xiàn)這種情況.

           

          事實上,OLE DB是系統(tǒng)級的編程接口,它定義了一組COM接口,這組接口封裝了各種數(shù)據(jù)

          系統(tǒng)的訪問操作,這組接口為數(shù)據(jù)使用者和數(shù)據(jù)提供者建立了標準,OLE DB還提供了一組標準

          的服務(wù)組件,用于提供查詢、緩存、數(shù)據(jù)更新、事務(wù)處理等操作,因此數(shù)據(jù)提供方只需實現(xiàn)一

          些簡單的數(shù)據(jù)操作.在使用方就可以獲得全部的數(shù)據(jù)控制能力.

             OLE DB體系包括以下幾個組成部分(下圖示)

          ado gif

                    數(shù)據(jù)提供者(Data Provider)   提供數(shù)據(jù)存儲的組件和數(shù)據(jù),數(shù)據(jù)小到普通的文本文件、大到主機上的復(fù)雜數(shù)據(jù)庫,或者電子郵件存儲,都是數(shù)據(jù)提供者的例子. 的文檔把這些軟件組件的開發(fā)商也稱為數(shù)據(jù)提供者.

                    數(shù)據(jù)服務(wù)提供者(Data Service Provider)    位于數(shù)據(jù)提供者之上、從過去的數(shù)據(jù)庫管理系統(tǒng)中分離出來、獨立運行的功能組件,例如查詢處理器和游標引擎(Cursor Engine),這些組件使得數(shù)據(jù)提供者提供的數(shù)據(jù)以表狀數(shù)據(jù)(Tabular Data)的形式向外表示(不管真實的物理數(shù)據(jù)是如何組織和存儲的),并實現(xiàn)數(shù)據(jù)的查詢和修改功能.SQL Server 7.0 的查詢處理程序就是這種組件的典型例子.

                    業(yè)務(wù)組件(Business Component)   利用數(shù)據(jù)服務(wù)提供者、完成某種特定業(yè)務(wù)信息處理、可以重用的功能組件.分布式數(shù)據(jù)庫應(yīng)用系統(tǒng)中的中間層(Middle-Tier) 是這種組件的典型例子.

                  數(shù)據(jù)消費者(Data Consumer)   任何需要訪問數(shù)據(jù)的系統(tǒng)程序或應(yīng)用程序,除了典型的數(shù)據(jù)庫應(yīng)用程序之外,還包括需要訪問各種數(shù)據(jù)源的開發(fā)工具或語言.

           

          當(dāng)然上圖側(cè)重非關(guān)系數(shù)據(jù)系統(tǒng)的示意.如今,幾乎所以的關(guān)系數(shù)據(jù)庫廠商都提供了OLE DB Provider以投入OLE DB新體系.當(dāng)然對于只能獲得ODBC Provider的用戶,只要你再獲得OLE DB-ODBC Bridge也是可以的.(圖示如下:以ORACLE系統(tǒng)為例)

          oracle gif           

          自然,各數(shù)據(jù)庫廠商的OLE DB Provider大體功能同于ODBC Provider.對各數(shù)據(jù)庫系統(tǒng)的獨特功能提供支持、對特定數(shù)據(jù)訪問進行優(yōu)化等等.

           

           

          4.JDBC(Java DataBase Connectivity : Java數(shù)據(jù)庫連接)

                        

               Internet/intranet及相應(yīng)環(huán)境下的應(yīng)用系統(tǒng)的發(fā)展,造就了今日的Java.自然在Java數(shù)據(jù)應(yīng)用系統(tǒng)中,JDBC是首選方案.ODBC類似,JDBCJava開發(fā)人員提供了一套標準的數(shù)據(jù)訪問API.

                JDBCSunMicroSystem公司的JavaSoft分部提出的Java數(shù)據(jù)應(yīng)用訪問的標準API.JDBC是基于X/OpenSQL的調(diào)用級接口(這也是ODBC的基礎(chǔ)).JDBC可保證JDBCAPI在其它通用SQLAPI之上實現(xiàn).這也意味著所有支持ODBC的數(shù)據(jù)庫不加任何修改能夠與JCBC協(xié)調(diào)工作.  JDBC設(shè)計很多借鑒于ODBC
                     1.JDBC與
          ODBC都是基于X/OpenSQL調(diào)用級接口

                       2.JDBC很多設(shè)計思想沿襲了ODBC,包括許多抽象和SQL CLI實現(xiàn)

                      3.JDBC的總體結(jié)構(gòu)類似于ODBC,有四個組件:應(yīng)用程序、驅(qū)動程序管理器、驅(qū)動程序和數(shù)據(jù)源,工作原 理亦大體同于ODBC. 此外:

                      1.JDBC保持了ODBC的基本特性,也獨立于特定數(shù)據(jù)庫.

                        2.使用相同源代碼的應(yīng)用程序通過動態(tài)加載不同的JDBC驅(qū)動程序,可以訪問不同的DBMS.連接不同的 DBMS,各個DBMS之間僅通過不同的URL進行標識.

                   3.JDBCDatabaseMetaData接口提供了一系列方法,可以檢查DBMS對特定特性的支持,并相應(yīng)確定有什 么特性,從而能對特定數(shù)據(jù)庫的特性予以支持

                     4.JDBC也支持在應(yīng)用程序中同時建立多個數(shù)據(jù)庫連接,采用JDBC可以很容易地用SQL語句同時訪問多個 異構(gòu)的數(shù)據(jù)庫,為異構(gòu)的數(shù)據(jù)庫之間的互操作奠定基礎(chǔ).

              

                  然而,由于基于Java,具有對硬件平臺、操作系統(tǒng)異構(gòu)性的支持.這主要因為ODBC基本用C開發(fā),JDBCJava開發(fā).Java語言,具有與平臺無關(guān)、移植性強、安全性高、穩(wěn)定性好、分布式、面向?qū)ο蟮缺姸鄡?yōu)點,JDBC使“100 Java”解決方案成為可能.利用Java的平臺無關(guān)性更適合于Internet上異構(gòu)環(huán)境的數(shù)據(jù)庫應(yīng)用.此外,JDBC驅(qū)動程序管理器可內(nèi)置,也可通過Web瀏覽器自動下載,無須安裝、配置,ODBC驅(qū)動程序管理器和ODBC驅(qū)動程序必須在每臺客戶機上分別安裝、配置.

              上面提及,JDBCODBC組成、工作原理基本相同,事實上,即使有區(qū)別,那也只因為驅(qū)動程序的解決方案有差異.一般,Java的驅(qū)動解決方案有四種:1.JDBC-ODBC Bridge 2.本機API/集團式Java驅(qū)動程序  3.網(wǎng)絡(luò)協(xié)議/Java  4.本機協(xié)議/Java

           

           

           

          二、數(shù)據(jù)對象模型探討(待續(xù))
          附錄:美國著名數(shù)據(jù)庫產(chǎn)品記事(參考)

                     

           


           

                                             

                                                     二、數(shù)據(jù)對象模型探討(待續(xù))


          ------------------------------------------------聲明---------------------------------------------------

              本文檔順數(shù)據(jù)庫應(yīng)用發(fā)展歷史而下,以數(shù)據(jù)訪問接口和數(shù)據(jù)對象模型的發(fā)展、特征、相
           互之間的區(qū)別為主線,描述了它的軌跡.希望對數(shù)據(jù)系統(tǒng)開發(fā)者有些幫助.
                
          本文中,久遠的信息(對本人來說)系參考書籍,有錯誤之處,請指出
                                         81_redstar@163.com

                                  本文檔標以版本,目的在于希望大家閱讀之后,
                  發(fā)現(xiàn)不妥或錯誤或需要補充的地方,聯(lián)系我,對之進行修改,以完善之.
                              
          使之成為持久的網(wǎng)上參考資料.  

                                                        Beat 1.0 2003.2.25
                                              -----------------------------------        
             

           

          posted on 2005-04-12 10:32 笨笨 閱讀(361) 評論(0)  編輯  收藏 所屬分類: J2EEALL程序員生活個人項目所需資料
          主站蜘蛛池模板: 南召县| 绥德县| 元氏县| 石嘴山市| 伊宁市| 寿光市| 井陉县| 闽侯县| 息烽县| 翁牛特旗| 丰城市| 建平县| 米泉市| 明溪县| 轮台县| 德昌县| 西乌珠穆沁旗| 敦煌市| 永修县| 河间市| 雅安市| 连城县| 洛浦县| 平原县| 丘北县| 台中县| 顺昌县| 金溪县| 巩义市| 江口县| 辽中县| 调兵山市| 潜山县| 平湖市| 淮阳县| 亳州市| 嘉定区| 宜阳县| 侯马市| 建昌县| 洱源县|