国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

基于XML的數據庫總體分析(上)

運維 數據庫運維
XML本身是不是數據庫,從嚴格的意義上來說,XML僅僅意味著XML文檔。XML本身并不能和數據庫掛上鉤,但是加上一些其他的輔助工具,我們可以把整個XML看成是一個數據庫系統,XML文本本身可以看成是數據庫中的數據區,DTD或者Schemas可以看成是數據庫模式設計,XQL可以看成是數據庫查詢語言,SAX或DOM可以看成是數據庫處理工具。

為什么要把XML數據庫相聯系呢?舉個例子來說明這個問題,比如你有一個電子商務的應用程序需要使用XML來進行數據傳輸。你所關心的是數據本身應該具有的結構,你并不關心它在文檔中實際的存儲結構。如果你的應用程序很簡單的話,基本的文件系統將滿足你的需求,但如果應用本身很復雜的話,你就需要一個完整的開發應用環境來支持XML。從另一個方面來說,假設你有一個Web站點,它的內容是由一系列XML文檔構成的,你不僅要管理這個站點,同時你需要提供給用戶一個搜索該站點內容的機制。而這些都需要借助數據庫來實現。

選擇一個數據庫的最重要的因素是你是否需要數據庫來存儲數據或者是文檔,如果你想要存儲數據的話,你需要一個關系數據庫或者是對象數據庫來存儲實際的數據,同時你需要中間件在數據庫和XML文檔之間建立橋梁關系,從另一方面來說,如果你想要存儲文檔,你需要一個內容管理系統,通過它進行文檔的存儲。實際上,XML文檔可以分到兩大類:以數據為中心或者以文檔為中心。

以數據為中心的文檔:數據為中心的文檔有非常規則的結果,比如關于銷售訂單或者是飯店菜單的XML文檔。以數據為中心的文檔通常是為機器設計的,也就是說主要是方便機器進行處理。通常,任何Web站點可以動態的構建HTML文檔,其步驟如下,根據用戶的查詢請求找到相關的面向數據的XML文檔,然后通過XSL對XML文檔進行轉化,讓基于HTML的瀏覽器能夠方便的瀏覽結果。

以文檔為中心的文檔:以文檔為中心的文檔具有不規則的結構,而且數據的粒度也比較大。具體的例子如書本、電子郵件、廣告等等。以文檔為中心的文檔主要是用人類而設計的。

為了存儲或提取數據,你可以使用數據庫和中間件,或者你可以使用XML服務器,或者是基于XML的Web服務器。為了存儲文檔,你需要一個內容管理系統或者是可持久化的DOM實現。可以在數據庫或者是XML文檔中發現大量基于數據為中心的文檔。這樣我們就需要工具把數據從數據庫轉化成XML文檔,或者把一個XML文檔轉換到數據庫中。同時需要注意的是,當把數據存儲到數據庫中的時候,需要拋棄一個文檔的很多信息,比如它的名稱和DTD,它的物理結構,比如實體定義和使用,一個節點下元素的位置排列,二進制數據的存儲方式等等。同樣,當從數據庫中提取數據的時候,產生的XML文檔通常不包含CDATA或者是實體使用的說明,而且節點下元素的排列位置只和數據庫中記錄的順序位置一致。實際上一個XML文檔存儲到數據庫中,再由該數據庫生成此XML文檔,這前后兩個文檔格式幾乎不可能完全一樣。

為了在數據庫和XML文檔之間傳遞數據,必須在文檔結構和數據庫結構之間建立映射,這種映射可以有兩個分類:模板驅動和模型驅動。

1.基于模板驅動的映射:需要在一個模板中嵌入命令,并用數據傳輸中間件進行處理。比如,考慮下面的模板:

  1. <?xml version="1.0"?>  
  2.  
  3. <FlightInfo>  
  4.  
  5. <Intro>The following flights have available seats:</Intro>  
  6.  
  7. <SelectStmt>SELECT Airline, FltNumber, Depart, Arrive FROM Flights</SelectStmt>  
  8.  
  9. <Conclude>We hope one of these meets your needs</Conclude>  
  10.  
  11. </FlightInfo> 

