要點應(yīng)用程序知識點總結(jié)(共21頁)_第1頁
要點應(yīng)用程序知識點總結(jié)(共21頁)_第2頁
要點應(yīng)用程序知識點總結(jié)(共21頁)_第3頁
要點應(yīng)用程序知識點總結(jié)(共21頁)_第4頁
要點應(yīng)用程序知識點總結(jié)(共21頁)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上數(shù)據(jù)庫為收集到的數(shù)據(jù)提供結(jié)構(gòu)化機制。任何類型的數(shù)據(jù)庫應(yīng)包含以下特點:它不是將數(shù)據(jù)保存在網(wǎng)絡(luò)中的幾臺不同的服務(wù)器上,從而進行集中化管理。它的備份過程更加方便。它提供事務(wù)持續(xù)性。由于在一個中心位置保存和維護所有數(shù)據(jù),它可以實現(xiàn)更大的一致性。它提供恢復(fù)和容錯能力。它允許多個用戶共享數(shù)據(jù)。它提供安全控制,執(zhí)行完整性檢查、訪問控制和必要的機密性。數(shù)據(jù)庫模型:關(guān)系數(shù)據(jù)庫模型、層次數(shù)據(jù)庫模型、網(wǎng)絡(luò)數(shù)據(jù)庫模型、面向?qū)ο蟮臄?shù)據(jù)庫模型、對象-關(guān)系數(shù)據(jù)庫模型。關(guān)系數(shù)據(jù)庫模型(Relational Database Model)使用屬性(行)和元組(列)包含和組織信息。關(guān)系數(shù)據(jù)庫模型是今天應(yīng)

2、用最廣泛的數(shù)據(jù)庫組織形式,它以表(Table)的形式表示信息。一個關(guān)系數(shù)據(jù)庫由一些二維表構(gòu)成,每個表包含行、列和存儲單元(行與列的交叉位置)。每個存儲單元僅包含一個數(shù)據(jù)值,表示一個特定元組的特殊屬性值主鍵(Primary Key)是將記錄中的所有數(shù)據(jù)與一個唯一值聯(lián)系起來的字段。層次數(shù)據(jù)庫模型(Hierarchical Database Model)是另一種通用的數(shù)據(jù)庫模型。數(shù)據(jù)元素之間的結(jié)構(gòu)和關(guān)系與關(guān)系數(shù)據(jù)庫中不同。層次數(shù)據(jù)模型由記錄(Record)和字段(Field)構(gòu)成,它們之間是邏輯的樹形關(guān)系。在層次數(shù)據(jù)庫中,父節(jié)點可以有一個子節(jié)點或者多個子節(jié)點,也可以沒有子節(jié)點。樹形結(jié)構(gòu)包含許多分支(

3、Branch),分支又會有一定數(shù)量的葉子(Leaf),或者數(shù)據(jù)字段。這些數(shù)據(jù)有定義明確、預(yù)先指定的訪問路徑,但在建立關(guān)系方面不如關(guān)系數(shù)據(jù)庫靈活。層次數(shù)據(jù)庫通常用于映射一對多的數(shù)據(jù)關(guān)系。層次數(shù)據(jù)庫是人們最開始創(chuàng)建的數(shù)據(jù)庫模型,但它并不如關(guān)系數(shù)據(jù)庫應(yīng)用普遍。最常用的層次模型為輕量級目錄訪問協(xié)議(Lightweight Directory Access Protocol,LDAP)模型。這種模型也用在Windows注冊表結(jié)構(gòu)和不同的文件系統(tǒng)中,但最新的數(shù)據(jù)庫產(chǎn)品通常并不采用這種模型。網(wǎng)絡(luò)數(shù)據(jù)庫模型建立在層次數(shù)據(jù)庫模型之上。與層次數(shù)據(jù)庫模型不同,在網(wǎng)絡(luò)數(shù)據(jù)庫模型中,要找到一個數(shù)據(jù)元素,你不必知道如何從

4、一個分支進入另一個分支,然后從一個父節(jié)點進入一個子節(jié)點;網(wǎng)絡(luò)數(shù)據(jù)庫模型允許每個數(shù)據(jù)元素擁有多個父節(jié)點和子記錄。形成了一種類似網(wǎng)絡(luò)的冗余結(jié)構(gòu),而非嚴格的樹結(jié)構(gòu)(網(wǎng)絡(luò)數(shù)據(jù)庫這個名稱并不表示數(shù)據(jù)在網(wǎng)絡(luò)上或在分布在整個網(wǎng)絡(luò)中,它只是描述數(shù)據(jù)元素的關(guān)系)。網(wǎng)絡(luò)模型為了實現(xiàn)冗余而建立一種類似于網(wǎng)狀網(wǎng)絡(luò)拓撲的結(jié)構(gòu);另外,與層次模型相比,網(wǎng)絡(luò)模型檢索數(shù)據(jù)的速度更快。這種模型使用一種記錄(Record)和集合(Set)的結(jié)構(gòu)。一個記錄包含字段,它可以通過一個層次化的結(jié)構(gòu)列出。集合是定義不同記錄之間的一對多的關(guān)系。一個記錄可以是任何數(shù)量的集合的“所有者”,同一個“所有者”又可能是許多不同的集合。這種結(jié)構(gòu)可以為確立

