自考00911互聯(lián)網(wǎng)數(shù)據(jù)庫 精華小抄筆記_第1頁
自考00911互聯(lián)網(wǎng)數(shù)據(jù)庫 精華小抄筆記_第2頁
自考00911互聯(lián)網(wǎng)數(shù)據(jù)庫 精華小抄筆記_第3頁
自考00911互聯(lián)網(wǎng)數(shù)據(jù)庫 精華小抄筆記_第4頁
自考00911互聯(lián)網(wǎng)數(shù)據(jù)庫 精華小抄筆記_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、互聯(lián)網(wǎng)數(shù)據(jù)庫串講 學(xué)習(xí)目的和要求 了解數(shù)據(jù)管理發(fā)展歷程 理解數(shù)據(jù)模型的三要素及常用的三種數(shù)據(jù)模型 掌握數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)和數(shù)據(jù)的兩層映象 理解數(shù)據(jù)庫管理系統(tǒng)的組成和功能。 往年頻繁考點: 數(shù)據(jù)庫基本概念(DB,DBMS,DBS)及其聯(lián)系 數(shù)據(jù)管理技術(shù)發(fā)展的三個階段及其特點 數(shù)據(jù)模型的三要素 數(shù)據(jù)庫三級模式結(jié)構(gòu) 二級映像與數(shù)據(jù)獨立性 數(shù)據(jù)庫管理系統(tǒng)的基本功能第一節(jié) 數(shù)據(jù)管理技術(shù)的發(fā)展 數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)的概念 數(shù)據(jù):描述事物的符號記錄。 數(shù)據(jù)庫:數(shù)據(jù)庫是長期存儲在計算機(jī)內(nèi)、有組織、可共享的數(shù)據(jù)集合。 數(shù)據(jù)庫系統(tǒng)(DBS):是實現(xiàn)有組織地、動態(tài)地存儲大量關(guān)聯(lián)數(shù)據(jù),方便多

2、用戶訪問的計算機(jī)軟件、硬件和數(shù)據(jù)資源組成的系統(tǒng),即采用了數(shù)據(jù)庫技術(shù)的計算機(jī)系統(tǒng)。 數(shù)據(jù)庫管理系統(tǒng)(DBMS):是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用程序提供訪問DB的方法,包括DB的建立、查詢、更新及各種數(shù)據(jù)控制。DBMS總是基于某種數(shù)據(jù)模型,可以分為層次型、網(wǎng)狀型、關(guān)系型、面向?qū)ο笮虳BMS。 數(shù)據(jù)管理經(jīng)歷的三個階段 人工管理階段:數(shù)據(jù)不保存、數(shù)據(jù)需要由應(yīng)用程序自己進(jìn)行管理、基本上沒有文件概念、數(shù)據(jù)不共享。 文件系統(tǒng)階段:數(shù)據(jù)可以長期保存、文件系統(tǒng)管理數(shù)據(jù)、 文件已經(jīng)多樣化、數(shù)據(jù)的存取基本上以記錄為單位。但數(shù)據(jù)共享性差,數(shù)據(jù)冗余度大;數(shù)據(jù)和程序缺乏獨立性。 數(shù)據(jù)庫系統(tǒng)階段:

3、數(shù)據(jù)結(jié)構(gòu)化;數(shù)據(jù)共享性高、冗余度小、易擴(kuò)充;數(shù)據(jù)獨立性高;統(tǒng)一的數(shù)據(jù)管理和控制:數(shù)據(jù)的安全性保護(hù)、數(shù)據(jù)的完整性控制、數(shù)據(jù)庫恢復(fù)和并發(fā)控制;數(shù)據(jù)的最小存取單位是數(shù)據(jù)項。 數(shù)據(jù)庫技術(shù):是一門研究數(shù)據(jù)庫結(jié)構(gòu)、存儲、管理和使用的軟件學(xué)科。 數(shù)據(jù)庫技術(shù)的發(fā)展 第一代數(shù)據(jù)庫系統(tǒng),即層次數(shù)據(jù)庫系統(tǒng)和網(wǎng)狀數(shù)據(jù)庫系統(tǒng) 第二代數(shù)據(jù)庫系統(tǒng),即關(guān)系數(shù)據(jù)庫系統(tǒng) 第三代數(shù)據(jù)庫系統(tǒng),即面向?qū)ο髷?shù)據(jù)庫系統(tǒng) 數(shù)據(jù)庫技術(shù)的研究領(lǐng)域 數(shù)據(jù)庫管理系統(tǒng)軟件的研制 數(shù)據(jù)庫設(shè)計 數(shù)據(jù)庫理論第二節(jié) 數(shù)據(jù)模型 數(shù)據(jù)模型是現(xiàn)實世界數(shù)據(jù)特征的抽象。是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ)。 數(shù)據(jù)模型應(yīng)滿足三方面要求: 一是能比較真實地模擬現(xiàn)實世界; 二是容易為人

4、所理解; 三是便于在計算機(jī)上實現(xiàn)。 根據(jù)模型應(yīng)用目的分為: 概念模型,也稱信息模型,它是按用戶的觀點對數(shù)據(jù)和信息建模。 數(shù)據(jù)模型,主要包括層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο髷?shù)據(jù)模型,它是按計算機(jī)系統(tǒng)的觀點對數(shù)據(jù)建模。 數(shù)據(jù)模型三個要素: 數(shù)據(jù)結(jié)構(gòu)描述系統(tǒng)的靜態(tài)特性 數(shù)據(jù)操作描述系統(tǒng)的動態(tài)特性 數(shù)據(jù)的約束條件是一組完整性規(guī)則的集合 概念模型:用于信息世界的建模,是現(xiàn)實世界到信息世界的第一層抽象 實體(Entity):客觀存在并可相互區(qū)別的事物 屬性(Attribute):實體所具有的某一特性 實體集(Entity Set):性質(zhì)相同的同類實體的集合 實體型(Entity Type):用實體名

5、及其屬性名集合來抽象和刻畫同類實體 碼(Key)唯一標(biāo)識實體的屬性集(最小)稱為碼 域(Domain)屬性的取值范圍稱為該屬性的域 聯(lián)系(Relationship)實體(型)內(nèi)部的聯(lián)系和實體(型)之間的聯(lián)系兩個實體型之間的聯(lián)系可以分為三類:一對一聯(lián)系(11);一對多聯(lián)系(1n);多對多聯(lián)系(mn) 概念模型的表示方法 E-R圖提供了表示實體型、屬性和聯(lián)系的方法。實體-聯(lián)系方法(E-R方法)是抽象和描述現(xiàn)實世界的有力工具。 實體型:用矩形表示,矩形框內(nèi)寫明實體名。屬性:用橢圓形表示,并用無向邊將其與相應(yīng)的實體連接起來。聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實體連接起來,同時在

6、無向邊旁標(biāo)上聯(lián)系的類型(11,1n或mn)。 數(shù)據(jù)模型:層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο髷?shù)據(jù)模型。其中層次模型和網(wǎng)狀模型統(tǒng)稱為非關(guān)系模型。 層次模型:用樹型結(jié)構(gòu)表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型 數(shù)據(jù)結(jié)構(gòu)特征: 只有一個結(jié)點沒有雙親結(jié)點,稱之為根結(jié)點;根以外的其他結(jié)點有且只有一個雙親結(jié)點。 優(yōu)缺點:優(yōu)點:數(shù)據(jù)模型簡單;若實體間的關(guān)系固定,性能優(yōu)于關(guān)系模型;良好的完整性支持。缺點:描述現(xiàn)實世界的非層次性很笨拙;插入和刪除操作限制較多;必須通過雙親才能找到子結(jié)點;由于結(jié)構(gòu)嚴(yán)密,層次命令趨于程序化。 網(wǎng)狀模型:用有向圖結(jié)構(gòu)表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型。 數(shù)據(jù)結(jié)構(gòu)特征 (1)允許一個以上的

