版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
自考《數(shù)據(jù)庫系統(tǒng)原理》串講筆記
第一章數(shù)據(jù)庫基礎(chǔ)知識
學(xué)習(xí)目的與要求:
本章屬于基礎(chǔ)知識,主要是對一些概念的理解和記憶。沒有難點,相對的重點是數(shù)據(jù)模型的四
個層次,數(shù)據(jù)庫管理系統(tǒng)的功能,數(shù)據(jù)庫系統(tǒng)的全局結(jié)構(gòu)。
考核知識點與考核要求
幾個數(shù)據(jù)庫的基本術(shù)語:
數(shù)據(jù):描述事物的符號記錄
數(shù)據(jù)處理:是指從某些己知的數(shù)據(jù)出發(fā),推導(dǎo)加工出一些新的數(shù)據(jù),這些新的數(shù)據(jù)又表示了新的
信息。
數(shù)據(jù)管理:是指數(shù)據(jù)的收集、整理、組織、存儲、維護(hù)、檢索、傳送等操作,這部分操作是數(shù)據(jù)
處理業(yè)務(wù)的基本環(huán)節(jié),而且是任何數(shù)據(jù)處理業(yè)務(wù)中必不可少的共有部分。
數(shù)據(jù)管理技術(shù):對數(shù)據(jù)的收集、整理、組織、存儲、維護(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)階段特點與缺陷(20世紀(jì)50年代后期至60年代中期)
1)數(shù)據(jù)可長期保存在磁盤上;
2)數(shù)據(jù)的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)有了區(qū)別;
3)文件組織呈現(xiàn)多樣化;
4)數(shù)據(jù)不再屬于某個特定程序,可以重復(fù)使用;
5)對數(shù)據(jù)的操作以記錄為單位。
文件系統(tǒng)三個缺陷:
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年美國CODASYL組織發(fā)布了DBTG報告??偨Y(jié)了當(dāng)時各式各樣的數(shù)據(jù)庫,提出網(wǎng)狀模
型,爾后于1971年4月正式通過。
數(shù)據(jù)庫管理階段特點:
1)采用數(shù)據(jù)模型表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu):
2)有較高的數(shù)據(jù)獨立性;
3)數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶接口。
4)數(shù)據(jù)庫系統(tǒng)提供以下四個方面的數(shù)據(jù)控制功能:
①數(shù)據(jù)庫的恢復(fù);
②數(shù)據(jù)庫的并發(fā)控制;
③數(shù)據(jù)庫的完整性;
?數(shù)據(jù)庫的安全性;
5)增加了系統(tǒng)的靈活性。
增加了系統(tǒng)的靈活性對數(shù)據(jù)的操作不一定以記錄為單位,可以以數(shù)據(jù)項為單位。
數(shù)據(jù)庫技術(shù)中的四個名詞:DB、DBMS、DBS、數(shù)據(jù)庫技術(shù)。其概念是不同的,要分清。
DB:數(shù)據(jù)庫(Database)長期存儲在計算機(jī)內(nèi)、有組織的、統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合。
DBMS:數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem),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)(DatabaseSystem),DBS是實現(xiàn)有組織地、動態(tài)地存儲大量關(guān)聯(lián)數(shù)據(jù),方便多用
戶訪問的計算機(jī)軟件、硬件和數(shù)據(jù)資源組成的系統(tǒng),即采用了數(shù)據(jù)庫技術(shù)的計算機(jī)系統(tǒng)。
數(shù)據(jù)庫技術(shù):是一門研究數(shù)據(jù)庫結(jié)構(gòu)、存儲、管理和使用的一門軟件學(xué)科。
4.高級數(shù)據(jù)庫階段:
1)面向?qū)ο蟮母拍罱?/p>
2)開放數(shù)據(jù)庫互連技術(shù)
在數(shù)據(jù)處理中,數(shù)據(jù)描述將涉及不同的范疇。從事物的特性到計算機(jī)中的具體表示,數(shù)據(jù)描述經(jīng)歷
了三個階段-----概念設(shè)計、邏輯設(shè)計和物理設(shè)計。
1.概念設(shè)計中的的數(shù)據(jù)描述
1)實體
2)實體集
3)屬性
4)實體標(biāo)識符
2.邏輯設(shè)計中的數(shù)據(jù)描述
1)字段
2)記錄
3)文件
4)關(guān)鍵碼
3.物理設(shè)計中的數(shù)據(jù)描述
物理存儲介質(zhì)層次
1)高速緩沖存儲器
2)主存儲器
3)快擦寫存儲器
4)磁盤存儲器
5)光盤存儲器
6)磁帶
物理存儲中的數(shù)據(jù)描述
位、字節(jié)、字、塊、桶和卷
4.數(shù)據(jù)聯(lián)系的描述
聯(lián)系及元數(shù)定義:
二元聯(lián)系有以下三種類型:
1:1聯(lián)系:如果實體集E1中的每個實體最多只能和實體集E2中的一個實體有聯(lián)系,反之亦
然,好么實體集E1對E2的聯(lián)系稱為“一對一聯(lián)系”,記為“1:1”。
1:N聯(lián)系:如果實體集E1中每個實體與實體集E2中任意個(零個或多個)實體有聯(lián)系,而
E2中每個實體至多和E1中的一個實體有聯(lián)系,那么E1對E2的聯(lián)系是“一對多聯(lián)系”,記為“1:
N”。
M:N聯(lián)系:如果實體集E1中每個實體與實體集E2中任意個(零個或多個)實體有聯(lián)系,反
之亦然,那么E1對E2的聯(lián)系是“多對多聯(lián)系”,記為“M:N”。
1.數(shù)據(jù)抽象的過程
根據(jù)抽象的級別定義了四種模型:
1)概念數(shù)據(jù)模型
2)邏輯數(shù)據(jù)模型
3)外部數(shù)據(jù)模型
4)內(nèi)部數(shù)據(jù)模型
2.概念模型
1)四種模型中,概念模型的抽象級別最高。
2)概念模型的特點:(P12)
3.邏輯模型
邏輯模型的特點:(P13)
⑴~(4)
邏輯模型的分類:
1)層次模型
2)網(wǎng)狀模型
3)關(guān)系模型
三種邏輯數(shù)據(jù)模型的比較?如P17圖
4.外部模型
外部模型的特點:(P17)
從整個系統(tǒng)考察,外部模型的優(yōu)點。
5.內(nèi)部模型
是數(shù)據(jù)庫最底的抽象,它描述數(shù)據(jù)在磁盤或磁帶上的存儲方式、存取設(shè)備和存取方法。
6.三層模式和兩級映象
三層模式體系結(jié)構(gòu)
1)外模式:是用戶與數(shù)據(jù)庫系統(tǒng)的接口,是用戶用到的那部分?jǐn)?shù)據(jù)的描述。
2)邏輯模式:是數(shù)據(jù)庫中全部數(shù)據(jù)的整體邏輯結(jié)構(gòu)的描述。
3)內(nèi)模式:是數(shù)據(jù)庫在物理存儲方面的描述,定義所有內(nèi)部記錄類型、索引和文件的組織方
式,以及數(shù)據(jù)控制方面的細(xì)節(jié).
兩級映象
外模式/邏輯模式映象:用于定義概念模式和內(nèi)模式之間的對應(yīng)性。一般在內(nèi)模式中描述。
邏輯模式/內(nèi)模式映象:用于定義外模式和概念模式間的對應(yīng)性。一般在外模式中描述。
7.高度的數(shù)據(jù)獨立性
什么叫數(shù)據(jù)獨立性?
是指應(yīng)用程序和數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)之間相互獨立,不受影響。在修改數(shù)據(jù)結(jié)構(gòu)時,盡可能不修
改應(yīng)用程序,則稱系統(tǒng)達(dá)到了數(shù)據(jù)獨立性目標(biāo)。
數(shù)據(jù)獨立性分為物理數(shù)據(jù)獨立性和邏輯數(shù)據(jù)獨立性:
物理數(shù)據(jù)獨立性:修改內(nèi)模式時盡量不影響概念模式及外模式,則達(dá)到物理數(shù)據(jù)獨立性。
邏輯數(shù)據(jù)獨立性:修改概念模式時盡量不影響外模式和應(yīng)用程序。
數(shù)據(jù)庫管理系統(tǒng)的主要任務(wù)是完成用戶對數(shù)據(jù)庫的存取請求,即檢索、插入、更新或刪除等操
作。
DBMS的目標(biāo):用戶界面友好、功能完善、結(jié)構(gòu)清晰、高效率、開放性
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)數(shù)據(jù)字典
2.數(shù)據(jù)庫管理員定義及職責(zé)。(素質(zhì)+職責(zé))
第二章數(shù)據(jù)庫設(shè)計和ER模型
學(xué)習(xí)目的與要求:
本章總的目的要求是了解和掌握數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計的全過程。首先掌握ER模型和關(guān)系模型的
基本概念,然后掌握概念設(shè)計中ER模型的設(shè)計方法,邏輯設(shè)計中ER模型向關(guān)系模型轉(zhuǎn)換方法。
考核知識點與考核要求
從軟件生存期談起
軟件生存期:是指從軟件的規(guī)劃、研制、實現(xiàn)、投入運行后的維護(hù)、直到它被新的軟件所取代
而停止使用的整個期間。它包括六個階段:(規(guī)需設(shè)編試運維)
(1)規(guī)劃階段
(2)需求分析階段
(3)設(shè)計階段
(4)程序編制階段
(5)調(diào)試階段
(6)運行維護(hù)階段
1.什么叫數(shù)據(jù)庫系統(tǒng)生存期?
我們把數(shù)據(jù)庫應(yīng)用系統(tǒng)從開始規(guī)劃、設(shè)計、實現(xiàn)、維護(hù)到最后被新的系統(tǒng)取代而停止使用的整
個期間,稱為數(shù)據(jù)庫系統(tǒng)生存期。
2.這個生存期一般可劃分成以下七個階段:
規(guī)劃、需求分析、概念設(shè)計、邏輯設(shè)計、物理設(shè)計、實現(xiàn)、運行維護(hù).
2.2ER模型的基本概念
實體、聯(lián)系和屬性
2.屬性的分類(簡單屬性和復(fù)合屬性、單值屬性和多值屬性、存儲屬性和派生屬性)
3.聯(lián)系的設(shè)計
(分裂、合并和增刪)
5.采用ER模型的數(shù)據(jù)庫概念設(shè)計步驟
采用ER方法進(jìn)行數(shù)據(jù)庫概念設(shè)計分成三步進(jìn)行:
首先設(shè)計局部ER模式
然后把各局部ER模式綜合成全局ER模式
最后對全局ER模式進(jìn)行優(yōu)化
1.關(guān)系模型定義:用二維表格結(jié)構(gòu)表示實體集、外鍵表示實體間聯(lián)系的數(shù)據(jù)模型稱為關(guān)系模型。
2.基本術(shù)語有:字段(屬性)、字段值(屬性值)、記錄(元組)、二維表格(元組集合、關(guān)系或?qū)嵗?/p>
在這里,括號中的表述為關(guān)系模型中的術(shù)語。它與表格中術(shù)語可以一一對應(yīng)。還有,關(guān)系中屬性個
數(shù)稱為元數(shù),元組個數(shù)為基數(shù)。
3.鍵:由一個或幾個屬性組成。(注意鍵不一定是唯一的一個屬性)。
1)超鍵:在關(guān)系中能唯一標(biāo)識元組的屬性集稱為關(guān)系模式的超鍵。(注意,超鍵也是一個屬性集,
不一定只是一個屬性)
2)候選鍵:不含有多余屬性的超鍵稱為候選鍵。
3)主鍵:用戶選作元組標(biāo)識的一個候選鍵為主鍵。
4)外鍵:某個關(guān)系的主鍵相應(yīng)的屬性在另一關(guān)系中出現(xiàn),此時該主鍵在就是另一關(guān)系的外鍵,
如有兩個關(guān)系S和SC,其中S#是關(guān)系S的主鍵,相應(yīng)的屬性S#在關(guān)系SC中也出現(xiàn),此時S#就是關(guān)
系SC的外鍵。
4.關(guān)系的定義和性質(zhì)
1)關(guān)系定義:關(guān)系是一個屬性數(shù)目相同的元組的集合。
2)關(guān)系性質(zhì)(p53)
5.三類完整性規(guī)則
1)實體完整性規(guī)則:要求關(guān)系中組成主鍵的屬性上不能有空值。
2)參照完整性規(guī)則:要求不引用不存在的實體。
3)用戶定義完整性規(guī)則;由具體應(yīng)用環(huán)境決定,系統(tǒng)提供定義和檢驗這類完整性的機(jī)制。
E-R模型可以向現(xiàn)有的各種數(shù)據(jù)庫模型轉(zhuǎn)換,對不同的數(shù)據(jù)庫模型有不同的轉(zhuǎn)換規(guī)則。這里只討論
E-R模型向關(guān)系模型的轉(zhuǎn)換方法。
(1)實體類型的轉(zhuǎn)換
將每個實體類型轉(zhuǎn)換成一個關(guān)系模式,實體的屬性即為關(guān)系的屬性,實體標(biāo)識符即為關(guān)系的鍵。
(2)聯(lián)系類型的轉(zhuǎn)換
1)實體間的聯(lián)系是1:1
可以在兩個實體類型轉(zhuǎn)換成兩個關(guān)系模式中的任意一個關(guān)系模式的屬性中加入另一個關(guān)系模式
的鍵和聯(lián)系類型的屬性。
2)如實體間的聯(lián)系是1:N
則在N端實體類型轉(zhuǎn)換成的關(guān)系模式中加入1端實體類型轉(zhuǎn)換成的關(guān)系模式的鍵和聯(lián)系類型的
屬性。
3)如實體間的聯(lián)系是M:N
則將聯(lián)系類型也轉(zhuǎn)換成關(guān)系模式,其屬性為兩端實體類型的鍵加上聯(lián)系類型的屬性,而鍵為兩
端實體鍵的組合。
以上各轉(zhuǎn)換規(guī)則,給出了一般情況下E-R模型向關(guān)系模型的轉(zhuǎn)換方法。但在實際應(yīng)用中往往還需要
根具實際情況進(jìn)行具體處理。
下面以圖書借閱系統(tǒng)的E-R模型轉(zhuǎn)換為關(guān)系模型為例。
該例中,由于允許同一本書在不同的時間借給多個讀者,特別是一個讀者在不同的時間可以借同一
本書。因而,在多對多聯(lián)系“借閱”轉(zhuǎn)換為關(guān)系模式時,僅有讀者的編號和圖書的編號是不能構(gòu)成
碼的。
例如:
(0406010,,2006-10-10:10:10,2007-02-20:3:00)(0406010,,2007-5-26:4:00,NULL)
說明,按照上述介紹的轉(zhuǎn)換方法得到的關(guān)系模型不一定是最好的。實際應(yīng)用中,往往還要對得到的
關(guān)系模型進(jìn)行規(guī)范化。
實例分析,同學(xué)們多看書!
1.庫存管理系統(tǒng)的ER模型及轉(zhuǎn)換
2.人事管理信息系統(tǒng)的ER模型
3.住院管理信息系統(tǒng)的ER模型
4.公司車隊信息系統(tǒng)的ER模型
更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部
()歡迎”加入…歡迎”交流…止不住的驚喜等著你....
第三章關(guān)系模式設(shè)計理論
學(xué)習(xí)目的與要求:
本章特點是理論性較強,學(xué)習(xí)者應(yīng)從概念著手,搞清概念間的聯(lián)系和作用。
本章總的要求是:r解關(guān)系數(shù)據(jù)庫規(guī)范化理論及其在數(shù)據(jù)庫設(shè)計中的作用。
本章的重點是函數(shù)依賴、無損分解、保持依賴和范式。掌握這些概念并能運用它們分析模式分
解的特點。
考核知識點與考核要求
關(guān)系模式的設(shè)計準(zhǔn)則(簡單應(yīng)用)
函數(shù)依賴(FD)(簡單應(yīng)用)
關(guān)系模式的分解特性(簡單應(yīng)用)
范式
INF、2NF、3NF(簡單應(yīng)用)BCNF(領(lǐng)會)
分解成BCNF模式集的“分解算法”(識記)
分解成3NF模式集的“合成算法”(綜合應(yīng)用)
模式設(shè)計方法小結(jié)(領(lǐng)會)
多值依賴和第四范式(識記)
1.關(guān)系模式的冗余和異常問題
1)數(shù)據(jù)冗余
2)操作異常(修改異常、插入異常和刪除異常)
2.關(guān)系模式的非形式化設(shè)計準(zhǔn)則
1)關(guān)系模式的設(shè)計應(yīng)盡可能只包含有直接聯(lián)系的屬性,不包括有間接聯(lián)系的屬性
2)關(guān)系模式的設(shè)計應(yīng)盡可能使得相應(yīng)關(guān)系中不出現(xiàn)插入、刪除和修改異常。
3)關(guān)系模式的設(shè)計應(yīng)盡可能使得相應(yīng)關(guān)系中避免放置經(jīng)常為空值的屬性。
4)關(guān)系模式的設(shè)計應(yīng)盡可能使得關(guān)系的等值連接在主鍵和外鍵的屬性上進(jìn)行,并且保證連接
以后不會生成額外的元組。
1.函數(shù)依賴的定義
設(shè)有關(guān)系模式R(A1,A2,...An)或簡記為R(U),X,Y是U的子集,r是R的任一具體關(guān)系,如
果對r的任意兩個元組tl,t2,由tl[X]=t2[X]導(dǎo)致tl[Y]=t2[Y],則稱X函數(shù)決定Y,或Y函數(shù)依賴
于X,記為XfY。X-Y為模式R的一個函數(shù)依賴。
這個定義可以這樣理解:有一張設(shè)計好的二維表,X,Y是表的某些列(可以是一列,也可以是
多列),若在表中的第tl行,和第t2行上的X值相等,那么必有tl行和t2行上的Y值也相等,這
就是說Y函數(shù)依賴于X。
2.函數(shù)依賴的邏輯蘊涵
設(shè)F是關(guān)系模式R的一個函數(shù)依賴集,X,Y是R的屬性子集,如果從F中的函數(shù)依賴能夠推出X
-Y,則稱F邏輯蘊涵X-Y,記為F|=XfY。
而函數(shù)依賴的閉包F+是指被F邏輯蘊涵的函數(shù)依賴的全體構(gòu)成的集合。
3.鍵和FD的關(guān)系
鍵是唯一標(biāo)識實體的屬性集。對于鍵和函數(shù)依賴的關(guān)系:有兩個條件:設(shè)關(guān)系模式
R(Al,A2...An),F是R上的函數(shù)依賴集,X是R的一個子集:
laX-AlA2...AnGF+(它的意思是X能夠決定唯一的一個元組)
2a不存在X的真子集Y,使得Y也能決定唯一的一個元組,則X就是R的一個候選鍵。(它的意
思是X能決定唯一的一個元組但又沒有多余的屬性集)
包含在任何一個候選鍵中的屬性稱為主屬性,不包含在任何鍵中的屬性為非主屬性(非鍵屬性),
(注意)主屬性應(yīng)當(dāng)包含在候選鍵中。
4.函數(shù)依賴(FD)的推理規(guī)則
前面我們舉的例子中是以實際經(jīng)驗來確定一個函數(shù)依賴的邏輯蘊涵,但是我們需要一個推理規(guī)
則才能完全確定F或F+的所有函數(shù)依賴。
設(shè)有關(guān)系模式R(U),X,Y,Z,W均是U的子集,F(xiàn)是R上只涉及到U中屬性的函數(shù)依賴集,推
理規(guī)則如下:
Ala自反性:如果YXU,則X-Y在R上成立。
A2a增廣性:如果X-Y為F所蘊涵,ZU,則XZ-YZ在R上成立?(XZ表示XUZ,下同)
A3a傳遞性:如果X-Y和Y-Z在R上成立,則XfZ在R上成立。
A4a合并性:如果X-Y和X-Z成立,那么X-YZ成立。
A6a分解性:如果X-Y和ZY成立,那么X-Z成立。
A5a偽傳性:如果X-Y和WY-Z成立,那么WX-Z成立。
A7a復(fù)合性:{XfY,WfZ}=XW-YZ。
A8a通用一致性定理:{X-Y,WfZ}|=xU(X-Y)-YZ。
5.函數(shù)依賴推理規(guī)則的完備性
函數(shù)依賴推理規(guī)則系統(tǒng)(自反性、增廣性和傳遞性)是完備的。由推理規(guī)則的完備性可得到兩個
重要結(jié)論:
la屬性集X+中的每個屬性A,都有X-A被F邏輯蘊涵,即X+是所有由F邏輯蘊含X-A的
屬性A的集合。
2aF+是所有利用Amstrong推理規(guī)則從F導(dǎo)出的函數(shù)依賴的集合。
6.函數(shù)依賴集的等價和覆蓋
在關(guān)系模式R(U)上的兩個函數(shù)依賴集F和G,如果滿足F+=G+,則稱F和G是等價的,
稱F和G等價也稱F覆蓋G或G覆蓋F。
每個函數(shù)依賴集F都可以被一個右部只有單屬性的函數(shù)依賴集G所覆蓋。
如果函數(shù)依賴集合F滿足:
(DF中每一個函數(shù)依賴的右部都是單屬性;
(2)F中的任一函數(shù)依賴X-A,其F-{X—A}是不等價的;
(3)F中的任一函數(shù)依賴X-A,Z為X的子集。(F-{XfA})U{ZfA}與F不等價。
則稱F為最小函數(shù)依賴集合。
如果函數(shù)依賴集F和G等價,并且G是最小集,那么稱G是F的一個最小覆蓋。
這一段并不要求掌握最小集的求法,但是應(yīng)當(dāng)通過其求法理解最小集的概念。
L模式分解中存在的問題
模式分解
就是將一個泛關(guān)系模式R分解成數(shù)據(jù)庫模式P,以P代替R的過程。它不僅僅是屬性集合的
分解,它是對關(guān)系模式上的函數(shù)依賴集、以及關(guān)系模式的當(dāng)前值分解的具體表現(xiàn)。
分解一個模式有很多方法,但是有的分解會出現(xiàn)失去函數(shù)依賴、或出現(xiàn)插入、刪除異常等情況,
而有的分解則不出現(xiàn)相關(guān)問題。
衡量一個分解的標(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上的一個函數(shù)依賴集。無損聯(lián)接就是
指R中每一個滿足F的關(guān)系r(也就是一個關(guān)系實例)都有r=nRI(r)IX|nR2(r)...|X|nR3(r),
即r為它在Ri上的投影的自然聯(lián)接。
最簡單的理解,也就是說,分解后的關(guān)系自然連接后完全等于分解前的關(guān)系,則這個分解相
對于F是無損聯(lián)接分解。
設(shè)R的分解為P={R1,R2},F為R所滿足的函數(shù)依賴集,則分解P具有無損聯(lián)接性的充分必要條件是:
RinR2-(R1-R2)
RinR2f(R2-R1)
也就是說,分解后的兩個模式的交能決定這兩個模式的差集,即RI、R2的公共屬性能夠函數(shù)決
定R1或R2中的其他屬性,這樣的分解就必定是無損聯(lián)接分解。
3.保持函數(shù)依賴的分解
在分解過程中,要求模式分解的無損聯(lián)接是必要的,只有無損聯(lián)接分解才能保證任何一個關(guān)系
能由它的那些投影進(jìn)行自然聯(lián)接得到恢復(fù)。
同時,分解關(guān)系模式時還應(yīng)保證關(guān)系模式的函數(shù)依賴集在分解后仍在數(shù)據(jù)庫模式中保持不變,
這就是保持函數(shù)依賴的問題。也就是所有分解出的模式所滿足的函數(shù)依賴的全體應(yīng)當(dāng)?shù)葍r于原模式
的函數(shù)依賴集。只有這樣才能確保整個數(shù)據(jù)庫中數(shù)據(jù)的語義完整性不受破壞。
1NF:第一范式
即關(guān)系模式中的屬性的值域中每一個值都是不可再分解的值。如果某個數(shù)據(jù)庫模式都是第一范
式的,則稱該數(shù)據(jù)庫模式是屬于第一范式的數(shù)據(jù)庫模式。
2NF;第二范式
如果關(guān)系模式R為第一范式,并且R中每一個非主屬性完全函數(shù)依賴于R的某個候選鍵,則稱
為第二范式模式。
非主屬性、完全函數(shù)依賴、候選鍵
三個名詞的含義。
候選鍵就是指可以唯一決定關(guān)系模式R中某元組值且不含有多余屬性的屬性集。
非主屬性也就是非鍵屬性,指關(guān)系模式R中不包含在任何建中的屬性。
設(shè)有函數(shù)依賴W-A,若存在XUW,有X-A成立,那么稱W-A是局部依賴,否則就稱W-A是完
全函數(shù)依賴。
在分析是否為第2范式時,應(yīng)首先確定候選鍵,然后把關(guān)系模式中的非主屬性與鍵的依賴關(guān)系進(jìn)行
考察,是否都為完全函數(shù)依賴,如是,則此關(guān)系模式為2NF。如果數(shù)據(jù)庫模式中每個關(guān)系模式都是
2NF的,則此數(shù)據(jù)庫模式屬于2NF的數(shù)據(jù)庫模式。
3NF:第三范式
如果關(guān)系模式R是第二范式,且每個非主屬性都不傳遞依賴于R的候選鍵,則稱R為第三范式
的模式。
這里首先要了解傳遞依賴的含義:在關(guān)系模式中,如果Y-X,X-A,且X不決定Y和A不屬于
X,那么Y-A是傳遞依賴。
注意的是,這里要求非主屬性都不傳遞依賴于候選鍵。
BCNF:
這個范式和第三范式有聯(lián)系,它是3NF的改進(jìn)形式。若關(guān)系模式R是第一范式,且每個屬性都
不傳遞依賴于R的候選鍵。這種關(guān)系模式就是BCNF模式。
縱觀四種范式,可以發(fā)現(xiàn)它們之間存在如下關(guān)系:
5.分解成BCNF模式集的算法
對于任一關(guān)系模式,可找到一個分解達(dá)到3NF,且具有無損聯(lián)接和保持函數(shù)依賴性。而對于BCNF
分解,則可以保證無損聯(lián)接但不一定能保證保持函數(shù)依賴集。
無損聯(lián)接分解成BCNF模式集的算法:
⑴置初值P={R};
(2)如果P中所有關(guān)系模式都是BCNF,則轉(zhuǎn)(4);
(3)如果P中有一個關(guān)系模式S不是BCNF,則S中必能找到一個函數(shù)依賴集X-A有X不是S的
鍵,且A不屬于X,設(shè)SI=XA,S2=S-A,用分解SI,S2代替S,轉(zhuǎn)⑵;
(4)分解結(jié)束。輸出P。
在這個過程中,重點在于(3)步,判斷哪個關(guān)系不是BCNF,并找到X和A。這里,S的判斷用BCNF
的定義,而X不是S的鍵則依靠分析。
6.分解成3NF模式集
算法:
(1)如果R中的某些屬性在F的所有依賴的左邊和右邊都不出現(xiàn),那么這些屬性可以從R中分出
去,單獨構(gòu)成一個關(guān)系模式。
(2)如果F中有一個依賴X-A有XA-R,則P={R},轉(zhuǎn)(4)
(3)對于F中每一個X-A,構(gòu)成一個關(guān)系模式XA,如果F有有X-A1,X-A2...X-An,
則可以用模式XA1A2...An代替n個模式XA1,XA2...XAn;
(4)w分解結(jié)束,輸入P。
這個過程的重點是這一句“對于F中每一個X-A,構(gòu)成一個關(guān)系模式XA”,這使我們的分解十
分容易,然后依據(jù)合并律(合并律:如果X-Y和X-Z成立,那么X-YZ成立)將有關(guān)模式合并即得
到所需3NF模式。
7.模式設(shè)計方法的原則
關(guān)系模式R相對于函數(shù)依賴集F分解成數(shù)據(jù)庫模式P={R1,R2...Rk},一般具有下面四項
特性:
P中每個關(guān)系模式Ri上應(yīng)具有某種范式性質(zhì)(3NF或BCNF)
無損聯(lián)接性。
保持函數(shù)依賴集。
最小性,即P中模式個數(shù)應(yīng)最少且模式中屬性總數(shù)應(yīng)最少。
一個好的模式設(shè)計方法應(yīng)符合下列三條原則:
表達(dá)性
分離性
最小冗余性
8.多值依賴與第四范式(4NF)
例:
學(xué)校中某一門課程由多個教師講授,他們使用相同的一套參考書。
關(guān)系模式Teaching(C,T,B)
課程C、教師T和參考書B
多值依賴與第四范式
TeachingSBCNF:
Teach具有唯一候選碼(C,T,B),即全碼
Teaching模式中存在的問題
(1)數(shù)據(jù)冗余度大:有多少名任課教師,參考書就要存儲多少次。
(2)插入操作復(fù)雜:當(dāng)某一課程增加一名任課教師時,該課程有多少本參照書,就必須插入多少個元
組。
例如物理課增加一名教師劉關(guān),需要插入兩個元組:
(物理,劉關(guān),普通物理學(xué))
(物理,劉關(guān),光學(xué)原理)
(3)刪除操作復(fù)雜:某一門課要去掉一本參考書,該課程有多少名教師,就必須刪除多少個元組。
(4)修改操作復(fù)雜:某一門課要修改一本參考書,該課程有多少名教師,就必須修改多少個元
組。
產(chǎn)生原因
存在多值依賴。
1)多值依賴
設(shè)R(U)是一個屬性集U上的一個關(guān)系模式,X、Y和Z是U的子集,并且Z=U—X—Y,多值
依賴X--Y成立當(dāng)且僅當(dāng)對R的任一關(guān)系r,r在(X,Z)上的每個值對應(yīng)一組Y的值,這組值僅
僅決定于X值而與Z值無關(guān)。
例Teaching(C,T,B)
對于C的每一個值,T有一組值與之對應(yīng),而不論B取何值。
2)第四范式(4NF)
關(guān)系模式R<U,F>G1NF,如果對于R的每個非平凡多值依賴Xf—Y(Y土X),X都含有候選碼,
則RG4NF。
如果Re4NF,則ReBCNF
不允許有非平凡且非函數(shù)依賴的多值依賴
允許的是函數(shù)依賴(是非平凡多值依賴)
第四章關(guān)系運算
學(xué)習(xí)目的與要求:
本章總的要求是:深刻理解關(guān)系模型的運算理論,了解查詢優(yōu)化的意義和啟發(fā)式優(yōu)化算法。
本章的重點是關(guān)系代數(shù)運算,應(yīng)熟練掌握。關(guān)系演算是本章的難點。
考核知識點和考核要求
關(guān)系模型有三個重要組成部分:
1)數(shù)據(jù)結(jié)構(gòu)
2)數(shù)據(jù)操縱
3)數(shù)據(jù)完整性規(guī)則
關(guān)系查詢語言根據(jù)其理論基礎(chǔ)的不同分成兩類:
1)關(guān)系代數(shù)語言
2)關(guān)系演算語言
L關(guān)系代數(shù)的五個基本操作:并、差、笛卡爾積、投影和選擇。
并(U):兩個關(guān)系需有相同的關(guān)系模式,并的對象是元組,由兩個關(guān)系所有元組構(gòu)成。
差(-):同樣,兩個關(guān)系有相同的模式,R和S的差是由屬于R但不屬于S的元組構(gòu)成的集合。
笛卡兒積(X):對于兩個關(guān)系作運算,歹I」:(n+m)列的元組的集合,元組的前n列是關(guān)系R
的一個元組后m列是關(guān)系S的一個元組,
行:klXk2個元組。
投影(。):對關(guān)系進(jìn)行垂直分割,消去某些列,并重新安排列的順序。
選擇(口):根據(jù)某些條件關(guān)系作水平分割,即選擇符合條件的元組。
2.關(guān)系代數(shù)的四個組合操作:交、聯(lián)接、自然聯(lián)接和除法
交(Cl):R和S的交是由既屬于R又屬于S的元組構(gòu)成的集合。
聯(lián)接包括0聯(lián)接和F聯(lián)接,是選擇RXS中滿足i0(r+j)或F條件的元組構(gòu)成的集合,特別注
意等值聯(lián)接(9為等號“=”)。
自然聯(lián)接(R|X|S):在RXS中,選擇R和S公共屬性值均相等的元組,并去掉RXS中重復(fù)的公
共屬性列。如果兩個關(guān)系沒有公共屬性,則自然聯(lián)接就轉(zhuǎn)化為笛卡爾積。
除法(土):首先除法的結(jié)果中元數(shù)為兩個元數(shù)的差,可以直接用觀察法來得到結(jié)果,把S看作
一個塊,拿到R中去和相同屬性集中的元組作比較,如果有相同的塊,且除去此塊后留下的相應(yīng)元
組均相同,那么可以得到一條元組,所有這些元組的集合就是除法的結(jié)果。
對于上述的五個基本操作和組合操作,應(yīng)當(dāng)從實際運算方面進(jìn)行理解和運用,對其形式定義可不必
深究。注意課本上的例子。
關(guān)系代數(shù)運算的三個要素:
運算對象:關(guān)系
運算結(jié)果:關(guān)系
運算符:四類
集合運算符
將關(guān)系看成元組的集合
運算是從關(guān)系的“水平”方向即行的角度來進(jìn)行
專門的關(guān)系運算符
不僅涉及行而且涉及列
算術(shù)比較符
輔助專門的關(guān)系運算符進(jìn)行操作
邏輯運算符
輔助專門的關(guān)系運算符進(jìn)行操作
廣義笛卡爾積(ExtendedCartesianProduct)
R
n目關(guān)系,kl個元組
S
m目關(guān)系,k2個元組
RXS
列:(n+m)列的元組的集合
元組的前n列是關(guān)系R的一個元組
后m列是關(guān)系S的一個元組
行:klXk2個元組
RXS={trts|treRAtseS}
選擇(Selection)
1)選擇又稱為限制(Restriction)
2)選擇運算符的含義
在關(guān)系R中選擇滿足給定條件的諸元組
oF(R)={t|teRAF(t)='真'}
F:選擇條件,是一個邏輯表達(dá)式,基本形式為:
J(]XI0Yl[)][63(]X20Y2[)]]???
0:比較運算符(>,<?W,=或〈>)
XI,Y1等:屬性名、常量、簡單函數(shù);屬性名也可以用它的序號來代替;
0:邏輯運算符(八或V)
[]:表示任選項
-:表示上述格式可以重復(fù)下去
3)選擇運算是從行的角度進(jìn)行的運算
4)舉例
設(shè)有一個學(xué)生-課程數(shù)據(jù)庫,包括學(xué)生關(guān)系Student、課程關(guān)系Course和選修關(guān)系SC。
[例1]查詢信息系(IS系)全體學(xué)生
oSdept='IS'(Student)
或。5='IS'(Student)
結(jié)果:
[例2]查詢年齡小于20歲的學(xué)生
oSage<20(Student)
或。4<20(Student)
結(jié)果:
投影(Projection)
1)投影運算符的含義
從R中選擇出若干屬性列組成新的關(guān)系
JtA(R)={t[A]|teR}
A:R中的屬性列
2)投影操作主要是從列的角度進(jìn)行運算
但投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組(避免重復(fù)行)
3)舉例
[例3]查詢學(xué)生的姓名和所在系
即求Student關(guān)系上學(xué)生姓名和所在系兩個屬性上的投影
JtSname,Sdept(Student)
或“2,5(Student)
結(jié)果:
[例4]查詢學(xué)生關(guān)系Student中都有哪些系
JtSdept(Student)
結(jié)果:
連接(Join)
1)連接也稱為0連接
2)連接運算的含義
從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組
RS={|treRAtseSAtr[A]0ts[B]}
A和B:分別為R和S上度數(shù)相等且可比的屬性組
0:比較運算符
連接運算從R和S的廣義笛卡爾積RXS中選取(R關(guān)系)在A屬性組上的值與(S關(guān)系)在B
屬性組上值滿足比較關(guān)系的元組。
3)兩類常用連接運算
等值連接(equijoin)
什么是等值連接
0為“=”的連接運算稱為等值連接
等值連接的含義
從關(guān)系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組,即等值連接為:
RS={|treRAtseSAtr[A]=ts[B]}
自然連接(Naturaljoin)
什么是自然連接
自然連接是一種特殊的等值連接
兩個關(guān)系中進(jìn)行比較的分量必須是相同的屬性組
在結(jié)果中把重復(fù)的屬性列去掉
自然連接的含義
更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部
”加入…歡迎?交流…止不住的驚喜等著你....
R和S具有相同的屬性組B
RS={|treRAtseSAtr[B]=ts[B]}
4)一般的連接操作是從行的角度進(jìn)行運算。
自然連接還需要取消重復(fù)列,所以是同時從行和列的角度進(jìn)行運算。
5)舉例
[例5]
外連接
例:列出老師的有關(guān)信息,包括姓名、工資、所教授的課程
LIP#,PN,SAL,Ctt,CN((PR0F)PCC)
外連接
為避免自然連接時因失配而發(fā)生的信息丟失,可以假定往參與連接的一方表中附加一個取值全
為空值的行,它和參與連接的另一方表中的任何一個未匹配上的元組都能匹配,稱之為外連接
外連接=自然連接+失配的元組
外連接的形式:左外連接、右外連接、全外連接
重要內(nèi)容分析
1.(1)一般規(guī)則
對于只涉及到選擇、投影、聯(lián)接的查詢可用下列表達(dá)式表示:
Ji…(0...(RXS))或者”…(?!璉RK))
對于否定的操作,一般要用差操作表示,例如“檢索不學(xué)C2課的學(xué)生姓名”。
對于檢索具有“全部”特征的操作,一般要用除法操作表示,例如“檢索學(xué)習(xí)全部課程的學(xué)生
姓名”。
(2)“檢索不學(xué)C2課的學(xué)生姓名”,決不能用下式表示:
nSNAME,AGE(oC#W'C2'(S?SC))
一定要用“差”的形式:
orSNAME,AGE(S)-nSNAME,AGE(。C#='C2'(SKC))
(3)“檢索學(xué)習(xí)全部課程的學(xué)生學(xué)號”,要用nS#,C#(SC)+nC#(C)表示,
而不能寫成滅S#(SC-?nC#(O)形式。這是因為一個學(xué)生學(xué)的課程的成績可能是不一樣的。
2.非過程性語言與過程性語言的區(qū)別
編程時必須指出“干什么”及“怎么干”的語言,稱為過程性語言;編程時只須指出“干什
么",不必指出“怎么干”的語言,稱為非過程性語言。
把數(shù)理邏輯的謂詞演算引入關(guān)系運算中,就可得到以關(guān)系演算為基礎(chǔ)的運算。關(guān)系演算分為元組關(guān)
系演算或域關(guān)系演算,前者以元組為變量,后者以域為變量。
元組關(guān)系演算
形式化定義
{tIp(t)}
表示所有使謂詞P為真的元組集合
t為元組變量
如果元組變量前有“全稱”(V)或“存在"T)量詞,則稱其為約束變量,否則稱為自由變量。
P是公式
由原子公式和運算符組成
原子公式
sGR
s是關(guān)系R中的一個元組
s[x]0u[y]
s[x]與u[y]為元組分量,他們之間滿足比較關(guān)系。
s[x]0C
分量s[x]與常量C之間滿足比較關(guān)系。
公式的遞歸定義
原子公式是公式
如果P是公式,那么rP也是公式
如果Pl,P2是公式,則PlAP2,PlVP2,PlnP2也是公式
如果P(果是公式,R是關(guān)系,則玉eR(P(t))和VteR(P(t))也是公式。
公式的等價性
PlAP2<=>-I(-1Plv-IP2)
VteR(P(t))o-i3teR(-1P(t))
Pl=P2=-iPlvP2
表達(dá)式的安全性
元組關(guān)系演算有可能會產(chǎn)生無限關(guān)系,這樣的表達(dá)式是不安全的。
如{t1(twR)},求所有不在R中的元組
引入公式P的域概念,用dom(P)表示
dom(P)=顯式出現(xiàn)在P中的值+在P中出現(xiàn)的關(guān)系的元組中出現(xiàn)的值(不必是最小集)
如dom(t-|(teR))是區(qū)中出現(xiàn)的所有值的集合
如果出現(xiàn)在表達(dá)式{t|P(t)}結(jié)果中的所有值均來自dom(P),則稱{t|P(t)}是安全的。
示例:
找出工資在800元以上的老師
{t|tePROFAt[SAL]>800}
找出工資在800元以上的老師的姓名
{t3sGPROF(t[PNAME]=s[PNAME]AS[SAL]>800)}
給出計算機(jī)系老師的姓名
{t|3UGDEPT(u[DNAME]=“計算機(jī)系”A3sePR0F(s[DNO]=u[DN0]At[PNAME]=
s[PNAME]))}
求選修了全部課程的學(xué)生號
{t|VueC(BseSC(s[CNO]=u[CN0]At[SNO]=s[SN0]))}
求選修了張軍同學(xué)所選修的全部課程的學(xué)生姓名
V課程,張軍選之=>所求同學(xué)選之
{t|VUGC(3seSCASWGS(s[CN0]=u[CNO]AW[SN0]=s[SN0]AW[SNAME]="張軍”))
元組關(guān)系演算與關(guān)系代數(shù)的等價性
投影
TIA(R)={t|3seR(s[A]=t[A])}
選擇
oF(A)(R)={t|teRAF(t[A])}
廣義笛卡兒積
R(A)xS(B)={t|3ueR3seS(t[A]=u[A]A
t[B]=s[B])}
并
RuS={t|teRvteS}
交
R-S={t|teRA-]teS}
域關(guān)系演算
形式化定義
{<xl,x2,?,,,xn>|P(xl,x2,xn)}
xi代表域變量,P為由原子構(gòu)成的公式
原子公式
<xl,x2,,,,,xn>GR
xi是域變量或域常量
xey
域變量x與y之間滿足比較關(guān)系0
x0c
域變量X與常量C之間滿足比較關(guān)系0
示例:
找出工資在800元以上的老師
{<a,b,c,d,e>|<a,b,c,d,e>ePROFAe>800}
找出工資在800元以上的老師的姓名
{<b>|3a,c,d,e(<a,b,c,d,e>ePROFAe>800)}
目的
在關(guān)系代數(shù)中找一種好的操作步驟,既省空間,查詢效率又比較高。
在關(guān)系代數(shù)中,笛卡兒積和聯(lián)結(jié)運算是最費時間和空間的,在關(guān)系很大的時候,必須要考慮怎
樣做才能合理的安排,做到省時省力。
一個例子
設(shè)關(guān)系R和S都是二元關(guān)系,屬性名分別是A、B和C、D。那么如下查詢:
E1=JIA(oB=CAD='99'(RXS))
也可以是
E2=nA(oB=C(RX。D='99'(S))
或E3=nA(RoD='99'(S))
這三個代數(shù)表達(dá)式的等價的,但是執(zhí)行的效率不一樣。
第一種:先做笛卡兒積。假設(shè)每個物理塊可以存儲R的B1個元組,或者S的B2個元組,R關(guān)
系中有nl個元組,S關(guān)系中有n2個元組,內(nèi)存每次只能裝載m塊數(shù)據(jù)。
在做聯(lián)接的時候先把R的第一個m-1塊數(shù)據(jù)裝入內(nèi)存,然后逐個調(diào)入S中的數(shù)據(jù)塊;
R中的每個數(shù)據(jù)塊只要進(jìn)入內(nèi)存一次,總共需要裝入的塊數(shù)示nl/Bl;
S中的每個數(shù)據(jù)塊需要進(jìn)入內(nèi)存(nl/Bl)/(m-1)次,總共需要裝入的塊數(shù)是:
(nl/Bl)(1/(m-1))(n2/B2)
這三個代數(shù)表達(dá)式的等價的,但是執(zhí)行的效率不一樣。
執(zhí)行RXS的總裝入塊數(shù)是(nl/Bl)(l+n2/(m-1)/B2)
若nl=n2=10000,B1=B2=5,m=100,那么總的裝入塊數(shù)是42400,若每秒裝入20塊,需要35分
鐘。
耗費時間長,在實際使用中不采用。
這三個代數(shù)表達(dá)式的等價的,但是執(zhí)行的效率不一樣。
第二種和第三種:先做了選擇,裝入的塊數(shù)為nl/Bl+n2/B2,大約需要裝入4000塊,耗費時間
3分多鐘。
對于S來說,元組并不是全部進(jìn)入內(nèi)存,而且只是進(jìn)入一次,所以速度快。
1.優(yōu)化的一般策略
我們所說的優(yōu)化和存儲沒有關(guān)系,主要是如何來安排操作的順序,節(jié)省時間和空間的消費優(yōu)化
的一般技術(shù):
在關(guān)系代數(shù)表達(dá)式中盡可能早地執(zhí)行選擇操作。
把笛卡兒積和其后的選擇操作合并成F聯(lián)接運算。
同時計算一連串的選擇和投影操作,避免分開運算造成多次掃描文件。
2.關(guān)系代數(shù)表達(dá)式的優(yōu)化算法
對一個關(guān)系代數(shù)表達(dá)式進(jìn)行語法分析可以得
到一棵語法樹,葉子式關(guān)系,非葉子結(jié)點式關(guān)
系代數(shù)操作。
輸入:一個關(guān)系代數(shù)表達(dá)式的語法樹。
輸出:計算表達(dá)式的一個優(yōu)化程序。
方法:依次執(zhí)行下面的每一步。
(1)使用等價變換規(guī)則4將每個形為。FIA…AFn(E)的子表達(dá)式轉(zhuǎn)換成串接形式:
oF1(??,(oFn(E))…)
(2)對每個選擇操作,盡可能把選擇操作移近樹的葉端(盡可能早的實行選擇操作)。
(3)對每個投影操作,盡可能把投影操作移近樹的葉端。
(4)把選擇和投影合并成單個選擇、單個投影或一個選擇后跟一個投影。
(5)將上述步驟得到的語法樹的內(nèi)結(jié)點分組。
(6)生成一個序列,每一組結(jié)點的計算是序列中的一步。
見課本例子。
第五章SQL語言
學(xué)習(xí)目的與要求:
SQL語言是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言,是本課程的一個重點。本章總的要求是:全面掌握,深刻
理解。熟練應(yīng)用。
要求掌握的技能是:SQL定義語句、嵌入式SQL語句的應(yīng)用。
要求熟練掌握的技能是:SQL查詢語句、視圖、SQL更新語句的應(yīng)用。
方法:多做題,多上機(jī)實踐。
考核知識點與考試要求
更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部
()歡迎”加入…歡迎”交流…止不住的驚喜等著你....
SQL數(shù)據(jù)庫的體系結(jié)構(gòu)也是三級結(jié)構(gòu),但術(shù)語與傳統(tǒng)關(guān)系模型術(shù)語不同,在SQL中,關(guān)系模式
稱為“基本表”,存儲模式稱為“存儲文件",子模式稱為"視圖",元組稱"行",屬性稱"列"。
SQL數(shù)據(jù)庫體系的結(jié)構(gòu)要點如下:更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂園俱樂部
()歡迎”加入…歡迎”交流…止不住的驚喜等著你....
(D一個SQL數(shù)據(jù)庫是表的匯集。
(2)一個SQL表由行集構(gòu)成,行是列的序列,每列對應(yīng)一個數(shù)據(jù)項。
(3)表或者是基本表,或者是視圖?;颈硎菍嶋H存儲在數(shù)據(jù)庫中的表,視圖由是由若干基本表
或其他視圖構(gòu)成的表的定義。
(4)一個基本表可以跨一個或多個存儲文件,一個存儲文件也可存放一個或多個基本表。存儲文
件與物理文件對應(yīng)。
(5)用戶可以用SQL語句對表進(jìn)行操作,包括視圖和基本表。
(6)SQL的用戶可以是應(yīng)用程序,也可以是終端用戶。
SQL由四部分組成:
(D數(shù)據(jù)定義:SQLDDLo定義SQL模式,基本表、視圖和索引。
(2)數(shù)據(jù)操縱:SQLDMLo包括數(shù)據(jù)查詢和數(shù)據(jù)更新(增、刪、改)。
(3)數(shù)據(jù)控制:包括對基本表和視圖的授權(quán)、完整性規(guī)則的描述,事務(wù)控制等。
(4)嵌入式SQL的使用規(guī)定。
(1)SQL具有十分靈活和強大的查詢功能。
(2)SQL不是一個應(yīng)用開發(fā)語言,它只提供對數(shù)據(jù)庫的操作功能,不能完成屏幕控制、菜單管
理、報表生成等功能。
(3)SQL是國際性標(biāo)準(zhǔn)語言,有利于各種數(shù)據(jù)庫之間交換數(shù)據(jù),有利于程序的移植,有利于實
現(xiàn)高度的數(shù)據(jù)獨立性,有利于實現(xiàn)標(biāo)準(zhǔn)化。
(4)SQL的詞匯不多,完成核心功能只用了9個英語動詞,它的語法結(jié)構(gòu)接近英語,因此容易
學(xué)習(xí)和使用。
SQL模式的創(chuàng)建可簡單理解為建立一個數(shù)據(jù)庫,定義一個存儲空間,其句法是:
CREATESCHEMA〈模式名>AUTHORIZATION〈用戶名〉
撤消SQL模式的句法為:
DROPSCHEMA〈模式名>[CASCADE|RESTRICT]
方括號中的選項參數(shù)CASCADE表示連鎖方式,執(zhí)行時將模式下所有基本表、視圖、索引等元素
全部撤消。RESTRICT表示約束式,執(zhí)行時必須在SQL模式中沒有任何下屬元素時方可撤消模式。
數(shù)值型:包括integer^smallint>real、doubleprecision、float(n),numeric(p,d)
字符串型:char(n)、varchar(n),前者是定長,后者為變長串
位串型:bit(n),bitvarying(n),同上。
時間型:date、time。
3.基本表的創(chuàng)建、修改和撤消
基本表的創(chuàng)建:(可理解為建立表結(jié)構(gòu))
GREATTABLESQL模式名.基本表名
(列名,類型,
完整性約束.??)
完整性約束包括主鍵子句(PRIMARYKEY)、檢查子句(CHECK)和外鍵子句(FOREIGNKEY)?
基本表結(jié)構(gòu)的修改
ALTERTABLE基本表名ADD/DROP(增加/刪除)列名類型名(增加時寫出)
刪除時有子句[CASCADE〔RESTRICT],前者為連鎖刪除,后者為約束刪除,即沒有對本列的任何
引用時才能刪除。
基本表的撤消
DROPTABLE基本表名[CASCADE|RESTRICT]
4.索引的創(chuàng)建和撤消
創(chuàng)建:CREATE[UNIQUE]INDEX索引名ON基本表名(列名表[ASC|DESfi])
撤消:DROPINDEX索引名
總結(jié):凡創(chuàng)建都用CREATE,刪除都用DROP,改變用ALTER,再跟類型和名字,附加子句很容
易了。
SELECT列名表(逗號隔開)FROM基本表或視圖序列WHERE條件表達(dá)式
在這里,重點要掌握條件表達(dá)式中各種運算符的應(yīng)用,如=,>,<,?等算術(shù)比較運算符、邏輯運
算符AND、OR,NOT、集合成員資格運算符:IN,NOTIN,以及嵌套的SELECT語句的用法要特
別注意理解。針對課本的例題和課后習(xí)題進(jìn)行掌握。
在查詢時,SELECT語句可以有多種寫法,如聯(lián)接查詢、嵌套查詢和使用存在量詞的嵌套查詢
等。最好都掌握,但是起碼應(yīng)能寫出一種正確的查詢語句。
SELECT列名表(逗號隔開)
FROM基本表或視圖序列
[WHERE條件表達(dá)式](此為和條件子句)
[GROUPBY列名序列](分組子句)
[HAVING組條件表達(dá)式](組條件子句)
[ORDERBY列名[ASC|DESC]..](排序子句)
這段關(guān)于完整句法的內(nèi)容能夠理解也就問題不大了。
這一段內(nèi)容主要是對SELECT語句進(jìn)一步使用進(jìn)行的深入學(xué)習(xí),領(lǐng)會下列各種限定的使用目的
和方法。
要求輸出表格中不出現(xiàn)重復(fù)元組,則在SELECT后加一DISTINCT
SELECT子句中允許出現(xiàn)加減乘除及列名,常數(shù)的算術(shù)表達(dá)式
WHERE子句中可以用BETWEEN...AND...來限定一個值的范圍
同一個基本表在SELECT語句中多次引用時可用AS來增加別名
WHERE子句中字符串匹配用LIKE和兩個通配符,%和下劃線.
查詢結(jié)果的結(jié)構(gòu)完全一致時可將兩個查詢進(jìn)行并(UNION)交(INTERSECT)差(EXCPT)操作
查詢空值操作不是用='null',而是用ISNULL來測試.
集合成員資格比較用IN/NOTIN,集合成員算術(shù)比較用元組0SOME/ALL
可以用子查詢結(jié)果取名(表名(列名序列))來作為導(dǎo)出表使用
基本表的自然聯(lián)接操作是用NATURALINNERJOIN來實現(xiàn)的。
1.數(shù)據(jù)插入:
INSERTINTO基本表名(列名表)
VALUES(元組值)
或
INSERTINTO基本表名(列名表)
SELECT查詢語句
其中元組值可以連續(xù)插入?用查詢語句可以按要求插入所需數(shù)據(jù)。
2.數(shù)據(jù)刪除:
DELETEFROM基本表名[WHERE條件表達(dá)式]
3.數(shù)據(jù)修改:
UPDATE基本表名
SET列名=值表達(dá)式,[列名=值表達(dá)式...]
[WHERE條件表達(dá)式]
1.視圖的創(chuàng)建和撤消
創(chuàng)建:CREATEVIEW視圖名(列名表)ASSELECT查詢語句
撤消:DROPVIEW視圖名
2.視圖的操作
查詢與關(guān)系中一致
更新與關(guān)系不同
如果視圖是從多個使用聯(lián)接操作導(dǎo)出的,不允許對此視圖更新
如果在導(dǎo)出視圖的過程中,使用了分組和聚合函數(shù),不允許對此視圖更新。
如果視圖是從單個關(guān)系使用選擇、投影操作導(dǎo)出的,并且包含了關(guān)系的主健或某個候選健,稱
此視圖為“行列子集視圖”,允許對此視圖更新。
CREATEVIEWSMAIL
ASSELECTStt,SNAME,AGE
FROMS
WHERESEX='M'
INSERTINTOS_MALE
VALUES('S28','WU',18)
與
INSERTINTOS
VALUES('S28','WU',18,'M')
相同
3.視圖的優(yōu)點
使用視圖的優(yōu)點:
視圖提供了邏輯數(shù)據(jù)的獨立性
簡化了用戶觀點
用戶只需關(guān)心視圖的內(nèi)容,而不必關(guān)心構(gòu)成視圖的若干關(guān)系的聯(lián)結(jié)、投影操作。
能夠?qū)?shù)據(jù)庫的訪問限制在一定范圍內(nèi),有利于數(shù)據(jù)安全保護(hù)功能。
可針對不同的用戶定義不同的視圖,在視圖種只出現(xiàn)用戶需要的數(shù)據(jù),系統(tǒng)提供視圖讓用戶使
用。
交互式
嵌入式
為什么要引入嵌入式SQL
SQL語言是非過程性語言
事務(wù)處理應(yīng)用需要高級語言
這兩種方式細(xì)節(jié)上有差別,在程序設(shè)計的環(huán)境下,SQL語句要做某些必要的擴(kuò)充。
2.嵌入式SQL的一般形式
為了區(qū)分SQL語句與主語言語句,需要:
前綴:EXECSQL
結(jié)束標(biāo)志:隨主語言的不同而不同
以C為主語言的嵌入式SQL語句的一般形式
EXECSQL<SQL語句》;
例:EXECSQLDROPTABLEStudent;
以COBOL作為主語言的嵌入式SQL語句的一般形式
EXECSQL<SQL語句>END-EXEC
例:EXECSQLDROPTABLEStudentEND-EXEC
預(yù)編譯
修改和擴(kuò)充主語言使之能處理SQL語句。
4.嵌入式SQL語句與主語言之間的通信
將SQL嵌入到高級語言中混合編程,程序中會含
有兩種不同計算模型的語句
SQL語句
描述性的面向集合的語句
負(fù)責(zé)操縱數(shù)據(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.共享變量
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 超市加工區(qū)安全制度
- 請?zhí)峁┮环輥砹蠙z驗獎罰制度
- 計算機(jī)教室管理人員崗位職責(zé)制度
- 行政事業(yè)單位職責(zé)分離制度
- 【疾控科普】尼帕病毒綜合防治知識
- 住院病歷質(zhì)量評分標(biāo)準(zhǔn)
- 用電安全與維護(hù)課件
- 養(yǎng)老機(jī)構(gòu)生活護(hù)理制度
- Unit 2 Go for it 知識清單 新教材外研版七年級英語下冊
- 2026青海海南州貴南縣自然資源和林業(yè)草原局招聘臨聘人員1人備考考試題庫附答案解析
- DB51-T 3313-2025 同步攤鋪超薄瀝青混凝土施工技術(shù)規(guī)程
- 2025及未來5年馬桶水箱組合項目投資價值分析報告
- 代建合同安全協(xié)議書
- 浙江省寧波市鄞州區(qū)2024-2025學(xué)年三年級上冊期末考試數(shù)學(xué)試卷(含答案)
- 2025-2030激光雷達(dá)固態(tài)化轉(zhuǎn)型節(jié)奏預(yù)判及技術(shù)成熟度評估
- 智能與AI安全培訓(xùn)課件
- 如何做部門管理和運營匯報
- 2025年發(fā)酵飲料行業(yè)研究報告及未來行業(yè)發(fā)展趨勢預(yù)測
- 2025-2030中國建筑行業(yè)專利技術(shù)布局與創(chuàng)新成果轉(zhuǎn)化研究
- 合同變更協(xié)議(收款賬戶變更)
- 2025年馬口鐵包裝容器行業(yè)當(dāng)前市場規(guī)模及未來五到十年發(fā)展趨勢報告
評論
0/150
提交評論