全國計算機(jī)等級考試四級教程數(shù)據(jù)庫工程師知識點(diǎn)整理_第1頁
全國計算機(jī)等級考試四級教程數(shù)據(jù)庫工程師知識點(diǎn)整理_第2頁
全國計算機(jī)等級考試四級教程數(shù)據(jù)庫工程師知識點(diǎn)整理_第3頁
全國計算機(jī)等級考試四級教程數(shù)據(jù)庫工程師知識點(diǎn)整理_第4頁
全國計算機(jī)等級考試四級教程數(shù)據(jù)庫工程師知識點(diǎn)整理_第5頁
已閱讀5頁,還剩57頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《全國計算機(jī)等級考試四級教程—數(shù)據(jù)庫工程師》第一章引論數(shù)據(jù)庫技術(shù)產(chǎn)生于20世紀(jì)60年代,是信息系統(tǒng)的核心技術(shù)和重要基礎(chǔ);計算機(jī)科學(xué)與技術(shù)學(xué)科劃分為四個專業(yè)方向:計算機(jī)科學(xué)(CS);計算機(jī)工程(CE);軟件工程(SE);信息技術(shù)(IT)。1.1基本概念1.1.1信息與數(shù)據(jù)信息、物質(zhì)、能量是組成客觀世界并促進(jìn)社會發(fā)展的三大基本要素;信息(Information)--是客觀世界事物的存在方式和運(yùn)動狀態(tài)的反映,是對事物之間相互聯(lián)系、相互作用的描述。信息具有可感知、可存儲、可加工、可傳遞和可再生的自然屬性。數(shù)據(jù)(Data)--是描述現(xiàn)實世界事物的符號記錄,是用物理符號記錄下來的可以識別的信息。不同的物理符號體現(xiàn)出數(shù)據(jù)的不同表現(xiàn)形式。信息與數(shù)據(jù)間存在固有聯(lián)系,數(shù)據(jù)是信息的符號表示,或稱為載體。信息則是數(shù)據(jù)的語義解釋,是數(shù)據(jù)的內(nèi)涵,信息以數(shù)據(jù)的形式表現(xiàn)出來,并為人們理解和接受。數(shù)據(jù)處理(DataProcessing)--是指對數(shù)據(jù)進(jìn)行分類、收集、組織、存儲,進(jìn)而從已數(shù)據(jù)出發(fā),抽取或推導(dǎo)出新的數(shù)據(jù),這些數(shù)據(jù)表示了新的信息。數(shù)據(jù)管理(DataManagement)--是指對數(shù)據(jù)的分類、收集、組織、編碼、存儲、檢索和維護(hù),是數(shù)據(jù)處理業(yè)務(wù)的重要環(huán)節(jié)。數(shù)據(jù)處理與數(shù)據(jù)管理的區(qū)別在于,數(shù)據(jù)處理除了具有數(shù)據(jù)管理功能外,還可通過數(shù)據(jù)管理得到的數(shù)據(jù)進(jìn)一步深加工,從中獲取新的數(shù)據(jù)和信息。1.1.2數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫(DB,DataBase)--是長期存儲在計算機(jī)內(nèi)有組織的、大量的、共享的數(shù)據(jù)集合;數(shù)據(jù)庫管理系統(tǒng)(DBMS,DatabaseManagementSystem)--是指在計算機(jī)系統(tǒng)中,位于用戶與操作系統(tǒng)之間的數(shù)據(jù)管理系統(tǒng)軟件,是數(shù)據(jù)庫系統(tǒng)的核心。數(shù)據(jù)庫系統(tǒng)(DBS,DataBaseSystem)--是指在計算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的軟硬件系統(tǒng)構(gòu)成,DBS一般分成三個層次:(1)計算機(jī)硬件平臺;(2)系統(tǒng)軟件和應(yīng)用軟件;(3)用戶;在不引起混淆和歧義的情況下,數(shù)據(jù)庫系統(tǒng)簡稱為數(shù)據(jù)庫。(狹義的)數(shù)據(jù)庫系統(tǒng)—是由數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)組成的軟件系統(tǒng),主要為用戶提供數(shù)據(jù)存儲和查詢、插入、修改、刪除、更新等數(shù)據(jù)管理功能。(狹義的)數(shù)據(jù)庫應(yīng)用系統(tǒng)(DBAS,DataBaseApplicationSystem)—是由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫應(yīng)用程序組成的軟件系統(tǒng),它面向具體應(yīng)用領(lǐng)域,提供了更為復(fù)雜的數(shù)據(jù)處理功能。數(shù)據(jù)庫技術(shù)—是研究數(shù)據(jù)庫的結(jié)構(gòu)、存儲、設(shè)計、管理和使用的一門計算機(jī)應(yīng)用學(xué)科。數(shù)據(jù)庫技術(shù)與其它計算機(jī)科學(xué)有密切關(guān)系:數(shù)據(jù)庫技術(shù)以文件系統(tǒng)為基礎(chǔ)發(fā)展而來,DBMS需要操作系統(tǒng)的支持,數(shù)據(jù)庫以文件形式存儲在外部存儲上的;數(shù)據(jù)庫與數(shù)據(jù)結(jié)構(gòu)的關(guān)系很密切,數(shù)據(jù)庫技術(shù)不僅用到數(shù)據(jù)結(jié)構(gòu)中的鏈表、樹、圖等知識,各種數(shù)據(jù)模型本身就屬于復(fù)雜數(shù)據(jù)結(jié)構(gòu);主流的關(guān)系數(shù)據(jù)庫系統(tǒng),其理論基礎(chǔ)是關(guān)系數(shù)據(jù)模型,而該模型是在離散數(shù)學(xué)集合論中“關(guān)系”這一基本概念上發(fā)展起來的;當(dāng)用戶訪問數(shù)據(jù)庫,DBMS對用戶提交的查詢操作類似于,計算機(jī)編譯系統(tǒng)對程序的編譯過程;開發(fā)一些大型的DBS或DBMS的過程,要遵循軟件工程的開發(fā)模式。1.2數(shù)據(jù)模型1.2.1數(shù)據(jù)模型概念1、數(shù)據(jù)模型(DataModel)--是數(shù)據(jù)庫系統(tǒng)的形式框架,是用來描述數(shù)據(jù)的一組概念和定義,包括描述數(shù)據(jù)、數(shù)據(jù)聯(lián)系、數(shù)據(jù)操作、數(shù)據(jù)語義以及數(shù)據(jù)一致性的概念工具;2、數(shù)據(jù)模型應(yīng)滿足:(1)能夠比較真實地模擬現(xiàn)實世界;(2)容易為人們所理解;(3)便于在計算機(jī)上實現(xiàn)。數(shù)據(jù)模型的組成:數(shù)據(jù)結(jié)構(gòu):用于描述系統(tǒng)的靜態(tài)特征,從語法角度表述了客觀世界中數(shù)據(jù)對象本身的結(jié)構(gòu)和數(shù)據(jù)對象之間的關(guān)聯(lián)關(guān)系,是刻畫一個數(shù)據(jù)模型性質(zhì)最重要的方面。在數(shù)據(jù)庫系統(tǒng)中,通常按照數(shù)據(jù)結(jié)構(gòu)的類型來區(qū)分、命名各種數(shù)模,如層次、網(wǎng)狀、關(guān)系數(shù)模。數(shù)據(jù)操作:用于描述系統(tǒng)的動態(tài)特征,是一組對數(shù)據(jù)庫中各種數(shù)據(jù)對象允許執(zhí)行的操作和操作規(guī)則組成的集合。數(shù)據(jù)操作可以是檢索、插入等,數(shù)模必須定義這些操作的確切含義、操作符號、操作規(guī)則以及實現(xiàn)操作的數(shù)據(jù)庫語言。數(shù)據(jù)完整性約束:是一組完整性規(guī)則的集合,它定義了數(shù)模必須遵守的語義約束,也規(guī)定了數(shù)據(jù)庫中數(shù)據(jù)內(nèi)部及數(shù)據(jù)之間聯(lián)系所必須滿足的語義約束。它限定了數(shù)據(jù)庫的狀態(tài)以及狀態(tài)的變化,以便維護(hù)數(shù)據(jù)的正確性、有效性。1.2.2數(shù)據(jù)模型分類用數(shù)據(jù)模型這一概念來描述數(shù)據(jù)庫的結(jié)構(gòu)和語義,通過現(xiàn)實世界—信息世界—機(jī)器世界的抽象轉(zhuǎn)換過程構(gòu)建數(shù)據(jù)庫,并根據(jù)模型所定義的規(guī)范去管理和使用數(shù)據(jù)。建模過程:(1)將現(xiàn)實世界的數(shù)據(jù)對象抽象為信息世界中的某一信息結(jié)構(gòu);(2)再將信息結(jié)構(gòu)轉(zhuǎn)換為機(jī)器世界中某一具體DBMS支持的數(shù)據(jù)模型,并存儲于計算機(jī)中。數(shù)據(jù)模型分類:概念數(shù)據(jù)模型(概念模型):按用戶的觀點(diǎn)對數(shù)據(jù)和信息進(jìn)行建模,是現(xiàn)實世界到信息世界的第一層抽象,強(qiáng)調(diào)其語義表達(dá)功能,易于用戶理解,是用戶與設(shè)計人員交流的語言,主要用于數(shù)據(jù)庫設(shè)計。最常用的是實體—聯(lián)系模型。數(shù)據(jù)結(jié)構(gòu)模型(表示型/實現(xiàn)型):是機(jī)器世界中與具體DBMS相關(guān)的數(shù)據(jù)模型,包括關(guān)系模型、網(wǎng)狀模型和層次模型物理數(shù)據(jù)模型:屬底層數(shù)據(jù)模型,描述數(shù)據(jù)的實際存儲方式。1.3數(shù)據(jù)視圖與模式結(jié)構(gòu)1.3.1數(shù)據(jù)視圖與數(shù)據(jù)抽象數(shù)據(jù)視圖:指從某個角度看到的客觀世界數(shù)據(jù)對象的特征,是對數(shù)據(jù)對象某一方面特征的描述。數(shù)據(jù)抽象:是一種數(shù)據(jù)描述和數(shù)據(jù)庫設(shè)計原則,是指專注于數(shù)據(jù)對象的某方面特征,而忽略其他特征。集和值:集是指對某一類數(shù)據(jù)的結(jié)構(gòu)和屬性的說明,值是集的一個具體賦值;數(shù)據(jù)模式:對數(shù)據(jù)庫中數(shù)據(jù)某方面結(jié)構(gòu)和特征的描述,它僅涉及集的描述,不涉及具體的值。1.3.2三級模式結(jié)構(gòu)數(shù)據(jù)庫三級模式結(jié)構(gòu)—外部級、概念級和內(nèi)部級,分別定義了外模式、模式和內(nèi)模式,用于從不同角度描述數(shù)據(jù)庫結(jié)構(gòu)。模式:也稱邏輯模式、概念模式;對數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖;模式不僅定義了數(shù)據(jù)的邏輯結(jié)構(gòu),還定義了數(shù)據(jù)之間的聯(lián)系、與數(shù)據(jù)的關(guān)的安全性和完整性要求;一個數(shù)據(jù)庫只有一個模式,建立在某種數(shù)據(jù)結(jié)構(gòu)模型基礎(chǔ)上。外模式:也稱子模式、用戶模式、用戶視圖;是對數(shù)據(jù)庫用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。一個數(shù)據(jù)庫可以有多個外模式,每個外模式描述了某個特定用戶所使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。外模式還是保證數(shù)據(jù)安全的有力措施,每個用戶只能看見和訪問所對應(yīng)的外模式中的數(shù)據(jù),其它數(shù)據(jù)對他是不可見的。內(nèi)模式:也稱物理模式、存儲模式;是對數(shù)據(jù)庫中數(shù)據(jù)的物理結(jié)構(gòu)和存儲方式的描述,代表了數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式和物理組織結(jié)構(gòu);1.3.3二級映象與數(shù)據(jù)獨(dú)立性外模式/模式映象:定義了數(shù)據(jù)庫中不同用戶的外模式與數(shù)據(jù)庫邏輯模式之間的對應(yīng)關(guān)系;可有多個外模式/模式映象,對于每個外模式,需要一個外模式/模式映象來定義該外模式與模式之間的對應(yīng)關(guān)系;當(dāng)模式發(fā)生變化時,只需調(diào)整外模式/模式間的映象關(guān)系,而外模式無需修改,保證了數(shù)據(jù)與應(yīng)用程序的邏輯獨(dú)立性,稱為數(shù)據(jù)的邏輯獨(dú)立性。模式/內(nèi)模式映象:定義了數(shù)據(jù)庫中數(shù)據(jù)全局邏輯結(jié)構(gòu),與這些數(shù)據(jù)在系統(tǒng)中的物理存儲組織結(jié)構(gòu)之間的對應(yīng)關(guān)系。模式/內(nèi)模式映象是唯一的;當(dāng)內(nèi)模式發(fā)生變化時,只需調(diào)整模式/內(nèi)模式映象關(guān)系,而模式無需修改,保證了數(shù)據(jù)庫中的數(shù)據(jù)與應(yīng)用程序間的物理獨(dú)立性,稱為數(shù)據(jù)的物理獨(dú)立性。1.4數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu):是指數(shù)據(jù)庫系統(tǒng)的組成構(gòu)件、各構(gòu)件的功能及各構(gòu)件間的協(xié)同工作方式;分類:集中式:全部數(shù)據(jù)和數(shù)據(jù)管理功能均集中在一臺計算機(jī)上的數(shù)據(jù)庫系統(tǒng);包括單用戶和主從式兩種,單用戶DBS是指系統(tǒng)由一個用戶獨(dú)占,不同機(jī)器間不能共享數(shù)據(jù);主從式DBS是指一個主機(jī)帶多個分時多用戶的DBS;分布式:數(shù)據(jù)庫中的數(shù)據(jù)在邏輯上是一個整體,但在物理上卻可以分布在網(wǎng)絡(luò)中不同數(shù)據(jù)管理節(jié)點(diǎn)上;客戶/服務(wù)器:將DBMS和數(shù)據(jù)庫應(yīng)用分開,網(wǎng)絡(luò)中某些節(jié)點(diǎn)上的計算機(jī)專門執(zhí)行DBMS功能,負(fù)責(zé)數(shù)據(jù)管理服務(wù),稱為數(shù)據(jù)庫服務(wù)器;其他節(jié)點(diǎn)的計算機(jī)上安裝DBMS的外圍應(yīng)用開發(fā)工具,支持用戶的應(yīng)用,主要負(fù)責(zé)數(shù)據(jù)表示服務(wù),稱為客戶端;并行式:硬件平臺是并行計算機(jī)系統(tǒng),使用多個CPU和多個磁盤進(jìn)行并行數(shù)據(jù)處理和磁盤訪問操作,以提高執(zhí)行速度;WEB式:由通過互聯(lián)網(wǎng)連接起來的客戶端、WEB服務(wù)器、數(shù)據(jù)庫服務(wù)器組成。1.5數(shù)據(jù)庫管理系統(tǒng)1.5.1數(shù)據(jù)庫管理系統(tǒng)的功能數(shù)據(jù)定義功能:DBMS提供了數(shù)據(jù)定義語言(DDL),用戶利用DDL定義數(shù)據(jù)庫對象的三級模式結(jié)構(gòu),描述數(shù)據(jù)庫的結(jié)構(gòu)特征。數(shù)據(jù)操縱功能:DBMS提供數(shù)據(jù)操縱語言(DML),用戶利用DML對數(shù)據(jù)進(jìn)行查詢、插入、刪除或更新;數(shù)據(jù)庫運(yùn)行管理和控制功能數(shù)據(jù)庫的建立和維護(hù)功能1.5.2數(shù)據(jù)庫系統(tǒng)的全局結(jié)構(gòu)DBS可分為用戶、人機(jī)交互界面、DBMS和磁盤四個層次;用戶可分為四類:數(shù)據(jù)庫管理員DBA;專業(yè)用戶;應(yīng)用程序員;終端用戶;DBMS可分為兩部份:查詢處理器:面向用戶查詢請求;包括以下幾個功能模塊:DML編譯器、嵌入式DML的預(yù)編譯器、DDL編譯器、查詢執(zhí)行引擎;存儲管理器:面向數(shù)據(jù)存儲訪問,包括以下幾個功能模塊:權(quán)限和完整性管理器、事務(wù)管理器、文件管理器、緩沖區(qū)管理器;磁盤存儲的類型:以數(shù)據(jù)庫文件方式存儲的應(yīng)用數(shù)據(jù);數(shù)據(jù)字典;為提高查詢速度而設(shè)置的數(shù)據(jù)庫引擎;DMS運(yùn)行時的統(tǒng)計分析數(shù)據(jù);日志信息。1.6數(shù)據(jù)庫技術(shù)的發(fā)展和應(yīng)用第一代DBS:60年代末70年代初,層次型和網(wǎng)狀型DBS;第二代DBS:70年代后期,關(guān)系數(shù)據(jù)庫系統(tǒng);新型DBS:80年代,分布式數(shù)據(jù)庫系統(tǒng);90年代,面向?qū)ο髷?shù)據(jù)庫系統(tǒng)、網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)第二章數(shù)據(jù)庫應(yīng)用系統(tǒng)生命周期2.1數(shù)據(jù)庫應(yīng)用系統(tǒng)生命周期2.1.1軟件工程與軟件開發(fā)方法軟件工程:指導(dǎo)計算機(jī)軟件開發(fā)和維護(hù)的工程科學(xué),它采用工程化的概念、原理、技術(shù)和方法,以及正確的項目管理技術(shù),來開發(fā)和維護(hù)軟件;它將系統(tǒng)化、規(guī)范化、定量化方法應(yīng)用于軟件的開發(fā)、操作和維護(hù),也就是將工程化應(yīng)用于軟件生產(chǎn);軟件工程的目標(biāo):在給定成本、進(jìn)度的前提下,開發(fā)出滿足用戶需求并具有下述特征的軟件產(chǎn)品:可修改性、有效性、可靠性、可理解性、可維護(hù)性、可重用性、可適應(yīng)性、可移植性、可追蹤性和可互操作性。軟件生命周期:指軟件產(chǎn)品從考慮其概念開始,到該產(chǎn)品交付使用的整個時期,包括概念階段、需求階段、設(shè)計階段、實現(xiàn)階段、測試階段、安裝部署及交付階段;軟件項目管理:為了能使軟件開發(fā)按預(yù)定的質(zhì)量、進(jìn)度和成本進(jìn)行,而對成本、質(zhì)量、進(jìn)度、人員、風(fēng)險等進(jìn)行分析和有效管理的一系列活動。軟件工程以關(guān)注軟件質(zhì)量為特征,由方法、工具和過程三部分組成;軟件過程模型(軟件開發(fā)模型):是對軟件過程的一種抽象表示,表示了軟件過程的整體框架和軟件開發(fā)活動各階段間的關(guān)系,常見的有:瀑布模型、快速原形模型、增量模型和螺旋模型。2.1.2DBAS軟件組成數(shù)據(jù)庫應(yīng)用軟件在內(nèi)部可看作由一系列軟件模塊/子系統(tǒng)組成,這些模塊/子系統(tǒng)可分成兩類:與數(shù)據(jù)訪問有關(guān)的數(shù)據(jù)庫事務(wù)模塊:利用DBMS提供的數(shù)據(jù)庫管理功能,以數(shù)據(jù)庫事務(wù)方式直接對數(shù)據(jù)庫中的各類應(yīng)用數(shù)據(jù)進(jìn)行操作,模塊粒度較小;與數(shù)據(jù)訪問無直接關(guān)聯(lián)的應(yīng)用模塊:在許多與數(shù)據(jù)處理有關(guān)的應(yīng)用系統(tǒng)中,對數(shù)據(jù)庫的訪問只是整體中的一部分,其他功能則與數(shù)據(jù)庫訪問無直接關(guān)系,這部分模塊粒度可以比較大。DBAS設(shè)計開發(fā)的硬件方面:主要涉及根據(jù)系統(tǒng)的功能、性能、存儲等需求選擇和配置合適的計算機(jī)硬件平臺,并與開發(fā)好的DBAS軟件系統(tǒng)進(jìn)行集成,組成完整的數(shù)據(jù)庫應(yīng)用系統(tǒng);2.1.3DBAS生命周期模型數(shù)據(jù)庫應(yīng)用系統(tǒng)的生命周期模型:參照軟件開發(fā)瀑布模型的原理,DBAS的生命周期由項目規(guī)劃、需求分析、系統(tǒng)設(shè)計、實現(xiàn)和部署、運(yùn)行管理與維護(hù)等5個基本活動組成;將快速原形模型和增量模型的開發(fā)思路引入DBAS生命周期模型,允許漸進(jìn)、迭代地開發(fā)DBAS;根據(jù)DBAS的軟件組成和各自功能,細(xì)化DBAS需求分析和設(shè)計階段,引入了數(shù)據(jù)組織與存儲設(shè)計、數(shù)據(jù)訪問與處理設(shè)計、應(yīng)用設(shè)計三條設(shè)計主線,分別用于設(shè)計DBAS中的數(shù)據(jù)庫、數(shù)據(jù)庫事務(wù)和應(yīng)用程序;將DBAS設(shè)計階段細(xì)分為概念設(shè)計、邏輯設(shè)計、物理設(shè)計三個步驟,每一步的設(shè)計內(nèi)容又涵蓋了三條設(shè)計主線。2.2規(guī)劃與分析2.2.1系統(tǒng)規(guī)劃與定義定義:系統(tǒng)規(guī)劃與分析是面向?qū)⒁_發(fā)的DBAS,通過了解用戶實際需求,明確該系統(tǒng)需要實現(xiàn)的目標(biāo)和任務(wù),并從數(shù)據(jù)管理和數(shù)據(jù)處理的角度,確定系統(tǒng)中數(shù)據(jù)庫軟件的功能、性能范圍;系統(tǒng)規(guī)劃與定義包括:任務(wù)陳述:描述所要開發(fā)的DBAS的總體目標(biāo);確定任務(wù)目標(biāo);確定系統(tǒng)范圍和邊界;確定用戶視圖;2.2.2可行性分析可行性分析包括以下四方面:經(jīng)濟(jì)可行性:對項目進(jìn)行成本效益分析;DBAS的成本主要包括:A、軟硬件購置費(fèi)用;B、系統(tǒng)開發(fā)費(fèi)用;C、系統(tǒng)安裝、運(yùn)行、維護(hù)費(fèi)用。技術(shù)可行性:是根據(jù)用戶提出的系統(tǒng)功能、性能及實現(xiàn)系統(tǒng)的各項約束條件,對系統(tǒng)軟件、硬件、技術(shù)方案作出評估和選擇建議;硬件可行性研究是分析DBAS的硬件平臺環(huán)境和設(shè)置;軟件可行性研究包括:對可用的DBMS和操作系統(tǒng)的選型評估,對中間件和開發(fā)環(huán)境的選型建議,對DBAS開發(fā)模式和編程語言的建議;技術(shù)方案的選擇是根據(jù)系統(tǒng)技術(shù)需求,提出DBAS可能采用的合理技術(shù)方案和關(guān)鍵技術(shù);操作可行性:是論證是否具備DBAS開發(fā)所需的各類人員資源、軟件資源、硬件資源和工作環(huán)境等,以及為支持DBAS開發(fā)如何去改進(jìn)加強(qiáng)這幾方面資源。開發(fā)方案選擇:目的是提出并評價實現(xiàn)系統(tǒng)的各種開發(fā)方案,從中選出一種適用于DBAS軟件的開發(fā)方案;2.2.3項目規(guī)劃項目規(guī)劃是項目管理者對資源、成本和進(jìn)度做出合理估算,并在此基礎(chǔ)上制定切實可行的DBAS項目開發(fā)計劃。項目規(guī)劃包括以下內(nèi)容:確定項目的目標(biāo)和范圍;根據(jù)DBAS軟件開發(fā)模型,分解和定義整個項目包括的工作活動和任務(wù);估算完成該項目的規(guī)模和所需各種資源;制定合理的DBAS項目計劃3、項目規(guī)劃的結(jié)果應(yīng)形成數(shù)據(jù)庫應(yīng)用系統(tǒng)項目計劃文檔,即項目計劃書。2.3需求分析數(shù)據(jù)庫應(yīng)用系統(tǒng)需求是指用戶對DBAS在功能、性能、行為、設(shè)計約束等方面的期望和要求;DBAS需求分析是在已經(jīng)明確的DBAS系統(tǒng)范圍基礎(chǔ)上,通過對應(yīng)用問題的理解和分析,采用合適的工具和符號,系統(tǒng)地描述DBAS的功能特征、性能特征和約束,并形成需求規(guī)范說明文檔;需求分析過程由需求獲取、需求分析、需求描述和規(guī)范說明、需求驗證等組成;DBAS的需求分析包括:數(shù)據(jù)需求分析;數(shù)據(jù)處理需求分析;業(yè)務(wù)需求分析;分析數(shù)據(jù)庫系統(tǒng)在性能、存儲、安全、備份與恢復(fù)等方面的要求;2.3.1數(shù)據(jù)與數(shù)據(jù)處理需求分析數(shù)據(jù)需求分析:是從對數(shù)據(jù)組織與存儲的設(shè)計角度,辨識應(yīng)用領(lǐng)域所管理的各類數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu),與數(shù)據(jù)處理需求分析結(jié)果一起,組成數(shù)據(jù)字典;數(shù)據(jù)處理需求分析:是從數(shù)據(jù)訪問和處理的角度,明確對各類數(shù)據(jù)項所需進(jìn)行的數(shù)據(jù)訪問操作,分析結(jié)果可表示為數(shù)據(jù)流圖或事務(wù)規(guī)范;事務(wù)規(guī)范包括:(1)事務(wù)名稱;(2)事務(wù)描述;(3)事務(wù)所訪問的數(shù)據(jù)項;(4)事務(wù)用戶;2.3.2業(yè)務(wù)規(guī)則需求分析1、業(yè)務(wù)規(guī)則需求分析:是從DBAS高層目標(biāo)和整體功能出發(fā),分析系統(tǒng)或系統(tǒng)中一些大粒度子系統(tǒng)應(yīng)具有的業(yè)務(wù)類型和功能,明確用戶或外部系統(tǒng)與DBAS的交互模式;2.3.3性能需求分析DBAS的性能指標(biāo):數(shù)據(jù)操作響應(yīng)時間(或數(shù)據(jù)訪問響應(yīng)時間):從提交請求到返回結(jié)果的時間;系統(tǒng)吞吐量:指系統(tǒng)在單位時間內(nèi)所完成的事務(wù)或查詢的數(shù)量,單位為TPS;允許并發(fā)訪問的最大用戶數(shù):在保證響應(yīng)時間的前提下,系統(tǒng)最多允許多少用戶同時訪問數(shù)據(jù)庫;每TPS代價值,用于衡量系統(tǒng)性價比的指標(biāo)影響DBAS性能的因素:系統(tǒng)硬件資源;網(wǎng)絡(luò)通信設(shè)備性能;操作系統(tǒng)環(huán)境;數(shù)據(jù)庫的邏輯設(shè)計和物理設(shè)計質(zhì)量,數(shù)據(jù)庫配置參數(shù);DBAS的配置和性能;數(shù)據(jù)庫應(yīng)用程序自身。2.3.4其它需求分析存儲需求分析:是指估計DBAS系統(tǒng)需要的數(shù)據(jù)存儲量,包括:(1)初始數(shù)據(jù)庫大?。唬?)數(shù)據(jù)庫增長速度;存儲總量估算可采用:根據(jù)數(shù)據(jù)字典中每個數(shù)據(jù)項的結(jié)構(gòu)描述信息,估計每個數(shù)據(jù)項的容量,將所有數(shù)據(jù)項的容量累加;安全性需求分析:DBAS系統(tǒng)應(yīng)達(dá)到的安全控制級別;各類用戶的數(shù)據(jù)視圖和視圖訪問權(quán)限;DBAS應(yīng)有的口令保護(hù)機(jī)制或其它安全認(rèn)證機(jī)制,用以控制用戶登錄數(shù)據(jù)庫系統(tǒng)。備份和恢復(fù)需求分析:DBAS運(yùn)行過程中備份數(shù)據(jù)庫的時間和備份周期;所需備份的數(shù)據(jù)是全部數(shù)據(jù)庫數(shù)據(jù),還是一部分;備份方式是采用完全備份還是采用差異備份。2.4系統(tǒng)設(shè)計2.4.1概念設(shè)計數(shù)據(jù)庫概念模型設(shè)計:是根據(jù)數(shù)據(jù)需求分析階段得到的需求結(jié)果,分析辨識需要組織存儲在數(shù)據(jù)庫中的各類應(yīng)用領(lǐng)域數(shù)據(jù)對象的特征及其相互之間關(guān)聯(lián)關(guān)系,并采用概念數(shù)據(jù)模型表示出來,得到獨(dú)立于具體DBMS的數(shù)據(jù)庫概念模型;ER方法:(1)選擇局部應(yīng)用;(2)分別設(shè)計各個局部ER圖;(3)局部ER圖合并;系統(tǒng)總體設(shè)計:確定DBAS體系結(jié)構(gòu);系統(tǒng)硬件平臺和操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)等系統(tǒng)軟件的選型和配置;應(yīng)用軟件結(jié)構(gòu)設(shè)計對需求分析階段識別出的業(yè)務(wù)規(guī)則進(jìn)行初步設(shè)計,細(xì)化業(yè)務(wù)規(guī)則流程,明確采用的關(guān)鍵技術(shù)和算法;對系統(tǒng)采用的關(guān)鍵技術(shù)進(jìn)行方案選型和初步設(shè)計。2.4.2邏輯設(shè)計數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計:指從數(shù)據(jù)庫的概念模型出發(fā),設(shè)計表示為邏輯模式的數(shù)據(jù)庫邏輯結(jié)構(gòu)。ER圖轉(zhuǎn)換為初始關(guān)系模式;對初始關(guān)系模式進(jìn)行優(yōu)化;檢查關(guān)系表對數(shù)據(jù)庫事務(wù)的支持性;確定關(guān)系模式的完整性約束;從數(shù)據(jù)安全性和獨(dú)立性出發(fā),設(shè)計用戶視圖。應(yīng)用程序概要設(shè)計(II);數(shù)據(jù)庫事務(wù)概要設(shè)計;2.4.3物理設(shè)計數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計:主要指數(shù)據(jù)文件在外存上的存儲結(jié)構(gòu)和存取方法,它依賴于系統(tǒng)具體的硬件環(huán)境、操作系統(tǒng)和DBMS;數(shù)據(jù)庫邏輯模式調(diào)整;選擇或配置基本關(guān)系表的文件組織形式;數(shù)據(jù)分布設(shè)計;安全模式設(shè)計;確定系統(tǒng)配置;物理模式評估;數(shù)據(jù)庫事務(wù)詳細(xì)設(shè)計:根據(jù)事務(wù)流程,利用SQL語句、數(shù)據(jù)庫訪問接口,采用高級程序設(shè)計語言或DBMS提供的事務(wù)實現(xiàn)機(jī)制,設(shè)計數(shù)據(jù)庫事務(wù)。應(yīng)用程序詳細(xì)設(shè)計:2.5實現(xiàn)與部署建立數(shù)據(jù)庫結(jié)構(gòu);數(shù)據(jù)加載;事務(wù)和應(yīng)用程序的編碼及測試;系統(tǒng)集成、測試與試運(yùn)行;系統(tǒng)部署;2.6運(yùn)行管理與維護(hù)2.6.1日常維護(hù)數(shù)據(jù)庫的備份與恢復(fù)完整性維護(hù)安全性維護(hù)存儲空間管理并發(fā)控制及死鎖處理2.6.2系統(tǒng)性能監(jiān)控和分析統(tǒng)計數(shù)據(jù)可以通過兩種途徑收集:由DBMS本身自動收集和存儲統(tǒng)計數(shù)據(jù)通過監(jiān)控系統(tǒng)得到2.6.3系統(tǒng)性能優(yōu)化調(diào)整糸統(tǒng)性能優(yōu)化的手段有:數(shù)據(jù)查詢調(diào)整與優(yōu)化、索引調(diào)整、數(shù)據(jù)庫摸式調(diào)整、DBMS和操作系統(tǒng)參數(shù)調(diào)整等。模式調(diào)整主要涉及邏輯模式調(diào)整,可以從下考慮:已達(dá)到第三范式的基本表,不要進(jìn)一步規(guī)范化為BCNF;在分布式數(shù)據(jù)庫中,對一個基本表中某些頻繁被訪問的數(shù)據(jù),可以按水平分區(qū)或垂直分區(qū)方式拆分基本表。2.6.4系統(tǒng)升級改進(jìn)應(yīng)用桯序;數(shù)據(jù)庫重組;DBMS和OS版本升級第3章需求分析及功能建模方法3.1需求分析概述3.1.1需求分析概念所謂需求分折:就是對待開發(fā)的系統(tǒng)要做什么,完成什么功能的全面描述。需求分析的工作:通過對需求的調(diào)查、了解、觀察和分析,通過對原始數(shù)據(jù)的收集、分類和抽象,并采用有效的技術(shù)、工具,對原始資料進(jìn)行加工整理,描述開發(fā)目標(biāo)、實現(xiàn)的功能及其相互關(guān)系等活動的集合;需求的定義:客戶對一個待開發(fā)的系統(tǒng)在實現(xiàn)目標(biāo)、完成功能、應(yīng)達(dá)到的性能、安全性、可靠性等方面的期望和要求的集合;需求獲取的困難:軟件功能復(fù)雜;需求的可變性;需求分析階段的主要任務(wù):分析當(dāng)前的業(yè)務(wù)流程,包括體系結(jié)構(gòu),各職能部門完成的主要任務(wù)、關(guān)系及其交流的信息。需求分析的結(jié)果通常以模型等建模工具和方法描述系統(tǒng)的信息流、功能結(jié)構(gòu)及完成各功能需要的數(shù)據(jù)。功能模型和軟件需求規(guī)格說明書是軟件開發(fā)的依據(jù),將指導(dǎo)后續(xù)的開發(fā)工作。需求分析工作是系統(tǒng)分析員與用戶不斷交互的過程中完成的。3.1.2系統(tǒng)分析員的職能系統(tǒng)分析員的主要要任務(wù):是確定應(yīng)用信息系統(tǒng)及軟件產(chǎn)品應(yīng)該達(dá)到的各項功能性要求和非功能性要求,即用戶要做什么。系統(tǒng)分析員應(yīng)該具備的素質(zhì):獲取需求的能力;管理及溝通能力;技術(shù)素養(yǎng);3.1.3需求獲取的方法常用的幾種獲取需求的方法:(1)面談;(2)實地觀察;(3)問卷調(diào)查;(4)查閱資源;3.1.4需求分析過程標(biāo)識問題:需求分析的第一步,通過對問題的識別和標(biāo)識獲得所求解問題及其運(yùn)行環(huán)境的理解;標(biāo)識問題從現(xiàn)行系統(tǒng)的業(yè)務(wù)流程做起,理解現(xiàn)行系統(tǒng)的業(yè)務(wù)流程;在標(biāo)識理解需求的同時,還要注意確定系統(tǒng)的人機(jī)界面;2、建立需求模型:模型是對現(xiàn)實原形所作的一種抽象,其本質(zhì)是只關(guān)心與研究內(nèi)容有關(guān)的因素,而忽略無關(guān)的因素,其目的是把復(fù)雜的事物變得簡單,便于認(rèn)識和分析;目前常用的模型方法主要有DFD數(shù)據(jù)流圖和IDEFO,都屬于結(jié)構(gòu)化分析方法,其特征是抽象和分解;首先對應(yīng)用領(lǐng)域進(jìn)行全面的分析,發(fā)現(xiàn)并找出同類事物的本質(zhì),用抽象方法把這類事物的非主要方面剔除,把握住事物的內(nèi)部規(guī)律或本質(zhì),就可以找到解決辦法;然后采用自上而下逐步求精的方法對復(fù)雜的問題進(jìn)行分解;結(jié)構(gòu)化分析及建模方法的主要優(yōu)點(diǎn):不過早陷入具體的細(xì)節(jié);從整體或宏觀入手分析問題;通過圖形化的模型對象直觀地表示系統(tǒng)要做什么,完成什么功能;圖形化建模方法方便系統(tǒng)分析員理解和描述系統(tǒng);模型對象不涉及太多的技術(shù)術(shù)語,便于用戶理解;3、描述需求:需求描述的目標(biāo):對軟件項目功能性和非功能性的需求全面描述;功能性需求:指需要計算機(jī)實際解決的問題或?qū)崿F(xiàn)的具體功能,明確描述系統(tǒng)必須做什么,實現(xiàn)什么功能以及輸入輸出等;非功能性需求:軟件項目對實際運(yùn)行環(huán)境的要求;需求描述主要由需求模型和需求說明書組成,說明書側(cè)重文字說明,內(nèi)容如下:需求概述;功能需求;信息需求;性能需求;環(huán)境需求;其他需求;在對需求進(jìn)行分析過程中,系統(tǒng)分析員要經(jīng)??紤]的問題:描述的需求是完全的嗎?需求描述是正確的和一致的嗎?描述的這些需求是可行的、實際可操作的嗎?描述中的每一條需求都是客戶需要的嗎?4、確認(rèn)需求:評審委員會審核下列內(nèi)容:功能需求;數(shù)據(jù)需求;性能;數(shù)據(jù)管理;其他需求。3.2DFD建模方法3.2.1DFD方法的基本對象數(shù)據(jù)流:具有名字且有流向的數(shù)據(jù),用標(biāo)有名字的箭頭表示。處理:表示對數(shù)據(jù)的加工和變換,在圖中用矩形框表示。數(shù)據(jù)存儲:表示用數(shù)據(jù)庫形式存儲的數(shù)據(jù),對其存取分別以指向或離開數(shù)據(jù)存儲的箭頭表示;數(shù)據(jù)源及數(shù)據(jù)終點(diǎn):表示當(dāng)前系統(tǒng)的數(shù)據(jù)來源和去向,其圖形符號以平行四邊形表示。3.2.2開發(fā)DFD圖DFD圖采用自頂而下逐步細(xì)化的結(jié)構(gòu)化分析方法表示目標(biāo)系統(tǒng);DFD方法應(yīng)以軟件項目的功能為中心進(jìn)行抽象和分解,以數(shù)據(jù)流的變換來分析數(shù)據(jù)對企業(yè)中各類業(yè)務(wù)活動的影響;3.2.4數(shù)據(jù)字典數(shù)據(jù)字典包括以下說明信息:源點(diǎn)及終點(diǎn)詞條描述;數(shù)據(jù)流詞條描述;數(shù)據(jù)存儲;處理描述;數(shù)據(jù)元素詞條描述。3.3IDEF0建模方法3.3.1概述IDEF0的基本思想是結(jié)構(gòu)化分析方法,強(qiáng)調(diào)自頂而下有控制地逐步地展開細(xì)節(jié),全面地描述系統(tǒng),且通過建模來理解一個系統(tǒng)。一個模型由圖形文字說明、詞匯表及相互的交叉引用表組成。IDEF方法的優(yōu)點(diǎn):具有模型元素單一、語義豐富、更易于從全局角度分析考察問題,模型容易理解。3.3.2IDEF0方法1、基本元素矩形:代表活動,活動名稱標(biāo)在矩形內(nèi),活動編號按要求標(biāo)在矩形框右下角指定位置;箭頭:左邊的輸入箭頭代表完成活動需要的數(shù)據(jù)、上方的控制箭頭描述了影響活動的執(zhí)行的事件或約束、右邊的輸出箭頭說明由活動產(chǎn)生的結(jié)果及信息、下方進(jìn)入的機(jī)制箭頭表示實施該活動的物理手段或資源。輸入輸出箭頭描述活動是什么(what)、控制箭頭描述為何這么做(why)、機(jī)制箭頭表示如何做(how)。2、IDEF0模型一個IDEF0模型由一組圖形組成,這些圖形組成一個由父到子的層次結(jié)構(gòu)圖,這組圖形把一個復(fù)雜事物按自頂向下逐步細(xì)化的方式分解成一個個簡單的或多個組成部分;建模規(guī)則矩形框:用動詞為矩形內(nèi)活動命名,每個矩形要至少有一個控制箭頭和輸出箭頭,可以沒有輸入,但不可以同時沒有輸入和控制。箭頭:箭頭代表數(shù)據(jù)約束,而不是代表流或順序;其他:ICOM碼:只有一端與矩形相連的箭頭叫邊界箭頭,這些箭頭表示父矩形框的輸入、控制和輸出。IDEF0用專門的記號ICOM碼來說明父子圖中的箭頭關(guān)系。子圖中每個邊界箭頭的開端分別用字母I、C、O、M來標(biāo)明是輸入、控制、輸出及機(jī)制,再用一個數(shù)字表示其在父矩形框中箭頭的相對位置。結(jié)點(diǎn)號:IDEF0模型是一組有一定層次結(jié)構(gòu)的圖形,通常用結(jié)點(diǎn)號來標(biāo)志圖形或矩形框在層次圖中的位置;模型名:每個模型有一個名字,通常用名字代表主題,用子名字表示不同的模型?;久峙c子名字間用“/”隔開,如A/B/C,A是主題、B是模型號、C是結(jié)點(diǎn)號。3.3.3建模過程及步驟IDEF0建模過程及步驟:明確目的,確定范圍:在建模前首先要明確目的和意圖,確定問題域;建立內(nèi)外關(guān)系圖A-0圖:根據(jù)系統(tǒng)目標(biāo)、功能建立內(nèi)外關(guān)系圖A-0圖,以確定整個模型的內(nèi)外關(guān)系,確定系統(tǒng)的邊界;構(gòu)造頂層圖:把A-0圖分解成3~6個主要部分得到A0圖,A0圖是模型真正的頂層圖;開發(fā)IDEF0層次結(jié)構(gòu)圖:對A0圖中的每個矩形框進(jìn)行分解,就形成了基本的圖形層次結(jié)構(gòu)。在分解時要列出所有的數(shù)據(jù)項和活動表,分解的次序采用以下原則:保持在同一水平上進(jìn)行分解,均勻的模型深度;按困難程序進(jìn)行選擇;寫文字說明;檢查確認(rèn)圖形;3.4DFD與IDEF0的比較DFD與IDEF0共同點(diǎn):都是結(jié)構(gòu)化分析思想,強(qiáng)調(diào)自頂而下逐步求精的方法對現(xiàn)實世界建模,先抓住主要的問題,形成較高層次的抽象,再由粗到細(xì)、由表及里地逐步細(xì)化,將一個大問題分解成幾個小問題,對這小問題再進(jìn)行分析求解;DFD與IDEF0區(qū)別:DFD圖用箭頭(數(shù)據(jù)流)來描述數(shù)據(jù)移動的方向、數(shù)據(jù)處理及處理之間的數(shù)據(jù)依賴關(guān)系。IDEF0圖也用箭頭代表數(shù)據(jù)流,但在IDEF0中不是強(qiáng)調(diào)流或順序,而是強(qiáng)調(diào)數(shù)據(jù)約束。從表達(dá)形式上看,DFD圖與IDEF0圖都是用箭頭和處理表達(dá)一個企業(yè)或組織的業(yè)務(wù)流程。但I(xiàn)DEF0圖的箭頭不僅能夠表示數(shù)據(jù)流,還可以表示控制流和說明處理或?qū)嵤┓绞降囊恍┘s束;從模型元素的組成上來看,DFD模型由4種元素組成,即外部頂、數(shù)據(jù)流、數(shù)據(jù)存儲和處理。而IDEF0模型元素的組成更加簡單,只有2種元素組成,即箭頭和活動;從模型規(guī)范上來講,IDEF方法更加規(guī)范;IDEF0模型結(jié)構(gòu)清楚,便于理解和溝通。第四章數(shù)據(jù)庫概念設(shè)計及數(shù)據(jù)建模4.1數(shù)據(jù)庫概念設(shè)計概述4.1.1數(shù)據(jù)庫概念設(shè)計的任務(wù)定義和描述應(yīng)用領(lǐng)域涉及的數(shù)據(jù)范圍;獲取應(yīng)用領(lǐng)域或問題域的信息模型;描述清楚數(shù)據(jù)的屬性特征;描述清楚數(shù)據(jù)之間的關(guān)系;定義和描述數(shù)據(jù)的約束;說明數(shù)據(jù)的安全性要求;支持用戶的各種數(shù)據(jù)處理需求;保證信息模型方便地轉(zhuǎn)換成數(shù)據(jù)庫的邏輯結(jié)構(gòu),同時便于用戶理解。4.1.2概念設(shè)計過程概念設(shè)計的依據(jù):是需求分析階段的文檔,通過對這些文檔的分析理解,構(gòu)造出信息模型,編寫數(shù)據(jù)庫概念設(shè)計說明書,信息模型和數(shù)據(jù)庫概念設(shè)計說明書是數(shù)據(jù)庫邏輯設(shè)計的依據(jù);概念設(shè)計的基本步驟:確定實體集;確定聯(lián)系和聯(lián)系類型;建立由信息模型表示的企業(yè)模型;確定實體集屬性;對信息模型優(yōu)化。4.2數(shù)據(jù)建模方法數(shù)據(jù)建模方法的共同特點(diǎn)是:能夠真實客觀地描述現(xiàn)實世界中的數(shù)據(jù)及數(shù)據(jù)之間的關(guān)系;組成模型的概念少,語義清楚,容易理解;不同概念的語義不重疊,概念無多義性;用圖形方式描述數(shù)據(jù),數(shù)據(jù)直觀易懂,有利于數(shù)據(jù)庫設(shè)計者和用戶交流;這種數(shù)據(jù)模型容易轉(zhuǎn)換成數(shù)據(jù)庫邏輯設(shè)計階段需要的數(shù)據(jù)結(jié)構(gòu)。4.3ER建模方法4.3.1基本概念實體或?qū)嵗褐缚陀^存在并可相互區(qū)分的事物,可以是一個具體的人或物,也可以是抽象的事件或概念;實體集:表示一個現(xiàn)實的和抽象事物的集合,這些事物必須具有相同的屬性或特征。屬性:用于描述一個實體集的性質(zhì)和特征;碼:實體集中能惟一標(biāo)識每一個實例的屬性或?qū)傩越M;聯(lián)系:描述現(xiàn)實世界中實體之間的關(guān)系。(1)一對一聯(lián)系;(2)一對多聯(lián)系;(3)多對多聯(lián)系4.3.2ER方法語法ER方法中用矩形框表示實體集,矩形框內(nèi)寫上實體集的名稱;ER模型用菱形表示聯(lián)系,聯(lián)系名寫在菱形框內(nèi);ER模型中實體集的屬性用橢圓或圓角矩形框表示,屬性名字寫在其中。4.4IDEF1X建模方法4.4.1IDEF1X概述IDEF0側(cè)重描述系統(tǒng)功能,被稱為功能建模方法;IDEF1X側(cè)重分析、抽象和概括應(yīng)用領(lǐng)域中的數(shù)據(jù),稱為數(shù)據(jù)建模方法;IDEF1X方法具有豐富的語法和語義;實體集分為(1)獨(dú)立標(biāo)識符實體集;(2)從屬標(biāo)識符實體集;實體集之間的聯(lián)系分為:(1)標(biāo)定型聯(lián)系;(2)非標(biāo)定型聯(lián)系;(3)分類聯(lián)系;(4)不確定聯(lián)系4.4.2IDEF1X模型元素實體集:實體集語義:如果一個實體集的每一個實例都能被惟一地標(biāo)識,而不決定于它與其他實體的聯(lián)系,那么該實體集稱為獨(dú)立實體集;否則就叫從屬實體集;實體集語法:IDEF1X用矩形框來表示獨(dú)立實體集,用圓角矩形框來表示從屬實體集;聯(lián)系:聯(lián)系語義:標(biāo)定型聯(lián)系:一個“確定型聯(lián)系”中,如果子女實體集中的每個實例都是由它與雙親的聯(lián)系而確定的,這個關(guān)系稱為“標(biāo)定型聯(lián)系”;非標(biāo)定型聯(lián)系:一個“確定型聯(lián)系”中,如果子女實體集中的每一個實例都能被惟一地確認(rèn)而無需了解與之相聯(lián)系的雙親實體集的實例,這個問題關(guān)系叫“非標(biāo)定型聯(lián)系”。分類聯(lián)系:是兩個或多個實體集之間的聯(lián)系,且在這些實體集中存在一個一般實體集,它的每一個實例都恰好與一個且僅一個分類實體集的一個實例相聯(lián)系。不確定聯(lián)系:一個非確定聯(lián)系又稱為多對多聯(lián)系,這種聯(lián)系關(guān)聯(lián)的兩個實體集之間,任一實體集的一個實例都將對應(yīng)另一實體集的0個、1個或多個實例。聯(lián)系的語法:標(biāo)定聯(lián)系語法:在IDEF1X圖中,聯(lián)系的語法用直線表示,在一個標(biāo)定型聯(lián)系中,子女實體集總是一個從屬實體集,用圓角矩形框表示;非標(biāo)定聯(lián)系語法:如果兩個實體集之間有關(guān)系,并且是一個非標(biāo)定聯(lián)系,就用一條虛線把它們連接起來。分類聯(lián)系語法:一般實體集的一個實例只能與分類實體集的一個實例相對應(yīng);不確定聯(lián)系m:n的語法:不確定聯(lián)系用一個兩端帶有實心圓的線段描述,表示多對多的連接關(guān)系。屬性屬性的語義:用來描述一類現(xiàn)實或抽象事物的特征或性質(zhì)。一個屬性的具體取值叫屬性實例,它由屬性的類型和值來定義。屬性的語法主碼和非主碼屬性語法:在一個實體集中屬性要有惟一的名字,屬性名由名詞表示,主碼屬性名后加(PK)標(biāo)注,被列在屬性列表的頂端,并用水平線將主碼和其他屬性分開。外碼語法:在外碼屬性后加“FK”來識別由聯(lián)系繼承得到的外來屬性。4.4.3建模過程1、第一階段:建模規(guī)劃及準(zhǔn)備建模目標(biāo):目標(biāo)說明:回答將構(gòu)造的模型完成什么功能,涉及的問題和數(shù)據(jù)范圍,同時說明是一個當(dāng)前系統(tǒng)模型還是待建模型。范圍說明:在建模初期要給出模型覆蓋的問題范圍;建模計劃項目說明;收集數(shù)據(jù);定義實體;定義聯(lián)系;定義碼屬性;定義非碼屬性;確認(rèn)模型;評審驗收。組織隊伍:包括項目負(fù)責(zé)人、建模者、信息源、課題專家、評審委員會第二階段:定義實體集目標(biāo)是標(biāo)識和定義應(yīng)用領(lǐng)域中的實體集,方法是分類標(biāo)識原始材料中的所有名詞;區(qū)別實體集名詞和非實體集名詞的方法,是否具有下列特征:它能夠被描述或說明嗎?有多少同類的實例嗎?每個實例可以被標(biāo)識和區(qū)分嗎?第三階段:定義聯(lián)系標(biāo)識實體集之間的聯(lián)系:建立聯(lián)系矩陣,聯(lián)系矩陣由一個二維數(shù)組表示。把實體集沿水平和垂直兩方向列出,分析兩個實體間的聯(lián)系,有聯(lián)系就用“X”表示,不存在聯(lián)系用“null”表示。聯(lián)系只標(biāo)識直接關(guān)系,不標(biāo)識間接關(guān)系。定義聯(lián)系:包括表示依賴、命名聯(lián)系、關(guān)于聯(lián)系的說明;當(dāng)實體集之間的依賴關(guān)系建立后,就可以命名聯(lián)系了。聯(lián)系的名字可以動詞表示。原則必須是具體的、簡明的和有意義的。構(gòu)造實體級數(shù):實體級圖的范圍和數(shù)目,依賴于建模的規(guī)模和建模問題涉及的實體集數(shù)目。第四階段:定義健分解不確定的聯(lián)系:把實體級圖中不確定的關(guān)系轉(zhuǎn)換成確定的連接形式,把每一個不確定的聯(lián)系轉(zhuǎn)換成為兩個確定的聯(lián)系;標(biāo)識碼屬性:碼屬性是那些能夠惟一識別實體集中每一個實例的屬性;遷移主碼:把一個實體集的主碼復(fù)制到其他有關(guān)實體集的過程,但要遵守以下規(guī)則:在一個聯(lián)系中,遷移總是從父到子或從一般實體集移向分類實體集;主碼屬性才能被遷移,如主碼由多個屬性組成,則要全部遷移;第五階段:定義屬性標(biāo)識和定義非主屬性;建立屬性的所有者;確認(rèn)屬性的定義;繪制局部數(shù)據(jù)視圖;實體集的名稱和編號寫在矩形框外的上面;主碼屬性寫在矩形框內(nèi)水平線的上面并用“PK”標(biāo)注;外碼屬性寫在矩形框內(nèi)水平線的下面并用“FK”標(biāo)注;非主屬性也可以寫在矩形框內(nèi)水平線的下面;第五章關(guān)系數(shù)據(jù)庫邏輯設(shè)計5.1概述5.2基本概念5.2.1關(guān)系模型關(guān)系模型采用一個二維表格在計算機(jī)中組織、存儲、處理和管理數(shù)據(jù)。關(guān)系名(數(shù)據(jù)庫名):由字母數(shù)字組成;屬性名;關(guān)系模式和關(guān)系:描述模式描述關(guān)系的靜態(tài)結(jié)構(gòu),由模式名、關(guān)系模式所包含的屬性及屬性值所滿足的條件組成模式定義。元組:描述關(guān)系中的行;域:它定義關(guān)系的每個屬性取值的類型;主碼:能夠惟一標(biāo)識關(guān)系中每一個元組的屬性或?qū)傩越M;關(guān)系的數(shù)學(xué)定義:關(guān)系模式是建立在集合集論的基礎(chǔ)上的,用數(shù)學(xué)的概念定義關(guān)系有;定義一:域是值的集合,同一個域中的值具有相同的數(shù)據(jù)類型;定義二:定義三:當(dāng)關(guān)系引用了屬性名后關(guān)系具有以下屬性:[1]不能有重復(fù)的元組;[2]元組上下無序;[3]按屬性名引用時屬性左右無序;[4]所有屬性值都是原子項(不可再分);總結(jié):關(guān)系是一張二維表,表中的一行被稱為一個元組,一列稱為屬性,由一組域值組成。關(guān)系是元組的集合,關(guān)系中的每個元組在數(shù)學(xué)上被定義為這個關(guān)系所涉及的全部域值中笛卡兒積的一個元素。5.2.2關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫是按照二維表組織和存儲的相互關(guān)聯(lián)的關(guān)系的集合,關(guān)系數(shù)據(jù)庫模式是關(guān)系模式的集合;5.2.3關(guān)系的完整性關(guān)系的完整性(完整性約束):是對關(guān)系的某種約束規(guī)則和關(guān)系滿足的定義。通常這組約束規(guī)則用來限定和檢查數(shù)據(jù)庫所含實例的合法性和正確性;完整性約束分靜態(tài)和動態(tài)兩種,靜態(tài)完整性約束是基于關(guān)系模式的,主要有主碼、外碼約束和域約束組成;動態(tài)完整性約束是基于企業(yè)的業(yè)務(wù)規(guī)則的。靜態(tài)完整性約束規(guī)則:主碼約束:主碼必須滿足:惟一性:在一個關(guān)系中不存在兩個元組,它們具有相同的主碼值;最小性:不存在從組成主碼的屬性集中去掉一個屬性,還仍能保持?jǐn)?shù)據(jù)的惟一性;外碼約束:用戶定義的完整性:5.3關(guān)系數(shù)據(jù)庫設(shè)計理論5.3.1問題的提出究竟一個關(guān)系數(shù)據(jù)庫包含哪些屬性是合理的,如何評價一個關(guān)系模式設(shè)計的優(yōu)劣?5.3.2函數(shù)依賴函數(shù)依理論利用一個關(guān)系中屬性之間的依賴關(guān)系評價和優(yōu)化關(guān)系模式,以保證存儲到數(shù)據(jù)庫中的關(guān)系具有較好特性;函數(shù)依賴:設(shè)R(U)為一關(guān)系模式,X和Y為屬性全集U的子集,若對于R(U)的任意一個可能的關(guān)系r,r中不可能存在兩個元組在X上的屬性值相等,而在Y上的屬性值不等,則稱“X函數(shù)決定Y”或“Y函數(shù)依賴于X”,并記作XY,其中X稱為決定因素,因為根據(jù)函數(shù)依賴定義,給定一個X,就能惟一決定一個Y。這里討論的函數(shù)關(guān)系與數(shù)學(xué)上的不同,是不能計算的,是一個關(guān)系中屬性之間存在的依賴關(guān)系;它是一種語義范疇的概念,只能根據(jù)兩個屬性之間的語義來確定一個函數(shù)依賴是否存在。完全與部分函數(shù)依賴:在關(guān)系模式R(U)中,如果XY成立,并且對X的任何真子集X’不能函數(shù)決定Y,則稱Y對X是完全函數(shù)依賴,被記作X---f---Y。若XY,但Y不完全函數(shù)依賴于X,則稱Y對X是部分函數(shù)依賴,記作X--pY;傳遞函數(shù)依賴:在關(guān)系R(U)模式中,如果X決定Y,(Y不屬于X),Y不決定X,Y決定Z,則稱Z對X傳遞函數(shù)依賴。平凡與非平凡函數(shù)依賴:若X決定Y,但Y屬于X,則稱XY是平凡函數(shù)依賴,否則稱非平凡函數(shù)依賴;即平凡函數(shù)依賴,僅當(dāng)其右邊的屬性集是左邊屬性集的子集時成立;非平凡函數(shù)依賴,僅當(dāng)其右邊的屬性集至少有一個屬性不屬于左邊有集合時成立;完全非平凡函數(shù)依賴:僅當(dāng)其右邊的屬性集中屬性都不在左邊的集合時成立;碼:在關(guān)系模式R(U)中,K為R的屬性或?qū)傩越M,若K函數(shù)決定A1.A2….An,則K為關(guān)系模式R的候選碼,包含在候選碼中的屬性稱為主屬性,否則為非主屬性;若一個關(guān)系的候選碼不止一個,則選定其中一個作為關(guān)系R的主碼;關(guān)系的碼屬性除了必須完全函數(shù)決定關(guān)系的所有其他屬性外,還必須滿足最小化規(guī)則,即在關(guān)系模式R(U)中,不存在一個K的真子集能夠函數(shù)決定R的其他屬性。函數(shù)依賴的推理規(guī)則:自反律:若Y(包含于)X(包含于)U,則XY成立;增廣律:若XY,且Z(包含于)U,則XZYZ成立;傳遞律:若XY,YZ,則XZ成立;合并規(guī)則:若XY,XZ成立,則XYZ;分解規(guī)則:若XY和Z(包含于)Y成立,則XZ也成立;偽傳遞規(guī)則:若XY,YWZ,則XWZ成立;屬性集閉包:設(shè)F是屬性集U上的函數(shù)依賴集,X為U的一個子集,那么對于F,屬性集X關(guān)于F的閉包(用X+表示)為:X+={A|XA}由屬性集團(tuán)包的定義可知,若想判斷函數(shù)依賴XY是否成立,只要計算X關(guān)于函數(shù)依賴集F的閉包,若Y是X閉包中的一個元素則XY成立;確定關(guān)系的碼:利用迭代算法計算X+,步驟如下:選X作為閉包X+的初值X(0);由X(i)計算X(i+1)時,它是由X(0)并上屬性集合A所組成,其中A滿足下列條件:Y(包含于)X(i),且F中存在函數(shù)依賴YZ,而A(包含于)Z。因為U是有窮的,所以會得到X(i)=X(i+1),此時X(i)為所求的X+。5.3.3規(guī)范化設(shè)計方法第一范式:定義:設(shè)關(guān)系模式R(F,U),如果R的每一個屬性都是不可分的數(shù)據(jù)項,則此關(guān)系模式為第一范式;一個給定關(guān)系和第一范式(1NF)的區(qū)別:一個關(guān)系中的數(shù)據(jù)按照行和列的形式組織,每個元組具有相同數(shù)目的屬性個數(shù),且每一個元組的屬性值具有統(tǒng)一的數(shù)據(jù)類型和長度;元組或?qū)傩缘呐帕信c順序無關(guān),每個元組必須通過一個屬性或?qū)傩越M惟一識別;第一范式實際上對關(guān)系增加了一個約束,即關(guān)系中元組的每個屬性都只取一個值,第一范式是對關(guān)系模式的基本要求,不滿足第一范式的數(shù)據(jù)庫就不是關(guān)系數(shù)據(jù)庫。第二范式:定義:若關(guān)系模式R(F,U)是1NF,且每個非主屬性完全函數(shù)依賴于碼,則稱R為第二范式,即在2NF中不存在非主屬性對碼的部分依賴;僅滿足第一范式關(guān)系會存在種種問題,要消除必須用更高級的范式標(biāo)準(zhǔn)來設(shè)計,稱為標(biāo)準(zhǔn)化;具體做法是將大的關(guān)系分解成多個小的關(guān)系,使分解后的關(guān)系滿足更高級范式的要求。第二范式實際上對關(guān)系增加了一個約束,就是關(guān)系中的每一個屬性必須完全依賴于主碼,即在第一范式的基礎(chǔ)上,消除非主屬性對主碼的部分函數(shù)依賴可達(dá)到2NF;第三范式:定義:若關(guān)系R(U,F(xiàn))為第一范式,且不存在非主屬性對主碼的傳遞函數(shù)依賴,則稱R為第三范式;第三范式是在第二范式的基礎(chǔ)上對關(guān)系又增加了一個約束,就是關(guān)系中的每一個非主屬性必須只依賴于主碼。即2NF的基礎(chǔ)上,消除非主屬性對主碼的傳遞函數(shù)依賴可達(dá)到3NF。改進(jìn)的第三范式:定義:如果關(guān)系模式R是1NF,且每個屬性既不相存在部分函數(shù)依賴也不存在傳遞函數(shù)依賴于候選碼,則稱R是改進(jìn)的第三范式(BCNF)。多值依賴與4NF:多值依賴:表示關(guān)系中屬性(如A、B、C)之間的依賴,對于A的每個值,都存在一個B或C的值的集合,而且B和C的值相互獨(dú)立,記為:AB、AC第四范式:如果關(guān)系模式R屬于1NF,對于R的每個非平凡的多值依賴XY(Y不屬于X),X含有候選碼,則R是第四范式。即是從BCNF范式中消除主碼內(nèi)的獨(dú)立依賴集(非平凡多值依賴)可達(dá)4NF;連接依賴與5NF連鎖依賴:設(shè)關(guān)系模式R,R的屬性子集為R1、R2、R3、R4、R5、R6、R7….,當(dāng)且僅當(dāng)R的每個合法值等于R1、R2、R3、R4、R5、R6、R7…的投影連接時,稱R滿足連接依賴;第五范式:設(shè)R是一個滿足5NF的關(guān)系模式,當(dāng)且僅當(dāng)R的每一個非平凡連接依賴都被R的候選碼所蘊(yùn)含,即從4NF中消除非候選碼所蘊(yùn)含的連接依賴為5NF;總結(jié):范式表達(dá)了關(guān)系模式滿足的條件,也是衡量關(guān)系模式設(shè)計優(yōu)劣的標(biāo)準(zhǔn);利用范式進(jìn)行規(guī)范化設(shè)計的目的是消除數(shù)據(jù)冗余,避免出現(xiàn)異常,使結(jié)構(gòu)更合理;規(guī)范化設(shè)計的基本過程是對關(guān)系進(jìn)行的分解,消除屬性間不合理的數(shù)據(jù)依賴,用一組等價的子關(guān)系代替原有的關(guān)系;數(shù)據(jù)庫規(guī)范化的程序越高,其關(guān)系表就越多,從而增加了表之間連接運(yùn)算的代價,影響了數(shù)據(jù)庫的執(zhí)行速度和性能。所以通常關(guān)系模式規(guī)范化工作僅做到3NF,這樣既使關(guān)系中不合理的屬性基本消除,規(guī)范化程度也不太高,保證數(shù)據(jù)庫有較好的性能。5.4數(shù)據(jù)庫模式設(shè)計5.4.1初始關(guān)系模式的設(shè)計把ER圖轉(zhuǎn)換成關(guān)系模式:把ER模型中的每個實體集轉(zhuǎn)換成一個同名的關(guān)系,實體集的屬性就是關(guān)系的屬性,實體集的碼就是關(guān)系的碼;把ER模型中的每個聯(lián)系轉(zhuǎn)換成一個關(guān)系,與該聯(lián)系相連的各實體集的碼以及聯(lián)系的屬性轉(zhuǎn)換成為關(guān)系的屬性。若聯(lián)系為1:1,則每個實體集的碼均是該關(guān)系的候選碼;若聯(lián)系為1:n,則關(guān)系的碼為n端實體集的碼;若聯(lián)系為m:n,則關(guān)系的碼為各實體集碼的組合;合并具有相同碼的關(guān)系檢查確認(rèn)對象:檢查轉(zhuǎn)換后的每個關(guān)系名和屬性名是否符合數(shù)據(jù)庫設(shè)計關(guān)于統(tǒng)一命名的約定;5.4.2優(yōu)化關(guān)系模式模式分解原則:分解具有無損連接性:分解后的關(guān)系能夠恢復(fù)成原來的關(guān)系;分解保持函數(shù)依賴:無損連接和保持函數(shù)依賴是用于衡量一個模式分解是否導(dǎo)致原有模式中部分信息丟失的兩個標(biāo)準(zhǔn);當(dāng)一個關(guān)系被分解后會出現(xiàn)幾種結(jié)果,既有無損連接,又能保持函數(shù)依賴是較理想的分解結(jié)果,意味著在分解的過程中沒有丟失原有模式的任何信息;一般情況下,分解到3NF就足夠了,但在3NF關(guān)系下,仍存在一定程度上的更新異?;虿灰恢碌碾[患,但與數(shù)據(jù)庫性能比較起來是可以忽略的,因為在數(shù)據(jù)庫設(shè)計過程中通過增加一些數(shù)據(jù)約束,就可以解決3NF引起的數(shù)據(jù)問題了。優(yōu)化屬性:確定各字段的類型和長度;確認(rèn)模式滿足需要:5.4.3數(shù)據(jù)完整性設(shè)計指定義數(shù)據(jù)庫中存儲的數(shù)據(jù)值滿足的約束條件,通過對存儲的數(shù)據(jù)值的約束維護(hù)關(guān)系的完整性。數(shù)據(jù)值滿足條件分為:域約束:限制指定列的取值及范圍;主碼約束:定義每個關(guān)系的主碼值不空,且惟一;引用完整性約束:定義不同模式的屬性間滿足的條件,及一個關(guān)系模式中屬性間可能滿足的條件;5.4.4安全模式和外模式的設(shè)計根據(jù)選定的DBMS支持的安全控制特征來確定;根據(jù)不同用戶對數(shù)據(jù)庫存取特點(diǎn)定義相關(guān)的外模式;第六章存儲技術(shù)與數(shù)據(jù)庫物理設(shè)計6.1文件組織6.1.1數(shù)據(jù)庫的物理結(jié)構(gòu)數(shù)據(jù)庫中的應(yīng)用數(shù)據(jù)是以文件形式存儲在外存上的,文件在邏輯上被組織成記錄的序列,即每個DB文件可看作是邏輯記錄的集合;一個文件在磁盤上占有一定的物理存儲空間,文件中的每個邏輯記錄被映射存儲到某個特定的磁盤塊上,一個文件在物理上可以看作是由存放文件記錄的一系列磁盤塊組成,稱為物理文件;文件的邏輯記錄與磁盤間的映射關(guān)系是由操作系統(tǒng)或DBMS來管理的,當(dāng)需要對一個文件的邏輯記錄進(jìn)行操作時,先要根據(jù)這種映射關(guān)系找到該邏輯記錄所在的磁盤塊,然后再進(jìn)行操作。從數(shù)據(jù)庫物理結(jié)構(gòu)角度需要解決如下問題:文件的組織;文件的結(jié)構(gòu);文件的存取;索引技術(shù);6.1.2文件組織數(shù)據(jù)庫與文件的對應(yīng)關(guān)系在外存中,數(shù)據(jù)庫以文件形式組織,文件由邏輯記錄組成,記錄由多個域組成;一個關(guān)系數(shù)據(jù)庫包括一張或多張關(guān)系表,關(guān)系表與文件的對應(yīng)關(guān)系有如下方式:每張關(guān)系表單獨(dú)用一個文件來存儲,由DBMS通過OS的文件管理功能來管理;現(xiàn)代中大型DBMS是由OS直接分配一塊大的磁盤空間,DBMS將該磁盤空間作為數(shù)據(jù)庫磁盤文件直接管理,DB的所有關(guān)系表都存儲在該文件中;關(guān)系表在邏輯上由一系列元組組成,元組由多個屬性組成,每個元組可以用磁盤文件中的一個邏輯記錄來存儲,記錄包括多個域,對應(yīng)元組的多個屬性;2、文件記錄格式:數(shù)據(jù)庫文件通常采用兩種邏輯記錄格式:定長記錄格式和變長記錄格式;6.2文件結(jié)構(gòu)與存取6.2.1堆文件堆文件也稱無序文件,記錄隨機(jī)在存儲在文件物理空間是,新插入的記錄存儲在文件的末尾;堆文件常常用作存儲那些將來使用,但目前不清楚如何使用的記錄,為了實現(xiàn)文件記錄的有效存取,堆文件經(jīng)常與附加的存取路徑一起使用;查找操行平均需要搜索(B+1)/2個磁盤塊,效率比較低;插入操作十分簡單,先讀文件頭,找到最末磁盤地址,將最末磁盤塊讀入內(nèi)存,將需插入的新記錄寫入磁盤塊的末端,最后將修改過的磁盤塊寫回磁盤;刪除比較復(fù)雜,可以先找到被刪除記錄所在的磁盤塊,讀入內(nèi)存后在內(nèi)存緩沖區(qū)刪除記錄,最后再寫回磁盤;也可以在每個記錄的磁盤空間增加一個刪除標(biāo)志位,當(dāng)需要刪除記錄時,將標(biāo)示位置1;6.2.2順序文件順序文件按照文件記錄在查詢碼上的取值的大小順序排列各個記錄;順序文件的每個記錄中有一個指針字段,根據(jù)查詢碼大小用指針將各個記錄按序連接起來;文件建立時,應(yīng)盡量使記錄的物理順序與查找碼的順序一致,以減少訪問磁盤塊的次數(shù);根據(jù)查詢條件對順序文件進(jìn)行查詢時,如查詢條件定義在查找碼上,則使用二分法查找技術(shù)快速找到記錄,如條件不在查找碼上,則必須從頭到尾依次掃描磁盤塊,與堆文件一致,所以順序文件的訪問效率也不高;順序文件插入工作包括定位和插入:定位:在指針鏈中找到插入的位置,即插入記錄在哪個記錄的前面;插入:如有自由空間,則在該位置插入新記錄,如沒有自由空間,則只能插入溢出塊中,重新調(diào)整記錄指針鏈關(guān)系,保證記錄順序;6.2.3聚集文件聚集文件是一種具有多種記錄類型文件,存儲了來自多個關(guān)系表的數(shù)據(jù),每個關(guān)系表對應(yīng)文件中的一種記錄類型;當(dāng)數(shù)據(jù)庫中數(shù)據(jù)量效大時,對數(shù)據(jù)庫查詢需要多次訪問磁盤文件,嚴(yán)重影響性能指標(biāo),為了降低多表操作時的磁盤訪問次數(shù),提高多表查詢速度,可采用聚集文件;聚集文件將不同關(guān)系表中有關(guān)聯(lián)關(guān)系的記錄存儲在同一磁盤塊內(nèi),從而減少多表查詢時磁盤塊的訪問次數(shù),提高處理速度;6.2.4索引文件是一種利用索引技術(shù)技術(shù)快速文件訪問的文件組織和存取方法;6.2.4散列文件是一種利用散列函數(shù)支持快速文件訪問的文件組織和存取方法;6.3索引技術(shù)6.3.1基本概念索引技術(shù):是一種快速文件訪問技術(shù),它將一個文件的每個記錄在某個或某些域(屬性)上的取值與該記錄的物理地址直接聯(lián)系起來,提供了一種根據(jù)記錄域的取值快速訪問文件記錄的機(jī)制;它的關(guān)鍵是建立取值域到記錄的物理地址劉的映射關(guān)系,這種映射關(guān)系叫索引;索引技術(shù)分類:有序索引技術(shù):利用索引文件實現(xiàn)記錄域(查找碼)取值到記錄物理地址間的映射關(guān)系,索引文件由索引記錄組成,每個記錄中記載一個索引項,索引項記錄了某個特定的查找碼值和具有該值的數(shù)據(jù)文件記錄的物理地址;散列技術(shù):利用一個散列函數(shù)實現(xiàn)記錄域取值到記錄物理地址間的直接映射關(guān)系;有序索引:有序索引作為基于索引文件的索引技術(shù),需要考慮兩個問題:(1)如何組織索引文件中的索引記錄;(2)如何從索引文件出發(fā),訪問數(shù)據(jù)文件中的數(shù)據(jù)記錄;當(dāng)需要采用有序索引機(jī)制快速訪問數(shù)據(jù)文件時,首先要為該數(shù)據(jù)文件建立一個索引文件,它是索引記錄和索引項的集合;索引文件建立的方法:首先選定某些記錄域作為查找碼,然后建立數(shù)據(jù)記錄在查找碼上的取值與物理地址間的映射關(guān)系,組成索引項。所有索引項作為索引記錄存儲在索引文件中,索引文件根據(jù)某個特定的查找碼值的順序組織為順序文件;一個數(shù)據(jù)文件可以有多個查找碼和索引文件;6.3.2有序索引的分類及特點(diǎn)聚集索引與非聚集索引對數(shù)據(jù)文件和它的一個特定的索引文件,如果數(shù)據(jù)文件中數(shù)據(jù)記錄的排列順序與索引文件中索引項的排列順序相一致,則該索引文件稱為聚集索引,否則稱為非聚集索引;在一個數(shù)據(jù)文件上除了建立一個聚集索引外,還可建立多個非聚集索引;稠密索引和稀疏索引如果數(shù)據(jù)文件中的每個查找碼都在索引文件中都對應(yīng)一個索引記錄,稱為稠密索引,如果只一部分對應(yīng),則稱為稀疏索引;主索引和輔索引在數(shù)據(jù)文件包含主碼的屬性集上建立索引稱為主索引,在非主碼屬性上建立的索引稱為輔索引;4、單層索引和多層索引單層索引(線性索引):索引項根據(jù)鍵值在索引文件中順序排列,組織成一維線性結(jié)構(gòu),每個索引項直接指向數(shù)據(jù)文件中的數(shù)據(jù)記錄;當(dāng)數(shù)據(jù)文件很大時,即使采用稀疏索引,建成的索引文件也很大,導(dǎo)致效率低下,為解決該問題,可對索引文件中的索引項本身再建立一級稀疏索引,組成2層索引結(jié)構(gòu);進(jìn)一步地,可建立多層樹型索引結(jié)構(gòu)來快速定位;6.4散列技術(shù)6.4.1散列文件散列是一種快速查找技術(shù),它利用定義在文件記錄上的查找碼,通過計算一個散列函數(shù),以散列函數(shù)值作為記錄的物理地址,實現(xiàn)對文件記錄直接快速訪問。首先指定文件記錄的一個域作為查找碼(散列域),然后定義一個查找碼上的函數(shù)(散列函數(shù)),函數(shù)的輸入為查找碼值,輸出為物理地址;一般使用桶作為基本的存儲單位,一個桶可存放多個文件記錄,物理地址可以是記錄所在的桶號,散列函數(shù)的輸出可以是桶號;6.4.2散列函數(shù)散列方法依賴于好的散列函數(shù),它應(yīng)該盡可能均勻地將查找碼分布到各個桶中,具體要滿足如下兩個條件:地址的分布是均勻的;地址的分布是隨機(jī)的;6.4.3桶溢出產(chǎn)生桶溢出的兩個原因:文件初始設(shè)計時,為文件記錄預(yù)留的存儲空間不足;散列函數(shù)的均勻分布性不好;設(shè)計散列函數(shù)時,應(yīng)根據(jù)文件大小決定物理空間,一般應(yīng)有20%余量,再設(shè)計合適的桶數(shù)目和桶大小,盡可能留有一些空閑桶,降低桶溢出的可能性;桶溢出的現(xiàn)象是難免的,需要DBS采用相應(yīng)的桶溢出處理機(jī)制;散列方法的缺點(diǎn):為了避免桶溢出。必須選一合適的散列函數(shù),但這比較復(fù)雜,而且不象索引文件那樣可以據(jù)數(shù)據(jù)記錄變化動態(tài)調(diào)整。6.5數(shù)據(jù)字典數(shù)據(jù)字典(系統(tǒng)目錄)中存儲了數(shù)據(jù)庫對象的各類描述信息和DBMS所需的控制信息,全稱數(shù)據(jù)庫元數(shù)據(jù);數(shù)據(jù)庫對象的各類描述信息:包括外模式、模式、內(nèi)模式以及它們之間的映射的描述;DBMS所需的控制信息:包括查詢優(yōu)化、安全性檢查、用戶權(quán)限驗證等;數(shù)據(jù)字典主要包括:關(guān)系模式信息;與視圖描述有關(guān)的信息;關(guān)系的存儲結(jié)構(gòu)和存取方法信息;完整性約束信息;安全性有關(guān)信息;數(shù)據(jù)庫運(yùn)行統(tǒng)計信息;6.6數(shù)據(jù)庫物理設(shè)計6.6.1設(shè)計步驟和內(nèi)容數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計:在具體的硬件環(huán)境、OS、DBMS約束下,根據(jù)數(shù)據(jù)庫邏輯設(shè)計結(jié)果,設(shè)計合適的數(shù)據(jù)庫物理結(jié)構(gòu)。目標(biāo)是存儲空間占用少、訪問效率高和維護(hù)代價低;一旦選定了硬件平臺、OS和DBMS,數(shù)據(jù)庫的數(shù)據(jù)存儲和存取方式等可用的物理模式也就隨之確定了;數(shù)據(jù)庫物理設(shè)計主要包括以下步驟:數(shù)據(jù)庫邏輯模式調(diào)整:將數(shù)據(jù)庫邏輯模式及其視圖轉(zhuǎn)換為DBMS支持的基本表和視圖,并利用DBMS提供的完整性機(jī)制設(shè)計業(yè)務(wù)規(guī)則;文件組織與存取設(shè)計:配置基本表的文件組織形式,據(jù)實際情況為基本表設(shè)計合適的存取方法和路徑;數(shù)據(jù)分布設(shè)計:安全模式設(shè)計:確定系統(tǒng)配置:物理模式評估:6.6.2數(shù)據(jù)庫邏輯模式調(diào)整物理數(shù)據(jù)庫設(shè)計首先需要根據(jù)數(shù)據(jù)庫邏輯結(jié)構(gòu)信息,設(shè)計目標(biāo)DBMS平臺支持的基本表的模式信息,這些模式信息代表了所要開發(fā)的具體目標(biāo)數(shù)據(jù)庫的結(jié)構(gòu),這個過程稱為數(shù)據(jù)庫邏輯模式調(diào)整,主要包括如下設(shè)計內(nèi)容:實現(xiàn)目標(biāo)數(shù)據(jù)庫基本表和視圖:采用目標(biāo)DBMS所支持的建表方法,設(shè)計基本表及其面向模型的完整性約束;設(shè)計基本表業(yè)務(wù)規(guī)則;6.6.3DB文件組織與存取設(shè)計1、分析事務(wù)的數(shù)據(jù)訪問特性使用事務(wù)-基本表交叉引用矩陣,分析系統(tǒng)內(nèi)數(shù)據(jù)庫事務(wù)對各個基本表的訪問情況,確定事務(wù)訪問了哪些基本表,對這些基本表執(zhí)行了何種操作,并進(jìn)一步分析各操作涉及到的基本表屬性;估計各事務(wù)的執(zhí)行頻率;對每張基本表,匯總所有作用于該表上的各事務(wù)的操作頻率信息;了解并選擇數(shù)據(jù)庫文件結(jié)構(gòu)如果數(shù)據(jù)庫中的一個基本表中的數(shù)據(jù)量很少,并且操作非常頻繁,該基本表可采用堆文件組織方式;順序文件支持基于查找碼的順序訪問,也支持快速二分查找;如果用戶查詢是基于散列域值的等值匹配,特別是如果訪問順序是隨機(jī)的,散列文件比較合適。但散列文件組織不適合以下情況:基于散列值域的非精確查詢;基于非散列域進(jìn)行查詢時;B-樹和B+樹文件是實際數(shù)據(jù)庫系統(tǒng)中使用非常廣泛的索引文件結(jié)構(gòu),適合于定義在大數(shù)據(jù)量基本表上、基于查找碼的等值查詢等;如果某此重要而頻繁的用戶查詢經(jīng)常需要進(jìn)行多表連接操作,可考慮將這些基本表組織為聚集文件;設(shè)計存取路徑:為數(shù)據(jù)庫文件設(shè)計合理的物理存儲位置;為基本表設(shè)計索引機(jī)制:索引可以提高文件存取速度,改善訪問性能,但索引由DBMS管理,它的建立、維護(hù)需要一定的系統(tǒng)開銷,數(shù)據(jù)的操作會引起索引的重新調(diào)整,還占用一定的存儲空間,可根據(jù)如下原則決定是否為一個基本表建立索引:對于經(jīng)常需要查詢、連接、統(tǒng)計操作,且數(shù)據(jù)量大的基本表可考慮建立索引,而對于經(jīng)常執(zhí)行插入、刪除、更新操作或小數(shù)據(jù)量的基本表應(yīng)盡量不建立索引;一個基本表上除了可以建立一個聚集索引外,還可以建立多個非聚集索引,但索引越多,對表內(nèi)數(shù)據(jù)更新所需的開銷越大,對于一個更新頻繁的表應(yīng)少建或不建索引;索引可以由用戶根據(jù)需要隨時創(chuàng)建或刪除,以提高數(shù)據(jù)查詢性能;6.6.4數(shù)據(jù)分布設(shè)計1、不同類型數(shù)據(jù)的物理分布各種數(shù)據(jù)在系統(tǒng)中的作用不同,使用的頻率也不一樣,應(yīng)根據(jù)實際使用情況放在合適的物理介質(zhì)上;使用頻率低但數(shù)據(jù)量大的,可以放在磁帶中,而使用頻繁,要求響應(yīng)時間短的,必須放在支持直接存取的磁盤存儲介質(zhì)上;應(yīng)用數(shù)據(jù)的劃分和分布根據(jù)數(shù)據(jù)的使用特征劃分:可將基本表劃分為頻繁使用分區(qū)和非頻繁使用分區(qū),分別存放在不同的磁盤上,對前者可考慮建立B+樹等多層索引,而后者不建立或只建立單層索引;根據(jù)時間、地點(diǎn)劃分;分布式數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)劃分:3、派生屬性數(shù)據(jù)分布派生屬性指該屬性的取值可根據(jù)表中其他屬性的取值惟一確定;對帶有派生屬性的基本表可采用兩種實現(xiàn)方式:將派生屬性作為基本表內(nèi)單獨(dú)一列,稱為派生列;派生屬性不出現(xiàn)在基本表中;關(guān)系模式的去規(guī)范化在數(shù)據(jù)庫物理設(shè)計階段,可以對考慮數(shù)據(jù)庫中某些3NF、BCNF模式是否可以降低其規(guī)范化程度,以提高查詢效率,這稱為關(guān)系模式的去規(guī)范化處理,但不滿足3NF的關(guān)系模式又可能導(dǎo)致數(shù)據(jù)庫訪問異常,因此,設(shè)計基本表時,需在規(guī)范化和查詢效率間權(quán)衡;6.6.5安全模式設(shè)計1、系統(tǒng)安全設(shè)計是指為數(shù)據(jù)庫服務(wù)器合法用戶分配用戶名和口令,使其能夠正常登錄服務(wù)器訪問所需的數(shù)據(jù),還可采用基于CA認(rèn)證的系統(tǒng)安全控制機(jī)制;數(shù)據(jù)安全設(shè)計是指通過數(shù)據(jù)庫系統(tǒng)視圖機(jī)制和授權(quán)機(jī)制為用戶對數(shù)據(jù)庫對象訪問的權(quán)限;引用數(shù)據(jù)視圖機(jī)制,只給用戶需求的那部分?jǐn)?shù)據(jù)訪問權(quán)限,防止由合法用戶造成信息泄密,另外數(shù)據(jù)視圖還可以防止基本表發(fā)生改變時,影響用戶的訪問;權(quán)限是允許用戶對一給定的數(shù)據(jù)庫對象可執(zhí)行的操作;數(shù)據(jù)庫安全設(shè)計需要根據(jù)用戶需求,采用授權(quán)機(jī)制,為用戶分配合法訪問的權(quán)限;6.6.6確定系統(tǒng)配置要根據(jù)實際應(yīng)用系統(tǒng)的運(yùn)行情況配置系統(tǒng)參數(shù);6.6.7物理模式評估在設(shè)計過程中,通過對時間效率、空間效率、維護(hù)代價和用戶要求權(quán)衡考慮,擇優(yōu)采用;評估物理數(shù)據(jù)庫的方法完全依賴所選用的DBMS,主要從定量估算各方案的存儲空間、存取時間和維護(hù)代價入手;第七章數(shù)據(jù)庫應(yīng)用系統(tǒng)功能設(shè)計7.1軟件體系結(jié)構(gòu)與設(shè)計過程7.1.1軟體體系結(jié)構(gòu)軟件體系結(jié)構(gòu)又稱軟件架構(gòu),軟件體系結(jié)構(gòu)={構(gòu)件,連接件,約束}。構(gòu)件是組成系統(tǒng)的具有一定獨(dú)立功能的不同粒度的程序模塊、獨(dú)立程序或軟件子系統(tǒng),是組成軟件的系統(tǒng)元素;連接件將不同的構(gòu)件連接起來,表示了構(gòu)件間的相互作用;約束一般是對象連接時的規(guī)則,或指明了構(gòu)件連接的條件。軟件體系結(jié)構(gòu)描述了軟件系統(tǒng)的總體組織和層次結(jié)構(gòu)、系統(tǒng)元素及其功能分配、全局控制、系統(tǒng)元素間的協(xié)調(diào)和交互、數(shù)據(jù)存取等;7.1.2軟件設(shè)計過程概要設(shè)計定義:是建立軟件系統(tǒng)的總體結(jié)構(gòu)和模塊間的關(guān)系,定義各功能模塊的接口,設(shè)計全局?jǐn)?shù)據(jù)庫、規(guī)定設(shè)計約束、制定組裝測試計劃;一個好的概要設(shè)計要求是:良好的總體結(jié)構(gòu)、功能模塊間較低的耦合度和較高的內(nèi)聚度,并盡量降低模塊接口的復(fù)雜性;可以采用層次結(jié)構(gòu)圖表示軟件總體結(jié)構(gòu),圖中節(jié)點(diǎn)代表功能模塊。詳細(xì)設(shè)計是細(xì)化概要設(shè)計產(chǎn)生的功能模塊,形成可編程的程序模塊,并用某種過程設(shè)計語言設(shè)計程序模塊的內(nèi)部細(xì)節(jié),為編寫軟件代碼提供依據(jù)??蛇x用結(jié)構(gòu)化設(shè)計方法、面向?qū)ο笤O(shè)計方法等;關(guān)于軟件總體設(shè)計一些大的DBAS可根據(jù)逐步抽象和層次化原則,將概要設(shè)計分解成兩個步驟:首先是軟件總體結(jié)構(gòu)設(shè)計,即對軟件需求進(jìn)行分解;第二步是將每個子系統(tǒng)進(jìn)一步劃分為功能模塊,定義各模塊的數(shù)據(jù)結(jié)構(gòu)、相互間交互關(guān)系;7.2DBAS總體設(shè)計7.2.1系統(tǒng)總體設(shè)計任務(wù):是根據(jù)系統(tǒng)規(guī)劃與分析結(jié)果,特別是技術(shù)可行性分析,以及系統(tǒng)需求規(guī)范,確定系統(tǒng)總體框架,作為后續(xù)設(shè)計活動的基礎(chǔ)。確定DBAS體系結(jié)構(gòu)指將系統(tǒng)從功能、層次結(jié)構(gòu)、地理分布等角度進(jìn)行分解,劃分為多個子系統(tǒng)。定義各子系統(tǒng)應(yīng)實現(xiàn)的功能,設(shè)計全局控制,明確各子系統(tǒng)間的交互和接口關(guān)系;可以從功能角度進(jìn)行分解,也可以根據(jù)DBAS自身固有的層次結(jié)構(gòu)特征進(jìn)行分解;將系統(tǒng)分解為多個子系統(tǒng)后,需選擇和設(shè)計合適的系統(tǒng)體系結(jié)構(gòu),將這些子系統(tǒng)組織起來,并設(shè)計它們之間的交互關(guān)系;DBAS體系結(jié)構(gòu)可采用一些通用體系結(jié)構(gòu),也可根據(jù)DBAS所屬的特定應(yīng)用領(lǐng)域相關(guān)的

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論