一、數(shù)據(jù)庫設(shè)計簡介
按照規(guī)范設(shè)計,將數(shù)據(jù)庫的設(shè)計過程分為六個階段: A、系統(tǒng)需求分析階段 B、概念結(jié)構(gòu)設(shè)計階段 C、邏輯結(jié)構(gòu)設(shè)計階段 D、物理結(jié)構(gòu)設(shè)計階段 E、數(shù)據(jù)庫實施階段 F、數(shù)據(jù)庫運行與維護階段 需求分析和概念結(jié)構(gòu)設(shè)計獨立于任何數(shù)據(jù)庫管理系統(tǒng)。
二、系統(tǒng)需求分析
1、需求分析的任務(wù)
需求分析的任務(wù):對現(xiàn)實世界要處理的對象進行詳細的調(diào)查,通過對原系統(tǒng)的了解,收集支持新系統(tǒng)的基礎(chǔ)數(shù)據(jù)并對其進行處理,在此基礎(chǔ)上確定新系統(tǒng)的功能。 A、調(diào)查分析用戶活動 B、收集和分析需求數(shù)據(jù),確定系統(tǒng)邊界信息需求,處理需求,安全性和完整性需求 C、編寫系統(tǒng)分析報告
2、需求分析的方法
需求分析有兩種方法:自頂向下、自底向上 A、自頂向下 自頂向下方法從最上層的系統(tǒng)組織機構(gòu)入手,采用逐層分解的方式分析系統(tǒng)。 用數(shù)據(jù)流圖和數(shù)據(jù)字典描述系統(tǒng) 數(shù)據(jù)流圖:描述輸入數(shù)據(jù)到輸出數(shù)據(jù)的變換過程 數(shù)據(jù)流:由一組固定成分的數(shù)據(jù)組成,代表數(shù)據(jù)的流動方向 處理:描述了輸入數(shù)據(jù)到輸出數(shù)據(jù)的變換 文件:用于存儲數(shù)據(jù) 源或宿:存在于系統(tǒng)之外的人員或組織,表示系統(tǒng)輸入數(shù)據(jù)的來源和輸出數(shù)據(jù)的去向 B、自底向上
3、實例
教學(xué)管理系統(tǒng) 基本需求: 某學(xué)校設(shè)計學(xué)校教學(xué)管理系統(tǒng),學(xué)生實體包括學(xué)號、姓名、性別、生日、民族、籍貫、簡歷、入學(xué)日期,每名學(xué)生選擇一個主修專業(yè),專業(yè)包括專業(yè)編號、名稱、類別,一個專業(yè)屬于一個學(xué)院,一個學(xué)院可以有多個專業(yè)。學(xué)院信息要存儲學(xué)院號、學(xué)院名、院長。教學(xué)管理要管理課程表、學(xué)生成績表。課程包括課程號、課程名、學(xué)分,每門課程由一個學(xué)院開設(shè)。學(xué)生選修的每門課程獲得一個成績。
三、概念結(jié)構(gòu)設(shè)計
1、概念結(jié)構(gòu)設(shè)計簡介
概念結(jié)構(gòu)設(shè)計的目標(biāo)是設(shè)計數(shù)據(jù)庫的E-R模型圖,確認(rèn)需求信息的正確和完整。具體來說就是從需求分析中找到實體,確認(rèn)實體的屬性、確認(rèn)實體的關(guān)系,畫出ER圖。
2、概念結(jié)構(gòu)設(shè)計的步驟

 第一步,數(shù)據(jù)抽象與局部E-R模型設(shè)計 A、數(shù)據(jù)抽象 在多層數(shù)據(jù)流中選擇一個適當(dāng)層次作為設(shè)計E-R圖的出發(fā)點。 確定每個局部應(yīng)用包含哪些實體,實體包含哪些屬性,實體之間的聯(lián)系 劃分實體和屬性的方法 分類:將一組具有某些共同特性和行為的對象抽象為一個實體。 聚合:將對象類型的組成成分抽象為屬性。 B、局部E-R模型設(shè)計 局部E-R模型設(shè)計的原則是屬性必須是不可分的數(shù)據(jù)項,不能再由放棄其他屬性組成;屬性不能與其他實體具有聯(lián)系,聯(lián)系只能發(fā)生在實體之間。 為簡化E-R圖,凡是能作為屬性對待的,盡量作為屬性。 第二步,全局E-R模型設(shè)計 集成各局部E-R模型,形成全局模型。視圖集成的方法有兩種: A、多元集成法:一次性將多個局部E-R圖合并為一個全局E-R圖。 B、二元集成法:首先集成兩個重要的局部E-R圖,然后用累加的方法逐步將一個新的E-R圖集成進來。 合并: 合并局部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、實例
教學(xué)管理系統(tǒng)的E-R圖 實體:學(xué)生、專業(yè)、學(xué)院、課程 實體表要記錄的屬性: 學(xué)生(學(xué)號、姓名、性別、生日、籍貫、民族、簡歷、入學(xué)日期)
 專業(yè)(專業(yè)號、專業(yè)名稱、類別) 學(xué)院(學(xué)院號、學(xué)院名稱、院長) 課程(課程號、課程名稱、學(xué)分)
 教學(xué)管理ER圖:

四、邏輯結(jié)構(gòu)設(shè)計
1、邏輯結(jié)構(gòu)設(shè)計簡介
邏輯結(jié)構(gòu)設(shè)計的任務(wù)是將概念結(jié)構(gòu)設(shè)計階段完成的實體模型轉(zhuǎn)換成特定的DBMS所支持的數(shù)據(jù)模型的過程。邏輯結(jié)構(gòu)設(shè)計的目的是將E-R圖中的實體、屬性和聯(lián)系轉(zhuǎn)換成為關(guān)系模式。

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

六、數(shù)據(jù)庫實施
1、數(shù)據(jù)庫實施的過程
數(shù)據(jù)庫實施:指根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果,在計算機上建立起實際的數(shù)據(jù)庫結(jié)構(gòu)、裝入數(shù)據(jù)、進行測試和試運行的過程。

2、實例
學(xué)生表:
 課程表:
 專業(yè)表:
 學(xué)院表:
 成績表:

七、數(shù)據(jù)庫運行與維護
數(shù)據(jù)庫運行與維護的主要任務(wù)包括: A、維護數(shù)據(jù)庫的安全性與完整性 B、監(jiān)測并改善數(shù)據(jù)庫性能 C、重新組織和構(gòu)造數(shù)據(jù)庫 只有數(shù)據(jù)庫系統(tǒng)在運行,就需要不斷地進行修改、調(diào)整和維護。
|