自學(xué)考試04735數(shù)據(jù)庫系統(tǒng)原理復(fù)習(xí)題資料全_第1頁
自學(xué)考試04735數(shù)據(jù)庫系統(tǒng)原理復(fù)習(xí)題資料全_第2頁
自學(xué)考試04735數(shù)據(jù)庫系統(tǒng)原理復(fù)習(xí)題資料全_第3頁
自學(xué)考試04735數(shù)據(jù)庫系統(tǒng)原理復(fù)習(xí)題資料全_第4頁
自學(xué)考試04735數(shù)據(jù)庫系統(tǒng)原理復(fù)習(xí)題資料全_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、完美WORD格式三、數(shù)據(jù)抽象的級別數(shù)據(jù)庫原理及應(yīng)用復(fù)習(xí)重點 第一章數(shù)據(jù)庫系統(tǒng)基本概念 數(shù)據(jù)管理技術(shù)的發(fā)展1 .分為四個階段:人工管理階段、文件系統(tǒng) 階段、數(shù)據(jù)庫階段和高級數(shù)據(jù)庫階段。2 .數(shù)據(jù)庫階段數(shù)據(jù)管理的特點:1)采用數(shù)據(jù)模型表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。2)有較高的數(shù)據(jù)獨立性。3)數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶 接口。4)提供四方面的數(shù)據(jù)控制功能:數(shù)據(jù)庫的 恢復(fù)、數(shù)據(jù)庫的并發(fā)控制、數(shù)據(jù)的完整 性、數(shù)據(jù)安全性。5)增加了系統(tǒng)的靈活性。3 .數(shù)據(jù)庫(DB):是長期存儲在計算機(jī)內(nèi)、 有組織的、統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合。4 .數(shù)據(jù)庫管理系統(tǒng)(DBMS:是位于用戶與 操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,它為

2、用戶或應(yīng)用程序提供訪問 DB的方法,包 括DB的建立、查詢、更新及各種數(shù)據(jù)控 制。5 .數(shù)據(jù)庫系統(tǒng)(DBS:是實現(xiàn)有組織地、動 態(tài)地存儲大量關(guān)聯(lián)數(shù)據(jù)、方便多用戶訪問 的計算機(jī)硬件、軟件和數(shù)據(jù)資源組成的系 統(tǒng),即它是采用數(shù)據(jù)庫技術(shù)的計算機(jī)系 統(tǒng)。數(shù)據(jù)描述1 .分為三個階段:概念設(shè)計、邏輯設(shè)計和物 理設(shè)計。2 .概念設(shè)計中的術(shù)語:1 )實體:客觀存在,可以相互區(qū)別的 事物稱為實體。2 )實體集:性質(zhì)相同的同類實體的集 合。3 )屬性:實體有很多特性,每一個特 性稱為屬性。4 )實體標(biāo)識符(關(guān)鍵碼或鍵):能惟一 標(biāo)識實體的屬性或?qū)傩约R陨细拍罹蓄愋秃椭抵帧? .邏輯設(shè)計中的術(shù)語:1)字段(數(shù)據(jù)

3、項):標(biāo)記實體屬性的命 名單位稱為字段或數(shù)據(jù)項。2)記錄:字段的有序集合。3)文件:同一類記錄的集合。4)關(guān)鍵碼:能惟一標(biāo)識文件中每個記 錄的字段或字段集。以上概念均有類型和值之分。6 .概念設(shè)計和邏輯設(shè)計中術(shù)語的對應(yīng)關(guān)系:概念設(shè)計邏輯設(shè)計實體一記錄屬性一字段(數(shù)據(jù)項)實體集一文件實體標(biāo)識符一 關(guān)鍵碼7 .實體之間聯(lián)系的元數(shù):與一個聯(lián)系有關(guān)的 實體集個數(shù)。常用二元聯(lián)系。二元聯(lián)系的 類型有三種:一對一聯(lián)系、一對多聯(lián)系、 多對多聯(lián)系。8 . 一對一聯(lián)系:如果實體集 E1中每個實體 至多和實體集E2中的一個實體有聯(lián)系, 反之亦然,那么實體集E1和E2的聯(lián)系稱 為“一對一聯(lián)系”,記為“ 1: 1”。9

4、 . 一對多聯(lián)系:如果實體集 E1中每個實體 與實體集E2中任意個(零個或多個)實 體間有聯(lián)系,而E2中每個實體至多和 E1 中一個實體有聯(lián)系,那么稱E1對E2的聯(lián) 系是“一對多聯(lián)系”,記為“1: N'。10 多對多聯(lián)系:如果實體集 E1中每個實體 可以與實體集E2中任意個(零個或多個) 實體間有聯(lián)系,反之亦然,那么稱 E1和E2的聯(lián)系是“多對多聯(lián)系”,記為“M N”1 .數(shù)據(jù)模型:描述數(shù)據(jù)庫的結(jié)構(gòu)和定義,對 現(xiàn)實世界的數(shù)據(jù)進(jìn)行抽象。2 .從現(xiàn)實世界的信息到數(shù)據(jù)庫存儲的數(shù)據(jù) 以及用戶使用的數(shù)據(jù)是一個逐步抽象過 程,根據(jù)數(shù)據(jù)抽象的級別定義了四種模 型:概念模型、邏輯模型、外部模型和內(nèi) 部

5、模型。3 .概念模型:表達(dá)用戶需求觀點的數(shù)據(jù)全局 邏輯結(jié)構(gòu)的模型。4 .邏輯模型:表達(dá)計算機(jī)實現(xiàn)觀點的DB全局邏輯結(jié)構(gòu)的模型。5 .外部模型:表達(dá)用戶使用觀點的DB局部邏輯結(jié)構(gòu)的模型。6 .內(nèi)部模型:表達(dá)DB物理結(jié)構(gòu)的模型。7 .數(shù)據(jù)抽象的過程、即數(shù)據(jù)庫設(shè)計的過程具 體步驟:1)根據(jù)用戶需求,設(shè)計數(shù)據(jù)庫的概念專業(yè)整理知識分享模型;2)根據(jù)轉(zhuǎn)換規(guī)則,把概念模型轉(zhuǎn)換成 數(shù)據(jù)庫的邏輯模型;3)根據(jù)用戶的業(yè)務(wù)特點,設(shè)計不同的 外部模型,給程序員使用;4)數(shù)據(jù)庫實現(xiàn)時,要根據(jù)邏輯模型設(shè) 計其內(nèi)部模型。通常分為概念設(shè)計、邏輯設(shè)計(2和3步)和物理設(shè)計三個階段。8 .常用的概念模型是實體聯(lián)系(ER)模型,

