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