彭嬌++聶慧
摘 要:作為一門應用性很強的學科,數據庫技術在軟件開發中的應用越來越廣泛了。該文對關系型數據庫設計的理論及實踐進行了簡單分析。首先,簡單介紹了數據庫設計的重要性;其次分析了關系型數據庫設計步驟及原則;最后結合實例,分析了在軟件開發中的數據庫設計實踐。
關鍵詞:關系型 數據庫 理論 實踐
中圖分類號:TP311 文獻標識碼:A 文章編號:1674-098X(2014)07(b)-0054-01
數據庫設計(Database Design)是指根據用戶的需求,在某一具體的數據庫管理系統上,設計數據庫的結構和建立數據庫的過程。而關系型數據庫則是創建在關系模型基礎上的數據庫,是借助于集合代數等數學概念和方法來處理數據,使之能夠有效地存儲數據,以滿足用戶的各種應用需求。
1 數據庫的重要性
數據庫設計是計算機軟件設計的重要內容,同時也是支撐計算機軟件系統運行的關鍵,是軟件設計的起點,起著決定性的質變作用,必須對數據庫的設計高度重視起來。
(1)數據庫設計最起碼要占用整個項目開發的40%以上的時間。數據庫是用戶需求的直觀反應和表現,需求的要求和變化都要一一體現在數據庫的設計中。
(2)數據庫設計不僅僅停留在頁面demo的表面,還有模塊交互、表之間的聯系、中轉數據等所需要的字段。因此,在數據庫設計中不僅包括基本的數據存儲,還包括邏輯數據的存儲。
(3)數據庫設計完成后,項目80%的設計開發在腦海中已經完成了。在設計每一個字段時,已經考慮好這些字段的運用,在表中如何體現。當數據庫設計完成后,程序中所有的實現思路和實現方式已經考慮清楚了,否則會造成一系列不可預測的問題。
由此可見,數據庫設計在整個軟件開發過程中起到了舉足輕重的作用。
2 關系型數據庫設計的基本步驟
關系型數據庫設計的過程可大體分為四個時期七個階段。
(1)用戶需求分析時期,主要是了解和分析用戶對數據的功能需求和應用需求,是整個設計過程的基礎,事關整個數據庫應用系統設計的成敗。
(2)數據庫設計時期,主要是將用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的數據模型,可用實體—聯系模型來表示,然后將其轉換為已選好的關系型數據庫管理系統RDBMS所支持的一組關系模式并為其選取一個適合應用環境的物理結構,包括存儲結構和存取方法。
(3)數據庫實現時期,包括數據庫結構創建階段和應用行為設計與實現階段,是根據數據庫的物理模型創建數據庫、創建表、創建索引、創建聚簇等。
(4)數據庫運行與維護階時期,最后一個階段則是數據庫應用系統經過試運行后即可投入正式運行。
3 關系型數據庫設計的幾個原則
在進行關系型數據庫的設計過程中,要遵循以下幾個原則,借此可以提高數據庫的存儲效率、數據完整性和可擴展性。
3.1 命名規范化
在概念模型設計中,對于出現的實體、屬性及相關表的結構要統一。例如在數據庫設計中,指定學生Sstudent,專指本科生,相關的屬性有:學號、姓名、性別、出生年月等,及每個屬性的類型、長度、取值范圍等都要進行確定,這樣就能保證在命名時不會出現同名異義或異名同義、屬性特征及結構沖突等問題。
3.2 數據的一致性和完整性
在關系型數據庫中可以采用域完整性、實體完整性和參照完整性等約束條件來滿足其數據的一致性和完整性,用check、default、null、主鍵和外鍵約束來實現。
3.3 數據冗余
數據庫中的數據應盡可能地減少冗余,這就意味著重復數據應該減少到最少。例如:若一個部門職員的電話存儲在不同的表中,假設該職員的電話號碼發生變化時,冗余數據的存在就要求對多個表進行更新操作,若某個表不幸被忽略了,那么就會造成數據不一致的情況。所以在數據庫設計中一定要盡可能存在少地冗余。
3.4 范式理論
在關系數據庫設計時,一般是通過設計滿足某一范式來獲得一個好的數據庫模式,通常認為3NF在性能、擴展性和數據完整性方面達到了最好的平衡,因此,一般數據庫設計要求達到3NF,消除數據依賴中不合理的部分,最終實現使一個關系僅描述一個實體或者實體間一種聯系的目的。
4 以具體實例設計的關系型數據庫設計的實踐
以大學教學管理軟件開發中的數據庫設計為例進行分析。
(1)重視系統的總體設計。總體設計不僅與軟件項目順利開展的進度有關,還與是否可以達到預期的項目開發目標有關。下面以大學教學管理數據庫開發為例進行說明。
(2)首先對大學教學管理軟件所涉及的數據進行詳細的分析。按照上述的設計思想,共設計了如下表,例如,學生關系表、專業關系表等,然后創建視圖和存儲過程。
①學生關系表S:S#(學號),SNAME(姓名),SSEX(性別),SBIRTHIN(出生年月)等字段,主鍵為S#(學號)。②專業關系表SS:SCODE#(專業代碼),SSNAME(專業名稱)等字段,主鍵為SCODE#(專業代碼)。③課程關系表C:C#(課程號),CNAME(課程名稱),CLASSH(學時)等字段,主鍵為C#(課程號)。④設置關系表CS:SCODE#(專業代碼),C#(課程號)等字段,主鍵為SCODE#(專業代碼),C#(課程號)。⑤學習關系表SC:S#(學號),C#(課程號),GRADE(分數)等字段,主鍵為S#(學號),C#(課程號)。⑥教師關系表T:T#(教工號),TNAME(姓名),TSEX(性別)等字段,主鍵為T#(教工號)。⑦講授關系表TEACH:T#(教工號),C#(課程號)等字段,主鍵為TEACH:T#(教工號),C#(課程號)。
數據庫中的每一個表都建立了主鍵,部分表為了滿足查詢和排序的需要,還需要建立索引。例如查詢學生信息時,除了按學號查詢,有時還會用到按照班級查詢。因此,在學生表中除了對主鍵“學號”建立主索引外,也對“班級”建立了次索引。同時,在數據庫中,數據按照主鍵和外鍵的關系,建立起了關系。另外,根據查詢需要,還建立了教學安排視圖、課程成績視圖和學生平均成績視圖及相關的存儲過程。
5 結語
通過前面的分析和研究,數據庫的設計是非常重要的,為之后整個系統的穩定可靠運行提供了穩固的后臺保障。數據庫必須與應用程序的業務需求相輔相成,在設計過程中要嚴格遵循關系數據庫的設計步驟,并靈活運用上述原則。
參考文獻
[1] 潘博.計算機軟件數據庫設計的重要性以及原則研究[J].計算機光盤軟件與應用,2013(8).
[2] 王曉軍.數據庫設計的理論和實踐在軟件開發中的作用[J].科技與生活,2012 (8).
[3] 孟志偉.管理系統的數據庫設計[J].信息與電腦,2009(7).
[4] 李長海,郭穎,董廣輝.淺析數據庫設計[J].數字技術與應用,2010(8).
[5] 李俊山,羅榮.數據庫原理及應用[M].清華大學出版社,2012.endprint