自考《數(shù)據(jù)庫系統(tǒng)原理》串講筆記_第1頁
自考《數(shù)據(jù)庫系統(tǒng)原理》串講筆記_第2頁
自考《數(shù)據(jù)庫系統(tǒng)原理》串講筆記_第3頁
自考《數(shù)據(jù)庫系統(tǒng)原理》串講筆記_第4頁
自考《數(shù)據(jù)庫系統(tǒng)原理》串講筆記_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、自考數(shù)據(jù)庫系統(tǒng)原理串講筆記 第一章 數(shù)據(jù)庫基礎(chǔ)知識(shí) 學(xué)習(xí)目的與要求: 本章屬于基礎(chǔ)知識(shí),主要是對一些概念的理解和記憶。沒有難點(diǎn),相對的重點(diǎn)是數(shù)據(jù)模型的四 個(gè)層次,數(shù)據(jù)庫管理系統(tǒng)的功能,數(shù)據(jù)庫系統(tǒng)的全局結(jié)構(gòu)。 考核知識(shí)點(diǎn)與考核要求 1.1 數(shù)據(jù)管理技術(shù)的發(fā)展階段(識(shí)記) 1.2 數(shù)據(jù)描述的術(shù)語(領(lǐng)會(huì)) 1.3 數(shù)據(jù)抽象的級(jí)別(領(lǐng)會(huì)) 1.4 數(shù)據(jù)庫管理系統(tǒng) (DBMS) ( 領(lǐng)會(huì)) 1.5數(shù)據(jù)庫系統(tǒng)(DBS (領(lǐng)會(huì)) 1.1 數(shù)據(jù)管理技術(shù)的發(fā)展 幾個(gè)數(shù)據(jù)庫的基本術(shù)語: 數(shù)據(jù): 描述事物的符號(hào)記錄 數(shù)據(jù)處理 : 是指從某些已知的數(shù)據(jù)出發(fā), 推導(dǎo)加工出一些新的數(shù)據(jù), 這些新的數(shù)據(jù)又表示了新的 信息。

2、 數(shù)據(jù)管理 : 是指數(shù)據(jù)的收集、整理、組織、存儲(chǔ)、維護(hù)、檢索、傳送等操作,這部分操作是數(shù)據(jù) 處理業(yè)務(wù)的基本環(huán)節(jié),而且是任何數(shù)據(jù)處理業(yè)務(wù)中必不可少的共有部分。 數(shù)據(jù)管理技術(shù): 對數(shù)據(jù)的收集、整理、組織、存儲(chǔ)、維護(hù)、檢索、傳送等操作,基本目的就是 從大量的,雜亂無章的,難以理解的數(shù)據(jù)中篩選出有意義的數(shù)據(jù)。 數(shù)據(jù)處理是與數(shù)據(jù)管理相聯(lián)系的,數(shù)據(jù)管理技術(shù)的優(yōu)劣,將直接影響數(shù)據(jù)處理的效率。 1. 人工管理階段( 20世紀(jì) 50年代中期以前) 1)數(shù)據(jù)不保存在機(jī)器中; 2)沒有專用軟件對數(shù)據(jù)進(jìn)行管理; 3)只有程序的概念,沒有文件的概念; 4)數(shù)據(jù)面向程序。 2. 文件系統(tǒng)階段特點(diǎn)與缺陷( 20世紀(jì) 50年

3、代后期至 60 年代中期) 1)數(shù)據(jù)可長期保存在磁盤上; 2)數(shù)據(jù)的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)有了區(qū)別; 3)文件組織呈現(xiàn)多樣化; 4)數(shù)據(jù)不再屬于某個(gè)特定程序,可以重復(fù)使用; 5)對數(shù)據(jù)的操作以記錄為單位。 文件系統(tǒng)三個(gè)缺陷: 1)數(shù)據(jù)冗余性 2)數(shù)據(jù)不一致性 3)數(shù)據(jù)聯(lián)系弱 3. 數(shù)據(jù)庫階段( 20 世紀(jì) 60 年代后 至今) 數(shù)據(jù)管理技術(shù)進(jìn)入數(shù)據(jù)庫階段的標(biāo)志是 20 世紀(jì) 60 年代末三件大事: 1 ) 1968年美國IBM公司推出層次模型的IMS系統(tǒng); 2 ) 1969年美國CODASY組織發(fā)布了 DBTG報(bào)告??偨Y(jié)了當(dāng)時(shí)各式各樣的數(shù)據(jù)庫,提出網(wǎng)狀模 型,爾后于 1971 年 4 月正式通過。

4、 3) 1970 年美國 IBM 公司的 E.F.Codd 連續(xù)發(fā)表論文,提出關(guān)系模型,奠定了關(guān)系數(shù)據(jù)庫的理 論基礎(chǔ)。 數(shù)據(jù)庫管理階段特點(diǎn): 1)采用數(shù)據(jù)模型表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu); 2)有較高的數(shù)據(jù)獨(dú)立性; 3)數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶接口。 4)數(shù)據(jù)庫系統(tǒng)提供以下四個(gè)方面的數(shù)據(jù)控制功能: 數(shù)據(jù)庫的恢復(fù); 數(shù)據(jù)庫的并發(fā)控制; 數(shù)據(jù)庫的完整性; 數(shù)據(jù)庫的安全性; 5)增加了系統(tǒng)的靈活性。 增加了系統(tǒng)的靈活性對數(shù)據(jù)的操作不一定以記錄為單位,可以以數(shù)據(jù)項(xiàng)為單位。 數(shù)據(jù)庫技術(shù)中的四個(gè)名詞:DB、DBMS DBS數(shù)據(jù)庫技術(shù)。其概念是不同的,要分清。 DB:數(shù)據(jù)庫(Database)長期存儲(chǔ)在計(jì)算機(jī)

5、內(nèi)、有組織的、統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合。 DBMS數(shù)據(jù)庫管理系統(tǒng)(Database Management System) , DBMS是位于用戶與操作系統(tǒng)之間的一層 數(shù)據(jù)管理軟件,為用戶或應(yīng)用程序提供訪問 DB的方法,包括 DB的建立、查詢、更新及各種數(shù)據(jù)控 制。DBMS總是基于某種數(shù)據(jù)模型,可以分為層次型、網(wǎng)狀型、關(guān)系型、面向?qū)ο笮虳BMS DBS數(shù)據(jù)庫系統(tǒng)(Database System),DBS 是實(shí)現(xiàn)有組織地、動(dòng)態(tài)地存儲(chǔ)大量關(guān)聯(lián)數(shù)據(jù),方便多用 戶訪問的計(jì)算機(jī)軟件、硬件和數(shù)據(jù)資源組成的系統(tǒng),即采用了數(shù)據(jù)庫技術(shù)的計(jì)算機(jī)系統(tǒng)。 數(shù)據(jù)庫技術(shù) :是一門研究數(shù)據(jù)庫結(jié)構(gòu)、存儲(chǔ)、管理和使用的一門軟件學(xué)

6、科。 4. 高級(jí)數(shù)據(jù)庫階段: 1)面向?qū)ο蟮母拍罱?2)開放數(shù)據(jù)庫互連技術(shù) 1.2 數(shù)據(jù)描述 在數(shù)據(jù)處理中,數(shù)據(jù)描述將涉及不同的范疇。從事物的特性到計(jì)算機(jī)中的具體表示,數(shù)據(jù)描述經(jīng)歷 了三個(gè)階段概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì)。 1. 概念設(shè)計(jì)中的的數(shù)據(jù)描述 1)實(shí)體 2)實(shí)體集 3)屬性 4)實(shí)體標(biāo)識(shí)符 2. 邏輯設(shè)計(jì)中的數(shù)據(jù)描述 1)字段 2)記錄 3)文件 4)關(guān)鍵碼 3. 物理設(shè)計(jì)中的數(shù)據(jù)描述 物理存儲(chǔ)介質(zhì)層次 1)高速緩沖存儲(chǔ)器 2)主存儲(chǔ)器 3)快擦寫存儲(chǔ)器 4)磁盤存儲(chǔ)器 5)光盤存儲(chǔ)器 6)磁帶 物理存儲(chǔ)中的數(shù)據(jù)描述 位、字節(jié)、字、塊、桶和卷 4. 數(shù)據(jù)聯(lián)系的描述 聯(lián)系及元數(shù)定義:

7、 二元聯(lián)系有以下三種類型: 1: 1聯(lián)系:如果實(shí)體集E1中的每個(gè)實(shí)體最多只能和實(shí)體集 E2中的一個(gè)實(shí)體有聯(lián)系,反之亦 然,好么實(shí)體集 E1對E2的聯(lián)系稱為“一對一聯(lián)系”,記為“ 1:1”。 1: N聯(lián)系:如果實(shí)體集E1中每個(gè)實(shí)體與實(shí)體集 E2中任意個(gè)(零個(gè)或多個(gè))實(shí)體有聯(lián)系,而 E2中每個(gè)實(shí)體至多和 E1中的一個(gè)實(shí)體有聯(lián)系,那么 E1對E2的聯(lián)系是“一對多聯(lián)系”,記為“ 1 : N”。 M N聯(lián)系:如果實(shí)體集E1中每個(gè)實(shí)體與實(shí)體集 E2中任意個(gè)(零個(gè)或多個(gè))實(shí)體有聯(lián)系,反 之亦然,那么 E1 對 E2 的聯(lián)系是“多對多聯(lián)系”,記為“ M: N”。 1.3 數(shù)據(jù)抽象的級(jí)別 1. 數(shù)據(jù)抽象的過程

8、根據(jù)抽象的級(jí)別定義了四種模型: 1)概念數(shù)據(jù)模型 2)邏輯數(shù)據(jù)模型 3)外部數(shù)據(jù)模型 4)內(nèi)部數(shù)據(jù)模型 2. 概念模型 1)四種模型中,概念模型的抽象級(jí)別最高。 2)概念模型的特點(diǎn):(p12) 3. 邏輯模型 邏輯模型的特點(diǎn) :(p13) (1)(4) 邏輯模型的分類: 1)層次模型 2)網(wǎng)狀模型 3)關(guān)系模型 三種邏輯數(shù)據(jù)模型的比較?如 P17圖 4. 外部模型 外部模型的特點(diǎn) :(p17) 從整個(gè)系統(tǒng)考察,外部模型的優(yōu)點(diǎn)。 5. 內(nèi)部模型 是數(shù)據(jù)庫最底的抽象,它描述數(shù)據(jù)在磁盤或磁帶上的存儲(chǔ)方式、存取設(shè)備和存取方法。 6. 三層模式和兩級(jí)映象 三層模式體系結(jié)構(gòu) 1)外模式:是用戶與數(shù)據(jù)庫系統(tǒng)

9、的接口,是用戶用到的那部分?jǐn)?shù)據(jù)的描述。 2)邏輯模式:是數(shù)據(jù)庫中全部數(shù)據(jù)的整體邏輯結(jié)構(gòu)的描述。 3)內(nèi)模式:是數(shù)據(jù)庫在物理存儲(chǔ)方面的描述,定義所有內(nèi)部記錄類型、索引和文件的組織方 式,以及數(shù)據(jù)控制方面的細(xì)節(jié)。 兩級(jí)映象 外模式 / 邏輯模式映象:用于定義概念模式和內(nèi)模式之間的對應(yīng)性。一般在內(nèi)模式中描述。 邏輯模式 / 內(nèi)模式映象:用于定義外模式和概念模式間的對應(yīng)性。一般在外模式中描述。 7. 高度的數(shù)據(jù)獨(dú)立性 什么叫數(shù)據(jù)獨(dú)立性? 是指應(yīng)用程序和數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)之間相互獨(dú)立,不受影響。在修改數(shù)據(jù)結(jié)構(gòu)時(shí),盡可能不修 改應(yīng)用程序,則稱系統(tǒng)達(dá)到了數(shù)據(jù)獨(dú)立性目標(biāo)。 數(shù)據(jù)獨(dú)立性分為物理數(shù)據(jù)獨(dú)立性和邏輯數(shù)據(jù)

10、獨(dú)立性: 物理數(shù)據(jù)獨(dú)立性 :修改內(nèi)模式時(shí)盡量不影響概念模式及外模式,則達(dá)到物理數(shù)據(jù)獨(dú)立性。 邏輯數(shù)據(jù)獨(dú)立性 :修改概念模式時(shí)盡量不影響外模式和應(yīng)用程序。 1.4 數(shù)據(jù)庫管理系統(tǒng)( DBM)S 1. DBMS的目標(biāo)與任務(wù): 數(shù)據(jù)庫管理系統(tǒng)的主要任務(wù)是完成用戶對數(shù)據(jù)庫的存取請求,即檢索、插入、更新或刪除等操 作。 DBMS勺目標(biāo):用戶界面友好、功能完善、結(jié)構(gòu)清晰、高效率、開放性 2. DBMS 的工作模式 (p20 圖) 3. DBMS的主要功能: 1)數(shù)據(jù)庫的定義功能 2)數(shù)據(jù)庫的操縱功能 3)數(shù)據(jù)庫的保護(hù)功能(數(shù)據(jù)庫恢復(fù)、數(shù)據(jù)庫并發(fā)控制、數(shù)據(jù)庫完整性和數(shù)據(jù)庫安全性) 4)數(shù)據(jù)庫的維護(hù)功能 5)

11、數(shù)據(jù)字典 1.5 數(shù)據(jù)庫系統(tǒng) (DBS) 1. DBS由四部分組成:數(shù)據(jù)庫、硬件、軟件、數(shù)據(jù)庫管理員。 2. 數(shù)據(jù)庫管理員定義及職責(zé)。 ( 素質(zhì)+職責(zé) ) 3. DBS的全局結(jié)構(gòu)及 DBS的效益。(數(shù)據(jù)庫用戶+界面+DBMS磁盤+DBS的效益) 第二章數(shù)據(jù)庫設(shè)計(jì)和ER模型 學(xué)習(xí)目的與要求: 本章總的目的要求是了解和掌握數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計(jì)的全過程。首先掌握ER模型和關(guān)系模型的 基本概念,然后掌握概念設(shè)計(jì)中ER模型的設(shè)計(jì)方法,邏輯設(shè)計(jì)中ER模型向關(guān)系模型轉(zhuǎn)換方法。 考核知識(shí)點(diǎn)與考核要求 2.1 數(shù)據(jù)庫系統(tǒng)生存期(領(lǐng)會(huì)) 2.2ER 模型的基本概念(綜合應(yīng)用) 2.3 關(guān)系模型的基本概念(綜合應(yīng)用)

12、 2.4ER 模型到關(guān)系模型的轉(zhuǎn)換規(guī)則(綜合應(yīng)用) 2.5ER 模型實(shí)例分析(簡單應(yīng)用) 2.6增強(qiáng)ER模型(簡單應(yīng)用) 從軟件生存期談起 軟件生存期:是指從軟件的規(guī)劃、研制、實(shí)現(xiàn)、投入運(yùn)行后的維護(hù)、直到它被新的軟件所取代 而停止使用的整個(gè)期間。它包括六個(gè)階段: ( 規(guī)需設(shè)編試運(yùn)維 ) (1)規(guī)劃階段 (2)需求分析階段 (3)設(shè)計(jì)階段 (4)程序編制階段 (5)調(diào)試階段 (6)運(yùn)行維護(hù)階段 2.1 數(shù)據(jù)系統(tǒng)生存期 1. 什么叫數(shù)據(jù)庫系統(tǒng)生存期? 我們把數(shù)據(jù)庫應(yīng)用系統(tǒng)從開始規(guī)劃、設(shè)計(jì)、實(shí)現(xiàn)、維護(hù)到最后被新的系統(tǒng)取代而停止使用的整 個(gè)期間,稱為數(shù)據(jù)庫系統(tǒng)生存期。 2. 這個(gè)生存期一般可劃分成以下

13、七個(gè)階段: 規(guī)劃、需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)、實(shí)現(xiàn)、運(yùn)行維護(hù)。 2 .2 ER模型的基本概念 1. ER 模型的基本元素 實(shí)體、聯(lián)系和屬性 2. 屬性的分類 ( 簡單屬性和復(fù)合屬性、單值屬性和多值屬性、存儲(chǔ)屬性和派生屬性) 3. 聯(lián)系的設(shè)計(jì) 4. ER 模型的操作 (分裂、合并和增刪) 5. 采用ER模型的數(shù)據(jù)庫概念設(shè)計(jì)步驟 采用ER方法進(jìn)行數(shù)據(jù)庫概念設(shè)計(jì)分成三步進(jìn)行: 首先設(shè)計(jì)局部ER模式 然后把各局部ER模式綜合成全局ER模式 最后對全局ER模式進(jìn)行優(yōu)化 2.3 關(guān)系模型的基本概念 1 .關(guān)系模型定義:用二維表格結(jié)構(gòu)表示實(shí)體集、外鍵表示實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為關(guān)系模型。 2.