6、ER模型主要用ER圖來表示。9 .邏輯模型的分類:層次模型、網(wǎng)狀模型、 關(guān)系模型等。10 .層次模型:用樹型(層次)結(jié)構(gòu)表示實 體及實體間聯(lián)系的數(shù)據(jù)模型。11 . 1969年,美國 舊M公司的IMS系統(tǒng)是典 型的層次模型系統(tǒng)。12 .網(wǎng)狀模型:用有向圖結(jié)構(gòu)表示實體及實 體間聯(lián)系的數(shù)據(jù)模型。13 . 1969年,CODASYL織提出DBTG艮告中 的數(shù)據(jù)模型是網(wǎng)狀模型的主要代表。14 .關(guān)系模型:是由若干個關(guān)系模式組成的 集合。關(guān)系模式即記錄類型,它的實例稱 為關(guān)系,每個關(guān)系實際上是一張二維表 格。15 . 1970年,美國 舊M公司的 E.F.Codd連 續(xù)發(fā)表論文,提出關(guān)系模型,奠定了關(guān)系

7、數(shù)據(jù)庫的理論基礎(chǔ)。關(guān)系數(shù)據(jù)庫是目前的 主流數(shù)據(jù)庫。16 .外部模型中的模式稱為視圖。17 .三級模式:從用戶(或應(yīng)用程序)到數(shù)據(jù)庫之間,DB 的數(shù)據(jù)結(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ù)庫在物理存儲方面的 描述。注意:外模式是邏輯模式的子集。18 .兩級映像:1)外模式/邏輯模式映像:存在于外模式 和邏輯模式之間,用于定義外模式和邏輯模式之間的對應(yīng)性。2)邏輯模式/內(nèi)模式映像:存在于邏輯模 式和內(nèi)模式之間,用于定義邏輯模式和內(nèi) 模式之間的對應(yīng)性

8、。19 .數(shù)據(jù)庫系統(tǒng)的三級模式、兩級映像結(jié)構(gòu) 使數(shù)據(jù)庫系統(tǒng)達(dá)到了高度的數(shù)據(jù)獨立性。20 .數(shù)據(jù)獨立性:是指應(yīng)用程序與數(shù)據(jù)庫的 數(shù)據(jù)結(jié)構(gòu)之間相互獨立,在修改數(shù)據(jù)結(jié)構(gòu) 時,盡可能不修改應(yīng)用程序。分為邏輯數(shù) 據(jù)獨立性和物理數(shù)據(jù)獨立性。21 .邏輯數(shù)據(jù)獨立性:如果數(shù)據(jù)庫的邏輯模 式要修改,那么只要對外模式 /邏輯模式 映像作相應(yīng)的修改,可以使外模式和應(yīng)用 程序盡可能保持不變。這樣就認(rèn)為數(shù)據(jù)庫 達(dá)到了邏輯數(shù)據(jù)獨立性。22 .物理數(shù)據(jù)獨立性:如果數(shù)據(jù)庫的內(nèi)模式 要修改,即數(shù)據(jù)庫的物理結(jié)構(gòu)有所變化, 那么只要對邏輯模式/內(nèi)模式映像作相應(yīng) 的修改,可以使邏輯模式盡可能保持不 變。也就是對內(nèi)模式的修改盡量不影響

9、邏 輯模式,當(dāng)然對外模式和應(yīng)用程序的影響 更小,這樣就認(rèn)為數(shù)據(jù)庫達(dá)到了物理數(shù)據(jù) 獨立性。四、數(shù)據(jù)庫管理系統(tǒng)(DBMS1. DBMS勺主要功能:數(shù)據(jù)庫的定義功能(DBMS 提供DDL1義數(shù)據(jù)庫的三級模式、兩級映 像等)、數(shù)據(jù)庫的操縱功能(DBMSg供DML 實現(xiàn)對數(shù)據(jù)的操作,基本的數(shù)據(jù)操作有檢 索和更新兩類)、數(shù)據(jù)庫的保護(hù)功能、數(shù) 據(jù)庫的維護(hù)功能、數(shù)據(jù)字典。五、數(shù)據(jù)庫系統(tǒng)(DBS1 . DBS)勺組成:是數(shù)據(jù)庫、硬件、軟件和數(shù) 據(jù)庫管理員的集合體。2 .軟件包括 DBMS OS各種主語言和應(yīng)用 開發(fā)支撐軟件等程序。其中,DBM曜DBS 的核心軟件,要在OS支持下才能工作。3 .數(shù)據(jù)庫管理員(DB

10、A:是控制數(shù)據(jù)整體 結(jié)構(gòu)的一組人員,負(fù)責(zé) DBS勺正常運行, 承擔(dān)創(chuàng)建、監(jiān)控和維護(hù)數(shù)據(jù)庫結(jié)構(gòu)的責(zé) 任。第二章數(shù)據(jù)庫設(shè)計和ER模型 一、數(shù)據(jù)庫系統(tǒng)生存期1 .數(shù)據(jù)庫系統(tǒng)生存期:數(shù)據(jù)庫應(yīng)用系統(tǒng)從開始規(guī) 劃、設(shè)計、實現(xiàn)、維護(hù)到最后被新的系統(tǒng)取代而停 止使用的整個期間。2 .數(shù)據(jù)庫系統(tǒng)生存期分七個階段:規(guī)劃、需求分 析、概念設(shè)計、邏輯設(shè)計、物理設(shè)計、實現(xiàn)、運行 維護(hù)。3 .規(guī)劃階段三個步驟:系統(tǒng)調(diào)查、可行性分析、 確定數(shù)據(jù)庫系統(tǒng)總目標(biāo)。4 .需求分析階段:主要任務(wù)是系統(tǒng)分析員和用戶 雙方共同收集數(shù)據(jù)庫系統(tǒng)所需要的信息內(nèi)容和用 戶對處理的需求,并以需求說明書的形式確定下 來。5 .概念設(shè)計階段:產(chǎn)生反映

11、用戶單位信息需求的 概念模型。與硬件和 DBMS6關(guān)。6 .邏輯設(shè)計階段:將概念模型轉(zhuǎn)換成DBMS處理的邏輯模型。外模型也將在此階段完成。7 .物理設(shè)計階段:對于給定的基本數(shù)據(jù)模型選取 一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)的過程。數(shù)據(jù)庫的 物理結(jié)構(gòu)主要指數(shù)據(jù)庫的存儲記錄格式、存儲記錄 安排和存取方法。8 .數(shù)據(jù)庫的實現(xiàn):包括定義數(shù)據(jù)庫結(jié)構(gòu)、數(shù)據(jù)裝 載、編制與調(diào)試應(yīng)用程序、數(shù)據(jù)庫試運行。二、ER模型的基本概念ER模型的基本元素是:實 體、聯(lián)系和屬性。2 .實體:是一個數(shù)據(jù)對象,指應(yīng)用中可以區(qū)別的 客觀存在的事物。實體集:是指同一類實體構(gòu)成的集合。實體類型:是對實體集中實體的定義。一般將實體、實體集、實體

12、類型統(tǒng)稱為實體。3 .聯(lián)系:表示一個或多個實體之間的關(guān)聯(lián)關(guān)系。聯(lián)系集:是指同一類聯(lián)系構(gòu)成的集合。 聯(lián)系類型:是對聯(lián)系集中聯(lián)系的定義。一般將聯(lián)系、聯(lián)系集、聯(lián)系類型統(tǒng)稱為聯(lián)系。4 .同一個實體集內(nèi)部實體之間的聯(lián)系,稱為一元 聯(lián)系;兩個不同實體集實體之間的聯(lián)系,稱為 二元聯(lián)系,以此類推。5 .屬性:實體的某一特性稱為屬性。在一個實體 中,能夠惟一標(biāo)識實體的屬性或?qū)傩约Q為實 體標(biāo)識符。6 . ER模型中,方框表示實體、菱形框表示聯(lián)系、 橢圓形框表示屬性、實體與聯(lián)系、實體與其屬 性、聯(lián)系與其屬性之間用直線連接。實體標(biāo)識 符下畫橫線。聯(lián)系的類型要在直線上標(biāo)注。注 意:聯(lián)系也有可能存在屬性,但聯(lián)系本身沒有

