版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
計算機導論第7章軟件開發(fā)知識目錄CONTENTS03數(shù)據(jù)庫的發(fā)展01計算機軟件概述02數(shù)據(jù)庫原理及應用0405軟件工程軟件開發(fā)過程計算機軟件概述系統(tǒng)軟件;應用軟件/01計算機軟件的作用只有硬件的計算機是不能完成任何工作的,在硬件的基礎上,配置合適的軟件,才能充分發(fā)揮計算機的整體功能。
硬件是計算機的軀體,軟件是計算機的靈魂。
計算機專業(yè)人員的一項重要工作是開發(fā)軟件,開發(fā)軟件(特別是中大規(guī)模軟件)以程序設計能力為基礎,以軟件工程知識作指導,以數(shù)據(jù)庫知識為支撐。程序是完成一定功能的指令或語句的序列。軟件=程序+文檔。系統(tǒng)軟件系統(tǒng)軟件靠近硬件層,其功能主要是管理計算機軟硬件資源,與具體應用領域無關,為應用軟件提供一些基本的、共同的功能支持。系統(tǒng)軟件并不能解決具體應用問題,但解決具體問題的應用軟件要在系統(tǒng)軟件的支持下才能開發(fā)和運行。系統(tǒng)軟件主要包括操作系統(tǒng)、語言翻譯程序和數(shù)據(jù)庫管理系統(tǒng)等。系統(tǒng)軟件操作系統(tǒng)能否充分發(fā)揮計算機硬件的性能,操作系統(tǒng)起著非常重要的作用;使用者能否方便地操作使用計算機,操作系統(tǒng)同樣發(fā)揮著重要作用。從微型機到超級計算機都必須在其硬件平臺上加載相應的操作系統(tǒng)之后,才能構成一個完整的、功能強大的計算機系統(tǒng)。也只有在操作系統(tǒng)的支持下,其他系統(tǒng)軟件和各種應用軟件才能開發(fā)和運行。操作系統(tǒng)(OS)可定義為:有效地組織和管理計算機系統(tǒng)中的硬件和軟件資源,合理地組織計算機工作流程,控制程序的執(zhí)行,并向用戶提供多種服務功能及友好界面,方便用戶使用計算機的系統(tǒng)軟件。目前,常用的操作系統(tǒng)是Windows、macOS、UNIX和Linux等。系統(tǒng)軟件語言翻譯程序程序設計語言大體經歷了機器語言、匯編語言和高級語言三個階段。機器語言的優(yōu)點:機器語言程序能夠直接在計算機上執(zhí)行。匯編語言和高級語言的出現(xiàn),給程序設計帶來了很大的方便。但是,用匯編語言或高級語言編寫出的源程序,計算機并不能直接執(zhí)行,需要翻譯機器語言程序才能執(zhí)行。人們開發(fā)了相應的翻譯程序,用于匯編語言源程序的翻譯程序叫匯編程序,用于高級語言源程序的翻譯程序叫解釋程序或編譯程序。各種匯編程序和編譯程序/解釋程序都屬于系統(tǒng)軟件。目前常用的高級語言有Python、C、C++、C#和Java等。系統(tǒng)軟件數(shù)據(jù)庫管理系統(tǒng)計算機應用面最廣的一個領域是信息管理,信息管理的關鍵技術是數(shù)據(jù)庫技術,把信息存入數(shù)據(jù)庫中并編寫相應的數(shù)據(jù)庫應用程序是開發(fā)信息管理系統(tǒng)的主要工作。如果沒有數(shù)據(jù)庫管理系統(tǒng)提供支持環(huán)境,數(shù)據(jù)庫的建立及數(shù)據(jù)庫應用程序的開發(fā)是很困難的,甚至無法實現(xiàn)。數(shù)據(jù)庫管理系統(tǒng)是一個幫助人們建立數(shù)據(jù)庫和開發(fā)數(shù)據(jù)庫應用程序的系統(tǒng)軟件,有了這個系統(tǒng)軟件的支持,建立數(shù)據(jù)庫和開發(fā)數(shù)據(jù)庫應用程序就容易了。目前常用的數(shù)據(jù)庫管理系統(tǒng)有Oracle公司的Oracle、MySQL,微軟公司的SQLServer、Access,IBM公司的DB2等。應用軟件應用軟件用于解決實際問題,包括通用應用軟件和專用應用軟件通用應用軟件:可以為多個行業(yè)和領域的人們使用,完成各自的任務,如辦公軟件中的Excel就是一個通用的應用軟件。專用應用軟件:只供某個行業(yè)或某些人使用,如火車票售票軟件只能用于火車站、售票點或線上售賣火車票。應用軟件包括軟件開發(fā)環(huán)境、辦公軟件、輔助設計軟件、多媒體制作軟件、網頁制作軟件、網絡通信軟件、工具軟件和實際應用軟件等。數(shù)據(jù)庫原理及應用關系數(shù)據(jù)庫;關系數(shù)據(jù)庫語言;常用關系數(shù)據(jù)庫管理系統(tǒng);數(shù)據(jù)庫應用系統(tǒng)開發(fā)工具;數(shù)據(jù)庫設計/02關系數(shù)據(jù)庫數(shù)據(jù)庫相關概念數(shù)據(jù)庫(DB)是長期存儲在計算機內的、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲,具有較低的數(shù)據(jù)冗余度、較高的數(shù)據(jù)獨立性,并且可以為多個用戶共享。數(shù)據(jù)庫管理系統(tǒng)(DBMS)是位于用戶和操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,主要完成數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)庫的運行管理和數(shù)據(jù)庫的維護等功能。數(shù)據(jù)庫應用系統(tǒng)是以數(shù)據(jù)庫為核心的,在數(shù)據(jù)庫管理系統(tǒng)的支持下完成一定的數(shù)據(jù)存儲和管理功能的應用軟件系統(tǒng),數(shù)據(jù)庫應用系統(tǒng)也稱為數(shù)據(jù)庫系統(tǒng)(DBS)。關系數(shù)據(jù)庫應用示例:針對大學生選課信息的存儲和管理,設計數(shù)據(jù)庫中的表。按傳統(tǒng)方式,我們可以把學生的選課信息放入下表所示的表格中。關系數(shù)據(jù)庫應用示例:針對大學生選課信息的存儲和管理,設計數(shù)據(jù)庫中的表。傳統(tǒng)方式的不足如果按此表格結構直接對應成數(shù)據(jù)庫中的表,數(shù)據(jù)的冗余(數(shù)據(jù)重復)比較大。每個學生的姓名、年齡、專業(yè),每門課程的課程名、學分都會在表中多次重復存放。數(shù)據(jù)冗余不僅浪費存儲空間,更大的問題是容易造成數(shù)據(jù)的不一致。例如,某個同學如果轉專業(yè)了,那么對應的表中數(shù)據(jù)應該修改,如果多次存儲,就可能只修改部分值,導致該同學在表中的專業(yè)有兩個不同的值,這會給以后信息查詢等留下隱患。關系數(shù)據(jù)庫應用示例:針對大學生選課信息的存儲和管理,設計數(shù)據(jù)庫中的表。遵循數(shù)據(jù)庫理論,可以把上面的一個表設計成表7.2~7.4的形式。關系數(shù)據(jù)庫應用示例:針對大學生選課信息的存儲和管理,設計數(shù)據(jù)庫中的表。遵循數(shù)據(jù)庫理論,可以把上面的一個表設計成表7.2~7.4的形式。關系數(shù)據(jù)庫應用示例:針對大學生選課信息的存儲和管理,設計數(shù)據(jù)庫中的表。這3個表格可以對應成數(shù)據(jù)庫中的如下3個關系表,帶下畫線的屬性為主碼,主碼能唯一確定某個實體,如學號能唯一確定某個學生。
學生(學號,姓名,年齡,系別)課程(課程號,課程名,學分)選課(學號,課程號,成績)這樣存儲學生、課程和學生選課信息,基本去除了數(shù)據(jù)冗余。如果某個學生轉專業(yè)了,只在學生表中修改一個記錄即可。關系數(shù)據(jù)庫語言(SQL)SQL語言的特點非過程化的語言:只要提出“做什么”,而不必說明“如何做”,既減輕了用戶的負擔,又提高了數(shù)據(jù)的獨立性與安全性。功能一體化的語言:基于同樣的語言風格/語法格式可以完成數(shù)據(jù)定義、數(shù)據(jù)操作等功能。一種語法兩種使用方式:既可以被用戶以一種人機交互的方式,在終端鍵盤上直接輸入SQL命令來對數(shù)據(jù)庫進行操作;又可以作為一種嵌入式語言,被程序設計人員在開發(fā)應用程序時直接嵌入到某種高級語言(如Python語言)中使用。關系數(shù)據(jù)庫語言(SQL)SQL語言的特點面向集合操作的語言:非關系數(shù)據(jù)模型采用面向記錄的操作方式,操作對象是單一的某條記錄,而SQL允許用戶在較高層的數(shù)據(jù)結構上工作,操作對象可以是若干記錄的集合,簡稱記錄集。所有SQL語句都接受記錄集作為輸入,返回記錄集作為輸出,其面向集合的特性還允許一條SQL語句的結果作為另一條SQL語句的輸入。語法簡潔、易學易用的標準語言:SQL不僅功能強大,而且語法接近英語口語,符合人類的思維習慣,因此較為容易學習和掌握。同時又由于它是一種通用的標準語言,使用SQL編寫的程序也具有良好的移植性。關系數(shù)據(jù)庫語言(SQL)SQL語言應用示例:基于學生、課程、選課3個表,查詢選修了“計算機導論”課程的學生的姓名,可以寫出如下查詢語句:SELECT學生.姓名FROM學生,選課,課程WHERE學生.學號=選課.學號AND選課.課程號=課程.課程號AND課程.課程名="計算機導論";該語句值說明了查找什么,在哪幾個表中去查,并沒有說明如何去查。常用關系數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)的類型數(shù)據(jù)庫領域有4種主要的數(shù)據(jù)模型,即層次模型、網狀模型、關系模型和面向對象模型。數(shù)據(jù)模型是組織數(shù)據(jù)的方式。層次數(shù)據(jù)庫、網狀數(shù)據(jù)庫已過時,面向對象數(shù)據(jù)庫沒有研發(fā)成功,現(xiàn)在用的是關系數(shù)據(jù)庫。近年來,計算機科學技術不斷發(fā)展,關系數(shù)據(jù)庫管理系統(tǒng)也不斷發(fā)展進化,AB公司(2009年被Oracle公司收購)的MySQL、Microsoft公司的Access等是小型關系數(shù)據(jù)庫管理系統(tǒng)的代表,Oracle公司的Oracle、Microsoft公司的SQLServer、IBM公司的DB2等是功能強大的大型關系數(shù)據(jù)庫管理系統(tǒng)的代表。數(shù)據(jù)庫應用系統(tǒng)開發(fā)工具早期的數(shù)據(jù)庫應用由于是比較簡單的單機系統(tǒng),數(shù)據(jù)庫管理系統(tǒng)選用dBASE、FoxBASE、FoxPro、VisualFoxPro等,這些系統(tǒng)自身帶有開發(fā)環(huán)境,所以這時的數(shù)據(jù)庫應用系統(tǒng)開發(fā)可以不用選擇開發(fā)工具。隨著計算機技術(特別是網絡技術)和應用需求的發(fā)展,數(shù)據(jù)庫應用模式已逐步發(fā)展到C/S模式和B/S模式,數(shù)據(jù)庫管理系統(tǒng)需要選用功能強大的Oracle、SQLServer、DB2等,這時選用合適的開發(fā)工具成為提高數(shù)據(jù)庫應用系統(tǒng)開發(fā)效率和質量的一個重要因素。目前,可以選用Python作為數(shù)據(jù)庫應用系統(tǒng)的開發(fā)工具,在標準庫或第三方庫的支持下,使用Python語言開發(fā)數(shù)據(jù)庫應用系統(tǒng)簡單、快捷。數(shù)據(jù)庫設計需求分析總體工作:對組織的工作現(xiàn)狀和用戶需求進行調查、分析,明確用戶的信息需求和系統(tǒng)功能,提出擬建系統(tǒng)的邏輯方案。這里的重點是對建立數(shù)據(jù)庫的必要性及可行性進行分析和研究,確定數(shù)據(jù)庫在整個數(shù)據(jù)庫應用系統(tǒng)中的地位,確定出各個數(shù)據(jù)庫之間的關系。具體工作:選用哪種數(shù)據(jù)庫管理系統(tǒng)(DBMS)軟件及相應的軟硬件、網絡環(huán)境配置;確定數(shù)據(jù)庫系統(tǒng)的功能;確定建立一個還是幾個數(shù)據(jù)庫;確定數(shù)據(jù)庫中表的個數(shù)及結構。數(shù)據(jù)庫設計概念結構設計將需求分析階段得到的用戶需求抽象為反映現(xiàn)實世界信息需求的數(shù)據(jù)庫概念結構(概念模式)就是概念結構設計。概念結構從現(xiàn)實世界抽象而來,又是各種數(shù)據(jù)模型的共同基礎,實際上是現(xiàn)實世界與邏輯結構(機器世界)之間的一個過渡。描述概念模型的有效工具是實體-聯(lián)系圖(E-R圖)。概念結構設計包括三個步驟:設計局部E-R圖、集成局部E-R圖為全局E-R圖、優(yōu)化全局E-R圖。數(shù)據(jù)庫設計邏輯結構設計邏輯結構設計是把概念結構設計階段的E-R圖轉換成與具體的DBMS產品所支持的數(shù)據(jù)模型相一致的邏輯結構。邏輯結構設計包括兩個步驟:將E-R圖轉換為關系模型、對關系模型進行優(yōu)化。優(yōu)化工作要用到函數(shù)依賴、關系范式等知識;得到優(yōu)化后的關系數(shù)據(jù)模型,就可以向特定的關系數(shù)據(jù)庫管理系統(tǒng)轉換,實際上是將一般的關系模型轉換成符合某一具體的能被計算機接受的關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)模型,如Oracle、SQLServer、DB2等。數(shù)據(jù)庫設計物理結構設計數(shù)據(jù)庫在實際的物理設備上的存儲結構和存取方法稱為數(shù)據(jù)庫的物理結構。為設計好的邏輯模型選擇一個最符合應用要求的物理結構就是數(shù)據(jù)庫的物理結構設計。物理結構設計的主要內容包括三項:確定數(shù)據(jù)的存儲安排、存取路徑的選擇與調整和確定系統(tǒng)配置。RDBMS產品一般都提供有一些系統(tǒng)配置變量、存儲分配參數(shù)(同時使用數(shù)據(jù)庫的用戶數(shù)、同時打開的數(shù)據(jù)庫對象數(shù)、緩沖區(qū)的長度等),系統(tǒng)為這些變量賦予了合適的默認值,在進行數(shù)據(jù)庫的物理設計時可以直接使用這些值,也可以根據(jù)實際應用環(huán)境重新設置這些值。數(shù)據(jù)庫設計數(shù)據(jù)庫實施數(shù)據(jù)庫實施階段的工作就是根據(jù)邏輯設計和物理設計的結果,在選用的RDBMS上建立起數(shù)據(jù)庫。具體講有如下3項工作:建立數(shù)據(jù)庫的結構:以邏輯設計和物理設計的結果為依據(jù),用RDBMS的數(shù)據(jù)定義語言書寫數(shù)據(jù)庫結構定義源程序并執(zhí)行程序。載入實驗數(shù)據(jù)并測試應用程序:實驗數(shù)據(jù)可以是部分實際數(shù)據(jù),也可以是模擬數(shù)據(jù),應使實驗數(shù)據(jù)盡可能覆蓋各種可能的實際情況,通過運行應用程序,測試系統(tǒng)的性能指標。如不符合,是程序的問題修改程序,是數(shù)據(jù)庫的問題,則修改數(shù)據(jù)庫設計。載入全部實際數(shù)據(jù)并試運行應用程序,發(fā)現(xiàn)問題做類似處理。數(shù)據(jù)庫設計數(shù)據(jù)庫運行與維護數(shù)據(jù)庫經過試運行后就可以投入實際運行了。但是,由于應用環(huán)境在不斷變化,對數(shù)據(jù)庫設計進行評價、調整、修改等維護工作是一個長期的任務,也是設計工作的繼續(xù)和提高。在數(shù)據(jù)庫運行階段,對數(shù)據(jù)庫經常性的維護工作主要由數(shù)據(jù)庫管理員完成,主要工作包括數(shù)據(jù)庫的轉儲和恢復、數(shù)據(jù)庫的安全性和完整性控制、數(shù)據(jù)庫性能的監(jiān)督分析和優(yōu)化、數(shù)據(jù)庫的重組織與重構造等。數(shù)據(jù)庫設計總結
數(shù)據(jù)庫設計以數(shù)據(jù)庫為主線說明數(shù)據(jù)庫應用系統(tǒng)的開發(fā)過程,分析、設計、實施、運行維護分布在了這個主線上。后面的軟件工程著眼于一般軟件系統(tǒng)的設計開發(fā),數(shù)據(jù)庫設計是其中的一個環(huán)節(jié)。
當開發(fā)實際項目時,以數(shù)據(jù)庫為主的數(shù)據(jù)庫應用系統(tǒng)開發(fā)可以遵循數(shù)據(jù)庫設計過程,不以數(shù)據(jù)庫為主的一般軟件系統(tǒng)的開發(fā)可以遵循軟件工程的思想。數(shù)據(jù)庫的發(fā)展分布式數(shù)據(jù)庫;大數(shù)據(jù);區(qū)塊鏈;數(shù)據(jù)倉庫;數(shù)據(jù)挖掘/03分布式數(shù)據(jù)庫分布式數(shù)據(jù)庫概念分布式數(shù)據(jù)庫(DBS)是指分布在一個計算機網絡上的多個邏輯相關的數(shù)據(jù)庫的集合。即分布式數(shù)據(jù)庫是一組結構化的數(shù)據(jù)集合,邏輯上屬于同一個系統(tǒng),物理上分布在計算機網絡中各個不同的場地上。從物理位置上看,數(shù)據(jù)分別存放在地理位置不同的數(shù)據(jù)庫中,但從用戶使用的角度看,數(shù)據(jù)如同存放在一個統(tǒng)一的數(shù)據(jù)庫中一樣。分布式數(shù)據(jù)庫系統(tǒng)(D-DBS)由分布式數(shù)據(jù)庫和分布式數(shù)據(jù)庫管理系統(tǒng)組成。分布式數(shù)據(jù)庫管理系統(tǒng)(D-DBMS)是分布式數(shù)據(jù)庫系統(tǒng)的一組軟件,負責對分布式數(shù)據(jù)庫中的數(shù)據(jù)進行管理和操作。分布式數(shù)據(jù)庫分布式數(shù)據(jù)庫管理系統(tǒng)的組成本地數(shù)據(jù)庫管理系統(tǒng):每個結點上都有一個局部數(shù)據(jù)庫管理系統(tǒng)。全局數(shù)據(jù)庫管理系統(tǒng):把物理上分散的局部數(shù)據(jù)庫整合成邏輯上統(tǒng)一的全局數(shù)據(jù)庫。全局數(shù)據(jù)字典:支持全局數(shù)據(jù)庫管理系統(tǒng)對各局部數(shù)據(jù)庫的操作。通信管理:在分布式數(shù)據(jù)庫各結點之間傳送消息和數(shù)據(jù),完成通信功能。大數(shù)據(jù)大數(shù)據(jù)的定義大數(shù)據(jù)(bigdata)是指規(guī)模大到目前的軟件工具難以有效收集、存儲、管理和分析的數(shù)據(jù)。也指來自于多維多源的數(shù)據(jù)。大數(shù)據(jù)的特點數(shù)據(jù)量巨大:一般都在太字節(jié)(TB)以上;類型多樣:包括數(shù)值、文本、圖像、視頻、音頻等各種類型的結構化和非結構化數(shù)據(jù);處理速度快:對大數(shù)據(jù)的分析處理速度要快,分析結果要能及時用于支持決策,也有人解釋為數(shù)據(jù)的增長速度快;價值大:原始數(shù)據(jù)價值密度低,但經分析處理后價值巨大。大數(shù)據(jù)大數(shù)據(jù)應用示例一美國華盛頓大學計算機專家奧倫·埃齊奧尼開發(fā)了一個機票價格預測系統(tǒng)Farecast,幫助人們在合適的時間以最低的價格購買機票到2012年為止,F(xiàn)arecast系統(tǒng)用了將近10萬億條價格記錄來幫助預測美國國內航班的票價。Farecast票價預測的準確度高達75%,使用Farecast
票價預測工具購買機票的旅客,平均每張機票可節(jié)省50美元。這是一個比較有代表性的大數(shù)據(jù)應用實例,少量的價格記錄(如1萬條)可能沒有多大利用價值,但是通過對大數(shù)據(jù)(近10萬億條價格記錄)的分析,就能產生可觀的經濟價值。大數(shù)據(jù)大數(shù)據(jù)應用示例二支付寶到2020年時用戶量已經突破10億。隨著網上購物、網上支付的快速發(fā)展,特別是在“雙11”“618”等促銷活動時段,遇到大量的用戶在短時間內集中購買、集中支付的“潮汐式”“爆發(fā)式”對數(shù)據(jù)庫訪問的沖擊,傳統(tǒng)的集中式數(shù)據(jù)庫很難應對。螞蟻集團完全自主研發(fā)了國產原生分布式數(shù)據(jù)庫OceanBase,支付寶從2014年開始逐漸遷移到OceanBase分布式數(shù)據(jù)庫上,到2017年所有核心系統(tǒng)的全部流量都由OceanBase支撐。OceanBase分布式數(shù)據(jù)庫采用“三地五中心”城市級容災新標準,數(shù)據(jù)量達到PB級,2020年5月,OceanBase
的在線事務處理性能達到7.07億tpmC(每分鐘系統(tǒng)處理的新訂單個數(shù))。區(qū)塊鏈區(qū)塊鏈的定義區(qū)塊鏈(blockchain)是分布式數(shù)據(jù)存儲、點對點傳輸、共識機制、加密算法等計算機技術的新型應用模式。區(qū)塊鏈的技術創(chuàng)新1-分布式賬本:就是交易記賬由分布在不同地方的多個結點共同完成,而且每一個結點都記錄的是完整的賬目,因此它們都可以參與監(jiān)督交易合法性,同時也可以共同為其作證。沒有任何一個結點可以單獨記錄賬本數(shù)據(jù),從而避免了單一記賬人被控制或者被賄賂而記假賬的可能性。也由于記賬結點足夠多,理論上講除非所有的結點被破壞,否則賬目就不會丟失,從而保證了賬目數(shù)據(jù)的安全性。區(qū)塊鏈區(qū)塊鏈的技術創(chuàng)新2-非對稱加密和授權技術:存儲在區(qū)塊鏈上的交易信息是公開的,但是賬戶身份信息是高度加密的,只有在數(shù)據(jù)擁有者授權的情況下才能訪問到,從而保證了數(shù)據(jù)的安全和個人的隱私。3-共識機制:就是所有記賬結點之間如何達成共識,去認定一個記錄的有效性,這既是認定的手段,也是防止篡改的手段。人們提出了多種不同的共識機制,適用于不同的應用場景,在效率和安全性之間取得平衡。4-智能合約:基于區(qū)塊鏈上可信的不可篡改的數(shù)據(jù),可以自動執(zhí)行一些預先定義好的規(guī)則和條款。以保險為例,如果說每個人的信息(包括醫(yī)療信息和風險發(fā)生的信息)都是真實可信的,那就很容易在一些標準化的保險產品中,進行自動理賠。數(shù)據(jù)倉庫數(shù)據(jù)倉庫的定義數(shù)據(jù)倉庫(datawarehouse,DW)是一個面向主題的、集成的、時變的、不可更新的數(shù)據(jù)集合,支持管理部門的決策過程。數(shù)據(jù)倉庫的特點1-面向主題的:數(shù)據(jù)倉庫圍繞一些主題,如客戶、供應商、產品或銷售來組織。數(shù)據(jù)倉庫關注決策者的數(shù)據(jù)建模與分析,而不是組織機構的日常操作。因此,數(shù)據(jù)倉庫排除與決策無關的數(shù)據(jù),只提供與特定主題相關的數(shù)據(jù)。2-集成的:數(shù)據(jù)倉庫中的數(shù)據(jù)往往來自于多個異構的數(shù)據(jù)源,是對這些異構數(shù)據(jù)的集成,在數(shù)據(jù)集成過程中要保證數(shù)據(jù)在命名約定、編碼結構、屬性度量等方面的一致性。數(shù)據(jù)倉庫數(shù)據(jù)倉庫的特點3-時變的:在數(shù)據(jù)庫中一般只存放當前數(shù)據(jù),而數(shù)據(jù)倉庫中一般要存放一個歷史階段的數(shù)據(jù),如存放5年的數(shù)據(jù),數(shù)據(jù)倉庫中的數(shù)據(jù)與時間因素有關。4-不可更新的:數(shù)據(jù)倉庫中的數(shù)據(jù)一般來源于數(shù)據(jù)庫或其他數(shù)據(jù)源,但與這些數(shù)據(jù)源分開存放數(shù)據(jù)。數(shù)據(jù)庫中的數(shù)據(jù)經常需要進行插入、修改和刪除等更新操作,而數(shù)據(jù)倉庫中的數(shù)據(jù)只有查詢和統(tǒng)計操作,一般不進行更新操作。數(shù)據(jù)倉庫工具Oracle、DB2、SQLServer都支持數(shù)據(jù)倉庫解決方案。數(shù)據(jù)挖掘數(shù)據(jù)挖掘的定義數(shù)據(jù)挖掘(datamining,DM),又稱為數(shù)據(jù)中的知識發(fā)現(xiàn),是從存放在數(shù)據(jù)庫、數(shù)據(jù)倉庫或其他信息庫中的大量數(shù)據(jù)中發(fā)現(xiàn)有用知識的過程。數(shù)據(jù)挖掘的主要功能關聯(lián)分析:找出數(shù)據(jù)集中相互有關聯(lián)的因素,如針對超市的購物籃分析。數(shù)據(jù)挖掘數(shù)據(jù)挖掘主要功能概念描述:歸納總結出某個數(shù)據(jù)集合的特征,或者對照說明兩個或多個數(shù)據(jù)集的不同特征。分類:在分析已有類別標記的數(shù)據(jù)的基礎上,總結出不同類別數(shù)據(jù)的特征,據(jù)此特征對待分類數(shù)據(jù)進行類別標注。聚類:對數(shù)據(jù)進行分組,使得同一組內的數(shù)據(jù)相似度比較高,而不同組中的數(shù)據(jù)相似度比較低。孤立點分析:孤立點就是數(shù)據(jù)集中明顯偏離正常值的數(shù)據(jù),找到這樣的數(shù)據(jù)就是孤立點分析。演變分析:發(fā)現(xiàn)行為隨時間變化的數(shù)據(jù)所遵循的規(guī)律或趨勢。數(shù)據(jù)挖掘數(shù)據(jù)挖掘應用示例超市數(shù)據(jù)庫中存儲有大量的客戶購買物品的信息以及客戶本身的信息。分類或聚類可以把客戶按購買力的大小分成若干組;概念描述可以對比說明每組客戶的特征;關聯(lián)分析可以發(fā)現(xiàn)人們購買物品時的一些規(guī)律,如購買牛奶的人一般同時購買了面包等;孤立點分析可以發(fā)現(xiàn)反常的購買行為,如消費額特大;演變分析可以發(fā)現(xiàn)某種(些)商品在不同季節(jié)的銷售趨勢。這些數(shù)據(jù)挖掘的結果可以使超市的經營者制定出更為精準的營銷策略,在提高服務質量的同時,取得更好的經濟效益。軟件工程軟件危機;軟件工程的基本原則;軟件開發(fā)方法/04軟件危機軟件危機的定義計算機領域把大型軟件開發(fā)和維護過程中遇到的一系列嚴重問題稱為“軟件危機”(softwarecrisis)。軟件危機的表現(xiàn)軟件開發(fā)成本和開發(fā)進度的估計往往很不準確。用戶對“已完成”的軟件系統(tǒng)不滿意的現(xiàn)象經常發(fā)生。軟件產品的質量往往不可靠。軟件沒有適當?shù)奈臋n資料。軟件通常是不可維護的。軟件危機軟件危機示例IBM公司于1963~1966年為IBM360系列機開發(fā)了操作系統(tǒng)OS/360,這是一個功能較強的多道批處理操作系統(tǒng),參加軟件開發(fā)的人員最多時超過了1000人,總計有大約5000人年的工作量(5000人工作一年),耗資數(shù)億美元,編寫了近100萬行的源程序。但結果并不理想,軟件中隱藏有大量的錯誤,每次發(fā)行的新版本都是在前一個版本的基礎上發(fā)現(xiàn)并改正1000個錯誤后形成的。要知道,在這么多人合作編寫的這么大規(guī)模的一個軟件中,找到錯誤的性質和位置并改正錯誤,又不引起新的錯誤,是一件相當困難的事情。軟件危機應對軟件危機的方法軟件危機的出現(xiàn)表明,必須尋找新的技術和方法來指導大型軟件的開發(fā)??紤]到機械、建筑等領域都經歷過從手工方式演變成嚴密、規(guī)范、完整的工程科學的過程,人們認為大型軟件的開發(fā)也應該向“工程化”方向發(fā)展,逐步發(fā)展成一門完整的工程學科。1968年在北大西洋公約組織的一次學術會議上首次提出“軟件工程”(softwareengineering)概念。軟件工程采用工程的概念、原理、技術和方法來開發(fā)和維護軟件,把經過時間考驗證明正確的管理技術和當前能夠得到的最好的技術方法結合起來。軟件工程的基本原則軟件工程專家巴利·玻姆提出了7條基本準則1-用分階段的生命周期計劃進行嚴格的管理:把整個軟件開發(fā)過程分成若干個相對獨立、任務比較單一的階段,針對每個階段制訂出切實可行的計劃,并嚴格執(zhí)行所制訂的計劃。2-堅持進行階段評審:軟件的生命周期分為分析、設計、實施和維護等階段,每個階段結束后,都要進行嚴格的評審,盡早發(fā)現(xiàn)和改正錯誤,把錯誤盡量消滅在“萌芽”階段。3-實行嚴格的產品控制:針對需求改動,要實行嚴格的產品控制,一是需求的改動要經過嚴格的評審和審批,二是實際變動需求時,所有其他階段有關的文檔或程序代碼也要做相應的修改,以保證一致性。軟件工程的基本原則軟件工程專家巴利·玻姆提出了7條基本準則4-采用現(xiàn)代程序設計技術:根據(jù)所開發(fā)軟件的規(guī)模和功能,選擇先進的軟件開發(fā)方法和程序設計技術既能提高軟件開發(fā)的質量,又能保證開發(fā)進度,還有利于軟件的維護。5-結果應能清楚地審查:應盡量詳細、明確地規(guī)定每個階段的任務和審查標準,使得包括最終軟件產品審查在內的各階段的結果審查工作,有明確的目標和審查標準,能清楚地進行審查。6-開發(fā)小組的人員應該少而精:強調開發(fā)人員的能力和素質,而不是數(shù)量。7-承認不斷改進軟件工程實踐的必要性:總結軟件開發(fā)實踐中好的方法和技術,用于指導新的軟件的開發(fā),這個過程是反復進行的。軟件開發(fā)方法生命周期法的基本思路生命周期法強調將整個軟件的開發(fā)過程分解成若干個階段,并對每個階段的目標、任務、方法做出規(guī)定,使整個軟件的開發(fā)過程具有合理的組織和科學的秩序。每個階段進行若干項活動,每項活動應用一系列標準、規(guī)范、方法和技術,完成一個或多個任務。生命周期法的不足生命周期法強調自頂向下分階段開發(fā),在進入實際的開發(fā)期之前必須預先對需求嚴格定義。但是,實踐也表明,有些系統(tǒng)在開發(fā)出來之前很難僅僅依靠分析就能確定出一套完整、一致、有效的應用需求,這種預先定義的方式更不能適應用戶需求不斷變化的情況。軟件開發(fā)方法生命周期法遵循的原則用戶參與的原則:要積極引導用戶參與,開發(fā)人員要充分考慮、理解用戶的要求。沒有用戶的積極參與,往往是導致軟件開發(fā)失敗的重要原因。先邏輯后物理的原則:要充分地進行系統(tǒng)分析,解決“做什么”的問題,然后再進入系統(tǒng)設計、系統(tǒng)實施階段,解決“如何做”的問題。自頂向下的原則:先把握系統(tǒng)的總體目標和功能,然后逐級分解、逐步細化,將整個擬開發(fā)系統(tǒng)分解成若干個項目,分期分批進行系統(tǒng)開發(fā)。工作成果描述標準化原則:每一工作階段的成果,必須用明確的文字和標準化的圖形、表格完整、準確地進行描述。軟件開發(fā)方法快速原型法在初步了解用戶的基本要求后,開發(fā)人員先建立一個他們認為符合用戶要求的原型系統(tǒng)交付用戶檢驗,通過執(zhí)行原型系統(tǒng),用戶可以進一步明確地說明需求。人們通常建立兩種快速原型,一類是需求規(guī)格原型(RSP),另一類是漸進原型(RCP)。RSP模型反映了系統(tǒng)的某些方面,它可以密切用戶和開發(fā)人員的關系,促進相互理解,待需求說明書確定之后,這個模型就被舍棄,后面的開發(fā)工作仍按生命周期法進行。RCP采用循序漸進的開發(fā)方式,對初始模型作連續(xù)的精確化,直至實現(xiàn)系統(tǒng)的所有功能。軟件開發(fā)方法面向對象法的基本思路面向對象(objectoriented,OO)法把數(shù)據(jù)和對數(shù)據(jù)的操作同等看待,是一種以數(shù)據(jù)為主線,把數(shù)據(jù)和對數(shù)據(jù)的操作緊密結合起來的方法。面向對象法的特點把對象作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一軟件構件,用對象分解取代了結構化方法的功能分解。把所有對象都劃分為類。每個類定義了一組數(shù)據(jù)和一組操作,類是對具有相同數(shù)據(jù)和相同操作的一組相似對象的定義。按照父類與子類的關系,把若干個相關類組成一個層次結構的系統(tǒng)。下層子類自動擁有上層父類中定義的數(shù)據(jù)和操作,這是繼承性的體現(xiàn)。軟件開發(fā)方法面向對象法的特點對象彼此之間僅能通過發(fā)送消息互相聯(lián)系,對象的所有私有信息都被封裝在該對象內,不能從外界直接訪問,這就是封裝性。面向對象法應用于軟件開發(fā)的分析、設計和實施階段,便有了面向對象分析(OOA)、面向對象設計(OOD)和面向對象程序設計(OOP)等面向對象技術?;诿嫦驅ο蠓ǖ能浖_發(fā)中,使用一種通用的圖形化建模語言—統(tǒng)一建模語言(UML)。軟件開發(fā)方法敏捷開發(fā)方法敏捷開發(fā)方法將整個軟件項目進行任務分解,完成一個模塊交付一個模塊,一邊給用戶提供服務,一邊不斷增加新功能,這樣保證了軟件可以很快交付使用,在用戶使用的同時逐漸增加新功能、完善已有功能。敏捷開發(fā)的特點是持續(xù)迭代,在一個迭代周期內,根據(jù)產品需求,經過項目組評審后形成軟件需求文檔。根據(jù)軟件需求文檔進行系統(tǒng)設計,形成系統(tǒng)設計文檔。根據(jù)設計文檔編寫代碼,并對代碼進行評審。對代碼進行測試調試,形成測試文檔。通過測試的軟件(模塊)交付使用。軟件開發(fā)方法微軟過程規(guī)劃
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)選擇講座模板
- 2025年度茶葉產品溯源體系建設合同范本4篇
- 2025年度場化項目服務類采購項目合同附件定制版4篇
- 2025年度電競主題商鋪租賃合作協(xié)議4篇
- 2025年度生態(tài)環(huán)保園區(qū)場地委托出租與環(huán)保技術服務合同樣本4篇
- 專業(yè)技能提升課程2024培訓協(xié)議
- 人教版九年級化學上冊第1章開啟化學之門《第2節(jié) 化學研究什么》公開示范課教學課件
- 二零二四事業(yè)單位聘用合同四種類別適用范圍與條件3篇
- 2025年度文化演藝中心場地租用協(xié)議范本4篇
- 2025年度城市綜合體項目場地購置合同示范文本4篇
- 【傳媒大學】2024年新營銷
- 乳腺癌的綜合治療及進展
- 【大學課件】基于BGP協(xié)議的IP黑名單分發(fā)系統(tǒng)
- 2025屆廣東省佛山市高三上學期普通高中教學質量檢測(一模)英語試卷(無答案)
- 自身免疫性腦炎課件
- 人力資源管理各崗位工作職責
- 信陽農林學院《新媒體傳播學》2023-2024學年第一學期期末試卷
- 2024建筑公司年終工作總結(32篇)
- 信息安全意識培訓課件
- 2024年項目投資計劃書(三篇)
- 配電安規(guī)課件
評論
0/150
提交評論