官术网_书友最值得收藏!

  • 從零開始學SQL Server
  • 桂穎等編著
  • 67字
  • 2018-12-27 12:57:33

第1篇 數(shù)據(jù)庫入門

第1章 SQL Server 2005數(shù)據(jù)庫基礎

數(shù)據(jù)庫(Database)技術是按照數(shù)據(jù)結構來組織、存儲和管理數(shù)據(jù)的倉庫,它可以追溯到五十年前雷明頓蘭德公司的Univac I計算機推出的一種一秒鐘可以輸入數(shù)百條記錄的磁帶驅(qū)動器。后來,隨著信息技術的不斷發(fā)展和數(shù)據(jù)膨脹引起的需要,數(shù)據(jù)庫技術有了長足的發(fā)展。為了讓大家更加深入地了解數(shù)據(jù)庫技術,本書將介紹比較實用的數(shù)據(jù)庫軟件——SQL Server 2005。SQL Server 2005簡單實用,市場占有率高,非常適合計算機初學者及數(shù)據(jù)庫研究者深入學習。本章的主要內(nèi)容如下:

? 走進數(shù)據(jù)庫的世界,初步認識數(shù)據(jù)庫。

? 數(shù)據(jù)庫的成長歷程,對數(shù)據(jù)庫的發(fā)展大概了解。

? 數(shù)據(jù)庫應用系統(tǒng)的開發(fā)步驟。

1.1 數(shù)據(jù)庫的世界

數(shù)據(jù)庫從誕生至今已經(jīng)歷經(jīng)五十多年,在這段時間數(shù)據(jù)庫發(fā)生了巨大變化。人們對數(shù)據(jù)庫并沒有統(tǒng)一的定義,在此我們僅列舉兩個比較著名的定義來闡述數(shù)據(jù)庫的實質(zhì)及功能。定義一, J.Martin曾經(jīng)給數(shù)據(jù)庫下了一個比較完整的定義,其表述如下:數(shù)據(jù)庫是存儲在一起的相關數(shù)據(jù)的集合,這些數(shù)據(jù)是結構化的,無有害的或不必要的冗余,并為多種應用服務;數(shù)據(jù)的存儲獨立于使用它的程序;對數(shù)據(jù)庫插入新數(shù)據(jù),修改和檢索原有數(shù)據(jù)均能按一種公用的和可控制的方式進行。當某個系統(tǒng)中存在結構上完全分開的若干個數(shù)據(jù)庫時,則該系統(tǒng)包含一個“數(shù)據(jù)庫集合”。定義二,所有的信息,不論其是以印刷形式、計算機存儲單元形式,還是其他形式存在,都應視為“數(shù)據(jù)庫”(此定義為伯尼爾公約議定書專家委員會的觀點)。數(shù)據(jù)庫具有如下特點:

? 實現(xiàn)了數(shù)據(jù)共享:數(shù)據(jù)的共享包含所有用戶可同時存取數(shù)據(jù)庫中的數(shù)據(jù),也包括用戶通過接口使用數(shù)據(jù)庫,數(shù)據(jù)的共享可以有效節(jié)省存儲空間,避免數(shù)據(jù)間的不一致情況。

? 有效減少數(shù)據(jù)冗余:由于數(shù)據(jù)庫實現(xiàn)了數(shù)據(jù)共享,從而并非每個用戶各自建立文件,因此可以減少大量重復數(shù)據(jù),減少了數(shù)據(jù)冗余,維護了數(shù)據(jù)的一致性。

? 數(shù)據(jù)的獨立性比較高:數(shù)據(jù)的獨立性包括數(shù)據(jù)庫中數(shù)據(jù)庫的邏輯結構和應用程序,彼此是相互獨立的,并且數(shù)據(jù)物理結構變化并不影響數(shù)據(jù)邏輯結構。

? 數(shù)據(jù)實現(xiàn)了集中控制:在文件管理方式中,數(shù)據(jù)處于一種分散狀態(tài),不同用戶或同一用戶在處理不同文件時各文件毫無關系。但是數(shù)據(jù)庫可以對數(shù)據(jù)進行集中控制和管理,并通過數(shù)據(jù)模型表示各數(shù)據(jù)的組織和其中的關系。

? 確保了數(shù)據(jù)的安全性和可靠性:數(shù)據(jù)的安全性和可靠性主要表現(xiàn)在如下幾個方面:

