官术网_书友最值得收藏!

4.4 邏輯結(jié)構(gòu)設計

4.4.1 邏輯結(jié)構(gòu)設計的任務和步驟

概念結(jié)構(gòu)設計階段得到的E-R模型是用戶的模型,它獨立于任何一種數(shù)據(jù)模型,獨立于任何一個具體的DBMS。為了創(chuàng)建用戶所要求的數(shù)據(jù)庫,需要把上述概念模型轉(zhuǎn)換為某個具體的DBMS所支持的數(shù)據(jù)模型。數(shù)據(jù)庫邏輯設計的過程是將概念結(jié)構(gòu)轉(zhuǎn)換成特定DBMS所支持的數(shù)據(jù)模型的過程。從此開始便進入了“實現(xiàn)設計”階段,需要考慮到具體的DBMS的性能、具體的數(shù)據(jù)模型特點。

E-R圖所表示的概念模型可以轉(zhuǎn)換成任何一種具體的DBMS所支持的數(shù)據(jù)模型,如網(wǎng)狀模型、層次模型和關系模型。這里只討論關系數(shù)據(jù)庫的邏輯設計問題,所以,只介紹E-R圖如何向關系模型進行轉(zhuǎn)換。

一般的邏輯設計分為以下三步(如圖4-11所示)。

圖4-11 關系數(shù)據(jù)庫的邏輯設計

1)初始關系模式設計。

2)關系模式規(guī)范化。

3)模式的評價與改進。

4.4.2 初始關系模式設計

轉(zhuǎn)換原則

概念設計中得到的E-R圖是由實體、屬性和聯(lián)系組成的,而關系數(shù)據(jù)庫邏輯設計的結(jié)果是一組關系模式的集合。所以,將E-R圖轉(zhuǎn)換為關系模型實際上就是將實體、屬性和聯(lián)系轉(zhuǎn)換成關系模式。

4.4.3 關系模式規(guī)范化

應用規(guī)范化理論對上述產(chǎn)生的關系的邏輯模式進行初步優(yōu)化,以減少乃至消除關系模式中存在的各種異常,改善完整性、一致性和存儲效率。規(guī)范化理論是數(shù)據(jù)庫邏輯設計的指南和工具,規(guī)范化過程可分為兩個步驟:確定范式級別和實施規(guī)范化處理。

1.確定范式級別

考查關系模式的函數(shù)依賴關系,確定范式等級。逐一分析各關系模式;考查是否存在部分函數(shù)依賴、傳遞函數(shù)依賴等,確定它們分別屬于第幾范式。

2.實施規(guī)范化處理

確定范式級別后,利用后面的規(guī)范化理論,逐一考察各個關系模式,根據(jù)應用要求,判斷它們是否滿足規(guī)范要求,可用已經(jīng)介紹過的規(guī)范化方法和理論將關系模式規(guī)范化。

綜合以上數(shù)據(jù)庫的設計過程,規(guī)范化理論在數(shù)據(jù)庫設計中有如下幾方面的應用:

1)在需求分析階段,用數(shù)據(jù)依賴概念分析和表示各個數(shù)據(jù)項之間的聯(lián)系。

2)在概念結(jié)構(gòu)設計階段,以規(guī)范化理論為指導,確定關系鍵,消除初步E-R圖中冗余的聯(lián)系。

3)在邏輯結(jié)構(gòu)設計階段,從E-R圖向數(shù)據(jù)模型轉(zhuǎn)換過程中,用模式合并與分解方法達到規(guī)范化級別。

4.4.4 模式的評價與改進

關系模式的規(guī)范化不是目的而是手段,數(shù)據(jù)庫設計的目的是最終滿足應用需求。因此,為了進一步提高數(shù)據(jù)庫應用系統(tǒng)的性能,還應該對規(guī)范化后產(chǎn)生的關系模式進行評價、改進,經(jīng)過反復多次的嘗試和比較,最后得到優(yōu)化的關系模式。

模式評價的目的是檢查所設計的數(shù)據(jù)庫模式是否滿足用戶的功能要求、效率要求,確定加以改進的部分。模式評價包括功能評價和性能評價。

