什么是數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫設(shè)計就是將數(shù)據(jù)庫中的數(shù)據(jù)實(shí)體以及這些數(shù)據(jù)實(shí)體之間的關(guān)系,進(jìn)行規(guī)劃和結(jié)構(gòu)化的過程
設(shè)計數(shù)據(jù)庫的必要性
書庫中創(chuàng)建的數(shù)據(jù)表的結(jié)構(gòu),以及數(shù)據(jù)實(shí)體之間的復(fù)雜關(guān)系時決定數(shù)據(jù)庫系統(tǒng)工作效率的重要因素。
糟糕的數(shù)據(jù)庫設(shè)計具有以下不足
- 效率低下
- 更新和檢索數(shù)據(jù)會出現(xiàn)異常
良好的數(shù)據(jù)庫設(shè)計具有以下優(yōu)點(diǎn)
效率高
- 便于進(jìn)一步擴(kuò)展
- 使得程序的開發(fā)變得更容易
數(shù)據(jù)庫設(shè)計的步驟
1.需求分析階段
準(zhǔn)確了解與分析用戶需求,是整個設(shè)計過程的基礎(chǔ),也是最困難、最耗費(fèi)時間的階段。
2.概念結(jié)構(gòu)設(shè)計階段
這一階段時整個數(shù)據(jù)庫設(shè)計的關(guān)鍵,通過對用戶需求進(jìn)行綜合、歸納及抽象,形成一個獨(dú)立于具體DBMS的概念模型,同時在這個階段繪制E-R模型圖
3.邏輯結(jié)構(gòu)設(shè)計階段
將邏輯結(jié)構(gòu)轉(zhuǎn)換為為某個DBMS所支持的數(shù)據(jù)模型,并對其進(jìn)行優(yōu)化。
4.數(shù)據(jù)庫物理設(shè)計階段
為邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)和存取方式)。
5.數(shù)據(jù)庫實(shí)施階段
運(yùn)行DBMS提供的數(shù)據(jù)語言、工具,根據(jù)邏輯思維和物理設(shè)計的結(jié)果建立數(shù)據(jù)庫,編制于調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫并進(jìn)行試運(yùn)行
6.數(shù)據(jù)庫運(yùn)行和維護(hù)
數(shù)據(jù)庫應(yīng)用系統(tǒng)經(jīng)過試運(yùn)行后即可投入正式運(yùn)行。在運(yùn)行過程中必須不斷地對其進(jìn)行評價、調(diào)整及修改。
無論數(shù)據(jù)庫的復(fù)雜程度的如何,在進(jìn)行數(shù)據(jù)庫分析時,都需要執(zhí)行收集信息、標(biāo)注實(shí)體、標(biāo)識實(shí)體的屬性及標(biāo)識實(shí)體的關(guān)系。
收集信息
在創(chuàng)建數(shù)據(jù)庫之前,必須充分理解數(shù)據(jù)庫需要完成的任務(wù)和功能,即存儲那些信息、實(shí)現(xiàn)那些功能。
表示實(shí)體
實(shí)體即對象。表示實(shí)體就是要標(biāo)識對象,實(shí)體一般是名字,一個實(shí)體只描述一件事物,不可重復(fù)描述。
標(biāo)識實(shí)體中的屬性
屬性即對象的特征,最終會稱為表中的列
標(biāo)識實(shí)體之間的關(guān)系
每一個實(shí)體都獨(dú)立描述一件事物。不同類型的信息分類存儲,他們之間不能重復(fù),但是如果需要,數(shù)據(jù)庫引擎可以根據(jù)需要將數(shù)據(jù)組合起來。在數(shù)據(jù)庫設(shè)計中,必須標(biāo)識這些實(shí)體之間的關(guān)系。一般而言,關(guān)系是通過業(yè)務(wù)規(guī)則分析出來的。