13、 標(biāo)識符。例:假設(shè)一個學(xué)生可選多門課程,而一門課程 又有多個學(xué)生選修,一個教師可講多門課 程,一門課程至多只有一個教師講授。ER圖如下:7 .概念設(shè)計三個步驟:設(shè)計局部ER模型、設(shè)計全局ER模型和全局ER模型的優(yōu)化。三、關(guān)系模型的基本概念1 .關(guān)系模型的定義:用二維表格表示實體集,用 關(guān)鍵碼表示實體之間聯(lián)系的數(shù)據(jù)模型。2 .在關(guān)系模型中,字段稱為屬性,字段值稱為屬 性值,記錄類型稱為關(guān)系模式。記錄稱為元組,元 組的集合稱為關(guān)系或?qū)嵗S袝r習(xí)慣稱關(guān)系為表或 表格,元組為行,屬性為列。關(guān)系中屬性個數(shù)稱為 元數(shù),元組個數(shù)稱為基數(shù)。3 .關(guān)鍵碼(簡稱鍵):由一個或多個屬性組成。4 .超鍵:在關(guān)系中能惟

14、一標(biāo)識元組的屬性集稱為 關(guān)系模式的超鍵。5 .候選鍵:不含有多余屬性的超鍵。6 .主鍵:用戶選作元組標(biāo)識的候選鍵。一般如不加說明,鍵是指主鍵。7 .外鍵:如果模式 R中屬性集K是其他模式的主 鍵,那么K在模式R中稱為外鍵。8 .值域:關(guān)系中每一個屬性都有一個取值范圍, 稱為屬性的值域。每一個屬性對應(yīng)一個值域,不同 的屬性可對應(yīng)于同一值域。9 .關(guān)系的定義:關(guān)系是一個屬性數(shù)目相同的元組 的集合。10 .關(guān)系的性質(zhì):關(guān)系是一種規(guī)范化了的二維表格。1)關(guān)系中每一個屬性值都是不可分解的;2)關(guān)系中不允許出現(xiàn)重復(fù)元組;3)關(guān)系沒有行序;4)元組中的屬性在理論上也是無序的,但使 用時按習(xí)慣考慮列的順序。1

15、1 .關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)與更新操作必須遵循三類 完整性規(guī)則:實體完整性規(guī)則、參照完整性規(guī)則、 用戶定義的完整性規(guī)則。12 .實體完整性規(guī)則:要求關(guān)系中元組在組成主鍵 的屬性上不能有空值。13 .參照完整性規(guī)則:如果屬性集K是關(guān)系模式R1 的主鍵,K也是關(guān)系模式 R2的外鍵,那么在 R2關(guān) 系中,K的取值只允許兩種可能,或者為空值,或 者等于R1關(guān)系中某個主鍵值。這條規(guī)則的實質(zhì)是“不允許引用不存在的實體”。其中,R1稱為參照 關(guān)系;R2稱為依賴關(guān)系。注意:這條規(guī)則在具體使用時,有三點變通:1)外鍵和相應(yīng)的主鍵可以不同名,只要定義 在相同值域上即可;2) R1和R2可以是同一個關(guān)系模式,此時表 示

16、了同一個關(guān)系中不同元組之間的聯(lián)系;3)外鍵值是否允許空,應(yīng)視具體問題而定。14.用戶定義的完整性規(guī)則:用戶針對具體的數(shù)據(jù) 約束,設(shè)置的完整性規(guī)則,由系統(tǒng)來檢驗實施。四、ER模型到關(guān)系模型的轉(zhuǎn)換1 . ER圖轉(zhuǎn)換成關(guān)系模式集的算法:1)實體類型的轉(zhuǎn)換:將每個實體類型轉(zhuǎn)換成 一個關(guān)系模式,實體的屬性即為關(guān)系模式的屬性, 實體標(biāo)識符即為關(guān)系模式的鍵。2)聯(lián)系類型的轉(zhuǎn)換:主要掌握二元聯(lián)系類型 的轉(zhuǎn)換。a) 若實體間聯(lián)系是1:1,可以在兩個 實體類型轉(zhuǎn)換成的關(guān)系模式中任 意一個關(guān)系模式的屬性中加入另 一個關(guān)系模式的鍵(作為外鍵)和 聯(lián)系類型的屬性。b) 若實體間聯(lián)系是1 : N,則在N端實 體類型轉(zhuǎn)換成