可以防止數(shù)據(jù)丟失、錯誤更新等。

確保了數(shù)據(jù)的有效性、正確性。

數(shù)據(jù)庫管理系統(tǒng)提供了一套成熟的方法,可以及時發(fā)現(xiàn)故障并且修復,從而保證數(shù)據(jù)免遭破壞。

下面簡要介紹與數(shù)據(jù)庫技術密切相關的幾個概念。

1.1.1 信息

信息是信息論中的一個術語,常常把消息中有意義的內(nèi)容稱為信息。1948年,美國數(shù)學家、信息論的創(chuàng)始人香農(nóng)在題為“通訊的數(shù)學理論”的論文中指出:“信息是用來消除隨機不定性的東西”。1948年,美國著名數(shù)學家、控制論的創(chuàng)始人維納在《控制論》一書中,指出:“信息就是信息,既非物質(zhì),也非能量。”信息是客觀世界在人們頭腦中的反映。

信息的特征主要包括以下幾個方面:

? 信息的內(nèi)容是關于客觀事物或思想方面的知識。

? 信息是有用的。

? 信息能夠在空間和時間上被傳遞。

? 信息需要一定的形式表示。

1.1.2 數(shù)據(jù)

數(shù)據(jù)是承擔信息的物理符號,是數(shù)據(jù)庫中存儲的基本對象。數(shù)據(jù)包括“型”和“值”,“型”代表數(shù)據(jù)的結構,“值”代表數(shù)據(jù)的具體取值。因此,一條數(shù)據(jù)受數(shù)據(jù)類型和取值范圍的約束。例如,在學生信息統(tǒng)計單中,我們普遍感興趣的是學生的姓名、性別、年齡、聯(lián)系方式等,因此我們在數(shù)據(jù)中可以存入如下信息:王明,男,24,13892843459。

這條數(shù)據(jù)向我們闡述了如下信息:學生姓名王明,性別男,年齡24歲,手機號為13892843459。前面的姓名,性別等為“型”,而后面的王明,男等數(shù)據(jù)表述了“值”。

1.1.3 數(shù)據(jù)管理

數(shù)據(jù)管理是數(shù)據(jù)處理的基礎工作,是指利用計算機和軟件技術對數(shù)據(jù)進行收集、存儲、處理和應用的過程。數(shù)據(jù)管理的工作包括3個內(nèi)容:組織和保存數(shù)據(jù)、進行數(shù)據(jù)維護、提供數(shù)據(jù)查詢和數(shù)據(jù)統(tǒng)計功能。隨著計算機技術的發(fā)展,數(shù)據(jù)管理經(jīng)歷了人工管理、文件系統(tǒng)、數(shù)據(jù)庫系統(tǒng)3個發(fā)展階段。在數(shù)據(jù)庫系統(tǒng)中所建立的數(shù)據(jù)結構,更充分地描述了數(shù)據(jù)間的內(nèi)在聯(lián)系,便于數(shù)據(jù)修改、更新與擴充,同時保證了數(shù)據(jù)的獨立性、可靠性、安全性與完整性,減少了數(shù)據(jù)冗余,近而提高了數(shù)據(jù)共享程度及數(shù)據(jù)管理效率。

1.1.4 數(shù)據(jù)庫管理系統(tǒng)

數(shù)據(jù)庫管理系統(tǒng)(Data Base Management System,DBMS)是提供數(shù)據(jù)庫管理的軟件系統(tǒng),它由一組計算機程序組成,管理并控制數(shù)據(jù)資源的使用。數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心,為用戶提供組織和存儲數(shù)據(jù)、獲取和維護數(shù)據(jù)的功能。其具體功能如下。

? 數(shù)據(jù)庫定義功能:數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)定義語言(DDL,Data Definition Language),用戶可以方便地定義數(shù)據(jù)庫結構,包括外模式、內(nèi)模式等的定義,并且包括數(shù)據(jù)庫、表等對象的定義。

? 數(shù)據(jù)操縱功能:數(shù)據(jù)庫管理系統(tǒng)在提供數(shù)據(jù)定義語言的同時還提供了數(shù)據(jù)操縱語言(Data Manipulation Language,DML),用戶可以通過數(shù)據(jù)操縱語言實現(xiàn)數(shù)據(jù)庫的基本操縱,如實現(xiàn)對數(shù)據(jù)庫的檢索、插入、刪除和修改等。

