- Access 2013數據庫應用案例課堂
- 劉玉紅
- 2473字
- 2021-03-19 18:23:37
2.4 數據庫的設計步驟和方法
設計數據庫的目的實質上是設計出最優的數據庫模式,使之能夠有效地存儲數據,滿足用戶的實際需求。在初始設計數據庫時,難免會發生錯誤或遺漏數據的現象。完成初步設計后,利用示例數據對其進行測試,Access很容易對原設計方案進行修改,可是在輸入大量數據之后,再想修改就比較困難。正因為如此,在開發完整的數據庫系統前,應確保設計方案的合理性。
2.4.1 總體設計
創建數據庫之前,第一個步驟是確定數據庫的用途,專業術語稱為“需求分析”。即開發者需要確定希望從數據庫中得到什么信息。例如,學生信息管理是學校管理工作中的主要環節之一,涉及學生的基本信息管理、住宿管理、成績管理、課程管理等方面。隨著每年新學期的開始,學生的信息也在不斷地發生變化。為了提高學生管理的效率,可以創建一個“學生信息管理”數據庫。
在創建此數據庫之前,需要確定其完成的功能,包括以下幾點。
●能輸入和修改學生的基本信息,例如學號、姓名、性別、出生日期、專業等。
●能輸入和修改學生每學期的課程信息,例如課程名稱、授課老師、上課時間等。
●能輸入和修改學生各學期各門課程的成績信息,例如學期名稱、課程名稱、相應成績、是否及格等。
●能輸入和修改學生的住宿信息,例如宿舍號、宿舍電話、宿舍人數等。
●能夠查詢學生的平均成績、最好成績、最差成績等信息。
●生成標簽報表,打印每個學生的基本信息。
●設置登錄名和密碼登錄系統,查詢以上信息。
從以上的例子可以看出,在確定數據庫的用途時,希望數據庫提供的一系列信息也隨之顯示出來。由此,可以確定在數據庫中存儲哪些事件,以及每個事件屬于哪個主題。這些事件與數據庫中的字段相對應,事件所屬的主題則與表是對應的。
當然,構建系統所需要的大多數信息都來源于最終的用戶,這意味著開發者可以和他們進行交流探討以了解得更加全面。同時,在實際創建數據庫之前,開發者不妨先在紙面上草擬一些希望數據庫生成的報表,或者收集當前用來記錄數據的表格,還可以參考某個設計得很好且與當前要設計的數據庫相似的數據庫,從而確保設計出合理的方案。
2.4.2 設計表
這是數據庫設計過程中最重要的一個環節,也是最難處理的一個步驟。因為表對象是整個數據庫的基礎,也是查詢、窗體和報表對象的基礎。表結構設計得好壞會直接影響數據庫的性能。一個良好的數據表設計應該具備以下兩點。
●表不應包含備份信息,表之間不應包含重復信息,從而減少冗余數據。否則不僅會浪費空間,還會增加出錯的可能性。
●每個表應該只包含關于一個主題的信息。
由此可知,開發者可以將信息劃分為各個獨立的主題,每個主題都可以設計成為數據庫的一個表。例如,在“學生信息管理”數據庫中可以劃分為學生、課程、成績等,因此可以設計“學生信息”表、“課程”表、“成績”表、“班級”表、“宿舍”表等,如圖2-1所示。

圖2-1 “學生信息管理”數據庫中的表
2.4.3 設計字段
每個表中都應包含同一主題的信息,即表中的字段應圍繞這個主題而創建。在設計表中的字段時,應注意以下幾點。
●字段應涉及所有需要的信息。
●以最小的邏輯部分存儲信息。例如,學生姓名通常分為兩個字段存儲,“名字”和“姓氏”。
●不要創建相互類似的字段。例如,在“供應商”表中,如果創建了“產品1”和“產品2”字段,就很難查找所有提供某一特定產品的供應商。
●不應包含派生或計算得到的數據。例如,如果有“單價”和“數量”字段,就不要額外再創建一個“總價”字段存儲這兩個字段值的乘數。該數據完全可以通過建立查詢來實現。
●明確有唯一性的字段。
Access為了連接保存在不同數據表中的信息,數據庫中的每個數據表必須設置主鍵字段。例如,在“學生信息”表中設計“學號”“姓名”“性別”“出生日期”“籍貫”等字段,其中,設置“學號”字段為主鍵,如圖2-2所示。

圖2-2 “學生信息”表中的字段
2.4.4 設計關系
Access數據庫中的數據保存在不同的表中,因此必須要有一些方法能夠連接這些數據,使之作為一個整體使用。通過建立表間的關系即可解決此問題。
例如,在“學生信息管理”數據庫中,來查看一個學生的基本信息和他所住宿舍的信息。因為一個學生只能有一個宿舍,而一個宿舍可以有多位學生,因此在“宿舍”表和“學生信息”表之間建立一對多關系后,就可以把這兩個表中的數據結合在一起查詢,如圖2-3所示。

圖2-3 “學生信息管理”數據庫中的表關系
數據庫表關系要求關系中所涉及的兩個表內有唯一的字段,如果表中沒有唯一的字段,則數據庫引擎無法正確連接并提取相關的數據。這時,就需要向表中添加一個額外的字段,讓該字段作為與其他表形成關系的點。
2.4.5 優化設計
在設計完需要的表、字段和關系后,應檢查設計并盡量找出任何可能存在的不足。因為改變當前數據庫的設計要比改變已經輸入數據的表容易得多。
開發者應在每個表中輸入充足的示例數據,以方便檢查設計。可以創建各種查詢,通過得到的結果來檢查數據庫中的關系,還可以創建窗體和報表的草稿,檢查顯示的數據是否符合期望,從中查找不需要的重復數據,并對其進行修改。
另外,許多表結構在當時使用效果非常好,但常常會因為用戶修改或添加數據而崩潰。開發人員在使用過程中會發現,經常需要重新設計表的結構來適應這些變化。并且表結構發生變化時,所有相關的內容也會發生改變。因此,預測這些變化可以減少問題的發生。
2.4.6 創建窗體
經過優化設計后,如果當前的表結構符合期望,就可以在表中添加所有的數據,接著進行窗體的設計。在Access數據庫系統中,開發者和使用者往往是分離的,而窗體更多地需要站在使用者的角度進行設計。因此,設計一個操作方便、美觀的界面在數據庫設計中占有相當重要的地位。
窗體以表或查詢為數據源。設計窗體之前,若當前存在的表不滿足需求,開發者還需創建查詢來作為數據源。
設計窗體時需要在屏幕上放置以下三類對象。
●標簽和文本框控件:以方便輸入數據。
●其他特殊控件:例如按鈕、列表框、復選框等。
●提升窗體效果的圖表對象,例如顏色、線條、矩形等。
設計窗體時,將上述控件放置在窗體中的相應位置,并設置對應的事件屬性,即設置對應的宏。至此,一個簡單的數據庫系統就設計完成了。若要完成更復雜的功能,設計相應的VBA模塊對象即可。
- Getting Started with Gulp(Second Edition)
- Rust編程:入門、實戰與進階
- Vue.js 2 and Bootstrap 4 Web Development
- Web Scraping with Python
- 微服務設計原理與架構
- Easy Web Development with WaveMaker
- Getting Started with NativeScript
- Learning Apache Karaf
- Building Wireless Sensor Networks Using Arduino
- 響應式Web設計:HTML5和CSS3實戰(第2版)
- Unity&VR游戲美術設計實戰
- Angular應用程序開發指南
- Extending Unity with Editor Scripting
- Windows Phone 8 Game Development
- Java Web應用開發給力起飛