系統(tǒng)分析師教材(參考)數(shù)據(jù)庫知識_第1頁
系統(tǒng)分析師教材(參考)數(shù)據(jù)庫知識_第2頁
系統(tǒng)分析師教材(參考)數(shù)據(jù)庫知識_第3頁
系統(tǒng)分析師教材(參考)數(shù)據(jù)庫知識_第4頁
系統(tǒng)分析師教材(參考)數(shù)據(jù)庫知識_第5頁
已閱讀5頁,還剩95頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

系統(tǒng)分析師教材(參考)數(shù)據(jù)庫知識系統(tǒng)分析師教材(參考)數(shù)據(jù)庫知識系統(tǒng)分析師教材(參考)數(shù)據(jù)庫知識xxx公司系統(tǒng)分析師教材(參考)數(shù)據(jù)庫知識文件編號:文件日期:修訂次數(shù):第1.0次更改批準審核制定方案設(shè)計,管理制度專題六:數(shù)據(jù)庫知識數(shù)據(jù)庫管理系統(tǒng)的功能和特征·數(shù)據(jù)庫模型(概念模式、外模式、內(nèi)模式)·數(shù)據(jù)模型,ER圖,第一范式、第二范式、第三范式·數(shù)據(jù)操作(集合運算和關(guān)系運算)·數(shù)據(jù)庫語言(SQL)·數(shù)據(jù)庫的控制功能(并發(fā)控制、恢復(fù)、安全性、完整性)·數(shù)據(jù)倉庫和分布式數(shù)據(jù)庫基礎(chǔ)知識1、數(shù)據(jù)庫知識數(shù)據(jù)管理技術(shù)的發(fā)展數(shù)據(jù)管理技術(shù)的發(fā)展階段:人工階段:數(shù)據(jù)處理方式是批處理。其特點是:

數(shù)據(jù)不保存

沒有專用的軟件對數(shù)據(jù)進行管理

只有程序概念,沒有文件概念

一組數(shù)據(jù)對應(yīng)一個程序,即數(shù)據(jù)是面向程序的文件系統(tǒng)階段:數(shù)據(jù)處理方式有批處理,也有聯(lián)機實時處理。其特點是:

數(shù)據(jù)可長期保存在外存上

數(shù)據(jù)的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)有了區(qū)別,但簡單

文件組織已多樣化,有索引文件、鏈接文件和直接存取文件等,但文件之間相互獨立,沒有聯(lián)系

數(shù)據(jù)不再屬于某個特定的程序,可重復(fù)使用,但數(shù)據(jù)結(jié)構(gòu)和程序之間的依賴關(guān)系并未根本改變。其缺點是:

數(shù)據(jù)冗余性

數(shù)據(jù)不一致性

數(shù)據(jù)聯(lián)系弱數(shù)據(jù)庫階段:其特點是:

用關(guān)系模型表示復(fù)雜的數(shù)據(jù)模型

有較高的數(shù)據(jù)獨立性

數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶接口

數(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ù)的獨立性。數(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ù)的計算機系統(tǒng),是實現(xiàn)有組織地、動態(tài)存儲大量關(guān)聯(lián)數(shù)據(jù),方便多用戶訪問的計算機軟件、硬件和數(shù)據(jù)資源而組成的系統(tǒng)。數(shù)據(jù)庫技術(shù):研究數(shù)據(jù)庫的結(jié)構(gòu)、存儲、設(shè)計、管理和使用的一門軟件學(xué)科。數(shù)據(jù)模型表示實體類型及實體之間聯(lián)系的模型稱為“數(shù)據(jù)模型”。數(shù)據(jù)模型是嚴格定義的概念的集合,數(shù)據(jù)庫的數(shù)據(jù)模型應(yīng)包括數(shù)據(jù)結(jié)構(gòu)(指對實體類型和實體之間聯(lián)系的表達和實現(xiàn))、數(shù)據(jù)操作(指對數(shù)據(jù)庫的檢索和更新兩大類操作)和完整性約束(給出數(shù)據(jù)及其所具有的制約合依賴規(guī)則)3個部分。概念數(shù)據(jù)模型這是一種獨立于任何計算機系統(tǒng)的模型,完全不涉及信息在計算機系統(tǒng)中的表示,用于建立信息世界的數(shù)據(jù)模型,是現(xiàn)實世界的第一層抽象,是用戶和數(shù)據(jù)庫設(shè)計人員進行交流的工具,其中最著名的模型是“實體聯(lián)系模型”(ER模型)。ER模型直接從現(xiàn)實世界中抽取出實體類型及實體間聯(lián)系圖(ER圖)表示數(shù)據(jù)模型。一般遇到實際問題時,總是先設(shè)計一個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)系模型三種?!魧哟文P停河脴湫停▽哟危┙Y(jié)構(gòu)表示實體類型及實體之間聯(lián)系的數(shù)據(jù)模型稱為層次模型。層次結(jié)構(gòu)是一棵樹,樹的結(jié)點是記錄類型,非根結(jié)點有且只有一個父結(jié)點。上一層記錄類型和下一層記錄類型的聯(lián)系是1:M聯(lián)系?!艟W(wǎng)狀模型:用從結(jié)構(gòu)(網(wǎng)絡(luò)結(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)系),查詢效率高?!魯?shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)

數(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è)備,涉及到實際數(shù)據(jù)的存儲方式。物理存儲的數(shù)據(jù)視圖稱為內(nèi)模型。這些模型用數(shù)據(jù)庫的數(shù)據(jù)定義語言(DDL)描述后,分別得到外模式、概念模式、內(nèi)模式。為實現(xiàn)這3個抽象級別的轉(zhuǎn)換,數(shù)據(jù)庫和管理系統(tǒng)在這3級結(jié)構(gòu)之間提供了兩層映象:外模式/概念模式映象和概念模式/內(nèi)模式映象數(shù)據(jù)庫管理系統(tǒng)的主要目標:把數(shù)據(jù)作為可管理的資源處理。數(shù)據(jù)庫管理系統(tǒng)的5個重要功能:數(shù)據(jù)庫的定義功能、數(shù)據(jù)庫的操縱功能、數(shù)據(jù)庫的保護功能、數(shù)據(jù)庫的維護功能、數(shù)據(jù)字典。數(shù)據(jù)庫的全局結(jié)構(gòu):DBS的某些功能是由計算機的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)等部分組成。關(guān)系模型和關(guān)系運算

基本概述

關(guān)系數(shù)據(jù)庫是應(yīng)用關(guān)系數(shù)據(jù)模型來建立和處理數(shù)據(jù)庫中的數(shù)據(jù)。這其中主要涉及幾個重要的概念。

關(guān)系

關(guān)系實際上就可以看作是一個二維表。其中,表的每一列稱為屬性,并用屬性名來標識。每個屬性的取值范圍,就是該屬性所對應(yīng)的值域。表的每一行稱為元組。約定該表的行、列的次序的改變,不改變關(guān)系的語義性質(zhì)。對于一個關(guān)系,應(yīng)該具備下列性質(zhì):

關(guān)系中每一個屬性值都是不可分解的;