14、基本術(shù)語有: 字段(屬性) 、字段值 (屬性值 ) 、記錄(元組) 、二維表格 (元組集合、關(guān)系或?qū)嵗?)。 在這里,括號(hào)中的表述為關(guān)系模型中的術(shù)語。它與表格中術(shù)語可以一一對應(yīng)。還有,關(guān)系中屬性個(gè) 數(shù)稱為元數(shù),元組個(gè)數(shù)為基數(shù)。 3. 鍵: 由一個(gè)或幾個(gè)屬性組成。 ( 注意鍵不一定是唯一的一個(gè)屬性 )。 1)超鍵:在關(guān)系中能唯一標(biāo)識(shí)元組的屬性集稱為關(guān)系模式的超鍵。( 注意,超鍵也是一個(gè)屬性集, 不一定只是一個(gè)屬性 ) 2)候選鍵:不含有多余屬性的超鍵稱為候選鍵。 3)主鍵:用戶選作元組標(biāo)識(shí)的一個(gè)候選鍵為主鍵。 4)外鍵:某個(gè)關(guān)系的主鍵相應(yīng)的屬性在另一關(guān)系中出現(xiàn),此時(shí)該主鍵在就是另一關(guān)系的外鍵,

15、如有兩個(gè)關(guān)系S和SC,其中S#是關(guān)系S的主鍵,相應(yīng)的屬性 S#在關(guān)系SC中也出現(xiàn),此時(shí) S#就是關(guān) 系SC的外鍵。 4. 關(guān)系的定義和性質(zhì) 1)關(guān)系定義:關(guān)系是一個(gè)屬性數(shù)目相同的元組的集合。 2)關(guān)系性質(zhì) (p53) 5. 三類完整性規(guī)則 1)實(shí)體完整性規(guī)則:要求關(guān)系中組成主鍵的屬性上不能有空值。 2)參照完整性規(guī)則:要求不引用不存在的實(shí)體。 3)用戶定義完整性規(guī)則:由具體應(yīng)用環(huán)境決定,系統(tǒng)提供定義和檢驗(yàn)這類完整性的機(jī)制。 2.4E-R模型向關(guān)系模型的轉(zhuǎn)換 E-R模型可以向現(xiàn)有的各種數(shù)據(jù)庫模型轉(zhuǎn)換,對不同的數(shù)據(jù)庫模型有不同的轉(zhuǎn)換規(guī)則。這里只討論 E-R模型向關(guān)系模型的轉(zhuǎn)換方法。 1. E-R模

16、型向關(guān)系模型的轉(zhuǎn)換規(guī)則: (1)實(shí)體類型的轉(zhuǎn)換 將每個(gè)實(shí)體類型轉(zhuǎn)換成一個(gè)關(guān)系模式,實(shí)體的屬性即為關(guān)系的屬性,實(shí)體標(biāo)識(shí)符即為關(guān)系的鍵。 (2)聯(lián)系類型的轉(zhuǎn)換 1)實(shí)體間的聯(lián)系是1:1 可以在兩個(gè)實(shí)體類型轉(zhuǎn)換成兩個(gè)關(guān)系模式中的任意一個(gè)關(guān)系模式的屬性中加入另一個(gè)關(guān)系模式 理名 /年疑 的鍵和聯(lián)系類型的屬性。 至關(guān)系模式(校塔,地址,電話) 系關(guān)系模式(眩,地址。電話, 系主任名,任眼年月) 系主性關(guān)系懂式性別,早齡, 職稱,學(xué)棱名.性聰年月) 系主任關(guān)系模式(址,性別,年齡, 職稱) 2)如實(shí)體間的聯(lián)系是1:N 則在N端實(shí)體類型轉(zhuǎn)換成的關(guān)系模式中加入1端實(shí)體類型轉(zhuǎn)換成的關(guān)系模式的鍵和聯(lián)系類型的 屬性

17、。 車閆號(hào)車同=s 您話 / 職工關(guān)系模式(工i蛙名,性 別,年齡,車間號(hào),科期) 車問關(guān)系模式(牟間號(hào),車間名, 電話) 3)如實(shí)體間的聯(lián)系是 M:N ,而鍵為兩 則將聯(lián)系類型也轉(zhuǎn)換成關(guān)系模式,其屬性為兩端實(shí)體類型的鍵加上聯(lián)系類型的屬性 端實(shí)體鍵的組合。 AGE 學(xué)生黃系檯式$ (Si, SIME,期E SE3) 學(xué)生棵程關(guān)吞禎式SC 課程關(guān)系模武C (C#F Ci, teache-r) C# TEACHE-R CNAME 以上各轉(zhuǎn)換規(guī)則,給出了一般情況下E-R模型向關(guān)系模型的轉(zhuǎn)換方法。但在實(shí)際應(yīng)用中往往還需要 根具實(shí)際情況進(jìn)行具體處理。 F面以圖書借閱系統(tǒng)的 E-R模型轉(zhuǎn)換為關(guān)系模型為例。

18、 書咅 由硯u 該例中,由于允許同一本書在不同的時(shí)間借給多個(gè)讀者,特別是一個(gè)讀者在不同的時(shí)間可以借同一 本書。因而,在多對多聯(lián)系“借閱”轉(zhuǎn)換為關(guān)系模式時(shí),僅有讀者的編號(hào)和圖書的編號(hào)是不能構(gòu)成 碼的。 例如: (,F33.312006-10-10:10:10,2007-02-20:3:00 )(,F33.33,2007-5-26: 4: OO,NULL) 讀者美型 讀者其耒模式讀者 薄者團(tuán)豐工予楫式借閱 圈去關(guān)系福式圖書 康號(hào)書名|出版社 出版日期 定別) G棗者編號(hào)”圖磊編號(hào)借期畫) 編號(hào)姓名,讀者奕型,已倩甄雖) 書=6 說明,按照上述介紹的轉(zhuǎn)換方法得到的關(guān)系模型不一定是最好的。實(shí)際應(yīng)用中,

19、往往還要對得到的 關(guān)系模型進(jìn)行規(guī)范化。 2.5 和 2.6 實(shí)例分析,同學(xué)們多看書! 1. 庫存管理系統(tǒng)的 ER模型及轉(zhuǎn)換 2. 人事管理信息系統(tǒng)的 ER模型 3住院管理信息系統(tǒng)的 ER模型 4. 公司車隊(duì)信息系統(tǒng)的 ER模型 更多 優(yōu)質(zhì) 自考資料盡在百度貼吧 自考樂園 俱樂部 ()歡迎 ? 加入.歡迎? 交流 . . .止不住的驚喜等著你 第三章 關(guān)系模式設(shè)計(jì)理論 學(xué)習(xí)目的與要求: 本章特點(diǎn)是理論性較強(qiáng),學(xué)習(xí)者應(yīng)從概念著手,搞清概念間的聯(lián)系和作用。 本章總的要求是:了解關(guān)系數(shù)據(jù)庫規(guī)范化理論及其在數(shù)據(jù)庫設(shè)計(jì)中的作用。 本章的重點(diǎn)是函數(shù)依賴、無損分解、保持依賴和范式。掌握這些概念并能運(yùn)用它們分析

20、模式分 解的特點(diǎn)。 考核知識(shí)點(diǎn)與考核要求 3.1 關(guān)系模式的設(shè)計(jì)準(zhǔn)則(簡單應(yīng)用) 3.2 函數(shù)依賴 (FD) (簡單應(yīng)用) 3.3 關(guān)系模式的分解特性(簡單應(yīng)用) 3.4 范式 1NF 2NF、3NF (簡單應(yīng)用)BCNF(領(lǐng)會(huì)) 分解成BCNFF莫式集的“分解算法”(識(shí)記) 分解成3NF模式集的“合成算法”(綜合應(yīng)用) 模式設(shè)計(jì)方法小結(jié)(領(lǐng)會(huì)) 3.5 多值依賴和第四范式(識(shí)記) 3.1 關(guān)系模式的設(shè)計(jì)準(zhǔn)則 1. 關(guān)系模式的冗余和異常問題 1)數(shù)據(jù)冗余 2)操作異常(修改異常、插入異常和刪除異常) 2. 關(guān)系模式的非形式化設(shè)計(jì)準(zhǔn)則 1)關(guān)系模式的設(shè)計(jì)應(yīng)盡可能只包含有直接聯(lián)系的屬性,不包括有間

