關系數(shù)據(jù)庫系統(tǒng)的優(yōu)點
1、靈活性和建庫的簡單性
從軟件開發(fā)的前景來看,用戶與關系數(shù)據(jù)庫編程之間的接口是靈活與友好的。目前在多數(shù)RDDMS產品中使用標準查詢語言SQL,允許用戶幾乎毫無差別地從一個產品到另一個產品存取信息。與關系數(shù)據(jù)庫接口的應用軟件具有相似的程序訪問機制,提供大量標準的數(shù)據(jù)存取方法。
2、結構簡單
從數(shù)據(jù)建模的前景看,關系數(shù)據(jù)庫具有相當簡單的結構(元組),可為用戶或程序提供多個復雜的視圖。數(shù)據(jù)庫設計和規(guī)范化過程也簡單易行和易于理解。由于關系數(shù)據(jù)庫的強有力的、多方面的功能,已經有效地支持許多數(shù)據(jù)庫納應用。
關系數(shù)據(jù)庫系統(tǒng)的缺點
1、數(shù)據(jù)類型表達能力差
從下一代應用軟件的發(fā)展角度來看,關系數(shù)據(jù)庫的根本缺陷在于缺乏直接構造與這些應用有關的信息的類型表達能力,缺乏這種能力將產生以下有害的影響,例如:大多數(shù)RDBMS產品所采用的簡單類型在重構復雜數(shù)據(jù)的過程中將會出現(xiàn)性能問題;數(shù)據(jù)庫設計過程中的額外復雜性;RDBMS產品和編程語言在數(shù)據(jù)類型方面的不協(xié)調。
大多數(shù)現(xiàn)代的RDBMS產品已成熟地用于商務和財政方面,而這些領域不要求很高和很復雜的數(shù)據(jù)模型。雖然這些產品多多少少克服了一些以上所述的缺點,但從理論上看關系數(shù)據(jù)模型不直接支持復雜的數(shù)據(jù)類型,這是由于第一范式的要求,所有的數(shù)據(jù)必須轉換為簡單的類型,如整數(shù)、實數(shù)、雙精度數(shù)和字符串。
對于工程應用來說,這種不能支持復雜數(shù)據(jù)類型的典型結果就是需要額外地分解數(shù)據(jù)結構工作,這些被分解的結構不能直接表示應用數(shù)據(jù),且從基本成分重構時也非常繁瑣和費時間。
2、復雜查詢功能差
關系數(shù)據(jù)庫系統(tǒng)的某些優(yōu)點也同時是它的不足之處。雖然SQL語言為數(shù)據(jù)查詢提供了很好的定義方法,但當用于復雜信息的查詢時可能是非常繁瑣的。此外,在工程應用時規(guī)范化的過程通常會產生大量的簡單表。在這種環(huán)境下由存取信息產生的查詢必須處理大量的表和復雜的碼聯(lián)系以及連接運算。
除非這些查詢以固定的例行程序方式提供,否則用戶就必須對SQL非常熟悉,以便適當?shù)貫g覽數(shù)據(jù)庫,查出所需的信息。然而,一旦查詢方式按固定例行程序方式進行,用戶最終就進行應用軟件的常規(guī)維護。但應用或人機接口軟件的變化又可能要求經常修改例行的查詢,數(shù)據(jù)庫結構的變化也可能導致例行查詢程序以及應用或人機接口軟件的失效。由于這些原因,關系數(shù)據(jù)庫系統(tǒng)的維護開銷可能是很大的。
由于關系數(shù)據(jù)庫不能提供足夠的構造能力及性能方面的原因,在進行較復雜的數(shù)據(jù)庫設計過程中,不可能將許多工程問題直接分解成一些簡單的部分。由于缺乏直接指針存取方法,所以查詢有關的信息需要花費時間。
3、支持長事務能力差
由于RDBMS記錄鎖機制的顆粒度限制,對于支持多種記錄類型的大段數(shù)據(jù)的登記和檢查來說,簡單的記錄級的鎖機制是不夠的,但基于鍵值關系的較復雜的鎖機制來說卻很難推廣也難以實現(xiàn)。
4、環(huán)境應變能力差
在要求系統(tǒng)頻繁改變的環(huán)境下,關系系統(tǒng)的成本高且修改困難。在工程應用中支持“模式演變”(schemaevolution)的功能是很重要的,而RDBMS不容易支持這種功能。另外,關系數(shù)據(jù)庫和編程語言所提供的數(shù)據(jù)類型的不一致,使得從一個環(huán)境轉換到另一個環(huán)境時需要多至30%的附加代碼。
-
數(shù)據(jù)庫
+關注
關注
7文章
4033瀏覽量
68416
發(fā)布評論請先 登錄
Oracle數(shù)據(jù)庫ASM實例無法掛載的數(shù)據(jù)恢復案例
恒訊科技解析:如何安裝MySQL并創(chuàng)建數(shù)據(jù)庫
數(shù)據(jù)庫性能優(yōu)化指南
數(shù)據(jù)庫數(shù)據(jù)恢復—服務器異常斷電導致Oracle數(shù)據(jù)庫故障的數(shù)據(jù)恢復案例
三款主流國產數(shù)據(jù)庫的技術特點
企業(yè)級MySQL數(shù)據(jù)庫管理指南
數(shù)據(jù)庫數(shù)據(jù)恢復—MongoDB數(shù)據(jù)庫文件丟失的數(shù)據(jù)恢復案例
數(shù)據(jù)庫數(shù)據(jù)恢復—SQL Server數(shù)據(jù)庫被加密如何恢復數(shù)據(jù)?
oracle數(shù)據(jù)恢復—oracle數(shù)據(jù)庫誤執(zhí)行錯誤truncate命令如何恢復數(shù)據(jù)?
SQLSERVER數(shù)據(jù)庫是什么
MySQL數(shù)據(jù)庫是什么
SEGGER emFile支持大型數(shù)據(jù)庫
分布式存儲數(shù)據(jù)恢復—虛擬機上hbase和hive數(shù)據(jù)庫數(shù)據(jù)恢復案例
數(shù)據(jù)庫數(shù)據(jù)恢復——MongoDB數(shù)據(jù)庫文件拷貝后服務無法啟動的數(shù)據(jù)恢復
簡述關系數(shù)據(jù)庫的優(yōu)點和缺點
評論