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