




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟考基礎(chǔ)知識專題六—數(shù)據(jù)庫知識軟考基礎(chǔ)知識專題六_數(shù)據(jù)庫知識編輯整理:尊敬的讀者朋友們:這里是精品文檔編輯中心,本文檔內(nèi)容是由我和我的同事精心編輯整理后發(fā)布的,發(fā)布之前我們對文中內(nèi)容進(jìn)行仔細(xì)校對,但是難免會有疏漏的地方,但是任然希望(軟考基礎(chǔ)知識專題六一數(shù)據(jù)庫知識)的內(nèi)容能夠給您的工作和學(xué)習(xí)帶來便利。同時也真誠的希望收到您的建議和反饋,這將是我們進(jìn)步的源泉,前進(jìn)的動力。本文可編輯可修改,如果覺得對您有幫助請收藏以便隨時查閱,最后祝您生活愉快業(yè)績進(jìn)步,以下為軟考基礎(chǔ)知識專題六—數(shù)據(jù)庫知識的全部內(nèi)容。共21頁第頁軟考基礎(chǔ)知識專題六_數(shù)據(jù)庫知識專題六:數(shù)據(jù)庫知識數(shù)據(jù)庫管理系統(tǒng)的功能和特征?數(shù)據(jù)庫模型(概念模式、外模式、內(nèi)模式)?數(shù)據(jù)模型,ER圖,第一范式、第二范式、第三范式數(shù)據(jù)操作(集合運(yùn)算和關(guān)系運(yùn)算)數(shù)據(jù)庫語言(SQL)數(shù)據(jù)庫的控制功能(并發(fā)控制、恢復(fù)、安全性、完整性)數(shù)據(jù)倉庫和分布式數(shù)據(jù)庫基礎(chǔ)知識1、數(shù)據(jù)庫知識1。1數(shù)據(jù)管理技術(shù)的發(fā)展數(shù)據(jù)管理技術(shù)的發(fā)展階段:人工階段:數(shù)據(jù)處理方式是批處理。其特點(diǎn)是:u 數(shù)據(jù)不保存u 沒有專用的軟件對數(shù)據(jù)進(jìn)行管理u 只有程序概念,沒有文件概念u 一組數(shù)據(jù)對應(yīng)一個程序,即數(shù)據(jù)是面向程序的文件系統(tǒng)階段:數(shù)據(jù)處理方式有批處理,也有聯(lián)機(jī)實(shí)時處理。其特點(diǎn)是:u 數(shù)據(jù)可長期保存在外存上u 數(shù)據(jù)的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)有了區(qū)別,但簡單u 文件組織已多樣化,有索引文件、鏈接文件和直接存取文件等,但文件之間相互獨(dú)立,沒有聯(lián)系u 數(shù)據(jù)不再屬于某個特定的程序,可重復(fù)使用,但數(shù)據(jù)結(jié)構(gòu)和程序之間的依賴關(guān)系并未根本改變.其缺點(diǎn)是:u 數(shù)據(jù)冗余性u 數(shù)據(jù)不一致性u 數(shù)據(jù)聯(lián)系弱數(shù)據(jù)庫階段:其特點(diǎn)是:u 用關(guān)系模型表示復(fù)雜的數(shù)據(jù)模型u 有較高的數(shù)據(jù)獨(dú)立性u 數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶接口u 數(shù)據(jù)庫管理系統(tǒng)提供了四個方面的數(shù)據(jù)控制能力-數(shù)據(jù)完整性、數(shù)據(jù)安全性、數(shù)據(jù)庫的并發(fā)控制、數(shù)據(jù)庫的恢復(fù)數(shù)據(jù)庫的基本概念數(shù)據(jù)庫(DB):是存儲在一起的相關(guān)數(shù)據(jù)的集合。DB能為各種用戶共享,具有最小冗余度,數(shù)據(jù)間聯(lián)系密切,而又有較高的程序與數(shù)據(jù)的獨(dú)立性.數(shù)據(jù)庫管理系統(tǒng)(DBMS):DBMS是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用程序提供訪問DB的方法,包括DB的建立、查詢、更新及各種數(shù)據(jù)控制。DBMS可分為層次型、網(wǎng)狀型、關(guān)系型、面向?qū)ο笮?數(shù)據(jù)庫系統(tǒng)(DBS):即是采用了數(shù)據(jù)庫技術(shù)的計(jì)算機(jī)系統(tǒng),是實(shí)現(xiàn)有組織地、動態(tài)存儲大量關(guān)聯(lián)數(shù)據(jù),方便多用戶訪問的計(jì)算機(jī)軟件、硬件和數(shù)據(jù)資源而組成的系統(tǒng)。軟考基礎(chǔ)知識專題六_數(shù)據(jù)庫知識數(shù)據(jù)庫技術(shù):研究數(shù)據(jù)庫的結(jié)構(gòu)、存儲、設(shè)計(jì)、管理和使用的一門軟件學(xué)科。1。2數(shù)據(jù)模型表示實(shí)體類型及實(shí)體之間聯(lián)系的模型稱為“數(shù)據(jù)模型”.數(shù)據(jù)模型是嚴(yán)格定義的概念的集合,數(shù)據(jù)庫的數(shù)據(jù)模型應(yīng)包括數(shù)據(jù)結(jié)構(gòu)(指對實(shí)體類型和實(shí)體之間聯(lián)系的表達(dá)和實(shí)現(xiàn))、數(shù)據(jù)操作(指對數(shù)據(jù)庫的檢索和更新兩大類操作)和完整性約束(給出數(shù)據(jù)及其所具有的制約合依賴規(guī)則)3個部分。數(shù)據(jù)模型的種類很多。目前廣泛使用的數(shù)據(jù)模型可分為兩種:概念數(shù)據(jù)模型和結(jié)構(gòu)數(shù)據(jù)模型。概念數(shù)據(jù)模型這是一種獨(dú)立于任何計(jì)算機(jī)系統(tǒng)的模型,完全不涉及信息在計(jì)算機(jī)系統(tǒng)中的表示,用于建立信息世界的數(shù)據(jù)模型,是現(xiàn)實(shí)世界的第一層抽象,是用戶和數(shù)據(jù)庫設(shè)計(jì)人員進(jìn)行交流的工具,其中最著名的模型是“實(shí)體聯(lián)系模型”(ER模型).ER模型直接從現(xiàn)實(shí)世界中抽取出實(shí)體類型及實(shí)體間聯(lián)系圖(ER圖)表示數(shù)據(jù)模型。一般遇到實(shí)際問題時,總是先設(shè)計(jì)一個ER模型,然后再把ER模型轉(zhuǎn)換成與DBMS關(guān)聯(lián)的數(shù)據(jù)模型。結(jié)構(gòu)數(shù)據(jù)模型(亦稱基本數(shù)據(jù)模型):這是直接面向數(shù)據(jù)庫的邏輯數(shù)據(jù)結(jié)構(gòu),通常有一組嚴(yán)格定義了語法和語義的數(shù)據(jù)庫語言,用來定義、操縱數(shù)據(jù)庫中的數(shù)據(jù)。其主要有層次、網(wǎng)狀、關(guān)系模型三種。?層次模型:用樹型(層次)結(jié)構(gòu)表示實(shí)體類型及實(shí)體之間聯(lián)系的數(shù)據(jù)模型稱為層次模型?層次結(jié)構(gòu)是一棵樹,樹的結(jié)點(diǎn)是記錄類型,非根結(jié)點(diǎn)有且只有一個父結(jié)點(diǎn)。上一層記錄類型和下一層記錄類型的聯(lián)系是1:M聯(lián)系。?網(wǎng)狀模型:用從結(jié)構(gòu)(網(wǎng)絡(luò)結(jié)構(gòu))表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為網(wǎng)狀模型。記錄之間的聯(lián)系通過指針實(shí)現(xiàn),M:N聯(lián)系容易實(shí)現(xiàn)(一個M:N聯(lián)系可拆成兩個1:M聯(lián)系),查詢效率咼.?關(guān)系模型:用規(guī)范化了的二維表格結(jié)構(gòu)表示實(shí)體集,用鍵表示實(shí)體間聯(lián)系?通常是若干個關(guān)系模型組成的集合。3數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)n數(shù)據(jù)庫的數(shù)據(jù)體系結(jié)構(gòu)數(shù)據(jù)庫的數(shù)據(jù)體系結(jié)構(gòu)分成3個級別:內(nèi)部級、概念級、外部級。從某個角度看到的數(shù)據(jù)特性稱為數(shù)據(jù)視圖.0 外部級最接近用戶,是用戶看到的數(shù)據(jù)特性,用戶的數(shù)據(jù)視圖稱為外模型。0 概念級是涉及到所有用戶的數(shù)據(jù)定義,也就是全局的數(shù)據(jù)視圖,稱為概念模型。0 內(nèi)部級是最接近于物理存儲設(shè)備,涉及到實(shí)際數(shù)據(jù)的存儲方式。物理存儲的數(shù)據(jù)視圖稱為內(nèi)模型.這些模型用數(shù)據(jù)庫的數(shù)據(jù)定義語言(DDL)描述后,分別得到外模式、概念模式、內(nèi)模式?為實(shí)現(xiàn)這3個抽象級別的轉(zhuǎn)換,數(shù)據(jù)庫和管理系統(tǒng)在這3級結(jié)構(gòu)之間提供了兩層映象:外模式/概念模式映象和概念模式/內(nèi)模式映象數(shù)據(jù)庫管理系統(tǒng)的主要目標(biāo):把數(shù)據(jù)作為可管理的資源處理。數(shù)據(jù)庫管理系統(tǒng)的5個重要功能:數(shù)據(jù)庫的定義功能、數(shù)據(jù)庫的操縱功能、數(shù)據(jù)庫的保護(hù)功能、數(shù)據(jù)庫的維護(hù)功能、數(shù)據(jù)字典.數(shù)據(jù)庫的全局結(jié)構(gòu):DBS的某些功能是由計(jì)算機(jī)的OS提供的,OS提供了DBS最基本的服務(wù),因此DBS必須在OS基礎(chǔ)上工作.在DBS中就應(yīng)包含DBMS和OS之間的界面。DBS的全局結(jié)構(gòu)由數(shù)據(jù)庫用戶、數(shù)據(jù)庫管理系統(tǒng)的查詢處理器、數(shù)據(jù)庫管理系統(tǒng)的存儲管理器和磁盤存儲器中的數(shù)據(jù)結(jié)構(gòu)等部分組成.1。4關(guān)系模型和關(guān)系運(yùn)算基本概述關(guān)系數(shù)據(jù)庫是應(yīng)用關(guān)系數(shù)據(jù)模型來建立和處理數(shù)據(jù)庫中的數(shù)據(jù)。這其中主要涉及幾個重要的概念。u 關(guān)系關(guān)系實(shí)際上就可以看作是一個二維表。其中,表的每一列稱為屬性,并用屬性名來標(biāo)識.每個屬性的取值范圍,就是該屬性所對應(yīng)的值域.表的每一行稱為元組.約定該表的行、列的次序的改變,不改變關(guān)系的語義性質(zhì)。對于一個關(guān)系,應(yīng)該具備下列性質(zhì):關(guān)系中每一個屬性值都是不可分解的;關(guān)系中不允許出現(xiàn)相同的元組;不讓用戶考慮元組的順序用戶在使用時應(yīng)考慮列的順序.u關(guān)系模型關(guān)系模型是目前最流行的一種數(shù)據(jù)模型,它是用二維表格結(jié)構(gòu)表示實(shí)體集,關(guān)鍵碼表示實(shí)體間的聯(lián)系。u關(guān)鍵字(鍵)I.候選鍵關(guān)系中的某一屬性或?qū)傩越M,若它的值可以唯一標(biāo)識關(guān)系中的一個元組而又不含有多余的屬性,則稱該屬性或?qū)傩越M為候選關(guān)鍵字。II。 主鍵關(guān)系模式中用戶正使用的候選關(guān)鍵字稱為主關(guān)鍵字。III。 外關(guān)鍵字若模式R中某屬性集是其他模式的候選鍵,那么該屬性集對模式R而言就是外關(guān)鍵字.超鍵關(guān)系模式中,為唯一標(biāo)識元組的屬性集稱為超鍵。u 關(guān)系模型關(guān)系模型遵循數(shù)據(jù)庫的3級體系結(jié)構(gòu)。u 關(guān)系模式數(shù)據(jù)庫的概念模式定義為關(guān)系模式的集合.每個關(guān)系模式就是記錄類型。u 關(guān)系子模式這是對用戶所用到的那部分?jǐn)?shù)據(jù)的描述。除了指出用戶用到的數(shù)據(jù)外,還應(yīng)指出數(shù)據(jù)與模式中相應(yīng)數(shù)據(jù)的聯(lián)系,即指出子模式與模式之間的對應(yīng)性。u 關(guān)系存儲模式(關(guān)系內(nèi)模式)這是作為文件看待的,每個元組就是一個記錄。關(guān)系模型有3個部分構(gòu)成:u 數(shù)據(jù)結(jié)構(gòu)關(guān)系模型采用的數(shù)據(jù)結(jié)構(gòu)是關(guān)系。u 關(guān)系操作關(guān)系模型提供一組完備的關(guān)系運(yùn)算,以支持對數(shù)據(jù)庫的各種操作。關(guān)系運(yùn)算的理論是關(guān)系代數(shù)和關(guān)系演算。u 關(guān)系的完整性在關(guān)系模型中,數(shù)據(jù)的約束條件通過三類完整性約束條件來描述。即:I。 實(shí)體完整性要求關(guān)系中的元組的主鍵值不能是空值。參照完整性要求在關(guān)系中不允許引用不存在的實(shí)體.III。 用戶定義的完整性這是針對某一具體數(shù)據(jù)的約束條件,由應(yīng)用環(huán)境決定,例如屬性的值限制.n 關(guān)系代數(shù)關(guān)系查詢語言根據(jù)其理論基礎(chǔ)的不同分成兩大類:u 關(guān)系代數(shù)語言:查詢操作是以集合操作為基礎(chǔ)的運(yùn)算.u 關(guān)系演算語言:查詢操作是以謂詞演算為基礎(chǔ)的運(yùn)算.其中,關(guān)系代數(shù)是以集合代數(shù)為基礎(chǔ)發(fā)展起來的,它是以關(guān)系為運(yùn)算對象的一組高級運(yùn)算的集合。關(guān)系代數(shù)的運(yùn)算可分為兩類:基本運(yùn)算操作:并、差、笛卡爾積、投影和選擇。組合運(yùn)算操作:交、聯(lián)接、自然聯(lián)接和除。另外,還有幾種擴(kuò)充的關(guān)系代數(shù)操作:外聯(lián)接(左外聯(lián)接和右外聯(lián)接)、外部并和半聯(lián)接。以下對幾種常用的關(guān)系運(yùn)算作一個簡單的介紹。u基本運(yùn)算1.并設(shè)有兩個關(guān)系R和S具有相同的關(guān)系模式,關(guān)系R和S的并是由屬于R或?qū)儆赟的元組組成的集合,記為RUS。形式定義如下:RUS三{t|teRVteS}差設(shè)有兩個關(guān)系R和S具有相同的關(guān)系模式,關(guān)系R和S的差是由屬于R但不屬于S的元組組成的集合,記為R—S。形式定義如下:R—S三{t|t^RAtGS}笛卡兒積設(shè)關(guān)系R和S元數(shù)分別為r和s.定義R和S的笛卡兒積是一個(r+s)元的元組集合,每個元組的前r個分量來自R的一個元組,后s個分量來自S的一個元組,記為RXS形式定義如下:RXS三{t|t=Vtr,ts>tr£RAts£S}若R有m個元組,S有n個元組,則RXS有(mn)個元組。投影該操作是對關(guān)系進(jìn)行垂直分割,消去某些列,并重新安排列的順序,再刪去重復(fù)元組。選擇這個操作是根據(jù)某些條件對關(guān)系作水平分割,即選擇符合條件的元組。條件可用命題公式F表示,F(xiàn)中的運(yùn)算對象是常數(shù)(用引號括起來)或元組分量(屬性名或列的序號)。運(yùn)算符有算術(shù)比較運(yùn)算符(W,V,$,>,=,主)和邏輯運(yùn)算符(A,V,n)0&f(R)三{t|tGRAF(t)=true}&為選擇運(yùn)算符,&(R)表示從R中挑選滿足公式F的元組所構(gòu)成的集合。常量用引號括起來,而屬性號或?qū)傩悦灰靡柪ㄆ饋?u 組合運(yùn)算1。 交設(shè)有兩個關(guān)系R和S具有相同的關(guān)系模式,關(guān)系R和S的交是由屬于R又屬于S的元組組成的集合,記為RDS。形式定義如下:RDS三{t|tGRAtGS}2。 聯(lián)接(又稱0聯(lián)接)軟考基礎(chǔ)知識專題六_數(shù)據(jù)庫知識從關(guān)系R和S的笛卡爾積中選取屬性值之間滿足一定條件的元組,記為:R|X|S=6i9(i+j)(RXS)ij9這里R的元數(shù)是r,e是算術(shù)比較運(yùn)算符。R|X|S操作是在R和Sije的笛卡爾積中挑選第i個分量和第(r+j)個分量滿足e運(yùn)算的元組組成的新的關(guān)系。自然聯(lián)接兩個關(guān)系R和S的自然聯(lián)接用R|X|S表示,具體計(jì)算過程如下:計(jì)算RXS設(shè)R和S的公共屬性是A1,A2,A3,。.Ak。,挑選RXS中滿足R。A1=S。A1,R.A2,。.。,R.Ak=S。Ak的那些元組去掉S.A1,S。A2,.。S.AkR|X|S可用下列形式定義:R|X|S=ni1i2,.o.,im(6R0A仁S。A1A.。。AR。Ak二S.Ak(RXS)。除法設(shè)兩個關(guān)系R和S的元數(shù)分別為r和s(r〉s>0),那么RES是一個(r—s)元的元組的集合.(RES)是滿足下列條件的最大關(guān)系,其中每個元組t與S中每個元組u組成的新元組〈t,u>必在關(guān)系R中。RES的具體計(jì)算過程如下:T=n1,2,..r-s(R)W=(TXS)—R求出TXS中不在R的元組V=n1,2,o..r-s(W)RES二T—V因此RES三n1,2,..r-s (R)-n1,2,。。r—s((n1,2,。。r—s(R)XS)-R).1.5關(guān)系數(shù)據(jù)庫SQL語言SQL數(shù)據(jù)庫的數(shù)據(jù)體系結(jié)構(gòu)SQL數(shù)據(jù)庫的數(shù)據(jù)體系結(jié)構(gòu)基本上也是3級結(jié)構(gòu),但術(shù)語與傳統(tǒng)關(guān)系模型術(shù)語不同。SQL中,關(guān)系模型稱為“基本表”,存儲模式稱為“存儲文件",子模式稱為“視圖",元組稱為“行",屬性稱為“列”。SQL語言的組成一個SQL數(shù)據(jù)庫是表的匯集,它用一個或多個SQL模式定義.一個SQL表由行集構(gòu)成,一行是列的序列,每列對應(yīng)一個數(shù)據(jù)項(xiàng).一個表或者是一個基本表,或者是一個視圖?;颈硎菍?shí)際存儲在數(shù)據(jù)庫的表,視圖是由若干基本表或其他視圖構(gòu)成的表的定義。SQL包括了所有對數(shù)據(jù)庫的操作,主要有4個部分:數(shù)據(jù)定義(SQL DDL)、數(shù)據(jù)操縱(SQL DML)、訪問數(shù)據(jù)控制、嵌入式SQL語言的規(guī)定。SQLDDL主要是定義基本表、視圖、索引3個部分:?基本表的定義、修改、撤銷基本表的定義可用“CREATETABLE”語句實(shí)現(xiàn),增加屬性可以用“ALTER。..ADD。。?!闭Z句,刪除屬性可以用“ALTER.。。DROP。.?!闭Z句;刪除已存在的表可用“DROPTABLEo.."語句。?視圖的定義和撤銷視圖的定義可以用CREATEVIEW語句實(shí)現(xiàn)。視圖的撤消可以用DROP VIEW語句實(shí)現(xiàn).?索引的定義和撤銷索引的定義可以用CREATE,用DROP撤銷。?SQLDML數(shù)據(jù)查詢語句SQL的查詢語句只有SELECT語句。?SELECT查詢語句在關(guān)系代數(shù)中最常用的式子是“投影選擇聯(lián)接表達(dá)式”:nA1,A2,, 。?。An(&F(R1XR2X。。.XRm)),這里R1,R2,??。Rm為基本表,F(xiàn)是公式,A1,A2,?。。An為屬性。針對這個表達(dá)式,SQL設(shè)計(jì)了SELECT句型:SELCET A1,A2,。。。AnFROMR1,R2,?。。RmFROMWHERE F在WHERE子句的條件表達(dá)式F中可出現(xiàn)下列操作符和運(yùn)算特點(diǎn):算術(shù)比較符、邏輯運(yùn)算符、集合運(yùn)算符集合成員資格運(yùn)算符、謂詞和聚合函數(shù).?庫函數(shù)COUNT(*)COUNT(列名)SUM(列名)COUNT(*)COUNT(列名)SUM(列名)AVG(列名)MAXMIN?SELECT語句完整的句法SELECTFROM[WHERE[GROUTBY[HAVING[DRDERBY列名)
列名)計(jì)算元組的個數(shù)對某一列中的值計(jì)算個數(shù)。求某一列值的總和
求某一列值的平均值
求某一列值中的最大值
求某一列值中的最小值目標(biāo)表的列名或列表達(dá)式序列基本表或(和)視圖序列行條件表達(dá)式列名序列組條件表達(dá)式列名[序]。?。前兩個句子是必不可少的,后面的4個句子可以缺省。整個語句的語義如下:從FROM子句中列出的表,選取滿足WHERE子句中給出的行條件表達(dá)式的元組,然后按GROUP子句(分組子句)中指定列的值分組,再提取滿足HAVING子句中組條件表達(dá)式的那些組,按SELECT子句給出的列名或列表達(dá)式求值輸出。ORDER子句(排序子句)是對輸出的目標(biāo)表進(jìn)行排序,可附加說明ASC(升序)或DESC(降序)?SQLDML的數(shù)據(jù)更新語句INSERT 插入語句DELETE 刪除語句UPDATE 修改語句?SQL的訪問控制SQL的訪問控制功能主要是指對用戶訪問數(shù)據(jù)的控制?有授權(quán)語句和回收語句。授權(quán)語句的格式如下:GRANT權(quán)限表ON表名TO用戶名表[WITHGRANTOPTION]SELECT,INSERT,DELETE,UPDATE,該語句把表的使用權(quán)授予指定的若干用戶。在有WITHGRANTOPTION短語時,被授權(quán)的用戶還可將獲得的權(quán)限再轉(zhuǎn)授給其他用戶。權(quán)限表中的權(quán)限可以有:SELECT,SELECT,INSERT,DELETE,UPDATE,INDEX,ALLPRIVILEGES。回收語句格式:REVOKE權(quán)限表ON表名FROM用戶名表該語句把已授給指定用戶的在指定表上的使用權(quán)限收回。?嵌入式SQL由于SQL是基于關(guān)系模型的語言,而高級語言是基于整數(shù)、實(shí)數(shù)、字符、記錄、數(shù)組等的數(shù)據(jù)類型,因此軟考基礎(chǔ)知識專題六_數(shù)據(jù)庫知識兩者之間有很大的區(qū)別,稱為有縫隙。為了能在宿主語言的程序中嵌入SQL語句,有一些規(guī)定:I。 在程序中要區(qū)分SQL語句和宿主語言的語句;II。 在嵌入的SQL語句中可以引用宿主語言的程序變量,但主語言的語句不能引用數(shù)據(jù)庫中的各種變量(屬性名、關(guān)系名),SQL的集合處理方式與宿主語言的單記錄處理方式之間的協(xié)調(diào)用游標(biāo)技術(shù)實(shí)現(xiàn)。1.6數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)是一項(xiàng)軟件工程,但又有自身的特點(diǎn),所以稱為“數(shù)據(jù)庫工程”。數(shù)據(jù)庫系統(tǒng)從開始規(guī)劃、設(shè)計(jì)、實(shí)現(xiàn)、維護(hù)到最后被新的系統(tǒng)取代而停止使用的整個期間,稱為數(shù)據(jù)庫系統(tǒng)生存期.此生存期可分為7個階段:規(guī)劃、需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)、實(shí)現(xiàn)、運(yùn)行和維護(hù)。按照規(guī)范設(shè)計(jì)的方法,考慮數(shù)據(jù)庫及其應(yīng)用系統(tǒng)開發(fā)全過程,將數(shù)據(jù)庫設(shè)計(jì)分為以下六個階段:?需求分析階段需求收集和分析,結(jié)果得到數(shù)據(jù)字典描述的數(shù)據(jù)需求(和數(shù)據(jù)流圖描述的處理需求)。?概念結(jié)構(gòu)設(shè)計(jì)階段通過對用戶需求進(jìn)行綜合、歸納與抽象,形成一個獨(dú)立于具體DBMS的概念模型,可以用E—R圖表示。?邏輯結(jié)構(gòu)設(shè)計(jì)階段將概念結(jié)構(gòu)轉(zhuǎn)換為某個DBMS所支持的數(shù)據(jù)模型(例如關(guān)系模型),并對其進(jìn)行優(yōu)化.?數(shù)據(jù)庫物理設(shè)計(jì)階段為邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)和存取方法)。?數(shù)據(jù)庫實(shí)施階段運(yùn)用DBMS提供的數(shù)據(jù)語言(例如SQL)及其宿主語言(例如C),根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進(jìn)行試運(yùn)行。?數(shù)據(jù)庫運(yùn)行和維護(hù)階段數(shù)據(jù)庫應(yīng)用系統(tǒng)經(jīng)過試運(yùn)行后即可投入正式運(yùn)行。在數(shù)據(jù)庫系統(tǒng)運(yùn)行過程中必須不斷地對其進(jìn)行評價(jià)、調(diào)整與修改。設(shè)計(jì)一個完善的數(shù)據(jù)庫應(yīng)用系統(tǒng)不可能一蹴而就,它往往是上述六個階段的不斷反復(fù).1。7關(guān)系數(shù)據(jù)庫規(guī)范化理論為了使數(shù)據(jù)庫設(shè)計(jì)的方法走向完備,人們研究了規(guī)范化理論,指導(dǎo)我們設(shè)計(jì)規(guī)范的數(shù)據(jù)庫模式。按屬性間依賴情況來區(qū)分,關(guān)系規(guī)范化的程度為第一范式、第二范式、第三范式、BCNF范式和第四范式等.函數(shù)依賴數(shù)據(jù)依賴是現(xiàn)實(shí)世界中屬性間聯(lián)系和約束的抽象,是數(shù)據(jù)的內(nèi)在性質(zhì)。函數(shù)依賴functionaldependency,FD)是一種最重要、最基本的數(shù)據(jù)依賴.其具體定義如下:設(shè)有關(guān)系模式R(U),X和Y是屬性集U的子集,FD是行為XTY的一個命題,只要r是R的關(guān)系,對r中任意兩個元組都有“X值相等蘊(yùn)涵Y值相等”,那么函數(shù)依賴XTY在關(guān)系模式R(U)中成立.FD與侯選鍵之間的關(guān)系:若存在X—>U,并且不存在X的任意真子集X1,使得X1->U成立,那么就稱X為關(guān)系的一個侯選鍵。函數(shù)依賴還有幾條推理規(guī)則:自反性;增廣性;傳遞性;并規(guī)則;分解規(guī)則;偽傳遞規(guī)則;?模式分解:目的是消除冗余和操作異常問題模式分解的三個定義:l 分解具有“無損連接性”l 分解要“保持函數(shù)依賴”l 分解既要“保持函數(shù)依賴” ,又要具有“無損連接性"。關(guān)系模式分解的兩個特性實(shí)際涉及到兩個數(shù)據(jù)庫模式的等價(jià)性問題。包括數(shù)據(jù)等價(jià)和依賴等價(jià)兩個方面:軟考基礎(chǔ)知識專題六_數(shù)據(jù)庫知識數(shù)據(jù)等價(jià):兩個數(shù)據(jù)庫實(shí)例應(yīng)表示同樣的信息內(nèi)容,用“無損聯(lián)接”衡量。依賴等價(jià):兩個數(shù)據(jù)庫模式應(yīng)有相互邏輯關(guān)系的函數(shù)依賴集,此時數(shù)據(jù)的語義是不會出現(xiàn)差錯的.例:關(guān)系模式S-L-C(SNO,SDEPT,SLOC,CNO,G)中,SLOC為學(xué)生的住處,并且每個系的學(xué)生住在同一個地方。這里碼為(SNO,CNO).函數(shù)依賴有:(SNO,CNO)GSNOTSDEPT,、P(SNO,CNO) SDEPTSNOTSLOC,, P(SNO,CNO) SLOCSDEPTTSLOC用投影分解把關(guān)系模式S-L-C分解為3NF范式,且保持函數(shù)依賴。解法:⑴對R〈U,F〉中的函數(shù)依賴集F進(jìn)行“極小化處理"。F二{SNO,CNOTG,SNOTSDEPT,SDEPTTSLOC}。⑵R中沒有不在F中出現(xiàn)的屬性。⑶不存在XTAF,且XA=U,接著做第二4\*GB2⑷步。⑷對F按具有相同左部的原則分組。r={SC{SNO,CNO,G},SNO,CNOTG},S-D<{SNO,SDEPT},SNOTSDEPT〉,D-L〈{SDEPT,SLOC},SDEPTTSLOC〉}?范式范式(normalform,NF)是衡量關(guān)系模式的優(yōu)劣的標(biāo)準(zhǔn)。范式有很多種,與數(shù)據(jù)依賴有著直接的聯(lián)系。第一范式1NF如果關(guān)系模式R中,每個分量是不可分的數(shù)據(jù)項(xiàng),就稱R屬于第一范式。第二范式2NF若關(guān)系模式R屬于1NF,且每個非主屬性完全函數(shù)依賴于候選關(guān)鍵字,則稱R屬于第二范式。第三范式3NF若關(guān)系模式R屬于1NF,且每個非主屬性都不傳遞依賴于R的候選關(guān)鍵字,則稱R屬于第三范式.這里的主屬性是指鍵的屬性,而不是任何鍵的屬性就是非主屬性BC范式BCNF若關(guān)系模式R屬于1NF,且每個屬性都不傳遞依賴于R的候選關(guān)鍵字,則稱R屬于BC范式。由上可知,4種范式之間的關(guān)系:BCNF<3NF〈2NF〈1NF1。8數(shù)據(jù)庫保護(hù)n 概述在數(shù)據(jù)庫系統(tǒng)運(yùn)行時,DBMS要對數(shù)據(jù)庫進(jìn)行監(jiān)控,以保證整個系統(tǒng)的正常運(yùn)轉(zhuǎn),保證數(shù)據(jù)庫中的數(shù)據(jù)安全可靠、正確有效,防止各種錯誤的產(chǎn)生,這就是對數(shù)據(jù)庫的保護(hù),有時也稱為“數(shù)據(jù)控制".這具體包括以下四個方面:uuuuuuu數(shù)據(jù)庫的恢復(fù)完整性控制(主鍵約束,外鍵約束,屬性的值域約束)并發(fā)控制(瑣機(jī)制)安全性控制(存儲控制,審計(jì),視圖保護(hù)和日志監(jiān)視)n 事務(wù)事務(wù)在數(shù)據(jù)庫里面是一個十分重要的概念.數(shù)據(jù)庫系統(tǒng)運(yùn)行的基本工作單位是事務(wù)。它相當(dāng)于操作系統(tǒng)中的進(jìn)程,一個事務(wù)由應(yīng)用程序中的一組操作序列組成。軟考基礎(chǔ)知識專題六_數(shù)據(jù)庫知識實(shí)際上,事務(wù)可以看作是一個原子,是一個不可分割的操作序列。事務(wù)中包括的所有操作要么都執(zhí)行,要么都不執(zhí)行。事務(wù)通常以BEGINTRANSACTION語句開始,它主要涉及兩個語句。uu 事務(wù)提交語句COMMITuu 事務(wù)回滾語句ROLLBACK事務(wù)的特性:事務(wù)具有四個特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持續(xù)性(Durability)。這個四個特性也簡稱為ACID特性。1.原子性:事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包括的諸操作要么都做,要么都不做。2.一致性:事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài).因此當(dāng)數(shù)據(jù)庫只包含成功事務(wù)提交的結(jié)果時,就說數(shù)據(jù)庫處于一致性狀態(tài)。如果數(shù)據(jù)庫系統(tǒng)運(yùn)行中發(fā)生故障,有些事務(wù)尚未完成就被迫中斷,系統(tǒng)將事務(wù)中對數(shù)據(jù)庫的所有已完成的操作全部撤消,滾回到事務(wù)開始時的一致狀態(tài)。3.隔離性:一個事務(wù)的執(zhí)行不能被其他事務(wù)干擾。即一個事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對其他并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行的各個事務(wù)之間不能互相干擾。4.持續(xù)性:持續(xù)性也稱永久性(Permanence),指一個事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的。接下來的其他操作或故障不應(yīng)該對其執(zhí)行結(jié)果有任何影響。數(shù)據(jù)庫恢復(fù):盡管數(shù)據(jù)庫系統(tǒng)中采取了各種保護(hù)措施來防止數(shù)據(jù)庫的安全性和完整性被破壞,保證并發(fā)事務(wù)的正確執(zhí)行,但是計(jì)算機(jī)系統(tǒng)中硬件的故障、軟件的錯誤、操作員的失誤以及惡意的破壞仍是不可避免的,這些故障輕則造成運(yùn)行事務(wù)非正常中斷,影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,重則破壞數(shù)據(jù)庫,使數(shù)據(jù)庫中全部或部分?jǐn)?shù)據(jù)丟失,因此數(shù)據(jù)庫管理系統(tǒng)(恢復(fù)子系統(tǒng))必須具有把數(shù)據(jù)庫從錯誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)(亦稱為一致狀態(tài)或完整狀態(tài))的功能,這就是數(shù)據(jù)庫的恢復(fù)。故障的種類:一、 事務(wù)內(nèi)部的故障事務(wù)內(nèi)部的故障有的是可以通過事務(wù)程序本身發(fā)現(xiàn)的(見下面轉(zhuǎn)帳事務(wù)的例子),有的是非預(yù)期的,不能由事務(wù)程序處理的。二、 系統(tǒng)故障系統(tǒng)故障是指造成系統(tǒng)停止運(yùn)轉(zhuǎn)的任何事件,使得系統(tǒng)要重新啟動。例如,特定類型的硬件錯誤(CPU故障)、操作系統(tǒng)故障、DBMS代碼錯誤、突然停電等等。這類故障影響正在運(yùn)行的所有事務(wù),但不破壞數(shù)據(jù)庫。這時主存內(nèi)容,尤其是數(shù)據(jù)庫緩沖區(qū)(在內(nèi)存)中的內(nèi)容都被丟失,所有運(yùn)行事務(wù)都非正常終止。發(fā)生系統(tǒng)故障時,一些尚未完成的事務(wù)的結(jié)果可能已送入物理數(shù)據(jù)庫,有些已完成的事務(wù)可能有一部分甚至全部留在緩沖區(qū),尚未寫回到磁盤上的物理數(shù)據(jù)庫中,從而造成數(shù)據(jù)庫可能處于不正確的狀態(tài)。為保證數(shù)據(jù)一致性,恢復(fù)子系統(tǒng)必須在系統(tǒng)重新啟動時讓所有非正常終止的事務(wù)回滾,強(qiáng)行撤消(UNDO)所有未完成事務(wù)?重做(Redo)所有已提交的事務(wù),以將數(shù)據(jù)庫真正恢復(fù)到一致狀態(tài)。三、介質(zhì)故障系統(tǒng)故障常稱為軟故障(SoftCrash),介質(zhì)故障稱為硬故障(HardCrash)。硬故障指外存故障,如磁盤損壞、磁頭碰撞,瞬時強(qiáng)磁場干擾等。這類故障將破壞數(shù)據(jù)庫或部分?jǐn)?shù)據(jù)庫,并影響正在存取這部分?jǐn)?shù)據(jù)的所有事務(wù)。這類故障比前兩類故障發(fā)生的可能性小得多,但破壞性最大。四、計(jì)算機(jī)病毒軟考基礎(chǔ)知識專題六_數(shù)據(jù)庫知識計(jì)算機(jī)病毒是具有破壞性、可以自我復(fù)制的計(jì)算機(jī)程序。計(jì)算機(jī)病毒已成為計(jì)算機(jī)系統(tǒng)的主要威脅,自然也是數(shù)據(jù)庫系統(tǒng)的主要威脅。因此數(shù)據(jù)庫一旦被破壞仍要用恢復(fù)技術(shù)把數(shù)據(jù)庫加以恢復(fù).恢復(fù)策略:1.事務(wù)故障的恢復(fù)事務(wù)故障是指事務(wù)在運(yùn)行至正常終止點(diǎn)前被中止,這時恢復(fù)子系統(tǒng)應(yīng)利用日志文件撤消(UNDO)此事務(wù)已對數(shù)據(jù)庫進(jìn)行的修改。事務(wù)故障的恢復(fù)是由系統(tǒng)自動完成的,對用戶是透明的.系統(tǒng)的恢復(fù)步驟是:⑴。反向掃描文件日志(即從最后向前掃描日志文件),查找該事務(wù)的更新操作。⑵.對該事務(wù)的更新操作執(zhí)行逆操作。即將日志記錄中“更新前的值"寫入數(shù)據(jù)庫。這樣,如果記錄中是插入操作,則相當(dāng)于做刪除操作(因此時“更新前的值"為空)。若記錄中是刪除操作,則做插入操作,若是修改操作,則相當(dāng)于用修改前值代替修改后值。⑶.繼續(xù)反向掃描日志文件,查找該事務(wù)的其他更新操作,并做同樣處理.⑷.如此處理下去,直至讀到此事務(wù)的開始標(biāo)記,事務(wù)故障恢復(fù)就完成了.2.系統(tǒng)故障的恢復(fù)前面已講過,系統(tǒng)故障造成數(shù)據(jù)庫不一致狀態(tài)的原因有兩個,一是未完成事務(wù)對數(shù)據(jù)庫的更新可能已寫入數(shù)據(jù)庫,二是已提交事務(wù)對數(shù)據(jù)庫的更新可能還留在緩沖區(qū)沒來得及寫入數(shù)據(jù)庫。因此恢復(fù)操作就是要撤消故障發(fā)生時未完成的事務(wù),重做已完成的事務(wù).系統(tǒng)故障的恢復(fù)是由系統(tǒng)在重新啟動時自動完成的,不需要用戶干預(yù).系統(tǒng)的恢復(fù)步驟是:⑴.正向掃描日志文件(即從頭掃描日志文件),找出在故障發(fā)生前已經(jīng)提交的事務(wù)(這些事務(wù)既有BEGINTRANSACTION記錄,也有COMMIT記錄),將其事務(wù)標(biāo)識記入重做(REDO)隊(duì)列。同時找出故障發(fā)生時尚未完成的事務(wù)(這些事務(wù)只有BEGINTRANSACTION記錄,無相應(yīng)的COMMIT記錄),將其事務(wù)標(biāo)識記入撤消(UNDO)隊(duì)列.⑵.對撤消隊(duì)列中的各個事務(wù)進(jìn)行撤消(UNDO)處理.進(jìn)行UNDO處理的方法是,反向掃描日志文件,對每個UNDO事務(wù)的更新操作執(zhí)行逆操作,即將日志記錄中“更新前的值”寫入數(shù)據(jù)庫。⑶.對重做隊(duì)列中的各個事務(wù)進(jìn)行重做(REDO)處理。進(jìn)行REDO處理的方法是:正向掃描日志文件,對每個REDO事務(wù)重新執(zhí)行日志文件登記的操作。即將日志記錄中“更新后的值”寫入數(shù)據(jù)庫.3.介質(zhì)故障的恢復(fù)發(fā)生介質(zhì)故障后,磁盤上的物理數(shù)據(jù)和日志文件被破壞,這是最嚴(yán)重的一種故障,恢復(fù)方法是重裝數(shù)據(jù)庫,然后重做已完成的事務(wù)。具體地說就是:⑴.裝入最新的數(shù)據(jù)庫后備副本(離故障發(fā)生時刻最近的轉(zhuǎn)儲副本),使數(shù)據(jù)庫恢復(fù)到最近一次轉(zhuǎn)儲時的一致性狀態(tài)。對于動態(tài)轉(zhuǎn)儲的數(shù)據(jù)庫副本,還須同時裝入轉(zhuǎn)儲開始時刻的日志文件副本,利用恢復(fù)系統(tǒng)故障的方法(即REDO+UNDO),才能將數(shù)據(jù)庫恢復(fù)到一致性狀態(tài)。⑵.裝入相應(yīng)的日志文件副本(轉(zhuǎn)儲結(jié)束時刻的日志文件副本),重做已完成的事務(wù)。即:軟考基礎(chǔ)知識專題六_數(shù)據(jù)庫知識首先掃描日志文件,找出故障發(fā)生時已提交的事務(wù)的標(biāo)識,將其記入重做隊(duì)列。然后正向掃描日志文件,對重做隊(duì)列中的所有事務(wù)進(jìn)行重做處理。即將日志記錄中“更新后的值”寫入數(shù)據(jù)庫.這樣就可以將數(shù)據(jù)庫恢復(fù)至故障前某一時刻的一致狀態(tài)了。介質(zhì)故障的恢復(fù)需要DBA介入。但DBA只需要重裝最近轉(zhuǎn)儲的數(shù)據(jù)庫副本和有關(guān)的各日志文件副本,然后執(zhí)行系統(tǒng)提供的恢復(fù)命令即可,具體的恢復(fù)操作仍由DBMS完成.n并發(fā)控制在多用戶共享系統(tǒng)中,許多事務(wù)可能同時對同一個數(shù)據(jù)進(jìn)行操作,這時候就產(chǎn)生了并發(fā)控制的問題。DMBS的并發(fā)控制子系統(tǒng)負(fù)責(zé)協(xié)調(diào)并發(fā)事務(wù)的執(zhí)行,保證數(shù)據(jù)庫的完整性不受破壞,同時避免用戶得到不正確的數(shù)據(jù)。同時并發(fā)方式:在多處理系統(tǒng)中,每個處理機(jī)可以運(yùn)行一個事務(wù),多個處理機(jī)可以同時運(yùn)行多個事務(wù),實(shí)現(xiàn)多個事務(wù)真正的并行運(yùn)行,這種并行方式稱為同時并發(fā)方式。并發(fā)控制機(jī)制是衡量一個數(shù)據(jù)庫管理系統(tǒng)性能的重要標(biāo)志之一.數(shù)據(jù)庫的并發(fā)操作通??赡軒硪韵碌膯栴}:uu 丟失更新問題uu 不一致分析問題(讀過時的數(shù)據(jù))uu 依賴于未提交更新問題(讀“臟”數(shù)據(jù))處理并發(fā)控制的主要方法是采用封鎖技術(shù)。封鎖是實(shí)現(xiàn)并發(fā)控制的一個非常重要的技術(shù)。封鎖:所謂封鎖就是事務(wù)T在對某個數(shù)據(jù)對象例如表、記錄等操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事務(wù)T就對該數(shù)據(jù)對象有了一定的控制,在事務(wù)T釋放它的鎖之前,其它的事務(wù)不能更新此數(shù)據(jù)對象?;镜姆怄i類型有兩種:排它鎖(ExclusiveLocks,簡記為X鎖)和共享鎖(ShareLocks,簡記為S鎖)。排它鎖:排它鎖又稱為寫鎖。若事務(wù)T對數(shù)據(jù)對象A加上X鎖,則只允許T讀取和修改A,其它任何事務(wù)都不能再對A加任何類型的鎖,直到T釋放A上的鎖?這就保證了其它事務(wù)在T釋放A上的鎖之前不能再讀取和修改A。共享鎖:共享鎖又稱為讀鎖?若事務(wù)T對數(shù)據(jù)對象A加上S鎖,則事務(wù)T可以讀A,但不能修改A,其它事務(wù)只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。這就保證了其它事務(wù)可以讀A,但在T釋放A上的S鎖之前不能對A做任何修改。有兩種類型:uu 排他型封鎖(X封鎖)uu 共享型封鎖(S封鎖)在運(yùn)用X鎖和S鎖這兩種基本封鎖,對數(shù)據(jù)對象加鎖時,還需要約定一些規(guī)則,例如應(yīng)何時申請X鎖或S鎖、持鎖時間、何時釋放等。我們稱這些規(guī)則為封鎖協(xié)議(LockingProtocol)。對封鎖方式規(guī)定不同的規(guī)則,就形成了各種不同的封鎖協(xié)議。下面介紹三級封鎖協(xié)議。對并發(fā)操作的不正確調(diào)度可能會帶來丟失修改、不可重復(fù)讀和讀“臟"數(shù)據(jù)等不一致性問題,三級封鎖協(xié)議分別在不同程度上解決了這一問題。為并發(fā)操作的正確調(diào)度提供一定的保證。不同級別的封鎖協(xié)議達(dá)到的系統(tǒng)一致性級別是不同的。一級封鎖協(xié)議是:事務(wù)T在修改數(shù)據(jù)R之前必須先對其加X鎖,直到事務(wù)結(jié)束才釋放。事務(wù)結(jié)束包括正常結(jié)束(COMMIT)和非正常結(jié)束(ROLLBACK)0二級封鎖協(xié)議是:一級封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)R之前必須先對其加S鎖,讀完后即可釋放S鎖。二級封鎖協(xié)議除防止了丟失修改,還可進(jìn)一步防止讀“臟"數(shù)據(jù)三級封鎖協(xié)議是:一級封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)R之前必須先對其加S鎖,直到事務(wù)結(jié)束才釋放。三級封鎖協(xié)議除防止了丟失修改和不讀‘臟'數(shù)據(jù)外,還進(jìn)一步防止了不可重復(fù)讀和操作系統(tǒng)一樣,封鎖的方法可能引起活鎖和死鎖.一.活鎖活鎖:如果事務(wù)T1封鎖了數(shù)據(jù)R,事務(wù)T2又請求封鎖R,于是T2等待。T3也請求封鎖R,當(dāng)T1釋放了R上的封鎖之后系統(tǒng)首先批準(zhǔn)了T3的請求,T2仍然等待。然后T4又請求封鎖R,當(dāng)T3釋放了R上的封鎖之后系統(tǒng)又批準(zhǔn)了T4的請求,。。????,T2有可能永遠(yuǎn)等待,這就是活鎖的情形二.死鎖軟考基礎(chǔ)知識專題六_數(shù)據(jù)庫知識死鎖:如果事務(wù)T1封鎖了數(shù)據(jù)R1,T2封鎖了數(shù)據(jù)R2,然后T1又請求封鎖R2,因T2已封鎖了R2,于是T1等待T2釋放R2上的鎖。接著T2又申請封鎖R1,因T1已封鎖了R1,T2也只能等待T1釋放R1上的鎖.這樣就出現(xiàn)了T1在等待T2,而T2又在等待T1的局面,T1和T2兩個事務(wù)永遠(yuǎn)不能結(jié)束,形成死鎖。死鎖的預(yù)防:在數(shù)據(jù)庫中,產(chǎn)生死鎖的原因是兩個或多個事務(wù)都已封鎖了一些數(shù)據(jù)對象,然后又都請求對已被其他事務(wù)封鎖的數(shù)據(jù)對象加鎖,從而出現(xiàn)死等待。防止死鎖的發(fā)生其實(shí)就是要破壞產(chǎn)生死鎖的條件。預(yù)防死鎖通常有兩種方法:一次封鎖法:一次封鎖法要求每個事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行.一次封鎖法雖然可以有效地防止死鎖的發(fā)生,但也存在問題,一次就將以后要用到的全部數(shù)據(jù)加鎖,勢必?cái)U(kuò)大了封鎖的范圍,從而降低了系統(tǒng)的并發(fā)度。順序封鎖法:順序封鎖法是預(yù)先對數(shù)據(jù)對象規(guī)定一個封鎖順序,所有事務(wù)都按這個順序?qū)嵭蟹怄i.順序封鎖法可以有效地防止死鎖,但也同樣存在問題。事務(wù)的封鎖請求可以隨著事務(wù)的執(zhí)行而動態(tài)地決定,很難事先確定每一個事務(wù)要封鎖哪些對象,因此也就很難按規(guī)定的順序去施加封鎖.可見,在操作系統(tǒng)中廣為采用的預(yù)防死鎖的策略并不很適合數(shù)據(jù)庫的特點(diǎn),因此DBMS在解決死鎖的問題上普遍采用的是診斷并解除死鎖的方法。2。死鎖的診斷與解除①超時法如果一個事務(wù)的等待時間超過了規(guī)定的時限,就認(rèn)為發(fā)生了死鎖。超時法實(shí)現(xiàn)簡單,但其不足也很明顯。一是有可能誤判死鎖,事務(wù)因?yàn)槠渌蚴沟却龝r間超過時限,系統(tǒng)會誤認(rèn)為發(fā)生了死鎖.二是時限若設(shè)置得太長,死鎖發(fā)生后不能及時發(fā)現(xiàn)。②等待圖法事務(wù)等待圖是一個有向圖G=(T,U)。T為結(jié)點(diǎn)的集合,每個結(jié)點(diǎn)表示正運(yùn)行的事務(wù);U為邊的集合,每條邊表示事務(wù)等待的情況?若T1等待T2,則T1、T2之間劃一條有向邊,從T1指向T2?事務(wù)等待圖動態(tài)地反映了所有事務(wù)的等待情況。并發(fā)控制子系統(tǒng)周期性地(比如每隔1分鐘)檢測事務(wù)等待圖,如果發(fā)現(xiàn)圖中存在回路,則表示系統(tǒng)中出現(xiàn)了死鎖。DBMS的并發(fā)控制子系統(tǒng)一旦檢測到系統(tǒng)中存在死鎖,就要設(shè)法解除。通常采用的方法是選擇一個處理死鎖代價(jià)最小的事務(wù),將其撤消,釋放此事務(wù)持有的所有的鎖,使其它事務(wù)得以繼續(xù)運(yùn)行下去。當(dāng)然,對撤消的事務(wù)所執(zhí)行的數(shù)據(jù)修改操作必須加以恢復(fù)。如果一個事務(wù)運(yùn)行過程中沒有其他事務(wù)同時運(yùn)行,也就是說它沒有受到其他事務(wù)的干擾,那么就可以認(rèn)為該事務(wù)的運(yùn)行結(jié)果是正常的或者預(yù)想的。因此將所有事務(wù)串行起來的調(diào)度策略一定是正確的調(diào)度策略。雖然以不同的順序串行執(zhí)行事務(wù)可能會產(chǎn)生不同的結(jié)果,但由于不會將數(shù)據(jù)庫置于不一致狀態(tài),所以都是正確的。定義:多個事務(wù)的并發(fā)執(zhí)行是正確的,當(dāng)且僅當(dāng)其結(jié)果與按某一次序串行地執(zhí)行它們時的結(jié)果相同。我們稱這種調(diào)度策略為可串行化(Serializable)的調(diào)度。另外,在封鎖技術(shù)方面,SQL提供事務(wù)的四種一致性級別,從高到低分別是:uu serializable(可串行化) uurepeatableread(可重復(fù)讀)uureadcommitted(讀提交數(shù)據(jù)) uureaduncommitted(可讀未提交數(shù)據(jù))數(shù)據(jù)庫安全:數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。為降低進(jìn)而消除對系統(tǒng)的安全攻擊,尤其是彌補(bǔ)原有系統(tǒng)在安全保護(hù)方面的缺陷,在計(jì)算機(jī)安全技術(shù)方面逐步建立了一套可信標(biāo)準(zhǔn)。在目前各國所引用或制定的一系列安全標(biāo)準(zhǔn)中,最重要的當(dāng)推1985年美國國防部(DoD)正式頒布的《DoD可信計(jì)算機(jī)系統(tǒng)評估標(biāo)準(zhǔn)》(TrustedComputerSystemEvaluationCriteria,簡記為TCSEC)[1]或DoD85)。制定這個標(biāo)準(zhǔn)的目的主要有:⑴提供一種標(biāo)準(zhǔn),使用戶可以對其計(jì)算機(jī)系統(tǒng)內(nèi)敏感信息安全操作的可信程度做出評估。⑵給計(jì)算機(jī)行業(yè)的制造商提供一種可循的指導(dǎo)規(guī)則,使其產(chǎn)品能夠更好的滿足敏感應(yīng)用的安全需求。TCSEC又稱桔皮書,1991年4月美國NCSC(國家計(jì)算機(jī)安全中心)頒布了《可信計(jì)算機(jī)系統(tǒng)評估標(biāo)準(zhǔn)關(guān)于可信數(shù)據(jù)庫系統(tǒng)的解釋》(TrustedDatabaseInterpretation簡記為TDI,即紫皮書)。將TCSEC擴(kuò)展到數(shù)據(jù)庫管理系統(tǒng)。TDI中定義了數(shù)據(jù)庫管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)中需滿足和用以進(jìn)行安全性級別評估的標(biāo)準(zhǔn)。軟考基礎(chǔ)知識專題六_數(shù)據(jù)庫知識在TCSEC中建立的安全級別之間具有一種偏序向下兼容的關(guān)系,即較高安全性級別提供的安全保護(hù)要包含較低級別的所有保護(hù)要求,同時提供更多或更完善的保護(hù)能力.下面,我們簡略地對各個等級作一介紹。D級:D級是最低級別。保留D級的目的是為了將一切不符合更高標(biāo)準(zhǔn)的系統(tǒng),統(tǒng)統(tǒng)歸于D組。如DOS就是操作系統(tǒng)中安全標(biāo)準(zhǔn)為D的典型例子。它具有操作系統(tǒng)的基本功能,如文件系統(tǒng),進(jìn)程調(diào)度等等,但在安全性方面幾乎沒有什么專門的機(jī)制來保障。C1級:只提供了非常初級的自主安全保護(hù)?能夠?qū)崿F(xiàn)對用戶和數(shù)據(jù)的分離,進(jìn)行自主存取控制(DAC),保護(hù)或限制用戶權(quán)限的傳播.現(xiàn)有的商業(yè)系統(tǒng)往往稍作改進(jìn)即可滿足要求。C2級:實(shí)際是安全產(chǎn)品的最低檔次,提供受控的存取保護(hù),即將C1級的DAC進(jìn)一步細(xì)化,以個人身份注冊負(fù)責(zé),并實(shí)施審計(jì)和資源隔離?很多商業(yè)產(chǎn)品已得到該級別的認(rèn)證?達(dá)到C2級的產(chǎn)品在其名稱中往往不突出“安全"(Security)這一特色,如操作系統(tǒng)中Microsoft的WindowsNT3。5,數(shù)字設(shè)備公司的OpenVMSVAX6。0和6。1。數(shù)據(jù)庫產(chǎn)品有Oracle公司的Oracle7,Sybase公司的SQLServer11。0.6等.B1級:標(biāo)記安全保護(hù)。對系統(tǒng)的數(shù)據(jù)加以標(biāo)記,并對標(biāo)記的主體和客體實(shí)施強(qiáng)制存取控制(MAC)以及審計(jì)等安全機(jī)制。B1級能夠較好地滿足大型企業(yè)或一般政府部門對于數(shù)據(jù)的安全需求,這一級別的產(chǎn)品才認(rèn)為是真正意義上的安全產(chǎn)品■滿足此級別的產(chǎn)品前一般多冠以 “安全”(Security)或“可信的”(Trusted)字樣,作為區(qū)別于普通產(chǎn)品的安全產(chǎn)品出售。例如,操作系統(tǒng)方面,典型的有數(shù)字設(shè)備公司的SEVMSVAXVersion6。0,惠普公司的HP—UXBLSrelease9.0。9+。數(shù)據(jù)庫方面則有Oracle公司的TrustedOracle7,Sybase公司的SecureSQLServerversion11。0.6,lnformix公司的IncorporatedINFORMIX-OnLine/Secure5。0等。B2級:結(jié)構(gòu)化保護(hù)。建立形式化的安全策略模型并對系統(tǒng)內(nèi)的所有主體和客體實(shí)施DAC和MAC。從互連網(wǎng)上的最新資料看,經(jīng)過認(rèn)證的、B2級以上的安全系統(tǒng)非常稀少。例如,符合B2標(biāo)準(zhǔn)的操作系統(tǒng)只有TrustedInformationSystems公司的TrustedXENIX一種產(chǎn)品,符合B2標(biāo)準(zhǔn)的網(wǎng)絡(luò)產(chǎn)品只有CryptekSecureCommunications公司的LLCVSLAN一種產(chǎn)品,而數(shù)據(jù)庫方面則沒有符合B2標(biāo)準(zhǔn)的產(chǎn)品。B3級:安全域.該級的TCB必須滿足訪問監(jiān)控器的要求,審計(jì)跟蹤能力更強(qiáng),并提供系統(tǒng)恢復(fù)過程.A1級:驗(yàn)證設(shè)計(jì),即提供B3級保護(hù)的同時給出系統(tǒng)的形式化設(shè)計(jì)說明和驗(yàn)證以確信各安全保護(hù)真正實(shí)現(xiàn).B2以上的系統(tǒng)標(biāo)準(zhǔn)更多地還處于理論研究階段,產(chǎn)品化以至商品化的程度都不高,其應(yīng)用也多限于一些特殊的部門如軍隊(duì)等。但美國正在大力發(fā)展安全產(chǎn)品,試圖將目前僅限于少數(shù)領(lǐng)域應(yīng)用的B2安全級別或更高安全級別下放到商業(yè)應(yīng)用中來,并逐步成為新的商業(yè)標(biāo)準(zhǔn).可以看出,支持自主存取控制的DBMS大致屬于C級,而支持強(qiáng)制存取控制的DBMS則可以達(dá)到B1級。當(dāng)然,存取控制僅是安全性標(biāo)準(zhǔn)的一個重要方面(即安全策略方面)不是全部。為了使DBMS達(dá)到一定的安全級別,還需要在其它三個方面提供相應(yīng)的支持。例如審計(jì)功能就是DBMS達(dá)到C2以上安全級別必不可少的一項(xiàng)指標(biāo)。下面介紹Oracle的安全性措施。Oracle的安全性措施主要有三個方面:一是用戶標(biāo)識和鑒定;二是授權(quán)和檢查機(jī)制;三是審計(jì)技術(shù);除此之外Oracle還允許用戶通過出發(fā)器靈活定義自己的安全性措施.用戶標(biāo)識和鑒定授權(quán)與檢查機(jī)制系統(tǒng)權(quán)限數(shù)據(jù)庫對象的權(quán)限⑴表級安全性 ⑵行級安全性 ⑶列級安全性審計(jì)技術(shù)用戶定義的安全性措施隨著計(jì)算機(jī)特別是計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,數(shù)據(jù)的共享日益加強(qiáng),數(shù)據(jù)的安全保密越來越重要.DBMS是管理數(shù)據(jù)的核心,因而其自身必須具有一整套完整而有效的安全性機(jī)制。《可信計(jì)算機(jī)系統(tǒng)評測標(biāo)準(zhǔn)》TCSEC/TDI是目前各國所引用或制定的一系列安全標(biāo)準(zhǔn)中最重要的一個.TCSEC/TDI從安全策略、責(zé)任、保證和文檔四個方面描述了安全性級別的指標(biāo)。按照這些指標(biāo),目前許多大型DBMS達(dá)到了C2級,其安全版本達(dá)到了B1。實(shí)現(xiàn)數(shù)據(jù)庫系統(tǒng)安全性的技術(shù)和方法有多種,最重要的是存取控制技術(shù)和審計(jì)技術(shù)。C2級的DBMS必須具有自主存取控制功能和初步的審計(jì)功能,B1的DBMS必須具有強(qiáng)制存取控制和增強(qiáng)的審計(jì)功能。軟考基礎(chǔ)知識專題六_數(shù)據(jù)庫知識自主存取控制功能一般是通過SQL的GRANT語句和REVOKE語句來實(shí)現(xiàn)的。1.9數(shù)據(jù)倉庫與分布式數(shù)據(jù)庫數(shù)據(jù)倉庫:隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展和企業(yè)界不斷提出新的需求,數(shù)據(jù)倉庫技術(shù)應(yīng)運(yùn)而生。傳統(tǒng)的數(shù)據(jù)庫技術(shù)是單一的數(shù)據(jù)資源,即數(shù)據(jù)庫為中心,進(jìn)行從事事務(wù)處理、批處理到?jīng)Q策分析等各種類型的數(shù)據(jù)處理工作.近年來,隨著計(jì)算機(jī)應(yīng)用,,網(wǎng)絡(luò)計(jì)算,開始向兩個不同的方向拓展,一是廣度計(jì)算,一是深度計(jì)算,廣度計(jì)算的含義是把計(jì)算機(jī)的應(yīng)用范圍盡量擴(kuò)大,同時實(shí)現(xiàn)廣泛的數(shù)據(jù)交流,互聯(lián)網(wǎng)就是廣度計(jì)算的特征,另一方面就是人們對以往計(jì)算機(jī)的簡單數(shù)據(jù)操作,提出了更高的要求,希望計(jì)算機(jī)能夠更多的參與數(shù)據(jù)分析與決策的制定等領(lǐng)域。特別是數(shù)據(jù)庫處理可以大致地劃分為兩大類:操作型處理和分析型處理(或信息型處理)。這種分離,劃清了數(shù)據(jù)處理的分析型環(huán)境與操作型環(huán)境之間的界限,從而由原來的以單一數(shù)據(jù)庫為中心的數(shù)據(jù)環(huán)境發(fā)展為一種新環(huán)境:體系化環(huán)境。數(shù)據(jù)庫系統(tǒng)作為數(shù)據(jù)管理手段,從它的誕生開始,就主要用于事務(wù)處理。經(jīng)過數(shù)十年的發(fā)展,在這些數(shù)據(jù)庫中已經(jīng)保存了大量的日常業(yè)務(wù)數(shù)據(jù).傳統(tǒng)的業(yè)務(wù)系統(tǒng)一般是直接建立在這種事務(wù)處理環(huán)境上的。隨著技術(shù)的進(jìn)步,人們試圖讓計(jì)算機(jī)擔(dān)任更多的工作,而數(shù)據(jù)庫技術(shù)也一直力圖使自己能勝任從事務(wù)處理、批處理到分析處理的各種類型的信息處理任務(wù)。后來人們逐漸認(rèn)識到,在目前的計(jì)算機(jī)處理能力上,根本無法實(shí)現(xiàn)這種功能,而且,另一方面,事物處理和分析處理具有極不相同的性質(zhì),直接使用事務(wù)處理環(huán)境來支持決策是行不通的。事務(wù)處理環(huán)境不適宜DSS應(yīng)用的原因主要有以下五條:(1) 事務(wù)處理和分析處理的性能特性不同。在事務(wù)處理環(huán)境中,用戶的行為特點(diǎn)是數(shù)據(jù)的存取操作頻率高而每次操作處理的時間短;在分析處理環(huán)境中,用戶的行為模式與此完全不同,某個DSS應(yīng)用程序可能需要連續(xù)幾個小時,從而消耗大量的系統(tǒng)資源。將具有如此不同處理性能的兩種應(yīng)用放在同一個環(huán)境中運(yùn)行顯然是不適當(dāng)?shù)?。?) 數(shù)據(jù)集成問題。DSS需要集成的數(shù)據(jù).全面而正確的數(shù)據(jù)是有效的分析和決策的首要前提,相關(guān)數(shù)據(jù)收集得月完整,得到的結(jié)果就越可靠。當(dāng)前絕大多數(shù)企業(yè)內(nèi)數(shù)據(jù)的真正狀況是分散而非集成的。造成這種分散的原因有多種,主要有事務(wù)處理應(yīng)用分散、“蜘蛛網(wǎng)"問題、數(shù)據(jù)不一致問題、外部數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。(3)數(shù)據(jù)動態(tài)集成問題。靜態(tài)集成的最大缺點(diǎn)在于,如果在數(shù)據(jù)集成后數(shù)據(jù)源中數(shù)據(jù)發(fā)生了變化,這些變化將不能反映給決策者,導(dǎo)致決策者使用的是過時的數(shù)據(jù)。集成數(shù)據(jù)必須以一定的周期(例如24小時)進(jìn)行刷新,我們稱其為動態(tài)集成。顯然,事務(wù)處理系統(tǒng)不具備動態(tài)集成的能力。(4)歷史數(shù)據(jù)問題.事務(wù)處理一般只需要當(dāng)前數(shù)據(jù),在數(shù)據(jù)庫中一般也是存儲短期數(shù)據(jù),切不同數(shù)據(jù)的保存期限也不一樣,即使有一些歷史數(shù)據(jù)保存下來了,也被束之高閣,未得到充分利用。但對于決策分析而言,歷史數(shù)據(jù)是相當(dāng)重要的,許多分析方法必須一大量的歷史數(shù)據(jù)為依托。沒有歷史數(shù)據(jù)的詳細(xì)分析,是難以把握企業(yè)的發(fā)展趨勢的。DSS對數(shù)據(jù)在空間和時間的廣度上都有了更高的要求,而事務(wù)處理環(huán)境難以滿足這些要求(5)數(shù)據(jù)的綜合問題。在事務(wù)處理系統(tǒng)中積累了大量的細(xì)節(jié)數(shù)據(jù),一般而言,DSS并不對這些細(xì)節(jié)數(shù)據(jù)進(jìn)行分析。在分析前,往往需要對細(xì)節(jié)數(shù)據(jù)進(jìn)行不同程度的綜合。而事務(wù)處理系統(tǒng)不具備這種綜合能力,根據(jù)規(guī)范化理論,這種綜合還往往因?yàn)槭且环N數(shù)據(jù)冗余而加以限制。要提高分析和決策的效率和有效性,分析型處理及其數(shù)據(jù)必須與操作型處理及其數(shù)據(jù)相分離.必須把分析型數(shù)據(jù)從事務(wù)處理環(huán)境中提取出來,按照DSS處理的需要進(jìn)行重新組織,建立單獨(dú)的分析處理環(huán)境,數(shù)據(jù)倉庫正是為了構(gòu)建這種新的分析處理環(huán)境而出現(xiàn)的一種數(shù)據(jù)存儲和組織技術(shù)。分布式數(shù)據(jù)庫:分布式數(shù)據(jù)庫系統(tǒng)是在集中式數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)上發(fā)展起來的,是數(shù)據(jù)庫技術(shù)與計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的產(chǎn)物。分布式數(shù)據(jù)庫系統(tǒng)是具有管理分布數(shù)據(jù)庫功能的計(jì)算機(jī)系統(tǒng)。一個分布式數(shù)據(jù)庫是由分布于計(jì)算機(jī)網(wǎng)絡(luò)上的多個邏輯相關(guān)的數(shù)據(jù)庫組成的集合,網(wǎng)絡(luò)中的每個結(jié)(一般在系統(tǒng)中的每一臺計(jì)算機(jī)稱為結(jié)點(diǎn)node)具有獨(dú)立處理的能力(稱為本地自治),可執(zhí)行局部應(yīng)用,同時,每個結(jié)點(diǎn)通過網(wǎng)絡(luò)通訊系統(tǒng)也能執(zhí)行全局應(yīng)用。所謂局部應(yīng)用即僅對本結(jié)點(diǎn)的數(shù)據(jù)庫執(zhí)行某些應(yīng)用。所謂全局應(yīng)用(或分布應(yīng)用)是指對兩個以上結(jié)點(diǎn)的數(shù)據(jù)庫執(zhí)行某些應(yīng)用。支持全局應(yīng)用的系統(tǒng)才能稱為分布式數(shù)據(jù)庫系統(tǒng)。對用戶來說,一個分布式數(shù)據(jù)庫系統(tǒng)邏輯上看如同集中式數(shù)據(jù)庫系統(tǒng)一樣,用戶可在任何一個場地執(zhí)行全局應(yīng)用。軟考基礎(chǔ)知識專題六_數(shù)據(jù)庫知識分布式數(shù)據(jù)庫系統(tǒng)是由分布式數(shù)據(jù)庫管理系統(tǒng)和分布式數(shù)據(jù)庫組成。分布式數(shù)據(jù)庫管理系統(tǒng)(簡稱DDBMS)是建立、管理和維護(hù)分布式數(shù)據(jù)庫的一組軟件.分布式數(shù)據(jù)庫系統(tǒng)適合于單位分散的部門,系統(tǒng)的結(jié)點(diǎn)可反映公司的邏輯組織,允許各部門將其常用數(shù)據(jù)存貯在本地,實(shí)施就地存放就地使用,降低通訊費(fèi)用,并可提高響應(yīng)速度。分布式數(shù)據(jù)庫可將數(shù)據(jù)分布在多個結(jié)點(diǎn)上,增加適當(dāng)?shù)娜哂?,可提高系統(tǒng)的可靠性,只要一個數(shù)據(jù)庫和網(wǎng)絡(luò)可用,那么全局?jǐn)?shù)據(jù)庫可一部分可用。不會因一個數(shù)據(jù)庫的故障而停止全部操作或引起性能瓶頸。故障恢復(fù)通常在單個結(jié)點(diǎn)上進(jìn)行.結(jié)點(diǎn)可獨(dú)立地升級軟件.每個局部數(shù)據(jù)庫存在一個數(shù)據(jù)字典。由于分布式數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)的特點(diǎn),它和集中式數(shù)據(jù)庫系統(tǒng)相比具有可擴(kuò)展性,為擴(kuò)展系統(tǒng)的處理能力提供了較好的途徑.理想的分布式系統(tǒng)使用時應(yīng)該精確地像一個非分布式系統(tǒng)的樣子。1986年C.J。Date為理想的分布式系統(tǒng)創(chuàng)立了12條細(xì)則,這12條全功能分布式數(shù)據(jù)庫系統(tǒng)的規(guī)則和目標(biāo)具體是:(1) 局部結(jié)點(diǎn)自治性,網(wǎng)絡(luò)中的每個結(jié)點(diǎn)是獨(dú)立的數(shù)據(jù)庫系統(tǒng),它有自己的數(shù)據(jù)庫,運(yùn)行它的局部DBMS,執(zhí)行局部應(yīng)用,具有高度的自治性.(2) 不依賴中心結(jié)點(diǎn),即每個結(jié)點(diǎn)具有全局字典管理、查詢處理、并發(fā)控制和恢復(fù)控制等功能。(3) 能連續(xù)操作,該目標(biāo)使中斷分布式數(shù)據(jù)庫服務(wù)情況減至最少,當(dāng)一個新場地合并到現(xiàn)有的分布式系統(tǒng)、或?qū)⒎植际较到y(tǒng)中撤離一場地不會導(dǎo)致任何不必要的服務(wù)中斷;在分布式系統(tǒng)中可動態(tài)地建立和消除片段,而不中止任何組成部分的場地或數(shù)據(jù)庫;應(yīng)盡可能在不使整個系統(tǒng)停機(jī)的情況下對組成分布式系統(tǒng)的場地的DBMS進(jìn)行升級。(4) 具有位置獨(dú)立性(或稱位置透明性),用戶不必知道數(shù)據(jù)的物理存儲地,可工作得像數(shù)據(jù)全部存儲在局部場地一樣.一般位置獨(dú)立性需要有分布式數(shù)據(jù)命名模式和字典子系統(tǒng)的支持。(5) 分片獨(dú)立性(或稱分片透明性),分布式系統(tǒng)如果可將給定的關(guān)系分成若干塊或片,可提高系統(tǒng)的處理性能。利用分片將數(shù)據(jù)存儲在最頻繁使用它的位置上,使大部分操作是局部操作,減少網(wǎng)絡(luò)的信息流量。如果系統(tǒng)支持分片獨(dú)立性,用戶工作起來就像數(shù)據(jù)全然不是分片的一樣.(6) 數(shù)據(jù)復(fù)制獨(dú)立性,是指將給定的關(guān)系(或片段)可在物理級用許多不同存儲副本或復(fù)制品在許多不同場地上存儲。支持?jǐn)?shù)據(jù)復(fù)制的系統(tǒng)應(yīng)當(dāng)支持復(fù)制獨(dú)立性,用戶工作可像它全然沒有存儲副本一樣地工作。(7) 支持分布式查詢處理,在分布數(shù)據(jù)庫系統(tǒng)中有三類查詢:局部查詢、遠(yuǎn)程查詢和全局查詢.局部查詢和遠(yuǎn)程查詢僅涉及單個結(jié)點(diǎn)的數(shù)據(jù)(本地的或遠(yuǎn)程的),查詢優(yōu)化采用的技術(shù)是集中式數(shù)據(jù)庫的查詢優(yōu)化技術(shù)。全局查詢涉及多個結(jié)點(diǎn)上的數(shù)據(jù),其查詢處理和優(yōu)化要復(fù)雜得多。(8) 支持分布事務(wù)管理,事務(wù)管理有兩個主要方面:恢復(fù)控制和并發(fā)控制。在分布式系統(tǒng)中,單個事務(wù)會涉及到多個場地上的代碼執(zhí)行,會涉及到多個場地上的更新,可以說每個事務(wù)是由多個“代理”組成,每個代理代表在給定場地上的給定事務(wù)上執(zhí)行的過程。在分布式系統(tǒng)中須保證事務(wù)的代理集,或者全部一致交付,或者全部一致回滾。(9) 具有硬件獨(dú)立性,希望在不同硬件系統(tǒng)上運(yùn)行同樣的DBMS。(10) 具有操作系統(tǒng)獨(dú)立性,希望在不同的操作系統(tǒng)上運(yùn)行DBMS.(11) 具有網(wǎng)絡(luò)獨(dú)立性,如果系統(tǒng)能夠支持多個不同的場地,每個場地有不同的硬件和不同的操作系統(tǒng),則要求該系統(tǒng)能支持各種不同的通信網(wǎng)絡(luò)。(12) 具有DBMS獨(dú)立性,實(shí)現(xiàn)對異構(gòu)型分布式系統(tǒng)的支持。理想的分布式系統(tǒng)應(yīng)該提供DBMS獨(dú)立性。上述的全功能分布式數(shù)據(jù)庫系統(tǒng)的準(zhǔn)則和目標(biāo)起源于:一個分布式數(shù)據(jù)庫系統(tǒng),對用戶來說,應(yīng)當(dāng)看上去完全像一個非分布式系統(tǒng).DDBS的基本特點(diǎn)uu 物理分布性:數(shù)據(jù)不是存儲在一個場地上,而是存儲在計(jì)算機(jī)網(wǎng)絡(luò)的多個場地上.uu 邏輯整體性:數(shù)據(jù)物理分布在各個場地,但邏輯上是一個整體,它們被所有用戶(全局用戶)共享,并由一個DDBMS統(tǒng)一管理。uu 場地自治性:各場地上的數(shù)據(jù)由本地的DBMS管理,具有自治處理能力,完成本場地的應(yīng)用(局部應(yīng)用)。uu 場地之間協(xié)作性:各場地雖然具有高度的自治性,但是又相互協(xié)作構(gòu)成一個整體。分布式數(shù)據(jù)庫的體系結(jié)構(gòu)分片圾理級全闊夕隈式全高外惶式袂童]井曲換式全局聰模式分沽模式;分片惘式_代瞬工“分布忒養(yǎng)畀嶠加鄭分屆認(rèn)概恚模式崗部載念權(quán)武扃趙內(nèi)總式尿韶內(nèi)楔式舄諏]模式<中式獲據(jù)暉瘵苞郁分分布式數(shù)據(jù)庫與集中式數(shù)據(jù)庫的對比:分布式DBMS集中式DBMS①存取方式用戶TDDBMST分布式網(wǎng)絡(luò)OST網(wǎng)絡(luò)通信T局部DBMST局部OSTDB用戶TDBMSTOSTDB②數(shù)據(jù)冗余性有控制的冗余最小的冗余③數(shù)據(jù)表示級別(四級)用戶試圖,全局視圖,分片視圖,分配視圖(三級)外部視圖,概念視圖,內(nèi)部視圖④數(shù)據(jù)存放方式復(fù)制在多個場地,模式分散化,處理程序也分散化集中在一個地點(diǎn)⑤DBA分布在各場地,進(jìn)行局部控制集中在起⑥同步由全局DBMS和網(wǎng)絡(luò)OS組成由OS完成⑦封鎖分散控制集中控制⑧實(shí)際資源多個CPU,多個DBMS一個CPU,一個DBMS⑨操作方式當(dāng)前方式,響應(yīng)方式兩種一種方式(當(dāng)前方式)⑩數(shù)據(jù)一致性所有主場地的邏輯結(jié)果是一致的,但各個場地的復(fù)制中數(shù)據(jù)可能不一致任何時候都需要保持?jǐn)?shù)據(jù)的一致性2。數(shù)據(jù)庫重點(diǎn)和難點(diǎn):2.1數(shù)據(jù)庫管理系統(tǒng)(DBMS)數(shù)據(jù)庫管理系統(tǒng)(DBMS)是
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 重慶能源職業(yè)學(xué)院《醫(yī)藥產(chǎn)品推銷理論與技巧》2023-2024學(xué)年第一學(xué)期期末試卷
- 黑龍江佳木斯第一中學(xué)2024-2025學(xué)年高三下學(xué)期第一學(xué)段考英語試題含解析
- 海南工商職業(yè)學(xué)院《高分子基礎(chǔ)專業(yè)理論教學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶電信職業(yè)學(xué)院《漢語言文學(xué)教師教育專業(yè)導(dǎo)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江紡織服裝職業(yè)技術(shù)學(xué)院《保健食品設(shè)計(jì)原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 古代乳癖灸法論述
- 公路工程軟基處理質(zhì)量保證措施
- 瀝青路面拉毛施工方案
- 江蘇施工方案報(bào)審表
- 2025年中國酒業(yè)市場分析:規(guī)模突破萬億結(jié)構(gòu)升級與消費(fèi)趨勢洞察
- 2022年扭轉(zhuǎn)實(shí)驗(yàn)報(bào)告
- 數(shù)學(xué)建模教學(xué)課件
- 醫(yī)學(xué)專題血管麻痹綜合征(劉德昭)
- SF∕T 0111-2021 法醫(yī)臨床檢驗(yàn)規(guī)范
- 美國德克薩斯州駕駛考試模擬題及相關(guān)資料中英對照
- GB∕T 10836-2021 船用多功能焚燒爐
- 【告知牌】有限空間作業(yè)安全告知牌及警示標(biāo)志
- 個人勞動仲裁申請書
- 特種設(shè)備現(xiàn)場安全監(jiān)督檢查記錄(共1頁)
- 福德正神真經(jīng)
- 溢流堰穩(wěn)定計(jì)算
評論
0/150
提交評論