7、結(jié)點無雙親;(2)一個結(jié)點可以有多于一個的雙親。 優(yōu)缺點優(yōu)點:能夠直接描述現(xiàn)實世界;存取效率較高。缺點:數(shù)據(jù)描述語言極其復(fù)雜;數(shù)據(jù)獨立性差。l 關(guān)系模型:是由若干個關(guān)系模式組成的集合 數(shù)據(jù)結(jié)構(gòu)特征:是用二維表格結(jié)構(gòu)表達(dá)實體集,用外鍵表示實體間聯(lián)系。關(guān)系模型要求關(guān)系必須是規(guī)范化的, 優(yōu)缺點優(yōu)點:有嚴(yán)格的數(shù)學(xué)概念作基礎(chǔ);關(guān)系模型的概念單一;存取路徑對用戶透明缺點:查詢效率不高第三節(jié) 數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu) 外模式、模式和內(nèi)模式的概念和涵義 模式:數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,一個數(shù)據(jù)庫只有一個模式。 外模式:局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,外模式是模式的子集。 內(nèi)模式:數(shù)

8、據(jù)物理結(jié)構(gòu)和存儲方式的描述,數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方法,一個數(shù)據(jù)庫只有一個內(nèi)模式。 數(shù)據(jù)獨立性 數(shù)據(jù)獨立性是指數(shù)據(jù)和程序之間的獨立。它包括物理獨立性和邏輯獨立性兩個方面。 數(shù)據(jù)庫系統(tǒng)在三級模式之間提供的兩層映象: 外模式/模式映象:通常包含在各外模式描述中提供數(shù)據(jù)的邏輯獨立性:當(dāng)模式改變時,通過改變外模式/模式映象而使外模式保持不變,因此應(yīng)用程序不變。l 模式/內(nèi)模式映象:通常包含在模式描述中提供數(shù)據(jù)的物理獨立性:當(dāng)數(shù)據(jù)庫的存儲結(jié)構(gòu)改變了,通過改變模式/內(nèi)模式映象而使模式保持不變。 兩層映象保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨立性和物理獨立性。 第四節(jié) 數(shù)據(jù)庫管理系統(tǒng) 數(shù)據(jù)庫管理系統(tǒng)的

9、功能 數(shù)據(jù)定義 數(shù)據(jù)操縱 數(shù)據(jù)庫運行管理 數(shù)據(jù)組織、存儲和管理 數(shù)據(jù)庫的建立和維護(hù) 數(shù)據(jù)通信接口 數(shù)據(jù)庫管理系統(tǒng)的組成 數(shù)據(jù)定義語言及其翻譯處理程序 數(shù)據(jù)操縱語言及其編譯(或解釋)程序 數(shù)據(jù)庫運行控制程序 實用程序 一個設(shè)計優(yōu)良的DBMS: 友好的用戶界面 比較完備的功能 較高的運行效率 清晰的系統(tǒng)結(jié)構(gòu)和開放性 應(yīng)用程序從數(shù)據(jù)庫中讀取一個數(shù)據(jù)通常需要以下步驟 : 應(yīng)用程序向DBMS發(fā)出從數(shù)據(jù)庫中讀數(shù)據(jù)記錄的命令; DBMS對該命令進(jìn)行語法檢查、語義檢查,并調(diào)用該應(yīng)用程序?qū)?yīng)的外模式,檢查程序的存取權(quán)限,決定是否執(zhí)行該命令。如果拒絕執(zhí)行,則向用戶返回錯誤信息; 在決定執(zhí)行該命令后,DBMS調(diào)用模

10、式,依據(jù)外模式模式映象的定義,確定應(yīng)讀入模式中的哪些記錄; DBMS調(diào)用內(nèi)模式,依據(jù)模式內(nèi)模式映象的定義,決定應(yīng)從哪個文件、用什么存取方式、讀入哪個或哪些物理記錄; DBMS向操作系統(tǒng)發(fā)出執(zhí)行讀取所需物理記錄的命令; 操作系統(tǒng)執(zhí)行讀數(shù)據(jù)的有關(guān)操作; 操作系統(tǒng)將數(shù)據(jù)從數(shù)據(jù)庫的存儲區(qū)送至系統(tǒng)緩沖區(qū); DBMS依據(jù)外模式模式映象的定義,導(dǎo)出應(yīng)用程序所要讀取的記錄格式; DBMS將數(shù)據(jù)記錄從系統(tǒng)緩沖區(qū)傳送到應(yīng)用程序的用戶工作區(qū); DBMS向應(yīng)用程序返回命令執(zhí)行情況的狀態(tài)信息。第二章 關(guān)系數(shù)據(jù)庫簡介 學(xué)習(xí)目的和要求 了解關(guān)系模型的基本概念 掌握關(guān)系模型的構(gòu)成 理解關(guān)系代數(shù)的兩類運算 理解關(guān)系演算的兩類演

11、算語言。 往年頻繁考點 關(guān)系數(shù)據(jù)結(jié)構(gòu)的概念、特點;特別是基本關(guān)系的特點及關(guān)系模式的定義; 關(guān)系的三類完整性約束,特別是關(guān)系的兩個不變性:實體完整性和參照完整性的含義; 關(guān)系代數(shù)運算的分類、基本運算、含義、關(guān)系表達(dá)式的寫法。還有部分與第三章SQL相結(jié)合的練習(xí); 關(guān)系演算的含義、分類方法,各類關(guān)系演算語言的運算規(guī)則、背景等。第一節(jié) 關(guān)系模型的基本概念 關(guān)系模型的組成 關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合、關(guān)系完整性約束 關(guān)系數(shù)據(jù)結(jié)構(gòu) 域:是一組具有相同數(shù)據(jù)類型的值的集合。在關(guān)系中用域表示屬性的取值范圍。 屬性:關(guān)系中的每列起一個名字,稱為屬性。 元組:關(guān)系中的每一行,稱為一個元組,對應(yīng)于概念模型的一個實體。

12、 候選碼:關(guān)系中能唯一地標(biāo)識一個元組的某一屬性或?qū)傩越M 關(guān)系模式:關(guān)系的描述。它可以形式化地表示為:R(U, D, DOM, F) 關(guān)系數(shù)據(jù)庫的型也稱為關(guān)系數(shù)據(jù)庫模式,是對關(guān)系數(shù)據(jù)庫的描述,是關(guān)系模式的集合; 關(guān)系數(shù)據(jù)庫的值也稱為關(guān)系數(shù)據(jù)庫,是關(guān)系的集合。 關(guān)系可以有三種類型:基本關(guān)系(通常又稱為基本表或基表)、查詢表和視圖表 基本關(guān)系具有以下六條性質(zhì):列是同質(zhì)的(Homogeneous),即每一列中的分量同一類型的數(shù)據(jù),來自同一個域。不同的列可出自同一個域,稱其中的每列為一個屬性,不同的屬性要給予不同的屬性名。列的順序無所謂,即列的次序可以任意交換。任意兩個元組不能完全相同。行的順序無所謂,