? 數(shù)據(jù)庫的運行管理:數(shù)據(jù)庫在建立、運行和維護時由DBMS進行管理、控制,以保證數(shù)據(jù)的安全性、完整性、多用戶對數(shù)據(jù)的并發(fā)使用及發(fā)生故障后的系統(tǒng)恢復。

? 數(shù)據(jù)庫的建立和維護功能:主要包括數(shù)據(jù)庫數(shù)據(jù)批量載入、數(shù)據(jù)庫的轉(zhuǎn)儲、介質(zhì)故障的恢復、數(shù)據(jù)庫的重組織、性能監(jiān)視與分析等。

? 除此之外,數(shù)據(jù)庫管理系統(tǒng)還包括DBMS與網(wǎng)絡中其他軟件系統(tǒng)的通信功能、數(shù)據(jù)庫的重組織功能、性能監(jiān)視和分析功能等。

1.1.5 數(shù)據(jù)庫系統(tǒng)

數(shù)據(jù)庫系統(tǒng)(DBS,Data Base System)是指由數(shù)據(jù)庫及其管理軟件組成的系統(tǒng)。一個數(shù)據(jù)庫系統(tǒng)應由計算機硬件、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫應用系統(tǒng)和數(shù)據(jù)庫管理員組成。

數(shù)據(jù)庫系統(tǒng)具體以下性能:①能夠保證數(shù)據(jù)的獨立性。②冗余數(shù)據(jù)少,數(shù)據(jù)共享程度高。③系統(tǒng)的用戶接口簡單,用戶容易掌握,使用方便。④能夠確保系統(tǒng)運行可靠,出現(xiàn)故障時能迅速排除;能夠保護數(shù)據(jù)不受非授權者訪問或破壞;能夠防止錯誤數(shù)據(jù)的產(chǎn)生,一旦產(chǎn)生也能及時發(fā)現(xiàn)。⑤有重新組織數(shù)據(jù)的能力,能改變數(shù)據(jù)的存儲結構或數(shù)據(jù)存儲位置,以適應用戶操作特性的變化,改善由于頻繁插入、刪除操作造成的數(shù)據(jù)組織零亂和時空性能變壞的狀況。⑥具有可修改性和可擴充性。⑦能夠充分描述數(shù)據(jù)間的內(nèi)在聯(lián)系。

1.2 數(shù)據(jù)庫的成長歷程

數(shù)據(jù)庫的發(fā)展歷史可以追溯到五十年前,那時數(shù)據(jù)管理比較簡單。通過大量的分類、比較和表格繪制的機器運行數(shù)百萬穿孔卡片來進行數(shù)據(jù)的處理,運行結果在紙上打印出來。隨著數(shù)據(jù)庫技術的發(fā)展,數(shù)據(jù)庫越來越不可缺少。至今,數(shù)據(jù)庫技術的發(fā)展大致經(jīng)歷了3個階段:

? 人工管理階段(20世紀40年代中期到50年代中期)。

? 文件系統(tǒng)階段(20世紀50年代末期到60年代中期)。

? 數(shù)據(jù)庫系統(tǒng)階段(20世紀60年代末期到現(xiàn)在)。

1.2.1 人工管理階段

人工管理階段大約在20世紀40年代中期至50年代中期,其是使用匯編語言進行操縱,外存只有卡片、紙帶、磁帶及磁盤(1956年IBM生產(chǎn)出第一個磁盤驅(qū)動器—— the Model 305 RAMAC)等,這個時期的數(shù)據(jù)處理方式為數(shù)據(jù)批處理。其特點如下:

? 數(shù)據(jù)不進行保存,數(shù)據(jù)用完就撤走。

? 沒有專門的數(shù)據(jù)管理軟件,因此這個時期程序員的負擔很重。

? 數(shù)據(jù)不共享。

? 只有程序的概念,數(shù)據(jù)具有不獨立性。

? 數(shù)據(jù)面向應用程序,無法相互利用,相互參照,因此程序間會產(chǎn)生大量冗余數(shù)據(jù)。

人工管理階段的示意圖,如圖1-1所示。

圖1.1 人工管理階段示意圖

1.2.2 文件系統(tǒng)階段