關(guān)系中不允許出現(xiàn)相同的元組;不讓用戶考慮元組的順序;

用戶在使用時應(yīng)考慮列的順序。

關(guān)系模型關(guān)系模型是目前最流行的一種數(shù)據(jù)模型,它是用二維表格結(jié)構(gòu)表示實體集,關(guān)鍵碼表示實體間的聯(lián)系。

關(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)系模式中,為唯一標識元組的屬性集稱為超鍵。

關(guān)系模型關(guān)系模型遵循數(shù)據(jù)庫的3級體系結(jié)構(gòu)。

關(guān)系模式數(shù)據(jù)庫的概念模式定義為關(guān)系模式的集合。每個關(guān)系模式就是記錄類型。

關(guān)系子模式這是對用戶所用到的那部分數(shù)據(jù)的描述。除了指出用戶用到的數(shù)據(jù)外,還應(yīng)指出數(shù)據(jù)與模式中相應(yīng)數(shù)據(jù)的聯(lián)系,即指出子模式與模式之間的對應(yīng)性。

關(guān)系存儲模式(關(guān)系內(nèi)模式)這是作為文件看待的,每個元組就是一個記錄。關(guān)系模型有3個部分構(gòu)成:

數(shù)據(jù)結(jié)構(gòu)關(guān)系模型采用的數(shù)據(jù)結(jié)構(gòu)是關(guān)系。

關(guān)系操作

關(guān)系的完整性在關(guān)系模型中,數(shù)據(jù)的約束條件通過三類完整性約束條件來描述。即:I.

實體完整性要求關(guān)系中的元組的主鍵值不能是空值。II.

參照完整性要求在關(guān)系中不允許引用不存在的實體。III.用戶定義的完整性這是針對某一具體數(shù)據(jù)的約束條件,由應(yīng)用環(huán)境決定,例如屬性的值限制。

關(guān)系代數(shù)關(guān)系查詢語言根據(jù)其理論基礎(chǔ)的不同分成兩大類:

關(guān)系代數(shù)語言:查詢操作是以集合操作為基礎(chǔ)的運算。

關(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)系運算作一個簡單的介紹。

基本運算1.

并設(shè)有兩個關(guān)系R和S具有相同的關(guān)系模式,關(guān)系R和S的并是由屬于R或?qū)儆赟的元組組成的集合,記為R∪S。形式定義如下:R∪S≡{t│t∈R∨t∈S}2.

差設(shè)有兩個關(guān)系R和S具有相同的關(guān)系模式,關(guān)系R和S的差是由屬于R但不屬于S的元組組成的集合,記為R-S。形式定義如下:R-S≡{t│t∈R∧t ̄∈S}3.

笛卡兒積設(shè)關(guān)系R和S元數(shù)分別為r和s。定義R和S的笛卡兒積是一個(r+s)元的元組集合,每個元組的前r個分量來自R的一個元組,后s個分量來自S的一個元組,記為R×S形式定義如下:R×S≡{t│t=<tr,ts>tr∈R∧ts∈S}若R有m個元組,S有n個元組,則R×S有(mn)個元組。4.

投影該操作是對關(guān)系進行垂直分割,消去某些列,并重新安排列的順序,再刪去重復(fù)元組。5.

選擇這個操作是根據(jù)某些條件對關(guān)系作水平分割,即選擇符合條件的元組。條件可用命題公式F表示,F(xiàn)中的運算對象是常數(shù)(用引號括起來)或元組分量(屬性名或列的序號)。運算符有算術(shù)比較運算符(≤,<,≥,>,=,≠)和邏輯運算符(∧,∨,┐)。δF(R)≡{t│t∈R∧F(t)=true}δ為選擇運算符,δF(R)表示從R中挑選滿足公式F的元組所構(gòu)成的集合。常量用引號括起來,而屬性號或?qū)傩悦灰靡柪ㄆ饋怼?/p>

組合運算1.

交設(shè)有兩個關(guān)系R和S具有相同的關(guān)系模式,關(guān)系R和S的交是由屬于R又屬于S的元組組成的集合,記為R∩S。形式定義如下:R∩S≡{t│t∈R∧t∈S}2.

聯(lián)接(又稱θ聯(lián)接)從關(guān)系R和S的笛卡爾積中選取屬性值之間滿足一定條件的元組,記為:R│×│S≡δiθ(i+j)(R×S)ijθ這里R的元數(shù)是r,θ是算術(shù)比較運算符。R│×│S操作是在R和Sijθ的笛卡爾積中挑選第i個分量和第(r+j)個分量滿足θ運算的元組組成的新的關(guān)系。3.

自然聯(lián)接兩個關(guān)系R和S的自然聯(lián)接用R│×│S表示,具體計算過程如下:A)

計算R×SB)

設(shè)R和S的公共屬性是A1,A2,A3,..Ak.,挑選R×S中滿足=,,...,=的那些元組C)

去掉,,..R│×│S可用下列形式定義:R│×│S≡πi1i2,...,im(δ=∧...∧=(R×S)。4.

除法設(shè)兩個關(guān)系R和S的元數(shù)分別為r和s(r>s>0),那么R÷S是一個(r-s)元的元組的集合。(R÷S)是滿足下列條件的最大關(guān)系,其中每個元組t與S中每個元組u組成的新元組<t,u>必在關(guān)系R中。R÷S的具體計算過程如下:A)

T=π1,2,..r-s(R)B)

W=(T×S)-R求出T×S中不在R的元組C)

V=π1,2,...r-s(W)D)

R÷S=T-V因此R÷S≡π1,2,..r-s(R)-π1,2,..r-s((π1,2,..r-s(R)×S)-R)。關(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ù)項。一個表或者是一個基本表,或者是一個視圖?;颈硎菍嶋H存儲在數(shù)據(jù)庫的表,視圖是由若干基本表或其他視圖構(gòu)成的表的定義。SQL包括了所有對數(shù)據(jù)庫的操作,主要有4個部分:數(shù)據(jù)定義(SQL

DDL)、數(shù)據(jù)操縱(SQL

DML)、訪問數(shù)據(jù)控制、嵌入式SQL語言的規(guī)定。SQL

DDL主要是定義基本表、視圖、索引3個部分:

◆基本表的定義、修改、撤銷基本表的定義可用“CREATETABLE”語句實現(xiàn),增加屬性可以用“ALTER...ADD...”語句,刪除屬性可以用“ALTER...DROP...”語句;刪除已存在的表可用“DROPTABLE...”語句?!粢晥D的定義和撤銷視圖的定義可以用CREATE

VIEW語句實現(xiàn)。視圖的撤消可以用DROP

VIEW語句實現(xiàn)?!羲饕亩x和撤銷索引的定義可以用CREATE,用DROP撤銷?!鬝QLDML數(shù)據(jù)查詢語句SQL的查詢語句只有SELECT語句?!鬝ELECT查詢語句在關(guān)系代數(shù)中最常用的式子是“投影選擇聯(lián)接表達式”:πA1,A2,,...An(δF(R1×R2×...×Rm)),這里R1,R2,...Rm為基本表,F(xiàn)是公式,A1,A2,...An為屬性。針對這個表達式,SQL設(shè)計了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

