- 數據庫系統原理及應用教程(第4版)
- 劉瑞新等
- 3089字
- 2020-05-28 17:16:19
3.2 系統需求分析
簡單地說,需求分析就是分析用戶的要求。在需求分析階段,系統分析員將分析結果用數據流程圖和數據字典表示。需求分析的結果是否能夠準確地反映用戶的實際要求,將直接影響到后面各個階段的設計,并影響到系統的設計是否合理和實用。
3.2.1 需求分析的任務和方法
需求分析的主要任務是:詳細調查現實世界要處理的對象(組織、部門、企業等);充分了解原系統(手工系統或計算機系統)的概況和發展前景;明確用戶的各種需求;收集支持系統目標的基礎數據及其處理方法;確定新系統的功能和邊界。
1.系統需求調查的內容
調查是系統需求分析的重要手段,只有通過對用戶的調查研究,才能得出需要的信息。調查的目的是獲得數據庫所需數據情況和數據處理要求。調查的具體內容有以下3方面。
1)數據庫中的信息內容:數據庫中需存儲哪些數據,它包括用戶將從數據庫中直接獲得或者間接導出的信息的內容和性質。需求分析時,不僅要考慮過去、現在的數據,還要考慮將來應用所涉及的數據,充分考慮到可能的擴充和改變。
2)數據處理內容:用戶要完成什么數據處理功能;用戶對數據處理響應時間的要求;數據處理的工作方式(是批處理還是聯機處理)。
3)數據安全性和完整性要求:數據的保密措施和存取控制要求;數據自身的或數據間的約束限制。
2.系統需求的調查步驟
確定用戶的最終需求是一件非常困難的事情。因為一方面用戶缺少計算機專業知識,不知道計算機能做什么,不能做什么,因而不能準確地表達自己的要求;另一方面,設計人員缺少用戶的專業知識,不易理解用戶的真正需求,甚至可能誤解用戶的需求。只有兩者加強交流,深入溝通,才能夠較好地完成需求分析。要進行需求分析,應當先對用戶進行充分調查,弄清楚他們的實際要求,然后再分析和表達這些需求。
數據分析階段,任何調查研究沒有用戶的積極參與是寸步難行的,設計人員應該和用戶充分交流,幫助不熟悉計算機的用戶建立數據庫環境下的概念,并對設計工作的最后結果承擔共同的責任。因此,用戶的參與是設計數據庫不可缺少的環節。調查用戶需求的具體步驟如下。
1)了解管理對象的組織機構情況:在系統分析時,要對管理對象所涉及的行政組織機構進行了解,弄清所設計的數據庫系統與哪些部門相關,這些部門以及下屬各個單位的聯系和職責是什么。
2)了解相關部門的業務活動情況:各部門需要輸入和使用什么數據;在部門中是如何加工處理這些數據的;各部門需要輸出什么信息;輸出到什么部門;輸出數據的格式是什么。
3)確定新系統的邊界:哪些功能現在就由計算機完成;哪些功能將來準備讓計算機完成;哪些功能或活動由人工完成。由計算機完成的功能就是新系統應該實現的功能。
3.系統需求調查的方法
計算機工作人員應當在熟悉了相關部門的業務后,協助用戶提出對新系統的各種要求。這些要求包括:信息要求、處理要求、安全性與完整性要求等。在系統需求調查中,用戶的積極參與配合是做好調查的關鍵。做需求調查時,往往需要同時采用上述多種方法。
1)跟班作業:數據庫設計人員親身參加業務工作,深入了解業務活動情況,比較準確地理解用戶的需求。
2)開調查會:通過與用戶座談的方式了解業務活動情況及用戶需求。座談會或調查會的參加者可以互相討論、啟發和補充。
3)請專人介紹:對于某些業務活動的重要環節,可以請業務熟練的專家或用戶介紹業務專業知識和業務活動情況,設計人員從中了解并詢問相關問題。
4)詢問:對某些調查中的問題,可以找專人詢問。
5)請用戶填寫設計調查表:數據庫設計人員可以提前設計一個合理的、詳細的業務活動及數據要求調查表,并將此表發給相關的用戶。用戶根據表中的要求,經過認真思考、充分準備后填寫表中的內容。如果調查表設計合理,則這種方法很有效,也易于為用戶接受。
6)查閱數據記錄:調查中還需要查閱與原系統有關的數據記錄,包括賬本、檔案或文獻等。
4.系統需求分析方法
調查了解了用戶的需求以后,需要進一步分析和表達用戶的需求。分析和表達用戶需求的方法很多,常用的有結構化分析(Structured Analysis,SA)方法,它是一種簡單實用的方法。
SA方法從最上層的系統組織機構入手,采用自頂向下、逐層分解的方式分析系統。SA方法把任何一個系統都抽象為圖3-4的形式。

