- 數據庫系統原理及MySQL應用教程
- 李輝等編著
- 3921字
- 2020-10-23 14:25:08
4.2 系統需求分析
需求分析就是分析用戶的要求。需求分析是設計數據庫的起點,需求分析的結果是否準確反映用戶的實際需求,將直接影響后面各個階段的設計,并影響設計結果是否合理和實用。
4.2.1 需求分析的任務
需求分析的任務是通過詳細調查現實世界處理的對象(如組織、部門、企業等),充分了解原系統(手工系統或計算機系統)的工作概況,明確用戶的各種需求,然后在此基礎上確定新系統的功能。新系統必須充分考慮今后可能的擴充和改變,不能僅僅按當前應用需求來設計數據庫。
調查的重點是“數據”和“處理”,通過調查、收集與分析,獲得用戶對數據庫的如下要求。
1)信息要求。信息要求是指用戶需要從數據庫中獲得信息的內容與性質。由用戶的信息要求可以導出數據要求,即在數據庫中需要存儲哪些數據。
2)處理要求。處理要求是指用戶要求完成什么處理功能,對處理的響應時間有什么要求,處理方式是批處理還是聯機處理。
3)系統要求。系統要求主要從以下三個方面考慮。①安全性要求:系統有幾類用戶使用,每一類用戶的使用權限如何。②使用方式要求:用戶的使用環境是什么,平均有多少用戶同時使用,最高峰時有多少用戶同時使用,有無查詢相應的時間要求等。③可擴充性要求:對未來功能、性能和應用訪問的可擴充性的要求。
4.2.2 需求分析的方法
進行需求分析首先是調查清楚用戶的實際需求,與用戶達成共識,然后分析與表達這些需求。
調查用戶需求的具體步驟如下:
1)調查組織機構情況,包括了解該組織的部門組成情況、各部門的職責等,為分析信息流程做準備。
2)調查各部門的業務活動情況,包括了解各個部門輸入和使用什么數據,如何加工處理這些數據,輸出什么信息,輸出到什么部門,輸出結果的格式是什么,這是調查的重點。
3)在熟悉了業務的基礎上,協助用戶明確對新系統的各種要求,包括信息要求、處理要求、完全性與完整性要求,這是調查的又一個重點。
4)確定新系統的邊界。對前面調查的結果進行初步分析,確定哪些功能由計算機完成或將來準備讓計算機完成,哪些活動由人工完成。由計算機完成的功能就是新系統應該實現的功能。
在調查過程中,可以根據不同的問題和條件,使用不同的調查方法。常用的調查方法有如下幾個。
1)跟班作業。通過親身參加業務工作來了解業務活動的情況。通過這種方法可以比較準確地了解用戶的需求,但比較耗費時間。
2)開調查會。通過與用戶座談來了解業務活動情況及用戶需求。座談時,參加者和用戶之間可以相互啟發。
3)請專人介紹。
4)詢問。對某些調查中的問題,可以找專人詢問。
5)問卷調查。設計調查表請用戶填寫。如果調查表設計得合理,這種方法是很有效的,也易于為用戶所接受。
6)查閱記錄。查閱與原系統有關的數據記錄。
需求調查的方法很多,常常綜合使用各種方法。對用戶對象的專業知識和業務過程了解得越詳細,為數據庫設計所做的準備就越充分,并且確信沒有漏掉大的方面。設計人員應考慮將來對系統功能的擴充和改變,所以,盡量把系統設計得易于修改。
在調查了解了用戶的需求之后,還需要進一步分析和表達用戶的需求。在眾多的分析方法中結構化分析(Structured Analysis,SA)方法是一種簡單實用的方法。SA方法從最上層的系統組織機構入手,采用自頂向下、逐層分解的方式分析系統,它把任何一個系統都抽象為如圖4-2所示的形式。