行條件表達式[GROUTBY

列名序列[HAVING

組條件表達式[DRDERBY

列名[序]...前兩個句子是必不可少的,后面的4個句子可以缺省。整個語句的語義如下:從FROM子句中列出的表,選取滿足WHERE子句中給出的行條件表達式的元組,然后按GROUP子句(分組子句)中指定列的值分組,再提取滿足HAVING子句中組條件表達式的那些組,按SELECT子句給出的列名或列表達式求值輸出。ORDER子句(排序子句)是對輸出的目標表進行排序,可附加說明ASC(升序)或DESC(降序)◆SQLDML的數(shù)據(jù)更新語句INSERT

插入語句DELETE

刪除語句UPDATE

修改語句◆SQL的訪問控制SQL的訪問控制功能主要是指對用戶訪問數(shù)據(jù)的控制。有授權(quán)語句和回收語句。授權(quán)語句的格式如下:GRANT權(quán)限表

ON表名TO用戶名表[WITHGRANTOPTION]該語句把表的使用權(quán)授予指定的若干用戶。在有WITHGRANTOPTION短語時,被授權(quán)的用戶還可將獲得的權(quán)限再轉(zhuǎn)授給其他用戶。權(quán)限表中的權(quán)限可以有:SELECT,INSERT,DELETE,UPDATE,EXPAND,INDEX,ALLPRIVILEGES。回收語句格式: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)。數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)是一項軟件工程,但又有自身的特點,所以稱為“數(shù)據(jù)庫工程”。數(shù)據(jù)庫系統(tǒng)從開始規(guī)劃、設(shè)計、實現(xiàn)、維護到最后被新的系統(tǒng)取代而停止使用的整個期間,稱為數(shù)據(jù)庫系統(tǒng)生存期。此生存期可分為7個階段:規(guī)劃、需求分析、概念設(shè)計、邏輯設(shè)計、物理設(shè)計、實現(xiàn)、運行和維護。按照規(guī)范設(shè)計的方法,考慮數(shù)據(jù)庫及其應(yīng)用系統(tǒng)開發(fā)全過程,將數(shù)據(jù)庫設(shè)計分為以下六個階段:◆需求分析階段需求收集和分析,結(jié)果得到數(shù)據(jù)字典描述的數(shù)據(jù)需求(和數(shù)據(jù)流圖描述的處理需求)?!舾拍罱Y(jié)構(gòu)設(shè)計階段通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型,可以用E-R圖表示。◆邏輯結(jié)構(gòu)設(shè)計階段將概念結(jié)構(gòu)轉(zhuǎn)換為某個DBMS所支持的數(shù)據(jù)模型(例如關(guān)系模型),并對其進行優(yōu)化?!魯?shù)據(jù)庫物理設(shè)計階段為邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)和存取方法)?!魯?shù)據(jù)庫實施階段運用DBMS提供的數(shù)據(jù)語言(例如SQL)及其宿主語言(例如C),根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進行試運行。◆數(shù)據(jù)庫運行和維護階段數(shù)據(jù)庫應(yīng)用系統(tǒng)經(jīng)過試運行后即可投入正式運行。在數(shù)據(jù)庫系統(tǒng)運行過程中必須不斷地對其進行評價、調(diào)整與修改。設(shè)計一個完善的數(shù)據(jù)庫應(yīng)用系統(tǒng)不可能一蹴而就,它往往是上述六個階段的不斷反復(fù)。關(guān)系數(shù)據(jù)庫規(guī)范化理論為了使數(shù)據(jù)庫設(shè)計的方法走向完備,人們研究了規(guī)范化理論,指導(dǎo)我們設(shè)計規(guī)范的數(shù)據(jù)庫模式。按屬性間依賴情況來區(qū)分,關(guān)系規(guī)范化的程度為第一范式、第二范式、第三范式、BCNF范式和第四范式等。函數(shù)依賴數(shù)據(jù)依賴是現(xiàn)實世界中屬性間聯(lián)系和約束的抽象,是數(shù)據(jù)的內(nèi)在性質(zhì)。函數(shù)依賴(functionaldependency,F(xiàn)D)是一種最重要、最基本的數(shù)據(jù)依賴。其具體定義如下:設(shè)有關(guān)系模式R(U),X和Y是屬性集U的子集,F(xiàn)D是行為X→Y的一個命題,只要r是R的關(guān)系,對r中任意兩個元組都有“X值相等蘊涵Y值相等”,那么函數(shù)依賴X→Y在關(guān)系模式R(U)中成立。FD與侯選鍵之間的關(guān)系:若存在X->U,并且不存在X的任意真子集X1,使得X1->U成立,那么就稱X為關(guān)系的一個侯選鍵。函數(shù)依賴還有幾條推理規(guī)則:自反性;增廣性;傳遞性;并規(guī)則;分解規(guī)則;偽傳遞規(guī)則;◆模式分解:目的是消除冗余和操作異常問題模式分解的三個定義:

分解具有“無損連接性”

分解要“保持函數(shù)依賴”

分解既要“保持函數(shù)依賴”,又要具有“無損連接性”。關(guān)系模式分解的兩個特性實際涉及到兩個數(shù)據(jù)庫模式的等價性問題。包括數(shù)據(jù)等價和依賴等價兩個方面:數(shù)據(jù)等價:兩個數(shù)據(jù)庫實例應(yīng)表示同樣的信息內(nèi)容,用“無損聯(lián)接”衡量。依賴等價:兩個數(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)GSNO→SDEPT,

(SNO,CNO)SDEPTSNO→SLOC,

(SNO,CNO)SLOCSDEPT→SLOC用投影分解把關(guān)系模式S-L-C分解為3NF范式,且保持函數(shù)依賴。解法:⑴對R〈U,F〉中的函數(shù)依賴集F進行“極小化處理”。F={SNO,CNO→G,SNO→SDEPT,SDEPT→SLOC}。⑵R中沒有不在F中出現(xiàn)的屬性。⑶不存在X→A?F,且XA=U,接著做第=4\*GB2⑷步。⑷對F按具有相同左部的原則分組。r={SC{SNO,CNO,G},SNO,CNO→G},S-D〈{SNO,SDEPT},SNO→SDEPT〉,D-L〈{SDEPT,SLOC},SDEPT→SLOC〉}◆范式范式(normalform,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)系:BCNF<3NF<2NF<1NF數(shù)據(jù)庫保護

概述在數(shù)據(jù)庫系統(tǒng)運行時,DBMS要對數(shù)據(jù)庫進行監(jiān)控,以保證整個系統(tǒng)的正常運轉(zhuǎn),保證數(shù)據(jù)庫中的數(shù)據(jù)安全可靠、正確有效,防止各種錯誤的產(chǎn)生,這就是對數(shù)據(jù)庫的保護,有時也稱為“數(shù)據(jù)控制”。這具體包括以下四個方面:

數(shù)據(jù)庫的恢復(fù)

完整性控制(主鍵約束,外鍵約束,屬性的值域約束)