注意其中嵌入了一個SELECT語句。當用數據傳輸中間件進行處理的時候,每一個SELECT語句都會被它的結果所代替,用XML格式化形式表現為:

  1. <?xml version="1.0"?>  
  2.  
  3. <FlightInfo>  
  4.  
  5. <Intro>The following flights have available seats:</Intro>  
  6.  
  7. <Flights>  
  8.  
  9. <Row>  
  10.  
  11. <Airline>ACME</Airline>  
  12.  
  13. <FltNumber>123</FltNumber>  
  14.  
  15. <Depart>Dec 12, 1998 13:43</Depart>  
  16.  
  17. <Arrive>Dec 13, 1998 01:21</Arrive>  
  18.  
  19. </Row>  
  20.  
  21. ...  
  22.  
  23. </Flights>  
  24.  
  25. <Conclude>We hope one of these meets your needs</Conclude>  
  26.  
  27. </FlightInfo> 

基于模板驅動的映射可以是相當靈活的,比如,一些產品允許你把結果集放到XML文檔的任何位置,同時可以對SELECT語句設置參數,并且可以使用for循環語句和if條件語句等。值得注意的是,當前基于模板驅動的映射只能應用于在關系數據庫和XML文檔之間傳遞數據。

基于模型驅動的映射:也就是說把數據從數據庫傳送到XML文檔是用一個具體的模型實現的,這樣,XSL可以被結合到基于模型映射的產品上。在XML文檔中,兩種模型是很常見的:表格模型(table model)和數據專用對象模型(data-specific object model)。

2.表格模型:許多中間件軟件包用表格模型在XML文檔和關系數據庫之間傳遞數據。它把XML文檔表示為一個單一的表格或者是表格的集合。這樣,一個XML文檔的結構可以用如下的形式表示:

  1. <database>  
  2.  
  3. <table>  
  4.  
  5. <row>  
  6.  
  7. <column1>...</column1>  
  8.  
  9. <column2>...</column2>  
  10.  
  11. ...  
  12.  
  13. </row>  
  14.  
  15. ...  
  16.  
  17. </table>  
  18.  
  19. ...  
  20.  
  21. </database> 

這里關鍵字"talbe"在把數據從數據庫傳遞到XML文檔的時候,表示一個單一的結果集,把數據從XML文檔傳遞到數據庫的時候,表示表示一個單一的表格或者視圖。但是,當結果集合不只一個的時候,或者當XML文檔包括多個復雜嵌套的時候,這種傳遞方式就不能適應了。

3.數據專用的對象模型:把一個XML文檔表示為由數據對象構成的樹,每一個元素類型和對象相對應。主要在面向對象和層次數據庫中使用,通過傳統的關系-對象模型也可以映射到關系數據庫中。注意這種模型并不是文檔對象模型(DOM)。比如,銷售訂單文檔可以被看成一個對象樹,其中包括五個類:Orders, SalesOrder, Customer, Line, 和Part。如下所示:

基于XML的數據庫總體分析

當把一個XML文檔看成是一個以數據為中心的對象樹的時候,元素不一定和對象相對應,比如,一個元素只包含PCDATA,它能夠被當成一個屬性,它包括一個單一的,標量值。

實際上在XML和數據庫之間進行數據轉化的時候,需要考慮兩個過程:一個是從數據庫模式中產生DTD,另外一個是根據DTD生成數據庫模式

從一個DTD中生成一個關系模式的步驟如下:

1. 對每一個元素,產生一個表和一個主鍵列。

2. 對每一個有混合內容的元素,產生一個獨立的表格,用來存儲PCDATA,并通過父表的主鍵和父表相聯。

3. 對元素類型中的每一個單一值的屬性,對具有只有PCDATA內容的子元素(該子元素按順序出現),產生一個單獨的列,如果子元素類型或者值是可以選擇的話,該列就應該可以允許為NULL類型。

4. 對有多個值的屬性和可以出現多次的子元素(該子元素PCDATA)的話,需要創建一個單獨的表來存儲這些值,并通過父表的主鍵和父表相聯。