5、不同數(shù)據(jù)元素之間的關(guān)系提供相當(dāng)大的靈活性。面向?qū)ο蟮臄?shù)據(jù)庫(Object-Oriented Database)可以管理多種不同類型的數(shù)據(jù)(如圖像、語音、文檔和視頻等)。在關(guān)系數(shù)據(jù)庫中,應(yīng)用程序必須使用它自己的過程從數(shù)據(jù)庫中獲得數(shù)據(jù),然后根據(jù)自己的需求處理這些數(shù)據(jù);而傳統(tǒng)的關(guān)系數(shù)據(jù)庫并不像面向?qū)ο蟮臄?shù)據(jù)庫那樣能提供訪問數(shù)據(jù)的過程。面向?qū)ο蟮臄?shù)據(jù)庫用類(Class)來定義數(shù)據(jù)屬性和數(shù)據(jù)訪問過程。建立這種模型的目的在于突破關(guān)系數(shù)據(jù)庫在保存和處理大量數(shù)據(jù)時遇到的限制。另外,面向?qū)ο蟮臄?shù)據(jù)庫并不依賴SQL進行交互,因此,并非SQL客戶端的應(yīng)用程序也可以使用這種類型的數(shù)據(jù)庫。ODBMS并不如關(guān)系數(shù)據(jù)庫那樣

6、用途廣泛,但它主要用于工程和生物學(xué)等領(lǐng)域,并滿足金融領(lǐng)域的某些需求。對象-關(guān)系數(shù)據(jù)庫或?qū)ο?關(guān)系數(shù)據(jù)庫管理系統(tǒng)(ORDBM)是一種含有一個以面向?qū)ο缶幊陶Z言編寫的軟件前端的關(guān)系數(shù)據(jù)庫。主要用于對保存的數(shù)據(jù)執(zhí)行不同的商業(yè)邏輯。開放數(shù)據(jù)庫連接(ODBC) 是一個應(yīng)用程序編程接口(API),允許應(yīng)用程序與本地或者遠程的數(shù)據(jù)庫通信。應(yīng)用程序向ODBC發(fā)出請求,ODBC把它翻譯成數(shù)據(jù)庫的命令。應(yīng)用程序可以不用關(guān)心數(shù)據(jù)庫的驅(qū)動(Driver),這些都由ODBC完成。是一種針對基本的數(shù)據(jù)訪問技術(shù)(如OLEDB)的高級數(shù)據(jù)訪問編程接口。是一組用于訪問數(shù)據(jù)來源,而不只是數(shù)據(jù)庫訪問的COM對象。它允許開發(fā)者編寫程

7、序來訪問數(shù)據(jù),而不用知道數(shù)據(jù)庫如何運行。在使用ADO時,SQL命令不需要訪問數(shù)據(jù)庫。對象鏈接和嵌入數(shù)據(jù)庫(OLEDB) 是運行在客戶端或者服務(wù)器上的中間件,把數(shù)據(jù)分成多個部分。它提供底層接口,允許訪問不同數(shù)據(jù)庫的數(shù)據(jù)以及不同格式的數(shù)據(jù)。以下是OLE DB的一些特點:l 替代ODBC,擴展它的功能以支持更廣泛的非關(guān)系數(shù)據(jù)庫,如對象數(shù)據(jù)庫和不一定執(zhí)行SQL的電子數(shù)據(jù)表。l 一組基于COM的接口,允許應(yīng)用程序以統(tǒng)一的方式訪問保存在不同數(shù)據(jù)源中的數(shù)據(jù)。l 由于OLE DB以COM為基礎(chǔ),因此它僅限于基于微軟Windows的客戶端工具使用(與OLE無關(guān))。l 開發(fā)者通過ActiveX數(shù)據(jù)對象(ADO)訪

8、問OLEDB服務(wù)。l 它允許不同的應(yīng)用程序訪問不同類型和來源的數(shù)據(jù)。ActiveX數(shù)據(jù)對象(ADO) 是一個API,允許應(yīng)用程序訪問后臺數(shù)據(jù)庫系統(tǒng)。它是一組ODBC接口的集合,用可訪問(Accessible)的對象來展示數(shù)據(jù)庫的功能,進而操作數(shù)據(jù)庫。ADO通過OLE DB接口與數(shù)據(jù)庫連接,可以用多種不同的腳本語言開發(fā),下面是他的特點:l 是一種針對基本的數(shù)據(jù)訪問技術(shù)(如OLEDB)的高級數(shù)據(jù)訪問編程接口。l 是一組用于訪問數(shù)據(jù)來源,而不只是數(shù)據(jù)庫訪問的COM對象。l 它允許開發(fā)者編寫程序來訪問數(shù)據(jù),而不用知道數(shù)據(jù)庫如何運行。l 在使用ADO時,SQL命令不需要訪問數(shù)據(jù)庫。Java數(shù)據(jù)庫連接性(

9、JDBC) 是一個API,允許Java應(yīng)用程序與數(shù)據(jù)庫通信。應(yīng)用程序可以直接或者通過ODBC逹接到數(shù)據(jù)庫。以下是JDBC的一些特點:l 是一個提供和ODBC相同功能的API,但專門為Java數(shù)據(jù)庫應(yīng)用程序設(shè)計。l 在Java平臺與一系列數(shù)據(jù)庫之間,使用獨立于數(shù)據(jù)庫的連接。l JDBC是一種使Java程序執(zhí)行SQL語句的Java API??蓴U展標(biāo)記語言(XML) 個數(shù)據(jù)結(jié)構(gòu)化的標(biāo)準(zhǔn),用于基于Web技術(shù)的程序的數(shù)據(jù)交換。XML是一種自定義的標(biāo)記語言,可以靈活地表現(xiàn)數(shù)據(jù)庫中的數(shù)據(jù)。Web瀏覽器可以解析XML的標(biāo)簽,向用戶說明開發(fā)者如何表示數(shù)據(jù)。數(shù)據(jù)定義語言(DDL) 定義數(shù)據(jù)庫的結(jié)構(gòu)(Structu

10、re)和數(shù)據(jù)架、構(gòu)(Schema)。結(jié)構(gòu)說明表的大小、鍵位置、視圖和數(shù)據(jù)元素關(guān)系。數(shù)據(jù)架構(gòu)描述數(shù)據(jù)庫存儲和操作的數(shù)據(jù)類型以及它們的屬性。DDL定義了數(shù)據(jù)庫的結(jié)構(gòu)、訪問操作和完整性過程。數(shù)據(jù)操作語言(DML) 包含了使用戶能查看、操縱和使用數(shù)據(jù)庫的所有命令(view、add、modify、sort 和 delete 命令)。査詢語言(QL) 使用戶可以對數(shù)據(jù)庫提出査詢請求。報表生成器(Report Generator) 提供用戶定義的數(shù)據(jù)過程輸出。數(shù)據(jù)字典是數(shù)據(jù)元素定義、架構(gòu)對象(Schema Object)和引用鍵(Reference Key)的集合。架構(gòu)對象可以包含表、視圖、索引、過程、函數(shù)