21、接聯(lián)系的屬性 2)關(guān)系模式的設(shè)計(jì)應(yīng)盡可能使得相應(yīng)關(guān)系中不出現(xiàn)插入、刪除和修改異常。 3)關(guān)系模式的設(shè)計(jì)應(yīng)盡可能使得相應(yīng)關(guān)系中避免放置經(jīng)常為空值的屬性。 4)關(guān)系模式的設(shè)計(jì)應(yīng)盡可能使得關(guān)系的等值連接在主鍵和外鍵的屬性上進(jìn)行,并且保證連接 以后不會(huì)生成額外的元組。 3.2 函數(shù)依賴 1. 函數(shù)依賴的定義 設(shè)有關(guān)系模式R(A1, A2,An)或簡記為R(U), X, Y是U的子集,r是R的任一具體關(guān)系,如 果對r的任意兩個(gè)元組t1,t2,由t1X=t2X 導(dǎo)致t1Y=t2Y,則稱X函數(shù)決定Y,或Y函數(shù)依賴 于X,記為 心Y。XT Y為模式R的一個(gè)函數(shù)依賴。 這個(gè)定義可以這樣理解: 有一張?jiān)O(shè)計(jì)好的二維

22、表, X, Y 是表的某些列 ( 可以是一列,也可以是 多列),若在表中的第t1行,和第t2行上的X值相等,那么必有t1行和t2行上的Y值也相等,這 就是說Y函數(shù)依賴于X。 2. 函數(shù)依賴的邏輯蘊(yùn)涵 設(shè)F是關(guān)系模式R的一個(gè)函數(shù)依賴集,X,Y是R的屬性子集,如果從F中的函數(shù)依賴能夠推出 X t Y,則稱F邏輯蘊(yùn)涵Xt Y,記為F|=X t丫。 而函數(shù)依賴的閉包 F+是指被F邏輯蘊(yùn)涵的函數(shù)依賴的全體構(gòu)成的集合。 3. 鍵和FD的關(guān)系 鍵是唯一標(biāo)識(shí)實(shí)體的屬性集。 對于鍵和函數(shù)依賴的關(guān)系:有兩個(gè)條件:設(shè)關(guān)系模式 R(A1,A2.An) , F是R上的函數(shù)依賴集,X是R的一個(gè)子集: 1 XtA1A2.A

23、n F + (它的意思是 X能夠決定唯一的一個(gè)元組) 2不存在X的真子集Y,使得Y也能決定唯一的一個(gè)元組,則X就是R的一個(gè)候選鍵。(它的意 思是X能決定唯一的一個(gè)元組但又沒有多余的屬性集) 包含在任何一個(gè)候選鍵中的屬性稱為主屬性, 不包含在任何鍵中的屬性為非主屬性 (非鍵屬性 ), (注意) 主屬性應(yīng)當(dāng)包含在候選鍵中。 4. 函數(shù)依賴 (FD) 的推理規(guī)則 前面我們舉的例子中是以實(shí)際經(jīng)驗(yàn)來確定一個(gè)函數(shù)依賴的邏輯蘊(yùn)涵,但是我們需要一個(gè)推理規(guī) 則才能完全確定F或F+的所有函數(shù)依賴。 設(shè)有關(guān)系模式R(U), X, Y, Z, W的是U的子集,F(xiàn)是R上只涉及到U中屬性的函數(shù)依賴集,推 理規(guī)則如下: A

24、1自反性:如果Y X U,則XtY在R上成立。 A2增廣性:如果XtY為F所蘊(yùn)涵,Z U,則XZ YZ在R上成立。(XZ表示XU Z,下同) A3傳遞性:如果XTY和YtZ在R上成立,則 XtZ在R上成立。 A4合并性:如果Xt Y和XtZ成立,那么Xt YZ成立。 A6分解性:如果Xt Y和Z Y成立,那么XtZ成立。 A5偽傳性:如果Xt Y和WYT Z成立,那么 WTZ成立。 A7 復(fù)合性: XTY, WTZ |=XW TYZ。 A8 通用一致性定理: XT Y, WT Z |=x U (X-Y) TYZ。 5. 函數(shù)依賴推理規(guī)則的完備性 函數(shù)依賴推理規(guī)則系統(tǒng) (自反性、增廣性和傳遞性

25、)是完備的。由推理規(guī)則的完備性可得到兩個(gè) 重要結(jié)論: 1屬性集X +中的每個(gè)屬性 A,都有Xt A被F邏輯蘊(yùn)涵,即X +是所有由F邏輯蘊(yùn)含Xt A的 屬性A的集合。 2 F+ 是所有利用 Amstrong 推理規(guī)則從 F 導(dǎo)出的函數(shù)依賴的集合。 6. 函數(shù)依賴集的等價(jià)和覆蓋 在關(guān)系模式R(U)上的兩個(gè)函數(shù)依賴集 F和G如果 滿足F + =G + ,則稱F和G是 等價(jià) 的, 稱F和G等價(jià)也稱F覆蓋G或G覆蓋F。 每個(gè)函數(shù)依賴集 F 都可以被一個(gè) 右部只有單屬性的函數(shù)依賴集 G 所覆蓋。 如果函數(shù)依賴集合 F 滿足: (1) F 中每一個(gè)函數(shù)依賴的右部都是單屬性; (2) F中的任一函數(shù)依賴 XA

26、,其F-X tA是不等價(jià)的; (3) F中的任一函數(shù)依賴 XtA,Z為X的子集。(F-X tA) U Z tA與F不等價(jià)。 則稱 F 為最小函數(shù)依賴集合。 如果函數(shù)依賴集 F和G等價(jià),并且G是最小集,那么稱 G是F的一個(gè) 最小覆蓋。 這一段并不要求掌握最小集的求法,但是應(yīng)當(dāng)通過其求法理解最小集的概念。 3.3 關(guān)系模式分解特性 1. 模式分解中存在的問題 模式分解 就是將一個(gè)泛關(guān)系模式 R分解成 數(shù)據(jù)庫模式p ,以p代替R的過程。它不僅僅是屬性集合的 分解,它是對關(guān)系模式上的函數(shù)依賴集、以及關(guān)系模式的當(dāng)前值分解的具體表現(xiàn)。 分解一個(gè)模式有很多方法,但是有的分解會(huì)出現(xiàn)失去函數(shù)依賴、或出現(xiàn)插入、刪

27、除異常等情況, 而有的分解則不出現(xiàn)相關(guān)問題。 衡量一個(gè)分解的標(biāo)準(zhǔn)有三種:分解具有無損聯(lián)接 ;分解要保持函數(shù)依賴;分解既要保持依賴, 又要具有無損聯(lián)接。 那么什么是無損聯(lián)接呢 ?什么又是保持依賴 ? 2. 無損聯(lián)接的定義和性質(zhì) 設(shè)R是一關(guān)系模式,分解成p =R1,R2,,Rk , F是R上的一個(gè)函數(shù)依賴集。無損聯(lián)接就是 指R中每一個(gè)滿足F的關(guān)系r(也就是一個(gè)關(guān)系實(shí)例)都有r= n R1 (r)|X| n R2 (r).|X| n R3 (r), 即r為它在Ri上的投影的自然聯(lián)接。 最簡單的理解 ,也就是說,分解后的關(guān)系 自然連接后完全等于 分解前的關(guān)系,則這個(gè)分解相 對于 F 是無損聯(lián)接分解。

28、設(shè)R的分解為p =R1,R2,F為R所滿足的函數(shù)依賴集,則分解p具有無損聯(lián)接性的充分必要條件是: R們 R2t (R1-R2) R們 R2t (R2-R1) 也就是說,分解后的兩個(gè)模式的交能決定這兩個(gè)模式的差集,即R1、R2的公共屬性能夠函數(shù)決 定R1或R2中的其他屬性,這樣的分解就必定是無損聯(lián)接分解。 3. 保持函數(shù)依賴的分解 在分解過程中,要求模式分解的無損聯(lián)接是必要的,只有無損聯(lián)接分解才能保證任何一個(gè)關(guān)系 能由它的那些投影進(jìn)行自然聯(lián)接得到恢復(fù)。 同時(shí),分解關(guān)系模式時(shí)還應(yīng)保證關(guān)系模式的函數(shù)依賴集在分解后仍在數(shù)據(jù)庫模式中保持不變, 這就是保持函數(shù)依賴的問題。也就是所有分解出的模式所滿足的函數(shù)