文件系統(tǒng)階段出現(xiàn)在20世紀50年代末到60年代中期,其主要標志為計算機中有了專門管理數(shù)據(jù)庫的軟件——操縱系統(tǒng)。此階段磁盤、磁鼓等計算機直接存儲的外存設備的出現(xiàn)推動了軟件技術的發(fā)展,而操作系統(tǒng)的出現(xiàn)標志著數(shù)據(jù)管理步入一個新的階段。

在文件系統(tǒng)階段,數(shù)據(jù)以文件為單位存儲在外存,并且由操縱系統(tǒng)統(tǒng)一管理。文件的物理結構和邏輯結構彼此分離,數(shù)據(jù)和程序相互獨立。此階段的硬件包括磁盤、磁鼓等直接存儲的外存設備;軟件為操縱系統(tǒng)、高級語言,操縱系統(tǒng)中的文件系統(tǒng)是專門用于數(shù)據(jù)管理的軟件(DOS);文件關系階段對文件實行批處理、聯(lián)機實時處理。此階段的特點如下:

? 數(shù)據(jù)可長期保存。

? 通過文件系統(tǒng)管理數(shù)據(jù)。

? 數(shù)據(jù)共享性差,數(shù)據(jù)的組織是面向程序的,會出現(xiàn)大量冗余。

? 數(shù)據(jù)獨立性比較差。

文件系統(tǒng)階段示意圖,如圖1.2所示。

圖1.2 文件系統(tǒng)階段示意圖

1.2.3 數(shù)據(jù)庫系統(tǒng)階段

數(shù)據(jù)庫系統(tǒng)發(fā)生在20世紀60年代末到現(xiàn)在,這個事情計算機在數(shù)據(jù)管理領域普遍應用,并且人們對數(shù)據(jù)管理技術提出了更高的要求。由于硬件價格下降,因此大容量的磁盤存儲成為可能。數(shù)據(jù)庫系統(tǒng)對數(shù)據(jù)管理采用聯(lián)機實時處理方式。其特點主要表現(xiàn)在以下幾點:

? 面向企業(yè)或部門,以數(shù)據(jù)為中心組織數(shù)據(jù),形成綜合性的數(shù)據(jù)庫,為其他應用共享。

? 數(shù)據(jù)結構化,同一個數(shù)據(jù)庫中的文件聯(lián)系緊密,在整體上也服從一定的結構形式。

? 數(shù)據(jù)共享性高,尤其在同一個數(shù)據(jù)庫中,因此冗余小,并且數(shù)據(jù)易修改、易擴充。

系統(tǒng)現(xiàn)有用戶或程序可以共享數(shù)據(jù)庫中的數(shù)據(jù)。

當系統(tǒng)需要擴充時,新用戶或新程序還可以共享原有的數(shù)據(jù)資源。

多用戶或多程序可以在同一時刻共同使用同一數(shù)據(jù)。

? 程序和數(shù)據(jù)獨立性高。

數(shù)據(jù)的物理獨立性(Physical Data Independence)指當數(shù)據(jù)的物理結構發(fā)生變化時,應用程序不需要修改也可以正常工作。

數(shù)據(jù)的邏輯獨立性(Logical Data Independence)是指當數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)全局邏輯結構改變時,它們對應的應用程序不需要改變?nèi)钥梢哉_\行。

對數(shù)據(jù)進行統(tǒng)一管理和控制(通過DBSM),提供了數(shù)據(jù)的安全性、完整性,以及并發(fā)控制和數(shù)據(jù)恢復。

數(shù)據(jù)的安全性控制是指保護數(shù)據(jù)庫,以防止不合法的使用造成數(shù)據(jù)泄漏、破壞和更改。

數(shù)據(jù)的完整性控制是指為保證數(shù)據(jù)的正確性、有效性和相容性,防止不符合語義的數(shù)據(jù)輸入或輸出所采用的控制機制。

數(shù)據(jù)的并發(fā)控制是指排除由于數(shù)據(jù)共享,即用戶并行使用數(shù)據(jù)庫中的數(shù)據(jù)時,所造成的數(shù)據(jù)不完整和系統(tǒng)運行錯誤問題。

數(shù)據(jù)恢復是通過記錄數(shù)據(jù)庫運行的日志文件和定期做數(shù)據(jù)備份工作,保證數(shù)據(jù)在受到破壞時,能夠及時使數(shù)據(jù)庫恢復到正確狀態(tài)。

1.2.4 數(shù)據(jù)庫發(fā)展歷程和研究方向