13、即行的次序可以任意交換。分量必須取原子值,即每一個分量都必須是不可分的數(shù)據(jù)項。 關(guān)系數(shù)據(jù)庫中的關(guān)系與關(guān)系模式關(guān)系模式是型,是對關(guān)系的描述,關(guān)系模式是靜態(tài)的、穩(wěn)定的 關(guān)系是值,是動態(tài)的、隨時間不斷變化的 關(guān)系是一張二維表,是元組的集合關(guān)系模式指出了這個元組集合的結(jié)構(gòu) 關(guān)系操作 關(guān)系代數(shù)語言 例如ISBL 關(guān)系演算語言 元組關(guān)系演算語言 例如ALPHA,QUEL 域關(guān)系演算語言 例如QBE 關(guān)系代數(shù)、元組關(guān)系演算和域關(guān)系演算三種語言在表達(dá)能力上是完全等價的。 具有關(guān)系代數(shù)和關(guān)系演算雙重特點的語言 例如SQL 關(guān)系操作的特點: 一次一集合(set-at-a-time)的操作方式。 存取路徑對用戶透明

14、關(guān)系完整性約束 實體完整性規(guī)則:基本關(guān)系的主屬性不能取空值實體完整性規(guī)則是針對基本關(guān)系而言的。一個基本表通常對應(yīng)現(xiàn)實世界的一個實體集。例如學(xué)生關(guān)系對應(yīng)于學(xué)生的集合?,F(xiàn)實世界中的實體是可區(qū)分的,即它們具有某種唯一性標(biāo)識。相應(yīng)地,關(guān)系模型中以碼作為唯一性標(biāo)識。碼中的屬性即主屬性不能取空值。所謂空值就是不知道或無意義的值。 參照完整性規(guī)則:若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的碼Ks相對應(yīng),則對于R中每個元組在F上的值必須為:空值或者等于S中某個元組在Ks上的值。設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(guān)系R的碼。如果F與基本關(guān)系S的碼Ks相對應(yīng),則稱F是基本關(guān)系R的外碼參照完整性

15、規(guī)則要求不引用不存在的實體。關(guān)系模型中,表與表之間的聯(lián)系正是通過參照完整性實現(xiàn)的 用戶定義完整性規(guī)則:由具體應(yīng)用環(huán)境決定,系統(tǒng)提供定義和檢驗這類完整性的機(jī)制。 實體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,被稱作是關(guān)系的兩個不變性,應(yīng)該由關(guān)系系統(tǒng)自動支持。 關(guān)系代數(shù)的運算符 集合運算符、專門的關(guān)系運算符、算術(shù)比較符、邏輯運算符 傳統(tǒng)的集合運算 并:關(guān)系R與關(guān)系S的并由屬于R或?qū)儆赟的元組組成。 交:關(guān)系R與關(guān)系S的交由既屬于R又屬于S的元組組成。 差:關(guān)系R與關(guān)系S的差由屬于R而不屬于S的所有元組組成。 廣義笛卡爾積:兩個分別為n目和m目的關(guān)系R和S的廣義笛卡爾積是一個(n+m)列

16、的元組的集合。若R有k1個元組,S有k2個元組,則關(guān)系R和關(guān)系S的廣義笛卡爾積有k1k2個元組。 專門的關(guān)系運算 選擇:在關(guān)系中選擇滿足給定條件的諸元組。 投影:從R中選擇出若干屬性列組成新的關(guān)系。 連接:它是從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組。 除: 關(guān)系代數(shù)運算中并、差、笛卡爾積、投影和選擇5種運算為基本的運算。 關(guān)系演算是以數(shù)理邏輯中的謂詞演算為基礎(chǔ)的,按謂詞變元的不同,關(guān)系演算可分為元組關(guān)系演算和域關(guān)系演算。 元組關(guān)系演算 元組關(guān)系演算以元組變量作為謂詞變元的基本對象。 ALPHA語言是E.F.Codd提出的、典型的元組關(guān)系演算語言 ALPHA語言是以謂詞公式來定義查詢

17、要求的。在謂詞公式中存在客體變元,這里稱為元組變量。 元組變量主要有兩方面的用途:簡化關(guān)系名。操作條件中使用量詞時必須用元組變量。 域關(guān)系演算 域關(guān)系演算以元組變量的分量即域變量作為謂詞變元的基本對象。 QBE是1975年由IBM公司的M.Zloof提出的一個很有特色的域關(guān)系演算語言,該語言于1978年在IBM370上得以實現(xiàn)。 QBE是Query By Example的縮寫,也稱為示例查詢,它是一種很有特色的屏幕編輯語言,其特點如下:以表格形式進(jìn)行操作通過例子進(jìn)行查詢查詢順序自由第三章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL 學(xué)習(xí)目的和要求 了解SQL語言的主要特點 掌握SQL語言的數(shù)據(jù)定義功能和數(shù)據(jù)操縱

18、功能 理解視圖的定義和優(yōu)點 了解數(shù)據(jù)控制的功能 了解嵌入式SQL語句的一般形式及其分類 往年頻繁考點: SQL語言的特點; 數(shù)據(jù)定義命令的應(yīng)用; 數(shù)據(jù)查詢命令的靈活運用; 數(shù)據(jù)更新命令; 視圖的概念、特點及其定義語句; 數(shù)據(jù)控制概念及相關(guān)命令第一節(jié) SQL概述 SQL:Structured Query Language,關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言 SQL語言集數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制功能于一體。 SQL語言的特點: 綜合統(tǒng)一 高度非過程化 面向集合的操作方式 以同一種語法結(jié)構(gòu)提供兩種使用方式 語言簡潔,易學(xué)易用。 SQL對三級模式結(jié)構(gòu)的支持: 外模式視圖和部分基本表 模式所有基本表 內(nèi)模式存儲文

19、件 SQL DDL(Data Definition Language)語言 定義和撤消的數(shù)據(jù)對象 基本表(Table)、索引(Index) 命令動詞 Create(創(chuàng)建):建立表和索引 Alter(修改):一般只修改表的定義 Drop(刪除):可刪除表和索引 定義基本表常見列級完整性約束NOT NULLUNIQUE常見表級完整性約束PRIMARY KEY () 索引 建立索引是加快查詢速度的有效手段。 基本表上可以建立一個或多個索引。 建立與刪除索引由數(shù)據(jù)庫管理員DBA或表的屬主(即建立表的人)負(fù)責(zé)完成。 系統(tǒng)在存取數(shù)據(jù)時會自動選擇合適的路徑。用戶不必也不能選擇索引。 建立索引 可以建立在該表

20、的一列或多列上,當(dāng)?shù)谝涣械闹迪嗟葧r,考慮第二列的次序。 每個后面還可以用指定索引值的排列次序,可選ASC(升序)或DESC(降序),缺省值為ASC。 唯一索引的每一個索引值只對應(yīng)唯一的數(shù)據(jù)記錄。 聚簇索引是指索引項的順序與表中記錄的物理順序一致的索引組織,在一個基本表上最多只能建立一個聚簇索引 檢索查詢 SELECT ALL|DISTINCT 別名, 別名 FROM 別名, 別名 WHERE GROUP BY HAVING ORDER BY ASC|DESC; 的格式 表名. , . .*;*; ( DISTINCT|ALL *),集函數(shù):SUM、AVG、COUNT、MAX、MIN 的格式 q