29、依賴的全體應(yīng)當(dāng)?shù)葍r(jià)于原模式 的函數(shù)依賴集。只有這樣才能確保整個(gè)數(shù)據(jù)庫中數(shù)據(jù)的語義完整性不受破壞。 3.4 范式 1.1NF、2NF、3NF、BCNF勺定義: 1NF:第一范式 即關(guān)系模式中勺屬性勺值域中每一個(gè)值都是不可再分解勺值。如果某個(gè)數(shù)據(jù)庫模式都是第一范 式勺,則稱該數(shù)據(jù)庫模式是屬于第一范式勺數(shù)據(jù)庫模式。 2NF:第二范式 如果關(guān)系模式R為第一范式,并且 R中每一個(gè)非主屬性完全函數(shù)依賴于R的某個(gè)候選鍵,則稱 為第二范式模式。 非主屬性、完全函數(shù)依賴、候選鍵 三個(gè)名詞的含義。 候選鍵就是指可以唯一決定關(guān)系模式R中某元組值且不含有多余屬性的屬性集。 非主屬性也就是非鍵屬性,指關(guān)系模式R中不包含

30、在任何建中的屬性。 設(shè)有函數(shù)依賴 W A,若存在X? W有 心A成立,那么稱 W A是局部依賴,否則就稱 WA是 完 全函數(shù)依賴 。 在分析是否為第 2 范式時(shí),應(yīng)首先確定候選鍵,然后把關(guān)系模式中的非主屬性與鍵的依賴關(guān)系進(jìn)行 考察,是否都為完全函數(shù)依賴,如是,則此關(guān)系模式為2NF。如果數(shù)據(jù)庫模式中每個(gè)關(guān)系模式都是 2NF的,則此數(shù)據(jù)庫模式屬于 2NF的數(shù)據(jù)庫模式。 3NF:第三范式 如果關(guān)系模式R是第二范式,且每個(gè)非主屬性都不傳遞依賴于R的候選鍵,則稱 R為第三范式 的模式。 這里首先要了解傳遞依賴的含義:在關(guān)系模式中,如果丫宀X, XtA,且X不決定Y和A不屬于 X,那么YtA是傳遞依賴。

31、注意的是,這里要求非主屬性都不傳遞依賴于候選鍵。 BCNF: 這個(gè)范式和第三范式有聯(lián)系,它是3NF的改進(jìn)形式。若關(guān)系模式 R是第一范式,且每個(gè)屬性都 不傳遞依賴于R的候選鍵。這種關(guān)系模式就是 BCNFF莫式。 縱觀四種范式,可以發(fā)現(xiàn)它們之間存在如下關(guān)系: 無損聯(lián)接分解成BCNF莫式集的算法: 置初值p =R; (2) 如果p中所有關(guān)系模式都是BCNF,則轉(zhuǎn)(4); (3) 如果p中有一個(gè)關(guān)系模式S不是BCNF則S中必能找到一個(gè)函數(shù)依賴集Xt A有X不是S的 鍵,且A不屬于X,設(shè)S1 =XA, S2 =S-A,用分解S1 ,S2代替S,轉(zhuǎn); 分解結(jié)束。輸出p。 在這個(gè)過程中,重點(diǎn)在于 步,判斷哪

32、個(gè)關(guān)系不是 BCNF并找到X和A。這里,S的判斷用BCNF 的定義,而X不是S的鍵則依靠分析。 6. 分解成3NF模式集 算法: (1) 如果R中的某些屬性在 F的所有依賴的左邊和右邊都不出現(xiàn),那么這些屬性可以從 R中分出 去,單獨(dú)構(gòu)成一個(gè)關(guān)系模式。 (2) 如果F中有一個(gè)依賴 Xt A有XAtR,則p =R,轉(zhuǎn)(4) (3) 對于F中每一個(gè) Xt A,構(gòu)成一個(gè)關(guān)系模式 XA如果F有有XtA 1 , Xt A 2 .X ta n , 則可以用模式 XA 1 A 2 .A n 代替n個(gè)模式XA 1 ,XA 2 .XA n ; (4) w分解結(jié)束,輸入p。 這個(gè)過程的重點(diǎn)是這一句 對于F中每一個(gè)X

33、tA,構(gòu)成一個(gè)關(guān)系模式 XA,這使我們的分解十 分容易,然后依據(jù)合并律(合并律:如果 Xt Y和Xt Z成立,那么Xt YZ成立)將有關(guān)模式合并即得 到所需3NF模式。 7. 模式設(shè)計(jì)方法的原則 關(guān)系模式R相對于函數(shù)依賴集 F分解成數(shù)據(jù)庫模式p =R 1 ,R 2 .R k ,一般具有下面四項(xiàng) 特性: P中每個(gè)關(guān)系模式 R i上應(yīng)具有某種范式性質(zhì)(3NF或BCNF) 無損聯(lián)接性。 保持函數(shù)依賴集。 最小性,即P中模式個(gè)數(shù)應(yīng)最少且模式中屬性總數(shù)應(yīng)最少。 一個(gè)好的模式設(shè)計(jì)方法應(yīng)符合下列三條原則: 表達(dá)性 分離性 最小冗余性 8. 多值依賴與第四范式(4NF) 例: 學(xué)校中某一門課程由多個(gè)教師講授,

34、他們使用相同的一套參考書。 關(guān)系模式 Teaching(C, T, B) 課程C、教師T和參考書B 表瓦1 諜程C 教員1 參考書B 裁學(xué) 計(jì)誼數(shù)學(xué) 辭麗祁 -厲VI端週嫻羽1 普迪 k 用二堆表袁瑋T etching 1課程C 教員T 參考書日 需理 磐惑 物理 祐理1 毅學(xué) 數(shù)學(xué) 救學(xué) 多值依賴與第四范式 Teaching BCNF: Teach 具有唯一候選碼 (C, T,B) , 即全碼 Teaching 模式中存在的問題 (1) 數(shù)據(jù)冗余度大:有多少名任課教師,參考書就要存儲(chǔ)多少次。 (2) 插入操作復(fù)雜:當(dāng)某一課程增加一名任課教師時(shí),該課程有多少本參照書,就必須插入多少個(gè)元 組。

35、例如物理課增加一名教師劉關(guān),需要插入兩個(gè)元組: (物理,劉關(guān),普通物理學(xué)) (物理,劉關(guān),光學(xué)原理) (3) 刪除操作復(fù)雜:某一門課要去掉一本參考書,該課程有多少名教師,就必須刪除多少個(gè)元組。 (4) 修改操作復(fù)雜:某一門課要修改一本參考書,該課程有多少名教師,就必須修改多少個(gè)元 組。 產(chǎn)生原因 存在多值依賴。 1) 多值依賴 設(shè)R(U)是一個(gè)屬性集 U上的一個(gè)關(guān)系模式,X、Y和Z是U的子集,并且Z= U X Y,多值 依賴Xn Y成立當(dāng)且僅當(dāng)對 R的任一關(guān)系r , r在(X, Z)上的每個(gè)值對應(yīng)一組 Y的值,這組值僅 僅決定于X值而與Z值無關(guān)。 例 Teaching ( C, T, B )

36、對于C的每一個(gè)值,T有一組值與之對應(yīng),而不論 B取何值。 2) 第四范式( 4NF) 關(guān)系模式R 1NF,如果對于R的每個(gè)非平凡多值依賴 Xu Y (Y X), X都含有候選碼, 則 R 4NF。 如果 R 4NF, 則 R BCNF 不允許有非平凡且非函數(shù)依賴的多值依賴 允許的是函數(shù)依賴(是非平凡多值依賴) 第四章 關(guān)系運(yùn)算 學(xué)習(xí)目的與要求: 本章總的要求是:深刻理解關(guān)系模型的運(yùn)算理論,了解查詢優(yōu)化的意義和啟發(fā)式優(yōu)化算法。 本章的重點(diǎn)是關(guān)系代數(shù)運(yùn)算,應(yīng)熟練掌握。關(guān)系演算是本章的難點(diǎn)。 考核知識(shí)點(diǎn)和考核要求 4.1 關(guān)系代數(shù) 4.1.1 關(guān)系代數(shù)的五個(gè)基本操作(并、差、笛卡兒積、投影、選擇)