并發(fā)控制(瑣機制)

安全性控制(存儲控制,審計,視圖保護和日志監(jiān)視)

事務(wù)

事務(wù)在數(shù)據(jù)庫里面是一個十分重要的概念。數(shù)據(jù)庫系統(tǒng)運行的基本工作單位是事務(wù)。它相當(dāng)于操作系統(tǒng)中的進程,一個事務(wù)由應(yīng)用程序中的一組操作序列組成。實際上,事務(wù)可以看作是一個原子,是一個不可分割的操作序列。事務(wù)中包括的所有操作要么都執(zhí)行,要么都不執(zhí)行。事務(wù)通常以BEGINTRANSACTION語句開始,它主要涉及兩個語句。

事務(wù)提交語句COMMIT

事務(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)運行中發(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)中采取了各種保護措施來防止數(shù)據(jù)庫的安全性和完整性被破壞,保證并發(fā)事務(wù)的正確執(zhí)行,但是計算機系統(tǒng)中硬件的故障、軟件的錯誤、操作員的失誤以及惡意的破壞仍是不可避免的,這些故障輕則造成運行事務(wù)非正常中斷,影響數(shù)據(jù)庫中數(shù)據(jù)的正確性,重則破壞數(shù)據(jù)庫,使數(shù)據(jù)庫中全部或部分數(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)停止運轉(zhuǎn)的任何事件,使得系統(tǒng)要重新啟動。例如,特定類型的硬件錯誤(CPU故障)、操作系統(tǒng)故障、DBMS代碼錯誤、突然停電等等。這類故障影響正在運行的所有事務(wù),但不破壞數(shù)據(jù)庫。這時主存內(nèi)容,尤其是數(shù)據(jù)庫緩沖區(qū)(在內(nèi)存)中的內(nèi)容都被丟失,所有運行事務(wù)都非正常終止。發(fā)生系統(tǒng)故障時,一些尚未完成的事務(wù)的結(jié)果可能已送入物理數(shù)據(jù)庫,有些已完成的事務(wù)可能有一部分甚至全部留在緩沖區(qū),尚未寫回到磁盤上的物理數(shù)據(jù)庫中,從而造成數(shù)據(jù)庫可能處于不正確的狀態(tài)。為保證數(shù)據(jù)一致性,恢復(fù)子系統(tǒng)必須在系統(tǒng)重新啟動時讓所有非正常終止的事務(wù)回滾,強行撤消(UNDO)所有未完成事務(wù)。重做(Redo)所有已提交的事務(wù),以將數(shù)據(jù)庫真正恢復(fù)到一致狀態(tài)。三、介質(zhì)故障

系統(tǒng)故障常稱為軟故障(SoftCrash),介質(zhì)故障稱為硬故障(HardCrash)。硬故障指外存故障,如磁盤損壞、磁頭碰撞,瞬時強磁場干擾等。這類故障將破壞數(shù)據(jù)庫或部分數(shù)據(jù)庫,并影響正在存取這部分數(shù)據(jù)的所有事務(wù)。這類故障比前兩類故障發(fā)生的可能性小得多,但破壞性最大。四、計算機病毒

計算機病毒是具有破壞性、可以自我復(fù)制的計算機程序。計算機病毒已成為計算機系統(tǒng)的主要威脅,自然也是數(shù)據(jù)庫系統(tǒng)的主要威脅。因此數(shù)據(jù)庫一旦被破壞仍要用恢復(fù)技術(shù)把數(shù)據(jù)庫加以恢復(fù)?;謴?fù)策略:1.事務(wù)故障的恢復(fù)

事務(wù)故障是指事務(wù)在運行至正常終止點前被中止,這時恢復(fù)子系統(tǒng)應(yīng)利用日志文件撤消(UNDO)此事務(wù)已對數(shù)據(jù)庫進行的修改。事務(wù)故障的恢復(fù)是由系統(tǒng)自動完成的,對用戶是透明的。系統(tǒng)的恢復(fù)步驟是:⑴.反向掃描文件日志(即從最后向前掃描日志文件),查找該事務(wù)的更新操作。⑵.對該事務(wù)的更新操作執(zhí)行逆操作。即將日志記錄中“更新前的值”寫入數(shù)據(jù)庫。這樣,如果記錄中是插入操作,則相當(dāng)于做刪除操作(因此時“更新前的值”為空)。若記錄中是刪除操作,則做插入操作,若是修改操作,則相當(dāng)于用修改前值代替修改后值。⑶.繼續(xù)反向掃描日志文件,查找該事務(wù)的其他更新操作,并做同樣處理。⑷.如此處理下去,直至讀到此事務(wù)的開始標記,事務(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ù)標識記入重做(REDO)隊列。同時找出故障發(fā)生時尚未完成的事務(wù)(這些事務(wù)只有BEGINTRANSACTION記錄,無相應(yīng)的COMMIT記錄),將其事務(wù)標識記入撤消(UNDO)隊列。⑵.對撤消隊列中的各個事務(wù)進行撤消(UNDO)處理。進行UNDO處理的方法是,反向掃描日志文件,對每個UNDO事務(wù)的更新操作執(zhí)行逆操作,即將日志記錄中“更新前的值”寫入數(shù)據(jù)庫。⑶.對重做隊列中的各個事務(wù)進行重做(REDO)處理。

進行REDO處理的方法是:正向掃描日志文件,對每個REDO事務(wù)重新執(zhí)行日志文件登記的操作。即將日志記錄中“更新后的值”寫入數(shù)據(jù)庫。3.介質(zhì)故障的恢復(fù)

并發(fā)控制在多用戶共享系統(tǒng)中,許多事務(wù)可能同時對同一個數(shù)據(jù)進行操作,這時候就產(chǎn)生了并發(fā)控制的問題。DMBS的并發(fā)控制子系統(tǒng)負責(zé)協(xié)調(diào)并發(fā)事務(wù)的執(zhí)行,保證數(shù)據(jù)庫的完整性不受破壞,同時避免用戶得到不正確的數(shù)據(jù)。同時并發(fā)方式:在多處理系統(tǒng)中,每個處理機可以運行一個事務(wù),多個處理機可以同時運行多個事務(wù),實現(xiàn)多個事務(wù)真正的并行運行,這種并行方式稱為同時并發(fā)方式。并發(fā)控制機制是衡量一個數(shù)據(jù)庫管理系統(tǒng)性能的重要標志之一。數(shù)據(jù)庫的并發(fā)操作通??赡軒硪韵碌膯栴}:

丟失更新問題

不一致分析問題(讀過時的數(shù)據(jù))

依賴于未提交更新問題(讀“臟”數(shù)據(jù))處理并發(fā)控制的主要方法是采用封鎖技術(shù)。封鎖是實現(xiàn)并發(fā)控制的一個非常重要的技術(shù)。封鎖:所謂封鎖就是事務(wù)T在對某個數(shù)據(jù)對象例如表、記錄等操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事務(wù)T就對該數(shù)據(jù)對象有了一定的控制,在事務(wù)T釋放它的鎖之前,其它的事務(wù)不能更新此數(shù)據(jù)對象。