17、的關(guān)系模式中加入1端實體類型的鍵(作為外鍵)和聯(lián) 系類型的屬性。c) 若實體間聯(lián)系是 M: N,則將聯(lián)系類 型也轉(zhuǎn)換成關(guān)系模式,其屬性為兩 端實體類型的鍵(作為外鍵)加上 聯(lián)系類型的屬性,而鍵為兩端實體 鍵的組合。例:下面是教學(xué)管理的一個可能的ER圖。圖中,有三個實體類型:系、教師和課程;有四個聯(lián)系類 型:主管、聘用、開設(shè)和任教。根據(jù)轉(zhuǎn)換算法,把 該圖轉(zhuǎn)換成關(guān)系模式集的步驟如下:第一步:把三個實體類型轉(zhuǎn)換成三個關(guān)系模式(注 意關(guān)系模式的表示方法):系(系編號,系名,電話)教師(教工號,姓名,性別,職稱) 課程(課程號,課程名,學(xué)分)第二步:對于1: 1聯(lián)系,可以在“系”模式中加 入教工號(教工

18、號為外鍵)。對于1: N聯(lián)系“聘用”,可以在“教師”模式中加 入系編號和聘期兩個屬性(系編號為外鍵); 對于1: N聯(lián)系“開設(shè)”,可以在“課程”模式中加 入系編號(系編號為外鍵)。這樣第一步得到的三 個模式改變成如下形式(注意:外鍵通常使用波浪 線表不):系(系編號,系名,電話,主管人的教 工號)教師(教工號,姓名,性別,職稱,系- 啰芝,聘期)課程(課程號,課程名,學(xué)分,系編號第三步:對于Ml: N聯(lián)系“任教”,則生成一個新的 關(guān)系模式:任教(教工號,課程號,教材)這樣,轉(zhuǎn)換成的四個關(guān)系模式如下:系(系編號,系名,電話,主管人的教 工號)教師(教工號,姓名,性別,職稱,系- 期號,聘期)課程

19、(課程號,課程名,學(xué)分,系編號)一 任教(教工號,課程號,教材)2 .采用ER模型的邏輯設(shè)計步驟1)導(dǎo)出初始關(guān)系模式集:把概念設(shè)計的結(jié)果(即全局ER模型)轉(zhuǎn)換成初始關(guān)系模式集。2)規(guī)范化處理3)模式評價4)模式修正5)設(shè)計外模式第三章 關(guān)系模式設(shè)計理論一、關(guān)系模式的設(shè)計準(zhǔn)則1 .數(shù)據(jù)冗余:同一個數(shù)據(jù)在系統(tǒng)中多次重復(fù)出現(xiàn)。2 .關(guān)系模式設(shè)計不當(dāng)引起的異常問題:數(shù)據(jù)冗余、 操作異常(包括修改異常、插入異常和刪除異常) 3.關(guān)系模式的非形式化設(shè)計準(zhǔn)則1)關(guān)系模式的設(shè)計應(yīng)盡可能只包含有直接聯(lián) 系的屬性,不要包含有間接聯(lián)系的屬性。也就是, 每個關(guān)系模式應(yīng)只對應(yīng)于一個實體類型或一個聯(lián) 系類型。2)關(guān)系模式

20、的設(shè)計應(yīng)盡可能使得相應(yīng)關(guān)系中 不出現(xiàn)插入異常、刪除和修改等操作異?,F(xiàn)象。3)關(guān)系模式的設(shè)計應(yīng)盡可能使得相應(yīng)關(guān)系中 避免放置經(jīng)常為空值的屬性。4)關(guān)系模式的設(shè)計應(yīng)盡可能使得關(guān)系的等值 連接在主鍵和外鍵的屬性上進(jìn)行,并且保證以后不 會生成額外的元組。4.習(xí)慣使用的一些符號:1)英文字母表首部的大寫字母 “A, B, C,” 表示單個的屬性。2)英文字母表尾部的大寫字母 “,U, V, W X, Y, Z”表示屬性集。3)大寫字母R表示關(guān)系模式,小寫字母 r表 下其關(guān)系。4)關(guān)系模式的簡化表示方法:R(A, B, C,)或 R (ABC- )5)屬性集X和丫的并集簡寫為XY二、函數(shù)依賴1.函數(shù)依賴(

21、FD)的定義:設(shè)有關(guān)系模式 R (U), X和丫是屬性集U的子集,函數(shù)依賴是形成 X丫的 一個命題,只要r是R的當(dāng)前關(guān)系,對r中任意兩 個元組t和s,都有tX=sX蘊涵tY=sY,那 么稱FD X-Y在關(guān)系模式R (U)中成立。說明:1 ) tX表示元組t在屬卜iE集X上的值, 其余類同。2) Xf 丫讀作“X函數(shù)決定Y”或“丫函數(shù)依束于X”。3) FD是對關(guān)系模式R的一切可能的關(guān) 系r定義的。對于當(dāng)前關(guān)系r的任意兩個元組,如 果X值相同,則要求Y值也相同,即有一個 X值就 有一個Y值與之對應(yīng),或者說 Y值由X值決定。3. FD的邏輯蘊涵:設(shè)F是在關(guān)系模式 R上成立的 函數(shù)依賴的集合,X- 丫

22、是一個函數(shù)依賴。如果對于 R的每個滿足F的關(guān)系r也滿足X- Y,那么稱F邏 輯蘊涵X-Y,記為F|=X-丫。4. 設(shè)F是函數(shù)依賴集,被 F邏輯蘊涵的函數(shù)依賴 全體構(gòu)成的集合,稱為函數(shù)依賴集 F的閉包,記為 F+o 即 F+=XfY | F|=X ' Y 5. FD的推理規(guī)則(Armstrong公理)設(shè)U是關(guān)系模式R的屬性集,F(xiàn)是R上成立的只涉 及到U中屬性的函數(shù)依賴集。7 .對于FD XfY,如果YSX,那么稱X- Y是一個 “平凡的FD',否則稱為“非平凡的 FD'。通常研 究非平凡FQ例:X-X, X (j) , ()-(), XYX都是平凡函數(shù)依 賴;X-XY則是

23、非平凡函數(shù)依賴。9 .屬性集的閉包10 .設(shè)F是屬性集U上的FD集,X上U的子集,那 么(相對于)屬性集 X的閉包用X+表示,它是一個 從F集使用FD推理規(guī)則推出的所有滿足 XA的屬 性A的集合:X+=屬性A | F|=X -A 11. X-Y能用FD推理規(guī)則推出的充分必要條件是 YCX + ,從而避開求F+,使問題得到簡化。13.如果關(guān)系模式R (U)上的兩個函數(shù)依賴集 F和 G,有F+=G+,則稱F和G是等價的函數(shù)依賴集。三、關(guān)系模式的分解特性示。四、范式1 .范式:衡量關(guān)系模式好壞的標(biāo)準(zhǔn)。2 .數(shù)據(jù)庫設(shè)計中最常用的是 3NF和BCNF3 .第一范式(1NF):如果關(guān)系模式 R的每個關(guān)系r