21、 | | ANY/ALL (SELECT語句) NOT BETWEEN | | (SELECT語句) AND | | ANY/ALL (SELECT語句) NOT IN ( ,) | (SELECT語句) NOT LIKE IS NOT NULLNOT EXISTS (SELECT語句) AND|OR AND|OR 更新 INSERT(插入單記錄和子查詢兩種形式) DELETE(通過子查詢引入其他數(shù)據(jù)表) UPDATE(通過子查詢引入其他數(shù)據(jù)表) 更新操作與數(shù)據(jù)庫的一致性增刪改操作只能對一個表操作,這會影響數(shù)據(jù)庫的數(shù)據(jù)一致性(參照完整性)問題,不同的數(shù)據(jù)庫管理系統(tǒng)有不同的解決辦法。第四節(jié) 視圖

22、 視圖是從一個或幾個基本表(或視圖)導(dǎo)出的表,它與基本表不同,是一個虛表。 數(shù)據(jù)庫中只存放視圖的定義,而不存放視圖對應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在原來的基本表中。 定義和合理地使用視圖能帶來的好處為: 視圖能夠簡化用戶的操作 視圖使用戶能以多種角度看待同一數(shù)據(jù) 視圖對重構(gòu)數(shù)據(jù)庫提供了一定程度的邏輯獨立性 視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù) 為防止用戶通過視圖對數(shù)據(jù)進(jìn)行增、刪、改時,無意或故意操作不屬于視圖范圍內(nèi)的基本表數(shù)據(jù),可在定義視圖時加上WITH CHECK OPTION子句,這樣在視圖上增、刪、改數(shù)據(jù)時,DBMS會進(jìn)一步檢查視圖定義中的條件,若不滿足條件,則拒絕執(zhí)行該操作。 由于視圖是不實際存儲

23、數(shù)據(jù)的虛表,因此對視圖的更新,最終要轉(zhuǎn)換為對基本表的更新。 在關(guān)系數(shù)據(jù)庫中,因為有些視圖的更新不能唯一地有意義地轉(zhuǎn)換成對相應(yīng)基本表的更新,因此并不是所有的視圖都是可更新的。 若一個視圖是從單個基本表導(dǎo)出的,并且只是去掉了基本表的某些行和某些列,但保留了碼,我們稱這類視圖為行列子集視圖。 一般對所有行列子集視圖都可以執(zhí)行修改和刪除元組的操作,如果基本表中所有不允許空值的列都出現(xiàn)在視圖中,則也可以對其執(zhí)行插入操作。 DBMS執(zhí)行對視圖的查詢時,首先進(jìn)行有效性檢查,檢查查詢的表、視圖等是否存在。如果存在,則從數(shù)據(jù)字典中取出視圖的定義,把定義中的子查詢和用戶的查詢結(jié)合起來,轉(zhuǎn)換成等價的對基本表的查詢,

24、然后再執(zhí)行修正了的查詢,這一轉(zhuǎn)換過程稱為視圖消解第五節(jié) 數(shù)據(jù)控制 數(shù)據(jù)控制 SQL中數(shù)據(jù)控制功能包括事務(wù)管理功能和數(shù)據(jù)保護(hù)功能,即數(shù)據(jù)庫的恢復(fù)、并發(fā)控制;數(shù)據(jù)庫的安全性和完整性。 保證數(shù)據(jù)安全的主要措施是進(jìn)行存取控制,即規(guī)定不同用戶對于不同數(shù)據(jù)對象所允許執(zhí)行的操作,并控制各用戶只能存取他有權(quán)存取的數(shù)據(jù)。 授予權(quán)限命令GRANT 收回權(quán)限命令REVOKE第四章 關(guān)系數(shù)據(jù)庫設(shè)計理論 學(xué)習(xí)目的和要求 了解數(shù)據(jù)依賴的定義及兩種重要的類型 理解各類范式的概念及涵義 掌握相關(guān)概念及關(guān)系模式規(guī)范化的步驟。 往年頻繁考點: 函數(shù)依賴的定義、性質(zhì) 部分函數(shù)依賴、傳遞函數(shù)依賴概念 碼、候選碼、主碼、主屬性、非主屬

25、性概念 第二范式;第三范式;BC范式的判斷和規(guī)范化 關(guān)系模式規(guī)范化的步驟 判斷關(guān)系模式的分解與原關(guān)系模式等價的標(biāo)準(zhǔn)第一節(jié) 數(shù)據(jù)依賴 數(shù)據(jù)依賴的涵義 數(shù)據(jù)依賴是通過一個關(guān)系中屬性間值的相等與否體現(xiàn)出來的數(shù)據(jù)間的相互關(guān)系,是現(xiàn)實世界屬性間相互聯(lián)系的抽象,是數(shù)據(jù)內(nèi)在的性質(zhì),是語義的體現(xiàn)?,F(xiàn)在人們已經(jīng)提出了許多種類型的數(shù)據(jù)依賴,其中最重要的是函數(shù)依賴和多值依賴。 函數(shù)依賴 設(shè)R(U)是一個關(guān)系模式,U是R的屬性集合,X和Y是U的子集。對于R(U)的任意一個可能的關(guān)系r,如果r中不存在兩個元組,它們在X上的屬性值相同,而在Y上的屬性值不同,則稱X函數(shù)確定Y或Y函數(shù)依賴于X,記作XY。 平凡函數(shù)依賴;非平

26、凡函數(shù)依賴 在關(guān)系模式R(U)中,對于U的子集X和Y,如果XY,但YX,則稱XY是非平凡的函數(shù)依賴。若YX,則稱XY是平凡的函數(shù)依賴。 完全函數(shù)依賴;部分函數(shù)依賴 在R(U)中,如果XY,并且對于X的任何一個真子集X,都有XY,則稱Y對X完全函數(shù)依賴 若XY,但Y不完全依賴于X,則稱Y對X部分函數(shù)依賴 傳遞函數(shù)依賴 在R(U)中,如果XY,(YX),YX,YZ,則稱Z傳遞函數(shù)依賴于X。 數(shù)據(jù)依賴相關(guān)的一些概念 候選碼:設(shè)K為RU, F中的屬性或?qū)傩越M合,若U完全函數(shù)依賴于K,則K為R的候選碼 主碼:若候選碼多于一個,則選定其中的一個為主碼 主屬性:包含在任何一個候選碼中的屬性 非主屬性:不包含

27、在任何碼中的屬性稱作非主屬性 外部碼:關(guān)系模式R中屬性或?qū)傩越MX并非R的碼,但X是另一個關(guān)系模式的碼,則稱X是R的外部碼,也稱外碼第二節(jié) 范式 范式(Normal Form)是符合某一種級別的關(guān)系模式的集合,是衡量關(guān)系模式規(guī)范化程度的標(biāo)準(zhǔn) 根據(jù)規(guī)范化程度的不同,數(shù)據(jù)庫范式從低到高有第一范式、第二范式、第三范式、BC范式、第四范式、第五范式。對于各范式之間的聯(lián)系有: 5NF4NFBCNF3NF2NF1NF成立 1NF 如果一個關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項,則R1NF。 僅滿足1NF的關(guān)系模式有插入異常、刪除異常、冗余過大和修改復(fù)雜。 2NF 若R1NF,且每一個非主屬性完全依賴于R