基本的封鎖類型有兩種:排它鎖(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做任何修改。有兩種類型:

排他型封鎖(X封鎖)

共享型封鎖(S封鎖)在運用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é)議達到的系統(tǒng)一致性級別是不同的。一級封鎖協(xié)議是:事務(wù)T在修改數(shù)據(jù)R之前必須先對其加X鎖,直到事務(wù)結(jié)束才釋放。事務(wù)結(jié)束包括正常結(jié)束(COMMIT)和非正常結(jié)束(ROLLBACK)。二級封鎖協(xié)議是:一級封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)R之前必須先對其加S鎖,讀完后即可釋放S鎖。二級封鎖協(xié)議除防止了丟失修改,還可進一步防止讀“臟”數(shù)據(jù)三級封鎖協(xié)議是:一級封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)R之前必須先對其加S鎖,直到事務(wù)結(jié)束才釋放。三級封鎖協(xié)議除防止了丟失修改和不讀‘臟’數(shù)據(jù)外,還進一步防止了不可重復(fù)讀和操作系統(tǒng)一樣,封鎖的方法可能引起活鎖和死鎖。一.活鎖活鎖:如果事務(wù)T1封鎖了數(shù)據(jù)R,事務(wù)T2又請求封鎖R,于是T2等待。T3也請求封鎖R,當(dāng)T1釋放了R上的封鎖之后系統(tǒng)首先批準了T3的請求,T2仍然等待。然后T4又請求封鎖R,當(dāng)T3釋放了R上的封鎖之后系統(tǒng)又批準了T4的請求,......,T2有可能永遠等待,這就是活鎖的情形二.死鎖死鎖:如果事務(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ù)永遠不能結(jié)束,形成死鎖。死鎖的預(yù)防:

在數(shù)據(jù)庫中,產(chǎn)生死鎖的原因是兩個或多個事務(wù)都已封鎖了一些數(shù)據(jù)對象,然后又都請求對已被其他事務(wù)封鎖的數(shù)據(jù)對象加鎖,從而出現(xiàn)死等待。防止死鎖的發(fā)生其實就是要破壞產(chǎn)生死鎖的條件。預(yù)防死鎖通常有兩種方法:一次封鎖法:一次封鎖法要求每個事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,否則就不能繼續(xù)執(zhí)行。一次封鎖法雖然可以有效地防止死鎖的發(fā)生,但也存在問題,一次就將以后要用到的全部數(shù)據(jù)加鎖,勢必擴大了封鎖的范圍,從而降低了系統(tǒng)的并發(fā)度。順序封鎖法:順序封鎖法是預(yù)先對數(shù)據(jù)對象規(guī)定一個封鎖順序,所有事務(wù)都按這個順序?qū)嵭蟹怄i。順序封鎖法可以有效地防止死鎖,但也同樣存在問題。事務(wù)的封鎖請求可以隨著事務(wù)的執(zhí)行而動態(tài)地決定,很難事先確定每一個事務(wù)要封鎖哪些對象,因此也就很難按規(guī)定的順序去施加封鎖。

可見,在操作系統(tǒng)中廣為采用的預(yù)防死鎖的策略并不很適合數(shù)據(jù)庫的特點,因此DBMS在解決死鎖的問題上普遍采用的是診斷并解除死鎖的方法。2.死鎖的診斷與解除①超時法

如果一個事務(wù)的等待時間超過了規(guī)定的時限,就認為發(fā)生了死鎖。超時法實現(xiàn)簡單,但其不足也很明顯。一是有可能誤判死鎖,事務(wù)因為其他原因使等待時間超過時限,系統(tǒng)會誤認為發(fā)生了死鎖。二是時限若設(shè)置得太長,死鎖發(fā)生后不能及時發(fā)現(xiàn)。②等待圖法

事務(wù)等待圖是一個有向圖G=(T,U)。T為結(jié)點的集合,每個結(jié)點表示正運行的事務(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è)法解除。通常采用的方法是選擇一個處理死鎖代價最小的事務(wù),將其撤消,釋放此事務(wù)持有的所有的鎖,使其它事務(wù)得以繼續(xù)運行下去。當(dāng)然,對撤消的事務(wù)所執(zhí)行的數(shù)據(jù)修改操作必須加以恢復(fù)。如果一個事務(wù)運行過程中沒有其他事務(wù)同時運行,也就是說它沒有受到其他事務(wù)的干擾,那么就可以認為該事務(wù)的運行結(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ù)的四種一致性級別,從高到低分別是:

serializable(可串行化)

repeatableread(可重復(fù)讀)

readcommitted(讀提交數(shù)據(jù))

readuncommitted(可讀未提交數(shù)據(jù))數(shù)據(jù)庫安全:數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。為降低進而消除對系統(tǒng)的安全攻擊,尤其是彌補原有系統(tǒng)在安全保護方面的缺陷,在計算機安全技術(shù)方面逐步建立了一套可信標準。在目前各國所引用或制定的一系列安全標準中,最重要的當(dāng)推1985年美國國防部(DoD)正式頒布的《DoD可信計算機系統(tǒng)評估標準》(TrustedComputerSystemEvaluationCriteria,簡記為TCSEC)[1]或DoD85)。制定這個標準的目的主要有:⑴提供一種標準,使用戶可以對其計算機系統(tǒng)內(nèi)敏感信息安全操作的可信程度做出評估。⑵給計算機行業(yè)的制造商提供一種可循的指導(dǎo)規(guī)則,使其產(chǎn)品能夠更好的滿足敏感應(yīng)用的安全需求。

在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進一步細化,以個人身份注冊負責(zé),并實施審計和資源隔離。很多商業(yè)產(chǎn)品已得到該級別的認證。達到C2級的產(chǎn)品在其名稱中往往不突出“安全”(Security)這一特色,如操作系統(tǒng)中Microsoft的WindowsNT,數(shù)字設(shè)備公司的OpenVMSVAX和。數(shù)據(jù)庫產(chǎn)品有Oracle公司的Oracle7,Sybase公司的SQLServer等。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ù)字設(shè)備公司的SEVMSVAXVersion,惠普公司的HP-UXBLSrelease。數(shù)據(jù)庫方面則有Oracle公司的TrustedOracle7,Sybase公司的SecureSQLServerversion,Informix公司的IncorporatedINFORMIX-OnLine/Secure等。B2級:結(jié)構(gòu)化保護。建立形式化的安全策略模型并對系統(tǒng)內(nèi)的所有主體和客體實施DAC和MAC。

從互連網(wǎng)上的最新資料看,經(jīng)過認證的、B2級以上的安全系統(tǒng)非常稀少。例如,符合B2標準的操作系統(tǒng)只有TrustedInformationSystems公司的TrustedXENIX一種產(chǎn)品,符合B2標準的網(wǎng)絡(luò)產(chǎn)品只有CryptekSecureCommunications公司的LLCVSLAN一種產(chǎn)品,而數(shù)據(jù)庫方面則沒有符合B2標準的產(chǎn)品。B3級:安全域。該級的TCB必須滿足訪問監(jiān)控器的要求,審計跟蹤能力更強,并提供系統(tǒng)恢復(fù)過程。A1級:驗證設(shè)計,即提供B3級保護的同時給出系統(tǒng)的形式化設(shè)計說明和驗證以確信各安全保護真正實現(xiàn)。

