①關(guān)系數(shù)據(jù)庫系統(tǒng)的優(yōu)點 a.靈活性和建庫的簡單性:從軟件開發(fā)的前 景來看,用戶與關(guān)系數(shù)據(jù)庫編程之間的接口是靈活與友好的,。目前在多數(shù)RDDMS產(chǎn)品中使用標準查詢語言SQL,,允許用戶幾乎毫無差別地從一個產(chǎn)品到另一個 產(chǎn)品存取信息。與關(guān)系數(shù)據(jù)庫接口的應用軟件具有相似的程序訪問機制,,提供大量標準的數(shù)據(jù)存取方法,。 b.結(jié)構(gòu)簡單:從數(shù)據(jù)建模的前景看,關(guān)系數(shù)據(jù)庫具有相當簡單的結(jié)構(gòu)(元組),,可為用戶或程序提供多個復雜的視圖,。數(shù)據(jù)庫設計和規(guī)范化過程也簡單易行和易于理解。由于關(guān)系數(shù)據(jù)庫的強有力的,、多方面的功能,,已經(jīng)有效地支持許多數(shù)據(jù)庫納應用。 ②關(guān)系數(shù)據(jù)庫系統(tǒng)的缺點 a. 數(shù)據(jù)類型表達能力差:從下一代應用軟件的發(fā)展角度來看,,關(guān)系數(shù)據(jù)庫的根本缺陷在于缺乏直接構(gòu)造與這些應用有關(guān)的信息的類型表達能力,,缺乏這種能力將產(chǎn)生以 下有害的影響,例如:大多數(shù)RDBMS產(chǎn)品所采用的簡單類型在重構(gòu)復雜數(shù)據(jù)的過程中將會出現(xiàn)性能問題,;數(shù)據(jù)庫設計過程中的額外復雜性,;RDBMS產(chǎn)品和編 程語言在數(shù)據(jù)類型方面的不協(xié)調(diào)。 大多數(shù)現(xiàn)代的RDBMS產(chǎn)品已成熟地用于商務和財政方面,,而這些領(lǐng)域不要求很高和很復雜的數(shù)據(jù)模型,。雖然這些產(chǎn)品多多少少克服了一些以上所述的缺點,但從 理論上看關(guān)系數(shù)據(jù)模型不直接支持復雜的數(shù)據(jù)類型,,這是由于第一范式的要求,,所有的數(shù)據(jù)必須轉(zhuǎn)換為簡單的類型,如整數(shù),、實數(shù),、雙精度數(shù)和字符串。 對于工程應用來說,,這種不能支持復雜數(shù)據(jù)類型的典型結(jié)果就是需要額外地分解數(shù)據(jù)結(jié)構(gòu)工作,這些被分解的結(jié)構(gòu)不能直接表示應用數(shù)據(jù),,且從基本成分重構(gòu)時也非常繁瑣和費時間,。 b. 復雜查詢功能差:關(guān)系數(shù)據(jù)庫系統(tǒng)的某些優(yōu)點也同時是它的不足之處。雖然SQL語言為數(shù)據(jù)查詢提供了很好的定義方法,,但當用于復雜信息的查詢時可能是非常繁 瑣的,。此外,,在工程應用時規(guī)范化的過程通常會產(chǎn)生大量的簡單表。在這種環(huán)境下由存取信息產(chǎn)生的查詢必須處理大量的表和復雜的碼聯(lián)系以及連接運算,。 除非這些查詢以固定的例行程序方式提供,,否則用戶就必須對SQL非常熟悉,以便適當?shù)貫g覽數(shù)據(jù)庫,,查出所需的信息,。然而,一旦查詢方式按固定例行程序方式 進行,,用戶最終就進行應用軟件的常規(guī)維護,。但應用或人機接口軟件的變化又可能要求經(jīng)常修改例行的查詢,數(shù)據(jù)庫結(jié)構(gòu)的變化也可能導致例行查詢程序以及應用或 人機接口軟件的失效,。由于這些原因,,關(guān)系數(shù)據(jù)庫系統(tǒng)的維護開銷可能是很大的。 由于關(guān)系數(shù)據(jù)庫不能提供足夠的構(gòu)造能力及性能方面的原因,,在進行較復雜的數(shù)據(jù)庫設計過程中,,不可能將許多工程問題直接分解成一些簡單的部分。由于缺乏直接指針存取方法,,所以查詢有關(guān)的信息需要花費時間,。 c.支持長事務能力差;由于RDBMS記錄鎖機制的顆粒度限制,,對于支持多種記錄類型的大段數(shù)據(jù)的登記和檢查來說,,簡單的記錄級的鎖機制是不夠的,但基于鍵值關(guān)系的較復雜的鎖機制來說卻很難推廣也難以實現(xiàn),。 d. 環(huán)境應變能力差:在要求系統(tǒng)頻繁改變的環(huán)境下,,關(guān)系系統(tǒng)的成本高且修改困難。在工程應用中支持"模式演變"(schema evolution)的功能是很重要的,,而RDBMS不容易支持這種功能,。另外,關(guān)系數(shù)據(jù)庫和編程語言所提供的數(shù)據(jù)類型的不一致,,使得從一個環(huán)境轉(zhuǎn)換到另 一個環(huán)境時需要多至30%的附加代碼,。 ③面向?qū)ο髷?shù)據(jù)庫系統(tǒng)的優(yōu)點 a. 能有效地表達客觀世界和有效地查詢信息:面向?qū)ο蠓椒ňC合了在關(guān)系數(shù)據(jù)庫中發(fā)展的全部工程原理、系統(tǒng)分析,、軟件工程和專家系統(tǒng)領(lǐng)域的內(nèi)容,。面向?qū)ο蟮姆椒? 符合一般人的思維規(guī)律、即將現(xiàn)實世界分解成明確的對象,,這些對象具有屬性和行為,。系統(tǒng)設計人員用ODBMS創(chuàng)建的計算機模型能更直接反映客觀世界,最終用 戶不管是否是計算機專業(yè)人員,,都可以通過這些模型理解和評述數(shù)據(jù)庫系統(tǒng),。 工程中的一些問題對關(guān)系數(shù)據(jù)庫來說顯得太復雜,,不采取面向?qū)ο蟮姆椒ê茈y實現(xiàn)。從構(gòu)造復雜數(shù)據(jù)的前景看,,信息不再需要手工地分解為細小的單元,。ODBMS擴展了面向?qū)ο蟮木幊汰h(huán)境,該環(huán)境可以支持高度復雜數(shù)據(jù)結(jié)構(gòu)的直接建模,。 b. 可維護性好:在耦合性和內(nèi)聚性方面,,面向?qū)ο髷?shù)據(jù)庫的性能尤為突出。這使得數(shù)據(jù)庫設計者可在盡可能少影響現(xiàn)存代碼和數(shù)據(jù)的條件下修改數(shù)據(jù)庫結(jié)構(gòu),,在發(fā)現(xiàn)有 不能適合原始模型的特殊情況下,,能增加一些特殊的類來處理這些情況而不影響現(xiàn)存的數(shù)據(jù)。如果數(shù)據(jù)庫的基本模式或設計發(fā)生變化,,為與模式變化保持一致,,數(shù)據(jù) 庫可以建立原對象的修改版本。這種先進的耦合性和內(nèi)聚性也簡化了在異種硬件平臺的網(wǎng)絡上的分布式數(shù)據(jù)庫的運行,。 c.能很好地解決"阻抗不匹配"(impedance mismatch)問題,。面向?qū)ο髷?shù)據(jù)庫還解決了一個關(guān)系數(shù)據(jù)庫運行中的典型問題:應用程序語言與數(shù)據(jù)庫管理系統(tǒng)對數(shù)據(jù)類型支持的不一致問題,這一問題通常稱之為阻抗不匹配問題,。 ④面向?qū)ο髷?shù)據(jù)庫系統(tǒng)的缺點 a. 技術(shù)還不成熟,。面向?qū)ο髷?shù)據(jù)庫技術(shù)的根本缺點是這項技術(shù)還不成熟,還不廣為人知,。與許多新技術(shù)一樣,,風險就在于應用。從事面向?qū)ο髷?shù)據(jù)庫產(chǎn)品和編程環(huán)境的 銷售活動的公司還不令人信服,,因為這些公司的歷史還相當短暫,,就該十幾年前關(guān)系數(shù)據(jù)庫的情況一樣。ODBMS如今還存在著標準化問題,,由于缺乏標準化,,許 多不同的ODBMS之間不能通用。此外,,是否修改SQL以適應面向?qū)ο蟮某绦?,還是用新的對象查詢語言來代替它,目前還沒有解決,,這些因素表明隨著標準化 的出現(xiàn),,ODBMS還會變化。 b.面向?qū)ο蠹夹g(shù)需要一定的訓練時間:有面向?qū)ο笙到y(tǒng)開發(fā)經(jīng)驗的公司的專業(yè)人員認為,,要成功地開發(fā)這種系統(tǒng) 的關(guān)鍵是正規(guī)的訓練,,訓練之所以重要是由于面向?qū)ο髷?shù)據(jù)庫的開發(fā)是從關(guān)系數(shù)據(jù)庫和功能分解方法轉(zhuǎn)化而來的,人們還需要學習一套新的開發(fā)方法使之與現(xiàn)有技術(shù) 相結(jié)合,。此外,,面向?qū)ο笙到y(tǒng)開發(fā)的有關(guān)原理才剛開始具有雛形,還需一段時間在可靠性,、成本等方面令人可接受,。 c.理論還需完善:從正規(guī)的計算機科學方面看,還需要設計出堅實的演算或理論方法來支持ODBMS的產(chǎn)品,。此外,,既不存在一套數(shù)據(jù)庫設計方法學,也沒有關(guān)于面向?qū)ο蠓治龅囊惶浊逦母拍钅P?,怎樣設計獨立于物理存儲的信息還不明確,。 面 向?qū)ο髷?shù)據(jù)庫和關(guān)系數(shù)據(jù)庫系統(tǒng)之間的爭論不同于70年代關(guān)系數(shù)據(jù)庫和網(wǎng)狀數(shù)據(jù)庫的爭論,那時的爭論是在同一主要領(lǐng)域(即商業(yè)事務應用)中究竟是誰代替誰的 問題?,F(xiàn)在是肯定關(guān)系數(shù)據(jù)庫系統(tǒng)基本適合商業(yè)事務處理的前提下,,對非傳統(tǒng)的應用,特別是工程中的應用用面向?qū)ο髷?shù)據(jù)庫來補充不足的問題,。面向?qū)ο髷?shù)據(jù)庫系 統(tǒng)將成為下一代數(shù)據(jù)庫的典型代表,,并和關(guān)系數(shù)據(jù)庫系統(tǒng)并存(而不是替代)。它將在不同的應用領(lǐng)域支持不同的應用需求,。 經(jīng)過數(shù)年的開發(fā)和研 究,,面向?qū)ο髷?shù)據(jù)庫的當前狀況是:對面向?qū)ο髷?shù)據(jù)庫的核心概念逐步取得了共同的認識,標準化的工作正在進行,;隨著核心技術(shù)逐步解決,,外圍工具正在開發(fā),面 向?qū)ο髷?shù)據(jù)庫系統(tǒng)正在走向?qū)嵱秒A段,;對性能和形式化理論的擔憂仍然存在,。系統(tǒng)在實現(xiàn)中仍面臨著新技術(shù)的挑戰(zhàn)。 |
|