Ⅰ 怎樣將xml文件存入access資料庫中
文件/獲取外部數據/導入...
在導入對話框最下面的文件類型選(*.xls)
然後是導入數據表向導,按步驟來就可以了,excel的格式最好能直接對上access,不然導進去表就亂了
按照access的使用方法既可讀取調用
希望能幫助你。
Ⅱ 支持xml欄位類型的資料庫有哪些
sql2005資料庫引擎引入了新的 xml 數據類型,這種數據類型支持在資料庫中存儲 XML 文檔和片段。XML 實例可以存儲在用 xml 類型創建的列、存儲過程參數或變數中。
Ⅲ 干貨分享|優炫資料庫支持多業務場景(二)
上期分享中,我們介紹優炫資料庫支持的數據存儲方式。
戳: 干貨分享 優炫資料庫支持多業務場景
本期,我們來講講優炫資料庫支持的多種數據類型。
基本數據類型存儲與管理
優炫資料庫擁有完備的數據類型,內置數據類型包括 數字類型、貨幣類型、字元類型、日期/時間類型、布爾類型、枚舉類型、網路地址類型、位串類型、文本搜索類型等, 支持使用 serial 類型創建表自增列。
通常為了加快指定過濾條件下從表中查詢數據的速度,可以為表的某個欄位或某幾個欄位建立索引。資料庫對基本數據提供多種索引類型:B-tree、Hash、GIN(倒排序索引)和 BRIN(資料庫塊范圍索引)。每一種索引類型使用了一種不同的演算法來適應不同類型的查詢。 默認情況下, CREATE INDEX命令創建適合於大部分情況的B-tree索引。
XML/JSON數據類型存儲與管理
優炫資料庫內置半結構化XML、JSON、JSONB數據類型。
xml數據類型可以被用來存儲XML數據,它比直接在一個text域中存儲XML數據的優勢在於,它會檢查輸入值的結構是不是良好,並且有支持函數用於在其上執行類型安全的操作。xml類型可以存儲結構良好(如XML標准所定義)的「文檔」,以及「內容」片段,它們由XML標准所定義,這意味著內容片段中可以有多於一個的頂層元素或字元節點。通過表達式來評估一個特定的xml值是一個完整文檔或者僅僅是一個文檔片段。
JSON類型強制檢查數據有效性,使用專門的操作符和內置函數操作數據,保留空格,重復鍵和順序等。JSONB是解析輸入後保存的二進制數據,刪除了數據中的空格、調整了順序、優化了存儲、保留最後一個重復鍵值,可被索引。和 JSON 一樣,JSONB支持嵌入式的文檔和數組。JSONB 由若干個鍵值對存儲為單個實體,這種實體稱為文檔。 JSONB具有以下幾個特性:輕量級(Lightweight),可遍歷性(Traversable),高效性(Efficient)。 由於所需存儲更小,JSONB通常是首選格式。兩者區別在於:JSON類型寫快讀慢,JSONB類型寫慢讀快,支持SQL/JSON路徑語言。此外,資料庫支持對這兩類數據的全文檢索。
GIS空間類型存儲與管理
優炫資料庫支持GIS的地理信息應用,支持PostGIS、ArcGIS、超圖,支持OpenGIS聯盟(開放地理信息系統,OGC)抽象數據類型的SQL3規范,提供對地理矢量數據、3D模型、線性參考數據的組織、存儲、空間索引和管理。
Geometry(幾何對象類型)是優炫資料庫的一個基本存儲類型, 空間數據都會以Geometry的形式存儲在資料庫里,本質是個二進制對象。使用OGC推薦的WKT(Well-Known Text)和WKB(Well-Known Binary)格式進行描述,大幅增加了易用性,WKT與WKB基本數據類型(矢量數據)包括:
l 點 (POINT):例如POINT(0 0);
l 線 (LINESTRING):例如LINESTRING(0 0,1 1,1 2)
l 面 (POLYGON多邊形):例如POLYGON((0 0,4 0,4 4,0 4,0 0)) 簡單多邊形,例如POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1)) 多邊形有一個內部的"孔洞(hole)";
l 多點 (MULTIPOINT):例如MULTIPOINT((0 0),(1 2));
l 多線 (MULTILINESTRING):例如MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4));
l 多面 (MULTIPOLYGON):例如MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1)));
l 幾何集合 (GEOMETRYCOLLECTION):例如GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4))。
柵格空間數據類型raster用於表示jpeg,tiff,png,DEM模型這樣文件格式的數據。每一個柵格至少有1個波段,每個波段又有一系列像素值,柵格數據是轉換成地理坐標的。可以從資料庫外部導入已有柵格數據,也可在資料庫內創建柵格數據。下面是一個在資料庫內部創建柵格數據的示例:
拓撲類型和函數用於管理拓撲結構,比如面、邊界和點。
創建一個帶有柵格記錄的柵格列的表可以用下面的SQL完成:
如果創建的柵格不依賴於其他柵格,那麼可以使用函數:
ST_MakeEmptyRaster,接著使用ST_AddBand添加柵格數據。也可以使用geometry對象來創建柵格你需要使用函數ST_AsRaster。可能還需要和其他函數比如函數ST_Union 或函數 ST_MapAlgebraFct 或者其他地圖代數系列函數聯合使用。甚至還有一些根據一些已經存在的柵格表創建新的柵格表的可選函數。例如可以使用函數ST_Transform 根據一個已有的柵格表在其他投影系中創建一個新的柵格表。然後通過下SQL命令創建一個空間索引:
通過空間索引R-Tree實現空間數據查詢和操作,R-Tree將數據分解為矩形(rectangle)、子矩形(sub-rectangle)和子-子矩形(sub-sub rectangle)等。它是一種可自動處理可變數據的密度和對象大小的自調優(self-tuning)索引結構。
圖數據存儲與管理
圖數據以圖關系這種數據結構存儲,把圖數據的頂點和邊信息存儲到關系型數據類型中,這些信息包括:
l 頂點(Vertices):一個實體一個頂點,一個實體可以有多個屬性。
l 邊(Edges):兩個實體之間的連接線。
l 屬性:實體和邊都可以有多個屬性。形象舉個例子,一個實體對應關系表中一行記錄,一個實體的屬性代表關系表中這行記錄的所有欄位和值構成的鍵值對。
在優炫資料庫中圖數據通過關系型數據進行存儲,這些數據與圖模型中的數據相對應。例如通過下SQL語句建立存儲圖數據的表:
然後新增加數據,後續就可以根據這些數據進行圖相關的計算和分析了。
時序數據存儲與管理
時序數據存儲和管理,通過把時序數據存儲到關系型數據類型中。時序數據是指時間序列數據。時間序列數據是同一統一指標按時間順序記錄的數據列。在同一數據列中的各個數據必須是同口徑的,要求具有可比性。時序數據可以是時期數,也可以時點數。時間序列分析的目的是通過找出樣本內時間序列的統計特性和發展規律性,構建時間序列模型,進行樣本外預測。
文檔/圖片/視頻類型存儲與管理
優炫資料庫可存儲任意未知具體內容的圖片、聲音、視頻等非結構化數據,支持 GB 級大對象數據類型與流式數據訪問。可藉助於資料庫圖形化管理工具、應用程序、第三方工具等查看這些非結構化數據。根據業務需要也可藉助資料庫插件讀取或識別這些非結構化數據的內容用於數據分析。
優炫資料庫支持多種二進制數據類型,包括:Bytea、OID、Blob、raw、Varbinary、Longvarbinary。
自定義數據類型存儲與管理
優炫資料庫可自定義數據類型、索引、函數等資料庫對象。 新增加的數據類型可以是新數據類型,也可以是已知幾個數據類型的復合數據類型。
模分析型資料庫用戶可在資料庫中使用CREATE TYPE或CREATE DOMAIN命令增加新的數據類型;可通過自定義函數或存儲過程對數據進行各種處理。
CREATE TYPE在當前資料庫中注冊一種新的數據類型,定義數據類型的用戶將成為它的擁有者。五種形式的CREATE TYPE,它們分別創建組合類型、枚舉類型、 范圍類型、基礎類型或者 shell 類型。shell 類型僅僅是一種用於後面要定義的類型的佔位符,通過發出一個不帶除類型名之外其他參數的CREATE TYPE命令可以創建這種類型。在創建范圍類型和基礎類型時,需要 shell 類型作為一種向前引用。
CREATE DOMAIN創建一個新的域。 域本質上是一種帶有可選約束(在允許的值集合上的限制)的數據類型。域主要被用於把欄位上的常用約束抽象到一個單一的位置以便維護。例如,幾個表可能都包含電子郵件地址列,而且都要求相同的 CHECK 約束來驗證地址的語法。可以為此定義一個域,而不是在每個表上都單獨設置一個約束。
Ⅳ 資料庫的類型
資料庫大致可以這么分類:
1關系資料庫
1.1大型商業資料庫:支持數據存儲量大,訪問效率高,適合大型企業應用,收費較高,具體包括:
oracle
db2(ibm)
sybase(這個是比較早的,公司現在不做資料庫了)
sql
server,版本包括2000,2005,2008,
2012等
1.2
中小型應用資料庫:
sql
server
2000
acess
visual
foxpro
1.3
中小型開源資料庫:
mysql(這個開源資料庫在一些大型應用中會以集群的方式使用)
postgresql
sqlite
1.4嵌入式資料庫:
sqlite也可以算在這里
1.5
列存儲模式資料庫:主要用於研究和數據倉庫應用
monetdb
2
面向對象資料庫
berkeley
db(現在已經被oracle買下了)
oracle也提供了面向對象的功能
3
xml資料庫,這類資料庫一般是附屬於關系資料庫功能的,只有研究型的是處理純xml文檔的
db2
,附加xml處理版本
oracle,裡麵包含xml查詢功能
sqlserver,包含xml數據查詢功能
4
nosql資料庫,目前大型互聯網公司和微博等網站廣泛使用的數據存儲系統,典型的有:
hbase
cassandar
mongodb
還有很多,這里不逐一列列舉了
Ⅳ 關系資料庫中如何存儲xml數據
XML文檔的一個普通存在的問題是如何持久保存(Persist) XML文檔。在一個關系資料庫中存儲XML文檔是一個非常常用的方法,因為當前關系資料庫的使用非常廣泛。
將XML文檔插入到資料庫中不是簡單的方法,這其中需要很多其它額外的考慮。現在我提供了一些技巧,你可以使用這些技巧在關系資料庫中存儲XML文檔。
1、文檔表:
一個最簡單和容易的方法是,在一個具有單一文本域的資料庫中建立一個表,由此你可以在表中存儲XML數據。由於這些特定資料庫和特定XML文檔,這一文本域可以是一個二進制大型對象(BLOB,binary large object)。有些資料庫需要存儲的是大量的BLOB數據而不是文本。
這一方法的優點是,將數據存入表中變得相當簡單,而且重新獲得也同樣很容易。這種文檔表的管理也很方便。
這種方法的缺點在於你將可能無法進行一些有用的文本搜索,並且在放置特定文檔時也會碰到困難,因為沒有任何方法來識別表中的文檔;
2、主鍵表:
下一個比較復雜的方法是使用一個主鍵表(keyed table)。這種方法與文檔表非常相似,但此時你的表中包含兩個域:一個唯一的主鍵和XML文檔。使用這種方法,你既可以具有存儲和獲得整個XML文檔的簡潔性,也可以使用一些管理這些唯一主鍵的復雜操作;
建立主鍵的一種通用方法是使用XML文檔中的MD5求和檢驗。請記住如果你想在表中包括多份XML文檔,這一方法遠不足夠。在這種情況下,你可以添加額外的key fields標識鍵列。
與文檔表一樣,主鍵表很容易執行,它可以在表中查找特定的文檔。然而,與文檔表一樣,你仍然不能執行任何文本查詢;
3、有限離散表:
這一方法更加復雜,但它給你帶來更多的靈活性。使用有限離散表,你可以建立用於存儲有限分散的XML信息的表,這是什麼意思?請看以下的例子:
假設你具有一個順序文檔。在文檔的根部(Root)有一個Order元素,這一元素包括CustomerInfo, ItemInfo, 以及hippingInfo元素。在資料庫中,你可以建立一個OrderDoc表,表中包含一個ID域,一個CustomerInfoId域,一個ItemInfoId域,一個ShippingInfoId域。然而,你還可以建立一個CustomerInfoId表,一個ItemInfoId表,一個ShippingInfoId表。這些表都包含很多信息相關的各自的ID域,這些信息包括用戶,選項,郵寄信息。在這一表中,還包含著其它額外的等級。比如,CustomerInfo表包含AddressInfo域,即從AddressInfo表中引用的入口。
這種方法的優點是,允許你更緊密地建立XML數據的模型。這種方法使得你進行數據的一些成熟的查詢。它也使得數據的使用性更強,因為你不再需要XML分析器來讀取數據。
不足之處是這種方法需要更多的精力來開發和維護。這意味著每一文檔都需要解析成分離的部分,然後存儲在資料庫中。如果這一過程沒有得以很好管理,有可能會丟失一些數據。而且,這也意味著,當從一個資料庫中獲得一個XML文檔時,你不得不連接這些分散的部分。
Ⅵ XML與關系資料庫的關系
資料庫技術及其應用系統經歷了從層次資料庫、網狀資料庫到關系資料庫以及面向對象資料庫的發展,在傳統的商業和事務處理領域內逐步成熟,取代了原有的基於文件系統的數據處理方式,成為計算機信息系統中的重要基礎和支柱。但隨著Internet的飛速發展,Web的出現改變了人們習慣的處理方式,也給資料庫技術提出了必須面對的重要問題:即如何有效地存儲和管理Web上的數據(文檔),使其既能被高效地操作和維護,又能在Internet平台上方便地表示和交換。
XML技術自出現以來發展非常迅速,在許多領域內得到廣泛的支持而有著廣闊的應用前景。例如電子數據交換、電子商務等更是將XML作為一種基礎性、支柱性的技術來看待。
1、資料庫簡史
資料庫系統是隨著計算機技術的不斷發展,在特定的歷史時期、特定的需求環境下出現的。在1946年的第一台計算機到20世紀60年代這漫長的20年裡,計算機操作系統主要局限於文件的操作,對數據的管理也主要是通過文件系統來實現。進行計算所需要的各種數據存放在各自的文件里,使用這些數據時將文件打開,讀取文件中的數據到內存中,當計算完畢後,將計算結果仍舊寫入到文件中去,它的不足主要集中在無法對數據進行有效的統一管理。針對文件系統的重要缺點,人們逐步發展了以統一管理數據和共享數據為主要特徵的系統,即資料庫系統。1964年,美國通用電氣公司開發成功了世界上的第一個資料庫系統IDS(IntegratedDataStore)。IDS奠定了網狀資料庫的基礎,並得到了廣泛的發行和應用,成為資料庫系統發展史上的一座豐碑。1969年,美國國際商用機器公司(IBM)也推出世界上第一個層次資料庫系統IMS(InformationManagement System),同樣在資料庫系統發展史上佔有重要的地位。
70年代初,E.F.Codd在總結前面的層次、網狀資料庫優缺點的基礎上,提出了關系數據模型的概念及關系代數和關系演算。在70年代,關系資料庫系統無論從理論上還是實踐上都取得了豐碩的成果。在理論上確立了完整的關系模型理論、數據依賴理論和關系資料庫的設計理論;在實踐上,世界上出現了很多著名的關系資料庫系統,比較著名的如SystemR、INGRES、Oracle等。
與文件系統相比,資料庫系統有幾個方面的特點:向用戶提供高級的介面;向用戶提供非過程化的資料庫語言(即SQL語言);查詢的處理和優化;並發控制;數據的完整性約束。
進入80年代之後,計算機硬體技術的飛速提高促使計算機應用不斷深入,產生了許多新的應用領域,例如計算機輔助設計、計算機輔助製造、計算機輔助教學、辦公自動化、智能信息處理、決策支持等。這些新的領域對資料庫系統提出了新的要求。但由於應用的多元化,不能設計出一個統一的數據模型來表示這些新型的數據及其相互關系,因而出現了百家爭鳴的局面,產生了演繹資料庫、面向對象資料庫、分布式資料庫、工程資料庫、時態資料庫、模糊資料庫等新型資料庫的研究和應用。
2、XML簡介
XML推薦標准1.0版發布於1998年2月,之後迅速在全球掀起了XML應用的浪潮。XML是一種描述型的標記語言,與HTML同為SGML(標准通用標記語言,ISO-8879國際標准)的一種應用。由於XML在可擴展性、可移植性和結構性等方面的突出優點,它的應用范圍突破了HTML所達到的范圍。
一篇XML文檔由標記和內容組成。XML中有六種標記:元素(elements)、屬性(attributes)、實體引用(entityreferences)、注釋(comments)、處理指令(processinginstructions)和CDATA段(CDATAsections)。XML與HTML最顯著的不同是XML文檔中引入了「文檔類型聲明」(Document Type Declarations)。DTD使文檔可以與分析器交流關於它的內容的元信息。DTD的出現,賦予了XML文檔可擴展性、結構性和可驗證性,使XML具備了類似於資料庫的一些性質,可以利用XML來組織和管理信息;又可以與HTML一樣在瀏覽器中方便地表示,在Internet上高效地傳遞和交換。考慮到與HTML的兼容,DTD並不是XML文檔必需的成份。具有DTD的XML文檔稱作「Valid」,否則就是「Well-formed」。
目前,處理XML文檔的方式主要有SAX與DOM兩種。SAX(SimpleAPIforXML)是一種基於流的、以事件處理方式工作的介面。SAX 2.0在2000年5月發布,增強了許多功能,包括對名字空間的支持。DOM(Document Object Model)則是在對XML文檔進行分析後,在內存中建立起一個完整的樹結構,然後在此基礎上進行各種操作。簡單地比較來看,SAX對系統資源要求低、速度快,但對文檔的操作是只讀的;DOM的處理能力強大,但要求大量的系統資源,尤其是對於大的文檔。而後還出現了Xpath和Xpointer用以完成XML的搜索和轉換;XSL、XSLT和SOAP用以完成XML的遠程對象訪問,XML Query Languages的出現使XML查詢語言可用於任何XML文檔。
3、XML與資料庫
XML文件是數據的集合,它是自描述的、可交換的,能夠以樹型或圖形結構描述數據。XML提供了許多資料庫所具備的工具:存儲(XML文檔)、模式(DTD,XMLschema,RE1AXNG等)、查詢語言(XQuery,XPath,XQL,XML-QL,QUILT等)、編程介面(SAX,DOM,JDOM)等。但XML並不能完全替代資料庫技術。XML缺少作為實用的資料庫所應具備的特性:高效的存儲、索引和數據修改機制;嚴格的數據安全控制;完整的事務和數據一致性控制;多用戶訪問機制;觸發器、完善的並發控制等。因此,盡管在數據量小、用戶少和性能要求不太高的環境下,可以將XML文檔用作資料庫,但卻不適用於用戶量大、數據集成度高以及性能要求高的作業環境。
隨著Web技術的不斷發展,信息共享和數據交換的范圍不斷擴大,傳統的關系資料庫也面臨著挑戰。資料庫技術的應用是建立在資料庫管理系統基礎上的,各資料庫管理系統之間的異構性及其所依賴操作系統的異構性,嚴重限制了信息共享和數據交換范圍;資料庫技術的語義描述能力差,大多通過技術文檔表示,很難實現數據語義的持久性和傳遞性,而數據交換和信息共享都是基於語義進行的,在異構應用數據交換時,不利於計算機基於語義自動進行正確數據的檢索與應用;資料庫屬於高端應用,需要昂貴的價格和運行環境。而隨著網路和Internet的發展,數據交換的能力已成為新的應用系統的一個重要的要求。XML的好處是數據的可交換性(portable),同時在數據應用方面還具有如下優點:(1)XML文件為純文本文件,不受操作系統、軟體平台的限制;(2)XML具有基於Schema自描述語義的功能,容易描述數據的語義,這種描述能為計算機理解和自動處理;(3)XML不僅可以描述結構化數據,還可有效描述半結構化,甚至非結構化數據。
4、XML文件的存儲
XML文件的存儲方式有三大類:(1)將文件存儲於文件系統(StoringDocumentsinthe File System);(2)將文件存儲於BLOB(Storing Documents in BLOBs),利用資料庫的事務管理、安全、多用戶訪問等優點。此外許多關系資料庫提供的檢索工具可以進行全文檢索、近似檢索、同義詞檢索和模糊檢索。其中某些工具將會支持XML,這樣就可消除將XML文件作為純文本檢索所帶來的問題。(3)將文件存儲於原生XML資料庫(Native XML Databases,NXD)。NXD是專用於存儲XML文件的資料庫,支持事務管理、安全、多用戶訪問、編程API和查詢語言等。與其它資料庫的唯一區別在於其內部模型是基於XML的。其中,最重要的存儲方式當屬原生XML資料庫。
4.1原生XML資料庫
原生XML資料庫(NativeXMLDatabases)為XML文檔定義了一個(邏輯)模型,並根據該模型存取文件。這個模型至少應包括元素、屬性、PCDATA和文件順序。其例子有XPath數據模型、XMLIn-foset以及DOM所用的模型和SAX 1.0的事件。它以XML文件作為其基本存儲單位,對底層的物理存儲模型沒有特殊要求。例如,它可以建在關系型、層次型或面向對象的資料庫之上,或者使用專用的存儲格式,比如索引或壓縮文件。
NXD最適於存儲以文檔為中心的文件。這是由於NXD保留了文件、順序、處理指令、注釋、CDA-TA塊以及實體引用等,而支持XML的資料庫XED(XML-enableddatabase)無法做到。XED是在原有資料庫基礎上擴展了XML支持模塊,完成XML數據和資料庫之間的格式轉換和傳輸。從存儲粒度上,可以把整個XML文檔作為RDBMS表中一行,或把XML文檔進行解析後,存儲到相應的表格中。為了支持W3C的一些XML操作標准,Xpath、XED提供一些新的原語(如Oracle9iR2增加了一些數據包來操作XML數據等),並優化了XML處理模塊.
Ⅶ XML技術與資料庫的發展趨勢分析
資料庫技術及其應用系統經歷了從層次資料庫 網狀資料庫到關系資料庫以及面向對象資料庫的發展 在傳統的商業和事務處理領域內逐步成熟 取代了原有的基於文件系統的數據處理方式 成為計算機信息系統中的重要基礎和支柱 但隨著Internet的飛速發展 Web的出現改變源激了人們習慣的處理方式 也給資料庫技術提出了必須面對的重要問題 即如何有效地存儲和管理Web上的數據(文檔) 使其既能被高效地操作和維護 又能在Internet平台上方便地表示和交換
XML技術自出現以來發展非常迅速 在許多領域內得到廣泛的支持而有著廣闊的應用前景 例如電子數據交換 電子商務等更是將XML作為一種基礎性 支柱性的技術來看待
資料庫簡史
資料庫系統是隨著計算機技術的不斷發展 在特定的歷史時期 特定的需求環境下出現的 在 年的第一台計算機到 世紀 年代這漫長的 年裡 計算機操作系統主要局限於文件的操作 對數據的管理也主要是通過文件系統來實現 進行計算所需要的各種數據存放在各自的文件里 使用這些數據時將文件打開 讀取文件中的數據到內存中 當計算完畢後 將計算結果仍舊寫入到文件中去 它的不足主要集中在無法對數據進行有效的統一管理 針對文件系統的重要缺點 人們逐步發展了以統一管理數據和共享數據為主要特徵的系統 即資料庫系統 年 美國通用電氣公司開發成功了世界上的第一個資料庫系統IDS(IntegratedDataStore) IDS奠定了網狀資料庫的基礎 並得到了廣泛的發行和應用 成為資料庫系統發展史上的一座豐碑 年 美國國際商用機器公司(IBM)也推出世界上第一個層次資料庫系統IMS(InformationManagement System) 同樣在資料庫系統發展史上佔有重要的地位
年代初 E F Codd在總結前面的層次 網狀資料庫優缺點的基礎上 提出了關系數據模型的概念及關系代數和關系演算 在 年代 關系資料庫系統無論從理論上還是實踐上都取得了豐碩的成果 在理論上確立了完整的關系模型理論 數據依賴理論和關系資料庫的設計理論 在實踐上 世界上出現了很多著名的關系資料庫系統 比較著名的如SystemR INGRES Oracle等
與文件系統相比 資料庫系統有幾個方面的特點 向用戶提供高級的介面 向用戶提供非過程化的資料庫語言(即SQL語言) 查詢的處理和優化 並發控制 數據的完整性約束
進入 年代之後 計算機硬體技術的飛速提高促使計算機應用不斷深入 產生了許多新的應用領域 例如計算機輔助設計 計算機輔助製造 計算機輔助教學 辦公自動化 智能信息處理 決策支持等 這些新的領域對資料庫系統提出了新的要求 但由於應用的多元化 不能設計出一個統一的數據模型來表示這些新型的數據及其相互關系 因而出現了百家爭鳴的局面 產生了演繹資料庫 面向對象資料庫 分布式資料庫 工程資料庫 時態資料庫 模糊資料庫等新型資料庫的研究和應用
XML簡介
XML推薦標准 版發布於 年 月 之後迅速在全球掀起了XML應用的浪潮 XML是一種描述型的標記語言 與HTML同為SGML(標准通用標記語言 ISO 國際標准)的一種應用 由於XML在可擴展性 可移植性和結構性等方面的突出優點 它的應用范圍突破了HTML所達到的范圍
一篇XML文檔由標記和內容組成 XML中有六種標記 元素(elements) 屬性(attributes) 實體引用(entityreferences) 注釋(ments) 處理指令(processinginstructions)和CDATA段(CDATAsections) XML與HTML最顯著的不同是XML文檔中引入了 文檔類型聲明 (Document Type Declarations) DTD使文檔可以與分析器交流關於它的內容的元信息 DTD的出現 賦予了XML文檔可擴展性 結構性和可驗證性 使XML具備了類似於資料庫的一些性質 可以利用XML來組織和管理信息 又可以與HTML一樣在拍裂鬧瀏覽器中方便地表示 在Internet上高效地傳遞和交換 考慮到與HTML的兼容 DTD並不是XML文檔必需襲罩的成份 具有DTD的XML文檔稱作 Valid 否則就是 Well formed
目前 處理XML文檔的方式主要有SAX與DOM兩種 SAX(SimpleAPIforXML)是一種基於流的 以事件處理方式工作的介面 SAX 在 年 月發布 增強了許多功能 包括對名字空間的支持 DOM(Document Object Model)則是在對XML文檔進行分析後 在內存中建立起一個完整的樹結構 然後在此基礎上進行各種操作 簡單地比較來看 SAX對系統資源要求低 速度快 但對文檔的操作是只讀的 DOM的處理能力強大 但要求大量的系統資源 尤其是對於大的文檔 而後還出現了Xpath和Xpointer用以完成XML的搜索和轉換 XSL XSLT和SOAP用以完成XML的遠程對象訪問 XML Query Languages的出現使XML查詢語言可用於任何XML文檔
XML與資料庫
XML文件是數據的集合 它是自描述的 可交換的 能夠以樹型或圖形結構描述數據 XML提供了許多資料庫所具備的工具 存儲(XML文檔) 模式(DTD XMLschema RE AXNG等) 查詢語言(XQuery XPath XQL XML QL QUILT等) 編程介面(SAX DOM JDOM)等 但XML並不能完全替代資料庫技術 XML缺少作為實用的資料庫所應具備的特性 高效的存儲 索引和數據修改機制 嚴格的數據安全控制 完整的事務和數據一致性控制 多用戶訪問機制 觸發器 完善的並發控制等 因此 盡管在數據量小 用戶少和性能要求不太高的環境下 可以將XML文檔用作資料庫 但卻不適用於用戶量大 數據集成度高以及性能要求高的作業環境
隨著Web技術的不斷發展 信息共享和數據交換的范圍不斷擴大 傳統的關系資料庫也面臨著挑戰 資料庫技術的應用是建立在資料庫管理系統基礎上的 各資料庫管理系統之間的異構性及其所依賴操作系統的異構性 嚴重限制了信息共享和數據交換范圍 資料庫技術的語義描述能力差 大多通過技術文檔表示 很難實現數據語義的持久性和傳遞性 而數據交換和信息共享都是基於語義進行的 在異構應用數據交換時 不利於計算機基於語義自動進行正確數據的檢索與應用 資料庫屬於高端應用 需要昂貴的價格和運行環境 而隨著網路和Internet的發展 數據交換的能力已成為新的應用系統的一個重要的要求 XML的好處是數據的可交換性(portable) 同時在數據應用方面還具有如下優點 ( )XML文件為純文本文件 不受操作系統 軟體平台的限制 ( )XML具有基於Schema自描述語義的功能 容易描述數據的語義 這種描述能為計算機理解和自動處理 ( )XML不僅可以描述結構化數據 還可有效描述半結構化 甚至非結構化數據
XML文件的存儲
XML文件的存儲方式有三大類 ( )將文件存儲於文件系統(StoringDocumentsinthe File System) ( )將文件存儲於BLOB(Storing Documents in BLOBs) 利用資料庫的事務管理 安全 多用戶訪問等優點 此外許多關系資料庫提供的檢索工具可以進行全文檢索 近似檢索 同義詞檢索和模糊檢索 其中某些工具將會支持XML 這樣就可消除將XML文件作為純文本檢索所帶來的問題 ( )將文件存儲於原生XML資料庫(Native XML Databases NXD) NXD是專用於存儲XML文件的資料庫 支持事務管理 安全 多用戶訪問 編程API和查詢語言等 與其它資料庫的唯一區別在於其內部模型是基於XML的 其中 最重要的存儲方式當屬原生XML資料庫
原生XML資料庫
原生XML資料庫(NativeXMLDatabases)為XML文檔定義了一個(邏輯)模型 並根據該模型存取文件 這個模型至少應包括元素 屬性 PCDATA和文件順序 其例子有XPath數據模型 XMLIn foset以及DOM所用的模型和SAX 的事件 它以XML文件作為其基本存儲單位 對底層的物理存儲模型沒有特殊要求 例如 它可以建在關系型 層次型或面向對象的資料庫之上 或者使用專用的存儲格式 比如索引或壓縮文件
NXD最適於存儲以文檔為中心的文件 這是由於NXD保留了文件 順序 處理指令 注釋 CDA TA塊以及實體引用等 而支持XML的資料庫XED(XML enableddatabase)無法做到 XED是在原有資料庫基礎上擴展了XML支持模塊 完成XML數據和資料庫之間的格式轉換和傳輸 從存儲粒度上 可以把整個XML文檔作為RDBMS表中一行 或把XML文檔進行解析後 存儲到相應的表格中 為了支持W C的一些XML操作標准 Xpath XED提供一些新的原語(如Oracle iR 增加了一些數據包來操作XML數據等) 並優化了XML處理模塊
NXD一般採用層次數據存儲模型 保持XML文檔的樹形結構 省掉了XML文檔和傳統資料庫的數據轉換過程 NXD還適用於存儲 天然格式 為XML的文件 NXD還可以存儲半結構化數據 在某種特定情形下提高存取速度以及存儲沒有DTD的文件(良構的文件)
原生XML資料庫的結構
原生XML資料庫的結構可分為兩大類 基於文本的和基於模型的
基於文本的NXD(Text BasedNativeXMLDatabases)將XML作為文本存儲 它可以是文件系統中的文件 關系資料庫中的BLOB或特定的文件格式 基於文本的NXD與層次結構的資料庫很相似 當存取預先定義好層次的數據時 它比關系資料庫更勝一籌 和層次結構的資料庫一樣 當以其它形式比如轉置層次存取數據時 NXD也會遇到麻煩 這個問題的嚴重程度尚未可知 很多關系資料庫都使用邏輯指針 使相同復雜度的查詢以相同的速度完成
基於模型的NXD(Model BasedNativeXMLDatabases)是根據文件構造一個內部模型並存儲這個模型 有些資料庫將該模型存儲於關系型和面向對象的資料庫中 例如在關系型資料庫中存儲DOM時 就會有元素 屬性 PCDATA 實體 實體引用等表格 其他資料庫使用了專為這種模型優化了的存儲格式 使用專用存儲格式的基於模型的NXD如果以文件的存儲順序讀取文件 其性能與基於文本的NXD相似
原生XML資料庫的特性
原生XML資料庫的特性(FeaturesofNativeXML Databases)有 ( )文件集(Document Collections) 支持集合(Collection)的概念 其作用相當於關系資料庫中的表和文件系統中的文件夾 ( )查詢語言(Query Languages) 最常用的有XPath(對多個文件的查詢作了擴充)和XQL 以及專有的查詢語言 ( )更新和刪除(Updates and Deletes) NXD對文件的更新和刪除方式從簡單的替換或刪除現有文件 到修改當前活動的DOM樹 以及用於指定如何修改文件片斷的語言 ( )事務 鎖定和並發(Transactions Locking and Concurrency) 支持事務處理 鎖定通常是對整個文檔的 所以多用戶並發性相對較低 問題的大小取決於應用程序以及 文件 的構成 ( )原生資料庫提供應用程序介面API(Application Programming Interfaces APIs) ( )NXD的一個重要特性是它可以為XML文檔提供 往返車票(round trip) 可以將XML文件存放在NXD中 而且再取回 同樣的 文件 對於以文檔為中心的應用程序來說非常重要 因為CDATA部分 實體用法 注釋和處理指令是這些文檔不可缺少的組成部分 特別是對於法律和醫學文件 按規定這些文檔必須要保持原樣 ( )外部數據(Remote Data) 某些NXD可包含有外部數據 它來自存儲在資料庫中的文檔 通常這些數據通過OD BC OLE DB或JDBC從關系數據中取出 模型可以是基於表格的或對象 關系型映射 ( )支持元素和屬性的索引
結論
XML技術的出現 使數據處理從文件方式到資料庫系統再到文件方式的循環 但新的文件方式已經與最初的文件系統有了本質的區別 格式化文檔 XML和關系資料庫在數據應用和數據管理方面各有優勢
lishixin/Article/program/net/201311/12776
Ⅷ 什麼是xml資料庫
開始討論XML和資料庫之前,我們先回答許多人都遇到過的問題:「XML是資料庫嗎?」
如果僅按資料庫這個術語的本質來看,XML文件就是資料庫,它是數據的集合。在許多方面看起來它和其他文件沒什麼區別 -- 無論如何,每個文件都含有某種類型的數據。作為一種「資料庫」格式,XML有一些優勢:例如,它是自描述的(所用的標記描述了數據的結構和類型,盡管缺乏語義),可交換的(portable)(Unicode),能夠以樹型或圖形結構描述數據。同樣它也有缺點,例如,它顯得有些繁瑣,由於要對它進行解析和文本轉換,所以數據訪問速度較慢。
一個更有用的問題就是在較為寬松的意義上,XML及其周邊技術是否可以算作「資料庫」 -- 資料庫管理系統(DBMS)。答案是「在某種程度上是(sort of)」。從正面來說,XML提供了許多資料庫所具備的東西:存儲(XML文檔), 模式(DTD, XML schema,RElAX NG 等等), 查詢語言(XQuery, XPath, XQL, XML-QL, QUILT等等),編程介面(SAX, DOM,JDOM)等等。從反面來說,它缺少一些作為實用的資料庫所應具備的特性:高效的存儲,索引,安全,事務和數據一致性,多用戶訪問,觸發器,在查詢多個文件等等。
因此,盡管在數據量小、用戶少和性能要求不太高的環境下,可以將XML文檔用作資料庫,但是卻不適用於用戶量大、數據集成度高以及性能要求高的作業環境。
XML適合於用作所謂「資料庫」的一個好例子就是 .ini文件 -- 它包含應用程序的配置信息。與其寫一個處理以逗號分隔(comma-delimited)的文件的解析器,開發一種小型的XML語言並寫一個解釋它的 SAX程序要容易的多。此外,XML允許使用嵌套的實體,而逗號分隔的文件(comma-delimited files)很難做到這點。然而,說它就是資料庫還很勉強,因為它是線性讀寫的,而且僅用在程序開始和結束時。
比較適合於XML資料庫的一些復雜的數據集就是個人通訊錄(名字,電話號碼,地址等),或用於描述瀏覽器書簽以及用Napster偷來的MP3。然而,由於dBase和Access之類的資料庫物美價廉,即使在這種情況下似乎也沒有多少理由把XML文件作為資料庫使用。XML的唯一真正好處就是數據的可交換性(portable),由於有越來越多的工具可以用來對資料庫進行XML序列化(serializing),這一點好處似乎也要打些折扣。