37、(綜合運(yùn)用 ) 4.1.2 關(guān)系代數(shù)的四個(gè)組合操作 ( 交、連接、自然連接、除法 ) (綜合運(yùn)用) 4.1.3 關(guān)系代數(shù)表達(dá)式的應(yīng)用(綜合運(yùn)用) 4.1.4 關(guān)系代數(shù)的兩個(gè)擴(kuò)充操作(外連接、外部并) (領(lǐng)會(huì)) 4.2 關(guān)系演算 4.2.1 元組關(guān)系演算的定義及表達(dá)式的含義 (簡單應(yīng)用 ) 4.2.2 域關(guān)系演算的定義及表達(dá)式的含義 (領(lǐng)會(huì) ) 4.2.3 關(guān)系運(yùn)算的安全約束和等價(jià)性 (領(lǐng)會(huì) ) 4.3 關(guān)系代數(shù)表達(dá)式的優(yōu)化 ( 領(lǐng)會(huì)) 關(guān)系模型有三個(gè)重要組成部分: 1)數(shù)據(jù)結(jié)構(gòu) 2)數(shù)據(jù)操縱 3)數(shù)據(jù)完整性規(guī)則 關(guān)系查詢語言根據(jù)其理論基礎(chǔ)的不同分成兩類: 1)關(guān)系代數(shù)語言 2)關(guān)系演算語言 4

38、.1 關(guān)系代數(shù) 1. 關(guān)系代數(shù)的五個(gè)基本操作:并、差、笛卡爾積、投影和選擇。 并(U):兩個(gè)關(guān)系需有相同的關(guān)系模式,并的對象是元組,由兩個(gè)關(guān)系所有元組構(gòu)成。 差(-):同樣,兩個(gè)關(guān)系有相同的模式,R和S的差是由屬于 R但不屬于S的元組構(gòu)成的集合。 笛卡兒積(X):對于兩個(gè)關(guān)系作運(yùn)算,列:(n+m)列的元組的集合 ,元組的前n列是關(guān)系R 的一個(gè)元組后m列是關(guān)系S的一個(gè)元組, 行: k1X k2 個(gè)元組。 投影(d ):對關(guān)系進(jìn)行垂直分割,消去某些列,并重新安排列的順序。 選擇(n):根據(jù)某些條件關(guān)系作水平分割,即選擇符合條件的元組。 2. 關(guān)系代數(shù)的四個(gè)組合操作:交、聯(lián)接、自然聯(lián)接和除法 交(n

39、 ) : R和S的交是由既屬于 R又屬于S的元組構(gòu)成的集合。 聯(lián)接包括B聯(lián)接和 F聯(lián)接,是選擇 RX S中滿足i 0 (r+j)或F條件的元組構(gòu)成的集合,特別注 意等值聯(lián)接(0為等號(hào)“=”)。 自然聯(lián)接(R|X|S):在RX S中,選擇R和S公共屬性值均相等的元組,并去掉 RX S中重復(fù)的公 共屬性列。如果兩個(gè)關(guān)系沒有公共屬性,則自然聯(lián)接就轉(zhuǎn)化為笛卡爾積。 除法(十):首先除法的結(jié)果中元數(shù)為兩個(gè)元數(shù)的差,可以直接用觀察法來得到結(jié)果,把S看作 一個(gè)塊,拿到 R中去和相同屬性集中的元組作比較,如果有相同的塊,且除去此塊后留下的相應(yīng)元 組均相同,那么可以得到一條元組,所有這些元組的集合就是除法的結(jié)果

40、。 對于上述的五個(gè)基本操作和組合操作,應(yīng)當(dāng)從實(shí)際運(yùn)算方面進(jìn)行理解和運(yùn)用,對其形式定義可不必 深究。注意課本上的例子。 關(guān)系代數(shù)運(yùn)算的三個(gè)要素: 運(yùn)算對象:關(guān)系 運(yùn)算結(jié)果:關(guān)系 運(yùn)算符:四類 集合運(yùn)算符 將關(guān)系看成元組的集合 運(yùn)算是從關(guān)系的“水平”方向即行的角度來進(jìn)行 專門的關(guān)系運(yùn)算符 不僅涉及行而且涉及列 算術(shù)比較符 輔助專門的關(guān)系運(yùn)算符進(jìn)行操作 邏輯運(yùn)算符 輔助專門的關(guān)系運(yùn)算符進(jìn)行操作 廣義笛卡爾積(Exte nded Cartesia n Product) R n目關(guān)系,k1個(gè)元組 S m目關(guān)系,k2個(gè)元組 RX S 列:(n+m列的元組的集合 元組的前n列是關(guān)系R的一個(gè)元組 后m列是關(guān)系

41、S的一個(gè)元組 行:k1 X k2個(gè)元組 RX S = tr ts |trR A ts S A B C 力了 c1 af b2 c2 q2 b2 c1 A B c a1 b2 c2 c2 o2 b2 d A B c A B C cl b? b1 b3 c2 加 eV b2 bZ g2 b3 康 b2 b2 d a2 b2 貞 b2 c2 b2 31 63 62 選擇(Selection ) 1) 選擇又稱為限制(Restriction ) 2) 選擇運(yùn)算符的含義 在關(guān)系R中選擇滿足給定條件的諸元組 d F(R) = t|tRA F(t)=真 F:選擇條件,是一個(gè)邏輯表達(dá)式,基本形式為: (X1

42、0 Y1 川( X2 0 Y2 ) 比較運(yùn)算符( ,,V,W,=或) X1, Y1等:屬性名、常量、簡單函數(shù);屬性名也可以用它的序號(hào)來代替; 0:邏輯運(yùn)算符(A或V) :表示任選項(xiàng) :表示上述格式可以重復(fù)下去 3) 選擇運(yùn)算是從行的角度進(jìn)行的運(yùn)算 4) 舉例 設(shè)有一個(gè)學(xué)生-課程數(shù)據(jù)庫,包括學(xué)生關(guān)系 Student、課程關(guān)系Course和選修關(guān)系SG 學(xué)號(hào) 姓名 性別 年議 Sage 所在 9001 男 20 95002 劉晨 女 19 IS 95003 王敏 女 18 MA 95004 張立 男 19 IS (3 Com.? 裸齢 課程名先行課學(xué)分 Ovum GW 1 娠庫 5 4 數(shù)學(xué) 7

43、3 當(dāng)息系統(tǒng) 1 4 - 攥作系蜒 6 $ 1 4 6 2 w Jr PASCAL語臺(tái) 6 4 何 學(xué)號(hào) 課程號(hào) 戍績 Qop Gnd? 95001 1 92 95001 r 85 9S001 3 88 95002 r 90 PS002 3 SO 例1查詢信息系(IS系)全體學(xué)生 d Sdept = IS (Student) 或 d 5 =IS (Student) 結(jié)果: 4a 95002 劉晨 女 19 IS Q50Q4 男 19 rs 例2查詢年齡小于20歲的學(xué)生 d Sage 20(Student) 或(T 4 20(Student) 結(jié)果: P5002 劉晨 立 P 19 IS PSO

44、OS 王蝕 立 18 MA PSO04 男 1P IS 投影(Projection) 1)投影運(yùn)算符的含義 從R中選擇出若干屬性列組成新的關(guān)系 n A(R) = tA | tR A: R中的屬性列 2)投影操作主要是從列的角度進(jìn)行運(yùn)算 但投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組(避免重復(fù)行) 3)舉例 例3查詢學(xué)生的姓名和所在系 即求Student關(guān)系上學(xué)生姓名和所在系兩個(gè)屬性上的投影 n Sname Sdept(Student) 或n 2, 5(Student) 結(jié)果: Sitainr t r 李勇 cs 劉晨 IS 王敏 MA 張立 IS 例4查詢學(xué)生關(guān)系Student中