11、和觸發(fā)器。數(shù)據(jù)字典可以包含列的默認值、數(shù)據(jù)完整性信息、用戶姓名、用戶的權(quán)限和角色,以及審計信息。它是一種通過控制數(shù)據(jù)庫中有關(guān)數(shù)據(jù)的數(shù)據(jù)集中管理數(shù)據(jù)庫各個部分的工具,提供成組數(shù)據(jù)元素和數(shù)據(jù)庫之間的交叉引用關(guān)系。數(shù)據(jù)庫管理軟件創(chuàng)建并讀取數(shù)據(jù)字典,確認架構(gòu)對象存在,并檢查特定用戶的進程訪問權(quán)限。當(dāng)檢索數(shù)據(jù)庫時,用戶對數(shù)據(jù)的訪問被特定的視圖所限制。在數(shù)據(jù)字典中,定義了對每個用戶的視圖權(quán)限設(shè)置。當(dāng)需要增加新的記錄、表、視圖或者架構(gòu)時,應(yīng)該更新數(shù)據(jù)字典以反映這些變化。主鍵是一個行的唯一標(biāo)識符,它用于在關(guān)系數(shù)據(jù)庫中編寫索引。每個行必須擁有一個主鍵。當(dāng)用戶請求查詢一條數(shù)據(jù)記錄時,數(shù)據(jù)庫通過這個唯一的主鍵跟蹤這

12、條記錄。數(shù)據(jù)庫軟件執(zhí)行3種類型的完整性服務(wù):語義完整性(Semantic Integrity),參考完整性(Referential Integrity)和實體完整性(Entity Integrity)。語義完整性機制保證結(jié)構(gòu)化規(guī)則和語義規(guī)則得到遵守。這些規(guī)則與以下因素有關(guān):數(shù)據(jù)類型、邏輯值、唯一性約束以及可能負面影響到數(shù)據(jù)庫結(jié)構(gòu)的操作。如果所有外鍵參考現(xiàn)有的主鍵,則說明一個數(shù)據(jù)庫具有參考完整性。應(yīng)通過某種機制確保沒有外鍵引用不存在的記錄的主鍵,或者空值。實體完整性保證了元組由主鍵值唯一確定。為了保持實體完整性,每一個元組必須包含個主鍵。如果不包含主鍵,數(shù)據(jù)庫就不能引用此元組。一些可配置的操作被

13、用來幫助保護數(shù)據(jù)庫中數(shù)據(jù)的完整性,這些操作包括回滾、提交、保存點和檢查點(Checkpoint)。回滾(Rollback)指的是結(jié)束當(dāng)前事務(wù)并取消對數(shù)據(jù)庫做的更改。這些更改可能是數(shù)據(jù)本身發(fā)生的更改或者是架構(gòu)(Schema)修改。執(zhí)行回滾后,所做的變更被取消,數(shù)據(jù)庫恢復(fù)到先前的狀態(tài)?;貪L發(fā)生在數(shù)據(jù)庫出現(xiàn)意想不到的故障或者外部接口處理程序出現(xiàn)錯誤時。數(shù)據(jù)庫恢復(fù)到原始狀態(tài),而不是僅僅重傳或者更正部分數(shù)據(jù)。同時,數(shù)據(jù)庫會記錄錯誤和操作日志,以便日后審査。提交(Commit)是指結(jié)束事務(wù)操作,執(zhí)行用戶做出的數(shù)據(jù)變更。顧名思義,一旦提交命令執(zhí)行,用戶變更就得到確認,并反映到數(shù)據(jù)庫中。這些變更可以是數(shù)據(jù)或者

14、數(shù)據(jù)架構(gòu),通過提交操作,其他用戶或者應(yīng)用程序就能訪問到更新的數(shù)據(jù)。如果用戶數(shù)據(jù)變更的提交命令沒有正確執(zhí)行,那么數(shù)據(jù)庫會執(zhí)行回滾命令。這保證了不會由于發(fā)生部分變更而引起數(shù)據(jù)混亂。保存點(Savepoint)用來保證系統(tǒng)發(fā)生故障或者探測到錯誤時,數(shù)據(jù)庫可以回到系統(tǒng)故障之前的狀態(tài)。兩階段提交(TwoPhase Commit)機制是數(shù)據(jù)庫用來確保數(shù)據(jù)完整性的另一種控制。數(shù)據(jù)庫通常會執(zhí)行事務(wù)處理,表示用戶與數(shù)據(jù)庫同時進行交互。與事務(wù)處理相反的是批處理(Batch Processing),即數(shù)據(jù)庫變更的請求被放入一個隊列中并一次性激活而不是在用戶提交請求時立即激活。聚合是指這種情形:如果用戶沒有訪問特定信

