軟件的分層設計
在實際項目開發中,一個人不可能進行全部項目編寫。
在數據庫使用上往往會存在這樣的尷尬:
1.需要根據業務的需求設計范式進行數據表的設計
2.需要考慮到操作中所可能產生的性能的問題,eg:多表查詢
3.傳遞SQL數據庫可以保證數據完整,但不能保證性能,為了方便數據的展示可以使用NO-SQL數據庫。(利用JSON(BSON)處理),以NO-SQL數據庫為例:MongoDB(數據顯示)、Redis(緩存)。NO-SQL大部分都是在Linux環境下發展的。
整個軟件開發項目最重要的環節是業務層。
什么叫業務層:
所謂的業務分析就是將操作功能進行拆分為一個個原始的數據庫中的原子性操作
現在有以下幾個名詞:
1.數據層(Data Access Object、DAO、數據訪問層、持久層),使用JDBC技術進行數據庫的原子性操作,其中為了考慮到安全性的問題都會采用PreparedStatement接口完成處理;
2. 業務層(習慣稱為服務層):要執行多個數據層的操作。在前端操作調用的時候需要執行數據庫的若干項操作,每一項的操作都應該有對應的訪問提供,以方便業務層進行整合。
實例分析
下面以雇員操作為例做一個分析,使用emp表(empno、ename、job、hiredate、sal、comm)有以下功能:
為公司增加新的雇員信息
1.【業務層】可以增加新的雇員
- [數據層] 由於雇員編號屬於用戶處理流程,所以應該首先判斷該編號是否存在
- [數據層] 如果不存在,進行數據增加操作
2.【業務層】可以修改某一位雇員信息
- [數據層] 直接執行UPDATE語句,如果沒有修改數據,返回的更新行數為0
3.【業務層】可以進行雇員刪除操作,有可能刪除一位或多位
- [數據層] 直接執行DELETE,可以使用IN操作符刪除多個雇員信息
4.【業務層】可以顯示具體的一位雇員的詳細信息
- [數據層] 利用SELECT限定查詢,根據雇員編號查找即可
5.【業務層】可以進行全體雇員信息展示
- [數據層] 直接利用SELECT查詢全部數據
6.【業務層】可以進行數據的模糊查詢分頁顯示,但要求可以同時返回符合於模糊查詢的數據量
- [數據層] 模糊查詢需要設置一個查詢的字段以及關鍵字,分頁查詢則需要依靠ROWNUM完成
- [數據層] 由於是統計全部內容,可以直接使用COUNT()函數處理
不同層之間的設計以接口為主