本文筆者將與大家分析資料庫外部設計需求、結構設計需求、運用設計需求以及安全保密設計需求。
資料庫設計需求
1. 需求概述
建立完善的資料庫結構管理設備的基本參數、運行狀態和各種工作計劃。
資料庫的框架和結構必須根據設備和運行狀態而設計,方便提供強大的錄入、查詢、統計、分析和報表等各種功能操作,較好的反映平臺業務的基本情況和運行狀況,滿足平臺的基本要求。
2. 外部設計需求
2.1 標識符和狀態
資料庫表前綴:根據模塊名定義(如用戶模塊:sys_)
用戶名:root
密碼:待定
權限:全部
有效時間:開發階段
說明:系統正式發布後,可能更改資料庫用戶/密碼。
2.2 使用它的程序
本系統主要利用java作為後端的應用開發工具,使用MySQL作為後臺的資料庫, Linux或Windows均可作為系統平臺。
2.3 約定
所有命名一定要具有描述性,杜絕一切拼音、或拼音英文混雜的命名方式。字符集採用 UTF-8,請注意字符的轉換。所有數據表第一個欄位都是系統內部使用主鍵列,自增欄位,不可空,名稱為:id,確保不把此欄位暴露給最終用戶。除特別說明外,所有日期格式都採用date格式。除特別說明外,所有欄位默認都設置不充許為空, 需要設置默認值。所有普通縮影的命名都是表名加設置縮影的欄位名組合,例如用戶表User中name欄位設置普通所以,則縮影名稱命名方式為user_name_index。2.4 專門指導
對本系統的開發者、使用這、測試員和維護人員,提出以下參考意見:
在使用資料庫時,首先要參考上面的約定內容,做好軟體的安裝以及表格的建立。資料庫的輸入統一採用鍵盤。對於資料庫的使用權限,請參考本系統其他相關文檔。資料庫的後臺管理員沒用等級差異,可根據實際情況添加刪除管理員。2.5 支持軟體
作業系統: Linux / Windows
資料庫系統:MySQL
查詢瀏覽工具:Navicat Premium
命令行工具:mysql
注意:mysql 命令行環境下對中文支持不好,可能無法書寫帶有中文的 SQL 語句。
3. 結構設計需求
3.1 概念結構設計需求
概念資料庫的設計是進行具體資料庫設計的第一步,概念資料庫設計的好壞直接影響到邏輯資料庫的設計,影響到整個資料庫的好壞。
我們已經得到了系統的數據流程圖和數據字典,現在就是要結合數據規範化的理論,用一種模型將用戶的數據要求明確地表示出來。
概念資料庫的設計應該極易於轉換為邏輯資料庫模式,又容易被用戶所理解。概念資料庫設計中最主要的就是採用「實體-關係數據」模型來確定資料庫的結構。
數據是表達信息的一種重要的量化符號,是信息存在的一種重要形式。數據模型則是數據特徵的一種抽象。它描述的是數據的共性,而不是描述個別的數據。一般來說,數據模型包含兩方面內容:
數據的靜態特性:主要包括數據的基本結構、數據間的關係和數據之間的相互約束等特性。數據的動態特性:主要包括對數據進行操作的方法。在資料庫系統設計中,建立反映客觀信息的數據模型,是設計中最為重要的,也最基本的步驟之一。
數據模型是連接客觀信息世界和資料庫系統數據邏輯組織的橋梁,也是資料庫設計人員與用戶之間進行交流的共同基礎。概念資料庫中採用的實體-關係模型,與傳統的數據模型有所不同。「實體-關係」模型是面向現實世界,而不是面向實現方法的,它主要是用使用方便,因而在資料庫系統應用的設計中,得到了廣泛應用。「實體-關係」模型可以用來說明資料庫中實體的等級和屬性。
以下是實體-關係模型中的重要標識:
在資料庫中存在的實體;實體的屬性;實體之間的關係;3.2 邏輯結構設計需求
項目結構實體、實體屬性ER圖如下:
用戶權限實體、實體屬性ER圖如下:
進度計劃權限實體、實體屬性ER圖如下:
3.3 物理結構設計需求
1)定義資料庫、表及欄位的命名規範:
資料庫、表及欄位的命名要遵守可讀性原則。資料庫、表及欄位的命名要遵守表意性原則。資料庫、表及欄位的命名要遵守長名原則。2)選擇合適的存儲引擎:
3)為表中的欄位選擇合適的數據類型。
4)建立資料庫結構
4. 運用設計需求
4.1 表名的命名規範
表名以英文單詞、單詞縮寫、簡寫、下劃線構成,總長度要求小於30位。
4.2 表欄位的命名規範
欄位名以英文單詞、單詞縮寫、簡寫、下劃線構成,總長度要求不超過30位。欄位名以名詞或名詞短語,欄位採用單數形式。若表名由多個單詞組成,則取各個單詞的縮寫組成,單詞縮寫間使用下劃線作為分隔。若某個欄位是引用某個表的外鍵,則欄位名應儘量與源表的欄位名保持一致,一面混淆。
5. 安全保密設計需求
5.1 防止用戶直接操作資料庫的方法
通過把關鍵應用伺服器和資料庫伺服器進行分離,防止用戶對資料庫伺服器的直接操作,保證資料庫安全。
5.2 應用系統的用戶口令進行加密
在軟體系統中,對於數據的保護、業務操作的許可是通過識別用戶身份和權限來完成的。用戶口令相比較,相同的話系統將該用戶的操作權限分配給用戶,用戶再根據所分配的權限對系統進行操作。
由以上過程可知,用戶口令在傳輸過程中容易被竊取洩漏,另外如果資料庫被非法進入則其中保存的口令能夠被非法查看。因此,在傳輸過程中和資料庫中的口令記錄欄位不應使用明文傳遞和保存,應該在口令被傳遞前對其明文口令使用有效的主流技術,對傳輸數據進行加密部分描述的加密算法進行加密,在加密後傳輸到系統。系統將用戶提交的經過加密的口令數據保存的加密口令進行比較,相一致則進行後續操作。
通過以上措施和過程,證了加密口令即使被竊取仍無法得到原始口令。
5.3 對用戶進行權限識別和分級
在XXXXXX平臺中,不同的業務不同的人員處理,並且對於不同的操作人員其所能夠訪問的數據是不同的。
為了保障各功能模塊的授權使用和數據不被非法訪問,系統劃分了不同的操作權限和數據讀寫等級。系統管理人員可以方便、靈活的將這些權限登記分配給某一個或某一類用戶。
當用戶登陸時,系統在用戶身份驗證通過後取得用戶的權限,根據用戶權限顯示相應的功能菜單。當用戶對數據進行讀、寫、刪除後瀏覽操作時,系統判斷用戶對該數據的訪問權限確定是否允許該操作的執行。
本文由 @臥枕江山 原創發布於人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基於CC0協議