色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

Database沒有流行起來

林玟書2年前12瀏覽0評論

Database沒有流行起來?

受邀,樓主這個問題問的好,既然是原生XML,為什么沒有流行起來呢?

XML技術從誕生之日就預示了它輝煌的未來,特別是隨著近一、兩年Web Service的蓬勃發展,XML越來越多地活躍在數據交換和存儲領域。 XML數據量指數級的增長,要求更有效的數據管理能力和更快、更精確的查詢。在傳統數據庫廠商宣布支持XML的同時,一種新的數據庫技術,Native XML DBMS(NXD)也已嶄露頭角,打破了RDBMS傳統數據庫一統天下的局面,為數據庫技術的研究提供了一次良好的發展契機。 本文將向您介紹XML和數據庫的關系,NXD的技術特點,傳統數據庫和NXD的比較和NXD的現狀和前景。 XML和數據庫的關系 XML是數據庫嗎? XML文檔具有"可自描述"、"無限嵌套"、"樹形結構"等特點,因此在某種意義上,一個XML文檔就是一個數據庫或其中的一張表。 下面所示的XML文檔Student.xml,描述了一個學生的信息:學號、姓名等。我們可以很方便的將其對應于傳統RDBMS中一張二維表(table):標簽student為行,標簽id、name等作為列。 Student.xml <student> <id>19803001</id> <name> <lastname>Johnson</lastname> <firstname>Jack</firstname> </name> <email>jack@ipedo.com</email> ... </student> 我們可以把相關的XML文檔放在一個目錄下,利用文件系統來管理,提供查詢、更改、增刪操作。為更好地支持XML,W3C還制定了一些相關技術,如:文檔模式(DTD、XML Schema),查詢語言(XPath、XQuery等),編程接口(DOM、SAX等),來方便開發應用程序。 但如果從更高的技術角度出發,就會發現,對XML文檔簡單的文件管理是遠遠不夠的:低效拇媧⒆櫓?、索引查询茧H?,不提供蕯侎、安全恢复机制,无法保证数臼~耐暾院鴕恢灤?,脫]脅⒎⒖刂啤⒁浦補ぞ叩取? 數據庫在XML應用中的角色 事實上,XML作為數據交換的標準,更著重于統一數據格式,而不是提供數據庫的特性。因此在XML應用中,數據庫作為數據管理的位置依然沒有改變。 XML數據本身的樹形結構不同于關系模型中的二維表結構,這種差別反映在數據庫產品處理XML數據的技術上,形成兩大陣營:XML-Enabled DBMS(XED)和Native XML DBMS(NXD)。 XED是在原有數據庫基礎上擴展了XML支持模塊,完成XML數據和數據庫之間的格式轉換和傳輸。從存儲粒度上,可以把整個XML文檔作為RDBMS表中一行,或把XML文檔進行解析后,存儲到相應的表格中。為了支持W3C的一些XML操作標準,如XPath,XED提供一些新的原語(如Oracle9iR2增加了一些數據包來操作XML數據等),并優化了XML處理模塊。 NXD則出現在XML數據處理領域內,一般采用層次數據存儲模型,保持XML文檔的樹形結構,省掉了XML文檔和傳統數據庫的數據轉換過程。詳見2。 兩種文檔類型 “以數據為中心”(data-centric) “以數據為中心”的XML文檔著重于文檔中的數據,而非文檔格式,如航班信息、銷售定單、科學計算結果等。這種文檔的數據一般由機器產生,來源于傳統數據庫中的數據。主要應用在電子商務、ERP、EAI等領域,集成不同數據源的數據,交換信息。 “以數據為中心”的XML文檔具有以下特點: · 結構化的數據 · 數據粒度大小適中 · 很少或沒有混和內容(Mixed Content) · 文檔順序(Document-order)不重要 student.xml就是一個典型的"以數據為中心"的XML文檔,記錄了學生的信息。每個學生的信息都很規整,而且粒度合適,同級元素(element)間的順序不重要,交換兩個同級元素(element)并不會破壞文檔的可讀性。 “以文檔為中心”(document-centric) "以文檔為中心"的XML文檔主要是用來表示人類自然語言描述的數據,如電子郵件、書和用戶手冊。這種文檔具有更復雜的結構,一般不是機器自動產生的。目前,Web上的大部分數據都可以表示成這種文檔。 "以文檔為中心"的文檔具有以下特點: · 半結構化或非結構化的數據 · 較多的混和內容(Mixed Content) · 文檔順序(Document-order)重要 下面的products.xml就是典型的一個"以文檔為中心"的XML文檔。 products.xml <Product> <Intro> The <ProductName>IPEDO Native XMLDB</ProductName> from <Developer> Ipedo,Inc.</Developer> is <Summary>like a true native XML Database, ...</Summary> </Intro> ... </Product> 對于"以數據為中心"的XML文檔,XED可以方便地將其中的數據抽取,存儲在傳統數據庫中,但對于 "以文檔為中心"的XML文檔則顯得力不從心了。NXD由于無需在兩種模型之間轉換數據,因此在處理"以文檔為中心"的XML文檔就很有優勢。 NXD的技術特點 NXD是專門為存儲XML文檔設計,也兼有一般數據庫的特性,例如支持事務,并發控制,查詢語言,安全機制,二次開發接口等。唯一的不同之處在于其內部存儲模型是基于XML文檔樹形結構,而非關系模型。 Ronald Bourret在其"XML and Databases"一文中,對NXD有如下定義: “NXD的邏輯模型建立在XML文檔,而非文檔中的數據之上,并根據它來存取數據。該模型至少包括元素(element)、屬性(Attribute)、PCDATA和文檔順序,例如XPath的數據模型……NXD的最小存儲單位是XML文檔,……” 一般認為,NXD應該具有以下幾個特性:文檔集合(Document Collection),查詢、更新,事務、鎖和并發控制、二次開發接口等。 文檔集合 很多NXD產品都支持“文檔集合”的概念,就像文件系統中的一個目錄或RDBMS中的一張表,一個“文檔集合”把一類文檔聚集在一起,方便用戶操作。集合級別上的查詢、修改操作都會反映到集合內的每個文檔。 一般說來,一個“文檔集合”關聯一種模式。將文檔加入到有模式的"文檔集合"時,會對要加入的文檔進行模式檢查。只有符合"文檔集合"模式的文檔才可以加入。 不同于RDBMS中表必須具有模式,NXD還提供"無模式"的文檔集合,即將一個文檔放入該集合中時,不必檢查該文檔的模式。"無模式"的文檔集合大大方便了用戶存儲格式很難統一,半結構化的XML文檔。 查詢語言 XPath和XQuery是W3C推薦的針對XML文檔的查詢語言。目前大部分NXD產品都支持XPath,。另外還有一些NXD提供專有的查詢語言。 XPath是基于XML文檔樹形模型,給出從某個結點起的查詢路徑,搜索文檔。目前,XPath作為數據庫查詢語言還有不少缺陷:不能分組、排序、連接等。 而XQuery更像一種編程語言,支持循環等邏輯,支持分組、排序、連接等。相對于傳統數據庫的標準SQL語句, XQuery在對XML數據的查詢方面,是一種功能更強大、更易于編程的方法。 事務、鎖和并發控制 幾乎所有的NXD都支持事務處理。但是,鎖的粒度通常比較大,對整個文檔的而不是對文檔片斷(Fragment)的,所以多用戶并發性的支持相對較低。具體的并發程度取決于應用程序以及"文檔"的構成。 二次開發接口 幾乎所有NXD都提供編程接口:提供數據庫連接、瀏覽元數據、執行查詢和返回結果的方法。返回結果通常是XML字符串、DOM樹、返回文檔的SAX解析器。如果查詢返回結果是多個文檔或文檔片斷(Fragment)的話,通常都會提供枚舉這些結果的方法。對于以Client/Server模式運行的數據庫產品,還可以將結果通過網絡協議(如HTTP)回傳給客戶端。 Round-tripping NXD一個重要特性是它為XML文檔提供了Round-tripping:可以將XML文檔存放在NXD中,而且再取回"同樣的"文檔。對于以"文檔為中心"的應用程序來說非常重要,因為易被XED忽略的CDATA部分、實體應用、注釋和處理指令是這些文檔不可缺少的組成部分。特別是對于法律和醫學領域中格式不允許隨意竄改的數據文檔。 所有NXD都能夠在元素(element)、屬性(Attribute)、CDATA和文件順序的級別上為文檔提供Round-tripping,能達到的具體程度取決于數據庫產品。 更新和可持久化的DOM 大多數NXD對XML文檔的更新是通過其提供的API調用完成的,或者簡單的替換整個文檔來實現的。某些NXD還提供了可持久化的DOM(Persistent DOM,PDOM):在某種持久性存儲介質上實現了DOM模型,對PDOM所作的改變直接反映在數據庫中。由于PDOM樹是"現場"的,數據庫通常和應用程序在同一個進程空間。 傳統數據庫與NXD的比較 XED依靠傳統數據庫技術二三十年的積累,在與NXD競爭的前期,占據了XML應用市場的很大份額:在Intellor公司2001年3月份的調查報告中,XED的市場份額將近是NXD的3倍,約12億美元。NXD雖然出場較晚,但市場份額增長速度卻非常強勁,在短短的3年中,已經由1999年的2,300萬美元發展到2001年的3.9億美元,并在今后兩年內將保持200%的增長率。目前,NXD主要應用在制造業、生物醫藥、電信等領域。 通過對比XED和NXD技術,我們可以更清楚地看到二者的差別,特別是反映到應用領域。這一點對那些需要選擇數據庫開發XML應用的用戶非常有意義。 XED存取XML數據的技術特點 XED中這部分工作是由XML網關模塊完成,它處于用戶邏輯模塊和數據庫邏輯模塊之間,將傳統數據庫包裝起來,給用戶提供了一個透明的XML數據源。 XED存取XML文檔面臨以下幾個技術難點: XML文檔模式和XED模式的映射為了把XML文檔存到XED中,我們必須將XML文檔的模式(DTD或XML Schema)映射到數據庫模式。同樣,將數據從XED取出來重新組合成XML文檔,要完成相反的操作。這種轉化發生在元素(element),屬性(attribute)和文本(text)上。由于XED注重的是數據而非格式,所以在這個過程中,XML文檔的大部分物理結構(CDATA、實體等)和一部分邏輯結構(處理指令、注釋等)都被忽略,而數據被保存。這種轉換可能會丟失信息,一個XML文檔存到XED里后再取出來,可能會變成另外一種格式。相對于NXD提供的Round-tripping,XED只能在數據層面實現信息的保留。 對XML數據的查詢支持 由于XML文檔模式和XED模式很難保持一致,所以在存取過程中經常用XSLT完成轉換。但XSLT非常耗時,這會對查詢性能造成很大影響。所以較好的解決方法是XED提供一種查詢語言來返回XML文檔。 目前已經有很多XED產品提供了這種語言,主要分三類: 基于模板(Template-Based)的查詢 這是目前RDBMS XED最流行的方法,將SQL語句嵌入到已寫好的XML文檔模板中,在實際查詢時候用結果替換。 基于SQL(SQL-Based)的查詢 通過在SQL語句的實現中增加對XML的支持,完成對XML數據的查詢。例如Oracle9iR2中,增加了XMLTYPE類型和一些新的函數包以支持XMLDB。 XML查詢 包括XPath和XQuery。與上面兩種不同,這種查詢是建立在XML文檔模型上。也就是說,如果XED要支持這種查詢方式,必須提供虛擬的XML文檔?;旧夏壳暗腦ED只支持XPath。 數據類型、空值,字符集等 在XML文檔和XED的轉換過程中,還會遇到數據類型的匹配、空值和字符集處理等問題。 XML文檔中除了不被解析的一些實體外,所有數據的類型都以文本(text)來表示。在轉換過程中,可能會遇到類型不匹配的問題,諸如受到JDBC驅動模塊的限制、日期的不同國際化表示。 XML文檔以靈活的方式來支持空值,如省略某個元素(element)、零長度的元素(element)和屬性(Attribute)等。而這些在XED中則有不同的意義。 同樣問題還出現在字符集、二進制數據、對XML文檔標簽的處理上。 XED和NXD的比較 - XED的優、劣勢 優勢: 用戶不需要將傳統數據庫中原有數據重新移植到新系統中,只是稍加改變,就可以支持XML應用。 傳統數據庫技術,例如并發控制、事務等,已經很成熟 傳統數據庫知識和經驗依然有效,用戶不需要為了應用XML而再去學習一套新的數據庫技術 劣勢: XML文檔存入到數據庫時需要將其"打碎",取出時需要"組合",不僅耗時,而且文檔的格式可能會不同 XML文檔和數據庫之間的模式轉換復雜,在前期開發階段需要投入很大 對"以文檔為中心"、格式復雜的XML文檔處理性能較差 在采納XML技術標準方面較落后 - NXD的優、劣勢 優勢: XML文檔存取無需模式轉換,存取速度快 對格式復雜的XML文檔支持比XED要好 支持大部分的最新的XML技術標準 劣勢: 在傳統數據庫技術方面比較薄弱,沒有經過時間的考驗 知識比較新,相應的支持人員和文檔資源都比較少 應用范圍僅局限在XML應用領域中 事實上,兩者的優劣并沒有統一的答案,而是和具體的應用相關。在開發格式較簡單、數據內容比格式更重要的應用時,XED是不錯的選擇,特別是在已有的傳統數據庫上要提供XML的訪問接口的情況下。相反,如果XML文檔格式復雜,數據本身就有層次性關系,或是只有XML數據的時候,就可以考慮NXD,因為它提供更好的性能,對XML標準有更完備的支持。另外,由于NXD在事務、數據恢復等傳統數據庫技術方面還未得到時間的檢驗,因此對數據安全要求較高的一些應用,如銀行、金融系統的數據庫,建立在傳統數據庫上的XED相對來說更有優勢。 NXD的現狀和前景 在3、4年前IT業界還在為應該選用NXD還是傳統數據庫爭的不可開交時候,就已經有一些公司悄悄地投入到NXD的開發中。到今天,已有了十多種NXD產品。IBM,Microsoft和Oracle等傳統數據庫廠商,也正在踏入NXD的領域。 但走在NXD隊伍前面的卻是一些"小"公司。PC Magazine在2002年6月份,針對市場上的4種主流產品做了詳細評測,包括性能、安全、易用性和對新技術的支持等。這4種產品是eXcelon的Extensible Information Server 3.1,Ipedo的Ipedo XML Database 3.0,NeoCore的NeoCore XMS 2.0和Software AG的Tamino XML Server 3.1,其中Ipedo XML Database 3.0以滿分5分獲"Editor Choice"獎。下面我們以Ipedo XML Database 3.0(IXD3)為例,窺探一下NXD技術的現狀。 IXD3支持 · 事務、并發控制,提供可靠的數據恢復機制 · 支持XPath和XQuery兩種查詢和In-memory的高速索引 · 基于圖形和命令行的用戶界面,并提供了各種工具,如導入/導出,備份等 · 支持XML文檔的多版本控制 · 支持DOM、SOAP、COM、EJB和Java API多種數據庫訪問協議和開發接口 · 多種平臺:Windows,Linux和Solaris; 在去年7月份發布的IXD3.1版本中,還提供基于ACL的安全控制、WEB_DAV等新功能,并集成了內容管理模塊,為基于Web Service等新技術的應用提供了一整套解決方案。詳細介紹請參閱[2]。 可見,NXD發展到今天,技術已經日趨成熟,不僅提供傳統數據庫絕大部分功能,而且支持XML的最新技術標準,非常方便XML開發人員進行開發。最近在對Ipdeo XMLDB3.1、Tarmino3.0和Oracle9iR2內嵌的XMLDB的測試過程中,筆者發現NXD在開發XML應用方面不僅開發速度快,而且提供了更為豐富的API接口。同時我們也應該看到,NXD技術發展時間相對傳統數據庫來說還很短,技術基礎還不是很牢固。在某些XML應用方面,NXD并不具有比XED很明顯的優勢,特別是在對數據安全要求很高的數據庫應用領域。 但NXD在處理XML數據時擁有傳統數據庫所不能比擬的天生優勢,已促使越來越多的目光聚焦到它上面。隨著時間的推移,相信NXD也會得到檢驗。面對未來幾年巨大的市場份額,以及它每年200%的增長速度,我們沒有理由不為它的前景看好。