從數(shù)據(jù)庫技術發(fā)展的過程可以看到,數(shù)據(jù)庫學科的發(fā)展和數(shù)據(jù)庫軟件產(chǎn)業(yè)的發(fā)展是緊密結合并相互促進的。三十多年來由于進行了扎實的基礎研究,使數(shù)據(jù)庫技術具有了堅實的理論基礎,形成了一門研究范圍廣泛的數(shù)據(jù)庫學科。

1.數(shù)據(jù)庫發(fā)展歷程

1951年雷明頓蘭德(Remington Rand Inc.)的Univac系統(tǒng)使用磁帶和穿孔卡片作為數(shù)據(jù)存儲,從而引發(fā)了數(shù)據(jù)管理的革命。

1961年,美國通用電氣公司Bachman等人在1961年開發(fā)成功的IDS(Integrated DataStore)是最早出現(xiàn)的網(wǎng)狀DBMS,這個DBMS也是第一個數(shù)據(jù)庫管理系統(tǒng)——集成數(shù)據(jù)存儲(Integrated DataStore IDS),奠定了網(wǎng)狀數(shù)據(jù)庫的基礎。

1970年,IBM的研究員E.F.Codd博士在刊物《Communication of the ACM》上發(fā)表了一篇名為“A Relational Model of Data for Large Shared Data Banks”的論文,提出了關系模型的概念,奠定了關系模型的理論基礎。

1974年,IBM的Ray Boyce和Don Chamberlin將Codd關系數(shù)據(jù)庫12條準則的數(shù)學定義以簡單的關鍵字語法表現(xiàn)出來,里程碑式地提出了SQL(Structured Query Language)語言。

1986年,ANSI把SQL作為關系數(shù)據(jù)庫語言的美國標準,同年公布了標準SQL文本。

2.未來發(fā)展趨勢

隨著信息管理內(nèi)容的不斷擴展,出現(xiàn)了豐富多樣的數(shù)據(jù)模型(如層次模型、網(wǎng)狀模型、關系模型、面向?qū)ο竽P汀虢Y構化模型等),新技術也層出不窮(如數(shù)據(jù)流、Web數(shù)據(jù)管理、數(shù)據(jù)挖掘等)。數(shù)據(jù)庫在信息集成、數(shù)據(jù)流管理、傳感器數(shù)據(jù)庫技術、半結構化數(shù)據(jù)與XML數(shù)據(jù)管理、網(wǎng)格數(shù)據(jù)管理、DBMS自適應管理等方面都有所發(fā)展,并且對數(shù)據(jù)庫領域研究方向的發(fā)展趨勢有深遠影響。

1.3 數(shù)據(jù)庫應用系統(tǒng)的開發(fā)步驟

數(shù)據(jù)庫應用系統(tǒng)可以分為兩大類:一類是以數(shù)據(jù)為中心的應用系統(tǒng),其中心任務在于對數(shù)據(jù)的采集、整理和存儲工作上;另一類是以處理為中心的應用系統(tǒng),其重點是使用數(shù)據(jù),包括數(shù)據(jù)的插入、查詢、統(tǒng)計等工作。一般企業(yè)的數(shù)據(jù)應用系統(tǒng)屬于后者,數(shù)據(jù)庫應用系統(tǒng)的開發(fā)一般要經(jīng)過以下幾個時期和階段,如圖1.3所示。

圖1.3 數(shù)據(jù)庫應用系統(tǒng)開發(fā)過程

1.3.1 項目規(guī)劃期

項目規(guī)劃期的主要任務為分析問題規(guī)劃、對項目進行系統(tǒng)必要性分析和可行性分析。

1.問題規(guī)劃

在收集整理相關資料的基礎上,要確定將建立的數(shù)據(jù)庫系統(tǒng)與周邊的關系,對系統(tǒng)定位,其規(guī)模、地位、功能都需要作全面的論證。

規(guī)劃人力資源調(diào)配。對參與開發(fā)和維護的管理人員、技術人員提出要求并對其素質(zhì)作出評估。對系統(tǒng)的開發(fā)、運行、維護的成本作出估算,預測系統(tǒng)效益的期望值。

2.需求分析階段

(1)需求信息的采集。需求信息的采集一般以機構設計和業(yè)務活動為主干線,從高層到中層到底層逐漸展開。