24、 的屬性值都是不可分的原子值,那么稱R是第一范式的模式。滿足1NF的關(guān)系稱為規(guī)范化的關(guān)系,否 則稱為非規(guī)范化的關(guān)系。1NF是關(guān)系模式應(yīng)具備的 最起碼的條件。4 .局部依賴和完全依賴:對于 FD W-A,如果存 在XUWfX- A成立,那么稱 WA是局部依賴(A 局部依賴于 W;否則稱 WA是完全依賴。5 .主屬性和非主屬性:如果 A是關(guān)系模式R的候 選鍵中的屬性,那么稱 A是R的主屬性;否則稱 A 是R的非主屬性。6 .第二范式(2NF):如果關(guān)系模式是1NF,且每個 非主屬性完全函數(shù)依賴于候選鍵,那么稱 R是第二 范式(2NF)的模式。7 .分解成2NF模式集的算法:設(shè)關(guān)系模式R (U),主

25、鍵是 W R上還存在FDX- Z, 并且Z是非主屬性和Xny那么Wz就是一個局部依賴。此時應(yīng)把R分解成兩個模式:R1 (XZ),主鍵是X;R2 (Y),其中Y=U-Z,主鍵仍是 W外鍵是X (參照 R1)o如果R1和R2還不是2NF,則重復(fù)上述過程,一直 到數(shù)據(jù)庫模式中的每一個關(guān)系模式都是 2NF為止。8 .如果X- Y, Y- A,且Yf X和 福Y,/B么稱 XfA是傳遞依賴(A傳遞依賴于X)。9 .第三范式(3NF):如果關(guān)系模式 R是2NF,且每 個非主屬性都不傳遞依賴于 R的候選鍵,那么稱 R 是第三范式(3NF)的模式。10 .分解成3NF模式集的算法:設(shè)關(guān)系模式R (U),主鍵是

26、 W R上還存在FD X-Zo并且Z是非主屬性,ZH, X不是候選鍵,這樣 WZ就是一個傳遞依賴。此時應(yīng)把R分解成兩個模 式:R1 (XZ),主鍵是X;R2 (Y),其中Y=U-Z,主鍵仍是 W外鍵是X (參照R1)。如果R1和R2還不是3NF,則重復(fù)上述過程,一直 到數(shù)據(jù)庫模式中的每一個關(guān)系模式都是 3NF為止。11 .如果R是3NF模式,那么 R也是2NF模式。如 果R是2NF模式,那么R也是1NF模式。12 . BC范式(BCNF:如果關(guān)系模式 R是1NF,且 每個屬性都不傳遞依賴于 R的候選鍵,那么稱R是 BCNF勺模式。13 .如果R是BCN展式,那么 R也是3NF模式。14 .分解

27、成BCNF模式集的算法能保持無損分解,但不一定能保持FD集。而分解成3NF模式集的算 法既能保持無損分解,又能保持 FD集。15 .關(guān)系模式由1NF分解為2NF,消除了非主屬性 對鍵的局部函數(shù)依賴;由 2NF分解為3NF,消除了 非主屬性對鍵的傳遞函數(shù)依賴;而 BCNF則消除了 每一屬性對鍵的傳遞函數(shù)依賴。16 .關(guān)系模式設(shè)計理論主要用于數(shù)據(jù)庫的邏輯設(shè)計 過程中。第四章關(guān)系運算要求、目標(biāo):一、簡介1 .關(guān)系模型的三個組成部分:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操縱和數(shù)據(jù)完整性規(guī)則。2 .數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)庫中全部數(shù)據(jù)及其相互聯(lián)系都 被組織成“關(guān)系”(二維表格)的形式。關(guān)系模型 基本的數(shù)據(jù)結(jié)構(gòu)是關(guān)系。3 .數(shù)據(jù)操縱:關(guān)

28、系模型提供一組完備的高級關(guān)系 運算,以支持對數(shù)據(jù)庫的各種操作。關(guān)系運算分成 關(guān)系代數(shù)和關(guān)系演算兩類。4 .數(shù)據(jù)完整性規(guī)則:數(shù)據(jù)庫中數(shù)據(jù)必須滿足實體 完整性、參照完整性和用戶定義的完整性等三類完 整性規(guī)則。5 .關(guān)系數(shù)據(jù)庫的數(shù)據(jù)操縱語言(DML的語句分成 查詢語句和更新語句兩大類。查詢語句用于描述用 戶的各種檢索要求;更新語句用于描述插入、刪除、 修改等操作。前者是基礎(chǔ)。6 .關(guān)系查詢語言分兩類:關(guān)系代數(shù)語言(查詢操作以集合操作為基礎(chǔ))和關(guān)系演算語言(查詢操作 以謂詞演算為基礎(chǔ))S答案:Rg S2=110 .自然連接:公共屬性只出現(xiàn)一次的等值(公共 屬性值全部相等)連接。記為:R» S

29、一般自然連接使用在 R和S有公共屬性的情況中。如果兩個關(guān)系沒有公共屬性,那么其自然連接就轉(zhuǎn) 化為笛卡兒積操作。12 .關(guān)系代數(shù)表達(dá)式:由五個基本操作經(jīng)過有限次 復(fù)合的式子稱為代數(shù)表達(dá)式。這種表達(dá)式的運算結(jié) 果仍是一個關(guān)系??梢杂藐P(guān)系代數(shù)表達(dá)式表示各種 數(shù)據(jù)查詢操作。例:教學(xué)數(shù)據(jù)庫中的四個關(guān)系如下:教師關(guān)系 T (T#, TNAME TITLE)課程關(guān)系 C (C#, CNAMET#)學(xué)生關(guān)系 S (S#, SNAMEAGE SEX 選課關(guān)系 SC (S#, C#, SCORE使用關(guān)系代數(shù)表達(dá)式表達(dá)下列每個查詢語句。1)檢索學(xué)習(xí)課程號為 C2課程的學(xué)生學(xué)號與 成績。兀 S#, SCORE( C

30、C#= ' C2 ' (SC)或 兀 1 , 3 ( (T 2=8 (SC)2)檢索學(xué)習(xí)課程號為 C2課程的學(xué)生學(xué)號和姓 名。冗 S#, SNAME ( C C#= ' C2,(S>o SC)3)檢索至少選修LIU老師所授課程中一門課 程的學(xué)生學(xué)號與姓名。九 S#, SNAME( (T TNAME = LIU ' (SSCo 8 T)4)檢索選修課程號為C2或C4課程的學(xué)生學(xué)號。正 S# ( 6 C#= ' C2 ' V C#= ' C4 '( SC)5)檢索至少選修課程號為C2和C4課程的學(xué)生學(xué)號。兀 1 ( CT 1=4

31、 八 2= 'C2 '八 5= 'C4 '(SC* SQ )6)檢索不學(xué)C2課程的學(xué)生姓名與年齡。冗 SNAME AGE ( S) -冗 SNAME AGE ( 6 C#= ' C2 ' (Sx SC)7)檢索學(xué)習(xí)全部課程的學(xué)生姓名。冗 SNAME (S8 (無 S#. C# (SC) + 無 C# (C)8)檢索所學(xué)課程包含學(xué)號為S3學(xué)生所學(xué)課程 的學(xué)生學(xué)號。正 S# C# (SQ + 冗 C# ( 6 S#= ' S3 '(SC)總結(jié):查詢語句的關(guān)系代數(shù)表達(dá)式的一般形式是:無(b (RXS)或無( b (R8S) 即首先把查詢

32、涉及到的關(guān)系取來,執(zhí)行笛卡兒 積或自然連接操作得到一張大的表格,然后對大表 格執(zhí)行水平分割(選擇操作)和垂直分割(投影操 作)。但這種形式不適用于否定或全部值的查詢。這時要 用差或除法操作。13 .外連接:如果R和S做自然連接時,把原該舍 棄的元組也保留在新關(guān)系中,同時在這些元組新增 加的屬性上填上空值(Null ),這種操作稱為“外 連接”操作。14 .左外連接:如果 R和S做自然連接時,只把 R 中原該舍棄的元組放到新關(guān)系中,那么這種操作稱 為“左外連接”操作。15 .右外連接:如果 R和S做自然連接時,只把 S 中原該舍棄的元組放到新關(guān)系中,那么這種操作稱 為“右外連接”操作。16 .外

33、部并:兩個關(guān)系 R和S做并操作時,如果它 們的關(guān)系模式不同,構(gòu)成的新關(guān)系的屬性由R和S的所有屬性組成(公共屬性只取一次),新關(guān)系的元組由屬于R或?qū)儆赟的元組構(gòu)成,同時元組在新 增加的屬性上填上空值,那么這種操作稱為“外部 并”操作。三、關(guān)系演算關(guān)系演算又可分為元組關(guān)系演算和域關(guān)系演 算,前者以元組為變量,后者以屬性(域)為變量。 四、關(guān)系代數(shù)表達(dá)式的優(yōu)化1 .目的:提高系統(tǒng)效率。2 .三條啟發(fā)式規(guī)則:1)盡可能早地執(zhí)行選擇操作;2)盡可能早地執(zhí)行投影操作;3)避免直接做笛卡兒積,把笛卡兒積操作之 前和之后的一連串選擇和投影合并起來 一起做。第五章SQL語言一、SQL簡介1. SQL結(jié)構(gòu)化查詢語