B2以上的系統(tǒng)標準更多地還處于理論研究階段,產(chǎn)品化以至商品化的程度都不高,其應(yīng)用也多限于一些特殊的部門如軍隊等。但美國正在大力發(fā)展安全產(chǎn)品,試圖將目前僅限于少數(shù)領(lǐng)域應(yīng)用的B2安全級別或更高安全級別下放到商業(yè)應(yīng)用中來,并逐步成為新的商業(yè)標準。

可以看出,支持自主存取控制的DBMS大致屬于C級,而支持強制存取控制的DBMS則可以達到B1級。當(dāng)然,存取控制僅是安全性標準的一個重要方面(即安全策略方面)不是全部。為了使DBMS達到一定的安全級別,還需要在其它三個方面提供相應(yīng)的支持。例如審計功能就是DBMS達到C2以上安全級別必不可少的一項指標。下面介紹Oracle的安全性措施。

Oracle的安全性措施主要有三個方面:一是用戶標識和鑒定;二是授權(quán)和檢查機制;三是審計技術(shù);除此之外Oracle還允許用戶通過出發(fā)器靈活定義自己的安全性措施。用戶標識和鑒定授權(quán)與檢查機制系統(tǒng)權(quán)限數(shù)據(jù)庫對象的權(quán)限⑴表級安全性⑵行級安全性⑶列級安全性審計技術(shù)用戶定義的安全性措施隨著計算機特別是計算機網(wǎng)絡(luò)的發(fā)展,數(shù)據(jù)的共享日益加強,數(shù)據(jù)的安全保密越來越重要。DBMS是管理數(shù)據(jù)的核心,因而其自身必須具有一整套完整而有效的安全性機制。

《可信計算機系統(tǒng)評測標準》TCSEC/TDI是目前各國所引用或制定的一系列安全標準中最重要的一個。TCSEC/TDI從安全策略、責(zé)任、保證和文檔四個方面描述了安全性級別的指標。按照這些指標,目前許多大型DBMS達到了C2級,其安全版本達到了B1。

實現(xiàn)數(shù)據(jù)庫系統(tǒng)安全性的技術(shù)和方法有多種,最重要的是存取控制技術(shù)和審計技術(shù)。C2級的DBMS必須具有自主存取控制功能和初步的審計功能,B1的DBMS必須具有強制存取控制和增強的審計功能。自主存取控制功能一般是通過SQL的GRANT語句和REVOKE語句來實現(xiàn)的。數(shù)據(jù)倉庫與分布式數(shù)據(jù)庫數(shù)據(jù)倉庫:隨著計算機技術(shù)的飛速發(fā)展和企業(yè)界不斷提出新的需求,數(shù)據(jù)倉庫技術(shù)應(yīng)運而生。傳統(tǒng)的數(shù)據(jù)庫技術(shù)是單一的數(shù)據(jù)資源,即數(shù)據(jù)庫為中心,進行從事事務(wù)處理、批處理到?jīng)Q策分析等各種類型的數(shù)據(jù)處理工作。近年來,隨著計算機應(yīng)用,,網(wǎng)絡(luò)計算,開始向兩個不同的方向拓展,一是廣度計算,一是深度計算,廣度計算的含義是把計算機的應(yī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ù)管理手段,從它的誕生開始,就主要用于事務(wù)處理。經(jīng)過數(shù)十年的發(fā)展,在這些數(shù)據(jù)庫中已經(jīng)保存了大量的日常業(yè)務(wù)數(shù)據(jù)。傳統(tǒng)的業(yè)務(wù)系統(tǒng)一般是直接建立在這種事務(wù)處理環(huán)境上的。隨著技術(shù)的進步,人們試圖讓計算機擔(dān)任更多的工作,而數(shù)據(jù)庫技術(shù)也一直力圖使自己能勝任從事務(wù)處理、批處理到分析處理的各種類型的信息處理任務(wù)。后來人們逐漸認識到,在目前的計算機處理能力上,根本無法實現(xiàn)這種功能,而且,另一方面,事物處理和分析處理具有極不相同的性質(zhì),直接使用事務(wù)處理環(huán)境來支持決策是行不通的。事務(wù)處理環(huán)境不適宜DSS應(yīng)用的原因主要有以下五條:(1)事務(wù)處理和分析處理的性能特性不同。在事務(wù)處理環(huán)境中,用戶的行為特點是數(shù)據(jù)的存取操作頻率高而每次操作處理的時間短;在分析處理環(huán)境中,用戶的行為模式與此完全不同,某個DSS應(yīng)用程序可能需要連續(xù)幾個小時,從而消耗大量的系統(tǒng)資源。將具有如此不同處理性能的兩種應(yīng)用放在同一個環(huá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)集成的最大缺點在于,如果在數(shù)據(jù)集成后數(shù)據(jù)源中數(shù)據(jù)發(fā)生了變化,這些變化將不能反映給決策者,導(dǎo)致決策者使用的是過時的數(shù)據(jù)。集成數(shù)據(jù)必須以一定的周期(例如24小時)進行刷新,我們稱其為動態(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ù)的詳細分析,是難以把握企業(yè)的發(fā)展趨勢的。DSS對數(shù)據(jù)在空間和時間的廣度上都有了更高的要求,而事務(wù)處理環(huán)境難以滿足這些要求。(5)數(shù)據(jù)的綜合問題。在事務(wù)處理系統(tǒng)中積累了大量的細節(jié)數(shù)據(jù),一般而言,DSS并不對這些細節(jié)數(shù)據(jù)進行分析。在分析前,往往需要對細節(jié)數(shù)據(jù)進行不同程度的綜合。而事務(wù)處理系統(tǒng)不具備這種綜合能力,根據(jù)規(guī)范化理論,這種綜合還往往因為是一種數(shù)據(jù)冗余而加以限制。要提高分析和決策的效率和有效性,分析型處理及其數(shù)據(jù)必須與操作型處理及其數(shù)據(jù)相分離。必須把分析型數(shù)據(jù)從事務(wù)處理環(huán)境中提取出來,按照DSS處理的需要進行重新組織,建立單獨的分析處理環(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ù)與計算機網(wǎng)絡(luò)技術(shù)的產(chǎn)物。分布式數(shù)據(jù)庫系統(tǒng)是具有管理分布數(shù)據(jù)庫功能的計算機系統(tǒng)。一個分布式數(shù)據(jù)庫是由分布于計算機網(wǎng)絡(luò)上的多個邏輯相關(guān)的數(shù)據(jù)庫組成的集合,網(wǎng)絡(luò)中的每個結(jié)(一般在系統(tǒng)中的每一臺計算機稱為結(jié)點node)具有獨立處理的能力(稱為本地自治),可執(zhí)行局部應(yīng)用,同時,每個結(jié)點通過網(wǎng)絡(luò)通訊系統(tǒng)也能執(zhí)行全局應(yīng)用。所謂局部應(yīng)用即僅對本結(jié)點的數(shù)據(jù)庫執(zhí)行某些應(yīng)用。所謂全局應(yīng)用(或分布應(yīng)用)是指對兩個以上結(jié)點的數(shù)據(jù)庫執(zhí)行某些應(yīng)用。支持全局應(yīng)用的系統(tǒng)才能稱為分布式數(shù)據(jù)庫系統(tǒng)。對用戶來說,一個分布式數(shù)據(jù)庫系統(tǒng)邏輯上看如同集中式數(shù)據(jù)庫系統(tǒng)一樣,用戶可在任何一個場地執(zhí)行全局應(yīng)用。