28、的任何碼,則R2NF 判斷的方法:先找出所有的候選碼,從而找出非主屬性和主屬性。如果不存在非主屬性對碼的部分函數(shù)依賴,則該關(guān)系屬于2NF;否則不屬于2NF。 3NF 關(guān)系模式RU,F2NF,且每一個非主屬性都不傳遞函數(shù)依賴于碼,則稱RU,F(xiàn)3NF。 判斷的方法:先判斷2NF,然后檢查有無非主屬性對碼的傳遞函數(shù)依賴 BCNF 設(shè)關(guān)系模式RU,F1NF,若XY且YX時X必含有碼,則RU,FBCNF BCNF的關(guān)系模式都具有如下3個性質(zhì):所有非主屬性都完全函數(shù)依賴于每個候選碼。所有主屬性都完全函數(shù)依賴于每個不包含它的候選碼。沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性。 判斷的方法:只需檢查所有的函

29、數(shù)依賴的決定因素是否包含碼 如果一個關(guān)系數(shù)據(jù)庫中的所有關(guān)系模式都屬于BCNF,那么在函數(shù)依賴范疇內(nèi),它已實現(xiàn)了模式的徹底分解,達(dá)到了最高的規(guī)范化程度,消除了插入異常和刪除異常。 多值依賴 設(shè)R(U)是一個關(guān)系模式,X,Y和Z是U的子集,并且Z=U-X-Y,多值依賴XY成立當(dāng)且僅當(dāng)對R的任一關(guān)系r,r在(X,Z)上的每個值對應(yīng)一組Y的值,這組值僅僅決定于X值而與Z值無關(guān)。 4NF 關(guān)系模式RU,F(xiàn)1NF,如果對于R的每個非平凡多值依賴XY(YX),X都含有候選碼,則R4NF。 判斷的方法:先判斷BCNF,然后,看所有非平凡的多值依賴是否是函數(shù)依賴。 規(guī)范化 一個低一級的關(guān)系模式,通過模式分解可以

30、轉(zhuǎn)換為若干個高一級范式的關(guān)系模式的集合,這種過程就叫做規(guī)范化。規(guī)范化實質(zhì)上是概念的單一化。 關(guān)系模式規(guī)范化時一般應(yīng)遵循以下原則: 1)關(guān)系模式進(jìn)行無損連接分解。 2)合理選擇規(guī)范化程度。 3)正確性與可實現(xiàn)性原則。 關(guān)系模式規(guī)范化的基本步驟: 對1NF關(guān)系進(jìn)行投影,消除原關(guān)系中非主屬性對碼的部分函數(shù)依賴,將1NF關(guān)系轉(zhuǎn)換為若干個2NF關(guān)系。 對2NF關(guān)系進(jìn)行投影,消除原關(guān)系中非主屬性對碼的傳遞函數(shù)依賴,從而產(chǎn)生一組3NF關(guān)系。 對3NF關(guān)系進(jìn)行投影,消除原關(guān)系中主屬性對碼的部分函數(shù)依賴和傳遞函數(shù)依賴,得到一組BCNF關(guān)系。 對BCNF關(guān)系進(jìn)行投影,消除原關(guān)系中非平凡且非函數(shù)依賴的多值依賴,從而

31、產(chǎn)生一組4NF關(guān)系。 對4NF關(guān)系進(jìn)行投影,消除原關(guān)系中不是由候選碼所蘊含的連接依賴,即可得到一組5NF關(guān)系。 5NF是最終范式 無損連接性 設(shè)關(guān)系模式RU,F(xiàn)被分解為若干個關(guān)系模式R1U1,F(xiàn)1,R2U2,F(xiàn)2,RnUn,F(xiàn)n(其中U=U1U2Un,且不存在UiUj,F(xiàn)j為F在Ui上的投影),若R與R1,R2,Rn自然連接的結(jié)果相等,則稱關(guān)系模式R的這個分解具有無損連接性。 只有具有無損連接性的分解才能夠保證不丟失信息。 多值依賴是分解無損的充要條件。 函數(shù)依賴保持性 設(shè)關(guān)系模式RU,F(xiàn)被分解為若干個關(guān)系模式R1U1,F(xiàn)1,R2U2,F(xiàn)2,RnUn,F(xiàn)n(其中U=U1U2Un,且不存在UiU

32、j,F(xiàn)i為F在Ui上的投影),若F所邏輯蘊含的函數(shù)依賴一定也由分解得到的某個關(guān)系模式中的函數(shù)依賴Fi所邏輯蘊含,則稱關(guān)系模式R的這個分解是保持函數(shù)依賴的。 如果一個分解保持了函數(shù)依賴,則它可以減輕或解決各種異常情況。 分解具有無損連接性和分解保持函數(shù)依賴是兩個互相獨立的標(biāo)準(zhǔn)。 判斷對關(guān)系模式的一個分解是否與原關(guān)系模式等價可以有三種不同的標(biāo)準(zhǔn): 1)分解具有無損連接性; 2)分解要保持函數(shù)依賴; 3)分解既要保持函數(shù)依賴,又要具有無損連接性。 規(guī)范化理論提供了一套完整的模式分解算法,按照這套算法可以做到: 若要求分解具有無損連接性,那么模式分解一定能夠達(dá)到4NF。 若要求分解保持函數(shù)依賴,那么模

33、式分解一定能夠達(dá)到3NF,但不一定能夠達(dá)到BCNF。 若要求分解既具有無損連接性,又保持函數(shù)依賴,則模式分解一定能夠達(dá)到3NF,但不一定能夠達(dá)到BCNF 第五章 數(shù)據(jù)庫保護(hù) 學(xué)習(xí)目的和要求 了解數(shù)據(jù)庫安全性控制的措施 理解完整性約束條件和控制機(jī)制 理解并發(fā)控制的原則和方法 了解恢復(fù)的原理及實現(xiàn)技術(shù) 往年頻繁考點: 數(shù)據(jù)庫安全性的概念 安全性控制的一般方法:用戶標(biāo)識和鑒定、存取控制、定義視圖、審計和密碼存儲。 完整性的概念及其與安全性的區(qū)別 完整性約束條件的分類 數(shù)據(jù)庫管理系統(tǒng)完整性控制機(jī)制具有的功能:定義功能、檢查功能和保證功能 實現(xiàn)參照完整性應(yīng)注意的問題 并發(fā)控制的單位事務(wù)的概念及特征:原子

34、性、一致性、隔離性和持續(xù)性 封鎖的概念及類型 死鎖與活鎖的含義與解決方法 故障的種類:事務(wù)故障、系統(tǒng)故障、介質(zhì)故障、計算機(jī)病毒。 數(shù)據(jù)轉(zhuǎn)儲的方法及分類; 登記日志文件的登記內(nèi)容和登記的原則。第一節(jié) 安全性 數(shù)據(jù)庫的安全性主要是指保護(hù)數(shù)據(jù)庫,防止由于非法使用數(shù)據(jù)庫造成數(shù)據(jù)泄露、更改或破壞。 安全性控制的一般方法: 用戶標(biāo)識和鑒別 存取控制 定義視圖 審計 密碼存儲 好的安全措施:使得那些試圖破壞安全的人所花費的代價遠(yuǎn)遠(yuǎn)超過他們所得到的利益。 實現(xiàn)數(shù)據(jù)庫系統(tǒng)安全性的技術(shù)和方法有多種,最重要的是存取控制技術(shù)和審計技術(shù)。 第二節(jié) 完整性 數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性、有效性和相容性。 數(shù)據(jù)庫是否具備