34、言,關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。2. SQL據(jù)庫的體系結(jié)構(gòu)SQL數(shù)據(jù)庫的體系結(jié)構(gòu)基本上也是三級結(jié)構(gòu), 但術(shù)語與傳統(tǒng)的關(guān)系模型術(shù)語不同。在SQL中,關(guān)系模式稱為“基本表”,存儲模式稱為“存儲文件”, 子模式稱為“視圖”,元組稱為“行”,屬性稱為“列”。SQL數(shù)據(jù)庫的體系結(jié)構(gòu)要點:1) 一個SQL模式是表和約束的集合。2) 一個表由行集構(gòu)成,一行是列的序列,每 列對應(yīng)一個數(shù)據(jù)項。3)表有三種類型:基本表、視圖和導(dǎo)出表?;颈恚簩嶋H存儲在數(shù)據(jù)庫中的表。視圖:由若干基本表或其他視圖構(gòu)成的表的定義。導(dǎo)出表:執(zhí)行了查詢時產(chǎn)生的表。4) 一個基本表可以跨一個或多個存儲文件, 一個存儲文件也可以存放一個或多個基本表

35、。每個 存儲文件與外部存儲器上一個物理文件對應(yīng)。5)用戶可以用SQL語句對基本表和視圖進(jìn)行 查詢等操作。在用戶看來,兩者一樣,都是表。6) SQL語句可嵌在C FORTRA簿主語言的 程序中使用,也可在交互環(huán)境下供終端用戶使用。3. SQL的組成核心SQ住要有四個部分:1)數(shù)據(jù)定義語言,即 DDL,用于定義SQL模 式、基本表、視圖、索引等結(jié)構(gòu)。2)數(shù)據(jù)操縱語言,即 SQL DML數(shù)據(jù)操縱分 成數(shù)據(jù)查詢和數(shù)據(jù)更新兩類。而數(shù)據(jù)更新又分成插 入、刪除和修改三種操作。3)嵌入式SQL語言的使用規(guī)定4)數(shù)據(jù)控制語言,即 SQL DCL這一部分包 括對基本表和視圖的授權(quán)、完整性規(guī)則的描述、事 務(wù)控制等內(nèi)

36、容。4. SQL的特點1) SQL具有十分靈活和強(qiáng)大的查詢功能。2) SQL不是一個應(yīng)用開發(fā)語言,它只提供對 數(shù)據(jù)庫的操作功能。但 SQL既可作為交互式語言獨 立使用,也可作為子語言嵌入在主語言中使用,成 為應(yīng)用開發(fā)語言的一部分。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的數(shù)據(jù)定義1 . SQL模式的創(chuàng)建在SQL中,一個SQ蟆式定義為基本表的集合。 一個SQL模式由模式名和模式擁有者的用戶名或賬 號來確定,并包含模式中每一

37、個元素(基本表、視圖、索引等)的定義。創(chuàng)建 SQL模式,就是定義了 一個存儲空間。創(chuàng)建模式語法:CREATE SCHEMA 梗式名 > AUTHORIZATION<用戶名>2 . SQL>式的撤銷語法:DROP SCHEMA 模式名 > CASCADE RESTRICT說明:CASCADE級聯(lián)式)方式:執(zhí)行 DRO需句時, 把SQL模式及其下屬的基本表、視圖、索引等所有 元素全部撤銷。RESTRICT (約束式)方式:只有當(dāng) SQL模式 中沒有任何下屬元素時,才能撤銷 SQL模式,否則 拒絕執(zhí)行DRO需句。3 . SQL的基本數(shù)據(jù)類型、秒,形為HH MM SS4

