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