35、完整性關(guān)系到數(shù)據(jù)庫系統(tǒng)能否真實地反映現(xiàn)實世界 數(shù)據(jù)的完整性與安全性是數(shù)據(jù)庫保護(hù)的兩個不同的方面。安全性是防止用戶非法使用數(shù)據(jù)庫。完整性則是防止合法用戶使用數(shù)據(jù)庫時向數(shù)據(jù)庫中加入不合語義的數(shù)據(jù)。 完整性約束條件的分類: 靜態(tài)列級約束 靜態(tài)元組約束 靜態(tài)關(guān)系約束 動態(tài)列級約束 動態(tài)元組約束 動態(tài)關(guān)系約束第二節(jié) 完整性 數(shù)據(jù)庫管理系統(tǒng)完整性控制機(jī)制具有的功能: 定義功能: 提供定義完整性約束條件的機(jī)制 檢查功能: 檢查操作請求是否違背了完整性約束條件的機(jī)制 保證功能: 一旦發(fā)生違背完整性約束條件的操作, 要采取措施保證數(shù)據(jù)的完整性 實現(xiàn)完整性需要考慮的問題: 外碼能否接收空值 在被參照關(guān)系中刪除元組

36、,包括:級聯(lián)刪除、受限刪除、置空值刪除。 修改被參照關(guān)系中主碼,包括:級聯(lián)修改、受限修改、置空值修改。第三節(jié) 并發(fā)控制 事務(wù) 并發(fā)控制的單位,是用戶定義的一組數(shù)據(jù)庫操作序列。 事務(wù)的特性(ACID)原子性:事務(wù)是原子的, 要么都做, 要么都不做一致性:事務(wù)保證了數(shù)據(jù)庫的一致性隔離性:事務(wù)相互隔離. 并發(fā)執(zhí)行的事務(wù)之間不能互相干擾持續(xù)性:事務(wù)一旦提交, 它對數(shù)據(jù)庫數(shù)據(jù)的改變是永久的 并發(fā)操作帶來的數(shù)據(jù)不一致 丟失修改 讀“臟”數(shù)據(jù) 不可重復(fù)讀 并發(fā)控制的主要技術(shù)是采用封鎖機(jī)制。 封鎖就是事務(wù)T可以向系統(tǒng)發(fā)出請求,對某個數(shù)據(jù)對象(最常用的是記錄)加鎖。于是事務(wù)T對這個數(shù)據(jù)對象就有一定的控制。 兩種

37、封鎖類型 排它鎖:簡稱X鎖, 又稱寫鎖。若事務(wù)T在數(shù)據(jù)對象A上有X鎖, 則其它任何事務(wù)都不能再對A加任何類型的鎖, 直到T釋放A上的鎖。 共享鎖:簡稱S鎖, 又稱讀鎖。若事務(wù)T對數(shù)據(jù)對象A加上S鎖,則其它事務(wù)只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。 保證數(shù)據(jù)一致性的封鎖協(xié)議 一級封鎖協(xié)議:事務(wù)T在修改數(shù)據(jù)R之前必須加X鎖, 直到事務(wù)結(jié)束??煞乐箒G失修改。不能保證可重復(fù)讀和不讀“臟”數(shù)據(jù) 二級封鎖協(xié)議: 1級封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)R之前必須加S鎖, 讀完后即可釋放??煞乐箒G失修改和讀“臟”數(shù)據(jù),不能保證可重復(fù)讀 三級封鎖協(xié)議: 1級封鎖協(xié)議加上事務(wù)T在讀取數(shù)據(jù)R之前必須加S鎖

38、,直到事務(wù)結(jié)束才釋放??煞乐箒G失修改和讀“臟”數(shù)據(jù),而且可以保證可重復(fù)讀 和操作系統(tǒng)一樣,封鎖的方法可能引起活鎖和死鎖。 活鎖是指當(dāng)若干事務(wù)要對同一數(shù)據(jù)項加鎖時,造成一些事務(wù)的永遠(yuǎn)等待,得不到控制權(quán)的現(xiàn)象 避免活鎖的方法:采取先來先服務(wù)的策略 死鎖是指兩個以上事務(wù)集合中的每個事務(wù)都在等待加鎖當(dāng)前已被另一事務(wù)加鎖的數(shù)據(jù)項,從而造成相互等待的現(xiàn)象。 數(shù)據(jù)庫中解決死鎖的常用方法有: 要求每個事務(wù)一次就將所有要使用的數(shù)據(jù)全部加鎖,否則就不能執(zhí)行。 采用按序加鎖法。 不采取任何措施來預(yù)防死鎖的發(fā)生,而是周期性的檢查系統(tǒng)中是否有死鎖。 可串行化的調(diào)度:如果幾個事務(wù)并行(交錯)執(zhí)行的結(jié)果和按次序串行執(zhí)行的結(jié)

39、果相同,則稱該并行執(zhí)行結(jié)果是正確的。這樣的調(diào)度稱為可串行化的調(diào)度。 可串行化是并行事務(wù)正確性的準(zhǔn)則 保證并行調(diào)度可串行性的封鎖協(xié)議 兩段鎖協(xié)議:指所有事務(wù)必須分兩個階段對數(shù)據(jù)庫項加鎖和解鎖。 所謂“兩段”鎖含義是:事務(wù)分為兩個階段。第一階段是獲得封鎖,也稱為擴(kuò)展階段。在該階段,事務(wù)可以申請獲得任何數(shù)據(jù)項上的任何類型的鎖,但是不能釋放任何鎖。第二階段是釋放封鎖,也稱為收縮階段。在該階段,事務(wù)可以釋放任何數(shù)據(jù)項上的任何類型的鎖,但是不能再申請任何鎖 兩段鎖協(xié)議規(guī)定所有的事務(wù)應(yīng)遵守下列規(guī)則: 在對任何數(shù)據(jù)進(jìn)行讀、寫操作之前,事務(wù)首先要獲得對該數(shù)據(jù)的封鎖。 在釋放一個封鎖之后,事務(wù)不再獲得任何其他封鎖

40、。第四節(jié) 恢復(fù) 數(shù)據(jù)庫系統(tǒng)故障: 事務(wù)內(nèi)部的故障 系統(tǒng)故障 介質(zhì)故障 計算機(jī)病毒 恢復(fù)的基本原理: 制造冗余 建立冗余數(shù)據(jù)的常用技術(shù) 數(shù)據(jù)轉(zhuǎn)儲 登記日志文件 轉(zhuǎn)儲: DBA定期地將整個數(shù)據(jù)庫復(fù)制到磁帶或另一個磁盤上保存起來的過程。 靜態(tài)轉(zhuǎn)儲(轉(zhuǎn)儲期間不允許對數(shù)據(jù)庫進(jìn)行任何存取、修改活動) 動態(tài)轉(zhuǎn)儲(轉(zhuǎn)儲期間允許對數(shù)據(jù)進(jìn)行存取或修改) 海量轉(zhuǎn)儲(每次轉(zhuǎn)儲全部數(shù)據(jù)庫) 增量轉(zhuǎn)儲(每次只轉(zhuǎn)儲上次轉(zhuǎn)儲后更新過的數(shù)據(jù)) 日志文件是用來記錄對數(shù)據(jù)庫每一次更新活動的文件。在轉(zhuǎn)儲中必須建立日志文件,后援副本和日志文件綜合起來才能有效地恢復(fù)數(shù)據(jù)庫。 日志文件內(nèi)容事務(wù)對數(shù)據(jù)庫的更新操作 BEGIN TRANSAC

