數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
西華師范大學(xué)計(jì)算機(jī)學(xué)院第六章第六章 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)( (續(xù)續(xù)-2)-2)第六章 數(shù)據(jù)庫(kù)設(shè)計(jì)6.1 數(shù)據(jù)庫(kù)設(shè)計(jì)概述6.2 需求分析6.3 概念結(jié)構(gòu)設(shè)計(jì)6.4 邏輯結(jié)構(gòu)設(shè)計(jì)6.5 數(shù)據(jù)庫(kù)的物理設(shè)計(jì)6.6 數(shù)據(jù)庫(kù)實(shí)施6.7 數(shù)據(jù)庫(kù)運(yùn)行與維護(hù)6.8 小結(jié)邏輯設(shè)計(jì)導(dǎo)出初始DBMS模式說(shuō)明概念模式子模式設(shè)計(jì)應(yīng)用程序設(shè)計(jì)草圖模式評(píng)價(jià)處 理 結(jié)束模式需要修正模式修正進(jìn)入物理設(shè)計(jì)階段返回到前面階段邏輯設(shè)計(jì)步驟是 是 否否6.4 邏輯結(jié)構(gòu)設(shè)計(jì) 邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù) 概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ) 為了能夠用某一DBMS實(shí)現(xiàn)用戶需求,還必須將概念結(jié)構(gòu)進(jìn)一步轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)模型,這正是數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)所要完成的任務(wù)。邏輯結(jié)構(gòu)設(shè)計(jì)的步驟 邏輯結(jié)構(gòu)設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)轉(zhuǎn)化為轉(zhuǎn)化為一般數(shù)一般數(shù)據(jù)模型據(jù)模型轉(zhuǎn)化為特轉(zhuǎn)化為特定定DBMS支持下的支持下的數(shù)據(jù)模型數(shù)據(jù)模型 優(yōu)化模優(yōu)化模型型概念結(jié)概念結(jié)構(gòu)設(shè)計(jì)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)物理設(shè)計(jì)物理設(shè)計(jì)基本基本E-R圖圖轉(zhuǎn)換規(guī)轉(zhuǎn)換規(guī)則則特定特定DBMS的的特點(diǎn)與限特點(diǎn)與限制制優(yōu)化方優(yōu)化方法如規(guī)法如規(guī)范化理范化理論論邏輯邏輯模型模型6.4 邏輯結(jié)構(gòu)設(shè)計(jì)6.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換6.4.2 向特定DBMS規(guī)定的模型進(jìn)行轉(zhuǎn)換6.4.3 數(shù)據(jù)模型的優(yōu)化6.4.4 設(shè)計(jì)用戶子模式6.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換 轉(zhuǎn)換內(nèi)容 轉(zhuǎn)換原則E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 轉(zhuǎn)換內(nèi)容 E-R圖由實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系三個(gè)要素組成 關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合 將E-R圖轉(zhuǎn)換為關(guān)系模型:將實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式。E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 轉(zhuǎn)換原則 一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式。:實(shí)體型的屬性:實(shí)體型的碼例,學(xué)生實(shí)體可以轉(zhuǎn)換為如下關(guān)系模式:學(xué)生(學(xué)號(hào),姓名,出生日期,所在系, 年級(jí),平均成績(jī)) 學(xué)生學(xué)生 學(xué)號(hào)學(xué)號(hào)出生出生日期日期年級(jí)年級(jí)所在系所在系 平均平均成績(jī)成績(jī)姓名姓名E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。:與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性:各實(shí)體碼的組合例,“選修”聯(lián)系是一個(gè)m:n聯(lián)系,可以將它轉(zhuǎn)換為如下關(guān)系模式,其中學(xué)號(hào)與課程號(hào)為關(guān)系的組合碼:選修(學(xué)號(hào),課程號(hào),成績(jī))E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對(duì)應(yīng)的關(guān)系模式合并。 1) 轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式:與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性:n端實(shí)體的碼例,“組成”聯(lián)系為1:n聯(lián)系。將其轉(zhuǎn)換為關(guān)系模式的兩種方法: 1)使其成為一個(gè)獨(dú)立的關(guān)系模式:組成(學(xué)號(hào),班級(jí)號(hào))E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 2) 與n端對(duì)應(yīng)的關(guān)系模式合并:在n端關(guān)系中加入1端關(guān)系的碼和聯(lián)系本身的屬性:不變 可以減少系統(tǒng)中的關(guān)系個(gè)數(shù),一般情況下更傾向于采用這種方法例,“組成”聯(lián)系為1:n聯(lián)系。2)將其學(xué)生關(guān)系模式合并:學(xué)生(學(xué)號(hào),姓名,出生日期,所在系, 年級(jí),班級(jí)號(hào),平均成績(jī))E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。 1) 轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式:與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性:每個(gè)實(shí)體的碼均是該關(guān)系的候選碼E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 2) 與某一端對(duì)應(yīng)的關(guān)系模式合并:加入對(duì)應(yīng)關(guān)系的碼和聯(lián)系本身的屬性:不變E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))例,“管理”聯(lián)系為1:1聯(lián)系,可以有三種轉(zhuǎn)換方法:(1)轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式: 管理(職工號(hào),班級(jí)號(hào)) 或管理(職工號(hào),班級(jí)號(hào))(2)“管理”聯(lián)系與班級(jí)關(guān)系模式合并,則只需在班級(jí)關(guān)系中加入教師關(guān)系的碼,即職工號(hào): 班級(jí):(班級(jí)號(hào),學(xué)生人數(shù),職工號(hào))(3)“管理”聯(lián)系與教師關(guān)系模式合并,則只需在教師關(guān)系中加入班級(jí)關(guān)系的碼,即班級(jí)號(hào):教師:(職工號(hào),姓名,性別,職稱,班級(jí)號(hào), 是否為優(yōu)秀班主任)E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))注意:u從理論上講,1:1聯(lián)系可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。u但在一些情況下,與不同的關(guān)系模式合并效率不一樣。與哪端的關(guān)系模式合并需要依應(yīng)用的具體情況而定。u由于連接操作是最費(fèi)時(shí)的操作,所以一般應(yīng)以盡量減少連接操作為目標(biāo)。 例如,如果經(jīng)常要查詢某個(gè)班級(jí)的班主任姓名,則將管理聯(lián)系與教師關(guān)系合并更好些。E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 三個(gè)或三個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。:與該多元聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性:各實(shí)體碼的組合例,“講授”聯(lián)系是一個(gè)三元聯(lián)系,可以將它轉(zhuǎn)換為如下關(guān)系模式,其中課程號(hào)、職工號(hào)和書號(hào)為關(guān)系的組合碼:講授(課程號(hào),職工號(hào),書號(hào))E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 同一實(shí)體集的實(shí)體間的聯(lián)系,即自聯(lián)系,也可按上述1:1、1:n和m:n三種情況分別處理。例,如果教師實(shí)體集內(nèi)部存在領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)的1:n自聯(lián)系,我們可以將該聯(lián)系與教師實(shí)體合并,這時(shí)主碼職工號(hào)將多次出現(xiàn),但作用不同,可用不同的屬性名加以區(qū)分:教師:職工號(hào),姓名,性別,職稱,系主任E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù)) 具有相同碼的關(guān)系模式可合并。 目的:減少系統(tǒng)中的關(guān)系個(gè)數(shù)。 合并方法:將其中一個(gè)關(guān)系模式的全部屬性加入到另一個(gè)關(guān)系模式中,然后去掉其中的同義屬性(可能同名也可能不同名),并適當(dāng)調(diào)整屬性的次序。E-R圖向關(guān)系模型的轉(zhuǎn)換(續(xù))例,“擁有”關(guān)系模式:擁有(學(xué)號(hào),性別)與學(xué)生關(guān)系模式: 學(xué)生(學(xué)號(hào),姓名,出生日期,所在系,年級(jí), 班級(jí)號(hào),平均成績(jī))都以學(xué)號(hào)為碼,可以將它們合并為一個(gè)關(guān)系模式:學(xué)生(學(xué)號(hào),姓名,性別,出生日期,所在系, 年級(jí),班級(jí)號(hào),平均成績(jī))ER模型到關(guān)系模型的轉(zhuǎn)換實(shí)例運(yùn)動(dòng)員編號(hào)姓名性別名次順序11職工工號(hào)姓名年齡性別領(lǐng)導(dǎo)1N運(yùn)動(dòng)員(編號(hào),姓名,性別,名次,上一名次編號(hào),下一名次編號(hào)) 職工(工號(hào),姓名,年齡,性別,經(jīng)理工號(hào)) ER模型到關(guān)系模型的轉(zhuǎn)換實(shí)例零件零件號(hào)零件名規(guī)格數(shù)量組成MN倉(cāng)庫(kù)商品商店倉(cāng)庫(kù)號(hào)倉(cāng)庫(kù)名地址數(shù)量商店號(hào)商品名商品號(hào)商店名日期進(jìn)貨MNP零件(零件號(hào),零件名,規(guī)格)組成(零件號(hào),子零件號(hào),數(shù)量) 倉(cāng)庫(kù)(倉(cāng)庫(kù)號(hào),倉(cāng)庫(kù)名,地址)商店(商店號(hào),商店名)商品(商品號(hào),商品名)進(jìn)貨(商店號(hào),商品名,倉(cāng)庫(kù)號(hào),日期,數(shù)量) 庫(kù)存銷售信息管理系統(tǒng)的ER模型及轉(zhuǎn)換P車間倉(cāng)位產(chǎn)品客戶銷售員存儲(chǔ)出庫(kù)訂單入庫(kù)MNMPMNPMNN庫(kù)存系統(tǒng)ER圖車間(車間號(hào),車間名,主任名) 產(chǎn)品(產(chǎn)品號(hào),產(chǎn)品名,單價(jià)) 倉(cāng)位(倉(cāng)位號(hào),地址,主任名) 客戶(客戶號(hào),客戶名,聯(lián)系人,電話, 地址,稅號(hào),賬號(hào))銷售員(銷售員號(hào),姓名,性別,學(xué)歷,業(yè)績(jī))實(shí)體入庫(kù)(入庫(kù)單號(hào),入庫(kù)量,入庫(kù)日期,經(jīng)手人, 車間號(hào),倉(cāng)位號(hào),產(chǎn)品名)出庫(kù)(出庫(kù)單號(hào),出庫(kù)量,出庫(kù)日期,經(jīng)手人,客戶號(hào),產(chǎn)品名,倉(cāng)位號(hào))訂單(訂單號(hào),數(shù)量,折扣,總價(jià),訂單日期,產(chǎn)品號(hào),客戶號(hào),銷售員號(hào)) 存儲(chǔ)(倉(cāng)位號(hào),產(chǎn)品號(hào),核對(duì)日期,核對(duì)員,存儲(chǔ)量)聯(lián)系補(bǔ):子類實(shí)體與超類實(shí)體 子類和超類的性質(zhì)子類與超類之間具有繼承性,但子類本身還能包含比超類更多的屬性。子類和超類有相同的標(biāo)識(shí)符 人員教師本科生學(xué)生研究生學(xué)校人事系統(tǒng)中學(xué)校人事系統(tǒng)中實(shí)體之間的聯(lián)系實(shí)體之間的聯(lián)系 人員(身份證號(hào),姓名,年齡,性別)教師(身份證號(hào),教師編號(hào),職稱)學(xué)生(身份證號(hào),學(xué)號(hào),系別,專業(yè))本科生(身份證號(hào),入學(xué)年份)研究生(身份證號(hào),研究方向,導(dǎo)師姓名)對(duì)應(yīng)的關(guān)系模式6.4 邏輯結(jié)構(gòu)設(shè)計(jì)6.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換6.4.2 向特定DBMS規(guī)定的模型進(jìn)行轉(zhuǎn)換6.4.3 數(shù)據(jù)模型的優(yōu)化6.4.4 設(shè)計(jì)用戶子模式6.4.2 向特定DBMS規(guī)定的模型進(jìn)行轉(zhuǎn)換 一般的數(shù)據(jù)模型向特定DBMS規(guī)定的模型進(jìn)行轉(zhuǎn)換,其主要依據(jù)是所選用的DBMS的功能及限制。沒(méi)有通用規(guī)則。 關(guān)于DBMS對(duì)邏輯模式的限制, 可參閱有關(guān)DBMS的手冊(cè)。6.4 邏輯結(jié)構(gòu)設(shè)計(jì)6.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換6.4.2 向特定DBMS規(guī)定的模型進(jìn)行轉(zhuǎn)換6.4.3 數(shù)據(jù)模型的優(yōu)化6.4.4 設(shè)計(jì)用戶子模式6.4.3 數(shù)據(jù)模型的優(yōu)化 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的結(jié)果不是唯一的。 得到初步數(shù)據(jù)模型后,還應(yīng)該適當(dāng)?shù)匦薷摹⒄{(diào)整數(shù)據(jù)模型的結(jié)構(gòu),以進(jìn)一步提高數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的性能,這就是數(shù)據(jù)模型的優(yōu)化。 關(guān)系數(shù)據(jù)模型的優(yōu)化通常以規(guī)范化理論為指導(dǎo)。數(shù)據(jù)模型的優(yōu)化(續(xù))優(yōu)化數(shù)據(jù)模型的方法 確定數(shù)據(jù)依賴按需求分析階段所得到的語(yǔ)義,分別寫出每個(gè)關(guān)系模式內(nèi)部各屬性之間的數(shù)據(jù)依賴以及不同關(guān)系模式屬性之間數(shù)據(jù)依賴。數(shù)據(jù)模型的優(yōu)化(續(xù))例,課程關(guān)系模式內(nèi)部存在下列數(shù)據(jù)依賴: 課程號(hào)課程名 課程號(hào)學(xué)分 課程號(hào)教室號(hào) 選修關(guān)系模式中存在下列數(shù)據(jù)依賴: (學(xué)號(hào),課程號(hào))成績(jī)數(shù)據(jù)模型的優(yōu)化(續(xù))學(xué)生關(guān)系模式中存在下列數(shù)據(jù)依賴: 學(xué)號(hào)姓名 學(xué)號(hào)性別 學(xué)號(hào)出生日期 學(xué)號(hào)所在系 學(xué)號(hào)年級(jí) 學(xué)號(hào)班級(jí)號(hào) 學(xué)號(hào)平均成績(jī) 學(xué)號(hào)檔案號(hào)數(shù)據(jù)模型的優(yōu)化(續(xù))學(xué)生關(guān)系模式的學(xué)號(hào)與選修關(guān)系模式的學(xué)號(hào)之間存在數(shù)據(jù)依賴: 學(xué)生.學(xué)號(hào)選修.學(xué)號(hào)數(shù)據(jù)模型的優(yōu)化(續(xù)) 對(duì)于各個(gè)關(guān)系模式之間的數(shù)據(jù)依賴進(jìn)行極小化處理,消除冗余的聯(lián)系。數(shù)據(jù)模型的優(yōu)化(續(xù)) 按照數(shù)據(jù)依賴的理論對(duì)關(guān)系模式逐一進(jìn)行分析,考查是否存在部分函數(shù)依賴、傳遞函數(shù)依賴、多值依賴等,確定各關(guān)系模式分別屬于第幾范式。 例如經(jīng)過(guò)分析可知,課程關(guān)系模式屬于BC范式。數(shù)據(jù)模型的優(yōu)化(續(xù)) 按照需求分析階段得到的各種應(yīng)用對(duì)數(shù)據(jù)處理的要求,分析對(duì)于這樣的應(yīng)用環(huán)境這些模式是否合適,確定是否要對(duì)它們進(jìn)行合并或分解。數(shù)據(jù)模型的優(yōu)化(續(xù))并不是規(guī)范化程度越高的關(guān)系就越優(yōu)。當(dāng)一個(gè)應(yīng)用的查詢中經(jīng)常涉及到兩個(gè)或多個(gè)關(guān)系模式的屬性時(shí),系統(tǒng)必須經(jīng)常地進(jìn)行連接運(yùn)算,由于連接運(yùn)算的代價(jià)高,第二范式甚至第一范式也許是最好的。非BCNF的關(guān)系模式雖然從理論上分析會(huì)存在不同程度的更新異常,但如果在實(shí)際應(yīng)用中對(duì)此關(guān)系模式只是查詢,并不執(zhí)行更新操作,則就不會(huì)產(chǎn)生實(shí)際影響。一個(gè)具體應(yīng)用規(guī)范化進(jìn)行到什么程度,需要權(quán)衡響應(yīng)時(shí)間和潛在問(wèn)題兩者的利弊。一般說(shuō)來(lái),第三范式就足夠了。數(shù)據(jù)模型的優(yōu)化(續(xù))例:在關(guān)系模式 學(xué)生成績(jī)單(學(xué)號(hào),英語(yǔ),數(shù)學(xué),語(yǔ)文,平均成績(jī)) 中存在下列函數(shù)依賴: 學(xué)號(hào)英語(yǔ) 學(xué)號(hào)數(shù)學(xué) 學(xué)號(hào)語(yǔ)文 學(xué)號(hào)平均成績(jī) (英語(yǔ), 數(shù)學(xué), 語(yǔ)文)平均成績(jī)顯然有:學(xué)號(hào)(英語(yǔ),數(shù)學(xué),語(yǔ)文)因此該關(guān)系模式中存在傳遞函數(shù)依賴,是2NF關(guān)系。數(shù)據(jù)模型的優(yōu)化(續(xù)) 雖然平均成績(jī)可以由其他屬性推算出來(lái),但如果應(yīng)用中需要經(jīng)常查詢學(xué)生的平均成績(jī),為提高效率,我們?nèi)匀豢杀A粼撊哂鄶?shù)據(jù),對(duì)關(guān)系模式不再做進(jìn)一步分解。數(shù)據(jù)模型的優(yōu)化(續(xù)) 按照需求分析階段得到的各種應(yīng)用對(duì)數(shù)據(jù)處理的要求,對(duì)關(guān)系模式進(jìn)行必要的分解或合并,以提高數(shù)據(jù)操作的效率和存儲(chǔ)空間的利用率常用分解方法水平分解垂直分解數(shù)據(jù)模型的優(yōu)化(續(xù)) 水平分解 什么是水平分解把(基本)關(guān)系的元組分為若干子集合,定義每個(gè)子集合為一個(gè)子關(guān)系,以提高系統(tǒng)的效率。 如果數(shù)據(jù)庫(kù)系統(tǒng)有多個(gè)磁盤驅(qū)動(dòng)器, 則可把水平分割的關(guān)系分布在不同的磁盤組上, 可以并行訪問(wèn), 提高數(shù)據(jù)庫(kù)的性能。數(shù)據(jù)模型的優(yōu)化(續(xù)) 水平分解的適用范圍 滿足“80/20原則”的應(yīng)用 80/20原則:一個(gè)大關(guān)系中,經(jīng)常被使用的數(shù)據(jù)只是關(guān)系的一部分,約20% 把經(jīng)常使用的數(shù)據(jù)分解出來(lái),形成一個(gè)子關(guān)系,可以減少查詢的數(shù)據(jù)量。 并發(fā)事務(wù)經(jīng)常存取不相交的數(shù)據(jù) 如果關(guān)系R上具有n個(gè)事務(wù),而且多數(shù)事務(wù)存取的數(shù)據(jù)不相交,則R可分解為少于或等于n個(gè)子關(guān)系,使每個(gè)事務(wù)存取的數(shù)據(jù)對(duì)應(yīng)一個(gè)關(guān)系。數(shù)據(jù)模型的優(yōu)化(續(xù)) 垂直分解 什么是垂直分解 把關(guān)系模式R的屬性分解為若干子集合,形成若干子關(guān)系模式。 垂直分解的原則 經(jīng)常在一起使用的屬性從R中分解出來(lái)形成一個(gè)子關(guān)系模式。 例如, 教職工檔案屬性很多, 有些是經(jīng)常查詢的, 有些很少用到, 如果都放在一個(gè)關(guān)系里, 則關(guān)系的數(shù)據(jù)量比較大, 勢(shì)必影響查詢的速度。 若把常用的屬性和很少使用的屬性分成兩個(gè)關(guān)系, 則可提高常用查詢的速度。數(shù)據(jù)模型的優(yōu)化(續(xù)) 垂直分解的優(yōu)點(diǎn)可以提高某些事務(wù)的效率 垂直分解的缺點(diǎn)可能使另一些事務(wù)不得不執(zhí)行連接操作,從而降低了效率。數(shù)據(jù)模型的優(yōu)化(續(xù)) 垂直分解的適用范圍取決于分解后R上的所有事務(wù)的總效率是否得到了提高。 進(jìn)行垂直分解的方法簡(jiǎn)單情況:直觀分解復(fù)雜情況:用第五章中的模式分解算法垂直分解必須不損失關(guān)系模式的語(yǔ)義(保持無(wú)損連接性和保持函數(shù)依賴)。數(shù)據(jù)模型的優(yōu)化(補(bǔ)) 盡可能使用快照 在不少的應(yīng)用中,只需數(shù)據(jù)的某一時(shí)間的值,并不一定需要數(shù)據(jù)的當(dāng)前值,絕大部分報(bào)表都屬于這一類。 對(duì)于這些應(yīng)用,可以對(duì)這些數(shù)據(jù)定義一個(gè)快照,并定期刷新。由于查詢結(jié)果在快照刷新時(shí)已經(jīng)自動(dòng)生成,并存于數(shù)據(jù)庫(kù)中,在查詢時(shí)只要取出快照就行了,可以顯著地提高查詢速度。6.4 邏輯結(jié)構(gòu)設(shè)計(jì)6.4.1 E-R圖向關(guān)系模型的轉(zhuǎn)換6.4.2 向特定DBMS規(guī)定的模型進(jìn)行轉(zhuǎn)換6.4.3 數(shù)據(jù)模型的優(yōu)化6.4.4 設(shè)計(jì)用戶子模式設(shè)計(jì)用戶子模式定義數(shù)據(jù)庫(kù)模式主要是從系統(tǒng)的時(shí)間效率、空間效率、易維護(hù)等角度出發(fā)。定義用戶外模式時(shí)應(yīng)該更注重考慮用戶的習(xí)慣與方便。包括三個(gè)方面:(1) 使用更符合用戶習(xí)慣的別名例:負(fù)責(zé)學(xué)籍管理的用戶習(xí)慣于稱教師模式的職工號(hào)為教師編號(hào)。因此可以定義視圖,在視圖中職工號(hào)重定義為教師編號(hào)設(shè)計(jì)用戶子模式(續(xù))(2) 針對(duì)不同級(jí)別的用戶定義不同的外模式,以滿足系統(tǒng)對(duì)安全性的要求。例:教師關(guān)系模式中包括職工號(hào)、姓名、性別、出生日期、婚姻狀況、學(xué)歷、學(xué)位、政治面貌、職稱、職務(wù)、工資、工齡、教學(xué)效果等屬性。 學(xué)籍管理應(yīng)用只能查詢教師的職工號(hào)、姓名、性別、職稱數(shù)據(jù); 課程管理應(yīng)用只能查詢教師的職工號(hào)、姓名、性別、學(xué)歷、學(xué)位、職稱、教學(xué)效果數(shù)據(jù); 教師管理應(yīng)用則可以查詢教師的全部數(shù)據(jù)。設(shè)計(jì)用戶子模式(續(xù))定義兩個(gè)外模式:教師_學(xué)籍管理(職工號(hào),姓名,性別,職稱)教師_課程管理(工號(hào),姓名,性別,學(xué)歷, 學(xué)位,職稱,教學(xué)效果)授權(quán)學(xué)籍管理應(yīng)用只能訪問(wèn)教師_學(xué)籍管理視圖授權(quán)課程管理應(yīng)用只能訪問(wèn)教師_課程管理視圖授權(quán)教師管理應(yīng)用能訪問(wèn)教師表這樣就可以防止用戶非法訪問(wèn)本來(lái)不允許他們查詢的數(shù)據(jù),保證了系統(tǒng)的安全性。設(shè)計(jì)用戶子模式(續(xù))(3) 簡(jiǎn)化用戶對(duì)系統(tǒng)的使用 如果某些局部應(yīng)用中經(jīng)常要使用某些很復(fù)雜的查詢,為了方便用戶,可以將這些復(fù)雜查詢定義為視圖。邏輯結(jié)構(gòu)設(shè)計(jì)小結(jié) 任務(wù) 將概念結(jié)構(gòu)轉(zhuǎn)化為具體的數(shù)據(jù)模型 邏輯結(jié)構(gòu)設(shè)計(jì)的步驟 將概念結(jié)構(gòu)轉(zhuǎn)化為一般的關(guān)系、網(wǎng)狀、層次模型 將轉(zhuǎn)化來(lái)的關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換 對(duì)數(shù)據(jù)模型進(jìn)行優(yōu)化 設(shè)計(jì)用戶子模式采用ER方法的邏輯設(shè)計(jì)步驟關(guān)系數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)關(guān)系模式規(guī)范化模式評(píng)價(jià)是否需要修正從ER模式導(dǎo)出初始數(shù)據(jù)庫(kù)模式處理需求ER模式 DBMS特征用DBMS語(yǔ)法描述模式修正進(jìn)入物理設(shè)計(jì)階段是否邏輯結(jié)構(gòu)設(shè)計(jì)小結(jié) E-R圖向關(guān)系模型的轉(zhuǎn)換內(nèi)容 將E-R圖轉(zhuǎn)換為關(guān)系模型:將實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式。邏輯結(jié)構(gòu)設(shè)計(jì)小結(jié) E-R圖向關(guān)系模型的轉(zhuǎn)換原則 一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式。 一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。 一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對(duì)應(yīng)的關(guān)系模式合并。 一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。邏輯結(jié)構(gòu)設(shè)計(jì)小結(jié) E-R圖向關(guān)系模型的轉(zhuǎn)換原則 三個(gè)或三個(gè)以上實(shí)體間的一個(gè)多元聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。 同一實(shí)體集的實(shí)體間的聯(lián)系,即自聯(lián)系,也可按上述1:1、1:n和m:n三種情況分別處理。 具有相同碼的關(guān)系模式可合并。邏輯結(jié)構(gòu)設(shè)計(jì)小結(jié)優(yōu)化數(shù)據(jù)模型的方法 確定數(shù)據(jù)依賴 對(duì)于各個(gè)關(guān)系模式之間的數(shù)據(jù)依賴進(jìn)行極小化處理,消除冗余的聯(lián)系。 確定各關(guān)系模式分別屬于第幾范式。 分析對(duì)于應(yīng)用環(huán)境這些模式是否合適,確定是否要對(duì)它們進(jìn)行合并或分解。 對(duì)關(guān)系模式進(jìn)行必要的分解或合并邏輯結(jié)構(gòu)設(shè)計(jì)小結(jié) 設(shè)計(jì)用戶子模式1. 使用更符合用戶習(xí)慣的別名2. 針對(duì)不同級(jí)別的用戶定義不同的外模式,以滿足系統(tǒng)對(duì)安全性的要求。3. 簡(jiǎn)化用戶對(duì)系統(tǒng)的使用