第三講 數據庫需求分析
一、需求分析(針對一個應用系統)
1.1 需求分析的基本任務
哪兩大基本任務?
應用需求、數據需求
基本任務:
(應用需求:有哪些應用;數據需求:涉及哪些數據)
- 詳細調查客觀世界(處理對象,包括事和物)
- 充分了解系統工作概況(客觀運作流程)
- 明確用戶的詳細需求(哪些應用&處理要求)
- 描述新系統的應用功能(應用計算過程&涉及相關數據)
1.2 需求分析的基本方法
哪兩大基本方法?
1、數據流程圖 2、面向對象分析方法UML(用例圖/類圖/時序圖/…)

1.3 需求分析的結果
最終結果是什么?
一套形式化的規范文檔!
1.4 需求分析的其他任務
需求分析還應包含哪些工作?
任務還應包括:
- 數據約束
- 使用頻率
- 性能要求
- 使用環境
- 界面友好性
- 安全要求,等方面
這些工作,往往才是應用系統真正可用的關鍵!
二、數據流程圖
2.1 基本要素
數據流程圖有哪些基本要素,用途?


特別說明:表示方法可用多種多樣,甚至增加新的要素,但最重要的是給出對要素的注釋(含義和作用)。
2.2 數據流程圖
數據流程圖要描述什么?
數據流程圖(也稱數據流圖,date flow diagram , DFD)
- 是一種便於用戶理解和分析系統業務模型的圖形化工具
- 它擺脫了系統實現技術的束縛
數據流程圖抽象地描述應用系統的業務模型(形式化建模)包含如下一些方面:
- 處理環節
- 處理流程
- 數據傳輸
- 數據輸入和輸出保存數據。
2.4 分層的數據流程圖
什么是分層數據流程圖,作用?
復雜的應用系統需要采用分層數據流程圖分層來描述。
自頂向下,由粗到細

分層的數據流圖示例(電子商務網站)
1)頂層數據流程圖
用戶購買商品、下定單,企業采購商品、保存、供貨

頂層圖(輸入輸出圖,僅一張):把整個系統視為一個加工,並標出系統從外部對象接收哪些數據流和發送哪些數據流到外部對象。
2)0層數據流程圖

(2個輸入數據流,3個輸出數據流)
0層圖(頂層加工細化,僅一張):對系統的頂層加工進行細化,標出這些加工與外部對象和與這些加工的公共保存文件間的數據流向。
3)分層數據流程圖

畫分層數據流圖(循環進行):把上層加工看作是由下層多個子加工形成的子系統,就象從0層圖畫出1層圖一樣,畫出該加工的分層數據流程圖

4)特別注意事項
上下層之間的一致性(接口吻合)!!
2.5 數據字典
數據流圖表達了數據、處理過程、及相互作用關系抽象的拓撲結構
對流程圖中外部對象、數據流、保存文件和加工等要素的詳細描述必需借助數據字典(Data Dictionary)對其逐一描述。
數據字典包含內容:
- 數據項的說明(是數據的最小單位)
- 數據結構的說明(描述某些數據項之間的組成關系)
- 數據流的說明(由一個或一組固定的數據項或數據結構組成結構)
- 加工的說明(對加工邏輯進行說明)
- 保存文件的說明(描述具體的邏輯存儲結構,不涉及物理組織)
- 外部對象的說明(定義外部對象的編號、名稱、簡述等)
2.6 數據字典示例
汽車訂票系統
案例3:PPT16-21
(網上下載:http://www.docin.com/p-313670457.html,僅供參考了解數據字典文件大致的書寫內容和描述格式)






三、UML類圖的作用
3.1 UML
*什么是UML,有哪些常用的UML圖?
UML類圖描述了什么?
UML
- 指統一建模語言(Unified Modeling Language)
- 采用面向對象軟件工程方法來描述一個軟件系統的不同部分
主要包括:
- 類圖(class diagram):描述數據對象以及對象關系
- 用況圖(use case diagram):描述用戶與系統之間的交互關系,又稱“用例圖”
- 活動圖(activity diagram):描述系統的不同部分之間的任務流(任務處理過程),又稱“時序圖/順序圖”
3.2 UML的示例
1)用例圖

2)類圖

特別指出:
數據流程圖(傳統方法)中的保存
文件和UML類圖(面向對象方法),
是數據庫需求分析的兩種重要數據來源,是數據庫設計的基礎。
3)順序圖

四、數據庫需求分析
4.1 基本任務
它與需求分析有何不同?
與需求分析的不同
- 需求分析要同時考慮應用功能和所涉及的數據,數據庫需求分析僅考慮需要保存哪些數據
- 兩者是包含關系
數據庫需求分析的核心任務?
數據庫需求分析的核心任務
- 數據庫需求分析不僅要確定所有待保存的“數據對象”,而且要了解清楚這些數據對象之間存在哪些關聯!
- 同樣地,要給出每個數據對象和數據關聯的數據字典文件!
4.2 數據庫需求分析的其他任務
-
首先,要描述清楚一個應用系統(業務模型)涉及的所有數據對象和數據間關聯
-
同時,還需要對下述方面進行認真分析:
- 數據約束
- 數據訪問頻率
- 數據訪問安全
- 數據可靠性
- 數據響應效率,等。
- 特別強說明:
- 后者是保證數據庫真正可用的關鍵!
4.3 數據庫需求分析人員應具備的能力
1、溝通能力:挖掘客戶需求;
2、演講能力:與客戶、開發人員、測試人員達成一致;
3、邏輯思維能力:分析客戶散亂的需求,解決問題;
4、原型設計能力:熟悉客戶體驗,使用設計工具,了解
開發過程或現有產品;
5、Office能力:輸出需求規格說明書(word或excel);
6、團隊工作能力;
……
特別注釋:未必一定要是數據庫技術專家!
一個數據庫技術專家未必一定是一個優秀的數據庫需求分析人員!
DFD其他圖示

某銀行儲蓄所存(取)款過程如下:
儲戶將填好的存(取)單及存折送交分類處理處.分類處理處按三種不同的情況分別處理.如果存折不符或存(取)單不合格,則將存折及存(取)單直接退還儲戶重新填寫.如果是存款,則將存折及存款單送交存款處理處.存款處理處取出底帳,登記后,將存折退還給儲戶;如果是取款,則將存折及取款單送交取款處,該服務台取出底帳及現金,記賬后將存折與現金退還給儲戶,從而完成存(取)款處理過程.試按以上過程畫出數據流程圖.

1.簡述數據庫需求分析的任務
2.簡述數據流程圖&數據字典使用要點