汪 靜(江西工程學院,江西 新余 338029)
數據庫設計過程及注意事項
汪 靜
(江西工程學院,江西 新余 338029)
數據庫技術是計算機學科中的一個重要分支,也是應用最廣范的技術之一,幾乎所有的企業級應用程序中,后臺都有數據庫的支持。本文討論數據庫設計包括哪些過程,過程中很有可能會遇到一些問題,因此,我們要研究數據庫設計過程中的注意事項,以及數據庫設計的一些技巧。
數據庫設計過程;注意事項;優化
目前,數據庫系統的應用領域非常廣,幾乎所有的企業級應用程序中,后臺都有數據庫的支持,這樣做的優點是,把數據層與業務邏輯層輕松地分離開來,整體的性能也得到了大幅度的優化。
經過分析,不同數據庫規范化設計方法通常是把數據庫設計過程分成六個階段,依次為需求分析階段、概念結構設計階段、邏輯結構設計階段、數據庫物理設計階段、數據庫實施階段及數據庫運行和維護階段。
首先要做的是,要先察原有的數據庫系統。因為大多數數據庫項目一般都不是從無開始創建的,需求單位內部很可能會早就有滿足一定需求的原有數據庫系統,對原有系統考察完畢后再思考如何建立現在的新系統。建立新系統的過程中,數據庫設計人員及用戶的互相合作非常重要。需求分析的采集是由設計人員和需求單位合作完成的。
我們要開發的新系統要達到需求方的需要,滿足其各方面的要求。需求分析的結果要求要有文檔形式,也就是需求說明,需求說明文檔要得到相關管理人員的認同。需求分析這一過程是我們進行數據庫設計的打基礎階段。
把應用需求轉化為邏輯結構就是概念結構設計階段的工作。邏輯結構也就是概念結構,它獨立于我們熟悉的數據庫管理系統。它既和用戶熟悉的現實世界關系密切,又能轉換為我們系統設計人員要研究的數據模型,起到了一個重要的橋梁作用。概念結構可以很容易地對現實世界已經改變的需求作出相應的適應性變動。每個用戶都有各自對信息的要求和對處理的要求,因此應先生成針對不同用戶的局部視圖,然后再得到數據庫概念模型,也就是全局視圖。概念結構設計階段在整個數據庫設計過程中非常重要。
概念結構比較獨立于具體的計算機,相對來講穩定性比較高。但我們的目的是用數據庫管理系統實現應用單位的各方面的需要,因此,概念結構不是最終,我們應把它變為邏輯結構。這個階段的工作涉及到了很多細節問題,工作量也比較大。在實際應用中,我們可能沒有機會在眾多數據庫管理系統挑選出性價比最高的一款,用哪一個數據庫管理系統,大多已經安排好了。當今,我們實際應用的數據庫管理系統通常只支持關系模型、網狀模型及層次模型三種模型中的某一種。所以設計邏輯結構要先將概念結構轉化為關系模型、網狀模型或層次模型,再將轉化來的模型轉換為數據庫管理系統支持的模型。
通常情況下,一張二維表不能既無主鍵也無外鍵。主鍵是唯一的,它在一張二維表格中的重要性是不言而喻的。而外鍵的作用也是巨大的,在表和表之間的關聯中,外鍵就像一條黃金紐帶。
正確地掌握三個范式的精髓,對于我們數據庫的設計優化必不可少。1NF即第一范式,任何一張二維表格都必須滿足第一范式,因為是對表最基本的要求,即屬性不能分割,不能嵌套。2NF即第二范式,它也是作為二維表格必須要滿足的,也就是說一張二維表格中記錄不能重復,因為重復的記錄是毫無意義的,憑白浪費空間。3NF即第三范式被認為在性能、擴展性及數據完整性方面達到了最好的平衡,它在字段的冗余性方面規定了約束條件。但是,第三范式并不是一定要被滿足的。字段沒有冗余的代價有可能會增加操作的時間,也就是數據庫的運行效率會受影響,可能會變低,所以,為了運行速度更快,我們可能要放棄第三范式。關系規范化的程序越高是否就越實用,要視具體情況而定。因為如果規范化的程度越高,必須要將一張大表拆分成若干張小表,這些小表用一些鍵值聯接起來,查詢時就需要對多個表進行聯接,大大影響查詢的效率。
為了優化錄入界面,我們應該確定的原始單據和基本表之間的對應關系。它們之間可能是一對一的關系、一對多的關系、還有可能是多對多甚至多對一的關系。通常情況下,它們之間是一對一的關系:也就是一張原始單據對應且只對應一張基本表。而在特殊情況下,它們也可能是一對多或者多對一的關系,也就是一張原始單據對應多張基本表,或者多張原始單據對應一張基本表。為了優化我們設計的數據庫,這點要引起注意。
物理設計階段是個實實在在的過程,之前幾個階段的努力在這個階段都會得到“眼見為實”的體驗,是真正看到勞動成果的階段。這個階段的注意事項也很重要。在網狀模型和層次模型的系統中,這一部分內容比較復雜,關系模型系統較簡單。在設計時,應先確定物理結構,再進行評價。物理結構設計應盡量減小存儲空間,盡量減少操作次數。得到物理設計完成之后的詳細數據后,我們就可以利用電腦創建數據庫了。
對上一階段的成果進行初步評價并優化后,另各方人員滿意后,我們就正式進入數據庫實施階段了。這個階段具體的流程是先用數據庫管理系統建庫命令創建用戶數據庫結構,然后組織數據入庫,最后編制及調試應用程序。一切準備就緒后,我們就可以對數據庫進行試運行了。
這一階段,我們要注意密切關注試運行過程中出現的問題并做好記錄,以期望之后解決。這個階段數據庫管理員擔當重任,責任重大。
在數據庫設計的過程中,為了優化我們設計的數據庫系統,堅決抵制系統出問題,我們應該仔細思考,學習并積極研究數據庫的設計技巧。充分重視注意事項,才會使數據庫設計更加科學、合理。
[1]何玉潔.數據庫設計[S].機械工業出版社,2003(06).
[2]王珊,薩師煊.數據庫系統概論[S].高等教育出版社,2006(05).
[3]西格爾,尹買華.數據庫管理系統[S].清華大學出版社,2004(07).
[4]王選.軟件設計方法[S].清華大學出版社,1992.
汪靜(1981-),女,山東昌邑人,碩士,講師,主要從事:計算機相關教學。