一,、數(shù)據(jù)庫設(shè)計(jì)簡介
按照規(guī)范設(shè)計(jì),,將數(shù)據(jù)庫的設(shè)計(jì)過程分為六個(gè)階段: A、系統(tǒng)需求分析階段 B,、概念結(jié)構(gòu)設(shè)計(jì)階段 C,、邏輯結(jié)構(gòu)設(shè)計(jì)階段 D,、物理結(jié)構(gòu)設(shè)計(jì)階段 E、數(shù)據(jù)庫實(shí)施階段 F,、數(shù)據(jù)庫運(yùn)行與維護(hù)階段 需求分析和概念結(jié)構(gòu)設(shè)計(jì)獨(dú)立于任何數(shù)據(jù)庫管理系統(tǒng),。
二、系統(tǒng)需求分析
1,、需求分析的任務(wù)
需求分析的任務(wù):對現(xiàn)實(shí)世界要處理的對象進(jìn)行詳細(xì)的調(diào)查,,通過對原系統(tǒng)的了解,收集支持新系統(tǒng)的基礎(chǔ)數(shù)據(jù)并對其進(jìn)行處理,,在此基礎(chǔ)上確定新系統(tǒng)的功能,。 A、調(diào)查分析用戶活動(dòng) B,、收集和分析需求數(shù)據(jù),,確定系統(tǒng)邊界信息需求,處理需求,,安全性和完整性需求 C,、編寫系統(tǒng)分析報(bào)告
2、需求分析的方法
需求分析有兩種方法:自頂向下,、自底向上 A,、自頂向下 自頂向下方法從最上層的系統(tǒng)組織機(jī)構(gòu)入手,采用逐層分解的方式分析系統(tǒng),。 用數(shù)據(jù)流圖和數(shù)據(jù)字典描述系統(tǒng) 數(shù)據(jù)流圖:描述輸入數(shù)據(jù)到輸出數(shù)據(jù)的變換過程 數(shù)據(jù)流:由一組固定成分的數(shù)據(jù)組成,,代表數(shù)據(jù)的流動(dòng)方向 處理:描述了輸入數(shù)據(jù)到輸出數(shù)據(jù)的變換 文件:用于存儲(chǔ)數(shù)據(jù) 源或宿:存在于系統(tǒng)之外的人員或組織,表示系統(tǒng)輸入數(shù)據(jù)的來源和輸出數(shù)據(jù)的去向 B,、自底向上
3,、實(shí)例
教學(xué)管理系統(tǒng) 基本需求: 某學(xué)校設(shè)計(jì)學(xué)校教學(xué)管理系統(tǒng),學(xué)生實(shí)體包括學(xué)號(hào),、姓名、性別,、生日,、民族、籍貫,、簡歷,、入學(xué)日期,每名學(xué)生選擇一個(gè)主修專業(yè),,專業(yè)包括專業(yè)編號(hào),、名稱、類別,,一個(gè)專業(yè)屬于一個(gè)學(xué)院,,一個(gè)學(xué)院可以有多個(gè)專業(yè),。學(xué)院信息要存儲(chǔ)學(xué)院號(hào)、學(xué)院名,、院長,。教學(xué)管理要管理課程表、學(xué)生成績表,。課程包括課程號(hào),、課程名、學(xué)分,,每門課程由一個(gè)學(xué)院開設(shè),。學(xué)生選修的每門課程獲得一個(gè)成績。
三,、概念結(jié)構(gòu)設(shè)計(jì)
1,、概念結(jié)構(gòu)設(shè)計(jì)簡介
概念結(jié)構(gòu)設(shè)計(jì)的目標(biāo)是設(shè)計(jì)數(shù)據(jù)庫的E-R模型圖,確認(rèn)需求信息的正確和完整,。具體來說就是從需求分析中找到實(shí)體,,確認(rèn)實(shí)體的屬性、確認(rèn)實(shí)體的關(guān)系,,畫出ER圖,。
2、概念結(jié)構(gòu)設(shè)計(jì)的步驟
第一步,,數(shù)據(jù)抽象與局部E-R模型設(shè)計(jì) A,、數(shù)據(jù)抽象 在多層數(shù)據(jù)流中選擇一個(gè)適當(dāng)層次作為設(shè)計(jì)E-R圖的出發(fā)點(diǎn)。 確定每個(gè)局部應(yīng)用包含哪些實(shí)體,,實(shí)體包含哪些屬性,,實(shí)體之間的聯(lián)系 劃分實(shí)體和屬性的方法 分類:將一組具有某些共同特性和行為的對象抽象為一個(gè)實(shí)體。 聚合:將對象類型的組成成分抽象為屬性,。 B,、局部E-R模型設(shè)計(jì) 局部E-R模型設(shè)計(jì)的原則是屬性必須是不可分的數(shù)據(jù)項(xiàng),不能再由放棄其他屬性組成,;屬性不能與其他實(shí)體具有聯(lián)系,,聯(lián)系只能發(fā)生在實(shí)體之間。 為簡化E-R圖,,凡是能作為屬性對待的,,盡量作為屬性。 第二步,,全局E-R模型設(shè)計(jì) 集成各局部E-R模型,,形成全局模型。視圖集成的方法有兩種: A,、多元集成法:一次性將多個(gè)局部E-R圖合并為一個(gè)全局E-R圖,。 B,、二元集成法:首先集成兩個(gè)重要的局部E-R圖,然后用累加的方法逐步將一個(gè)新的E-R圖集成進(jìn)來,。 合并: 合并局部E-R圖,,消除沖突,初步生成E-R圖,。合并的關(guān)鍵是合理消除各局部E-R圖的沖突,。 沖突分類如下:
優(yōu)化: 消除初步E-R圖中不必要的冗余,生成基本的E-R圖,。 冗余數(shù)據(jù):可由基本的數(shù)據(jù)導(dǎo)出的數(shù)據(jù),。 冗余聯(lián)系:可由基本的聯(lián)系導(dǎo)出的聯(lián)系。
3,、實(shí)例
教學(xué)管理系統(tǒng)的E-R圖 實(shí)體:學(xué)生,、專業(yè)、學(xué)院,、課程 實(shí)體表要記錄的屬性: 學(xué)生(學(xué)號(hào),、姓名、性別,、生日,、籍貫、民族,、簡歷,、入學(xué)日期)
專業(yè)(專業(yè)號(hào)、專業(yè)名稱,、類別) 學(xué)院(學(xué)院號(hào),、學(xué)院名稱、院長) 課程(課程號(hào),、課程名稱,、學(xué)分)
教學(xué)管理ER圖:
四、邏輯結(jié)構(gòu)設(shè)計(jì)
1,、邏輯結(jié)構(gòu)設(shè)計(jì)簡介
邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)是將概念結(jié)構(gòu)設(shè)計(jì)階段完成的實(shí)體模型轉(zhuǎn)換成特定的DBMS所支持的數(shù)據(jù)模型的過程,。邏輯結(jié)構(gòu)設(shè)計(jì)的目的是將E-R圖中的實(shí)體、屬性和聯(lián)系轉(zhuǎn)換成為關(guān)系模式,。
2、初始關(guān)系模型設(shè)計(jì)
(1)實(shí)體間關(guān)系轉(zhuǎn)換遵循的原則: 一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系模式,,實(shí)體的屬性就是關(guān)系的屬性,,實(shí)體的鍵就是關(guān)系的鍵。 一個(gè)聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式,,與該聯(lián)系相連的各實(shí)體的鍵以及聯(lián)系的屬性均轉(zhuǎn)換為該關(guān)系的屬性,。 聯(lián)系關(guān)系的鍵有三種情況: 如果聯(lián)系為1:1,,則每個(gè)實(shí)體的鍵都是關(guān)系的候選鍵 如果聯(lián)系為1:n,zen端實(shí)體的見識(shí)關(guān)系的鍵 如果聯(lián)系為n:m,,則各實(shí)體的鍵的組合是關(guān)系的鍵 特殊情況:多元聯(lián)系 多元聯(lián)系在轉(zhuǎn)換為關(guān)系模式時(shí),,與該多元聯(lián)系相連的各實(shí)體的主鍵及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,轉(zhuǎn)換后所得到的的關(guān)系的主鍵為各實(shí)體鍵的組合 (2)實(shí)體間關(guān)系的轉(zhuǎn)換規(guī)則: A,、一個(gè)1:1關(guān)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,,也可以與任意一端所對應(yīng)的關(guān)系模式合并。
原實(shí)體對應(yīng)關(guān)系模式分別為: 班級(班號(hào),,專業(yè),,人數(shù)) 班長(學(xué)號(hào),姓名,,專長) 將關(guān)系“管理”合并到實(shí)體“班級”對應(yīng)的模式后為: 班級(班號(hào),,專業(yè),人數(shù),,班長學(xué)號(hào)) 班長(學(xué)號(hào),,姓名,專長) 關(guān)系“管理”也可以合并到實(shí)體“班長”對應(yīng)的模式,,將關(guān)系“管理”合并到實(shí)體“班級”對應(yīng)的模式后為: 班級(班號(hào),,專業(yè),人數(shù)) 班長(學(xué)號(hào),,姓名,,專長,班號(hào)) B,、一個(gè)1:n關(guān)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,,也可以與n端所對應(yīng)的關(guān)系模式合并。
實(shí)體對應(yīng)的關(guān)系模式 系(系號(hào),,系名,,系主任,電話) 教師(教師號(hào),,姓名,,專業(yè),職稱,,性別,,年齡) 關(guān)系對應(yīng)的關(guān)系模式 管理(教師號(hào),系號(hào)) 合并到實(shí)體“教師”后(只能合并到“多”的一端的關(guān)系模型): 教師(教師號(hào),,姓名,,專業(yè),職稱,性別,,年齡,,系號(hào)) C、一個(gè)m:n關(guān)系轉(zhuǎn)換為一個(gè)關(guān)系模式,。轉(zhuǎn)換的方法為:與該關(guān)系相連的各實(shí)體的碼以及關(guān)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,,新關(guān)系的碼為兩個(gè)相連實(shí)體碼的組合。 關(guān)系只能轉(zhuǎn)換為獨(dú)立模式,,模式的屬性由關(guān)系本身的屬性及兩個(gè)實(shí)體的鍵構(gòu)成,;主鍵由兩端實(shí)體的鍵組合而成。
課程(課程號(hào),,課程名,,學(xué)時(shí),類別) 實(shí)體表 學(xué)生(學(xué)號(hào),,姓名,,性別,專業(yè),,出生日期,,照片) 實(shí)體表 選修(學(xué)號(hào),課程號(hào),,分?jǐn)?shù)) 關(guān)系表 D,、三個(gè)或三個(gè)以上實(shí)體間的多元關(guān)系轉(zhuǎn)換為一個(gè)關(guān)系模式。 關(guān)系的屬性:與該多元關(guān)系相連的各實(shí)體的碼以及關(guān)系本身的屬性 關(guān)系的碼:各實(shí)體碼的組合 “講授”關(guān)系是一個(gè)三元關(guān)系,,可以轉(zhuǎn)換為如下關(guān)系模式,,其中課程號(hào)、職工號(hào)和書號(hào)為關(guān)系的組合碼: 講授(課程號(hào),,職工號(hào),,書號(hào))
3、關(guān)系模式規(guī)范化
應(yīng)用數(shù)據(jù)庫設(shè)計(jì)的范式理論對初始關(guān)系模型進(jìn)行優(yōu)化,。數(shù)據(jù)庫設(shè)計(jì)的三大范式如下: 第一范式 每一個(gè)分類必須是一個(gè)不可分的數(shù)據(jù)項(xiàng),。屬性不可再分,確保每列的原子性,。 第二范式 要求每個(gè)表只描述一件事情,,每條記錄有唯一標(biāo)識(shí)列。 第三范式 數(shù)據(jù)庫表中不包含已在其它表中已包含的非主關(guān)鍵字信息,。 關(guān)系模式的規(guī)范化過程如下: A,、確定范式級別 考察關(guān)系模式的函數(shù)依賴關(guān)系,確定范式等級,。 B,、實(shí)施規(guī)范化處理 利用規(guī)范化方法和理論將關(guān)系模式規(guī)范化。 C、模式改進(jìn) 合并: 將用于關(guān)聯(lián)查詢的具有相同主鍵的各表合并可提高查詢效率 分解: 水平分解,,將關(guān)系的元組分為若干子集,提高查詢效率,;垂直分解,,把關(guān)系中經(jīng)常一起使用的屬性分解出來,形成一個(gè)子關(guān)系,,提高執(zhí)行效率,。分解時(shí)要保持無損連接和函數(shù)依賴。
4,、實(shí)例
教學(xué)管理系統(tǒng) 由ER模型轉(zhuǎn)化為的關(guān)系模型: 學(xué)生(學(xué)號(hào),、姓名、性別,、生日,、籍貫、民族,、入學(xué)日期,、專業(yè)號(hào))實(shí)體表 專業(yè)(專業(yè)號(hào)、專業(yè)名稱,、類別,、學(xué)院號(hào))實(shí)體表 學(xué)院(學(xué)院號(hào)、學(xué)院名稱,、院長)實(shí)體表 課程(課程號(hào),、課程名稱、學(xué)分,、學(xué)院號(hào))實(shí)體表 成績表(學(xué)號(hào),、課程號(hào)、成績)關(guān)系表 在轉(zhuǎn)換為關(guān)系模型時(shí),,一對多的聯(lián)系都在相應(yīng)的多方實(shí)體的關(guān)系中增加一個(gè)外鍵,。 需求的增加: 如果教學(xué)管理系統(tǒng)還要管理教師教學(xué)安排,教師包括編號(hào),、姓名,、年齡、職稱,,一個(gè)教師只能屬于一個(gè)學(xué)院,,一名教師可以上若干門課程,一門課程可以有多名老師來上,,每個(gè)教師所上的每門課都有一個(gè)課堂號(hào)和課時(shí)數(shù),。 教師實(shí)體的ER圖:
教學(xué)管理系統(tǒng)ER圖:
關(guān)系表 多對多 成績表 (學(xué)號(hào),課程號(hào),成績,,時(shí)間,,地點(diǎn))
五、物理結(jié)構(gòu)設(shè)計(jì)
1,、物理結(jié)構(gòu)設(shè)計(jì)簡介
物理結(jié)構(gòu)設(shè)計(jì):對于給定的邏輯數(shù)據(jù)模型,,選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)。數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計(jì)分為兩步: A,、確定物理結(jié)構(gòu):存取方法和存儲(chǔ)結(jié)構(gòu) B,、評價(jià)物理結(jié)構(gòu):評價(jià)重點(diǎn)是時(shí)間和空間效率 根據(jù)具體的數(shù)據(jù)庫管理系統(tǒng)所提供的多種存儲(chǔ)結(jié)構(gòu)和存取方法等依賴于具體計(jì)算機(jī)結(jié)構(gòu)的各項(xiàng)物理設(shè)計(jì)措施,對具體的應(yīng)用任務(wù)選定最合適的物理存儲(chǔ)結(jié)構(gòu)(數(shù)據(jù)類型 索引 主鍵),。
2,、確定物理結(jié)構(gòu)
(1)存儲(chǔ)結(jié)構(gòu)的設(shè)計(jì) 物理結(jié)構(gòu)中,數(shù)據(jù)的基本存取單位是存儲(chǔ)記錄,。 某一類型的所有存儲(chǔ)記錄的集合稱為文件,。 確定數(shù)據(jù)庫存儲(chǔ)結(jié)構(gòu)時(shí)要綜合考慮存取時(shí)間、存儲(chǔ)空間利用率和維護(hù)代價(jià)三方面的因素,。例如消除一切冗余數(shù)據(jù)雖然能夠節(jié)約存儲(chǔ)空間,,但往往會(huì)導(dǎo)致檢索代價(jià)的增加,因此必須進(jìn)行權(quán)衡,,選擇一個(gè)折中方案,。 (2)數(shù)據(jù)存取路徑的設(shè)計(jì) 在關(guān)系數(shù)據(jù)庫中,選擇存取路徑主要是指確定如何建立索引,。例如,,應(yīng)把哪些域作為次碼建立次索引,建立單碼索引還是組合索引,,建立多少個(gè)為合適,,是否建立聚集索引等。 (3)數(shù)據(jù)存放位置的設(shè)計(jì) 為了提高性能,,可將數(shù)據(jù)的易變部分,、穩(wěn)定部分、經(jīng)常存取部分和存儲(chǔ)頻率較低部分分開存放,。 (4)系統(tǒng)配置的設(shè)計(jì) DBMS產(chǎn)品一般都提供了一些存儲(chǔ)分配參數(shù),,供設(shè)計(jì)人員和DBA對數(shù)據(jù)庫進(jìn)行物理優(yōu)化。初始情況下,,系統(tǒng)都為這些變量賦予了合理的缺省值,,但是這些值不一定適合每一種應(yīng)用環(huán)境,在進(jìn)行物理設(shè)計(jì)時(shí),,需要重新對這些變量賦值以改善系統(tǒng)的性能,。
3,、評價(jià)物理結(jié)構(gòu)
物理結(jié)構(gòu)設(shè)計(jì)過程中需要對時(shí)間效率、空間效率,、維護(hù)代價(jià)和各種用戶要求進(jìn)行權(quán)衡,,其結(jié)果可以產(chǎn)生多種方案,數(shù)據(jù)庫設(shè)計(jì)人員必須對方案進(jìn)行細(xì)致的評價(jià),,從中選擇一個(gè)較優(yōu)的方案作為數(shù)據(jù)庫的物理結(jié)構(gòu),。 評價(jià)物理數(shù)據(jù)庫的方法完全依賴于所選用的DBMS,主要是從定量估算各種方案的存儲(chǔ)空間,、存取時(shí)間和維護(hù)代價(jià)入手,對估算結(jié)果進(jìn)行權(quán)衡,、比較,,選擇出一個(gè)較優(yōu)的合理的物理結(jié)構(gòu)。
4,、實(shí)例
教學(xué)管理系統(tǒng) 表1-1 學(xué)院
表1-2 專業(yè)
表1-3 學(xué)生
表1-4 課程
表1-5 成績單
六,、數(shù)據(jù)庫實(shí)施
1、數(shù)據(jù)庫實(shí)施的過程
數(shù)據(jù)庫實(shí)施:指根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果,,在計(jì)算機(jī)上建立起實(shí)際的數(shù)據(jù)庫結(jié)構(gòu),、裝入數(shù)據(jù)、進(jìn)行測試和試運(yùn)行的過程,。
2,、實(shí)例
學(xué)生表:
課程表:
專業(yè)表:
學(xué)院表:
成績表:
七、數(shù)據(jù)庫運(yùn)行與維護(hù)
數(shù)據(jù)庫運(yùn)行與維護(hù)的主要任務(wù)包括: A,、維護(hù)數(shù)據(jù)庫的安全性與完整性 B,、監(jiān)測并改善數(shù)據(jù)庫性能 C、重新組織和構(gòu)造數(shù)據(jù)庫 只有數(shù)據(jù)庫系統(tǒng)在運(yùn)行,,就需要不斷地進(jìn)行修改,、調(diào)整和維護(hù)。
|