<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    kapok

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

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

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


                                                   個(gè)人文集:
                          http://www.csdn.net/develop/author/netauthor/RedStar81/


    3.OLE DB(Object Link and Embedding DataBase)

     

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

     

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

     

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

     

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

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

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

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

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

    ado gif

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

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

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

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

     

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

    oracle gif           

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

     

     

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

                  

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

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

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

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

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

                  2.使用相同源代碼的應(yīng)用程序通過(guò)動(dòng)態(tài)加載不同的JDBC驅(qū)動(dòng)程序,可以訪問(wèn)不同的DBMS.連接不同的 DBMS時(shí),各個(gè)DBMS之間僅通過(guò)不同的URL進(jìn)行標(biāo)識(shí).

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

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

        

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

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

     

     

     

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

               

     


     

                                       

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


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

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

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

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

     

    posted on 2005-04-12 10:32 笨笨 閱讀(360) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): J2EEALL程序員生活個(gè)人項(xiàng)目所需資料
    主站蜘蛛池模板: 今天免费中文字幕视频| 午夜寂寞在线一级观看免费| 亚洲成人高清在线| 亚洲蜜芽在线精品一区| eeuss影院ss奇兵免费com| 最近2019中文字幕免费看最新 | 一个人在线观看视频免费| 亚洲精品卡2卡3卡4卡5卡区| 国产精品亚洲专区无码WEB| 色播精品免费小视频| 亚洲AV综合色一区二区三区| 男人免费视频一区二区在线观看| 动漫黄网站免费永久在线观看 | 久久精品国产亚洲AV天海翼| 国产精品爱啪在线线免费观看| 国产成人精品日本亚洲网站 | 国产一级a毛一级a看免费人娇| 天天摸夜夜摸成人免费视频 | 最新黄色免费网站| 精品国产_亚洲人成在线高清| 美女免费视频一区二区| 在线免费视频一区| 亚洲一区二区三区久久久久| 18禁男女爽爽爽午夜网站免费| 国产亚洲A∨片在线观看| 一级一级毛片免费播放| 又大又粗又爽a级毛片免费看| 亚洲免费综合色在线视频| 免费毛片a在线观看67194| 中文字幕亚洲色图| 久久精品一区二区免费看| 亚洲色精品vr一区二区三区| 一级做a爰全过程免费视频毛片 | 日韩精品亚洲aⅴ在线影院| 免费人成动漫在线播放r18| 国产又大又长又粗又硬的免费视频| 亚洲AV成人影视在线观看| 性做久久久久久免费观看| 亚洲人成电影在线观看网| 国产a视频精品免费观看| 亚洲美女大bbbbbbbbb|