7.1 資料庫設計概述:
- 資料庫設計一般定義:資料庫設計是指對于一個給定的應用環境,構造(設計)優化的資料庫邏輯模式和物理結構,并據此建立資料庫及其應用系統,使之能夠有效地存盤和管理資料,滿足各種用戶的應用需求,包括資訊管理要求和資料操作要求
- 定的應用環境:一個資料庫不可能什么資料都接收,如在學校或工廠,就要建立相當于的資料庫,學校工廠就是環境
- 邏輯模式:如設計的一張表,表的屬性設計,每個表中應該放什么資料,是第幾范式,這就是在邏輯模式設計的
- 物理結構:就是資料存盤在什么地方,怎么存放
- 資訊管理要求:在資料庫中應該存盤和管理哪些資料物件
- 資料操作要求:對資料物件需要進行哪些操作,如查詢、增、刪、 改、統計等操作
- 資料庫設計的目標:為用戶和各種應用系統提供一個資訊基礎設施和高效的運行環境
- 高效的運行環境:(資料庫是應用程式理最底層的互動平臺,所以要保證高效的操作,要求如下)
- 資料庫資料的存取效率高
- 據庫存盤空間的利用率高
- 資料庫系統運行管理的效率高
7.1.1 資料庫設計的特點:
- 三分技術,七分管理,十二分基礎資料
- 管理:資料庫建設專案管理、企業(即應用部門)的業務管理
- 基礎資料:資料的收集、整理、組織和不斷更新是資料庫建設中的重要環節
- 結構(資料)設計和行為(處理)設計相結合
- 整個設計程序中把資料庫結構設計和對資料的處理設計密切結合起來
- 結構和行為分離的設計:(如圖,資料庫和軟體設計分離,不好的設計)
- 傳統的軟體工程:重行為設計,忽視對應用中資料語意的分析和抽象,只要有可能就盡量推遲資料結構設計的決策
- 早期的資料庫設計:重結構設計,致力于資料模型和資料庫建模方法研究,忽視了行為設計對結構設計的影響

7.1.2 資料庫設計方法:
- 大型資料庫設計是涉及多學科的綜合性技術,又是一項龐大的工程專案,它要求資料庫設計人員具有多方面的知識和技術主要包括:
- 計算機的基礎知識
- 軟體工程的原理和方法
- 程式設計的方法和技巧
- 資料庫的基本知識
- 資料庫設計技術
- 應用領域的知識
- 早期資料庫設計:主要采用手工與經驗相結合的方法:
- 設計質量與設計人員的經驗和水平有直接關系
- 缺乏科學理論和工程方法的支持,設計質量難以保證
- 資料庫運行一段時間后又不同程度地發現各種問題,增加了系統維護的代價
- 規范設計法基本思想:程序迭代和逐步求精,典型方法如下:
- 新奧爾良(New Orleans)方法
- 簡介:把資料庫設計分為四個間階段,目前不同的階段做什么事,如第一個階段需求分析(了解用戶和應用程式對資料庫的要求),第二個階段概念結構設計根據需求分析設計出資料庫大致長什么樣(如用E-R圖),第三階段邏輯設計根據E-R設計轉為資料庫中實際的表,第四階段物理結構設計(就是資料存盤在什么地方,怎么存放)
- 基于 E-R 模型的設計方法
- 簡介:根據需求分析得到物體與物體之間的聯系,做成E-R圖
- 3NF(第三范式)的設計方法
- 簡介:就是取消了表中的傳遞函式依賴
- 面向物件的資料庫設計方法
- 簡介:和java中的面向物件一樣的原理
- 統一建模語言(UML)方法
- 簡介:這是一種工具,和E-R圖有點類似,表達出物體與物體間的聯系
- 新奧爾良(New Orleans)方法
7.1.3 資料庫設計的基本步驟:
- 資料庫設計分 6 個階段:(在上述的新奧爾良方法中增加了兩個設計)
- 需求分析 -- 就是了解資料庫要建成什么樣
- 概念結構設計 -- 把資料庫描述出來(如用E-R或UML)
- 邏輯結構設計 -- 根據概念結構設計,在資料庫中設定出一張張表
- 物理結構設計 -- 資料存盤在什么地方,怎么存放
- 資料庫實施 -- 上面四步資料庫就建成,那怎么用,就是實施
- 資料庫運行和維護 -- 資料庫進行使用列舉需要運行和維護
- 細節:
- 需求分析和概念結構設計獨立于任何資料庫管理系統
- 理解:這兩個階段不是真得要建立資料庫,只是設計階段,獨立于任何資料庫管理系統,就是那我設計完了,可能用MySQL或SqlServer
- 邏輯結構設計和物理結構設計與選用的資料庫管理系統密切相關
- 理解:就是不同的資料庫管理系統,設計的操作也不同,所以密切相關,像MySQL或SqlServer的很多操作就不同
- 這個圖可以多看:
- 需求分析和概念結構設計獨立于任何資料庫管理系統