15、息的權(quán)限,但是他有訪問這些信息的組成部分的權(quán)限。這樣,他就可以將每個組成部分組合起來,得到受限訪問的信息。用戶可以通過不同的途徑得到信息,再綜合得到本不具備明確訪問權(quán)限的信息。為了防止聚合,需要防止主體和任何主體的應(yīng)用程序和進程獲得整個數(shù)據(jù)集合的權(quán)限,包括數(shù)據(jù)集合的各個獨立組成部分??腕w可以進行分類并賦予較高的級別,存儲在容器中,防止低級別權(quán)限的主體訪問。對主體的查詢,可以進行跟蹤,并實施基于上下文的分類。這將記錄主體對客體的訪問歷史,并在聚合攻擊發(fā)生時限制訪問企圖。另一個安全問題是推理(Inference),和聚合很相似。推理指的是主體通過他可以訪問的信息推理出受限訪問的信息。當(dāng)安全級別較低

16、的數(shù)據(jù)可以描述出較髙級別的數(shù)據(jù)時,就會發(fā)生推理攻擊。例如,假設(shè)一個職員不應(yīng)該知道軍隊在某個國家的行動計劃,但是由于他可以訪問到食品需求表格和帳篷位置的文檔,那么他就可以根據(jù)食品和帳篷運送的目的地推算出軍隊正在向特定地區(qū)移動. 一個辦法是防止主體或者與主體有關(guān)的應(yīng)用程序和進程間接得到能推論的信息。在數(shù)據(jù)庫開發(fā)過程中,可以實施基于內(nèi)容或者基于情形的訪問控制來解決這個問題?;趦?nèi)容的訪問控制(Content-Dependent Access Control)是根據(jù)數(shù)據(jù)的敏感程度實施訪問控制。數(shù)據(jù)越敏感,能夠訪問數(shù)據(jù)的個體就越少?;谏舷挛牡脑L問控制是指軟件根據(jù)請求的狀態(tài)和次序,“了解”應(yīng)允許哪些行為

17、。這表示,用戶必須追蹤用戶以前的訪問嘗試,并知道什么順序的訪問步驟得到許可。基于內(nèi)容的訪問控制就像是這樣:“Julio有權(quán)訪問文件A嗎? ”系統(tǒng)在ACL上檢查文件A并返回一個響應(yīng):“Julio能夠文件這個文件,但只能讀取它?!被谏舷挛牡脑L問控制則更像是這樣:“Julio有權(quán)訪問文件A嗎? ”系統(tǒng)然后檢查幾個數(shù)據(jù):Julio做了哪些其他訪問嘗試?這個請求是否沒有按照安全請求的順序?這個請求是否在系統(tǒng)允許的訪問時間內(nèi)(上午8時至下午5時)提出?如果所有這些問題的答案都與一組事先設(shè)置的參數(shù)相符,則Julio能夠訪問文件A。否則,他就不能訪問文件A。防止推理攻擊的常見措施有單元抑制(Cell Sup

18、pression)、采用數(shù)據(jù)庫分隔,或者噪聲和擾動。單元抑制是一種用來隱藏或者不顯示特定存儲單元內(nèi)容的技術(shù),防止這些信息被用來進行推理攻擊。分隔數(shù)據(jù)庫(Partitioning a Database)包括將數(shù)據(jù)庫分成不同的部分,使未授權(quán)用戶很難訪問到可以用于推理攻擊的相關(guān)數(shù)據(jù)。噪聲和擾動(Noise and Perturbation)是一種在數(shù)據(jù)庫中插入偽造信息的技術(shù),目的是誤導(dǎo)和迷惑攻擊者,使得真實的推理攻擊不能成功。多數(shù)情況下,數(shù)據(jù)庫在規(guī)劃和開發(fā)過程中并沒有將安全集成進來。安全需要事后考慮,作為替代,往往需要開發(fā)一個數(shù)據(jù)庫可信前端(Front End)。這種方法限制了安全粒度及可以發(fā)揮作用

19、的安全功能。數(shù)據(jù)庫可以允許一個組或者一個特定用戶訪問特定信息,而限制另一個組訪問。這種功能通過數(shù)據(jù)庫視圖(Database View)實現(xiàn)。多實例(Polyinstantiation)建立了相同主鍵的多元組和由安全級別定義的實例之間的關(guān)系。當(dāng)一條信息插入到數(shù)據(jù)庫中時,需要限制低級別用戶訪問這條信息。通過建立另一組數(shù)據(jù)迷惑低級別用戶,使用戶認為他得到的信息是真實的,而不是僅僅限制信息的訪問。聯(lián)機事務(wù)處理(Online Transaction Processing, OLTP)用于多數(shù)據(jù)庫集群提供容錯和高性能的情況。OLTP提供一種監(jiān)測問題的機制,并在問題發(fā)生時立即進行適當(dāng)處理。OLTP的主要作用