(2)需求信息的分析整理。對收集到的信息要做分析整理工作。數(shù)據(jù)流圖(DFD,Data Flow Diagram)是業(yè)務流程及業(yè)務中數(shù)據(jù)聯(lián)系的形式描述。數(shù)據(jù)字典(DD,Data Dictionary)詳細描述系統(tǒng)中的全部數(shù)據(jù)。數(shù)據(jù)字典包括數(shù)據(jù)項、數(shù)據(jù)組項、數(shù)據(jù)流、數(shù)據(jù)存儲等部分。

(3)評審需求信息。開發(fā)過程中的每一個階段都要經(jīng)過評審,確認任務是否全部完成,避免或糾正工作中出現(xiàn)的錯誤和疏漏。

1.3.2 項目開發(fā)時期

1.概念模型設計

概念模型不依賴于具體的計算機系統(tǒng),它是純粹反向信息需求的概念結構。設計概念模型時常用的方法為ER圖方法。用設計好的ER圖再附以相應的說明書可作為階段成果。

2.邏輯設計

邏輯設計階段的主要目標是把概念模型轉(zhuǎn)換為具體計算機上數(shù)據(jù)庫管理系統(tǒng)所支持的結構數(shù)據(jù)模型。

邏輯設計的輸入要素包括概念模型、用戶需求、約束條件、選用的數(shù)據(jù)庫管理系統(tǒng)的特性。

邏輯設計的輸出信息包括數(shù)據(jù)庫管理系統(tǒng)可處理的模式和子模式、應用程序設計指南、物理設計指南。

3.物理設計

物理設計是對給定的邏輯數(shù)據(jù)模型配置一個最合適應用環(huán)境的物理結構。物理設計的輸入要素包括模式和子模式、物理設計指南、硬件特性、OS和數(shù)據(jù)庫管理系統(tǒng)的約束、運行要求等。

數(shù)據(jù)設計的步驟如下:

(1)存儲記錄結構。設計綜合分析數(shù)據(jù)存儲要求和應用需求,設計存儲記錄格式。

(2)存儲空間分配。從提高系統(tǒng)性能方面考慮,應將設計好的存儲記錄作為一個整體,合理地分配物理存儲區(qū)域。盡可能充分利用物理順序特點,把不同類型的存儲記錄指派到不同的物理群中。

(3)訪問方法的設計。一個訪問方法包括存儲結構和檢索機構兩部分。存儲結構限定了在訪問存儲記錄時可以使用的訪問路徑;檢索機構定義了每個應用實際使用的訪問路徑。

(4)物理設計的性能評價。其主要評價性能包括查詢響應時間和存儲空間、開銷、效率。

4.程序編制與調(diào)試

在邏輯數(shù)據(jù)庫結構確定以后,應用程序設計的編制就可以開始了。程序模塊代碼通常先在模擬的環(huán)境下初步調(diào)試,然后再進行聯(lián)合調(diào)試。聯(lián)合調(diào)試的工作主要包括:

(1)設計并建立數(shù)據(jù)庫結構。根據(jù)邏輯設計和物流設計的結果,用DBMS提供的數(shù)據(jù)語言(DDL)編寫數(shù)據(jù)庫的源模式,經(jīng)編譯得到目標模式,執(zhí)行目標模式即可建立時間的數(shù)據(jù)庫結構。

(2)調(diào)試運行數(shù)據(jù)庫結構建立后,裝入實驗數(shù)據(jù),使數(shù)據(jù)庫進入調(diào)試運行階段。調(diào)試分為3個步驟:模塊測試,用于測試程序的每個模塊是否有錯誤;組裝測試,用于測試模塊之間的接口是否正確;確定測試,用于測試整個軟件系統(tǒng)是否滿足用戶功能性要求。常用的測試方法分為白盒測試和黑盒測試兩種,其設計的測試用例是不同的。

? 白盒測試:又稱結構測試或邏輯驅(qū)動測試。“白盒”測試將測試對象看做是一個完全透明化的盒子,測試人員可以利用程序內(nèi)部的邏輯結構及相關的信息來設計或選擇測試用例。因此白合測試主要考慮的是測試用例對程序內(nèi)部邏輯的覆蓋程度,而不考慮程序的功能。

? 黑盒測試:又稱為功能測試、數(shù)據(jù)驅(qū)動測試或黑箱測試。在這種測試方法中,程序?qū)y試人員是完全不透明的。測試者不考慮程序的內(nèi)部結構和特性,只根據(jù)程序的需求規(guī)格說明中的程序功能或程序的外部特性來設計程序的測試用例。