- 參加資料庫設計的人員
- 系統分析人員和資料庫設計人員:資料庫設計的核心人員,將自始至終參與資料庫設計,其水平決定了資料庫系統的質量
- 資料庫管理員和用戶代表:主要參加需求分析與資料庫的運行和維護
- 應用開發人員(包括程式員和操作員):在實施階段參與進來,分別負責編制程式和準備軟硬體環境
- 各階段的主要任務:
- 1. 需求分析階段
- 整個設計程序的基礎,是最困難和最耗費時間的一步
- 是否做得充分與準確,決定了構建資料庫的速度和質量
- 2. 概念結構設計階段
- 整個資料庫設計的關鍵
- 通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體資料庫管理系統的概念模型
- 3. 邏輯結構設計階段
- 將概念結構轉換為某個資料庫管理系統所支持的資料模型,并對其進行優化
- 4.物理結構設計階段
- 為邏輯資料模型選取一個最適合應用環境的物理結構(包括存盤結構和存取方法)
- 5. 資料庫實施階段
- 根據邏輯設計和物理設計的結果建立資料庫
- 撰寫與除錯應用程式
- 組織資料入庫并進行試運行
- 6. 資料庫運行和維護階段
- 經過試運行后即可投入正式運行
- 在運行程序中必須不斷對其進行評估、調整與修改
- 1. 需求分析階段
- 細節:
- 設計一個完善的資料庫應用系統,往往是上述 6 個階段的不斷反復
- 這個設計步驟既是資料庫設計的程序,也包括了資料庫應用系統的設計程序
- 在設計程序中把資料庫的設計和對資料庫中資料處理的設計緊密結合起來,將這兩個方面的需求分析、抽象、設計、實作在各個階段同時進行,相互參照,相互補充,以完善兩方面的設計
- 各階段的資料設計描述:

