曹藝譯
關鍵詞:計算機軟件;數據庫設計;軟件數據庫
1數據庫設計對于軟件工程項目的重要性
數據庫是計算機軟件的核心組成部分,數據庫的設計關系到軟件功能的開發(fā)和使用。但在實際的工作中,計算機軟件工程師對數據庫設計的認知程度參差不齊。有的軟件工程師憑借以往對數據庫的設計經驗,在設計過程中只注重對數據的功能模塊進行設計,而忽略了用戶的具體需求和軟件的宏觀架構,雖然將數據庫的功能模塊設計得很完美,但缺乏與軟件整體的適應性。這種不成熟的設計觀念對數據庫的設計工作和軟件的開發(fā)工作都造成了一定的阻礙,也在無形之中為后期數據庫的升級和維護增加了難度。這些隱患有時不會在前期的設計與使用階段暴露出來,但隨著時間的推移,往往會在后期的使用和軟件功能的擴展時期,為軟件工程師的數據工作帶來困擾。由此可見,數據庫的設計不僅要有一定的技術水平,還要有長遠的發(fā)展眼光,如此才能將數據庫設計得完整合理,應從宏觀角度考慮數據庫對軟件未來的深度影響。
總的來說,數據庫的設計者要具備一定的數據庫專業(yè)設計能力、頂層架構的系統性思維能力、對軟件未來發(fā)展的預判能力、對用戶需求深度分析能力,才能將數據庫設計工作做到盡善盡美。一個合理的數據庫設計方案要具備完整性、高效性、長效性的特點,理想的數據庫不僅可以為軟件功能的開發(fā)起到事半功倍的效果,提升軟件的使用計算效率,還能降低軟件未來的維護與調整成本,為軟件的升級和功能的改進提供充足的空間。因此,數據庫的設計在計算機軟件開發(fā)中顯得尤為重要[1]。
2軟件開發(fā)行業(yè)數據庫設計的常見問題
2.1設計不能滿足需求
數據庫的設計是軟件開發(fā)過程中的首要環(huán)節(jié),滿足軟件功能的數據需求是數據庫設計的基本原則。若數據庫的設計不完整、不合理、不能完全地滿足功能需求,則在軟件的應用過程中很可能會直接導致整個系統崩潰和癱瘓。
2.2數據庫性能比較低
很多軟件雖然能實現客戶所需要的功能,但在應用運行的過程中,速度極其緩慢,效率極其低下。在不考慮硬件設施影響因素的條件下,很有可能是數據庫的設計不合理、算法不科學導致的。當今社會對軟件的功能需求越來越多樣化,數據庫的結構也越來越復雜,在這種背景下,如何保證數據庫性能的高效,是工程師在設計數據庫時應該著重考慮的問題[2]。
2.3數據庫設計不完整
完整性是數據庫必須要具備的條件之一。不完整的數據庫會導致數據在“增刪改查”的過程中出現主鍵關聯斷裂、數據信息溢出,甚至數據錯亂或丟失等問題,造成不可挽回的嚴重后果。
2.4數據庫的擴展性較差
在滿足軟件功能基本需求的基礎上,數據庫的可擴展性也是非常重要的。有的軟件工程師在設計數據庫時過于注重功能的實現,過度簡化數據表的結構,雖然能一時滿足軟件功能的需求,但在后續(xù)的更新和修改過程中,因缺乏二次擴展的可能性反而限制了軟件的升級[3]。
2.5數據查詢統計效率低
有的軟件統計功能較差,計算效率較低,導致這種現象的原因是設計者在設計數據表時,沒有考慮到為數據表設計有針對性的查詢統計字段。數據查詢統計的需求是多樣化的,設計者要充分考慮這種多樣化的可能性,并以此為依據設計數據表之間的關聯關系。
2.6數據日志信息不全
前期軟件開發(fā)中數據庫的設計工作與后期軟件應用中對數據的分析工作很可能不是同一批人負責。這就需要設計者在設計數據庫時考慮到必要的數據日志信息,對數據庫的操作和時間變化等關鍵信息進行記錄,為后期數據的分析與維護工作降低難度。
3數據庫設計的基本原則
3.1建立數據表關聯關系
數據庫是由眾多的數據表組成的,表與表之間的關聯性在很大程度上決定了數據庫架構的合理性。尤其是當今的大數據時代,海量的數據需要由海量的數據表來進行儲存,數據與數據之間以及表與表之間存在錯綜復雜的關系。軟件工程師在設計數據庫時,要結合軟件的實際需求,強化表與表之間的必要聯系,提高數據庫架構的合理性和可應用性,這在后期數據庫的設計中至關重要。對于數據量較大的數據庫,可以靈活應用映射表,將各數據表進行關聯劃分,使數據表之間的關系簡潔明了[4]。
3.2合理選擇設計方式
不同的數據庫設計方式適用于不同軟件的開發(fā),設計方式沒有優(yōu)劣之分,對于設計方式的選擇要把握適合的原則,根據軟件的具體需求,選擇科學、合理、直觀、省力的方式。
常見的設計方式有兩種,一種是視圖集成模式。它是將數據庫的設計劃分為工作單元,針對不同的單元分別進行設計,最后將設計好的工作單元以視圖的模式集成在一起,作為后期工作分析的重要依據,將整個視圖集成分析后,得出整體的分析結論,最后參考分析結論完成對數據庫的設計。另一種是集中設計模式,其側重于對全局的把握。首先對客戶的需求進行整體分析,然后根據分析結果為數據庫進行全局建模,最后根據構建的數據庫模型完成數據庫的設計工作。兩種模式各有優(yōu)劣,視圖集成模式的優(yōu)點在于可以分攤設計工作量,模塊化、精細化的設計更具可操作性。其劣勢在于對宏觀的把握不足,在后期視圖整合的過程中難度較大。集中設計模式的優(yōu)點在于對軟件的整體把控度較高。但其缺點在于對于大型的軟件工程項目而言,這種方式實施起來的難度較大。軟件工程師要根據具體開發(fā)的軟件項目,選擇適合的數據庫設計模式[5]。
3.3深度分析用戶需求
計算機軟件的開發(fā)是供人使用的,隨著當今社會的不斷發(fā)展進步,人們的需求也隨之提高,軟件也開始朝多樣化的趨勢發(fā)展。而軟件的多樣性,從另一個角度反映出功能需求的多樣性,因此.數據庫的設計乃至計算機軟件的開發(fā)都要以客戶的需求為宗旨,所以對用戶需求的分析就顯得格外重要。用戶的需求不同,應用的領域不同,對數據庫的要求也不盡相同。通常來講,應用在不同領域的軟件,數據庫的設計差異也較大,如企業(yè)員工的辦公系統、圖書館書籍的登記系統、醫(yī)療機構的專業(yè)系統、學生戶籍的管理系統等。需求不同決定了數據庫的層次不同,決定了設計者要選擇的設計方式和理念也不同,如何準確把握客戶的需求,是設計者數據庫設計的重點之一[6]。
3.4數據結構與軟件功能的契合度
數據庫架構的設計與搭建,是為了對軟件各模塊的后續(xù)程序開發(fā)提供服務。因此,對于數據庫的設計不能只局限于數據庫這一部分,而是要站在全局的角度綜合考慮,為后續(xù)的功能模塊開發(fā)提供便利。在開始數據庫的設計工作之前,首先要站在需求的角度,對軟件的整體架構進行宏觀把握;其次,要對軟件每一個功能模塊的邏輯性有初步的了解;最后,根據軟件整體運行流程的分析結果,決定數據庫的設計走向,既要保障每個功能模塊平穩(wěn)運行,也要提供對軟件整體的數據支撐[7]。
3.5留取空余字段空間
數據庫的設計工作往往都不是一氣呵成的,其中存在一定的變數,主要有兩個方面的原因。一方面是用戶需求的變化。無論是在軟件的開發(fā)過程中,還是在之后的應用過程中,用戶的需求往往會隨著軟件開發(fā)和應用的進程而發(fā)生變化,這就要求數據庫的設計者根據變化調整數據庫架構或升級軟件功能模塊。另一方面,面對大量的用戶需求和多樣化的操作使用,在前期的數據庫設計過程中難免會因考慮不周導致后期出現紕漏,這就要軟件工程師對數據庫進行維護。因此,軟件工程師在數據庫的設計階段,要留足空余字段的空間,以便今后對數據庫進行維護和對數據庫架構進行升級,與此同時,空余字段空間的留取也有利于對數據庫信息操作行為進行記錄。
3.6數據庫設計的檢驗
在數據庫設計完成之后,要對其進行反復檢驗。一方面要對數據庫的物理架構進行檢驗。物理架構的檢驗主要針對數據庫設計的完整性,查看數據表的字段設計能否符合軟件功能的需求、是否存在信息設計遺漏的情況和物理架構不合理的情況。另一方面是功能性檢驗。主要檢測軟件功能模塊在運行過程中,對數據庫的處理情況是否高效準確,數據表的主鍵設置和表之間的關聯關系能否滿足功能模塊的合理需求。
4數據庫設計的未來發(fā)展
4.1更新設計理念
我國軟件開發(fā)行業(yè)對于數據庫的設計并沒有引起足夠的重視。有的軟件工程師在數據庫設計時,僅局限于完成設計,缺乏系統性的思維和宏觀視角的審視。數據是功能的基礎,數據庫設計是軟件項目開發(fā)的基礎。一個優(yōu)秀的數據庫設計者必然要具備頂層架構的思維能力,這就需要設計者首先轉變認知觀念,深化對數據庫設計重要性的認識,有意識地培養(yǎng)上位思考能力,從全局的角度把控數據庫的設計。
4.2提升設計水平
數據庫的設計工作不可能盡善盡美,每一個數據庫設計者都走在持續(xù)優(yōu)化數據庫以接近完美的路上。優(yōu)化設計是一個提升數據庫設計能力的過程,這就要從兩個方面人手。一方面,要善于總結歸納以往成功經驗,對數據庫設計的優(yōu)劣有一個成熟、準確的判斷,優(yōu)秀的數據庫就像一件精美的藝術品,其底層邏輯和數據結構都讓人著迷。另一方面,要對數據庫未來的變化與發(fā)展有基本的預判。在數據庫設計契合軟件需求的基礎上,要打破當前數據的局限性,預判其在未來的升級空間。
4.3培養(yǎng)設計人才
就當前的行業(yè)現狀來看,對于數據庫設計而言,很多優(yōu)秀的軟件工程師并非軟件工程專業(yè)出身,而是由數學專業(yè)跨行業(yè)而來。這種現象不禁讓我們回頭反思數據庫設計者應具備的素質到底是什么。針對軟件專業(yè)技能的培訓、各種數據庫操作語言的學習等,專業(yè)技能固然重要,但比這更重要的是邏輯思維能力和對數據底層智慧的理解程度。因此,在對軟件工程人才的培養(yǎng)過程中,要有針對性地設置數據底層邏輯的學習科目,為我國數據庫高端人才的培養(yǎng)打下堅實的基礎。
5結束語
在網絡時代高速發(fā)展的背景下,軟件數據庫的設計與開發(fā)難度隨之增加,對數據庫設計者的要求也逐漸提高。為滿足大數據時代下的數據庫設計需求,本文通過研究數據庫設計對于軟件項目開發(fā)的重要性,歸納總結數據庫設計過程中常見的問題,并對此提出數據庫設計時需要把握的原則和可以應用的方法,緊跟時代潮流,緊隨行業(yè)發(fā)展,為我國軟件項目開發(fā)行業(yè)的數據庫設計者提供參考。