圖3-4 系統高層抽象圖
圖3-4給出的只是最高層次的抽象系統概貌。要反映更詳細的內容,可將一個處理功能分解為若干子功能,每個子功能還可以繼續分解,直到把系統工作過程表示清楚為止。在處理功能逐步分解的同時,它們所用的數據也逐級分解,形成若干層次的數據流程圖。
數據流程圖表達了數據和處理過程之間的關系。在結構化分析方法中,處理過程的處理邏輯常常用判定表或判定樹來描述。數據字典(Data Dictionary,DD)則是對系統中數據的詳盡描述。對用戶需求進行分析與表達后,必須把分析結果提交給用戶,取得用戶的認可。
3.2.2 數據字典及其表示
數據字典是各類數據描述的集合,它是進行詳細的數據收集和數據分析后所獲得的主要成果。數據字典在數據庫設計中占有很重要的地位。數據字典通常包括以下5個部分。
1.數據項
數據項是不可再分的數據單位。它的描述為:
數據項={數據項名,數據項含義說明,別名,類型,長度,取值范圍,與其他數據項的邏輯關系}
其中:“取值范圍”和“與其他數據項的邏輯關系”兩項定義了數據的完整性約束條件,它們是設計數據完整性檢驗功能的依據。
2.數據結構
數據結構的描述為:
數據結構={數據結構名,含義說明,組成,{數據項或數據結構}}
數據結構反映了數據之間的組合關系。一個數據結構可以由若干個數據項組成,也可以由若干個數據結構組成,或由若干數據項和數據結構混合組成。
3.數據流
數據流是數據結構在系統內傳輸的路徑。數據流的描述通常為:
數據流={數據流名,說明,流出過程,流入過程,組成:{數據結構},平均流量,高峰期流量}
其中:“流出過程”說明該數據流來自哪個過程;“流入過程”說明該數據流將到哪個過程去;“平均流量”是指在單位時間(每天、每周、每月等)里傳輸的次數;“高峰期流量”則是指在高峰時期的數據流量。
4.數據存儲
數據存儲是數據及其結構停留或保存的地方,也是數據流的來源和去向之一。數據存儲可以是手工文檔、手工憑單或計算機文檔。數據存儲的描述通常為:
數據存儲={數據存儲名,說明,編號,輸入的數據流,輸出的數據流,組成:{數據結構},數據量,存取頻度,存取方式}
其中:“數據量”說明每次存取多少數據;“存取頻度”指每小時或每天或每周存取幾次、每次存取多少數據等信息;“存取方式”指是批處理還是聯機處理,是檢索還是更新,是順序檢索還是隨機檢索等;“輸入的數據流”要指出其數據的來源處;“輸出的數據流”要指出其數據去向處。
5.處理過程
處理過程的具體處理邏輯一般用判定表或判定樹來描述。數據字典中只需要描述處理過程的說明性信息,通常包括以下內容:
處理過程={處理過程名,說明,輸入:{數據流},輸出:{數據流},處理:{簡要說明}}
其中:“簡要說明”中主要說明該處理過程用來做什么(不是怎么做)及處理頻度要求,如單位時間里處理多少事務、多少數據量、響應時間要求等。
數據字典是關于數據庫中數據的描述,即對元數據的描述。數據字典是在需求分析階段建立,在數據庫設計過程中不斷修改、充實、完善的。
需求和分析階段收集到的基礎數據用數據字典和一組數據流程圖(Data Flow Diagram,DFD)表達,它們是下一步進行概念設計的基礎。數據字典能夠精確和詳盡地描述系統數據的各個層次和各個方面,并且把數據和處理有機地結合起來,可以使概念結構的設計變得相對容易。
圖3-5是一個數據流程圖的實例。圖中包括外部項、存儲框和處理框,還包括數據流,它們需要數據字典對其內容進行詳細說明。

圖3-5 一個數據流程圖的實例
- 數據庫應用實戰
- 使用GitOps實現Kubernetes的持續部署:模式、流程及工具
- Access 2007數據庫應用上機指導與練習
- Libgdx Cross/platform Game Development Cookbook
- Learn Unity ML-Agents:Fundamentals of Unity Machine Learning
- 數據庫原理與應用(Oracle版)
- Hands-On Mathematics for Deep Learning
- 重復數據刪除技術:面向大數據管理的縮減技術
- 大數據治理與安全:從理論到開源實踐
- 實用數據結構
- 活用數據:驅動業務的數據分析實戰
- 掌中寶:電腦綜合應用技巧
- 數據會說話:活用數據表達、說服與決策
- Hands-On Java Deep Learning for Computer Vision
- 數據庫高效優化:架構、規范與SQL技巧