- 對上述圖簡單的說明:
- 1.需求分析階段
- 綜合各個用戶的應用需求
- 2.概念設計階段
- 用影像的方式(E-R圖)表示出需要分析
- 3.邏輯設計階段
- 將E-R圖轉換成具體的資料庫產品支持的資料模式(就是表)
- 然后根據用戶處理的要求、安全性考慮,在基本表上在建立視圖,形成資料外模式
- 4.物理設計階段
- 根據(不同的產品資料庫)資料庫管理系統特點和處理的需要,進行物理存盤安排,建立索引,形成資料庫內模式
- 1.需求分析階段
7.1.4 資料庫設計程序中的各級模式:
7.2 需求分析:
- 什么是需求分析?分析用戶的要求
7.2.1 需求分析的任務:
- 詳細調查現實世界要處理的物件(組織、部門、企業等)
- 充分了解原系統(手工系統或計算機系統)的作業概況
- 明確用戶的各種需求,然后在此基礎上確定新系統的功能
- 新系統必須充分考慮今后可能的擴充和改變
- 調查的重點:是“資料”和“處理”,通過調查、收集與分析,獲得用戶對資料庫的資訊要求、處理要求、安全性與完整性要求
7.2.2 需求分析的方法:
- 需求分析的目標:
- 調查清楚用戶的實際要求并進行初步分析,與用戶達成共識,分析與表達這些需求
- 調查用戶需求的具體步驟:
- 調查組織機構情況
- 調查各部門的業務活動情況
- 協助用戶明確對新系統的各種要求,包括資訊要求、 處理要求、完全性與完整性要求
- 確定新系統的邊界
- 常用的調查方法:
- 跟班作業,通過親身參加業務作業來了解業務活動的情況
- 開調查會,通過與用戶座談來了解業務活動情況及用戶需求
- 請專人介紹
- 詢問,對某些調查中的問題可以找專人詢問
- 設計調查表請用戶填寫,如果調查表設計得合理,則很有效
- 查閱記錄,查閱與原系統有關的資料記錄
- 結構化分析方法(Structured Analysis,SA):從最上層的系統組織機構入手,采用自頂向下、逐層分解的方式分析系統
7.2.3 資料字典:
- 什么是資料字典?資料字典和新華字典一樣,但資料字典解釋的是每一個資料,解釋每一個資料里面有什么屬性和什么操作
- 資料字典是關于資料庫中資料的描述,即元資料(不是直接描述,如存的是張三,學號001不是這樣描述,而是描述出學號是什么樣的,應該學號是三位的的數字,范圍是多少,是這樣描述的),不是資料本身,資料字典是在需求分析階段建立,是繼續詳細的資料收集和資料分析所得到的,并在資料庫設計程序中不斷修改、充實、完善的
- 資料字典包括:資料項(有哪些資料)、資料結構(這個資料是什么結構,如:學號的結構是什么)、資料流(資料的流向,部門A指向部門B)、資料存盤(資料是B+樹存盤還是表的形式存盤)、處理程序(資料庫哪些資料要進行增刪改查,這個操作可以被哪些用戶擁有)
- 資料項:資料項是不可再分的資料單位
- 資料項描述={資料項名,資料項含義說明,別名,資料型別,長度,取值范圍,取值含義,與其他資料項的邏輯關系,資料項之間的聯系}
- 理解:
- 資料項名 -- 如Sno
- 資料項含義說明 -- Sno的作用
- 別名 -- Sno在其它其它表中是否有別名,如學號
- 資料型別 -- Sno的資料型別,然char(3)
- 長度 -- char(3),3就是它的長度
- 取值范圍 -- Sno的取值范圍001-999
- 取值含義 -- 001是學號,或表示男女生0是女1是男
- 與其他資料項的邏輯關系 --如: SC(Sno,Cno),就是外鍵
- 資料項之間的聯系:如知道Sno就可以推出學生的姓名,就是函式依賴
- “取值范圍”、“與其他資料項的邏輯關系”定義了資料的完整性約束條件,是設計資料檢驗功能的依據
- 可以用關系規范化(范式)理論為指導,用資料依賴的概念分析和表示資料項之間的聯系
- 資料結構:資料結構反映了資料之間的組合關系
- 資料結構描述={資料結構名,含義說明,組成:{資料項或資料結構}}
- 說明:一個資料結構可以由若干個資料項組成,也可以由若干個資料結構組成,或由若干個資料項和資料結構混合組成
- 理解:如倉庫進貨,入庫單就是資料結構,入庫單上又有很多資訊
- 資料流:資料流是資料結構在系統內傳輸的路徑
- 資料流描述={資料流名,說明,資料流來源,資料流去向,組成:{資料結構},平均流量,高峰期流量}
- 理解:如從選課表中抽取一個成績反饋給用戶
- 資料流名 -- 就可以是成績
- 說明 -- 該資料是干什么的
- 資料流來源 -- 資料從哪來的SC表
- 資料流去向 -- 資料到哪去,到應用程式
- 組成 -- 如學號、姓名和成績組成
- 平均流量 -- 如12小時或一個月的傳輸次數
- 高峰期流量 -- 如15號來查詢成績,15號就是高峰期流量
- 說明:
- 資料流來源:說明該資料流來自哪個程序
- 資料流去向:說明該資料流將到哪個程序去
- 平均流量:在單位時間(每天、每周、每月等)里的傳輸次數
- 高峰期流量:在高峰時期的資料流量
- 資料存盤:資料存盤是資料結構停留或保存的地方,也是資料流的來源和去向之一
- 資料存盤描述={資料存盤名,說明,編號,輸入的資料流,輸出的資料流,組成:{資料結構},資料量,存取頻度,存取方式}
- 理解:
- 資料存盤名 -- 這個存盤的名字
- 說明 -- 存盤什么資訊
- 編號 -- 存盤編號
- 輸入/出的資料流 -- 輸入輸出的資訊
- 組成 -- 輸入輸出的是哪些資料,存取的量,存取的頻率,存取的方式
- 說明:
- 存取頻度:每小時、每天或每周存取次數及每次存取的資料量等資訊
- 存取方式:批處理/ 聯機處理;檢索/ 更新;順序檢索/隨機檢索
- 輸入的資料流:資料來源
- 出的資料流:資料去向
- 處理程序:處理程序的具體處理邏輯一般用判定表或判定樹來描述,資料字典中只需要描述處理程序的說明性資訊
- 處理程序描述={處理程序名,說明,輸入:{資料流},輸出:{資料流},處理:{簡要說明}}
- 說明: -- 說白了就是我要對該資料做什么
- 說明該處理程序的功能及處理要求 -- 如該處理要達到什么目的,如查詢成績最高的學生
- 功能:該處理程序用來做什么
- 處理要求:處理頻度要求(如多次時間執行一次),如單位時間里處理多少事務,多少資料量、回應時間要求等
- 這些處理要求是后面物理設計的輸入及性能評價的標準
- 需求分析小結:
- 需求收集和分析作為資料庫設計的第一階段是十分重要的
- 第一階段收集的基礎資料(用資料字典來表達)是下一步進行概念設計的基礎
- 強調兩點:
- 設計人員應充分考慮到可能的擴充和改變,使設計易于更改、系統易于擴充
- 必須強呼叫戶的參與
7.3 概念結構設計(E-R):
- 什么是概念結構設計?將需求分析得到的用戶需求抽象為資訊結構(即概念模型)的程序就是概念結構設計
7.3.1 概念模型:
- 什么是概念模式?將需求分析得到的用戶需求抽象為資訊結構(即概念模型)
-
概念模型的主要特點:
(1)能真實、充分地反映現實世界,包括事物和事物之間的聯系,是現實世界的一個真實模型
(2)易于理解,可以用它和不熟悉計算機的用戶交換意見
(3)易于更改,當應用環境和應用要求改變時容易對概念模型修改和擴充
(4)易于向關系、網狀、層次等各種資料模型轉換
7.3.2 E-R模型:
- 描述現實世界的概念模型的工具:E-R 模型
- 物體是E-R圖的核心,做E-R圖的時要先找物體,物體包括物體的名稱,物體的屬性,在找另外一個物體,在找物體與物體的聯系
- 什么是物體?在現實世界中客觀存在并可相互區別的事物,如一個人,商店等
- 物體之間的聯系: 兩個物體型之間的聯系
- 一對一聯系(1:1)、一對多聯系(1:n)、多對多聯系(m:n)

