A. 請問《資料庫原理及其應用教程》這門課對計算機專業考研重要嗎
主要看考什麼專業的研究生,如果是計算機方面,肯定會涉及到資料庫原理及其應用方面的知識的。
資料庫原理及其應用:以關系資料庫系統為核心,系統全面地闡述了資料庫系統的基本概念、基本原理和應用技術,主要內容包括資料庫技術概述、關系資料庫、關系資料庫的標准語言sql、關系資料庫設計、資料庫保護、網路資料庫、網路資料庫管理系統SQL Server 2000、分布式資料庫系統、XML資料庫等
考研,即參加碩士研究生入學考試。其英文表述是「Take part in the entrance exams for postgraate schools」。考研首先要符合國家標准,其次按照程序:與學校聯系、先期准備、報名、初試、調劑、復試、復試調劑、錄取等方面依次進行。
B. 資料庫的類型
資料庫大致可以這么分類:
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
還有很多,這里不逐一列列舉了
C. xml資料庫的簡介
目前XML資料庫有三種類型:
(1)XMLEnabledDatabase(XEDB),即能處理XML的資料庫。其特點是在原有的資料庫系統上擴充對XML數據的處理功能,使之能適應XML數據存儲和查詢的需要。一般的做法是在資料庫系統之上增加XML映射層,這可以由資料庫供應商提供,也可以由第三方廠商提供。映射層管理XML數據的存儲和檢索,但原始的XML元數據和結構可能會丟失,而且數據檢索的結果不能保證是原始的XML形式。XEDB的基本存儲單位與具體的實現緊密相關。
(2)NativeXMLDatabase(NXD),即純XML資料庫。其特點是以自然的方式處理XML數據,以XML文檔作為基本的邏輯存儲單位,針對XML的數據存儲和查詢特點專門設計適用的數據模型和處理方法。
(3)HybridXMLDatabase(HXD),即混合XML資料庫。根據應用的需求,可以視其為XEDB或NXD的資料庫,典型的例子是Ozone。
XML資料庫是一個能夠在應用中管理XML數據和文檔的集合的資料庫系統。XML資料庫是XML文檔及其部件的集合,並通過一個具有能力管理和控制這個文檔集合本身及其所表示信息的系統來維護。XML資料庫不僅是結構化數據和半結構化數據的存儲庫,像管理其它數據一樣,持久的XML數據管理包括數據的獨立性、集成性、訪問許可權、視圖、完備性、冗餘性、一致性以及數據恢復等。這些文檔是持久的並且是可以操作的。
當前著重於頁面顯示格式的HTML標記語言和基於它的關鍵詞檢索等技術已經不能滿足用戶日益增長的信息需求。近年來的研究致力於將資料庫技術應用於網上數據的管理和查詢,使查詢可以在更細的粒度上進行,並集成多個數據源的數據。但困難在於網上數據缺乏統一的、固定的模式,數據往往是不規則且經常變動的。因此,XML數據作為一種自描述的半結構化數據為Web的數據管理提供了新的數據模型,如果將XML標記數據放入一定的結構中,對數據的檢索、分析、更新和輸出就能夠在更加容易管理的、系統的和較為熟悉的環境下進行,因而我們將資料庫技術應用於XML數據處理領域,通過XML數據模型與資料庫模型的映射來存儲、提取、綜合和分析XML文檔的內容。這為資料庫研究開拓了一個新的方向,將資料庫技術的研究擴展到對Web數據的管理。
D. 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處理模塊.
E. XML 和資料庫之間的映射有什麼作用
樓主 首先我們應該明白xml的作用:
XML的簡單使其易於在任何應用程序中讀寫數據,這使XML成為數據交換的唯一公共語言,雖然不同的應用軟體也支持其它的數據交換格式,但不久之後他們都將支持XML,那就意味著程序可以更容易的與Windows、Mac OS, Linux以及其他平台下產生的信息結合,然後可以很容易載入XML數據到程序中並分析他,並以XML格式輸出結果。
————————————————————————
由上面我們可以得知,XML成為數據交換的唯一公共語言,異構系統 甚至 異構平台的信息交互 都要靠xml傳輸數據,舉個例子:
.net 開發的系統 和 java開發的系統 如何進行數據交換,如何進行深度整合和互操作,考得就是webservice,而現在webservice數據格式一般都是採用xml的,因為xml是數據交換的事實上的工業標准了,通過它我們可以「穿透那個可親又討厭的防火牆」. 呵呵
數據一般都是從資料庫中取出的吧,所以 研究xml與資料庫數據的互相轉化和映射關系,就顯的非常重要了。
————————————————————————
XML在Web領域已經得到了廣泛的應用,而XML資料庫一直是個研究熱點。各資料庫廠商及研究機構紛紛投入對XML技術的研究及開發。大體上可以把XML資料庫分為兩類:原生XML資料庫(Native XML Database)和使能XML資料庫(Enable XML Database)。而XML數據一般可劃分為粗粒度、中粒度及細粒度三種形式。以文檔為中心的粗粒度形式,一般採用原生XML資料庫,而以數據為中心的細粒度形式一般採用使能XML資料庫。
XML數據是嵌套的樹形結構,而關系資料庫是簡單、平面的二維表結構,結構的差異性,使得在存儲XML數據時需要按一定的映射規則進行轉換,並使能夠恢復到原XML文件。
XML文件物理結構上由多種元素組成,本文的研究只考慮常用的ELEMENT、TEXT、ATTRIBUTE三種元素,採用三個表來保存XML數據。主要思想是把樹結構中的中間節點(非屬性和文本節點)放入mNode(Middle Node)表,葉子節點(屬性和文本節點)放入eNode(End Node)表,另外一個是ePath表,用於保存從根節點到葉子節點的路徑。當然保存多個XML時,我們會引入一個用於保存區分各個XML的表。詳細說明如下:
1) Path(pathID, path)
該表主要保存從根結點到各個葉子結點的所有不同的路徑,在查詢時可滿足類似於Xpat的查詢。
pathID:各不同的路徑標識符,在解析過程中產生。
path:實際路徑名稱。
2)mNode(nodeID, nodeName, parentID, order, pathID)
該表主要通過指定parentID來保存各節點間的父子關系,以保持原XML的樹型結構。
nodeID:節點的唯一標識符,在解析過程中產生。
nodeName:節點的名稱,即XML中的實際名稱。
parentID:父節點的標識符,根節點置為-1。
order:兄弟節點的先後次序。
pathID:從根結點到本節點所走的路徑。
3)eNode(nodeName, nodeValue, parentID, order, type)
該表主要保存屬性及文本節點的值。
nodeName:屬性名,如果是文本節點則取其父節點名。
nodeValue:屬性文本值。
parentID:父節點的標識符。
order:兄弟節點的先後次序。
type:用於區分屬性還是文本的標量。
4轉換方法
從XML到SQL,一般都是採用遞歸演算法,先根遍歷XML樹結構,而從SQL返回到XML時,一般採用隊列生成XML節點。遞歸過程一般要消耗較多的時間和空間,在處理較大結構的XML時,性能上不是很理想。
本模型在XML和SQL中放入一個中間層,該層中主要有根據DTD或Schema生成的一系列Bean、一個操作SQL的模塊、一個操作XML的模塊,另外在此基礎上還可以方便擴展給其他業務邏輯層調用的模塊。結構如下圖所示:
JavaBeans:這里所說的JavaBeans是根據XML 對應的DTD或Schema所產生的有級聯關系的類。通過這些類邏輯上形成一棵XML樹形結構,用於存放實際XML數據。對於如下的一部分DTD:
<! ELEMENT book (title, price, author+)>
<! ATTLIST book year CDATA>
<! ELEMENT title (#PCDATA)>
<! ELEMENT price (#PCDATA)>
我們可以設計一個BookItem類,它包括一個TitleTxt欄位、一個PriceTxt欄位、一個AuthorBean欄位以及一個YearAttr欄位,其中AuthorBean由多個AuthorItem組成,類似的,AuthorItem包含它下面的節點信息。在這個過程中,可以完成ePath表的信息建立。
根據前面的映射模型,對於BookItem類的title欄位,設計如下形式的類結構:
Public Class BookItem(){
Private String titleTxt;
Public setTitleTxt(String title){}
Public getTitleTxt(){}
Public setTitleParentID(int parentID){}
Public getTitleParentID(){}
Public setTitleOrder(){int order}
Public getTitleOrder(){}
…
}
而對於AuthorBean類,類結構設計如下:
Public Class AuthorBean(){
Private Vector beanVector;
Public void add(AuthorItem authorItem){}
Public AuthorItem getByIndex(int index){}
Public int getSize(){}
…
}
從結構上容易看出,代碼量非常大,但由於都是一些get()和set()方法,這些代碼不用通過手工去撰寫,而是根據DTD或Scheme的信息自動生成。在過程①及過程④中調用set()方法,在過程②及過程③中調用get()方法。
XML Operator:該模塊可以支持DOM、SAX解析。根據層次信息依次解析每個節點,此過程中記錄父子節點關系,並且記錄一個節點中所有子節點的先後順序,並設定到Bean中。
SQL Operator:該模塊主要是把Bean中的信息寫入資料庫,以及從資料庫中讀取信息供重組XML。
樓主,希望我的給出信息和資料對你的問題的解決 有所幫助!:-)