可用於資料庫對比評估的FURPS+模型

ITPUB社群發表於2023-03-03

經常有朋友問我,目前在做信創資料庫選型,有沒有關於資料庫選型方面的模型建議。實際上資料庫選型是十分複雜的問題。我也參加過一些企業的資料庫選型、對比和評估工作,也參與過一些企業的評估模型的稽核,我總是覺得很多企業的資料庫選型對比不夠科學,透過某些模型評估出來的結果往往不大可信。實際上資料庫選型是一件十分困難的事情,哪怕有些企業透過十分嚴格的測試,也很難做得很好,因為測試和評估的模型有可能會有問題。設計一個科學的資料庫選型評估模型是一件十分考驗客戶能力的事情。大多數資料庫使用者不具備這個能力。
如果說想找一個較為科學的參考模型,我們一般會採用FURPS模型來對資料庫做全面的評估。FURPS模型是HP最早提出的,用於評估軟體系統的質量,1992年IBM在此基礎上做了最佳化,提出了FURPS+評估模型,目前這個模型在國外也被廣泛地應用於資料庫領域的評估。FURPS是五個英文單詞的首字母,分別表示:
l功能性 (Functionality):軟體系統所提供的功能,包括準確性、適當性、互操作性、安全性等。功能評估是資料庫評估的基礎,不過評估功能的時候要根據使用者的應用特點來評估。比如說對於Oracle資料庫,普通使用者使用到的功能可能僅僅是其中的5%,那麼我們就沒必要用其他的本企業不可能用到的95%來進行功能評估。
l可用性 (Usability):軟體系統易用性和人機互動效能,包括可理解性、易學性、操作性、可訪問性等。實際上可用性是特別重要的評估內容,也是被嚴重忽視的。實際上資料庫產品可能在功能上很難區分好壞,但是在可用性方面差異巨大。如果選擇了一個不太好用的資料庫,那麼今後的使用成本將會很高,因此我們不應該忽略這個評估項。
l可靠性 (Reliability):軟體系統在一定條件下的穩定性和可靠性,包括可用性、可恢復性、容錯性、可維護性等。可靠性對於資料庫來說十分重要,不過可靠性的評估比較困難。一般來說我們需要透過較長時間的POC測試才能對可靠性做出較為客觀的評估。
l效能 (Performance):軟體系統的效能特徵,包括效率、容量、速度、響應時間、吞吐量等。效能是目前大家比較關注的方面,不過目前大多數資料庫對比分析的效能評估都不夠科學。資料庫效能必須是以保障客戶應用場景為依據的,TPC-C/TPC-H等基準測試往往並不足以證明資料庫產品能否滿足企業應用的需要。因此選擇企業常見應用場景進行對比測試才比較科學。
l支援性 (Supportability):軟體系統的可維護性和可支援性,包括可測試性、可修改性、可重用性、可移植性、可互換性等。
實際上,這些年我們對不同的資料庫產品也是基於FURPS模型進行分析,今天我給大家簡單介紹一下如何使用FURPS來評估和對比不同的資料庫產品。如果我們把FURPS模型用於資料庫對比評估,可以設計成下面的表格:

評估因素

指標

資料庫 A

資料庫 B

資料庫 C

功能性

 

 

資料儲存和管理功能

4

3

5

資料查詢和報表功能

5

4

4

安全和許可權管理功能

4

4

3

可用性

 

使用者介面和操作性

4

3

4

學習曲線和易用性

5

4

3

可靠性

 

 

可用性和可恢復性

4

5

3

容錯性和安全性

4

5

4

可維護性和擴充套件性

3

4

3

效能

 

資料庫的響應時間和吞吐量

4

5

4

資料庫的容量和負載能力

4

4

5

最佳化器能力

4

4

4

支援性

 

 

文件和API

4

5

3

開發者和管理員文件

3

5

4

支援和維護服務

4

5

3

總分

-

53

56

47

         

上面的每個評分項我們都設定為5分,分值可以根據使用者對這些產品的認知,不一定精確,但是高低代表了客戶對資料庫的這個專案的認知。最終的總分的高低也僅僅會用來給這些產品排序,而不代表更多的意思。
上面的表格僅僅是一個十分簡單的模型,針對上面的簡要模型,我們可以繼續細化。下面是一個更為細化的評估模型,是我們團隊在這十來年做資料庫對比分析和測試中經常拿來參考的模型,今天把它開放出來供大家參考。需要對資料庫進行評估的朋友可以根據自己的應用系統特點和業務場景,對這些評估專案進行裁剪。如果覺得自己的系統中永遠用不到的點,一定要刪除,否則會對評估結果的客觀性產生較大的影響。評估專案裁剪的合理性是評估準確性的基礎。