-
兩個以上的物體型之間的聯系:
- 多個以上的物體型之間也存在著一對一、一對多、多對多聯系

-
單個物體型內的聯系:
-
同一個物體集內的各物體之間也可以存在一對一、一對多、多對多聯系
-
-

- 聯系的度:參與聯系的物體型的數目
- 兩個物體型之間的聯系度為 2,也稱為二元聯系
- 三個物體型之間的聯系度為 3,稱為三元聯系
- N個物體型之間的聯系度為 N,也稱為 N 元聯系
- E-R 圖:
- E-R 圖提供了表示物體型、屬性和聯系的方法:
- 物體型:用矩形表示,矩形框內寫明物體名
- 屬性:用橢圓形表示,并用無向邊將其與相應的物體型連接起來
- 聯系:用菱形表示,菱形框內寫明聯系名,并用無向邊分別與有關物體型連接起來,同時在無向邊旁標上聯系的型別(1:1、1:n 或 m:n)
- E-R 圖提供了表示物體型、屬性和聯系的方法:
- 例子:
- 某個工廠物資管理的概念模型,物資管理涉及的物體有:
- 倉庫:屬性有倉庫號、面積、電話號碼
- 零件:屬性有零件號、名稱、規格、單價、描述
- 供應商:屬性有供應商號、姓名、地址、電話號碼、賬號
- 專案:屬性有專案號、預算、開工日期
- 職工:屬性有職工號、姓名、年齡、職稱
- 這些物體之間的聯系如下:
- 一個倉庫可以存放多種零件,一種零件可以存放在多個倉庫中,因此倉庫和零件具有多對多的聯系,用庫存量來表示某種零件在某個倉庫中的數量
- 一個倉庫有多個職工當倉庫保管員,一個職工只能在一個倉庫作業,因此倉庫和職工之間是一對多的聯系
- 職工之間具有領導與被領導關系,即倉庫主任領導若干保管員,因此職工物體型中具有一對多的聯系
- 供應商、專案和零件三者之間具有多對多的聯系,即一個供應商可以供給若干專案多種零件,每個專案可以使用不同供應商供應的零件,每種零件可由不同供應商供給
- 某個工廠物資管理的概念模型,物資管理涉及的物體有:
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/532627.html
標籤:其他