38、.基本表結(jié)構(gòu)的創(chuàng)建語法:CREATE TABLE基本表名>( <列名類 型,,完整 性約束,,) 說明:完整性約束常用以下幾種子句:主鍵子句(PRIMARY KEY、外鍵子句(FOREIGN KEY 等NOT NULL.:表示不允許某一列的值為空值 例:對于教學(xué)數(shù)據(jù)庫中的四個關(guān)系:教師關(guān)系 T (述,TNAME TITLE)課程關(guān)系 C ( C#, CNAME T#)學(xué)生關(guān)系 S ( S#, SNAMIE AGE SER選課關(guān)系 SC (S#, C#, SCORE 創(chuàng)建基本表。CREATE TABLE T(T# CHAR (4) NOT NULL, TNAME CHAR8) NOT

39、 NULL , TITLE CHAR (10), PRIMARY KEY (T#)CREATE TABLE C(C# CHAR (4) NOT NULL , CNAME CHAR (10) NOT NULL , T# CHAR (4),PRIMARY KEY (C#),FOREIGN KEY (T#) REFERENCES T (T#)CREATE TABLE S(S# CHAR (4) NOT NULL , SNAME CHAR8) NOT NULL , AGE SMALLINT SEX CHAR , PRIMARY KEY (S#)CREATE TABLE SC(S# CHAR (4),C

40、# CHAR (4), SCORE SMALLINT PRIMARY KEY( S#, C#), FOREIGN KEY ( S#) REFERENCES S (S#),FOREIGN KEY ( C#) REFERENCES C (C#)5 .基本表結(jié)構(gòu)的修改1)增加新的列語法:ALTER TABLE <基本表名> ADD < 列名< 類型2)刪除原有的列語法:ALTER TABLE <基本表名> DROP < 歹U名 > CASCADE | RESTRICT說明:CASCADE式表示在基本表中刪除某列 時,所有引用到該列的視圖和約束也要一起自

41、動地 被刪除;RESTRICT式表示在沒有視圖或約束引用 該屬性時,才能在基本表中刪除該列,否則拒絕刪 除。3)修改原有列的類型、寬度語法:ALTER TABLE < 基本表名 > MODIFY<列名 > < 類型>6 .基本表的撤銷語法:DROP TABLE基本表名 > CASCADE | RESTRICT7 .索引的創(chuàng)建語法:CREATE UNIQUE INDEX < 索引名 > ON基本表名 > (<列名序列)說明:UNIQUE表示每個索引值對應(yīng)惟一的數(shù) 據(jù)記錄。索引在用戶查詢時會自動起作用。一個索引鍵可以對應(yīng)多個列。索引

42、排列時可以升序,也可以降序,升序排列用asci示, 降序排列用DESCa示,默認(rèn)時表示升序。8 .索引的撤銷語法:DROP INDEX 索引名三、SQL的數(shù)據(jù)查詢1. SELEC僮詢語句句型在關(guān)系代數(shù)中最常用的式子是下列表達(dá)式:!ai, , A( a f(R1 X-X Rm)這里,R1、Rm為關(guān)系,F(xiàn)是公式,A1、An為屬性。與該表達(dá)式對應(yīng),SQL設(shè)計了SELECF FROMb WHER面型:SELECT A1,,AnFROM R1,,RmWHERE F注意:1)在學(xué)習(xí)時,應(yīng)把SELEC喃句和關(guān)系 代數(shù)表達(dá)式聯(lián)系起來考慮問題。2)在WHEREF句的條件表達(dá)式 F中可使用下列運算符:比較運算符:

43、、=、=、=、 或!=邏輯運算符:AND OR NOT集合成員資格運算符:IN、NOT IN 謂詞:EXISTS ALL、SOME聚合函數(shù):AVG MIN、MAX SUMCOUNTF中運算對象還可以是另一個 SELECTS,即SELECTS句可以嵌套。2. SELECTS句的使用技術(shù)SELECTg用時有三種寫法:連接查詢、嵌套查詢和帶存在量詞的嵌套查詢。例:針對前面使用的教學(xué)數(shù)據(jù)庫,檢索學(xué)習(xí)課程號為C2課程的學(xué)生學(xué)號與姓名。第一種寫法(連接查詢):SELECT S.S#,SNAMEFROM S,SCWHERE S.S#=SC.S# AND C#=' CZ第二種寫法(嵌套查詢):SELE

44、CT S#, SNAMEFROM SWHERE S# IN (SELECT S#FROM SCWHERE C#= 'C2')第三種寫法(使用存在量詞的嵌套查詢):SELECT S#, SNAMEFROM SWHERE EXISTS (SELECT *FROM SCWHERE SC.S#=S.S# AND C#=' CZ )例:對于教學(xué)數(shù)據(jù)庫中四個基本表T、G S、SC用SELECTS句表示下面查詢。4)檢索學(xué)習(xí)課程號為 C2課程的學(xué)生學(xué)號與 成績。SELECT S#, SCOREFROM SCWHERE C# = CZ2)檢索學(xué)習(xí)課程號為 C2課程的學(xué)生學(xué)號和姓名。見上

45、例3)檢索至少選修LIU老師所授課程中一門課 程的學(xué)生學(xué)號與姓名。SELECT S.S#,SNAMEFROM S,SC,C,TWHERE S.S#=SC.S# AND SC.C#=C.C#AND C.T#=T.T# AND TNAME= ' LIU'4)檢索選修課程號為 C2或C4課程的學(xué)生學(xué) 號。SELECT S#FROM SCWHERE C#= CZ OR C#= ' C4'5)檢索至少選修課程號為 C2和C4課程的學(xué) 生學(xué)號。SELECT X.S#FROM SC AS X,SC AS YWHERE X.S#=Y.S# AND X.C#= ' CZ

46、ANDY.C#=' C4'6)檢索不學(xué)C2課程的學(xué)生姓名與年齡。SELECT SNAME,AGEFROM SWHERE S# NOT IN(SELECT S#FROM SCWHEREC#= CZ )7)檢索學(xué)習(xí)全部課程的學(xué)生姓名。(在表S中找學(xué)生,在C中不存在一門課程,這個學(xué)生沒有 學(xué)。)SELECT SNAMEFROM SWHERE NOT EXISTS (SELECT * FROM C WHERE NOT EXISTS (SELECT * FROM SC WHERESC.S#=S.S# AND SC.C#=C.C#)8)檢索所學(xué)課程包含學(xué)號為 S3學(xué)生所學(xué)課程 的學(xué)生學(xué)號。

47、(在SC表中找一個學(xué)生,不存在 S3 學(xué)的一門課,該學(xué)生沒有學(xué)。)SELECT DISTINCT S#FROM SC AS XWHERE NOT EXISTS(SELECT *FROM SC AS YWHERE Y.S#= S3'AND NOT EXISTS(SELECT *FROM SC AS ZWHERE Z.S#=X.S# ANDZ.C#=Y.C#)注:DISTINCT表示去掉重復(fù)值。3 .聚合函數(shù)COUNT*):計算元組個數(shù)COUNT<列名 >)SUM(列名 ) 數(shù)值型)AVG (列名 ) 為數(shù)值型) MAX(U 名 )MIN(列名 )對一列中的值計算個數(shù)求某一列值

48、的總和(此列值為求某一列值的平均值(此列值求某一列值的最大值求某一列值的最小值 說明:列名前均可加 DISTINCT,表示去掉重復(fù)值。例1 :求男生的總?cè)藬?shù)和平均年齡。SELECT COUNT*), AVG(AGEFROM SWHERE SEX ='男'例2:統(tǒng)計選修了課程的學(xué)生人數(shù)。SELECT COUNT DISTINCT S# )FROM SC4 . SELECT吾句完整的句法SELECT目標(biāo)表的列名或列表達(dá)式序列 FROM基本表名和(或)視圖序列 WHERE 亍條件表達(dá)式 GROUP BY 列名序列HAVING 組條件表達(dá)式刁 ORDER BY 歹U名ASC | DES

49、C, 說明:口表示其中的內(nèi)容根據(jù)需要可以省略。|表示二選一。各子句的作用:SELECT子句用于指 定輸出的內(nèi)容;FROMF句用于指定要檢索的數(shù)據(jù)的 來源表;WHER皆句稱為“行條件子句”,用于指定 對元組的選取條件; GROUP BY子句稱為“分組子 句”,作用是指定對元組進(jìn)行分類后再檢索;HAVING子句稱為“組條件子句”,用于指定對分類后的元 組的選取條件;ORDER BY?句稱為“排序子句”, 作用是對檢索到的元組進(jìn)行排序。整個語句的執(zhí)行過程為:1)讀取FROW句中基本表、視圖的數(shù)據(jù),執(zhí) 行笛卡兒積操作。2)選取滿足WHER皆句中給出的條件表達(dá)式 的元組。3)按GROUPF句中指定列的值

