數據庫開發規范詳細介紹(一)
一.數據表和字段的設計
表設計原則
1、標準化和規范化
數據的標準化有助于消除數據庫中的數據冗余。標準化有好幾種形式,我們在這里采用Third Normal Form(3NF),因為3NF在性能、擴展性和數據完整性方面達到了***平衡。
遵守3NF 標準的數據庫某個表只包括其本身基本的屬性,當不是它們本身所具有的屬性時需進行分解。表之間的關系通過外鍵相連接。它具有以下特點:有一組表專門存放通過鍵連接起來的關聯數據。
2、考慮各種變化
在設計數據庫的時候考慮到哪些數據字段將來可能會發生變更。
字段設計原則:
1) 每個表中都應該添加的3 個有用的字段,即要求每張數據表中字段不得少于3個;
2) 選擇數字類型和文本類型盡量充足。在字段類型為數字或文本時,其長度***比實際所需的大一些。
3) 增加自動增長的操作ID字段(czid)
5) 增加記錄創建的日期字段(CreateDate)。
4) 增加刪除標記字段(isvoid):
在表中包含一個"刪除標記"字段,這樣就可以把行標記為刪除。在關系數據庫里不單獨刪除某一行;一般采用清除數據程序而且要仔細維護索引整體性。
二.鍵和索引的設計
1、鍵選擇原則:
1)為關聯字段創建外鍵。
2)所有的鍵都必須唯一。
3)避免使用復合鍵。
4)外鍵總是關聯唯一的鍵字段。
使用系統生成的主鍵
設計數據庫的時候采用系統生成的鍵作為主鍵,那么實際控制了數據庫的索引完整性。這樣,數據庫和非人工機制就有效地控制了對存儲數據中每一行的訪問。采用系統生成鍵作為主鍵還有一個優點:當擁有一致的鍵結構時,找到邏輯缺陷很容易。不要用用戶的鍵(不讓主鍵具有可更新性)在確定采用什么字段作為表的鍵的時候,小心用戶將要編輯的字段。通常的情況下不要選擇用戶可編輯的字段作為鍵。
可選鍵有時可做主鍵
把可選鍵進一步用做主鍵,可以擁有建立強大索引的能力。
2、索引使用原則:
索引是從數據庫中獲取數據的***效方式之一。95%的數據庫性能問題都可以采用索引技術得到解決。
索引外鍵
大多數數據庫都索引自動創建的主鍵字段,但是可別忘了索引外鍵,它們也是經常使用的鍵,比如運行查詢顯示主表和所有關聯表的某條記錄就用得上。
不要索引大型字段(有很多字符),這樣作會讓索引占用太多的存儲空間。
不要索引常用的小型表
不要為小型數據表設置任何鍵,假如它們經常有插入和刪除操作就更別這樣作了。對這些插入和刪除操作的索引維護可能比掃描表空間消耗更多的時間。
三. 數據完整性設計
完整性實現機制:實體完整性:主鍵
參照完整性:
父表中刪除數據:級聯刪除;受限刪除;置空值
父表中插入數據:受限插入;遞歸插入
父表中更新數據:級聯更新;受限更新;置空值
DBMS對參照完整性可以有兩種方法實現:外鍵實現機制(約束規則)和觸發器實現機制
用戶定義完整性:NOT NULL;CHECK;觸發器
用約束而非商務規則強制數據完整性
采用數據庫系統實現數據的完整性。這不但包括通過標準化實現的完整性而且還包括數據的功能性。在寫數據的時候還可以增加觸發器來保證數據的正確性。不要依賴于商務層保證數據完整性;它不能保證表之間(外鍵)的完整性所以不能強加于其他完整性規則之上。
強制指示完整性
在有害數據進入數據庫之前將其剔除。激活數據庫系統的指示完整性特性。這樣可以保持數據的清潔而能迫使開發人員投入更多的時間處理錯誤條件。
使用查找控制數據完整性
控制數據完整性的***方式就是限制用戶的選擇。只要有可能都應該提供給用戶一個清晰的價值列表供其選擇。這樣將減少鍵入代碼的錯誤和誤解同時提供數據的一致性。
采用視圖
為了在數據庫和應用程序代碼之間提供另一層抽象,可以為應用程序建立專門的視圖而不必非要應用程序直接訪問數據表。這樣做還等于在處理數據庫變更時給你提供了更多的自由。
在進行數據庫開發時,嚴格遵守這些規范原則就能將數據庫的開發工作做的很完善,希望大家能很熟練的掌握這些設計規范,以便于大家在以后的數據庫開發過程中能很輕松的應用上。
【編輯推薦】