數(shù)據(jù)庫管理系統(tǒng)的功能和特征.doc_第1頁
數(shù)據(jù)庫管理系統(tǒng)的功能和特征.doc_第2頁
數(shù)據(jù)庫管理系統(tǒng)的功能和特征.doc_第3頁
數(shù)據(jù)庫管理系統(tǒng)的功能和特征.doc_第4頁
數(shù)據(jù)庫管理系統(tǒng)的功能和特征.doc_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫管理系統(tǒng)的功能和特征 數(shù)據(jù)庫模型(概念模式、外模式、內(nèi)模式) 數(shù)據(jù)模型,ER圖,第一范式、第二范式、第三范式 數(shù)據(jù)操作(集合運算和關(guān)系運算) 數(shù)據(jù)庫語言(SQL) 數(shù)據(jù)庫的控制功能(并發(fā)控制、恢復、安全性、完整性) 數(shù)據(jù)倉庫和分布式數(shù)據(jù)庫基礎(chǔ)知識1、數(shù)據(jù)庫知識1.1數(shù)據(jù)管理技術(shù)的發(fā)展數(shù)據(jù)管理技術(shù)的發(fā)展階段:人工階段:數(shù)據(jù)處理方式是批處理。其特點是: 數(shù)據(jù)不保存 沒有專用的軟件對數(shù)據(jù)進行管理 只有程序概念,沒有文件概念 一組數(shù)據(jù)對應一個程序,即數(shù)據(jù)是面向程序的文件系統(tǒng)階段:數(shù)據(jù)處理方式有批處理,也有聯(lián)機實時處理。其特點是: 數(shù)據(jù)可長期保存在外存上 數(shù)據(jù)的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)有了區(qū)別,但簡單 文件組織已多樣化,有索引文件、鏈接文件和直接存取文件等,但文件之間相互獨立,沒有聯(lián)系 數(shù)據(jù)不再屬于某個特定的程序,可重復使用,但數(shù)據(jù)結(jié)構(gòu)和程序之間的依賴關(guān)系并未根本改變。其缺點是: 數(shù)據(jù)冗余性 數(shù)據(jù)不一致性 數(shù)據(jù)聯(lián)系弱數(shù)據(jù)庫階段:其特點是: 用關(guān)系模型表示復雜的數(shù)據(jù)模型 有較高的數(shù)據(jù)獨立性 數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶接口 數(shù)據(jù)庫管理系統(tǒng)提供了四個方面的數(shù)據(jù)控制能力數(shù)據(jù)完整性、數(shù)據(jù)安全性、數(shù)據(jù)庫的并發(fā)控制、數(shù)據(jù)庫的恢復數(shù)據(jù)庫的基本概念數(shù)據(jù)庫(DB):是存儲在一起的相關(guān)數(shù)據(jù)的集合。DB能為各種用戶共享,具有最小冗余度,數(shù)據(jù)間聯(lián)系密切,而又有較高的程序與數(shù)據(jù)的獨立性。數(shù)據(jù)庫管理系統(tǒng)(DBMS):DBMS是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應用程序提供訪問DB的方法,包括DB的建立、查詢、更新及各種數(shù)據(jù)控制。DBMS可分為層次型、網(wǎng)狀型、關(guān)系型、面向?qū)ο笮汀?shù)據(jù)庫系統(tǒng)(DBS):即是采用了數(shù)據(jù)庫技術(shù)的計算機系統(tǒng),是實現(xiàn)有組織地、動態(tài)存儲大量關(guān)聯(lián)數(shù)據(jù),方便多用戶訪問的計算機軟件、硬件和數(shù)據(jù)資源而組成的系統(tǒng)。數(shù)據(jù)庫技術(shù):研究數(shù)據(jù)庫的結(jié)構(gòu)、存儲、設計、管理和使用的一門軟件學科。1.2數(shù)據(jù)模型表示實體類型及實體之間聯(lián)系的模型稱為“數(shù)據(jù)模型”。數(shù)據(jù)模型是嚴格定義的概念的集合,數(shù)據(jù)庫的數(shù)據(jù)模型應包括數(shù)據(jù)結(jié)構(gòu)(指對實體類型和實體之間聯(lián)系的表達和實現(xiàn))、數(shù)據(jù)操作(指對數(shù)據(jù)庫的檢索和更新兩大類操作)和完整性約束(給出數(shù)據(jù)及其所具有的制約合依賴規(guī)則)3個部分。數(shù)據(jù)模型的種類很多。目前廣泛使用的數(shù)據(jù)模型可分為兩種:概念數(shù)據(jù)模型和結(jié)構(gòu)數(shù)據(jù)模型。概念數(shù)據(jù)模型這是一種獨立于任何計算機系統(tǒng)的模型,完全不涉及信息在計算機系統(tǒng)中的表示,用于建立信息世界的數(shù)據(jù)模型,是現(xiàn)實世界的第一層抽象,是用戶和數(shù)據(jù)庫設計人員進行交流的工具,其中最著名的模型是“實體聯(lián)系模型”(ER模型)。ER模型直接從現(xiàn)實世界中抽取出實體類型及實體間聯(lián)系圖(ER圖)表示數(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),通常有一組嚴格定義了語法和語義的數(shù)據(jù)庫語言,用來定義、操縱數(shù)據(jù)庫中的數(shù)據(jù)。其主要有層次、網(wǎng)狀、關(guān)系模型三種。層次模型:用樹型(層次)結(jié)構(gòu)表示實體類型及實體之間聯(lián)系的數(shù)據(jù)模型稱為層次模型。層次結(jié)構(gòu)是一棵樹,樹的結(jié)點是記錄類型,非根結(jié)點有且只有一個父結(jié)點。上一層記錄類型和下一層記錄類型的聯(lián)系是1:M聯(lián)系。網(wǎng)狀模型:用從結(jié)構(gòu)(網(wǎng)絡結(jié)構(gòu))表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型稱為網(wǎng)狀模型。記錄之間的聯(lián)系通過指針實現(xiàn),M:N聯(lián)系容易實現(xiàn)(一個M:N聯(lián)系可拆成兩個1:M聯(lián)系),查詢效率高。關(guān)系模型:用規(guī)范化了的二維表格結(jié)構(gòu)表示實體集,用鍵表示實體間聯(lián)系。通常是若干個關(guān)系模型組成的集合。1.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ù)視圖。 外部級最接近用戶,是用戶看到的數(shù)據(jù)特性,用戶的數(shù)據(jù)視圖稱為外模型。 概念級是涉及到所有用戶的數(shù)據(jù)定義,也就是全局的數(shù)據(jù)視圖,稱為概念模型。 內(nèi)部級是最接近于物理存儲設備,涉及到實際數(shù)據(jù)的存儲方式。物理存儲的數(shù)據(jù)視圖稱為內(nèi)模型。這些模型用數(shù)據(jù)庫的數(shù)據(jù)定義語言(DDL)描述后,分別得到外模式、概念模式、內(nèi)模式。為實現(xiàn)這個抽象級別的轉(zhuǎn)換,數(shù)據(jù)庫和管理系統(tǒng)在這級結(jié)構(gòu)之間提供了兩層映象:外模式概念模式映象和概念模式內(nèi)模式映象數(shù)據(jù)庫管理系統(tǒng)的主要目標:把數(shù)據(jù)作為可管理的資源處理。數(shù)據(jù)庫管理系統(tǒng)的個重要功能:數(shù)據(jù)庫的定義功能、數(shù)據(jù)庫的操縱功能、數(shù)據(jù)庫的保護功能、數(shù)據(jù)庫的維護功能、數(shù)據(jù)字典。數(shù)據(jù)庫的全局結(jié)構(gòu):DBS的某些功能是由計算機的OS提供的,OS提供了DBS最基本的服務,因此 DBS必須在OS基礎(chǔ)上工作。在DBS中就應包含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)系運算n 基本概述關(guān)系數(shù)據(jù)庫是應用關(guān)系數(shù)據(jù)模型來建立和處理數(shù)據(jù)庫中的數(shù)據(jù)。這其中主要涉及幾個重要的概念。u 關(guān)系 關(guān)系實際上就可以看作是一個二維表。其中,表的每一列稱為屬性,并用屬性名來標識。每個屬性的取值范圍,就是該屬性所對應的值域。表的每一行稱為元組。約定該表的行、列的次序的改變,不改變關(guān)系的語義性質(zhì)。對于一個關(guān)系,應該具備下列性質(zhì): 關(guān)系中每一個屬性值都是不可分解的; 關(guān)系中不允許出現(xiàn)相同的元組;不讓用戶考慮元組的順序; 用戶在使用時應考慮列的順序。u 關(guān)系模型關(guān)系模型是目前最流行的一種數(shù)據(jù)模型,它是用二維表格結(jié)構(gòu)表示實體集,關(guān)鍵碼表示實體間的聯(lián)系。u 關(guān)鍵字(鍵)I. 候選鍵關(guān)系中的某一屬性或?qū)傩越M,若它的值可以唯一標識關(guān)系中的一個元組而又不含有多余的屬性,則稱該屬性或?qū)傩越M為候選關(guān)鍵字。II. 主鍵關(guān)系模式中用戶正使用的候選關(guān)鍵字稱為主關(guān)鍵字。III. 外關(guān)鍵字若模式R中某屬性集是其他模式的候選鍵,那么該屬性集對模式R而言就是外關(guān)鍵字。IV. 超鍵關(guān)系模式中,為唯一標識元組的屬性集稱為超鍵。n 關(guān)系模型關(guān)系模型遵循數(shù)據(jù)庫的3級體系結(jié)構(gòu)。u 關(guān)系模式數(shù)據(jù)庫的概念模式定義為關(guān)系模式的集合。每個關(guān)系模式就是記錄類型。u 關(guān)系子模式這是對用戶所用到的那部分數(shù)據(jù)的描述。除了指出用戶用到的數(shù)據(jù)外,還應指出數(shù)據(jù)與模式中相應數(shù)據(jù)的聯(lián)系,即指出子模式與模式之間的對應性。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)系運算,以支持對數(shù)據(jù)庫的各種操作。關(guān)系運算的理論是關(guān)系代數(shù)和關(guān)系演算。u 關(guān)系的完整性在關(guān)系模型中,數(shù)據(jù)的約束條件通過三類完整性約束條件來描述。即:I. 實體完整性要求關(guān)系中的元組的主鍵值不能是空值。II. 參照完整性要求在關(guān)系中不允許引用不存在的實體。III. 用戶定義的完整性這是針對某一具體數(shù)據(jù)的約束條件,由應用環(huán)境決定,例如屬性的值限制。n 關(guān)系代數(shù)關(guān)系查詢語言根據(jù)其理論基礎(chǔ)的不同分成兩大類:u 關(guān)系代數(shù)語言:查詢操作是以集合操作為基礎(chǔ)的運算。u 關(guān)系演算語言:查詢操作是以謂詞演算為基礎(chǔ)的運算。其中,關(guān)系代數(shù)是以集合代數(shù)為基礎(chǔ)發(fā)展起來的,它是以關(guān)系為運算對象的一組高級運算的集合。關(guān)系代數(shù)的運算可分為兩類:基本運算操作:并、差、笛卡爾積、投影和選擇。組合運算操作:交、聯(lián)接、自然聯(lián)接和除。另外,還有幾種擴充的關(guān)系代數(shù)操作:外聯(lián)接(左外聯(lián)接和右外聯(lián)接)、外部并和半聯(lián)接。以下對幾種常用的關(guān)系運算作一個簡單的介紹。u 基本運算1. 并設有兩個關(guān)系R和S具有相同的關(guān)系模式,關(guān)系R和S的并是由屬于R或?qū)儆赟的元組組成的集合,記為RS。形式定義如下:RSttRtS2. 差設有兩個關(guān)系R和S具有相同的關(guān)系模式,關(guān)系R和S的差是由屬于R但不屬于S的元組組成的集合,記為RS。形式定義如下:RSttRtS3. 笛卡兒積設關(guān)系R和S元數(shù)分別為r和s。定義R和S的笛卡兒積是一個(r+s)元的元組集合,每個元組的前r個分量來自R的一個元組,后s個分量來自S的一個元組,記為RS形式定義如下:RStttr,tstrRtsS若R有m個元組,S有n個元組,則RS有(mn)個元組。4. 投影該操作是對關(guān)系進行垂直分割,消去某些列,并重新安排列的順序,再刪去重復元組。5. 選擇這個操作是根據(jù)某些條件對關(guān)系作水平分割,即選擇符合條件的元組。條件可用命題公式F表示,F(xiàn)中的運算對象是常數(shù)(用引號括起來)或元組分量(屬性名或列的序號)。運算符有算術(shù)比較運算符(,)和邏輯運算符(,)。F(R)ttRF(t) true為選擇運算符,F(xiàn)(R)表示從R中挑選滿足公式F的元組所構(gòu)成的集合。常量用引號括起來,而屬性號或?qū)傩悦灰靡柪ㄆ饋怼 組合運算1. 交設有兩個關(guān)系R和S具有相同的關(guān)系模式,關(guān)系R和S的交是由屬于R又屬于S的元組組成的集合,記為RS。形式定義如下:RSttRtS2. 聯(lián)接(又稱聯(lián)接)從關(guān)系R和S的笛卡爾積中選取屬性值之間滿足一定條件的元組,記為:RSi(i+j)(RS) ij這里R的元數(shù)是r,是算術(shù)比較運算符。RS操作是在R和S ij的笛卡爾積中挑選第i個分量和第(r+j)個分量滿足運算的元組組成的新的關(guān)系。3. 自然聯(lián)接兩個關(guān)系R和S的自然聯(lián)接用RS表示,具體計算過程如下:A) 計算RSB) 設R和S的公共屬性是A1,A2,A3,.Ak.,挑選RS中滿足R.A1=S.A1,R.A2,.,R.Ak=S.Ak的那些元組C) 去掉S.A1,S.A2,.S.AkRS可用下列形式定義:RSi1i2,.,im(R.A1=S.A1.R.Ak=S.Ak(RS)。4. 除法設兩個關(guān)系R和S的元數(shù)分別為r和s(rs0),那么RS是一個(rs)元的元組的集合。(RS)是滿足下列條件的最大關(guān)系,其中每個元組t與S中每個元組u組成的新元組必在關(guān)系R中。RS的具體計算過程如下:A) T=1,2,.r-s(R)B) W=(TS)-R求出TS中不在R的元組C) V=1,2,.r-s(W)D) RS=T-V因此RS1,2,.r-s (R)- 1,2,.r-s (1,2,.r-s (R) S) -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)成,一行是列的序列,每列對應一個數(shù)據(jù)項。一個表或者是一個基本表,或者是一個視圖?;颈硎菍嶋H存儲在數(shù)據(jù)庫的表,視圖是由若干基本表或其他視圖構(gòu)成的表的定義。SQL包括了所有對數(shù)據(jù)庫的操作,主要有4個部分:數(shù)據(jù)定義(SQL DDL)、數(shù)據(jù)操縱(SQL DML)、訪問數(shù)據(jù)控制、嵌入式SQL語言的規(guī)定。SQL DDL主要是定義基本表、視圖、索引3個部分:基本表的定義、修改、撤銷基本表的定義可用“CREATE TABLE”語句實現(xiàn),增加屬性可以用“ALTER.ADD.”語句,刪除屬性可以用“ALTER.DROP.”語句;刪除已存在的表可用“DROP TABLE.”語句。視圖的定義和撤銷視圖的定義可以用CREATE VIEW語句實現(xiàn)。視圖的撤消可以用DROP VIEW語句實現(xiàn)。索引的定義和撤銷索引的定義可以用CREATE ,用DROP撤銷。SQL DML 數(shù)據(jù)查詢語句SQL的查詢語句只有SELECT語句。SELECT查詢語句在關(guān)系代數(shù)中最常用的式子是“投影選擇聯(lián)接表達式”:A1,A2,.An(F(R1R2.Rm),這里R1,R2,.Rm為基本表,F(xiàn)是公式,A1,A2,.An為屬性。針對這個表達式,SQL 設計了SELECT句型:SELCET A1,A2,.AnFROM R1,R2,.RmWHERE F在WHERE子句的條件表達式F中可出現(xiàn)下列操作符和運算特點:算術(shù)比較符、邏輯運算符、集合運算符、集合成員資格運算符、謂詞和聚合函數(shù)。庫函數(shù) COUNT(*) 計算元組的個數(shù) COUNT(列名) 對某一列中的值計算個數(shù)。 SUM(列名) 求某一列值的總和 AVG(列名) 求某一列值的平均值 MAX(列名) 求某一列值中的最大值 MIN(列名) 求某一列值中的最小值SELECT語句完整的句法SELECT 目標表的列名或列表達式序列FROM 基本表或(和)視圖序列WHERE行條件表達式GROUT BY 列名序列HAVING組條件表達式DRDER BY 列名序.前兩個句子是必不可少的,后面的4個句子可以缺省。整個語句的語義如下:從FROM子句中列出的表,選取滿足WHERE子句中給出的行條件表達式的元組,然后按GROUP子句(分組子句)中指定列的值分組,再提取滿足HAVING子句中組條件表達式的那些組,按SELECT子句給出的列名或列表達式求值輸出。ORDER子句(排序子句)是對輸出的目標表進行排序,可附加說明ASC(升序)或DESC(降序)SQL DML的數(shù)據(jù)更新語句INSERT 插入語句DELETE 刪除語句UPDATE 修改語句SQL的訪問控制SQL的訪問控制功能主要是指對用戶訪問數(shù)據(jù)的控制。有授權(quán)語句和回收語句。授權(quán)語句的格式如下:GRANT 權(quán)限表ON 表名TO 用戶名表WITH GRANT OPTION該語句把表的使用權(quán)授予指定的若干用戶。在有WITH GRANT OPTION短語時,被授權(quán)的用戶還可將獲得的權(quán)限再轉(zhuǎn)授給其他用戶。權(quán)限表中的權(quán)限可以有:SELECT, INSERT, DELETE, UPDATE, EXPAND, INDEX, ALL PRIVILEGES?;厥照Z句格式:REVOKE 權(quán)限表ON 表名FROM 用戶名表該語句把已授給指定用戶的在指定表上的使用權(quán)限收回。嵌入式SQL由于SQL是基于關(guān)系模型的語言,而高級語言是基于整數(shù)、實數(shù)、字符、記錄、數(shù)組等的數(shù)據(jù)類型,因此兩者之間有很大的區(qū)別,稱為有縫隙。為了能在宿主語言的程序中嵌入SQL語句,有一些規(guī)定:I.在程序中要區(qū)分SQL語句和宿主語言的語句;II.在嵌入的SQL語句中可以引用宿主語言的程序變量,但主語言的語句不能引用數(shù)據(jù)庫中的各種變量(屬性名、關(guān)系名),SQL的集合處理方式與宿主語言的單記錄處理方式之間的協(xié)調(diào)用游標技術(shù)實現(xiàn)。1.6 數(shù)據(jù)庫設計數(shù)據(jù)庫應用系統(tǒng)的開發(fā)是一項軟件工程,但又有自身的特點,所以稱為“數(shù)據(jù)庫工程”。數(shù)據(jù)庫系統(tǒng)從開始規(guī)劃、設計、實現(xiàn)、維護到最后被新的系統(tǒng)取代而停止使用的整個期間,稱為數(shù)據(jù)庫系統(tǒng)生存期。此生存期可分為7個階段:規(guī)劃、需求分析、概念設計、邏輯設計、物理設計、實現(xiàn)、運行和維護。按照規(guī)范設計的方法,考慮數(shù)據(jù)庫及其應用系統(tǒng)開發(fā)全過程,將數(shù)據(jù)庫設計分為以下六個階段:需求分析階段需求收集和分析,結(jié)果得到數(shù)據(jù)字典描述的數(shù)據(jù)需求(和數(shù)據(jù)流圖描述的處理需求)。概念結(jié)構(gòu)設計階段通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型,可以用E-R圖表示。邏輯結(jié)構(gòu)設計階段將概念結(jié)構(gòu)轉(zhuǎn)換為某個DBMS所支持的數(shù)據(jù)模型(例如關(guān)系模型),并對其進行優(yōu)化。數(shù)據(jù)庫物理設計階段為邏輯數(shù)據(jù)模型選取一個最適合應用環(huán)境的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)和存取方法)。數(shù)據(jù)庫實施階段運用DBMS提供的數(shù)據(jù)語言(例如SQL)及其宿主語言(例如C),根據(jù)邏輯設計和物理設計的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應用程序,組織數(shù)據(jù)入庫,并進行試運行。數(shù)據(jù)庫運行和維護階段數(shù)據(jù)庫應用系統(tǒng)經(jīng)過試運行后即可投入正式運行。在數(shù)據(jù)庫系統(tǒng)運行過程中必須不斷地對其進行評價、調(diào)整與修改。設計一個完善的數(shù)據(jù)庫應用系統(tǒng)不可能一蹴而就,它往往是上述六個階段的不斷反復。1.7關(guān)系數(shù)據(jù)庫規(guī)范化理論為了使數(shù)據(jù)庫設計的方法走向完備,人們研究了規(guī)范化理論,指導我們設計規(guī)范的數(shù)據(jù)庫模式。按屬性間依賴情況來區(qū)分,關(guān)系規(guī)范化的程度為第一范式、第二范式、第三范式、BCNF范式和第四范式等。函數(shù)依賴數(shù)據(jù)依賴是現(xiàn)實世界中屬性間聯(lián)系和約束的抽象,是數(shù)據(jù)的內(nèi)在性質(zhì)。函數(shù)依賴(functional dependency,F(xiàn)D )是一種最重要、最基本的數(shù)據(jù)依賴。其具體定義如下:設有關(guān)系模式R(U),X和Y是屬性集U的子集,F(xiàn)D是行為XY的一個命題,只要r是R的關(guān)系,對r中任意兩個元組都有“X值相等蘊涵Y值相等”,那么函數(shù)依賴XY在關(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ù)據(jù)庫模式的等價性問題。包括數(shù)據(jù)等價和依賴等價兩個方面:數(shù)據(jù)等價:兩個數(shù)據(jù)庫實例應表示同樣的信息內(nèi)容,用“無損聯(lián)接”衡量。依賴等價:兩個數(shù)據(jù)庫模式應有相互邏輯關(guān)系的函數(shù)依賴集,此時數(shù)據(jù)的語義是不會出現(xiàn)差錯的。例:關(guān)系模式 S-L-C(SNO,SDEPT,SLOC,CNO,G)中,SLOC為學生的住處,并且每個系的學生住在同一個地方。這里碼為(SNO,CNO)。函數(shù)依賴有:(SNO,CNO) G SNOSDEPT,(SNO,CNO) SDEPT SNOSLOC, (SNO,CNO) SLOCSDEPTSLOC用投影分解把關(guān)系模式S-L-C分解為3NF范式,且保持函數(shù)依賴。解法:對RU,F中的函數(shù)依賴集F進行“極小化處理”。F= SNO,CNOG,SNOSDEPT,SDEPTSLOC 。 R中沒有不在F中出現(xiàn)的屬性。不存在XAF,且XA=U,接著做第 = 4 * GB2 步。對F按具有相同左部的原則分組。r=SC SNO,CNO,G ,SNO,CNOG,S-D SNO,SDEPT , SNOSDEPT,D-L SDEPT,SLOC , SDEPTSLOC范式范式(normal form,NF)是衡量關(guān)系模式的優(yōu)劣的標準。范式有很多種,與數(shù)據(jù)依賴有著直接的聯(lián)系。第一范式1NF如果關(guān)系模式R中,每個分量是不可分的數(shù)據(jù)項,就稱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)系:BCNF3NF2NF1NF1.8數(shù)據(jù)庫保護n 概述在數(shù)據(jù)庫系統(tǒng)運行時,DBMS要對數(shù)據(jù)庫進行監(jiān)控,以保證整個系統(tǒng)的正常運轉(zhuǎn),保證數(shù)據(jù)庫中的數(shù)據(jù)安全可靠、正確有效,防止各種錯誤的產(chǎn)生,這就是對數(shù)據(jù)庫的保護,有時也稱為“數(shù)據(jù)控制”。這具體包括以下四個方面:u 數(shù)據(jù)庫的恢復u 完整性控制(主鍵約束,外鍵約束,屬性的值域約束)u 并發(fā)控制(瑣機制)u 安全性控制(存儲控制,審計,視圖保護和日志監(jiān)視)n 事務 事務在數(shù)據(jù)庫里面是一個十分重要的概念。數(shù)據(jù)庫系統(tǒng)運行的基本工作單位是事務。它相當于操作系統(tǒng)中的進程,一個事務由應用程序中的一組操作序列組成。實際上,事務可以看作是一個原子,是一個不可分割的操作序列。事務中包括的所有操作要么都執(zhí)行,要么都不執(zhí)行。事務通常以BEGIN TRANSACTION語句開始,它主要涉及兩個語句。、u 事務提交語句COMMITu 事務回滾語句ROLLBACK事務的特性:事務具有四個特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持續(xù)性(Durability)。這個四個特性也簡稱為ACID特性。1原子性:事務是數(shù)據(jù)庫的邏輯工作單位,事務中包括的諸操作要么都做,要么都不做。2一致性:事務執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。因此當數(shù)據(jù)庫只包含成功事務提交的結(jié)果時,就說數(shù)據(jù)庫處于一致性狀態(tài)。如果數(shù)據(jù)庫系統(tǒng)運行中發(fā)生故障,有些事務尚未完成就被迫中斷,系統(tǒng)將事務中對數(shù)據(jù)庫的所有已完成的操作全部撤消,滾回到事務開始時的一致狀態(tài)。3隔離性:一個事務的執(zhí)行不能被其他事務干擾。即一個事務內(nèi)部的操作及使用的數(shù)據(jù)對其他并發(fā)事務是隔離的,并發(fā)執(zhí)行的各個事務之間不能互相干擾。4持續(xù)性:持續(xù)性也稱永久性(Permanence),指一個事務一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應該是永久性的。接下來的其他操作或故障不應該對其執(zhí)行結(jié)果有任何影響。數(shù)據(jù)庫恢復:盡管數(shù)據(jù)庫系統(tǒng)中采取了各種保護措施來防止數(shù)據(jù)庫的安全性和完整性被破壞,保證并發(fā)事務的正確執(zhí)行,但是計算機系統(tǒng)中硬件的故障、軟件的錯誤、操作員的失誤以及惡意的破壞仍是不可避免的,這些故障輕則造成運行事務非正常中斷,影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,重則破壞數(shù)據(jù)庫,使數(shù)據(jù)庫中全部或部分數(shù)據(jù)丟失,因此數(shù)據(jù)庫管理系統(tǒng)(恢復子系統(tǒng))必須具有把數(shù)據(jù)庫從錯誤狀態(tài)恢復到某一已知的正確狀態(tài)(亦稱為一致狀態(tài)或完整狀態(tài))的功能,這就是數(shù)據(jù)庫的恢復。故障的種類:一、事務內(nèi)部的故障 事務內(nèi)部的故障有的是可以通過事務程序本身發(fā)現(xiàn)的(見下面轉(zhuǎn)帳事務的例子),有的是非預期的,不能由事務程序處理的。二、系統(tǒng)故障 系統(tǒng)故障是指造成系統(tǒng)停止運轉(zhuǎn)的任何事件,使得系統(tǒng)要重新啟動。例如,特定類型的硬件錯誤(CPU故障)、操作系統(tǒng)故障、DBMS代碼錯誤、突然停電等等。這類故障影響正在運行的所有事務,但不破壞數(shù)據(jù)庫。這時主存內(nèi)容,尤其是數(shù)據(jù)庫緩沖區(qū)(在內(nèi)存)中的內(nèi)容都被丟失,所有運行事務都非正常終止。發(fā)生系統(tǒng)故障時,一些尚未完成的事務的結(jié)果可能已送入物理數(shù)據(jù)庫,有些已完成的事務可能有一部分甚至全部留在緩沖區(qū),尚未寫回到磁盤上的物理數(shù)據(jù)庫中,從而造成數(shù)據(jù)庫可能處于不正確的狀態(tài)。為保證數(shù)據(jù)一致性,恢復子系統(tǒng)必須在系統(tǒng)重新啟動時讓所有非正常終止的事務回滾,強行撤消(UNDO)所有未完成事務。重做(Redo)所有已提交的事務,以將數(shù)據(jù)庫真正恢復到一致狀態(tài)。三、介質(zhì)故障 系統(tǒng)故障常稱為軟故障(Soft Crash),介質(zhì)故障稱為硬故障(Hard Crash)。硬故障指外存故障,如磁盤損壞、磁頭碰撞,瞬時強磁場干擾等。這類故障將破壞數(shù)據(jù)庫或部分數(shù)據(jù)庫,并影響正在存取這部分數(shù)據(jù)的所有事務。這類故障比前兩類故障發(fā)生的可能性小得多,但破壞性最大。四、計算機病毒 計算機病毒是具有破壞性、可以自我復制的計算機程序。計算機病毒已成為計算機系統(tǒng)的主要威脅,自然也是數(shù)據(jù)庫系統(tǒng)的主要威脅。因此數(shù)據(jù)庫一旦被破壞仍要用恢復技術(shù)把數(shù)據(jù)庫加以恢復?;謴筒呗裕?事務故障的恢復 事務故障是指事務在運行至正常終止點前被中止,這時恢復子系統(tǒng)應利用日志文件撤消(UNDO)此事務已對數(shù)據(jù)庫進行的修改。事務故障的恢復是由系統(tǒng)自動完成的,對用戶是透明的。系統(tǒng)的恢復步驟是:. 反向掃描文件日志(即從最后向前掃描日志文件),查找該事務的更新操作。. 對該事務的更新操作執(zhí)行逆操作。即將日志記錄中“更新前的值”寫入數(shù)據(jù)庫。這樣,如果記錄中是插入操作,則相當于做刪除操作(因此時“更新前的值”為空)。若記錄中是刪除操作,則做插入操作,若是修改操作,則相當于用修改前值代替修改后值。. 繼續(xù)反向掃描日志文件,查找該事務的其他更新操作,并做同樣處理。. 如此處理下去,直至讀到此事務的開始標記,事務故障恢復就完成了。2系統(tǒng)故障的恢復 前面已講過,系統(tǒng)故障造成數(shù)據(jù)庫不一致狀態(tài)的原因有兩個,一是未完成事務對數(shù)據(jù)庫的更新可能已寫入數(shù)據(jù)庫,二是已提交事務對數(shù)據(jù)庫的更新可能還留在緩沖區(qū)沒來得及寫入數(shù)據(jù)庫。因此恢復操作就是要撤消故障發(fā)生時未完成的事務,重做已完成的事務。 系統(tǒng)故障的恢復是由系統(tǒng)在重新啟動時自動完成的,不需要用戶干預。系統(tǒng)的恢復步驟是:. 正向掃描日志文件(即從頭掃描日志文件),找出在故障發(fā)生前已經(jīng)提交的事務(這些事務既有BEGIN TRANSACTION記錄,也有COMMIT記錄),將其事務標識記入重做(REDO)隊列。同時找出故障發(fā)生時尚未完成的事務(這些事務只有BEGIN TRANSACTION記錄,無相應的COMMIT記錄),將其事務標識記入撤消(UNDO)隊列。. 對撤消隊列中的各個事務進行撤消(UNDO)處理。進行UNDO處理的方法是,反向掃描日志文件,對每個UNDO事務的更新操作執(zhí)行逆操作,即將日志記錄中“更新前的值”寫入數(shù)據(jù)庫。. 對重做隊列中的各個事務進行重做(REDO)處理。 進行REDO處理的方法是:正向掃描日志文件,對每個REDO事務重新執(zhí)行日志文件登記的操作。即將日志記錄中“更新后的值”寫入數(shù)據(jù)庫。3介質(zhì)故障的恢復 發(fā)生介質(zhì)故障后,磁盤上的物理數(shù)據(jù)和日志文件被破壞,這是最嚴重的一種故障,恢復方法是重裝數(shù)據(jù)庫,然后重做已完成的事務。具體地說就是:. 裝入最新的數(shù)據(jù)庫后備副本(離故障發(fā)生時刻最近的轉(zhuǎn)儲副本),使數(shù)據(jù)庫恢復到最近一次轉(zhuǎn)儲時的一致性狀態(tài)。 對于動態(tài)轉(zhuǎn)儲的數(shù)據(jù)庫副本,還須同時裝入轉(zhuǎn)儲開始時刻的日志文件副本,利用恢復系統(tǒng)故障的方法(即REDO+UNDO),才能將數(shù)據(jù)庫恢復到一致性狀態(tài)。. 裝入相應的日志文件副本(轉(zhuǎn)儲結(jié)束時刻的日志文件副本),重做已完成的事務。即: 首先掃描日志文件,找出故障發(fā)生時已提交的事務的標識,將其記入重做隊列。 然后正向掃描日志文件,對重做隊列中的所有事務進行重做處理。即將日志記錄中“更新后的值”寫入數(shù)據(jù)庫。這樣就可以將數(shù)據(jù)庫恢復至故障前某一時刻的一致狀態(tài)了。介質(zhì)故障的恢復需要DBA介入。但DBA只需要重裝最近轉(zhuǎn)儲的數(shù)據(jù)庫副本和有關(guān)的各日志文件副本,然后執(zhí)行系統(tǒng)提供的恢復命令即可,具體的恢復操作仍由DBMS完成。n并發(fā)控制在多用戶共享系統(tǒng)中,許多事務可能同時對同一個數(shù)據(jù)進行操作,這時候就產(chǎn)生了并發(fā)控制的問題。DMBS的并發(fā)控制子系統(tǒng)負責協(xié)調(diào)并發(fā)事務的執(zhí)行,保證數(shù)據(jù)庫的完整性不受破壞,同時避免用戶得到不正確的數(shù)據(jù)。同時并發(fā)方式:在多處理系統(tǒng)中,每個處理機可以運行一個事務,多個處理機可以同時運行多個事務,實現(xiàn)多個事務真正的并行運行,這種并行方式稱為同時并發(fā)方式。并發(fā)控制機制是衡量一個數(shù)據(jù)庫管理系統(tǒng)性能的重要標志之一。數(shù)據(jù)庫的并發(fā)操作通??赡軒硪韵碌膯栴}:u 丟失更新問題u 不一致分析問題(讀過時的數(shù)據(jù))u 依賴于未提交更新問題(讀“臟”數(shù)據(jù))處理并發(fā)控制的主要方法是采用封鎖技術(shù)。封鎖是實現(xiàn)并發(fā)控制的一個非常重要的技術(shù)。封鎖:所謂封鎖就是事務T在對某個數(shù)據(jù)對象例如表、記錄等操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事務T就對該數(shù)據(jù)對象有了一定的控制,在事務T釋放它的鎖之前,其它的事務不能更新此數(shù)據(jù)對象。 基本的封鎖類型有兩種:排它鎖(Exclusive Locks,簡記為X鎖) 和共享鎖(Share Locks,簡記為S鎖)。排它鎖:排它鎖又稱為寫鎖。若事務T對數(shù)據(jù)對象A加上X鎖,則只允許T讀取和修改A,其它任何事務都不能再對A加任何類型的鎖,直到T釋放A上的鎖。這就保證了其它事務在T釋放A上的鎖之前不能再讀取和修改A。共享鎖:共享鎖又稱為讀鎖。若事務T對數(shù)據(jù)對象A加上S鎖,則事務T可以讀A,但不能修改A,其它事務只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。這就保證了其它事務可以讀A,但在T釋放A上的S鎖之前不能對A做任何修改。有兩種類型:u 排他型封鎖(X封鎖)u 共享型封鎖(S封鎖)在運用X鎖和S鎖這兩種基本封鎖,對數(shù)據(jù)對象加鎖時,還需要約定一些規(guī)則,例如應何時申請X鎖或S鎖、持鎖時間、何時釋放等。我們稱這些規(guī)則為封鎖協(xié)議(Locking Protocol)。對封鎖方式規(guī)定不同的規(guī)則,就形成了各種不同的封鎖協(xié)議。下面介紹三級封鎖協(xié)議。對并發(fā)操作的不正確調(diào)度可能會帶來丟失修改、不可重復讀和讀“臟”數(shù)據(jù)等不一致性問題,三級封鎖協(xié)議分別在不同程度上解決了這一問題。為并發(fā)操作的正確調(diào)度提供一定的保證。不同級別的封鎖協(xié)議達到的系統(tǒng)一致性級別是不同的。一級封鎖協(xié)議是:事務T在修改數(shù)據(jù)R之前必須先對其加X鎖,直到事務結(jié)束才釋放。事務結(jié)束包括正常結(jié)束(COMMIT)和非正常結(jié)束(ROLLBACK)。二級封鎖協(xié)議是:一級封鎖協(xié)議加上事務T在讀取數(shù)據(jù)R之前必須先對其加S鎖,讀完后即可釋放S鎖。二級封鎖協(xié)議除防止了丟失修改,還可進一步防止讀“臟”數(shù)據(jù)三級封鎖協(xié)議是:一級封鎖協(xié)議加上事務T在讀取數(shù)據(jù)R之前必須先對其加S鎖,直到事務結(jié)束才釋放。三級封鎖協(xié)議除防止了丟失修改和不讀臟數(shù)據(jù)外,還進一步防止了不可重復讀和操作系統(tǒng)一樣,封鎖的方法可能引起活鎖和死鎖。一活鎖活鎖:如果事務T1封鎖了數(shù)據(jù)R,事務T2又請求封鎖R,于是T2等待。T3也請求封鎖R,當T1釋放了R上的封鎖之后系統(tǒng)首先批準了T3的請求,T2仍然等待。然后T4又請求封鎖R,當T3釋放了R上的封鎖之后系統(tǒng)又批準了T4的請求,.,T2有可能永遠等待,這就是活鎖的情形二死鎖死鎖:如果事務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兩個事務永遠不能結(jié)束,形成死鎖。死鎖的預防: 在數(shù)據(jù)庫中,產(chǎn)生死鎖的原因是兩個或多個事務都已封鎖了一些數(shù)據(jù)對象,然后又都請求對已被其他事務封鎖的數(shù)據(jù)對象加鎖,從而出現(xiàn)死等待。防止死鎖的發(fā)生其實就是要破壞產(chǎn)生死鎖的條件。預防死鎖通常有兩種方法:一次封鎖法 : 一次封鎖法要求每個事務必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行。一次封鎖法雖然可以有效地防止死鎖的發(fā)生,但也存在問題,一次就將以后要用到的全部數(shù)據(jù)加鎖,勢必擴大了封鎖的范圍,從而降低了系統(tǒng)的并發(fā)度。順序封鎖法:順序封鎖法是預先對數(shù)據(jù)對象規(guī)定一個封鎖順序,所有事務都按這個順序?qū)嵭蟹怄i。順序封鎖法可以有效地防止死鎖,但也同樣存在問題。事務的封鎖請求可以隨著事務的執(zhí)行而動態(tài)地決定,很難事先確定每一個事務要封鎖哪些對象,因此也就很難按規(guī)定的順序去施加封鎖。 可見,在操作系統(tǒng)中廣為采用的預防死鎖的策略并不很適合數(shù)據(jù)庫的特點,因此DBMS在解決死鎖的問題上普遍采用的是診斷并解除死鎖的方法。2. 死鎖的診斷與解除 超時法 如果一個事務的等待時間超過了規(guī)定的時限,就認為發(fā)生了死鎖。超時法實現(xiàn)簡單,但其不足也很明顯。一是有可能誤判死鎖,事務因為其他原因使等待時間超過時限,系統(tǒng)會誤認為發(fā)生了死鎖。二是時限若設置得太長,死鎖發(fā)生后不能及時發(fā)現(xiàn)。等待圖法 事務等待圖是一個有向圖G=(T,U)。 T為結(jié)點的集合,每個結(jié)點表示正運行的事務;U為邊的集合,每條邊表示事務等待的情況。若T1等待T2 ,則T1、T2之間劃一條有向邊,從T1指向T2。事務等待圖動態(tài)地反映了所有事務的等待情況。并發(fā)控制子系統(tǒng)周期性地(比如每隔1分鐘)檢測事務等待圖,如果發(fā)現(xiàn)圖中存在回路,則表示系統(tǒng)中出現(xiàn)了死鎖。 DBMS的并發(fā)控制子系統(tǒng)一旦檢測到系統(tǒng)中存在死鎖,就要設法解除。通常采用的方法是選擇一個處理死鎖代價最小的事務,將其撤消,釋放此事務持有的所有的鎖,使其它事務得以繼續(xù)運行下去。當然,對撤消的事務所執(zhí)行的數(shù)據(jù)修改操作必須加以恢復。如果一個事務運行過程中沒有其他事務同時運行,也就是說它沒有受到其他事務的干擾,那么就可以認為該事務的運行結(jié)果是正常的或者預想的。因此將所有事務串行起來的調(diào)度策略一定是正確的調(diào)度策略。雖然以不同的順序串行執(zhí)行事務可能會產(chǎn)生不同的結(jié)果,但由于不會將數(shù)據(jù)庫置于不一致狀態(tài),所以都是正確的。定義:多個事務的并發(fā)執(zhí)行是正確的,當且僅當其結(jié)果與按某一次序串行地執(zhí)行它們時的結(jié)果相同。我們稱這種調(diào)度策略為可串行化(Serializable)的調(diào)度。另外,在封鎖技術(shù)方面,SQL提供事務的四種一致性級別,從高到低分別是:u serializable(可串行化)u repeatable read(可重復讀)u read committed(讀提交數(shù)據(jù))u read uncommitted(可讀未提交數(shù)據(jù))數(shù)據(jù)庫安全:數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。為降低進而消除對系統(tǒng)的安全攻擊,尤其是彌補原有系統(tǒng)在安全保護方面的缺陷,在計算機安全技術(shù)方面逐步建立了一套可信標準。在目前各國所引用或制定的一系列安全標準中,最重要的當推1985年美國國防部(DoD)正式頒布的DoD可信計算機系統(tǒng)評估標準(Trusted Computer System Evaluation Criteria,簡記為TCSEC)1或DoD85)。制定這個標準的目的主要有:提供一種標準,使用戶可以對其計算機系統(tǒng)內(nèi)敏感信息安全操作的可信程度做出評估。給計算機行業(yè)的制造商提供一種可循的指導規(guī)則,使其產(chǎn)品能夠更好的滿足敏感應用的安全需求。 TCSEC又稱桔皮書,1991年4月美國NCSC(國家計算機安全中心)頒布了可信計算機系統(tǒng)評估標準關(guān)于可信數(shù)據(jù)庫系統(tǒng)的解釋( Trusted Database Interpretation 簡記為TDI,即紫皮書)。將TCSEC擴展到數(shù)據(jù)庫管理系統(tǒng)。TDI中定義了數(shù)據(jù)庫管理系統(tǒng)的設計與實現(xiàn)中需滿足和用以進行安全性級別評估的標準。在TCSEC中建立的安全級別之間具有一種偏序向下兼容的關(guān)系,即較高安全性級別提供的安全保護要包含較低級別的所有保護要求,同時提供更多或更完善的保護能力。下面,我們簡略地對各個等級作一介紹。D級: D級是最低級別。保留D級的目的是為了將一切不符合更高標準的系統(tǒng),統(tǒng)統(tǒng)歸于D組。如DOS就是操作系統(tǒng)中安全標準為D的典型例子。它具有操作系統(tǒng)的基本功能,如文件系統(tǒng),進程調(diào)度等等,但在安全性方面幾乎沒有什么專門的機制來保障。C1級:只提供了非常初級的自主安全保護。能夠?qū)崿F(xiàn)對用戶和數(shù)據(jù)的分離,進行自主存取控制(DAC),保護或限制用戶權(quán)限的傳播?,F(xiàn)有的商業(yè)系統(tǒng)往往稍作改進即可滿足要求。C2級:實際是安全產(chǎn)品的最低檔次,提供受控的存取保護,即將C1級的DAC進一步細化,以個人身份注冊負責,并實施審計和資源隔離。很多商業(yè)產(chǎn)品已得到該級別的認證。達到C2級的產(chǎn)品在其名稱中往往不突出“安全”(Security)這一特色,如操作系統(tǒng)中Microsoft的Windows NT 3.5,數(shù)字設備公司的Open VMS VAX 6.0和6.1。數(shù)據(jù)庫產(chǎn)品有Oracle公司的Oracle 7,Sybase公司的 SQL Server 11.0.6 等。B1級:標記安全保護。對系統(tǒng)的數(shù)據(jù)加以標記,并對標記的主體和客體實施強制存取控制(MAC)以及審計等安全機制。B1級能夠較好地滿足大型企業(yè)或一般政府部門對于數(shù)據(jù)的安全需求,這一級別的產(chǎn)品才認為是真正意義上的安全產(chǎn)品。滿足此級別的產(chǎn)品前一般多冠以“安全”(Security)或“可信的”(Trusted)字樣,作為區(qū)別于普通產(chǎn)品的安全產(chǎn)品出售。例如,操作系統(tǒng)方面,典型的有數(shù)字設備公司的SEVMS VAX Version 6.0,惠普公司的HP-UX BLS release 9.0.9+ 。數(shù)據(jù)庫方面則有Oracle公司的Trusted Oracle 7,Sybase公司的Secure SQL Server version 11.0.6,Informix公司的Incorporated INFORMIX-OnLine / Secure 5.0等。B2級:結(jié)構(gòu)化保護。建立形式化的安全策略模型并對系統(tǒng)內(nèi)的所有主體和客體實施DAC和MAC。 從互連網(wǎng)上的最新資料看,經(jīng)過認證的、B2級以上的安全系統(tǒng)非常稀少。例如,符合B2標準的操作系統(tǒng)只有Trusted Information Systems公司的Trusted XENIX一種產(chǎn)品,符合B2標準的網(wǎng)絡產(chǎn)品只有Cryptek Secure Communications公司的LLC VSLAN一種產(chǎn)品,而數(shù)據(jù)庫方面則沒有符合B2標準的產(chǎn)品。B3級:安全域。該級的TCB必須滿足訪問監(jiān)控器的要求,審計跟蹤能力更強,并提供系統(tǒng)恢復過程。A1級:驗證設計,即提供B3級保護的同時給出系統(tǒng)的形式化設計說明和驗證以確信各安全保護真正實現(xiàn)。 B2以上的系統(tǒng)標準更多地還處于理論研究階段,產(chǎn)品化以至商品化的程度都不高,其應用也多限于一些特殊的部門如軍隊等。但美國正在大力發(fā)展安全產(chǎn)品,試圖將目前僅限于少數(shù)領(lǐng)域應用的B2安全級別或更高安全級別下放到商業(yè)應用中來,并逐步成為新的商業(yè)標準。 可以看出,支持自主存取控制的DBMS大致屬于C級,而支持強制存取控制的DBMS則可以達到B1級。當然,存取控制僅是安全性標準的一個重要方面(即安全策略方面)不是全部。為了使DBMS達到一定的安全級別,還需要在其它三個方面提供相應的支持。例如審計功能就是DBMS達到C2以上安全級別必不可少的一項指標。下面介紹Oracle的安全性措施。Oracle的安全性措施主要有三個方面:一是用戶標識和鑒定;二是授權(quán)和檢查機制;三是審計技術(shù);除此之外Oracle還允許用戶通過出發(fā)器靈活定義自己的安全性措施。用戶標識和鑒定授權(quán)與檢查機制系統(tǒng)權(quán)限數(shù)據(jù)庫對象的權(quán)限表級安全性行級安全性列級安全性審計技術(shù)用戶定義的安全性措施隨著計算機特別是計算機網(wǎng)絡的發(fā)展,數(shù)據(jù)的共享日益加強,數(shù)據(jù)的安全保密越來越重要。DBMS是管理數(shù)據(jù)的核心,因而其自身必須具有一整套完整而有效的安全性機制。 可信計算機系統(tǒng)評測標準TCSEC/TDI是目前各國所引用或制定的一系列安全標準中最重要的一個。 TCSEC/TDI從安全策略、責任、保證和文檔四個方面描述了安全性級別的指標。按照這些指標,目前許多大型DBMS 達到了C2級,其安全版本達到了B1。 實現(xiàn)數(shù)據(jù)庫系統(tǒng)安全性的技術(shù)和方法有多種,最重要的是存取控制技術(shù)和審計技術(shù)。C2級的DBMS必須具有自主存取控制功能和初步的審計功能,B1的DBMS必須具有強制存取控制和增強的審計功能。自主存取控制功能一般是通過SQL 的GRANT語句和REVOKE語句來實現(xiàn)的。1.9數(shù)據(jù)倉庫與分布式數(shù)據(jù)庫數(shù)據(jù)倉庫:隨著計算機技術(shù)的飛速發(fā)展和企業(yè)界不斷提出新的需求,數(shù)據(jù)倉庫技術(shù)應運而生。傳統(tǒng)的數(shù)據(jù)庫技術(shù)是單一的數(shù)據(jù)資源,即數(shù)據(jù)庫為中心,進行從事事務處理、批處理到?jīng)Q策分析等各種類型的數(shù)據(jù)處理工作。近年來,隨著計算機應用,,網(wǎng)絡計算,開始向兩個不同的方向拓展,一是廣度計算,一是深度計算,廣度計算的含義是把計算機的應用范圍盡量擴大,同時實現(xiàn)廣泛的數(shù)據(jù)交流,互聯(lián)網(wǎng)就是廣度計算的特征,另一方面就是人們對以往計算機的簡單數(shù)據(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ù)管理手段,從它的誕生開始,就主要用于事務處理。經(jīng)過數(shù)十年的發(fā)展,在這些數(shù)據(jù)庫中已經(jīng)保存了大量的日常業(yè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論