20、是確保事務(wù)正確發(fā)生或根本不發(fā)生。通常,事務(wù)處理表示一些不可分割的操作獨立發(fā)生。如果其中一個操作失敗,則剩下的操作需要回滾,以確保只向數(shù)據(jù)庫中輸入準(zhǔn)確的數(shù)據(jù)。處理事務(wù)的一組系統(tǒng)由一個軟件OLTP產(chǎn)品管理和監(jiān)控,以確保一切順利平穩(wěn)地進行。OLTP可以對入站請求做負載均衡。OLTP要實時記錄所出現(xiàn)的事務(wù)(Transaction)。在一個分布式環(huán)境下,這個過程同時修改多個數(shù)據(jù)庫。這個復(fù)雜的舉動會引起許多關(guān)于完整性的威脅,所以數(shù)據(jù)庫軟件應(yīng)該具有一種叫做ACID測試的特性。原子性(Atomicity) 把事務(wù)分成多個工作單元,確保所有的修改都生效或者沒有一個修改生效。數(shù)據(jù)庫接受所有修改或者不接受任何修改。

21、致性(Consistency) 事務(wù)必須遵守每個數(shù)據(jù)庫的完整性策略,保證在不同數(shù)據(jù)庫中的數(shù)據(jù)的一致性。隔離性(Isolation) 事務(wù)完全分開進行,事務(wù)之間互不影響。在事務(wù)完成之前,所有的修改都沒有生效。持久性(Durability)旦事務(wù)在所有的系統(tǒng)上都被認為是正確的,它就要提交,數(shù)據(jù)庫不能拒絕它。為了信息檢索和數(shù)據(jù)分析,將多個數(shù)據(jù)庫或數(shù)據(jù)源聯(lián)合成一個大的數(shù)據(jù)庫。從各個不同的數(shù)據(jù)庫中提取數(shù)據(jù)傳輸?shù)揭粋€中央數(shù)據(jù)存儲區(qū),這個存儲區(qū)就叫做數(shù)據(jù)倉庫(Data Warehousing)。這些數(shù)據(jù)被標(biāo)準(zhǔn)化,也就是說刪除冗余的信息,并以數(shù)據(jù)倉庫期望的方式對其進行格式化。這使得用戶只需查詢一個實體,而不用

22、訪問和查詢不同的數(shù)據(jù)庫。數(shù)據(jù)倉庫提取數(shù)據(jù)的數(shù)據(jù)源是用于操作。建立數(shù)據(jù)倉庫是為了進行分析,從而做出商業(yè)預(yù)測決策,確定營銷效率、商業(yè)趨勢甚至是欺詐行為。相關(guān)數(shù)據(jù)會先進行總結(jié)和相互關(guān)聯(lián),然后再呈現(xiàn)給用戶。用戶得到的并不是最初的每一項數(shù)據(jù),而是最能適合他的需求的更加精簡的數(shù)據(jù)。盡管數(shù)據(jù)倉庫提供更方便的訪問控制,但是由于它的集中性,數(shù)據(jù)倉庫需要更嚴格的安全。如果入侵者進入數(shù)據(jù)倉庫,那么他就可以立即訪問整個組織的數(shù)據(jù)信息了。數(shù)據(jù)挖掘(Data Mining)是對數(shù)據(jù)倉庫中的數(shù)據(jù)進行進一步處理以得到更有用信息的過程。數(shù)據(jù)挖掘工具被用來發(fā)現(xiàn)數(shù)據(jù)的聯(lián)系和相關(guān)性來生成元數(shù)據(jù)(Metadata)。元數(shù)據(jù)可以揭示單個

23、信息子集中隱含的相關(guān)性,可以用來發(fā)現(xiàn)不明顯的異常模式。數(shù)據(jù)挖掘可以檢查復(fù)雜的數(shù)據(jù),通過模糊邏輯(Fuzzy Logic)、集合理論(SetTheory)、專家系統(tǒng)(Expert System)技術(shù)來簡化查詢,執(zhí)行數(shù)學(xué)函數(shù),查找到數(shù)據(jù)中的隱含模式。元數(shù)據(jù)比它的原始數(shù)據(jù)來源更有價值。數(shù)據(jù)倉庫和數(shù)據(jù)挖掘的目標(biāo)是提取信息,以了解與組織活動和趨勢有關(guān)的知識,數(shù)據(jù)挖掘是一個分析數(shù)據(jù)倉庫的過程,它在不知道數(shù)據(jù)所包含意義的情況下,用一些工具去分析數(shù)據(jù)的趨勢、相關(guān)性、關(guān)聯(lián)和異常。元數(shù)據(jù)(Metadata)就是把數(shù)據(jù)放在數(shù)據(jù)庫中,然后用工具挖掘出來的結(jié)果。數(shù)據(jù)進入數(shù)據(jù)庫,而元數(shù)據(jù)從數(shù)據(jù)庫中出來。數(shù)據(jù)挖掘也稱作數(shù)據(jù)