圖4-2 系統高層抽象圖
數據流圖表達了數據和處理過程的關系。在SA方法中,處理過程的處理邏輯常常借助于判定表或判定樹來描述。系統中的數據則借助于數據字典(Data Dictionary,DD)來描述。對用戶需求進行分析與表達后,必須提交給用戶,征得用戶的認可。
數據流圖的符號說明如下。
1)數據流。由一組確定的數據組成。數據流用帶名字的箭頭表示,名字表示流經的數據,箭頭則表示流向。例如,“成績單”數據流由學生名、課程名、學期、成績等數據組成。
2)加工。加工是對數據進行的操作或處理。加工包括兩方面的內容:一是變換數據的組成,即改變數據結構;二是在原有的數據內容基礎上增加新的內容,形成新的數據。例如,在學生學習成績管理系統中,“選課”是一個加工,它把學生信息和開設的課程信息進行處理后生成學生的選課清單。
3)文件。文件是數據暫時存儲或永久保存的地方,如學生表、課程表。
4)外部實體。外部實體是指獨立于系統而存在的,但又和系統有聯系的實體,它表示數據的外部來源和最后去向。確定系統與外部環境之間的界限,從而可確定系統的范圍。外部實體可以是某種人員、組織、系統或某事物。例如,在學生學習成績管理系統中,家長可以作為外部實體存在,因為家長不是該系統要研究的實體,但他可以查詢本系統中有關學生的成績。
構造DFD的目的是使系統分析人員與用戶進行明確的交流,指導系統設計,并為下一階段的工作打下基礎。所以,DFD既要簡單,又要容易被理解。構造DFD通常采用自頂向下、逐層分解,直到功能細化,形成若干層次的DFD為止。圖4-3所示是學校成績管理系統的第一層數據流圖。如果需要,還可以對其中的三個處理過程分別創建第二層數據流圖。
數據流圖表達了數據和處理的關系,數據字典則是以特定格式記錄下來的,對數據流圖中各個基本要素(數據流、文件、加工等)的具體內容和特征所做的完整的對應和說明。
數據字典是對數據流圖的注釋和重要補充,它幫助系統分析人員全面確定用戶的要求,并為以后的系統設計提供參考依據。
數據字典包括數據項、數據結構、數據流、數據存儲和處理過程五個部分。其中數據項是數據的最小組成單位,若干個數據項可以組成一個數據結構,數據字典通對數據項和數據結構的定義來描述數據流、數據存儲的邏輯內容。