50、分組,同時提 取滿足HAVING子句中組條件表達(dá)式的那些組。4)按SELECT?句中給出的列名或列表達(dá)式求 值輸出。5) ORDER?句對輸出的目標(biāo)表進(jìn)行排序,按 附加說明ASC升序排列,或按DESO序排列。 例1 :統(tǒng)計每門課程的學(xué)生選修人數(shù)。SELECT COUNT S#)FROM SCGROUP BY C#例2:統(tǒng)計每門課程的學(xué)生選修人數(shù),要求只查詢 出選修人數(shù)超過50人的結(jié)果。SELECT COUNT S#)FROM SCGROUP BY C# HAVING COUNTS#) 50例3:檢索每名學(xué)生的學(xué)號和年齡,查詢結(jié)果按年 齡降序排列,年齡相同按學(xué)號升序排列。SELECT S#, A

51、GEFROM SORDER BY AGE DESC S# ASC5.SELECT子句的具體規(guī)定SELECT ALL | DISTINCT列名或列表達(dá)式序列*說明:1) DISTINCT選項保證重復(fù)的行將從結(jié) 構(gòu)中去除;而ALL選項是默認(rèn)的,將保證重復(fù)的行 留在結(jié)果中,一般可不必寫出。2) *是對于在 FROM?句中命名表 的所有列的簡寫。3)列表達(dá)式中允許出現(xiàn) +、-、*、 /等運算符以及列名和常數(shù)、聚合函數(shù)等。例1:檢索男同學(xué)選修的課程的課程號。SELECT DISTINCT C#FROM S SCWHERE S.S#=SC.S# AND SEX='男'例2:檢索所有的學(xué)生信

52、息。SELECT *FROM S例3:檢索每個學(xué)生的學(xué)號和出生年份。 SELECT S#, 2008-AGE FROM S6 .列和基本表的改名操作有時,一個基本表在 SELEC喃句中多次出現(xiàn), 即這個表被多次調(diào)用,為區(qū)別不同的引用,應(yīng)給每 次的引用加上不同的名字。當(dāng)然,除此情況之外, 也可以給任何一個表起別名。但要注意:一旦給表起了別名,在該語句中,凡是引用該表名時,必須 用別名而不能用原表名。有時,用戶也可以要求輸出的列名與基本表中 列名不一致,可在 SELECT子句用“舊名 AS 新 名”形式改名。其中 AS可以省略。例:檢索每個學(xué)生的姓名和出生年份,輸出的列名 分另I為 STUDENT

53、_NAME BIRTH_YEARSELECT S# AS STUDENT_NAME, 2008-AGE AS BIRTH_YEARFROM S7 .條件表達(dá)式中的比較操作1)算術(shù)比較操作:常用運算符有、=、=、=、 或!=NOT BETWEENAND 用來 查找(不)在給定范圍內(nèi)的數(shù) 據(jù),下限在前,上限在后,包 括上、下限。例:檢索1820歲的學(xué)生姓名。SELECT SNAMEFROM SWHERE AGE=18 AND AGE =20 或:SELECT SNAMEFROM SWHERE AGE BETWEEN 18 AND 202)字符串的匹配操作語法: 字符串 NOT LIKE 匹配模式

54、說明:匹配模式中常使用兩個通配符:%與零個或多個字符組成的字符串匹配。:與單個字符匹配。例:檢索姓名以字符 D打頭的學(xué)生姓名。SELECT SNAMEFROM SWHERE SNAME LIKE ' D%轉(zhuǎn)義字符:為使字符串中包含特殊字符(即喲口_),允許定義轉(zhuǎn)義字符。轉(zhuǎn)義字符緊靠特殊字符并 放在它前面,表示該特殊字符被當(dāng)成普通字 符。使用ESCAPE!義轉(zhuǎn)義字符。例:LIKE 'ab%cd% ESCAPE''匹配所有以ab%cd開頭的字符串。LIKE 'abcd%' ESCAPE''匹配所有以abcd開頭的字符串。3)空值的比較

55、操作使用IS NOT NULL 來比較。例:檢索年齡為空值的學(xué)生姓名。SELECT SNAMEFROM SWHERE AGE IS NULL4)集合成員資格的比較語法:NOT IN(集合)例1 :檢索年齡分別是18、20、21歲的學(xué)生姓名。SELECT SNAMEFROM SWHERE AGE IN (18, 20, 21) 例2:檢索男同學(xué)選修課程的課程號。SELECT DISTINCT C#FROM SCWHERE S# IN ( SELECT S# FROM SWHERE SEX='男')5)集合成員的算術(shù)比較語法:元組 9 ALL|SOME|ANY (集合)說明:ALL

56、表示左邊那個元組與右邊集合中每一個元組滿足9運算;ANY和SOM塔義相同,表示左邊那個元組 與右邊集合中至少一個元組滿足9運算。例1:檢索學(xué)習(xí)C2課程的學(xué)生學(xué)號和姓名。SELECT S#, SNAMEFROM SWHERE S# = SOME (SELECT S#FROM SCWHERE C#= 'C2')例2:檢索不學(xué)C2課程的學(xué)生姓名與年齡。SELECT SNAME AGEFROM SWHERE S#ALL (SELECT S#FROM SCWHERE C#= 'C2')6)集合空否的測試使用NOTEXISTS。見前面例子。四、數(shù)據(jù)更新1.數(shù)據(jù)插入語法:1)單元組的插入:INSERT INTO 基本表名 (列名序列)VALUES ( 元組值)

溫馨提示

  • 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

提交評論