l功能性 (Functionality)

-資料儲存和管理功能

u資料庫支援的資料型別和資料結構

u資料庫LOB欄位的儲存方式與訪問方式

u資料庫字符集的支援

u資料庫的資料完整性和一致性

u資料庫的索引和查詢最佳化功能

u資料庫的物理備份/邏輯備份功能

u資料庫物理複製/邏輯複製能力

u資料庫多租戶能力

u資料庫資源管理與控制能力

-資料OLTP和OLAP功能

u資料庫支援的查詢語言和運算子

u資料庫查詢的響應時間和吞吐量

u資料庫表連線的能力與限制

u儲存過程、觸發器、物化檢視、DBLINK等高階特性

u序列號,自增欄位,偽列,虛擬索引等擴充套件功能

u資料庫的報表生成和視覺化功能

u資料庫支援的資料匯入和匯出功能

u索引的種類,包含B樹、點陣圖、函式、HASH、布魯姆等

-安全和許可權管理功能

u資料庫的安全和加密機制

u資料庫的使用者和角色管理功能

u資料庫的審計和日誌記錄功能

u資料庫的許可權控制和訪問控制功能

u資料庫訪問是否支援三權分立

u是否支援透明資料加密

u客戶端與伺服器通訊是否支援SSL

l可用性 (Usability)

-使用者介面和操作性

u資料庫的圖形化管理工具和命令列工具

u資料庫的操作簡易性和可配置性

u資料庫的錯誤提示和幫助文件

u資料庫訪問介面是否能支援企業應用

u資料庫支援的程式語言是否能支援企業應用

-學習曲線和易用性

u資料庫的易學性和上手難度

u資料庫的使用者文件和教程的質量

u第三方書籍與技術文件的豐富度

u原廠培訓的質量

u第三方培訓的豐富程度與質量

u資料庫的線上社群和支援論壇的技術水平

u產品在資料庫社群的知名度與熱度


l可靠性 (Reliability)

-可用性和可恢復性

u資料庫的穩定性和可用性

u資料庫的故障恢復和資料恢復功能

u資料庫的備份和恢復策略

u高可用與雙活方案與案例的豐富程度

-容錯性和安全性

u資料庫的容錯和自愈能力

u資料庫的安全和加密機制

u資料庫的漏洞和攻擊防禦能力

-可維護性和擴充套件性

u資料庫的可維護性和維護成本

u資料庫的可擴充套件性和可升級性

u資料庫的文件和API

l效能 (Performance)

-資料庫的響應時間和吞吐量

u資料庫的讀寫速度和併發性

u資料庫的查詢響應時間和吞吐量

u資料庫的網路傳輸速度和延遲

u是否支援索引自動最佳化助手

-最佳化器能力

u是否支援RBO/CBO/RBO+CBO等多種模式的最佳化器,並且可以透過引數選擇

u是否支援NESTED LOOP、HASH JOIN、BITMAP JOIN、SORT MERGE JOIN等多種連線方式

u是否支援HINT/OUTLINES/SQL BASELINE/SQL PROFILE等執行計劃繫結

uSQL改寫的能力強弱

uHASH JOIN所覆蓋的範圍

u多表連線選擇驅動表的準確性

u是否支援採集與分析記憶體中執行計劃

uSQL最佳化工具的能力

-資料庫的容量和負載能力

u資料庫的最大容量和擴充套件能力

u資料庫的負載測試和效能最佳化

u資料庫的叢集和分散式架構能力

u最大會話數/活躍會話數限制

u是否可以透過表空間等方式方便地分散IO負載

l支援性 (Supportability)

-開發者和管理員文件

u資料庫的API和SDK

u第三方工具的支援程度

u資料庫的命令列和管理介面

u資料庫的日誌和錯誤資訊

-支援和維護服務

u資料庫廠商的性質與規模

u資料庫供應商的技術支援服務

u資料庫第三方支援服務

u資料庫的社群和支援論壇

u資料庫的版本控制和升級服務

         

         

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024420/viewspace-2938058/,如需轉載,請註明出處,否則將追究法律責任。

相關文章