圖4-3 成績管理系統的第一層數據流圖(部分)
1)數據項。數據項是不可再分的數據單位。
數據項描述={數據項名,數據項含義說明,別名,數據類型,長度,取值范圍,取值含義,與其他數據項的邏輯關系,數據項之間的聯系}。其中,取值范圍與其他數據項的邏輯關系定義了數據的完整性約束條件。
2)數據結構。數據結構反映了數據之間的組合關系。數據結構描述={數據結構名,含義說明,組成{數據項或數據結構}}。
3)數據流。數據流是數據結構在系統內傳輸的路徑。
數據流描述={數據流名,說明,數據流來源,數據流去向,組成{數據結構},平均流量,高峰期流量}。
①數據流來源是說明該數據流來自哪個過程。
②數據流去向是說明該數據流將到哪個過程。
③平均流量是指在單位時間(每天、每周、每月等)里的傳輸次數。
④高峰期流量則是指在高峰時期的數據流量。
4)數據存儲。數據存儲是數據結構停留或保存的地方,也是數據流的來源和去向之一。
數據存儲描述={數據存儲名,說明,編號,流入的數據流,流出的數據流,組成{數據結構},數據量,存取方式}。
①流入的數據流:指出數據來源。
②流出的數據流:指出數據去向。
③數據量:每次存取多少數據,每天(或每小時,每周等)存取幾次等信息。
④存取方法:批處理/聯機處理;檢索/更新;順序檢索/隨機檢索。
5)處理過程。處理過程的具體處理邏輯一般用判定表或判定樹來描述。數據字典中只描述處理過程的說明性信息。
處理過程描述={處理過程名,說明,輸入{數據流},輸出{數據流},處理{簡要說明}}其中“簡要說明”主要是說明該處理過程的功能及處理要求。
①功能:說明該處理過程用來做什么。
②處理要求:說明處理頻度要求(如單位時間里處理多少事務、多少數據量);響應時間要求等,是后面物理設計的輸入及性能評價的標準。
可見數據字典是關于數據庫中數據的描述,即元數據,而不是數據本身。數據字典是在需求分析階段建立的,在數據庫設計過程中不斷地進行修改、充實和完善。
下面以成績管理系統數據流圖中幾個元素的定義加以說明。
1)數據項名:成績。
說明:課程考核的分數值。
別名:分數。
數據類型:數值型,帶一位小數。
取值范圍:0~100。
2)數據結構名:成績單。
別名:考試成績。
描述:學生每學期考試成績單。
定義:成績清單=學生號+課程號+學期+考試成績。
3)處理過程:選課登記處理。
輸入數據流:學期、學生號、課程號。
輸出數據流:選課清單。
說明:把選課學生的學生號、所處的學期號、所選的課程號記錄在數據庫中。
4)數據存儲名:學生信息表。
說明:用來記錄學生的基本情況。
組成:記錄學生各種情況的數據項,如學生號、姓名、性別、專業、班級等。
流入的數據流:提供各項數據的顯示,提取學生的信息。
流出的數據流:對學生情況的修改、增加或刪除。
概念結構設計是將需求分析得到的用戶需求抽象為信息結構即概念模型的過程,它是整個數據庫設計的關鍵。只有將需求分析階段所得到的系統應用需求抽象為信息世界的結構,才能更好地、更準確地轉換為機器世界中的數據模型,并用適當的DBMS實現這些需求。概念結構的主要特點如下:
1)能真實、充分地反映現實世界,包括事物和事物之間的聯系;能滿足用戶對數據的處理要求,是現實世界的一個真實模型。
2)易于理解,從而可以用它和不熟悉計算機的用戶交換意見,用戶的積極參與是數據庫成功設計的關鍵。
3)易于更改,當應用環境和應用要求改變時,容易對概念模型進行修改和擴充。
4)易于向關系、網狀、層次等各種數據模型轉換。
概念模型是各種數據模型的共同基礎,它比數據模型更獨立于機器、更抽象,因而更加穩定。
關系數據庫的設計一般要從數據模型E-R圖設計開始。E-R圖設計的質量直接決定了表結構設計的質量,而表是數據庫中最為重要的數據庫對象,可以這樣說:E-R圖設計的質量直接決定了關系數據庫設計的質量。E-R圖既可以表示現實世界中的事物,又可以表示事物與事物之間的關系,它描述了軟件系統的數據存儲需求,其中E表示實體,R表示關系,所以,E-R圖也稱為實體—關系圖。在眾多的概念模型中,最著名、最簡單實用的一種就是E-R模型,它將現實世界的信息結構統一用屬性、實體及實體間的聯系來描述。
- 手機安全和可信應用開發指南:TrustZone與OP-TEE技術詳解
- PyTorch Artificial Intelligence Fundamentals
- Mastering AndEngine Game Development
- Elasticsearch for Hadoop
- “笨辦法”學C語言
- Python機器學習之金融風險管理
- Android傳感器開發與智能設備案例實戰
- Clojure for Machine Learning
- Java圖像處理:基于OpenCV與JVM
- Android熱門應用開發詳解
- micro:bit軟件指南
- 分布式系統架構與開發:技術原理與面試題解析
- Azure for Architects
- Scratch 3.0少兒積木式編程(6~10歲)
- Jenkins 2.x Continuous Integration Cookbook(Third Edition)