自己電腦上做網(wǎng)站南寧百度快速優(yōu)化
DBAS功能概要設(shè)計
參照b站【計算機三級數(shù)據(jù)庫技術(shù)】
DBAS功能設(shè)計包括應(yīng)用軟件中的數(shù)據(jù)庫事務(wù)設(shè)計和應(yīng)用程序設(shè)計。
功能設(shè)計過程一般被劃分為總體設(shè)計、概要設(shè)計和詳細設(shè)計。而具體到數(shù)據(jù)庫事務(wù)設(shè)計部分,又可分成事務(wù)概要設(shè)計和事務(wù)詳細設(shè)計。完成系統(tǒng)設(shè)計工作之后,就進入系統(tǒng)實現(xiàn)與部署階段。
1. 軟件體系結(jié)構(gòu)與設(shè)計過程
?軟件體系結(jié)構(gòu)
又稱軟件架構(gòu),軟件體系結(jié)構(gòu)= {構(gòu)件,連接件,約束}
軟件體系結(jié)構(gòu)是軟件系統(tǒng)中最本質(zhì)的東西。良好的體系結(jié)構(gòu)必須是普適、高效和穩(wěn)定的。
軟件體系結(jié)構(gòu)有多種風格和類型,如分層體系結(jié)構(gòu)、模型-視圖控制器(MVC )體系結(jié)構(gòu)、客戶端/服務(wù)器體系結(jié)構(gòu)
2. 軟件設(shè)計過程
?軟件設(shè)計過程
-
軟件開發(fā)由設(shè)計、實現(xiàn)、測試三個環(huán)節(jié)組成,設(shè)計又包含概要設(shè)計和詳細設(shè)計。
-
概要設(shè)計的任務(wù)是進行軟件總體結(jié)構(gòu)設(shè)計,可采用層次結(jié)構(gòu)圖建立軟件總體結(jié)構(gòu)圖。詳細設(shè)計的任務(wù)是進行數(shù)據(jù)設(shè)計、過程設(shè)計及人機界面設(shè)計。
-
設(shè)計原則:模塊化、信息隱藏、抽象與逐步求精。
-
軟件設(shè)計可選用結(jié)構(gòu)化設(shè)計方法、面向?qū)ο笤O(shè)計方法或面向數(shù)據(jù)設(shè)計方法等。
1. DBAS體系結(jié)構(gòu)設(shè)計
?將系統(tǒng)從功能、層次/結(jié)構(gòu)、地理分布等角度進行分解,劃分為多個子系統(tǒng),定義各子系統(tǒng)功能;
設(shè)計系統(tǒng)的全局控制,明確各子系統(tǒng)間的交互和接口關(guān)系。
?兩種常見的DBAS體系結(jié)構(gòu):
- 客戶/服務(wù)器體系結(jié)構(gòu)(C/S)
- 瀏覽器/服務(wù)器體系結(jié)構(gòu)(B/S)
DBAS總體設(shè)計的任務(wù)是確定系統(tǒng)總體框架,主要內(nèi)容包括:
?DBAS體系結(jié)構(gòu)設(shè)計;
?軟件體系結(jié)構(gòu)設(shè)計;
?軟件硬件選型與配置設(shè)計;
?業(yè)務(wù)規(guī)則初步設(shè)計。
2. 軟件體系結(jié)構(gòu)設(shè)計
?DBAS軟件包括操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、開發(fā)環(huán)境、中間件、應(yīng)用軟件(數(shù)據(jù)庫事務(wù)和應(yīng)用程序)。
?從需求分析出發(fā)分解成各子系統(tǒng),分配相應(yīng)功能,定義相互間交互機制,完成子系統(tǒng)結(jié)構(gòu)設(shè)計,將各子系統(tǒng)從功能上分成數(shù)據(jù)庫事務(wù)模塊(事務(wù)自身處理邏輯)與粒度大的應(yīng)用程序模塊,確定全局控制和調(diào)用關(guān)系,可用模塊結(jié)構(gòu)圖(模塊+調(diào)用+數(shù)據(jù)+控制+轉(zhuǎn)接)來表示系統(tǒng)總體結(jié)構(gòu)和分層模塊結(jié)構(gòu)。
3. 軟件硬件選型與配置設(shè)計
?規(guī)劃分析階段提出系統(tǒng)功能、性能及實現(xiàn)的約束對軟硬倫了評估和選擇建議;需求對系統(tǒng)功能性能提出了具體要求。為保證DBAS功能性能順利實現(xiàn),總體設(shè)計階段需要對軟硬件設(shè)備做出合理選擇,并進行初步配置設(shè)計。
?軟硬件選型涉及的內(nèi)容:
網(wǎng)絡(luò)及設(shè)備選型;數(shù)據(jù)存儲及備份方案:服務(wù)器選型;終端軟件環(huán)境;軟件開發(fā)平臺和語言、工具;系統(tǒng)中間件及第三方軟件選型。
4. 業(yè)務(wù)規(guī)則初步設(shè)計
?任務(wù):從系統(tǒng)的角度,規(guī)劃DBAS的業(yè)務(wù)流程,使之符合客戶的實際業(yè)務(wù)需要。
?DBAS的各項業(yè)務(wù)活動具有邏輯上的先后關(guān)系,可將它們表示成一個操作序列,并用業(yè)務(wù)流程圖表示。
?在總體設(shè)計結(jié)果基礎(chǔ)上,將DBAS應(yīng)用軟件進一步細化為模塊/子模塊,組成應(yīng)用軟件的系統(tǒng)-子系統(tǒng)模塊-子模塊層次結(jié)構(gòu),并從結(jié)構(gòu)、行為、數(shù)據(jù)三方面進行設(shè)計。
?從功能角度,DBAS系統(tǒng)通常劃分為個層次實現(xiàn)
- 表示層
- 業(yè)務(wù)邏輯層
- 數(shù)據(jù)訪問層
- 數(shù)據(jù)持久層
1. 表示層概要設(shè)計
?人機界面設(shè)計,影響系統(tǒng)易用性。目前第四代是WIMP (窗口、圖標、菜單、指示器)與Web技術(shù)、多任務(wù)處理技術(shù)相結(jié)合。
?設(shè)計原則:‘用戶自主控制’;反饋及時上下文感知;容錯與錯誤恢復(fù);界面標準常規(guī);輸入靈活
界面簡潔交互及時……
2. 業(yè)務(wù)邏輯層概要設(shè)計
?設(shè)計原則
高內(nèi)聚低(松)糅合,即構(gòu)件單一原則;構(gòu)件獨立功能;接口簡單明確;構(gòu)件間關(guān)系簡單,過于復(fù)雜,就細化,分解。
?設(shè)計內(nèi)容
結(jié)構(gòu),行為,數(shù)據(jù),接口,故障處理,安全設(shè)計,系統(tǒng)維護和保障等
3. 數(shù)據(jù)訪問層概要設(shè)計
?任務(wù):針對DBAS的數(shù)據(jù)處理需求設(shè)計用于操作數(shù)據(jù)庫的各類事務(wù)
?事務(wù)概要設(shè)計核心在于辨識和設(shè)計事務(wù)自身處理邏輯,注重流程,不考慮與平臺相關(guān)、具體操作方法和事務(wù)實現(xiàn)機制。
?-個完整的事務(wù)概要設(shè)計包括事務(wù)名稱、訪問的關(guān)系表及其數(shù)據(jù)項、事務(wù)邏輯(事務(wù)描述)、事務(wù)用戶(使用、啟動、調(diào)用該事務(wù)的軟件模塊和系統(tǒng))。
補充:
- 事務(wù):事務(wù)( Transaction )是訪問并可能更新數(shù)據(jù)庫中各種數(shù)據(jù)項的一個程序執(zhí)行單元(unit)。
- 事務(wù)的特性:原子性、一致性、隔離性、持續(xù)性。稱為ACID
- 原子性( atomicity )。一個不可分割的工作單位。
- 一致性( consistency )。從一個一致性狀態(tài)變到另一個一致性狀態(tài)
- 隔離性( isolation)。執(zhí)行不能被其他事務(wù)干擾。
- 持久性( durability )。永久性(permanence),指一個數(shù)據(jù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的。
4. 數(shù)據(jù)持久層概要設(shè)計
?屬于數(shù)據(jù)組織與存儲方面的設(shè)計內(nèi)容,
3. 表示層詳細設(shè)計
人機界面采用原型迭代法合適,三個步驟:
- ( 1 )初步設(shè)計:設(shè)計人機交互命令系統(tǒng)并優(yōu)化。(總體設(shè)計)
- ( 2 )用戶界面細節(jié)設(shè)計。如組織形式、風格、彩色(概要設(shè)計 )
- ( 3 )原型設(shè)計與改進(詳細設(shè)計)
4. 業(yè)務(wù)邏輯層詳細設(shè)計
設(shè)計各模塊內(nèi)部處理流程和算法、具體數(shù)據(jù)結(jié)構(gòu)、詳細接口等。
1. 數(shù)據(jù)安全設(shè)計
五個方面:
- 安全性保護:防止非法用戶對數(shù)據(jù)庫的非法使用,避免數(shù)據(jù)泄露、篡改或破壞
- 完整性保護:保證數(shù)據(jù)源的正確性、一致性和相容性。
- 并發(fā)性控制:保證多個用戶能共享數(shù)據(jù)庫,并維護數(shù)據(jù)一致性。
- 數(shù)據(jù)備份與恢復(fù):系統(tǒng)失效后的數(shù)據(jù)恢復(fù),配合定時備份,不丟失數(shù)據(jù)。
- 數(shù)據(jù)加密傳輸:將一些高級的敏感數(shù)據(jù)通過一定的加密算法加密傳輸。
( 1 )數(shù)據(jù)庫的安全性保護
主要保護方式:
- 用戶身份鑒別
Windows身份驗證、SQL身份驗證。 - 權(quán)限控制
對后臺數(shù)據(jù)庫時不同用戶對數(shù)據(jù)的不同存取需求設(shè)置不同的權(quán)限;對前臺程序是了每個合法用戶設(shè)定權(quán)限等級,外部用戶設(shè)置有限查詢功能 - 視圖機制
通過視圖機制把保密數(shù)據(jù)對無權(quán)用戶隱藏
( 2 )數(shù)據(jù)庫的完整性保護
數(shù)據(jù)庫的完整性指數(shù)據(jù)庫中數(shù)據(jù)的正確性、一致性及相容性
?方法:設(shè)置完整性檢查
即對數(shù)據(jù)設(shè)置些約束條件(如實體完整性、參考完整性,用戶自定義完整性)
?完整性約束條件作用對象:列(類型、范圍、精度、排序),元組(記錄中各屬性之間的聯(lián)系約束)、關(guān)系(若干記錄集合與集合之間的聯(lián)系)三種級別。
( 3 )數(shù)據(jù)庫的并發(fā)性控制
?并發(fā)訪問( Concurrent Access ) :事務(wù)在時間上重疊執(zhí)行,對多用戶并發(fā)存取同一數(shù)據(jù)的操作可能導(dǎo)致數(shù)據(jù)不一致破壞事務(wù)的隔離性,因此DBMS必須提供并發(fā)控制機制,并發(fā)訪問機制是衡量一個DBMS性能的重要標志之一。 實現(xiàn)數(shù)據(jù)中并發(fā)機制的常用方法是封鎖技術(shù)。
?所謂封鎖,是指事務(wù)T在對某個數(shù)據(jù)對象(例如表、記錄等)操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖,加鎖后對該數(shù)據(jù)對象有了一定的控制,在事務(wù)T釋放它的鎖之前,事務(wù)不能更新此數(shù)據(jù)對象。
?基本鎖類型
- 排它鎖( eXclusive lock,簡記為X鎖) ,寫鎖,若事務(wù)對數(shù)據(jù)對象A加上X鎖,則只允許T讀取和修改A ,其它任何事務(wù)不能再對A加任何類型的鎖,直到T釋放A上的鎖.排它鎖保證了其它事務(wù)在T釋放A.上的鎖之前不能再讀取和修改A。
- 共享鎖( Share lock ,簡記為S鎖),讀鎖,若事務(wù)T對象A加上S鎖,則其它事務(wù)只能再對A加S鎖,而不能加X鎖直到T釋放A上的S鎖。共享鎖保證了其它事務(wù)可以保證其他事務(wù)可以讀A,但在T釋放A上的S鎖之前不能對A做任何修改。
?避免死鎖
- 死鎖是兩個或兩個以上的事務(wù)之間的循環(huán)等待。
- 設(shè)計避免死鎖的原則:
- 按照同一順序訪問資源。(如第一 個事務(wù)提交或回滾后第二個事務(wù)進行)
- 避免事務(wù)交互性
- 采用小事務(wù)模式,縮短長度和占用時間。
- 盡量使用記錄級別的所(行鎖),少用表
- 使用綁定連接,同一用戶打開的兩個或多1以互相合作。
( 4 )數(shù)據(jù)庫的數(shù)據(jù)備份與恢復(fù)
?數(shù)據(jù)庫恢復(fù)的基本原理:
利用存儲在系統(tǒng)其他存儲器上的冗余數(shù)據(jù)(即數(shù)據(jù)備份)來重建。
?數(shù)據(jù)庫備份與恢復(fù)策略:
- 雙機熱備(基于Active/Standby方式的服務(wù)器)
- 熱數(shù)據(jù)轉(zhuǎn)儲(也稱為數(shù)據(jù)備份)
- 數(shù)據(jù)加密存儲(針對高敏感數(shù)據(jù))
(5)數(shù)據(jù)加密傳輸
?常見的數(shù)據(jù)加密傳輸手段
- 數(shù)字安全證書
- 對稱密鑰加密
- 數(shù)字簽名
- 數(shù)字信封
2.環(huán)境安全設(shè)計
?漏洞與補丁:定期查找漏洞更新補丁
?計算機病毒防護
?網(wǎng)絡(luò)環(huán)境安全:防火墻;入侵檢測系統(tǒng);網(wǎng)絡(luò)隔離(邏輯隔離與物理隔離)
?物理環(huán)境安全:如防盜設(shè)施;UPS;濕溫度報警器
3.制度安全設(shè)計
管理層面安全措施
DBAS實施階段主要包括以下工作:
1.創(chuàng)建數(shù)據(jù)庫
考慮因素:初始空間大小;數(shù)據(jù)庫增量大小;訪問性能(并發(fā)數(shù),訪問頻率)
2.數(shù)據(jù)裝載
步驟:篩選數(shù)據(jù)-轉(zhuǎn)換數(shù)據(jù)格式-輸入數(shù)據(jù)-校驗
3.編寫與調(diào)試應(yīng)用程序
4.數(shù)據(jù)庫系統(tǒng)試運行(功能測試與性能測試)