討論:數據庫設計
數據庫設計(Database Design)是指對於一個給定的應用環境,構造最優的數據庫模式,建立數據庫及其應用系統,使之能夠有效地存儲數據,滿足各種用戶的應用需求(信息要求和處理要求)。在數據庫領域內,常常把使用數據庫的各類系統統稱為數據庫應用系統。
定義
數據庫設計(Database Design)是指根據用戶的需求,在某一具體的數據庫管理系統上,設計數據庫的結構和建立數據庫的過程。數據庫系統需要操作系統的支持。 數據庫設計是建立數據庫及其應用系統的技術,是信息系統開發和建設中的核心技術。由於數據庫應用系統的複雜性,為了支持相關程序運行,數據庫設計就變得異常複雜,因此最佳設計不可能一蹴而就,而只能是一種「反覆探尋,逐步求精」的過程,也就是規劃和結構化數據庫中的數據對象以及這些數據對象之間關係的過程。
設計原則
1、一對一設計原則
在軟件開發過程中,需要遵循一對一關係設計原則進而開展數據維護工作,通過利用此原則能夠儘量減少維護問題的出現,保證數據維護工作順利開展同時降低維護工作難度。在此過程中,儘量避免數據大且數據雜現象出現,否則既會影響到軟件開發進度,又會增加工作難度,給其產品質量帶來影響。所以,設計工作人員必須重視起此問題。同時充分了解實體間存在的必然聯繫,進而實現信息數據分散的目標,並在此基礎上提高整體工作人員的工作效率,提高軟件應用程序可靠性、科學性、安全性以及自身性能。
2、獨特命名原則
獨特命名原則的應用是為了減少在數據庫設計過程中出現重複命名和規範命名現象出現。通過應用此原則能夠減少數據冗雜,維護數據一致性,保持各關鍵詞之間存在必然相對應聯繫。獨特命名原則能夠鍛煉工作人員對大小寫字母熟練操作能力,有利於規範化後台代碼工作的開展。
3、雙向使用原則
雙向使用原則包括:事務使用原則和索引功能原則。首先,雙向使用原則是在邏輯工作單元模式基礎上實現其表現形式的,不僅給非事務性單元操作工作提供基礎保障,也保證其能夠及時更新、獲取數據資源。索引功能原則的有效運用,使其獲取更多屬性列數據信息,並且對其做到靈活排序。目前,軟件市場常見的索引模式有:多行檢索聚簇索引和單行檢索非聚簇索引。 [1]
重要性
1、有利於資源節約
不少計算機軟件設計時過於重視計算機軟件的功能模塊,卻沒有綜合、全面地分析數據庫設計,這往往會導致軟件在實際運行過程中頻頻出現性能低下以及各類故障,甚至還會引發漏電、系統崩潰等一系列安全隱患。因此,對計算機軟件數據庫設計加以重視不僅可減少軟件後期的維修,達到節約人力與物力的目的,同時還有利於軟件功能的高效發揮。
2、有利於軟件運行速度的提高
高水平的數據庫設計可滿足不同計算機軟件系統對於運行速度的需求,而且還可充分發揮並實現系統功能。計算機軟件性能提高後,系統發出的運行指令在為用戶提供信息時也將更加快速有效,軟件運行速度自然得以提高。此外,具有擴展性的數據庫設計可幫助用戶節約操作軟件的時間。在數據庫設計環節,利用其信息存儲功能可通過清楚一些不必要的數據庫來提高系統的查詢效率。除上述功能外,軟件設計師還可依據軟件功能需求進行有效的數據庫設計,進而保障數據庫有效發揮自身在計算機軟件運行中的作用。
3、有利於軟件故障的減少
在進行數據庫設計時,有些設計師的設計步驟過於複雜,也沒有對軟件本身進行有效分析,這必然會導致計算機軟件無法有效發揮自身功能。另一方面,有效的設計日誌信息的缺乏還會導致軟件在運行過程中出現一系列故障,用戶在修改一些錯誤的操作時必然也會難度較大。因此,加強數據庫設計可有效減少軟件故障的發生幾率,推動計算機軟件功能的實現。
設計技術
①明確用戶需求:作為計算機軟件開發的重要基礎,數據庫設計直接體現了用戶的需求,因此設計師在設計數據庫時一定要與用戶密切溝通,緊密結合用戶需求。明確用戶開發需求後,設計師還需將具體的業務體現出其關聯與流程。為便於後期業務拓展,設計環節應充分考慮到拓展性,適當預留變通字段。
②重視數據維護:過大的設計面積與過於複雜的數據是數據庫設計中常見問題,因此設計師應對數據維護工作加以重視。為提升數據庫的設計效率,設計師還應關注數據與實體之間的聯繫,以分散與之相關的數據信息,促進設計效率的提升。
③增加命名規範性:數據庫程序與文件的命名非常重要,既要避免名稱重複,還要保證數據處於平衡狀態。即每個數據的關鍵詞都應處於相對應的關係。對此,設計師在命名時應明了數據庫程序與文件之間的關係,靈活運用大小寫字母來對其進行命名,降低用戶查找信息與資源時的複雜度與困難度。
④充分考慮數據庫優化與效率的問題:考慮到數據庫的優化與效率,設計師需針對不同表的存儲數據採用不同的設計方式,如採用粗粒度的方式設計數據量較大的表。為使表查詢功能更加簡便快捷,可建立有效的索引。在設計中還應使用最少的表和最弱的關係來實現海量數據的存儲。
⑤不斷調整數據之間的關係:針對數據之間的關係進行不斷調整與精簡可有效減少設計與數據之間的連接,進而可為數據之間平衡狀態的維持以及數據讀取效率的提升提供保障。
⑥合理使用索引:數據庫索引通常分為有簇索引和非簇索引這兩種均可提升數據查找效率的方式。儘管數據索引效率得到提升了,但索引的應用往往又會帶來插入、更新等性能減弱的問題。數據庫性能衰弱現象往往會在填充較大因子數據時表現較為突出,因此在對索引較大的表執行插入、更新等操作時應儘量填寫較小因子,以為數據頁留存空間。[2]
步驟和內容
需求分析
調查和分析用戶的業務活動和數據的使用情況,弄清所用數據的種類、範圍、數量以及它們在業務活動中交流的情況,確定用戶對數據庫系統的使用要求和各種約束條件等,形成用戶需求規約。
需求分析是在用戶調查的基礎上,通過分析,逐步明確用戶對系統的需求,包括數據需求和圍繞這些數據的業務處理需求。在需求分析中,通過自頂向下,逐步分解的方法分析系統,分析的結果採用數據流程圖(DFD)進行圖形化的描述。
概念設計
對用戶要求描述的現實世界(可能是一個工廠、一個商場或者一個學校等),通過對其中諸處的分類、聚集和概括,建立抽象的概念數據模型。這個概念模型應反映現實世界各部門的信息結構、信息流動情況、信息間的互相制約關係以及各部門對信息儲存、查詢和加工的要求等。所建立的模型應避開數據庫在計算機上的具體實現細節,用一種抽象的形式表示出來。以擴充的實體—(E-R模型)聯繫模型方法為例,第一步先明確現實世界各部門所含的各種實體及其屬性、實體間的聯繫以及對信息的制約條件等,從而給出各部門內所用信息的局部描述(在數據庫中稱為用戶的局部視圖)。第二步再將前面得到的多個用戶的局部視圖集成為一個全局視圖,即用戶要描述的現實世界的概念數據模型。
邏輯設計
主要工作是將現實世界的概念數據模型設計成數據庫的一種邏輯模式,即適應於某種特定數據庫管理系統所支持的邏輯數據模式。與此同時,可能還需為各種數據處理應用領域產生相應的邏輯子模式。這一步設計的結果就是所謂「邏輯數據庫」。
物理設計
根據特定數據庫管理系統所提供的多種存儲結構和存取方法等依賴於具體計算機結構的各項物理設計措施,對具體的應用任務選定最合適的物理存儲結構(包括文件類型、索引結構和數據的存放次序與位邏輯等)、存取方法和存取路徑等。這一步設計的結果就是所謂「物理數據庫」。
驗證設計
在上述設計的基礎上,收集數據並具體建立一個數據庫,運行一些典型的應用任務來驗證數據庫設計的正確性和合理性。一般,一個大型數據庫的設計過程往往需要經過多次循環反覆。當設計的某步發現問題時,可能就需要返回到前面去進行修改。因此,在做上述數據庫設計時就應考慮到今後修改設計的可能性和方便性。
運行與維護設計
在數據庫系統正式投入運行的過程中,必須不斷地對其進行調整與修改。
至今,數據庫設計的很多工作仍需要人工來做,除了關係型數據庫已有一套較完整的數據範式理論可用來部分地指導數據庫設計之外,尚缺乏一套完善的數據庫設計理論、方法和工具,以實現數據庫設計的自動化或交互式的半自動化設計。所以數據庫設計今後的研究發展方向是研究數據庫設計理論,尋求能夠更有效地表達語義關係的數據模型,為各階段的設計提供自動或半自動的設計工具和集成化的開發環境,使數據庫的設計更加工程化、更加規範化和更加方便易行,使得在數據庫的設計中充分體現軟件工程的先進思想和方法。
存在問題
1、業務基本需求無法得到滿足
無法充分滿足業務基本需求的數據庫設計不僅會造成數據系統的波動,而且還會因無法及時調整系統而對數據資源運行與處理帶來較大的制約性。
2、數據庫性能不高
計算機軟件數據庫系統對於業務數據的要求較高,然而目前卻有不少數據庫的性能並不高,在設計環節所採用的數字形式也並不合理,用戶在執行查詢等操作時均較為複雜,數據運用的兼顧性未得到充分考慮。
3、數據庫的擴展性較差
對於一個完整的計算機軟件數據庫而言,其運行與調整離不開完整的數據資源。不完整的數據資源不僅會造成數據信息不合理,還會導致數據庫更新不暢以及刪除不完善等問題,這些問題的存在將嚴重製約信息資源的展示與分析。
4、數據資源冗餘
數據資源冗餘問題在計算機軟件數據庫設計中較為常見,系統查詢速度將會由於大量數據資源庫的占用而大大放慢。而統計工作的限制性又會對表系統設計帶來一定的影響,如關聯字段無法實現與統計字段的合理結合等。如此一來,數據庫中的數據統計步驟將煩瑣很多,統計項目也無法良好開展。
5、表與表之間的耦合過密
表與表之間的耦合過密是制約計算機數據庫設計以及資源統計與分析的主要原因,一旦某個表發生變化,必然也會對其他錶帶來重大變化。 [3]
視頻
數據庫設計--數據庫設計概述