41、TION 標(biāo)記 COMMIT 或 ROLLBACK 標(biāo)記 所有更新操作:事務(wù)標(biāo)識, 操作的類型, 操作對象, 更新前后數(shù)據(jù)的舊值和新值 日志文件作用 用于事務(wù)故障和系統(tǒng)故障的恢復(fù) 數(shù)據(jù)轉(zhuǎn)儲的副本和日志文件結(jié)合起來才能有效地恢復(fù)數(shù)據(jù)庫 登記日志的原則: 登記的次序嚴(yán)格按并發(fā)事務(wù)執(zhí)行的時間次序 先寫日志文件,后寫數(shù)據(jù)庫 利用日志文件恢復(fù)事務(wù)的過程: 從頭掃描日志文件,找出哪些事務(wù)在故障發(fā)生時已經(jīng)結(jié)束,哪些事務(wù)尚未結(jié)束; 對尚未結(jié)束的事務(wù)進(jìn)行撤銷處理 對已經(jīng)結(jié)束的事務(wù)進(jìn)行重做處理。 硬件故障、病毒破壞:當(dāng)數(shù)據(jù)庫本身被破壞時,可重裝轉(zhuǎn)儲數(shù)據(jù)庫的后備副本,然后運行日志文件,執(zhí)行事務(wù)恢復(fù),這樣就可以重建數(shù)

42、據(jù)庫。 發(fā)生事務(wù)故障、系統(tǒng)故障:當(dāng)數(shù)據(jù)庫本身沒被破壞,但內(nèi)容已經(jīng)不可靠時,可利用日志文件恢復(fù)事務(wù),從而使數(shù)據(jù)庫回到某一正確狀態(tài),這時不必重裝后備副本。 第六章 數(shù)據(jù)庫設(shè)計 學(xué)習(xí)目的和要求 了解數(shù)據(jù)庫設(shè)計的步驟 理解并掌握需求分析、概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫物理設(shè)計以及數(shù)據(jù)庫實施的方法 了解數(shù)據(jù)庫運行與維護(hù)的內(nèi)容 往年頻繁考點: 數(shù)據(jù)庫設(shè)計的步驟 需求分析的方法;數(shù)據(jù)字典的概念和組成 概念結(jié)構(gòu)設(shè)計的特點、步驟;數(shù)據(jù)抽象;E-R圖的設(shè)計步驟;視圖的集成 邏輯結(jié)構(gòu)設(shè)計的任務(wù);邏輯結(jié)構(gòu)設(shè)計的步驟;E-R圖向數(shù)據(jù)模型的轉(zhuǎn)換的方法 數(shù)據(jù)庫物理設(shè)計的步驟;數(shù)據(jù)庫物理設(shè)計的內(nèi)容;確定、評價數(shù)據(jù)庫的物理

43、結(jié)構(gòu) 數(shù)據(jù)庫維護(hù)的主要內(nèi)容;數(shù)據(jù)庫的重組織和重構(gòu)造 根據(jù)數(shù)據(jù)庫設(shè)計的基本步驟,能夠設(shè)計一個簡單的數(shù)據(jù)庫應(yīng)用系統(tǒng)第一節(jié) 數(shù)據(jù)庫設(shè)計概述 數(shù)據(jù)庫設(shè)計是指對于一個給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的應(yīng)用需求 在數(shù)據(jù)庫領(lǐng)域內(nèi),使用數(shù)據(jù)庫的各類系統(tǒng)通常被稱為數(shù)據(jù)庫應(yīng)用系統(tǒng)。 信息系統(tǒng)是提供信息、輔助人們對環(huán)境進(jìn)行控制和進(jìn)行決策的系統(tǒng)。數(shù)據(jù)庫是信息系統(tǒng)的核心和基礎(chǔ)。 數(shù)據(jù)庫設(shè)計內(nèi)容: 結(jié)構(gòu)(數(shù)據(jù))設(shè)計:邏輯數(shù)據(jù)庫設(shè)計、物理數(shù)據(jù)庫設(shè)計 行為(處理)設(shè)計:數(shù)據(jù)的裝載、應(yīng)用程序設(shè)計 新奧爾良(New Orleans)方法 需求分析(分析用戶要求)

44、概念設(shè)計(信息分析和定義) 邏輯設(shè)計(設(shè)計實現(xiàn)) 物理設(shè)計(物理數(shù)據(jù)庫設(shè)計) 數(shù)據(jù)庫設(shè)計分為以下六個階段: 系統(tǒng)需求分析需求收集和分析,結(jié)果得到數(shù)據(jù)字典描述的數(shù)據(jù)需求和數(shù)據(jù)流圖描述的處理需求 概念結(jié)構(gòu)設(shè)計通過對用戶需求進(jìn)行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型,可以用E-R圖表示 邏輯結(jié)構(gòu)設(shè)計將概念結(jié)構(gòu)轉(zhuǎn)換為某個DBMS所支持的數(shù)據(jù)模型(例如關(guān)系模型),并對其進(jìn)行優(yōu)化。 數(shù)據(jù)庫物理設(shè)計為邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)和存取方法)。 數(shù)據(jù)庫實施運用DBMS提供的數(shù)據(jù)語言(例如SQL)及其宿主語言(例如VB),根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果建立數(shù)據(jù)庫,編制

45、與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進(jìn)行試運行。 數(shù)據(jù)庫運行維護(hù)數(shù)據(jù)庫應(yīng)用系統(tǒng)經(jīng)過試運行后即可投入正式運行。在數(shù)據(jù)庫系統(tǒng)運行過程中必須不斷地對其進(jìn)行評價、調(diào)整與修改。 參加設(shè)計的人員: 系統(tǒng)分析人員、數(shù)據(jù)庫設(shè)計人員系統(tǒng)分析和數(shù)據(jù)庫設(shè)計人員是數(shù)據(jù)庫設(shè)計的核心人員,他們將自始至終參與數(shù)據(jù)庫設(shè)計,他們的水平?jīng)Q定了數(shù)據(jù)庫系統(tǒng)的質(zhì)量。 程序員程序員則在系統(tǒng)實施階段參與進(jìn)來,分別負(fù)責(zé)編制程序和準(zhǔn)備軟硬件環(huán)境。 用戶、數(shù)據(jù)庫管理員用戶和數(shù)據(jù)庫管理員主要參加需求分析和數(shù)據(jù)庫的運行、維護(hù),他們的積極參與不但能加速數(shù)據(jù)庫設(shè)計,而且也是決定數(shù)據(jù)庫設(shè)計的質(zhì)量的重要因素。 數(shù)據(jù)庫設(shè)計過程中注意的問題: 數(shù)據(jù)庫設(shè)計過程中要充

46、分調(diào)動用戶的積極性。 應(yīng)用環(huán)境的改變、新技術(shù)的出現(xiàn)等都會導(dǎo)致應(yīng)用需求的變化,因此在設(shè)計數(shù)據(jù)庫時必須充分考慮到系統(tǒng)的可擴(kuò)性。 在設(shè)計數(shù)據(jù)庫應(yīng)用的過程中,必須充分考慮到已有應(yīng)用,盡量使用戶能夠平穩(wěn)地從舊系統(tǒng)遷移到新系統(tǒng)。 需求分析的任務(wù) 詳細(xì)調(diào)查應(yīng)用領(lǐng)域要處理的對象 充分了解原系統(tǒng)的工作概況 明確用戶的各種要求(1) 信息要求:指用戶需要從數(shù)據(jù)庫中獲得信息的內(nèi)容與性質(zhì)。由信息要求可以導(dǎo)出數(shù)據(jù)要求,即在數(shù)據(jù)庫中需要存儲哪些數(shù)據(jù)。 (2) 處理要求:指用戶要完成什么處理功能,對處理的響應(yīng)時間有什么要求,處理方式是批處理還是聯(lián)機(jī)處理。 (3) 安全性和完整性要求 確定新系統(tǒng)的功能 考慮今后的擴(kuò)充性 調(diào)查