24、庫知識發(fā)現(xiàn)(Knowledge Discovery In Database, KDD),它組合了發(fā)現(xiàn)有效及有用模式的各種技巧。下面是KDD系統(tǒng)用于發(fā)現(xiàn)這些模式的3種方法:l 分類根據(jù)共同的相似性來組合數(shù)據(jù)。l 可能性確定數(shù)據(jù)之間的相互依賴關(guān)系,并將可能性應(yīng)用到它們的關(guān)系中。l 統(tǒng)計確定數(shù)據(jù)元素之間的關(guān)系,并使用規(guī)則發(fā)現(xiàn)。系統(tǒng)或者產(chǎn)品通常會遵循如下生命周期階段:項目啟動(Project Initiation )。功能設(shè)計分析和規(guī)劃(Functional Design and Planning)。系統(tǒng)詳細設(shè)計(System Design Specifications)。軟件開發(fā)(Software

25、Development)。.安裝/實施(Installation/Implementation)。運行/維護(Operational/Maintenance)。處理(Disposal)。安全計劃(Security Plan)應(yīng)該在項目開發(fā)之初就制定,并且集成到功能計劃中,以保證安全不被忽視。第一個安全計劃應(yīng)該是廣泛的,涉及各個方面,并且引用其他參考文檔以得到更詳細的信息。這些參考文檔包括計算機標(biāo)準(zhǔn)(如RFC文檔、IEEE標(biāo)準(zhǔn)和一些最佳實踐)、先前項目文檔、安全策略、認證聲明、事件處理計劃以及國家或國際安全指南(如橘皮書、紅皮書、通用準(zhǔn)則等)。這些文檔將使安全計劃更易讀易用。安全計劃應(yīng)該有自己的

26、生命周期。安全計劃和項目管理活動需要進行審計,以保證安全相關(guān)的決定可被理解。項目啟動項目組的每一個人都應(yīng)當(dāng)充分理解項目需求和項目使用的范圍。這個階段包括對市場上已有產(chǎn)品的評估,明確現(xiàn)有廠商沒有滿足的用戶需求。需求也可能是來自現(xiàn)有客戶和潛在客戶的對特定產(chǎn)品的直接要求。這個建議書將被提交到高級管理層,來決定是否啟動項目,或者還需要向他們提供進一步的信息。在這個階段中將明確用戶需求,確認產(chǎn)品的基本安全目標(biāo)。本階段必須明確產(chǎn)品是否進行敏感信息的處理,定義這些信息的敏感度級別(Level of Sensitive)。在風(fēng)險管理過程建立之后,應(yīng)該設(shè)計一個基本安全框架。風(fēng)險管理將在整個項目的生命期內(nèi)持續(xù)進行

27、。風(fēng)險管理風(fēng)險管理階段最重要的一個方面就是明確要提問的正確問題。風(fēng)險分析進行風(fēng)險分析的目的是鑒別相關(guān)風(fēng)險和潛在的危險后果。項目組需要分析與項目失敗相關(guān)的風(fēng)險,這與安全風(fēng)險分析有很大的不同。安全風(fēng)險包括其他不同的威脅和問題。功能設(shè)計分析和規(guī)劃在這個階段,需要制定項目計劃來定義安全行為,制定安全檢查點(Security Checkpoint)來保證安全控制措施(Security Control)的質(zhì)量控制,以及識別配置過程和變更控制過程。在這個階段,進行資源確定、形成測試計劃和評估準(zhǔn)則來保證安全控制措施的正確測試。正式的功能基線的形成意味著以一種正式的方式,通常是文檔化,勾勒出產(chǎn)品的期望輪廓。測試

28、計劃在每個階段需要被更新,以保證所有問題都被正確測試。在生命周期中可能需要不止一次風(fēng)險分析。因此在編碼開始之前,需要有明確的目標(biāo)和方向,系統(tǒng)詳細設(shè)計信息模型(Informational Model) 規(guī)定被處理信息的類型以及如何進行處理。功能模型(Functional Model) 概括應(yīng)用程序需要執(zhí)行的任務(wù)和功能。行為模型(Behavioral Model)說明應(yīng)用程序在特定事務(wù)發(fā)生過程中和發(fā)生之后的狀態(tài)。這個階段需要確認任務(wù)分解結(jié)構(gòu)(Work Breakdown Structure, WBS),包括開發(fā)階段和實施階段。WBS包含測試、開發(fā)、分段實施、集成測試和產(chǎn)品發(fā)布等各個階段的時限和詳細

29、活動。系統(tǒng)設(shè)計是用來描述用戶需求和系統(tǒng)內(nèi)部行為的工具,它通過映射這兩個方面來描繪系統(tǒng)是如何通過內(nèi)部行為完成用戶需求的。在本階段的開始,需要考慮產(chǎn)品的更多細節(jié)以及產(chǎn)品的工作環(huán)境。功能性需求在最后確定。本階段解決了提供這種功能所需的工作機制,決定如何進行編碼、測試和實施。產(chǎn)品的模塊化和重用(Modularity and Reusability)問題,或者說產(chǎn)品組件問題,需要在這個階段解決。提供關(guān)鍵安全功能的代碼設(shè)計應(yīng)該盡量簡潔,以便能夠以盡可能明確的方式發(fā)現(xiàn)錯誤。在早期階段,需要考慮產(chǎn)品和組件的可測試性,而不是在后期考慮。在這個階段,需要進一步仔細考慮在項目啟動階段提出的問題,保證詳細設(shè)計中解決了

30、每一個問題。在設(shè)計階段所作的決定,對開發(fā)階段而言是關(guān)鍵的。設(shè)計是用戶需求轉(zhuǎn)化為軟件的唯途徑;這樣,軟件設(shè)計就是整個產(chǎn)品開發(fā)的基礎(chǔ)。軟件開發(fā)在這個階段,程序員和開發(fā)者都需要深度參與。在這個階段,程序員應(yīng)當(dāng)持一種不允許產(chǎn)生軟件缺陷的態(tài)度進行工作。正式或者非正式的測試應(yīng)該盡快開始。單元測試(Unit Testing)可以在開發(fā)早期開始。不同的環(huán)境類型(開發(fā)、測試和生產(chǎn))應(yīng)當(dāng)敢正確分離,功能和操作不應(yīng)該重疊。安全測試應(yīng)當(dāng)針對項目早期識別出的風(fēng)險。在這個階段通常需要進行安全攻擊和滲透測試來發(fā)現(xiàn)任何遺漏的軟件缺陷,功能、性能和抗?jié)B透性被進一步評價。產(chǎn)品應(yīng)該在不同的環(huán)境中測試不同的應(yīng)用、不同的配置和不同的硬