45、都有哪些系 n Sdept(Student) 結(jié)果: 1)連接也稱為B連接 2)連接運(yùn)算的含義 從兩個(gè)關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組 R S = | trR A tsSA trA 0 tsB A和B:分別為R和S上度數(shù)相等且可比的屬性組 0:比較運(yùn)算符 S關(guān)系)在B 連接運(yùn)算從R和S的廣義笛卡爾積 RX S中選?。≧關(guān)系)在A屬性組上的值與( 屬性組上值滿足比較關(guān)系的元組。 3)兩類常用連接運(yùn)算 等值連接(equijoin ) 什么是等值連接 0為“=”的連接運(yùn)算稱為等值連接 等值連接的含義 從關(guān)系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組,即等值連接為: R S =

46、| trRA tsSA trA = tsB 自然連接(Natural join ) 什么是自然連接 自然連接是一種特殊的等值連接 兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組 在結(jié)果中把重復(fù)的屬性列去掉 自然連接的含義 更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部 ()歡迎?加入歡迎?交流止不住的驚喜等著你. R和S具有相同的屬性組B R S = | trRA tsSA trB = tsB 4) 一般的連接操作是從行的角度進(jìn)行運(yùn)算。 自然連接還需要取消重復(fù)列,所以是同時(shí)從行和列的角度進(jìn)行運(yùn)算。 5) 舉例 例5 A C 巧 S 12 B E % 5 % 10 r jU h A C E 仇 s 丿

47、內(nèi); 7 5 10 叫 6 % 6 巧 10 叫 8 3 10 等11連穩(wěn)兇亍 Jt*S. A C 例: EXEC SQL DROP TABLE Student; 以COB0作為主語言的嵌入式 SQL語句的一般形式 EXEC SQL END-EXEC 例: EXEC SQL DROP TABLE Student END-EXEC 3. DBMS處理宿主型數(shù)據(jù)庫語言 SQL的方法 預(yù)編譯 修改和擴(kuò)充主語言使之能處理 SQL語句。 4. 嵌入式SQL語句與主語言之間的通信 將SQL嵌入到高級(jí)語言中混合編程,程序中會(huì)含 有兩種不同計(jì)算模型的語句 SQL語句 描述性的面向集合的語句 負(fù)責(zé)操縱數(shù)據(jù)庫 高

48、級(jí)語言語句 過程性的面向記錄的語句 負(fù)責(zé)控制程序流程 5. 工作單元之間的通信方式 1)SQL通信區(qū) 向主語言傳遞SQL語句的執(zhí)行狀態(tài)信息 主語言能夠據(jù)此控制程序流程 2)共享變量 主語言向SQL語句提供參數(shù) 將SQL語句查詢數(shù)據(jù)庫的結(jié)果交主語言進(jìn)一步處理 3)游標(biāo) 解決集合性操作語言與過程性操作語言的不匹配 6. 共享變量 什么是共享變量 嵌入式SQL語句中可以使用主語言的程序變量來輸入或輸出數(shù)據(jù) 在SQL語句中使用的主語言程序變量簡稱為共享變量(Host Variable ) 在SQL語句中使用共享變量和指示變量的方法 1)說明共享變量和指示變量 BEGIN DECLARE SECTION

49、 (說明共享變量和指示變量 ) END DECLARE SECTION 7. 游標(biāo)( cursor ) 為什么要使用游標(biāo) SQL語言與主語言具有不同數(shù)據(jù)處理方式 SQL語言是面向集合的,一條 SQL語句原則上可以產(chǎn)生或處理多條記錄。 什么是游標(biāo) 游標(biāo)是系統(tǒng)為用戶開設(shè)的一個(gè)數(shù)據(jù)緩沖區(qū),存放SQL語句的執(zhí)行結(jié)果。 每個(gè)游標(biāo)區(qū)都有一個(gè)名字。 用戶可以用SQL語句逐一從游標(biāo)中獲取記錄,并賦給共享變量,交由主語言進(jìn)一步處理。 1) 說明游標(biāo) 使用DECLAR語句 語句格式 EXEC SQL DECLARE游標(biāo)名 CURSOR FOR ; 功能 是一條說明性語句,這時(shí) DBMS并不執(zhí)行SELECT旨定的查

50、詢操作。 2) 打開游標(biāo) 使用OPEN語句 語句格式 EXEC SQL OPEN ; 功能 打開游標(biāo)實(shí)際上是執(zhí)行相應(yīng)的SELECT語句,把所有滿足查詢條件的記錄從指定表取到緩沖區(qū) 中。 這時(shí)游標(biāo)處于活動(dòng)狀態(tài),指針指向查詢結(jié)果集中第一條記錄之前。 3) 移動(dòng)游標(biāo)指針,然后取當(dāng)前記錄 使用FETCH語句 語句格式 EXEC SQL FETCH NEXT|PRIOR| FIRST|LAST FROM INTO ,.; 功能 指定方向推動(dòng)游標(biāo)指針, 然后將緩沖區(qū)中的當(dāng)前記錄取出來送至共享變量供主語言進(jìn)一步處理。 NEXT|PRIOR|FIRST|LAST:指定推動(dòng)游標(biāo)指針的方式。 NEXT向前推進(jìn)一條

51、記錄 PRIOR向回退一條記錄 FIRST:推向第一條記錄 LAST推向最后一條記錄 缺省值為 NEXT 說明 (1) 共享變量必須與 SELECT語句中的目標(biāo)列表達(dá)式具有一一對應(yīng)關(guān)系。 (2) FETCH語句通常用在一個(gè)循環(huán)結(jié)構(gòu)中,通過循環(huán)執(zhí)行FETCH語句逐條取出結(jié)果集中的行進(jìn)行 處理。 允許用戶向 (3) 為進(jìn)一步方便用戶處理數(shù)據(jù),現(xiàn)在一些關(guān)系數(shù)據(jù)庫管理系統(tǒng)對FETCH語句做了擴(kuò)充, 任意方向以任意步長移動(dòng)游標(biāo)指針。 更多 優(yōu)質(zhì) 自考資料盡在百度貼吧 自考樂園 俱樂部 ()歡迎 ? 加入.歡迎? 交流 .止不住的驚喜等著你 4) 關(guān)閉游標(biāo) 使用CLOSE語句 語句格式 EXEC SQL

52、CLOSE ; 功能 關(guān)閉游標(biāo),釋放結(jié)果集占用的緩沖區(qū)及其他資源。 說明 游標(biāo)被關(guān)閉后,就不再和原來的查詢結(jié)果集相聯(lián)系。 被關(guān)閉的游標(biāo)可以再次被打開,與新的查詢結(jié)果相聯(lián)系。 9. 動(dòng)態(tài) SQL 1) 什么是動(dòng)態(tài)嵌入式 SQL 動(dòng)態(tài)SQL方法允許在程序運(yùn)行過程中臨時(shí)“組裝”SQL語句。 2) 應(yīng)用范圍 在預(yù)編譯時(shí)下列信息不能確定時(shí) SQL語句正文 共享變量個(gè)數(shù) 共享變量的數(shù)據(jù)類型 SQL語句中引用的數(shù)據(jù)庫對象(列、索弓I、基本表、視圖等) 3) 動(dòng)態(tài)SQL的形式 語句可變 臨時(shí)構(gòu)造完整的SQL語句 條件可變 WHER子句中的條件 HAVING短語中的條件 數(shù)據(jù)庫對象、查詢條件均可變 SELECT

53、子句中的列名 FROMF句中的表名或視圖名 WHER子句中的條件 HAVING短語中的條件 4) 常用動(dòng)態(tài)SQL語句 EXECUTE IMMEDIATE PREPARE動(dòng)態(tài)預(yù)備語句) EXECUTE DESCRIBE 使用動(dòng)態(tài)SQL技術(shù)更多的是涉及程序設(shè)計(jì)方面的知識(shí),而不是SQL語言本身。 5.7 存儲(chǔ)過程與 SQL/PSM 問題 要把完成某功能的 SQL做成類似C語言的函數(shù),供需要時(shí)調(diào)用,如何做? 什么是存儲(chǔ)過程? 是一組被編譯在一起的 T-SQL語句的集合,它們被集合在一起以完成一個(gè)特定的任務(wù)。 存儲(chǔ)過程的分類 系統(tǒng)存儲(chǔ)過程。 擴(kuò)展存儲(chǔ)過程(提供從 SQL Server 到外部程序的接口,

54、以便進(jìn)行各種維護(hù)活動(dòng)) 用戶自定義的存儲(chǔ)過程。 1. 存儲(chǔ)過程的創(chuàng)建 簡單語法: CREATE PROCEDURE 存儲(chǔ)過程的名字 AS SQL語句 創(chuàng)建存儲(chǔ)過程的步驟: 1 、編寫符合要求的 SQL語句; 2 、測試SQL語句是否正確; 3 、按照存儲(chǔ)過程的語法,創(chuàng)建該存儲(chǔ)過程; 4 、執(zhí)行存儲(chǔ)過程,驗(yàn)證其正確性。 2. 帶參數(shù)的存儲(chǔ)過程的創(chuàng)建 語法: CREATE PROCEDURE 存儲(chǔ)過程名字 參數(shù)名 數(shù)據(jù)類型=默認(rèn)值兒n AS SQL 語句 作用: 可以返回用戶輸入的查詢條件的信息。 第六章 數(shù)據(jù)庫管理 學(xué)習(xí)目的與要求: 本章總的要求是:了解事務(wù)的概念,了解數(shù)據(jù)庫的恢復(fù)、并發(fā)控制、完