47、用戶需求的方法: 跟班作業(yè) 開調(diào)查會 請專人介紹 詢問 請用戶填寫調(diào)查表 查閱記錄數(shù)據(jù)字典 是系統(tǒng)中各類數(shù)據(jù)描述的集合,是進(jìn)行詳細(xì)的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要成果。 包括:數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲、處理過程。數(shù)據(jù)項是數(shù)據(jù)的最小組成單位,若干個數(shù)據(jù)項可以組成一個數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)字典通過對數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)的定義來描述數(shù)據(jù)流、數(shù)據(jù)存儲的邏輯內(nèi)容。 在需求分析階段需要注意的是: 設(shè)計人員應(yīng)充分考慮到可能的擴(kuò)充和改變,使設(shè)計易于更改,系統(tǒng)易于擴(kuò)充,這是第一點。 必須強(qiáng)調(diào)用戶的參與,這是數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計的特點。第三節(jié) 概念結(jié)構(gòu)設(shè)計 概念結(jié)構(gòu)設(shè)計就是將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)概念模

48、型的過程。 概念結(jié)構(gòu)的特點: (1)能充分地反映現(xiàn)實世界; (2)易于理解; (3)易于更改; (4)易于向關(guān)系、網(wǎng)狀或?qū)哟蔚雀鞣N數(shù)據(jù)模型轉(zhuǎn)換。 概念結(jié)構(gòu)設(shè)計的四種方法 自頂向下:先全局,后細(xì)化 自底向上:先局部,后集成 由里向外:先核心,后擴(kuò)充 混合策略:自頂向下+自底向上 數(shù)據(jù)抽象:對實際的人、物、事和概念進(jìn)行人為處理,抽取所關(guān)心的共同特性,忽略非本質(zhì)的細(xì)節(jié),并把這些特性用各種概念精確地加以描述,這些概念組成了某種模型。 分類(Classification):定義某一類概念作為一組對象的類型,抽象了對象值和型之間的is member of的語義。 聚集(Aggregation):定義某一類

49、型的組成成分,抽象了對象內(nèi)部類型和成分之間is part of的語義。 概括(Generalization): 定義類型之間的一種子集聯(lián)系。它抽象了類型之間的is subset of的語義。 (自底向上)概念結(jié)構(gòu)設(shè)計的步驟 抽象數(shù)據(jù),設(shè)計局部視圖選擇局部應(yīng)用:在多層的數(shù)據(jù)流圖中選擇一個適當(dāng)層次的數(shù)據(jù)流圖,作為設(shè)計分E-R圖的出發(fā)點。 逐一設(shè)計分E-R圖:先從自然劃分出發(fā)定義E-R圖,然后再進(jìn)行必要的調(diào)整。 集成局部視圖 ,得到全局的概念結(jié)構(gòu)合并解決各分圖之間的沖突,生成初步E-R圖修改和重構(gòu)消除不必要的冗余,生成基本E-R圖第三節(jié) 概念結(jié)構(gòu)設(shè)計 分E-R圖調(diào)整原則: 能作為屬性對待的,盡量作為

50、屬性對待。 作為屬性,不能再具有需要描述的性質(zhì)。 屬性不能與其他實體具有聯(lián)系。即E-R圖中所表示的聯(lián)系是實體之間的聯(lián)系。 實體或聯(lián)系和其屬性值之間保持1:1或n:1的關(guān)系 分E-R圖合并時的的沖突主要有 屬性沖突 命名沖突 結(jié)構(gòu)沖突 概念結(jié)構(gòu)獨立于數(shù)據(jù)庫邏輯結(jié)構(gòu),也獨立于支持?jǐn)?shù)據(jù)庫的DBMS。第四節(jié) 邏輯結(jié)構(gòu)設(shè)計 邏輯結(jié)構(gòu)設(shè)計的任務(wù)是把概念結(jié)構(gòu)設(shè)計階段設(shè)計好的基本E-R圖轉(zhuǎn)換為與選用的DBMS產(chǎn)品所支持的數(shù)據(jù)結(jié)構(gòu)相符合的邏輯結(jié)構(gòu)。 邏輯結(jié)構(gòu)設(shè)計的步驟: (1)把概念結(jié)構(gòu)向一般的關(guān)系、網(wǎng)狀模型轉(zhuǎn)換; (2)向特定的DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換; (3)對數(shù)據(jù)模型進(jìn)行優(yōu)化。第四節(jié) 邏輯結(jié)構(gòu)設(shè)計 E

51、-R圖向關(guān)系模型的轉(zhuǎn)換: (1)一個實體型轉(zhuǎn)換為一個關(guān)系模式; (2)一個m:n聯(lián)系轉(zhuǎn)換為一個關(guān)系模式; (3)一個1:n聯(lián)系轉(zhuǎn)換為一個獨立的關(guān)系模式,也可以與n端對應(yīng)的關(guān)系模式合并。 ; (4)一個1:1聯(lián)系轉(zhuǎn)換為一個獨立的關(guān)系模式也可與任意一端對應(yīng)的關(guān)系模式合并; (5)三個或三個以上實體間的一個多元聯(lián)系轉(zhuǎn)換為一個關(guān)系模式; (6)同一實體集的實體間聯(lián)系; (7)具有相同碼的關(guān)系模式可合并。第四節(jié) 邏輯結(jié)構(gòu)設(shè)計 數(shù)據(jù)模型的優(yōu)化方法: (1)確定數(shù)據(jù)依賴; (2)對數(shù)據(jù)依賴進(jìn)行極小化處理,消除冗余聯(lián)系; (3)按照數(shù)據(jù)依賴的理論對關(guān)系模式逐一進(jìn)行分析,確定分別屬于第幾范式; (4)分析關(guān)系模式是否適應(yīng)應(yīng)用環(huán)境,確定是否進(jìn)行合并或分解; (5)對關(guān)系模式進(jìn)行必要的分解或合并。第五節(jié) 數(shù)據(jù)庫物理設(shè)計 數(shù)據(jù)庫物理設(shè)計的步驟: (1)確定數(shù)據(jù)庫的物理結(jié)構(gòu)(確定數(shù)據(jù)的存儲結(jié)構(gòu);存取路徑的選擇和調(diào)整;確定數(shù)據(jù)存放位置;確定存儲分配); (2)評價物理結(jié)構(gòu),評價的重點是時間和空間效率。 數(shù)據(jù)庫物理設(shè)計的主要內(nèi)容: (1)為關(guān)系模式選擇存取方法(包括索引存取方法、聚簇方法和HASH方法); (2)設(shè)計關(guān)系、索引等數(shù)據(jù)庫文件的物理存儲結(jié)構(gòu)(確定數(shù)據(jù)的存放位置和確定系統(tǒng)配置)。 第五節(jié) 數(shù)據(jù)庫物理設(shè)計 設(shè)計人員設(shè)計數(shù)據(jù)庫的物理結(jié)構(gòu)時主

溫馨提示

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

評論

0/150

提交評論