3. 數據庫模式要面向應用系統 我們選擇面向對象的系統設計也好,面向對象的數據庫設計也好,根本目的是服務于應用系統的需要。
五、面向對象關系數據庫設計效果 從某種意義上講,是數據庫設計的面向對象特征最終奠定了整個系統的面向對象性,才使面向對象方法在程序開發階段全面開花。其效果歸納如下:
1. 數據庫結構清晰,便于實現 oop 由于實現了應用模塊對象對數據庫對象的完全映射,數據庫邏輯模型可以自然且直接地模擬現實世界的實體關系。用戶所處的當前物理世界、系統開發者所抽象的系統外部功能,與支持系統功能的內部數據庫 (數據結構)一一對應,所以用戶、開發者和數據庫維護人員可以用一致的語言進行溝通。特別是對多數不了解業務的程序開發人員來說,這種將應用對象與相應的數據對象封裝在對象統一體中的設計方法,大大減輕了程序實現的難度,使他們只要知道加工的數據及所需的操作即可,而且應用程序大多雷同,可以多處繼承由設計人員抽象出來的、預先開發好的各種物理級超類。
2. 數據庫對象具有獨立性,便于維護 除了數據庫表對象與應用模塊對象一一對應外,在邏輯對象模型中我們沒有設計多重繼承的泛化關系,所以這樣得到的數據庫結構基本上是由父表類和子表類構成的樹型層次結構,表類間很少有繼承以外的復雜關系,是一個符合局部化原則的結構,從而使數據庫表數據破壞的影響控制在局部范圍且便于修復,給系統開通后的數據庫日常維護工作帶來便利。
3. 需求變更時程序與數據庫重用率高,修改少 在映射應用對象時,除關系映射規范化后可能出現一對多的表映射外,大多數應用對象與表對象是一一對應的。我們可以把規范化處理后的、由一個應用對象映射出來的多個表看成一個數據庫對象。因此當部分應用需求變更時,首先,系統修改可以不涉及需求不變更的部分。其次,變更部分的修改可以基本上只限于追加或刪除程序模塊或追加新庫表,而基本上不必修改原有程序代碼或原有庫表定義,從而大大減少了工作量,降低了工作難度。
六、最簡單的就是最好的 客觀世界是錯綜復雜的,計算機科學理論的發展也越來越高深、復雜。然而,人類探索理論和技術的最終目的是:讓客觀世界的復雜變簡單,最簡單的就是最好的。為此給出以下幾點忠告:
1. 慎用外鍵 rdbms 支持復雜關系的能力很強,無論用戶怎么在邏輯上設定外鍵,它基本上都能從物理上幫用戶實現。但是外鍵把許多獨立的實體牽連在一起,不僅使 rdbms 維持數據一致性負擔沉重,也使數據庫應用復雜化,加重了程序開發負擔。這樣的數據庫很難理解,很難實現信息隱蔽性設計,往往把簡單問題復雜化。
2. 適當冗余 減少數據庫冗余的設計思路產生于70年代,它是促使 dbms 進步的重要動力之一。然而,猶如為了節省2個字節的存儲空間而釀成了如今全球為之頭痛的2000年問題一樣,它是計算機硬件主導時代的產物。以今天國內計算機市場價格為例,6g服務器硬盤的價格不過2000元,而上海物價局 1996 年頒發的一個人月軟件開發的指導價約8000元,即一個人月的軟件價格就可以購買20g左右的硬盤。即使有5萬行數據的庫表,每個記錄壓縮40字符的冗余,單純計算合計也不足2m,即節省0.6元錢的磁盤空間! 〗裉斓氖澜缫堰M入軟件主導的計算機時代。因此,最容易理解、應用開發工作量最少、維護最簡單的數據庫結構才是最好的。只要數據完整性、一致性不受威脅,有些冗余,不足為慮。換言之,最節省軟件成本 (而不是硬件成本) 的是最好的。
3. 信息隱蔽 這是軟件工程最重要的基本原則之一。簡言之即信息的作用域越小越好,數據庫的透明度越大越好,因為應用程序需要知道得越多就越復雜。使數據庫黑盒化 (透明度高) 的方法很多,除了設計上的局部化處理外,還可以利用 dbms 的觸發器、存儲過程、函數等,把數據庫中無法簡化的復雜表關系封裝到黑盒子里,隱藏起來,特別是放到服務器端,其優越性更是多方面的。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/