数据库系统-数据库设计
數據庫系統-數據庫設計
數據庫設計概述及六步驟簡介
數據庫設計是指對于一個給定的應用環境,構造最優的數據庫模式,建立數據庫及其應用系統,使之能夠有效地存儲數據,滿足各種用戶的應用需求。
數據庫設計的特點
數據庫設計是一項涉及多學科的綜合性技術,又是一項龐大的工程項目,具有如下特點:
數據庫設計方法
常用的數據庫設計方法如下:
數據庫設計的基本步驟
數據庫設計分為6個階段:
需求分析-步驟一
需求分析是整個數據庫設計過程中最重要的步驟之一,是后繼各階段的基礎。在需求分析階段,從多方面對整個組織進行調查,收集和分析各項應用對信息和處理兩方面的需求。
收集資料
收集資料是數據庫設計人員和用戶共同完成的任務。確定企業組織的目標,從這些目標導出對數據庫的總體要求。通過調研,確定由計算機完成的功能。
分析整理
分析的過程是對所收集到的數據進行抽象的過程,產生求解的模型。
數據流圖
采用數據流圖來描述系統的功能。數據流圖可以形象地描述事務處理與所需數據的關聯,便于用結構化系統方法,自頂向下,逐層分解,步步細化。
數據字典
對數據流圖中的數據流和加工等進一步定義,從而完整地反映系統需求。
數據字典的用途:進行詳細的數據收集和數據分析所獲得的主要結果。
數據字典的內容:數據項、數據結構、數據流、數據存儲、處理過程
用戶確認
需求分析得到的數據流圖和數據字典要返回給用戶,通過反復完善,最終取得用戶的認可
概念結構設計-步驟二
概念設計階段的目標是產生整體數據庫概念結構,即概念模式。概念模式是整個組織各個用戶關心的信息結構。描述概念結構的有力工具是 E-R模型
實體型
? 用矩形表示,矩形框內寫明實體名
屬性
? 用橢圓形表示,并用無向邊將其與相應的實體連接起來
聯系
? 用菱形表示,菱形框內寫明聯系名,并用無向邊分別與有關實體連接起來,同時這無向邊旁標上聯系的類型(1:1、1:n或m:n)
建立E-R模型步驟
設計局部E-R模型
確定局部結構范圍
定義實體
聯系定義
屬性分配
設計全局E-R模型
確定公共實體類型
局部E-R模型的合并
消除沖突
全局E-R模型的優化
實體類型的合并
冗余屬性的消除
冗余聯系的消除
邏輯結構設計-步驟三
邏輯結構設計就是把上述概念模型轉換成為某個具體的數據庫管理系統所支持的數據模型
E-R模型向關系模式的轉換
E-R模型向關系模式的轉換轉換原則:
每一個實體類型轉換為一個關系模式,實體的屬性就是關系的屬性,實體的碼就是關系的碼
聯系的轉換
一般1:1,1:m聯系不產生新的關系模式,而是將一方實體的碼加入多方實體對應的關系模式中,聯系的屬性也一并加入
m:n聯系要產生一個新的關系模式,改關系模式由聯系涉及實體的碼加上聯系的屬性(若有)組成
兩實體之間的1:1聯系
一個1:1聯系可以轉換為一個獨立的關系模式,也可以與任意一端對應的關系模式合并。如果轉換一個獨立的關系模式,則與該聯系相連的各實體的碼以及聯系本身的屬性均轉換為關系的屬性,每個實體的碼均是該關系的候選碼。如果與某一端實體對應的關系模式合并,則需要這該關系模式的屬性中加入另一個關系模式的碼和聯系本身的屬性??蓪⑷我环綄嶓w的主碼納入另一方實體對應的關系中,若有聯系的屬性也一并納入。
例如:
關系模式:
工廠(廠號,廠名,地點)
廠長(姓名,性別,年齡,廠號,任期)
兩實體間的1:m聯系
可將“1”方實體的主碼納入“m”方實體對應的關系中作為外碼,同時把聯系的屬性也一并納入“m”方對應的關系中
關系模式:
倉庫(倉庫號,地點,面積)
商品(貨號,品名,價格,倉庫號,數量)
同一實體間的1:m聯系
可在這個實體所對應的關系中多設一個屬性,作為域該實體相聯系的另一個實體的主碼。
關系模式:
職工(工號,姓名,年齡,性別,職稱,工資,領導者工號,民意測驗)
兩實體間的弱實體聯系
可將被依賴實體的主碼納入弱實體中,作為弱實體的主碼或主碼中的一部分
在現實世界中,常常有某些實體對于另一些實體具有很強的依賴關系,即一個實體的存在必須以另一個實體的存在為前提。通常把前者稱為弱實體。
在E-R圖中,用雙線框表示弱實體,用指向弱實體的箭頭表明依賴聯系。
例如,如圖所示的E-R圖可轉換為如下關系模式:
例如,如圖所示的E-R圖可轉換為如下關系模式:
關系模式:
職工(工號,姓名,年齡,性別,職稱)
親屬(工號,親戚姓名,親戚關系)
超類和子類的轉換
概括定義了類型之間的一種子集聯系。
例如:學生是一個實體型,本科生、研究生也是實體型。本科生、研究生均是學生的子集。把學生稱為超類,本科生、研究生稱為學生的子類。
在E-R圖中,用雙豎邊的矩形框表示子類,用直線加小圓圈表示超類-子類聯系。子類繼承超類上定義的全部屬性,其本身還可包含其他屬性。
例如,如圖所示的E-R圖中各個實體的屬性為:
職員:職工號,姓名,性別,年齡,參加工作時間
飛行員:飛行小時,健康檢查,飛機型號
機械師:學歷,級別,專業職稱
管理員:職務,職稱
改E-R圖轉換為關系模式為:
職員(職工號,姓名,性別,年齡,參加工作時間)
飛行員(職工號,飛行小時,健康檢查,飛機型號)
機械師(職工號,學歷,級別,專業職稱)
管理員(職工號,職務,職稱)
為了查詢方便,可這超類實體中增加一個指示器屬性,根據指示器的值直接查詢子類實體表。所以,職員關系又可以為:
職員(職工號,姓名,性別,年齡,參加工作時間,職員類型)
兩實體間的m:n聯系
必須對“聯系”單獨建立一個關系,該關系中至少包含被它所聯系的雙方實體的“主碼”,如果聯系用屬性,也要納入這個關系中。
關系模式:
學生(學號,姓名,性別,年齡)
課程(課程號,課程名,學時)
選修(學號,課程號,成績)
同一實體間的m:n聯系
必須為這個“聯系”單獨建立一個關系,該關系中至少包含被它所聯系的雙方實體的“主碼”,如果聯系用屬性,也要納入這個關系中,由于這個“聯系”只涉及一個實體,所以加入的實體的主碼不能同名。
關系模式:
零部件(代號,名稱,價格)
組裝(代號,組裝件代號,數量)
兩個以上實體間的m:n聯系
必須為這個“聯系”單獨建立一個關系,該關系中至少包含被它所聯系的各個實體的“主碼”,若是聯系有屬性,也要納入這個關系中
關系模式:
供應商(供應商號,供應商名,地址)
零件(零件號,零件名,重量)
項目(項目編號,項目名稱,開工日期)
供應(供應商號,項目編號,零件號,零件數)
關系模式優化
最核心的就是要遵循數據庫設計的NF范式
應用關系規范化理論對上述產生的關系模式進行優化,具體步驟如下:
設計用戶子模式
全局關系模型設計完成后,還應根據局部應用的需求,結合具體DBMS的特點,設計用戶的子模式
設計子模式時應注意考慮用戶的習慣和方便性,主要包括:
物理結構設計-步驟四
數據庫的物理設計是指對一個給定的邏輯數據庫模型選取一個最適合應用環境的物理結構的過程。物理設計通常分為兩步:
第一步 確定數據庫的物理結構
確定數據的存放位置 基本原則:根據應用情況將易變部分與穩定部分分開存放、存取頻率較高部分與存取頻率較低部分分開存放
確定系統配置
DBMS產品一般都提供了一些存儲分配參數
同時使用數據庫的用戶數
同時打開的數據庫對象數
內存分配參數
使用的緩沖區長度、個數
存儲分配參數
第二步 物理結構進行評價
對時間效率、空間效率、維護開銷和各種用戶要求進行權衡,從多種設計方案中選擇一個較優的方案。
評價方法(完全依賴于所選用的DBMS)
定量估算各種方案
存儲空間
存取時間
維護代價
對估算結果進行權衡、比較,選擇出一個較優的合理的物理結構
如果該結構不符合用戶需求,則需要修改設計
數據庫實施-步驟五
實施階段的工作主要有:
建立數據庫結構
數據載入
數據庫結構建立好后,就可以向數據庫中裝載數據了。組織數據入庫是數據庫實施階段最主要的工作。
應用程序的編碼和調試
數據庫試運行
功能測試
實際運行數據庫應用程序,執行對數據庫的各種操作,測試應用程序的功能是否滿足設計要求如果不滿足,對應用程序部分則要修改、調整,直到達到設計要求。
性能測試
測量系統的性能指標,分析是否達到設計目標。
如果測試的結果與設計目標不符,則要返回物理設計階段,重新調整物理結構,修改系統參數,某些情況下甚至要返回邏輯設計階段,修改邏輯結構。
數據庫運行維護-步驟六
數據庫系統投入正式運行后,對數據庫經常性的維護工作主要由DBA完成,包括:
數據庫的轉儲和恢復
這數據庫試運行階段,系統還不穩定,硬、軟件故障隨時都可能發生。
系統的操作人員對新系統還不熟悉,誤操作也不可避免因此必須做好數據庫的轉儲和恢復工作,盡量減少對數據庫的破壞。
數據庫的安全性、完整性控制
數據庫性能的監督、分析和改造
數據庫的重組與重構
重組的目標:提高系統性能
重組的工作:按原設計要求、重新安排存儲位置、回收垃圾、減少指針鏈、數據庫的重組不會改變原設計的數據邏輯結構和物理結構
數據庫重構:根據新環境調整數據庫的模式和內模式、增加新的數據項、改變數據項的類型、改變數據庫的容量、增加或刪除索引修改完整性約束條件
總結
以上是生活随笔為你收集整理的数据库系统-数据库设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新手学Java编程语言怎么入门?知识点都
- 下一篇: [iOS] 通知详解: iOS 10 U