31、件平臺。安裝/實施實施階段著重于如何使用和操作開發(fā)好的系統(tǒng)或者應(yīng)用程序。在這個階段,用戶已經(jīng)購買了開發(fā)好的產(chǎn)品,并安裝到工作環(huán)境中。產(chǎn)品需要配置到一個正確的保護等級,通過執(zhí)行功能和性能測試并進行結(jié)果分析,驗證產(chǎn)品是否滿足用戶的安全需求。系統(tǒng)配置應(yīng)當(dāng)被記錄到文檔中。要開發(fā)出用戶指南和運行維護手冊,以使用戶知道如何正確使用系統(tǒng),使技術(shù)人員知道在需要時如何正確配置產(chǎn)品。需要監(jiān)視安全活動,以確保系統(tǒng)或應(yīng)用以服務(wù)水平協(xié)議(Service Level Agreement, SLA)保證的方式運行。認可(Accreditation)應(yīng)當(dāng)在開發(fā)之后,系統(tǒng)應(yīng)用開始運行之前進行。這個過程需要遵循認證過程,正式或者

32、非正式地測試所有的安全特征,以確認產(chǎn)品是否完成所需的安全功能。認證(Certmcation)是一個檢查和評估安全控制的過程,通常由外部獨立的機構(gòu)執(zhí)行。認可是管理層對系統(tǒng)的正式接受,也是明確對風(fēng)險的接受。旦確認新系統(tǒng)提供的安全功能并且理解和接受殘余風(fēng)險,管理層應(yīng)當(dāng)發(fā)布一個正式的認可聲明。應(yīng)當(dāng)打開審計功能并監(jiān)視事故恢復(fù)計劃(Contingency Recovery Planning),開發(fā)響應(yīng)程序并進行測試,以保證系統(tǒng)和產(chǎn)品在系統(tǒng)故障和緊急情況下能夠正確響應(yīng)。運行/維護運行保證(Operational Assurance)通過以下活動執(zhí)行:進行弱點測試、系統(tǒng)行為監(jiān)控、事件審計。測試類型單元測試(U

33、nit esting) 體組件位于一個受控的環(huán)境中,程序員在這里確認數(shù)據(jù)結(jié)構(gòu)、邏輯和邊界條件。集成測試(Integration Testing) 驗組件是否按設(shè)計規(guī)范中規(guī)定的那樣協(xié)同工作。驗收測試(Acceptance Testing) 保代碼滿足客戶的需求。回歸測試(Regression Testing) 進行系統(tǒng)變更后重新進行測試,以確保功能性、性能和保護級別。垃圾收集(Garbage Collection)是操作系統(tǒng)自動執(zhí)行內(nèi)存管理任務(wù)的一種方式。事后回顧事后回顧應(yīng)該是有組織的活動,有人主持會議和進行記錄,但對每一個成員應(yīng)該有寬松和諧的氣氛,以使他們更好地表達觀點和想法。重要的一點是,會