所謂功能評價,是指對照需求分析的結(jié)果,檢查規(guī)范化后的關系模式集合是否支持用戶所有的應用要求。對于目前得到的數(shù)據(jù)庫模式,由于缺乏物理結(jié)構(gòu)設計所提供的數(shù)量測量標準和相應的評價手段,所以,性能評價是比較困難的,只能對實際性能進行估計,包括邏輯記錄的存取數(shù)、傳送量,以及物理結(jié)構(gòu)設計算法的模型等。

根據(jù)模式評價的結(jié)果,對已生成的模式進行改進。如果因為系統(tǒng)需求分析、概念結(jié)構(gòu)設計的疏漏導致某些應用不能得到支持,則應該增加新的關系模式或?qū)傩浴H绻驗樾阅芸紤]而要求改進,則可采用合并或分解的方法。

(1)合并

如果有若干個關系模式具有相同的主鍵,并且對這些關系模式的處理主要是查詢操作,而且經(jīng)常是多關系的連接查詢,那么可對這些關系模式按照組合使用頻率進行合并,這樣便可以減少連接操作而提高查詢效率。

(2)分解

為了提高數(shù)據(jù)操作的效率和存儲空間的利用率,最常用和最重要的模式優(yōu)化方法就是分解,根據(jù)應用的不同要求,可以對關系模式進行垂直分解和水平分解。

經(jīng)過多次的模式評價和模式改進之后,最終的數(shù)據(jù)庫模式得以確定。邏輯結(jié)構(gòu)設計階段的結(jié)果是全局邏輯數(shù)據(jù)庫結(jié)構(gòu)。對于關系數(shù)據(jù)庫系統(tǒng)來說,就是一組符合一定規(guī)范的關系模式組成的關系數(shù)據(jù)庫模式。

數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)物理獨立性特點消除了由于物理存儲改變而引起的對應程序的修改。標準的DBMS例行程序應適用于所有的訪問,查詢和更新事務的優(yōu)化應當在系統(tǒng)軟件一級上實現(xiàn)。這樣,邏輯數(shù)據(jù)庫確定之后,就可以開始進行應用程序設計了。

在數(shù)據(jù)庫設計的工作中,有時數(shù)據(jù)庫開發(fā)人員僅從范式等理論知識無法找到問題的“標準答案”,需要靠數(shù)據(jù)庫開發(fā)人員經(jīng)驗的積累及智慧的沉淀。同一個系統(tǒng),不同經(jīng)驗的數(shù)據(jù)庫開發(fā)人員,仁者見仁,智者見智,設計結(jié)果往往不同。但不管怎樣,只要實現(xiàn)了相同的功能,所有的設計結(jié)果沒有對錯之分,只有合適與不合適之分。

因此,數(shù)據(jù)庫設計像一門藝術,數(shù)據(jù)庫開發(fā)人員更像一名藝術家,設計結(jié)果更像一件藝術品。數(shù)據(jù)庫開發(fā)人員要依據(jù)系統(tǒng)的環(huán)境(網(wǎng)絡環(huán)境、硬件環(huán)境、軟件環(huán)境等)選擇一種更為合適的方案。有時為了提升系統(tǒng)的檢索性能、節(jié)省數(shù)據(jù)的查詢時間,數(shù)據(jù)庫開發(fā)人員不得不考慮使用冗余數(shù)據(jù),不得不浪費存儲空間。有時為了節(jié)省存儲空間、避免數(shù)據(jù)冗余,又不得不考慮犧牲時間。設計數(shù)據(jù)庫時,“時間”(效率或者性能)和“空間”(外存或內(nèi)存)好比天生的一對“矛盾體”,這就要求數(shù)據(jù)庫開發(fā)人員保持良好的數(shù)據(jù)庫設計習慣,維持“時間”和“空間”之間的平衡關系。

主站蜘蛛池模板: 荥经县| 康乐县| 伊金霍洛旗| 铜川市| 娄烦县| 大冶市| 曲松县| 隆德县| 门头沟区| 芦溪县| 临澧县| 渝北区| 团风县| 醴陵市| 洛阳市| 东港市| 化德县| 洞头县| 大城县| 迁西县| 会同县| 芜湖市| 兴化市| 马关县| 九龙坡区| 崇明县| 萨嘎县| 新建县| 五峰| 辉县市| 林芝县| 翁牛特旗| 广西| 葫芦岛市| 武宣县| 富裕县| 福安市| 纳雍县| 岳阳市| 吐鲁番市| 黑山县|