測試后,應完成“測試報告”。該報告要說明測試的對象、測試數(shù)據(jù)的選擇、測試結果是否符合預期結果。如果發(fā)現(xiàn)問題,要經(jīng)過調(diào)試找出錯誤原因并及時予以改正。

5.運行和維護時期

本階段的主要任務是軟件維護。軟件維護是修改軟件系統(tǒng)在使用過程中發(fā)現(xiàn)的隱含錯誤,擴充用戶在使用過程中提出的新功能要求,其目的是維護軟件系統(tǒng)的正常運行。此階段的主要工作是:

? 維護數(shù)據(jù)庫的安全性和完整性。按照制定的安全規(guī)范和故障恢復規(guī)范,在系統(tǒng)的安全出現(xiàn)問題時,及時調(diào)整授權和更改密碼。及時發(fā)現(xiàn)系統(tǒng)運行時出現(xiàn)的錯誤,迅速修改,確保系統(tǒng)正常運行。把數(shù)據(jù)庫的備份和轉(zhuǎn)儲作為日常的工作,一旦發(fā)生故障,立即使用數(shù)據(jù)庫的最新備份予以恢復。

? 監(jiān)察系統(tǒng)的性能。運用DBMS提供的性能監(jiān)察與分析工具,不斷地監(jiān)控系統(tǒng)的運行情況。當數(shù)據(jù)庫的存儲空間或響應時間等性能下降時,立即進行分析找出原因,并及時采取措施改進。例如,可通修改某些參數(shù)、整理碎片、調(diào)整存儲結構或重新組織數(shù)據(jù)庫等方法,使數(shù)據(jù)庫系統(tǒng)保持高效率、正常的運作。

? 擴充系統(tǒng)的功能。在維持原有系統(tǒng)功能和性能的基礎上,適應環(huán)境和需求的變化,采納用戶的合理意見,對原有系統(tǒng)進行擴充,增加新的功能。

需要說明的是,軟件聲明周期雖然按瀑布模型可以劃分為若干階段,但在實際運用中各階段不可能按照理想狀態(tài)劃分。隨著開發(fā)過程的不斷發(fā)展,相鄰階段之間充滿回溯、反復和交叉的過程。

1.4 本章小結

本章從數(shù)據(jù)庫開發(fā)人員的角度,對數(shù)據(jù)庫的基礎知識、基本原理進行了介紹,使讀者對數(shù)據(jù)庫有大概了解。并且對數(shù)據(jù)庫的成長歷程作了簡單介紹,使讀者了解數(shù)據(jù)庫的由來與發(fā)展。最后介紹了數(shù)據(jù)庫應用系統(tǒng)的開發(fā)步驟,使讀者明白作為數(shù)據(jù)庫開發(fā)人員,首先必須了解客戶的應用需求,明確數(shù)據(jù)庫系統(tǒng)的實體、屬性和聯(lián)系的基本情況,建立數(shù)據(jù)流圖。本章介紹的關系數(shù)據(jù)庫相關理論及數(shù)據(jù)庫系統(tǒng)開發(fā)的一般過程,都是為具體的數(shù)據(jù)庫軟件SQL Server 2005編程做準備,為讀者深入掌握SQL Server 2005奠定基礎。

1.5 習題

1.簡述數(shù)據(jù)庫的特點。

2.簡述數(shù)據(jù)庫的發(fā)展歷程。

3.簡述數(shù)據(jù)庫應用系統(tǒng)的開發(fā)步驟。

4.簡述信息的概念。

5.數(shù)據(jù)管理工作的3個內(nèi)容包括哪些?

主站蜘蛛池模板: 乌兰浩特市| 小金县| 江源县| 乌兰察布市| 嵩明县| 徐水县| 怀来县| 昔阳县| 中西区| 汉沽区| 安吉县| 商丘市| 秭归县| 晋宁县| 义马市| 阳春市| 略阳县| 平昌县| 临清市| 宁德市| 五常市| 吉林市| 沙田区| 右玉县| 申扎县| 右玉县| 福鼎市| 祥云县| 曲沃县| 南溪县| 林西县| 香港| 马龙县| 朝阳区| 高淳县| 渝中区| 长治县| 河东区| 永丰县| 石首市| 清丰县|