5. 對每一個包含元素或者混合內容的子元素來說,通過父表的主鍵把父元素和子元素聯接起來。

從一個關系數據庫模式構建DTD步驟如下:

1. 對每一個表,創建一個元素。

2. 對表中的每一列,創建一個屬性或者是一個只有PCDATA 內容的子元素。

3. 根據表中的每一主鍵/外鍵關系,創建該表元素的子元素。

本文就介紹到這里,更多的內容我們會在下節中繼續介紹。

【編輯推薦】

  1. 基于XML的數據庫總體分析(下)
  2. 開發BI系統時的需求分析研究
  3. 嵌入式數據庫Sqlce讀取數據過程簡介
  4. 如何不使用數據庫緩存,還達到實時更新
責任編輯:趙鵬 來源: 天極網
相關推薦

2011-07-12 10:09:08

XML數據庫服務器

2009-02-04 17:36:11

ibmdwXML

2010-04-12 14:55:26

Oracle數據庫

2011-03-08 08:49:55

MySQL優化單機

2009-07-31 16:29:47

ibmdwXML

2020-03-16 08:16:16

數據庫數據安全

2020-03-14 16:37:09

數據庫IT技術

2011-04-02 14:38:42

SQL數據庫算法

2024-08-22 14:39:34

2010-08-26 09:13:02

Infobright

2016-11-22 23:02:49

2010-05-07 13:14:22

數據庫負載均衡

2011-06-07 10:12:27

2025-04-08 06:00:00

2011-07-26 11:12:05

DBXML數據庫

2013-03-25 10:26:19

XML數據庫

2011-08-22 13:28:56

FOR XMLSQL Server

2010-08-03 14:40:05

DB2數據庫

2011-08-22 10:32:32

SQL Server數XML節點XML塊

2024-03-13 10:40:00

性能探測工具SQL語句數據庫
點贊
收藏

51CTO技術棧公眾號