34、議不應(yīng)該成為指責(zé)和抱怨的場所。項目是一個不斷學(xué)習(xí)的過程,其職責(zé)是以最短的時間和最低的成本制造出最好的產(chǎn)品。理解這兩點的益處,使事后回顧成為每個項目的一部分,這對管理層來說是有益的。最成功的情況是能夠簡化項目過程和項目管理,使之成為一個能夠達到期望質(zhì)量等級的可重復(fù)過程,然后繼續(xù)考慮如何改善項目和進一步積累。瀑布(waterfall)使用分離的開發(fā)階段的經(jīng)典方法,在進入項目的下一個階段之前,要求正式的評審和文檔記錄。螺旋模型(spiral model)建立于瀑布方法之上的一種方法,著重強調(diào)在開發(fā)周期不同階段的風(fēng)險分析、原型化和模擬。這種方法定期重訪前面的階段,以更新和驗證設(shè)計需求。結(jié)構(gòu)化編程開發(fā)(

35、structured programming development)這種編程方法涉及使用邏輯塊以實現(xiàn)應(yīng)用過程化編程的系統(tǒng)設(shè)計。結(jié)構(gòu)化程序布局最小化轉(zhuǎn)移控制語句(如GOTO)的隨意使用,并強調(diào)單個進出點。這種層次化方式使得稍后能夠更容易地理解和更改程序。結(jié)構(gòu)化編程鼓勵模塊重用,從而優(yōu)化內(nèi)存利用。迭代開發(fā)(iterative development)這種方法通過循環(huán)方式進行軟件開發(fā)。與傳統(tǒng)模型不同的是,迭代開發(fā)關(guān)注通過持續(xù)評估項目的當(dāng)前狀態(tài)來籌劃項目里程碑,而評估借助基于資源、時段和執(zhí)行計劃的初始目標(biāo)。迭代開發(fā)提供了一種評估項目整體狀態(tài)的動態(tài)方法,并且允許通過修正來改善項目的效率。改進原型模型(

36、Modified Prototype Model, MPM)作為在Web應(yīng)用程序開發(fā)中所面對的挑戰(zhàn)而專門開發(fā)的一種方法,改進原型模型允許開發(fā)人員即時將客戶需求轉(zhuǎn)換為可顯示的產(chǎn)品或原型。改進原型通常用于開發(fā)人員和客戶對產(chǎn)品的最終特性沒有把握的情況。使用可改進的原型使得最終產(chǎn)品能夠成為更清晰的系統(tǒng)規(guī)范。探索模型(exploratory model)這種方法用于項目目標(biāo)未被清楚定義的場合。探索模型關(guān)注的不是顯式任務(wù),而是依賴于一組可能融入最終產(chǎn)品工作的隱式規(guī)范。測試是探索開發(fā)的一個重要部分,以便確定項目的當(dāng)前階段是否遵從可能的實現(xiàn)場景。聯(lián)合分析開發(fā)(Joint Analysis Developmen

37、t, JAD)這種方法在一個面向工作間的環(huán)境中釆用工作組的方式開發(fā)應(yīng)用程序。快速應(yīng)用開發(fā)(Rapid Application Development, RAD) 一種判斷用戶需求并快速開發(fā)系統(tǒng)以滿足即時需要的方法。重用模型(reuse model)這種模型通過使用日益增多的模型來進行軟件開發(fā)。通過逐漸更改原有的原型以滿足客戶的需求,可重用程序不斷演變。因為重用模型不需要從頭構(gòu)建程序,所以顯著減少了開發(fā)成本和時間。凈室(cleanroom)通過遵循結(jié)構(gòu)化且規(guī)范的開發(fā)和測試方法來力圖防止錯誤和問題的解決途徑。這種模型用于高質(zhì)量和嚴要求的應(yīng)用程序(通過嚴格的認證過程)。組件型開發(fā)(component

38、-based development)這種模型將獨立、標(biāo)準(zhǔn)的模塊裝配在可服務(wù)程序內(nèi)。每個標(biāo)準(zhǔn)模塊都由一個功能算法或指令集組成,并且被提供一個與其他模塊通信的接口。經(jīng)常用在面向?qū)ο蟮木幊讨械摹皩ο蟆笔沁@些模塊的一個常見示例。組件型開發(fā)在程序中添加了可重用性和可插入的功能性,它廣泛用在現(xiàn)代編程中,以擴大程序的連貫性,并大大降低了軟件維護成本。極限編程(extreme programming)這種方法通常在要求快速適應(yīng)以改變客戶需求的場景中實現(xiàn)。極限編程強調(diào)客戶的反饋,從而評估項目結(jié)果和分析可能需要進行一步注意的項目作用域。極限編程的編碼原則舍棄了傳統(tǒng)的、為代碼重用所執(zhí)行的長期規(guī)劃,并致力于創(chuàng)建為同

39、期工作而優(yōu)化的簡單代碼。極限編程承認客戶需求在整個項目生命周期中可能顯著變化的事實,并且使用開發(fā)進程來調(diào)整這些變化。CASE工具的目標(biāo)就是在軟件開發(fā)過程中支持一個或多個軟件工程任務(wù)和活動,它們使用特定的工具在開發(fā)和詳細分析中應(yīng)用工程原理。很多情況下,有必要根據(jù)己搜集的軟件產(chǎn)品需求開發(fā)一個模型供用戶和開發(fā)人員使用。這個模型叫做原型(Prototype),它可以向用戶說明開發(fā)小組的前進方向以及對用戶需求的解釋。原型使用戶可以了解開發(fā)方向,得到開發(fā)完成后產(chǎn)品的外觀概念,向用戶進一步解釋需求方面的問題和疑惑。在開發(fā)過程中,原型還可以使測試工作更早地進行,以及早發(fā)現(xiàn)和解決問題或錯誤。有的項目龐大,可能需

40、要劃分產(chǎn)品,以便每一部分都可以檢查或建立其原型。如果沒有正確處理,開發(fā)和生產(chǎn)過程中的變更可能造成大量混亂。發(fā)生變更有幾種原因。在開發(fā)階段,用戶可能會改變需求,增加、刪除或者修改某些特定的功能。在生產(chǎn)階段,變更可能會由環(huán)境改變造成,如對產(chǎn)品或系統(tǒng)的新的需求、新發(fā)布的補丁程序或者升級程序。這些變化應(yīng)當(dāng)被嚴格控制,以保證每個變更都被批準(zhǔn)、正確合并以及不會對原來的功能造成負面影響。配置管理(Configuration Management)是控制產(chǎn)品生命周期和記錄時必要的變更控制活動的過程。通常開發(fā)經(jīng)理必須通報項目經(jīng)理,如果引入變更會需要多少額外的工作量,應(yīng)該采取哪些步驟保證變更不會影響產(chǎn)品中的其他組件。此外,安全不能遭到破壞,變更必須由管理層批準(zhǔn)。當(dāng)一個程序員改變源代碼時,這種改變應(yīng)該在代碼的測試版本上進行。對源代碼的變更絕對不能在代碼的生產(chǎn)版本上進行。發(fā)生變更的代碼,經(jīng)過測試才能進入代碼庫中。生產(chǎn)代碼只能從代碼庫中得到,而不能從程序員或者測試環(huán)境中得來。能力成熟度模型(Capability Maturity Model,CMM)描述軟件開發(fā)流程的基本規(guī)程、原則和實踐。該模型幫助軟件公司改善軟件開發(fā)過程,將一些“突發(fā)奇想”的行為變成一個有規(guī)律、可重復(fù)的步驟,從而提高軟件質(zhì)量,縮短開發(fā)周期,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論