分布式數(shù)據(jù)庫系統(tǒng)是由分布式數(shù)據(jù)庫管理系統(tǒng)和分布式數(shù)據(jù)庫組成。分布式數(shù)據(jù)庫管理系統(tǒng)(簡稱DDBMS)是建立、管理和維護分布式數(shù)據(jù)庫的一組軟件。

分布式數(shù)據(jù)庫系統(tǒng)適合于單位分散的部門,系統(tǒng)的結(jié)點可反映公司的邏輯組織,允許各部門將其常用數(shù)據(jù)存貯在本地,實施就地存放就地使用,降低通訊費用,并可提高響應(yīng)速度。分布式數(shù)據(jù)庫可將數(shù)據(jù)分布在多個結(jié)點上,增加適當(dāng)?shù)娜哂?,可提高系統(tǒng)的可靠性,只要一個數(shù)據(jù)庫和網(wǎng)絡(luò)可用,那么全局數(shù)據(jù)庫可一部分可用。不會因一個數(shù)據(jù)庫的故障而停止全部操作或引起性能瓶頸。故障恢復(fù)通常在單個結(jié)點上進行。結(jié)點可獨立地升級軟件。每個局部數(shù)據(jù)庫存在一個數(shù)據(jù)字典。由于分布式數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)的特點,它和集中式數(shù)據(jù)庫系統(tǒng)相比具有可擴展性,為擴展系統(tǒng)的處理能力提供了較好的途徑。

理想的分布式系統(tǒng)使用時應(yīng)該精確地像一個非分布式系統(tǒng)的樣子。1986年.Date為理想的分布式系統(tǒng)創(chuàng)立了12條細則,這12條全功能分布式數(shù)據(jù)庫系統(tǒng)的規(guī)則和目標具體是:(1)局部結(jié)點自治性,網(wǎng)絡(luò)中的每個結(jié)點是獨立的數(shù)據(jù)庫系統(tǒng),它有自己的數(shù)據(jù)庫,運行它的局部DBMS,執(zhí)行局部應(yīng)用,具有高度的自治性。(2)不依賴中心結(jié)點,即每個結(jié)點具有全局字典管理、查詢處理、并發(fā)控制和恢復(fù)控制等功能。(3)能連續(xù)操作,該目標使中斷分布式數(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)停機的情況下對組成分布式系統(tǒng)的場地的DBMS進行升級。(4)具有位置獨立性(或稱位置透明性),用戶不必知道數(shù)據(jù)的物理存儲地,可工作得像數(shù)據(jù)全部存儲在局部場地一樣。一般位置獨立性需要有分布式數(shù)據(jù)命名模式和字典子系統(tǒng)的支持。(5)分片獨立性(或稱分片透明性),分布式系統(tǒng)如果可將給定的關(guān)系分成若干塊或片,可提高系統(tǒng)的處理性能。利用分片將數(shù)據(jù)存儲在最頻繁使用它的位置上,使大部分操作是局部操作,減少網(wǎng)絡(luò)的信息流量。如果系統(tǒng)支持分片獨立性,用戶工作起來就像數(shù)據(jù)全然不是分片的一樣。(6)數(shù)據(jù)復(fù)制獨立性,是指將給定的關(guān)系(或片段)可在物理級用許多不同存儲副本或復(fù)制品在許多不同場地上存儲。支持數(shù)據(jù)復(fù)制的系統(tǒng)應(yīng)當(dāng)支持復(fù)制獨立性,用戶工作可像它全然沒有存儲副本一樣地工作。(7)支持分布式查詢處理,在分布數(shù)據(jù)庫系統(tǒng)中有三類查詢:局部查詢、遠程查詢和全局查詢。局部查詢和遠程查詢僅涉及單個結(jié)點的數(shù)據(jù)(本地的或遠程的),查詢優(yōu)化采用的技術(shù)是集中式數(shù)據(jù)庫的查詢優(yōu)化技術(shù)。全局查詢涉及多個結(jié)點上的數(shù)據(jù),其查詢處理和優(yōu)化要復(fù)雜得多。(8)支持分布事務(wù)管理,事務(wù)管理有兩個主要方面:恢復(fù)控制和并發(fā)控制。在分布式系統(tǒng)中,單個事務(wù)會涉及到多個場地上的代碼執(zhí)行,會涉及到多個場地上的更新,可以說每個事務(wù)是由多個“代理”組成,每個代理代表在給定場地上的給定事務(wù)上執(zhí)行的過程。在分布式系統(tǒng)中須保證事務(wù)的代理集,或者全部一致交付,或者全部一致回滾。(9)具有硬件獨立性,希望在不同硬件系統(tǒng)上運行同樣的DBMS。(10)具有操作系統(tǒng)獨立性,希望在不同的操作系統(tǒng)上運行DBMS。(11)具有網(wǎng)絡(luò)獨立性,如果系統(tǒng)能夠支持多個不同的場地,每個場地有不同的硬件和不同的操作系統(tǒng),則要求該系統(tǒng)能支持各種不同的通信網(wǎng)絡(luò)。(12)具有DBMS獨立性,實現(xiàn)對異構(gòu)型分布式系統(tǒng)的支持。理想的分布式系統(tǒng)應(yīng)該提供DBMS獨立性。

上述的全功能分布式數(shù)據(jù)庫系統(tǒng)的準則和目標起源于:一個分布式數(shù)據(jù)庫系統(tǒng),對用戶來說,應(yīng)當(dāng)看上去完全像一個非分布式系統(tǒng)。DDBS的基本特點

物理分布性:數(shù)據(jù)不是存儲在一個場地上,而是存儲在計算機網(wǎng)絡(luò)的多個場地上。

邏輯整體性:數(shù)據(jù)物理分布在各個場地,但邏輯上是一個整體,它們被所有用戶(全局用戶)共享,并由一個DDBMS統(tǒng)一管理。

場地自治性:各場地上的數(shù)據(jù)由本地的DBMS管理,具有自治處理能力,完成本場地的應(yīng)用(局部應(yīng)用)。

場地之間協(xié)作性:各場地雖然具有高度的自治性,但是又相互協(xié)作構(gòu)成一個整體。分布式數(shù)據(jù)庫的體系結(jié)構(gòu)分布式數(shù)據(jù)庫與集中式數(shù)據(jù)庫的對比:

分布式DBMS集中式DBMS①存取方式用戶→DDBMS→分布式網(wǎng)絡(luò)OS→網(wǎng)絡(luò)通信→局部DBMS→局部OS→DB用戶→DBMS→OS→DB②數(shù)據(jù)冗余性有控制的冗余最小的冗余③數(shù)據(jù)表示級別(四級)用戶試圖,全局視圖,分片視圖,分配視圖(三級)外部視圖,概念視圖,內(nèi)部視圖④數(shù)據(jù)存放方式復(fù)制在多個場地,模式分散化,處理程序也分散化集中在一個地點⑤DBA分布在各場地,進行局部控制集中在一起⑥同步由全局DBMS和網(wǎng)絡(luò)OS組成由OS完成⑦封鎖分散控制集中控制⑧實際資源多個CPU,多個DBMS一個CPU,一個DBMS⑨操作方式當(dāng)前方式,響應(yīng)方式兩種一種方式(當(dāng)前方式)⑩數(shù)據(jù)一致性所有主場地的邏輯結(jié)果是一致的,但各個場地的復(fù)制中數(shù)據(jù)可能不一致任何時候都需要保持數(shù)據(jù)的一致性2.數(shù)據(jù)庫重點和難點:數(shù)據(jù)庫管理系統(tǒng)(DBMS)數(shù)據(jù)庫管理系統(tǒng)(DBMS)是指DBS中對數(shù)據(jù)進行管理的軟件系統(tǒng),它是DBS的核心成分。DBS中所有與數(shù)據(jù)庫打交道的操作,包括建庫、查詢、更新及數(shù)據(jù)控制,都是通過DBMS進行的。數(shù)據(jù)庫管理系統(tǒng)總是基于某種數(shù)據(jù)庫模型,可分為網(wǎng)狀型、層次型、關(guān)系型和面向?qū)ο笮虳BMS。數(shù)據(jù)庫管理系統(tǒng)的主要目標:把數(shù)據(jù)作為可管理的資源處理。數(shù)據(jù)庫管理系統(tǒng)的5個重要功能:◆數(shù)據(jù)庫的定義功能:DBMS提供數(shù)據(jù)定義語言(DDL)定義數(shù)據(jù)庫的3級結(jié)構(gòu),包括外模式、概念模式、內(nèi)模式及其相互之間的映象,定義數(shù)據(jù)的完整性約束、保密限制等條件。因此在DBMS中包括DDL的編譯程序?!魯?shù)據(jù)庫的操縱功能:提供數(shù)據(jù)操縱語言(DML)實現(xiàn)對數(shù)據(jù)的操作。有4種基本操作:檢索(查詢)、插入、刪除、修改。在DBMS中包括DML的編譯程序或解釋程序?!魯?shù)據(jù)庫的保護功能:DBMS對數(shù)據(jù)庫的保護主要通過4個子系統(tǒng):A.數(shù)據(jù)庫恢復(fù)(在數(shù)據(jù)庫被破壞或數(shù)據(jù)不正確時,系統(tǒng)有能力把數(shù)據(jù)庫恢復(fù)到最近某個正確的狀態(tài)B.數(shù)據(jù)完整性控制(保證數(shù)據(jù)庫中數(shù)據(jù)及語義的正確性和有效性,防止任何對數(shù)據(jù)錯誤的操作)C.多用戶環(huán)境下的并發(fā)控制。D.數(shù)據(jù)安全性控制(防止未被授權(quán)的用戶蓄謀或無意地存取數(shù)據(jù)庫中的數(shù)據(jù),以免數(shù)據(jù)的泄露或破壞)?!魯?shù)據(jù)庫的維護功能:這部分包括數(shù)據(jù)庫的初始數(shù)據(jù)載入、轉(zhuǎn)換功能、存儲功能、數(shù)據(jù)庫的改組、性能監(jiān)視功能。◆數(shù)據(jù)字典(DD):DD管理數(shù)據(jù)庫3級結(jié)構(gòu)的定義。對于數(shù)據(jù)庫的操作都要通過查閱DD才能進行?,F(xiàn)在有的大型系統(tǒng)中,把DD單獨抽出來自成一個系統(tǒng),成為一個系統(tǒng)工具,使得DD成為一個比DBMS更高級的用戶與數(shù)據(jù)庫之間的接口。要注意的是:應(yīng)用程序并不屬于DBMS的范圍。應(yīng)用程序是用主語言和DML編寫的,程序中的DML語句由DBMS執(zhí)行,而其余部分仍由主語言編譯程序完成。數(shù)據(jù)庫系統(tǒng)(DBS)數(shù)據(jù)庫系統(tǒng)是一個復(fù)雜的系統(tǒng),它是采用了數(shù)據(jù)庫技術(shù)的計算機系統(tǒng)。因此,它不僅僅是一組對數(shù)據(jù)進行管理的軟件(即DBMS),也不僅僅是一個數(shù)據(jù)庫。它是一個實際可運行的、按照數(shù)據(jù)庫方法存儲、維護和向應(yīng)用系統(tǒng)提供數(shù)據(jù)支持的系統(tǒng)。它是存儲介質(zhì)、處理對象和管理系統(tǒng)的集合體,由數(shù)據(jù)庫DB、硬件支持系統(tǒng)、軟件支持系統(tǒng)和數(shù)據(jù)庫管理員DBA這四部分組成。SQL語句

基本表的定義可用“CREATETABLE”語句實現(xiàn),增加屬性可以用ALTER...ADD...”語句,刪除屬性可以用“ALTER...DROP...”語句;刪除已存在的表可用“DROPTABLE...”語句。

視圖的定義和撤消

索引的定義和撤銷

SELECT查詢語句

DELETE刪除語句

INSERT插入語句

UPDATE語句關(guān)系運算用例子說明前面的概念

設(shè)關(guān)系R:

-------------------------------

A

B

C

-------------------------------

a

b

c

d

a

f

c

b

d

關(guān)系S:

----------------------------------

A

B

C

----------------------------------

b

g

a

d

a

f則R∪S為:

------------------------------

A

B

C

------------------------------

a

b

c

d

a

f

c

d

b

b

g

aR-S為:

-----------------------------

A

B

C

-------------------------------

a

b

c

c

b

dR×S為:--------------------------------------------------------------------

----------------------------------------------------------------------

a

b

c

b

g

a

a

b

c

d

a

f

d

a

f

b

g

a

d

a

f

d

a

f

c

b

d

b

g

a

c

b

d

d

a

f(R)為:

----------------------

A

C

----------------------

a

c

d

f

c

d

(R)為:

--------------------------

A

B

C

-------------------------

a

b

c

c

b

d關(guān)系R:

---------------------------

關(guān)系S為:---------------------

A

B

C

D

E

-----------------------------

----------------------

1

2

3

3

1

4

5

6

6

2

7

8

9

則:小于聯(lián)接R│×│S為:---------------------------------

2<1

A

B

C

D

E

----------------------------------

1

2

3

3

1

1

2

3

6

2

4

5

6

6

2若關(guān)系R為:------------------

關(guān)系S為:-----------------

溫馨提示

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

評論

0/150

提交評論