55、整性和安全性技術(shù)。了 解和掌握這些技術(shù)在 SQL語言中的實(shí)現(xiàn)方式。 考核知識(shí)點(diǎn)與考核要求 6.1 事務(wù)(領(lǐng)會(huì) ) 6.2 數(shù)據(jù)庫的恢復(fù) (領(lǐng)會(huì) ) 6.3 數(shù)據(jù)庫的并發(fā)控制 (領(lǐng)會(huì) ) 6.4 數(shù)據(jù)庫的完整性 完整性子系統(tǒng)的功能(領(lǐng)會(huì))SQL中的完整性約束(簡單應(yīng)用)SQL3的觸發(fā)器(領(lǐng)會(huì)) 數(shù)據(jù)庫的安全性 安全性問題(領(lǐng)會(huì))SQL中的安全性機(jī)制(簡單應(yīng)用)常用的安全性措施(領(lǐng)會(huì)) 6.1 事務(wù) 1. 事務(wù)的概念: 事務(wù)是一個(gè)操作序列 。這些操作要么什么都做,要么都不做,是一個(gè) 不可分割 的工作單位。 事務(wù)以BEGIN TRANSACTION句開始,以 COMMIT提交)語句或ROLLBACK

56、回退或撤消)語句結(jié)束。 一個(gè)程序的執(zhí)行可通過若干事務(wù)的執(zhí)行序列來完成。 2. 事務(wù)的性質(zhì): 為保證數(shù)據(jù)庫的完整性,事務(wù)必須具有下列四個(gè)性質(zhì): 1. 原子性( automicity ) 一個(gè)事務(wù)中對數(shù)據(jù)庫的操作,是一個(gè)不可分割的整體。 2. 一致性( consistency ) 數(shù)據(jù)不會(huì)因事務(wù)的執(zhí)行而遭受破壞。 3. 隔離性( isolation ) 在多個(gè)事務(wù)并發(fā)執(zhí)行時(shí),系統(tǒng)應(yīng)保證與這些事務(wù)先后單獨(dú)執(zhí)行時(shí)的結(jié)果一樣。 4. 持久性( durability ) 一個(gè)事務(wù)一旦完成全部操作,它對數(shù)據(jù)庫的所有更新應(yīng)永久地反映在數(shù)據(jù)庫中。 6.2 數(shù)據(jù)庫的恢復(fù) 1. 數(shù)據(jù)庫的可恢復(fù)性定義? 系統(tǒng)能把數(shù)據(jù)

57、庫從被破壞、不正確的狀態(tài),恢復(fù)到最近一個(gè)正確的狀態(tài),DBMS勺這種能力稱為數(shù) 據(jù)庫的可恢復(fù)性 2. 典型的恢復(fù)策略: 3. 故障類型和恢復(fù)方法 1)事務(wù)故障 2)系統(tǒng)故障 3)介質(zhì)故障 6.3 數(shù)據(jù)庫的并發(fā)控制 1. 并發(fā)控制帶來的三類問題: (1)丟失更新的問題 (2)不一致分析問題 (3)“臟數(shù)據(jù)”的讀出。 ( 在數(shù)據(jù)庫技術(shù)中,未提交的隨后又被撤消的數(shù)據(jù)為“臟數(shù)據(jù)”。 ) 2. 封鎖技術(shù) X封鎖的規(guī)則稱為 PX協(xié)議,其內(nèi)容為:任何企圖更新記錄R的事務(wù)必須先執(zhí)行 LOCKX(R)操作, 以獲得對該記錄進(jìn)行尋址的能力,并對它取得X封鎖。如果未獲得 X封鎖,那么這個(gè)事務(wù)進(jìn)入等待 狀態(tài),一直到獲準(zhǔn)

58、 X封鎖,事務(wù)繼續(xù)進(jìn)行。 簡記為:先鎖X,再執(zhí)行,取不到,就等待。 S封鎖的規(guī)則稱為 PS協(xié)議:其內(nèi)容為:任何要更新記錄R的事務(wù)必須先執(zhí)行 LOCK S(R)操作,以獲 得對該記錄尋址的能力并對它取得S封鎖。如果未獲準(zhǔn) S封鎖,那么這個(gè)事務(wù)進(jìn)入等待狀態(tài),一直 到獲準(zhǔn)S封鎖,事務(wù)才繼續(xù)進(jìn)行下去。當(dāng)事務(wù)獲準(zhǔn)對記錄R的要封鎖后,在記錄 R修改前必須把 S 封鎖升級(jí)為X封鎖。 簡記為:先鎖S,再執(zhí)行,鎖不到,就等待,若要修改則升 X。 6.4 數(shù)據(jù)庫的完整性 1. 數(shù)據(jù)庫的完整性 是指數(shù)據(jù)的正確性、有效性和相容性。數(shù)據(jù)庫中數(shù)據(jù)發(fā)生錯(cuò)誤,往往是由非法更新引起的。 數(shù)據(jù)庫完整性是通過 DBMS勺完整性子系

59、統(tǒng)實(shí)現(xiàn)的,它有兩個(gè)功能: (1)監(jiān)督事務(wù)的執(zhí)行,并測試是否違反完整性規(guī)則。 (2)如有違反,則采取恰當(dāng)?shù)牟僮?如拒絕、報(bào)告違反情況,改正錯(cuò)誤等方法進(jìn)行處理。 數(shù)據(jù)庫完整性子系統(tǒng)是根據(jù)“ 完整性規(guī)則集 ” 工作的,這些完整性規(guī)則包括: 域完整性規(guī)則、 域聯(lián)系的規(guī)則、關(guān)系完整性規(guī)則 (一個(gè)比一個(gè)大 )。 2.SQL 中的完整性約束 SQL中把完整性約束分成三大類: 1)域約束 域約束子句 如 CREAT DOMAIN AGE SMALLINT CHEC(K) 2)基本表約束 候選鍵定義 UNIQUE 或 PRIMARY KEY 外鍵定義FOREIGN KEY (S#) REFERNCE S(S#)

60、 檢查約束定義檢查子句 ( CHECK ) 3)斷言(CREATE ASSERTION斷言名 CHECK 條件) 3.SQL3 的觸發(fā)器 1)觸發(fā)器的定義: 是一個(gè)能由系統(tǒng)自動(dòng)執(zhí)行對數(shù)據(jù)庫修改的語句。 2)觸發(fā)器的組成( 1)事件(2)條件(3)動(dòng)作 3)觸發(fā)器結(jié)構(gòu)的組成(p170結(jié)構(gòu)示意圖) 6.5 數(shù)據(jù)庫的安全性 1. 數(shù)據(jù)庫安全性定義: 數(shù)據(jù)庫的安全性是指保護(hù)數(shù)據(jù)庫防止不合法的使用,以免數(shù)據(jù)的泄漏、非法 更改和破壞。 2. 安全性級(jí)別:包括環(huán)境級(jí)、職員級(jí)、 OS級(jí)、網(wǎng)絡(luò)級(jí)和數(shù)據(jù)庫系統(tǒng)級(jí)。 3. 權(quán)限問題: 用戶或應(yīng)用程序使用數(shù)據(jù)庫的方式稱為權(quán)限,權(quán)限的種類: 訪問數(shù)據(jù)權(quán)限:讀、插入、修改

溫馨提示

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

評論

0/150

提交評論