久久青草免费| 三级国产三级在线| 成人在线免费观看视频| 亚洲精品久久久久久下一站| 97影院在线观看| 日本一区免费视频| 国产情侣第一页| 性8sex亚洲区入口| 91免费看网站| 日韩av专区| 欧美在线视频一区二区| 日韩亚洲国产免费| 在线日韩中文字幕| 国产免费拔擦拔擦8x高清在线人| 3d动漫精品啪啪一区二区竹菊 | 黑人糟蹋人妻hd中文字幕| 韩国三级中文字幕hd久久精品| 久久久福利视频| 激情久久久久久久| 国产偷久久久精品专区| 国内精品美女在线观看| 国产一区福利视频| 日韩成人精品在线观看| 男同互操gay射视频在线看| 国产精品一区免费视频| 日本福利视频一区| 久久久亚洲精品石原莉奈 | 国产最新精品精品你懂的| 一区二区不卡在线观看| 国产成人av资源| 久在线观看视频| 国产精品国产自产拍在线| 久草在线国产| 精品美女国产在线| 精品国产丝袜高跟鞋| 日韩成人在线视频| 精品国产不卡一区二区| 97在线观看视频国产| 日韩dvd碟片| 极品尤物一区二区三区| 国内精品自线一区二区三区视频| 欧美黄色免费网址| 久久精品日韩一区二区三区| 亚洲社区在线| 91精品国产色综合久久| 在线日本欧美| 国产成人久久精品| 久久www成人_看片免费不卡| www.九色.com| 亚洲天堂a在线| 久久日韩视频| 最近2019中文字幕在线高清| 精品一区在线| 亚洲高清乱码| 成人欧美一区二区三区小说 | 97精品国产99久久久久久免费| 欧美激情视频网站| 中文视频一区| 久久久99精品视频| 亚洲男人电影天堂| 欧美6一10sex性hd| 555www成人网| 奇米一区二区三区| 91在线视频18| 久久成年人免费电影| www国产精品| 国产精品久久久久久久久久久久冷| 老司机精品视频在线| 亚洲免费看av| 欧美日韩综合不卡| 欧美视频第一| 国产日韩欧美中文| 久久91精品国产91久久小草 | 欧美成人黄色网址| 欧美在线一二三| a一区二区三区亚洲| 91精品国产一区二区三区动漫| 成人一区二区三区中文字幕| 日本福利片高清在线观看| 最近2019中文字幕一页二页| 欧美精选一区| 乱小说综合网站| 日韩经典一区二区三区| 66视频精品| 成人毛片视频网站| 91精品国产综合久久久久久| 欧美男男freegayvideosroom| 亚洲一二三区精品| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 成人网18入口| 亚洲成人久久一区| 久久亚洲在线| 37pao成人国产永久免费视频| 欧美日韩免费一区二区三区视频| 91嫩草精品| 中文字幕成人一区| 欧美亚洲高清一区| 精品一区二区三区中文字幕老牛| 国产欧美日韩网站| 亚洲国产99精品国自产| 亚洲片区在线| 日本啊v在线| 国产精品mp4| 国产精品久久久久久一区二区三区| 美女一区网站| 亚洲精品免费在线看| 欧美日韩视频专区在线播放| 欧美三级三级| 羞羞视频立即看| 欧美精品在线网站| 成人av在线影院| 中文不卡1区2区3区| 日本一区二区三区视频免费看| 色视频成人在线观看免| 欧美综合久久| xxxx69视频| 97超级碰碰人国产在线观看| 99久久伊人精品| 毛片无码国产| 91九色国产ts另类人妖| 日韩一卡二卡三卡| 久久狠狠一本精品综合网| 137大胆人体在线观看| 91文字幕巨乱亚洲香蕉| 精品久久久久久久久久久| 日产精品一区二区| 传媒在线观看| 国产精品视频区| 国内揄拍国内精品久久| 久久国产三级精品| 国产高清视频在线| 欧美一级淫片丝袜脚交| 国产精品你懂的| 国产日韩欧美中文在线| 日韩日韩日韩日韩日韩| 一本色道久久88精品综合| 国产九九视频一区二区三区| 性欧美freesex顶级少妇| 懂色av粉嫩av蜜臀av| 亚洲天堂成人在线| gogo大胆日本视频一区| 综合久草视频| wwww.国产| 国产精品99久久久久久久久久久久| 中文字幕一区二区三| 一区二区美女| 亚洲社区在线| 国产精品一区二区三区观看| 欧美日韩小视频| 蜜臀av性久久久久蜜臀av麻豆| 僵尸再翻生在线观看免费国语| japanese在线视频| 亚洲天天在线日亚洲洲精| 99精品国产一区二区三区不卡| 在线精品国产亚洲| 国产一级黄色电影| 成人久久久久久久| 欧美一区二区三区在线看| 国产在线视频一区二区三区| 日本.亚洲电影| 乱小说综合网站| 成人性生交xxxxx网站| 在线观看视频一区二区欧美日韩| 国产一区亚洲| 女人黄色免费在线观看| 国产欧美日韩网站| 136fldh精品导航福利| 五月天亚洲色图| 亚洲av综合色区| 欧美激情第99页| 欧美视频一二三| 久久超碰97人人做人人爱| 成人国产精品入口免费视频| 黄页在线观看| 国产精品成人观看视频免费| 日韩欧美在线1卡| 91看片淫黄大片一级| 成人精品影院| 精品日韩美女| 丝袜亚洲另类丝袜在线| 中文另类视频| 曰韩少妇与小伙激情| 茄子视频成人在线观看| 久久精品国产精品亚洲| 同产精品九九九| 久久精品99国产国产精| 91成人在线精品视频| 国产高清视频在线| 东北少妇不带套对白| 成人福利网站在线观看| 亚洲欧美国产一本综合首页| 亚洲乱码一区二区三区在线观看| 亚洲综合欧美| 色妞ww精品视频7777| www视频在线观看免费| 131美女爱做视频| 国产精品v欧美精品v日韩精品| 久久国产精品首页| 8v天堂国产在线一区二区| 国产精品视频线看|