




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第1章數(shù)據(jù)庫概論
本章的重要概念(一)(1)DB、DBMS和DBS的定義(2)數(shù)據(jù)管理技術(shù)的發(fā)展階段
人工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫系統(tǒng)階段和高級數(shù)據(jù)庫技術(shù)階段等各階段的特點(diǎn)。(3)數(shù)據(jù)描述
概念設(shè)計、邏輯設(shè)計和物理設(shè)計等各階段中數(shù)據(jù)描述的術(shù)語,概念設(shè)計中實(shí)體間二元聯(lián)系的描述(1:1,1:N,M:N)。
本章的重要概念(二)(4)數(shù)據(jù)模型
數(shù)據(jù)模型的定義,兩類數(shù)據(jù)模型,邏輯模型的形式定義,ER模型,層次模型、網(wǎng)狀模型、關(guān)系模型和面向?qū)ο竽P偷臄?shù)據(jù)結(jié)構(gòu)以及聯(lián)系的實(shí)現(xiàn)方式。(5)DB的體系結(jié)構(gòu)
三級結(jié)構(gòu),兩級映象,兩級數(shù)據(jù)獨(dú)立性,體系結(jié)構(gòu)各個層次中記錄的聯(lián)系。(6)DBMSDBMS的工作模式、主要功能和模塊組成。(7)DBS DBS的組成,DBA,DBS的全局結(jié)構(gòu),DBS結(jié)構(gòu)的分類。
前言
從20世紀(jì)50年代中期開始,計算機(jī)的應(yīng)用由科學(xué)研究部門逐漸擴(kuò)展到企業(yè)、行政部門。至60年代,數(shù)據(jù)處理已成為計算機(jī)的主要應(yīng)用。在60年代末,數(shù)據(jù)庫技術(shù)作為數(shù)據(jù)處理中的一門新技術(shù)發(fā)展起來的。經(jīng)過30多年的發(fā)展,數(shù)據(jù)庫技術(shù)已是計算機(jī)軟件領(lǐng)域的一個重要分支,形成了較為完整的理論體系和實(shí)用技術(shù)。本章先回顧數(shù)據(jù)管理技術(shù)的發(fā)展過程,然后介紹數(shù)據(jù)庫中的基本概念,以使讀者對數(shù)據(jù)庫的概貌有所了解。1.1引言1963年,美國Honeywell公司的IDS(IntegratedDataStore)系統(tǒng)投入運(yùn)行,揭開了數(shù)據(jù)庫技術(shù)的序幕。20世紀(jì)70年代是數(shù)據(jù)庫蓬勃發(fā)展的年代,網(wǎng)狀系統(tǒng)和層次系統(tǒng)占據(jù)了整個數(shù)據(jù)庫商用市場,而關(guān)系系統(tǒng)僅處于實(shí)驗(yàn)階段。20世紀(jì)80年代,關(guān)系系統(tǒng)由于使用簡便以及硬件性能的改善,逐步代替網(wǎng)狀系統(tǒng)和層次系統(tǒng)占領(lǐng)了市場。20世紀(jì)90年代,關(guān)系數(shù)據(jù)庫已成為數(shù)據(jù)庫技術(shù)的主流。進(jìn)入21世紀(jì)以后,無論是市場的需求還是技術(shù)條件的成熟,對象數(shù)據(jù)庫技術(shù)、網(wǎng)絡(luò)數(shù)據(jù)庫技術(shù)的推廣和普及已成定局。1.1.1數(shù)據(jù)和信息數(shù)據(jù)是數(shù)據(jù)庫系統(tǒng)研究和處理的對象。數(shù)據(jù)與信息十分不開的,它們既有聯(lián)系又有區(qū)別。所謂數(shù)據(jù),通常指用符號記錄下來的、可以識別的信息。信息與數(shù)據(jù)之間存在著固有的聯(lián)系:數(shù)據(jù)是信息的符號表示或稱為載體;信息則是數(shù)據(jù)的內(nèi)涵,是對數(shù)據(jù)語義的解釋。1.1.2數(shù)據(jù)處理與數(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ù)據(jù)管理相聯(lián)系的,數(shù)據(jù)管理技術(shù)的優(yōu)劣,將直接影響數(shù)據(jù)處理的效率。1.1.3數(shù)據(jù)庫技術(shù)的基本術(shù)語(一)定義1.1數(shù)據(jù)庫(Database,簡記為DB)DB是長期存儲在計算機(jī)內(nèi)、有組織的、統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合。DB能為各種用戶共享,具有較小冗余度、數(shù)據(jù)間聯(lián)系緊密而又有較高的數(shù)據(jù)獨(dú)立性等特點(diǎn)。1.1.3數(shù)據(jù)庫技術(shù)的基本術(shù)語(二)定義1.2數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,簡記為DBMS)DBMS是位于用戶與操作系統(tǒng)(OS)之間的一層數(shù)據(jù)管理軟件,它為用戶或應(yīng)用程序提供訪問DB的方法,包括DB的建立、查詢、更新及各種數(shù)據(jù)控制。DBMS總是基于某種數(shù)據(jù)模型,可以分為層次型、網(wǎng)狀型、關(guān)系型和面向?qū)ο笮偷?。DBMSOSDB
用戶1.1.3數(shù)據(jù)庫技術(shù)的基本術(shù)語(三)定義1.3數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,簡記為DBS)
DBS是實(shí)現(xiàn)有組織地、動態(tài)地存儲大量關(guān)聯(lián)數(shù)據(jù)、方便多用戶訪問的計算機(jī)硬件、軟件和數(shù)據(jù)資源組成的系統(tǒng),即它是采用數(shù)據(jù)庫技術(shù)的計算機(jī)系統(tǒng)。定義1.4數(shù)據(jù)庫技術(shù)是研究數(shù)據(jù)庫的結(jié)構(gòu)、存儲、設(shè)計、管理和使用的一門軟件學(xué)科。1.2數(shù)據(jù)庫的由來和發(fā)展磁盤容量的發(fā)展數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)歷了人工管理、文件系統(tǒng)、數(shù)據(jù)庫階段和高級數(shù)據(jù)庫階段。時間(年)19561965197119781981198519952003容量(MB/軸)53010060012005000100001800001.2.1人工管理階段在人工管理階段(20世紀(jì)50年代中期以前),計算機(jī)主要用于科學(xué)計算,其他工作還沒有展開。外部存儲器只有磁帶、卡片和紙帶等,還沒有磁盤等字節(jié)存取存儲設(shè)備。軟件只有匯編語言,尚無數(shù)據(jù)管理方面的軟件。數(shù)據(jù)處理的方式基本上是批處理。人工管理階段的數(shù)據(jù)管理有下列特點(diǎn):
數(shù)據(jù)不保存在計算機(jī)內(nèi)。沒有專用的軟件對數(shù)據(jù)進(jìn)行管理。只有程序(program)的概念,沒有文件(file)的概念。數(shù)據(jù)的組織方式必須由程序員自行設(shè)計與安排。數(shù)據(jù)面向程序。即一組數(shù)據(jù)對應(yīng)一個程序。1.2.2文件系統(tǒng)階段(一)在這一階段(20世紀(jì)50年代后期至60年代中期),計算機(jī)不僅用于科學(xué)計算,還用于信息管理。隨著數(shù)據(jù)量的增加,數(shù)據(jù)的存儲、檢索和維護(hù)問題成為緊迫的需要,數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)管理技術(shù)迅速發(fā)展起來。此時,外部存儲器已有磁盤、磁鼓等直接存取存儲設(shè)備。軟件領(lǐng)域出現(xiàn)了高級語言和操作系統(tǒng)。操作系統(tǒng)中的文件系統(tǒng)是專門管理外存的數(shù)據(jù)管理軟件。數(shù)據(jù)處理的方式有批處理,也有聯(lián)機(jī)實(shí)時處理。1.2.2文件系統(tǒng)階段(二)文件系統(tǒng)階段的數(shù)據(jù)管理有以下特點(diǎn):數(shù)據(jù)以“文件”形式可長期保存在外部存儲器的磁盤上。數(shù)據(jù)的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)有了區(qū)別,但比較簡單。文件組織已多樣化。有索引文件、鏈接文件和直接存取文件等。數(shù)據(jù)不再屬于某個特定的程序,可以重復(fù)使用,即數(shù)據(jù)面向應(yīng)用。對數(shù)據(jù)的操作以記錄為單位。隨著數(shù)據(jù)管理規(guī)模的擴(kuò)大,數(shù)據(jù)量急劇增加,文件系統(tǒng)顯露出三個缺陷:數(shù)據(jù)冗余(redundancy)數(shù)據(jù)不一致(inconsistency)數(shù)據(jù)聯(lián)系弱(poordatarelationship)1.2.3數(shù)據(jù)庫階段(一)數(shù)據(jù)管理技術(shù)進(jìn)入數(shù)據(jù)庫階段的標(biāo)志是20世紀(jì)60年代末的三件大事:
1968年美國IBM公司推出層次模型的IMS系統(tǒng)。1969年美國CODASYL組織發(fā)布了DBTG報告,總結(jié)了當(dāng)時各式各樣的數(shù)據(jù)庫,提出網(wǎng)狀模型。1970年美國IBM公司的E.F.Codd連續(xù)發(fā)表論文,提出關(guān)系模型,奠定了關(guān)系數(shù)據(jù)庫的理論基礎(chǔ)。1.2.3數(shù)據(jù)庫階段(二)數(shù)據(jù)庫階段的數(shù)據(jù)管理具有以下特點(diǎn):采用數(shù)據(jù)模型表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。有較高的數(shù)據(jù)獨(dú)立性。數(shù)據(jù)庫系統(tǒng)為用戶提供了方便的用戶接口。數(shù)據(jù)庫系統(tǒng)提供以下四方面的數(shù)據(jù)控制功能:數(shù)據(jù)庫的并發(fā)控制,數(shù)據(jù)庫的恢復(fù),數(shù)據(jù)的完整性和數(shù)據(jù)安全性。增加了系統(tǒng)的靈活性1.2.3數(shù)據(jù)庫階段(三)數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)1.2.3數(shù)據(jù)庫階段(四)程序和數(shù)據(jù)間的聯(lián)系
文件系統(tǒng)階段信息處理的傳統(tǒng)方式1.2.3數(shù)據(jù)庫階段(五)數(shù)據(jù)庫階段信息處理方式的演變
1.2.4高級數(shù)據(jù)庫技術(shù)階段(一)分布式數(shù)據(jù)庫系統(tǒng)主要有下面三個特點(diǎn)數(shù)據(jù)庫的數(shù)據(jù)物理上分布在各個場地,但邏輯上是一個整體。每個場地既可以執(zhí)行局部應(yīng)用(訪問本地DB),也可以執(zhí)行全局應(yīng)用(訪問異地DB)。各地的計算機(jī)由數(shù)據(jù)通信網(wǎng)絡(luò)相聯(lián)系。本地計算機(jī)單獨(dú)不能勝任的處理任務(wù),可以通過通信網(wǎng)絡(luò)取得其它DB和計算機(jī)的支持。1.2.4高級數(shù)據(jù)庫技術(shù)階段(二)分布式數(shù)據(jù)庫系統(tǒng)1.2.4高級數(shù)據(jù)庫技術(shù)階段(三)對象數(shù)據(jù)庫系統(tǒng)主要有以下兩個特點(diǎn)
對象數(shù)據(jù)模型能完整地描述現(xiàn)實(shí)世界地數(shù)據(jù)結(jié)構(gòu),能表達(dá)數(shù)據(jù)間嵌套、遞歸的聯(lián)系。具有面向?qū)ο蠹夹g(shù)的封裝性(把數(shù)據(jù)與操作定義在一起)和繼承性(繼承數(shù)據(jù)結(jié)構(gòu)和操作)的特點(diǎn),提高了軟件的可重用性。網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)
1.3數(shù)據(jù)描述
在數(shù)據(jù)處理中,數(shù)據(jù)描述將涉及到不同的范疇。從事物的特性到計算機(jī)中的具體表示,實(shí)際上經(jīng)歷了三個階段——概念設(shè)計中的數(shù)據(jù)描述、邏輯設(shè)計中的數(shù)據(jù)描述和物理設(shè)計中的數(shù)據(jù)描述。本節(jié)先介紹這三個階段的數(shù)據(jù)描述,再介紹數(shù)據(jù)之間聯(lián)系如何描述。1.3.1概念設(shè)計中的數(shù)據(jù)描述實(shí)體(entity):客觀存在,可以相互區(qū)別的事物稱為實(shí)體。實(shí)體集(entityset):性質(zhì)相同的同類實(shí)體的集合,稱為實(shí)體集。屬性(attribute):實(shí)體有很多特性,每一個特性稱為屬性。每一個屬性有一個值域,其類型可以是整數(shù)型、實(shí)數(shù)型、字符串型等。實(shí)體標(biāo)識符(identifier):能惟一標(biāo)識實(shí)體的屬性或?qū)傩约?,稱為實(shí)體標(biāo)識符。有時也稱為關(guān)鍵碼(key),或簡稱為鍵。1.3.2邏輯設(shè)計中的數(shù)據(jù)描述(一)字段(field):標(biāo)記實(shí)體屬性的命名單位稱為字段,或數(shù)據(jù)項。它是可以命名的最小信息單位,所以又稱為數(shù)據(jù)元素或初等項。記錄(record):字段的有序集合稱為記錄。文件(file):同一類記錄的集合稱為文件。關(guān)鍵碼(key):能惟一標(biāo)識文件中每個記錄的字段或字段集,稱為記錄的關(guān)鍵碼(簡稱為鍵)。1.3.2邏輯設(shè)計中的數(shù)據(jù)描述(二)術(shù)語的對應(yīng)關(guān)系
概念設(shè)計邏輯設(shè)計
實(shí)體………記錄
屬性………字段(數(shù)據(jù)項)
實(shí)體集………文件
實(shí)體標(biāo)識符………關(guān)鍵碼1.3.3物理設(shè)計中的數(shù)據(jù)描述位(bit,比特):一個二進(jìn)制位稱為“位”。一位只能取0或1兩個狀態(tài)。字節(jié)(byte):8個比特稱為一個字節(jié),可以存放一個字符所對應(yīng)的ASCII碼。字(word):若干個字節(jié)組成一個字。一個字所含的二進(jìn)制位的位數(shù)稱為字長。塊(block):又稱為物理塊或物理記錄。塊是內(nèi)存和外存交換信息的最小單位,每塊的大小,通常為210~214字節(jié)。桶(bucket):外存的邏輯單位,一個桶可以包含一個物理塊或多個在空間上不一定連續(xù)的物理塊。卷(volume):一個輸入輸出設(shè)備所能裝載的全部有用信息,稱為“卷”。1.3.4數(shù)據(jù)聯(lián)系的描述(一)定義1.5聯(lián)系(relationship)是實(shí)體之間的相互關(guān)系。與一個聯(lián)系有關(guān)的實(shí)體集個數(shù),稱為聯(lián)系的元數(shù)。定義1.6二元聯(lián)系有以下三種類型:一對一聯(lián)系:如果實(shí)體集E1中每個實(shí)體至多和實(shí)體集E2中的一個實(shí)體有聯(lián)系,反之亦然,那么實(shí)體集E1和E2的聯(lián)系稱為“一對一聯(lián)系”,記為“1:1”。一對多聯(lián)系:如果實(shí)體集E1中每個實(shí)體可以與實(shí)體集E2中任意個(零個或多個)實(shí)體間有聯(lián)系,而E2中每個實(shí)體至多和E1中一個實(shí)體有聯(lián)系,那么稱E1對E2的聯(lián)系是“一對多聯(lián)系”,記為“1:N”。多對多聯(lián)系:如果實(shí)體集E1中每個實(shí)體可以與實(shí)體集E2中任意個(零個或多個)實(shí)體有聯(lián)系,反之亦然,那么稱E1和E2的聯(lián)系是“多對多聯(lián)系”,記為“M:N”。
1.3.4數(shù)據(jù)聯(lián)系的描述(一)例1.1
圖1.8一對一聯(lián)系圖1.9一對多聯(lián)系1.3.4數(shù)據(jù)聯(lián)系的描述(一)例1.1圖1.10多對多聯(lián)系1.3.4數(shù)據(jù)聯(lián)系的描述(二)例1.2
圖1.11三元聯(lián)系圖1.12一元聯(lián)系1.4數(shù)據(jù)模型的定義定義1.7數(shù)據(jù)模型的簡單定義:能表示實(shí)體類型及實(shí)體間聯(lián)系的模型稱為“數(shù)據(jù)模型”。概念數(shù)據(jù)模型和邏輯數(shù)據(jù)模型。定義1.8邏輯數(shù)據(jù)模型應(yīng)包含數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)完整性約束三個部分:數(shù)據(jù)結(jié)構(gòu)是指對實(shí)體類型和實(shí)體間聯(lián)系的表達(dá)和實(shí)現(xiàn);數(shù)據(jù)操作是指對數(shù)據(jù)庫的檢索和更新(包括插入、刪除和修改)兩類操作;數(shù)據(jù)完整性約束給出數(shù)據(jù)及其聯(lián)系應(yīng)具有的制約和依賴規(guī)則。1.4.2實(shí)體聯(lián)系模型(一)定義1.9,ER圖有三個基本成分:矩形框,用于表示實(shí)體類型(考慮問題的對象)。菱形框,用于表示聯(lián)系類型(實(shí)體間聯(lián)系)。橢圓形框,用于表示實(shí)體類型和聯(lián)系類型的屬性。1.4.2實(shí)體聯(lián)系模型(二)例1.3首先確定實(shí)體類型。本問題有三個實(shí)體類型:零件PART,工程項目PROJECT,零件供應(yīng)商SUPPLIER。確定聯(lián)系類型。PROJECT和PART之間是M:N聯(lián)系,PART和SUPPLIER之間也是M:N聯(lián)系,分別命名為P_P和P_S.把實(shí)體類型和聯(lián)系類型組合成ER圖。確定實(shí)體類型和聯(lián)系類型的屬性。確定實(shí)體類型的鍵,在ER圖中屬于碼的屬性名下畫一條橫線。1.4.2實(shí)體聯(lián)系模型(三)
圖1.14
圖1.14ER圖實(shí)例1.4.2實(shí)體聯(lián)系模型(四)例1.4MMNN
PROJECT
SUPPLIER
PART
P_P_S
PART
SUBPART
P圖1.15三元聯(lián)系圖1.16一元聯(lián)系1.4.3層次模型用樹型(層次)結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為層次模型(HierarchicalModel)。層次模型的特點(diǎn)是記錄之間的聯(lián)系通過指針來實(shí)現(xiàn),查詢效率較高。與文件系統(tǒng)的數(shù)據(jù)管理方式相比,層次模型是一個飛躍,用戶和設(shè)計者面對的是邏輯數(shù)據(jù)而不是物理數(shù)據(jù),用戶不必花費(fèi)大量的精力考慮數(shù)據(jù)的物理細(xì)節(jié)。邏輯數(shù)據(jù)與物理數(shù)據(jù)之間的轉(zhuǎn)換由DBMS完成。層次模型有兩個缺點(diǎn):一是只能表示1:N聯(lián)系,雖然系統(tǒng)有多種輔助手段實(shí)現(xiàn)M:N聯(lián)系但較復(fù)雜,用戶不易掌握;二是由于層次順序的嚴(yán)格和復(fù)雜,引起數(shù)據(jù)的查詢和更新操作很復(fù)雜,因此應(yīng)用程序的編寫也比較復(fù)雜。1.4.4網(wǎng)狀模型用有向圖結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為網(wǎng)狀模型(networkmodel)。網(wǎng)狀模型的特點(diǎn)是記錄之間聯(lián)系通過指針實(shí)現(xiàn),M:N聯(lián)系也容易實(shí)現(xiàn)(一個M:N聯(lián)系可拆成兩個1:N聯(lián)系),查詢效率較高。網(wǎng)狀模型的缺點(diǎn)是數(shù)據(jù)結(jié)構(gòu)復(fù)雜和編程復(fù)雜。1.4.5關(guān)系模型(一)關(guān)系模型(RelationalModel)的主要特征是用二維表格表達(dá)實(shí)體集。與前兩種模型相比,數(shù)據(jù)結(jié)構(gòu)簡單,容易為初學(xué)者理解。關(guān)系模型是由若干個關(guān)系模式組成的集合。關(guān)系模式相當(dāng)于前面提到的記錄類型,它的實(shí)例稱為關(guān)系,每個關(guān)系實(shí)際上是一張二維表格。1.4.5關(guān)系模型(二)例1.7圖1.21關(guān)系模型的例子PART模式 (P#,PNAME,COLOR,WEIGHT)PROJECT模式 (J#,JNAME,DATE)SUPPLIER模式 (S#,SNAME,SADDR)P_P模式 (J#,P#,TOTAL)P_S模式 (P#,S#,QUANTITY)1.4.5關(guān)系模型(三)100S2P4BEIJINGFADCS2300S2P3SHANGHAIPICCS1150S1P2SADDRSNAMES#200S2P2SUPPLIER關(guān)系100S1P191-3JCJ3QUANTITYS#P#90.5JBJ2P_S關(guān)系89.1JAJ118P3J1DATEJNAMEJ#25P3J2PROJECT關(guān)系65P2J119REDSCREWP46P3J312REDNUTP315P2J217GREENBOLTP250P1J114BLUESCREWP1TOTALP#J#WEIGHTCOLORPNAMEP#P_P關(guān)系PART關(guān)系100S2P4BEIJINGFADCS2300S2P3SHANGHAIPICCS1150S1P2SADDRSNAMES#200S2P2SUPPLIER關(guān)系100S1P191-3JCJ3QUANTITYS#P#90.5JBJ2P_S關(guān)系89.1JAJ118P3J1DATEJNAMEJ#25P3J2PROJECT關(guān)系65P2J119REDSCREWP46P3J312REDNUTP315P2J217GREENBOLTP250P1J114BLUESCREWP1TOTALP#J#WEIGHTCOLORPNAMEP#P_P關(guān)系PART關(guān)系1.4.6對象模型(一)對象(object)是現(xiàn)實(shí)世界中實(shí)體的模型化,與實(shí)體概念相仿,但遠(yuǎn)比實(shí)體復(fù)雜。將屬性集和方法集相同的所有對象組合在一起,構(gòu)成了一個類(class)。1.4.6對象模型(二)層次模型網(wǎng)狀模型關(guān)系模型面向?qū)ο竽P蛣?chuàng)始1968年IBM公司的IMS系統(tǒng)1969年CODASYL的DBTG報告(71年通過)1970年F.Codd提出關(guān)系模型20世紀(jì)80年代數(shù)據(jù)結(jié)構(gòu)復(fù)雜(樹結(jié)構(gòu))復(fù)雜(有向圖結(jié)構(gòu))簡單(二維表)復(fù)雜(嵌套遞歸)數(shù)據(jù)聯(lián)系通過指針通過指針通過表間的公共屬性通過對象標(biāo)識查詢語言過程性語言過程性語言非過程性語言面向?qū)ο笳Z言典型產(chǎn)品IMSIDS/ⅡIMAGE/3000IDMSTOTALOracleSybaseDB2SQLServerInformixONTOSDB盛行期20世紀(jì)70年代70年代至80年代中期80年代至現(xiàn)在90年代至現(xiàn)在圖1.24四種邏輯數(shù)據(jù)模型的比較1.5.1數(shù)據(jù)庫的三級體系結(jié)構(gòu)(一)圖1.25三級模式結(jié)構(gòu)1.5.1數(shù)據(jù)庫的三級體系結(jié)構(gòu)(二)數(shù)據(jù)的三級抽象術(shù)語數(shù)據(jù)模型用數(shù)據(jù)定義語言描述的稱呼DBTG報告中的稱呼外部級外模型外模式子模式概念級概念模型概念模式模式內(nèi)部級內(nèi)模型內(nèi)模式物理模式圖1.26數(shù)據(jù)抽象的術(shù)語1.5.1數(shù)據(jù)庫的三級體系結(jié)構(gòu)(三)1.5.2體系結(jié)構(gòu)中的五個要素定義1.10概念模式(conceptnalschema)是數(shù)據(jù)庫中全部數(shù)據(jù)的整體邏輯結(jié)構(gòu)的描述。定義1.11外模式(externalschema)是用戶與數(shù)據(jù)庫系統(tǒng)的接口,是用戶用到的那部分?jǐn)?shù)據(jù)的描述。定義1.12內(nèi)模式(internalschema)是數(shù)據(jù)庫在物理存儲方面的描述,定義所有內(nèi)部記錄類型、索引和文件的組織方式,以及數(shù)據(jù)控制方面的細(xì)節(jié)。定義1.13模式/內(nèi)模式映象存在于概念級和內(nèi)部級之間,用于定義概念模式和內(nèi)模式之間的對應(yīng)性。定義1.14外模式/模式映象存在于外部級和概念級之間,用于定義外模式和概念模式之間的對應(yīng)性。1.5.3兩級數(shù)據(jù)獨(dú)立性定義1.15數(shù)據(jù)獨(dú)立性(dataindependence)是指應(yīng)用程序和數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu)之間相互獨(dú)立,不受影響。數(shù)據(jù)獨(dú)立性分成物理數(shù)據(jù)獨(dú)立性和邏輯數(shù)據(jù)獨(dú)立性兩個級別。1.5.4用戶與用戶界面定義1.16用戶是指使用數(shù)據(jù)庫的應(yīng)用程序或聯(lián)機(jī)終端用戶。定義1.17用戶界面是用戶和數(shù)據(jù)庫系統(tǒng)之間的一條分界線,在界限下面,用戶是不可知的。用戶界面定在外部級上,用戶對于外模式是可知的。1.6.1DBMS的工作模式(一)接受應(yīng)用程序的數(shù)據(jù)請求和處理請求將用戶的數(shù)據(jù)請求(高級指令)轉(zhuǎn)換成復(fù)雜的機(jī)器代碼(低層指令)實(shí)現(xiàn)對數(shù)據(jù)庫的操作從對數(shù)據(jù)庫的操作中接受查詢結(jié)果對查詢結(jié)果進(jìn)行處理(格式轉(zhuǎn)換)將處理結(jié)果返回給用戶圖1.29DBMS的工作模式1.6.1DBMS的工作模式(二)
用戶訪問數(shù)據(jù)的過程
圖1.30用戶訪問數(shù)據(jù)的過程1.6.2DBMS的主要功能數(shù)據(jù)庫的定義功能數(shù)據(jù)庫的操縱功能數(shù)據(jù)庫的保護(hù)功能數(shù)據(jù)庫的維護(hù)功能數(shù)據(jù)字典1.6.3DBMS的模塊組成查詢處理器有四個主要成分:DDL編譯器,DML編譯器,嵌入式DML的預(yù)編譯器及查詢運(yùn)行核心程序。存儲管理器有四個主要成分:權(quán)限和完整性管理器,事務(wù)管理器,文件管理器及緩沖區(qū)管理器。1.7.1DBS的組成(一)DBS是采用了數(shù)據(jù)庫技術(shù)的計算機(jī)系統(tǒng)。DBS是一個實(shí)際可運(yùn)行的,按照數(shù)據(jù)庫方法存儲、維護(hù)和向應(yīng)用系統(tǒng)提供數(shù)據(jù)支持的系統(tǒng),它是數(shù)據(jù)庫、硬件、軟件和數(shù)據(jù)庫管理員的集合體。DB是與一個企業(yè)組織各項應(yīng)用有關(guān)的全部數(shù)據(jù)的集合。定義1.18DBA是控制數(shù)據(jù)整體結(jié)構(gòu)的一組人員,負(fù)責(zé)DBS的正常運(yùn)行,承擔(dān)創(chuàng)建、監(jiān)控和維護(hù)數(shù)據(jù)庫結(jié)構(gòu)的責(zé)任。1.7.1DBS的組成(二)DBA的主要職責(zé)有以下六點(diǎn):定義模式定義內(nèi)模式與用戶的聯(lián)絡(luò)。包括定義外模式、應(yīng)用程序的設(shè)計、提供技術(shù)培訓(xùn)等專業(yè)服務(wù)。定義安全性規(guī)則,對用戶訪問數(shù)據(jù)庫的授權(quán)。定義完整性規(guī)則,監(jiān)督數(shù)據(jù)庫的運(yùn)行。數(shù)據(jù)庫的轉(zhuǎn)儲與恢復(fù)工作。1.7.2DBS的全局結(jié)構(gòu)(一)圖1.31DBS的全局結(jié)構(gòu)1.7.2DBS的全局結(jié)構(gòu)(二)數(shù)據(jù)庫用戶DBMS的查詢處理器DBMS的存儲管理器磁盤存儲器中的數(shù)據(jù)結(jié)構(gòu)1.7.3DBS結(jié)構(gòu)的分類集中式DBS(centralizedDBS)客戶機(jī)/服務(wù)器式DBS(client/serverDBS,記為C/SDBS)并行式DBS(parallelDBS)分布式DBS(distributedDBS)1.7.4DBS的效益靈活性簡易性面向用戶有效的數(shù)據(jù)控制加快應(yīng)用系統(tǒng)的開發(fā)速度維護(hù)方便標(biāo)準(zhǔn)化小結(jié)(一)數(shù)據(jù)管理技術(shù)經(jīng)歷了人工管理、文件系統(tǒng)、數(shù)據(jù)庫和高級數(shù)據(jù)庫技術(shù)等四個階段。數(shù)據(jù)庫系統(tǒng)是在文件系統(tǒng)的基礎(chǔ)上發(fā)展而成的,同時又克服了文件系統(tǒng)的三個缺陷:數(shù)據(jù)的冗余、不一致性和聯(lián)系弱。在數(shù)據(jù)庫領(lǐng)域,應(yīng)該準(zhǔn)確使用術(shù)語,深刻了解實(shí)體間1:1、1:N和M:M三種聯(lián)系的意義。小結(jié)(二)數(shù)據(jù)模型是對現(xiàn)實(shí)世界進(jìn)行抽象的工具,用于描述現(xiàn)實(shí)世界的數(shù)據(jù)、數(shù)據(jù)聯(lián)系、數(shù)據(jù)語義和數(shù)據(jù)約束等方面內(nèi)容。數(shù)據(jù)模型分成概念模型和結(jié)構(gòu)模型兩大類。前者的代表是實(shí)體聯(lián)系模型,后者的代表是層次、網(wǎng)狀、關(guān)系和面向?qū)ο竽P?。關(guān)系模型是當(dāng)今的主流模型,面向?qū)ο竽P褪墙窈蟀l(fā)展的方向。小結(jié)(三)數(shù)據(jù)庫是存儲在一起集中管理的相關(guān)數(shù)據(jù)的集合。數(shù)據(jù)庫的體系結(jié)構(gòu)是對數(shù)據(jù)的三個抽象級別。它把數(shù)據(jù)的具體組織留給DBMS去做,用戶只需抽象地處理邏輯數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計算機(jī)中的存儲,減輕了用戶使用系統(tǒng)的負(fù)擔(dān)。由于三級結(jié)構(gòu)之間往往差別很大,存在著兩級映象,因此使DBS具有較高的數(shù)據(jù)獨(dú)立性:物理數(shù)據(jù)獨(dú)立性和邏輯數(shù)據(jù)獨(dú)立性。小結(jié)(四)數(shù)據(jù)獨(dú)立性是指在某個層次上修改模式而不影響較高一層模式的能力。DBMS是位于用戶與OS之間的一層數(shù)據(jù)管理軟件。數(shù)據(jù)庫語言分成DDL和DML兩類。DBMS主要由查詢處理器和存儲管理器兩大部分組成。DBS是包含DB和DBMS的計算機(jī)系統(tǒng)。DBS的全局結(jié)構(gòu)體現(xiàn)了DBS的模塊功能結(jié)構(gòu)。
本章的重點(diǎn)篇幅
(1)教材P23的圖1.24(四種邏輯數(shù)據(jù)模型的比較)。(2)教材P25的圖1.27(DB的體系結(jié)構(gòu))。(3)教材P29的圖1.29(DBMS的工作模式)。(4)教材P34的圖1.31(DBS的全局結(jié)構(gòu))。
第2章關(guān)系模型和關(guān)系運(yùn)算理論
本章重要概念(一)(1)基本概念 關(guān)系模型,關(guān)鍵碼(主鍵和外鍵),關(guān)系的定義和性質(zhì),三類完整性規(guī)則,ER模型到關(guān)系模型的轉(zhuǎn)換規(guī)則,過程性語言與非過程性語言。(2)關(guān)系代數(shù) 五個基本操作,四個組合操作,七個擴(kuò)充操作。
本章重要概念(二)(3)關(guān)系演算 元組關(guān)系演算和域關(guān)系演算的原子公式、公式的定義。關(guān)系演算的安全性和等價性。(4)關(guān)系代數(shù)表達(dá)式的優(yōu)化 關(guān)系代數(shù)表達(dá)式的等價及等價轉(zhuǎn)換規(guī)則,啟化式優(yōu)化算法。(5)關(guān)系邏輯 謂詞、原子、規(guī)則和查詢,規(guī)則的安全性,用規(guī)則模擬關(guān)系代數(shù)表達(dá)式。
本章概要本章先介紹關(guān)系模型的基本概念;然后介紹關(guān)系運(yùn)算的三種理論:關(guān)系代數(shù)、關(guān)系演算和關(guān)系邏輯。
關(guān)系模型和關(guān)系運(yùn)算理2.1關(guān)系模型的基本概念2.2關(guān)系代數(shù)2.3關(guān)系演算2.4關(guān)系代數(shù)表達(dá)式的優(yōu)化2.5關(guān)系邏輯
2.1關(guān)系模型的基本概念
2.1.1基本術(shù)語
2.1.2關(guān)系的定義和性質(zhì)2.1.3關(guān)系模型的三類完整性規(guī)則
2.1.4ER模型向關(guān)系模型的轉(zhuǎn)換規(guī)則
2.1.5關(guān)系模型的三級體系結(jié)構(gòu)
2.1.6關(guān)系模型的形式定義和優(yōu)點(diǎn)
2.1.7關(guān)系查詢語言和關(guān)系運(yùn)算
返回基本術(shù)語(1)定義2.1用二維表格表示實(shí)體集,用關(guān)鍵碼進(jìn)行數(shù)據(jù)導(dǎo)航的數(shù)據(jù)模型稱為關(guān)系模型(relationalModel)。這里數(shù)據(jù)導(dǎo)航(datanavigation)是指從已知數(shù)據(jù)查找未知數(shù)據(jù)的過程和方法。
圖2.1職工登記表
基本術(shù)語(2)
在關(guān)系模型中,字段稱為屬性,字段值稱為屬性值,記錄類型稱為關(guān)系模式。在圖2.2中,關(guān)系模式名是R。記錄稱為元組(tuple),元組的集合稱為關(guān)系(relation)或?qū)嵗╥nstance)。一般用大寫字母A、B、C、…
表示單個屬性,用大寫字母…、X、Y、Z表示屬性集,用小寫字母表示屬性值,有時也習(xí)慣稱呼關(guān)系為表或表格,元組為行(row),屬性為列(column)。關(guān)系中屬性個數(shù)稱為“元數(shù)”(arity),元組個數(shù)為“基數(shù)”(cardinality)。
基本術(shù)語(3)關(guān)系元數(shù)為5,基數(shù)為4
圖2.2關(guān)系模型的術(shù)語
一般術(shù)語
關(guān)系模型術(shù)語字段、數(shù)據(jù)項 屬性記錄類型 關(guān)系模式記錄1 元組1記錄2 元組2記錄3 元組3記錄4 元組4字段值 屬性值基本術(shù)語(4)
關(guān)鍵碼(key,簡稱鍵)由一個或多個屬性組成。在實(shí)際使用中,有下列幾種鍵。(1)超建(superKey)(2)候選鍵(candidateKey)(3)主鍵(primaryKey)在圖2.1中,(工號,姓名)是模式的一個超鍵,但不是候選鍵,而(工號)是候選鍵。在實(shí)際使用中,如果選擇(工號)作為刪除或查找元組的標(biāo)志,那么稱(工號)是主鍵。(4)外鍵(foreignKey)返回關(guān)系的定義和性質(zhì)
定義2.2關(guān)系是一個屬性數(shù)目相同的元組的集合。
在關(guān)系模型中,對關(guān)系作了下列規(guī)范性限制:(1)關(guān)系中每一個屬性值都是不可分解的;(2)關(guān)系中不允許出現(xiàn)重復(fù)元組(即不允許出現(xiàn)相同的元組);(3)由于關(guān)系是一個集合,因此不考慮元組間的順序,即沒有行序;(4)元組中的屬性在理論上也是無序的,但使用時按習(xí)慣考慮列的順序。返回關(guān)系模型的三類完整性規(guī)則(1)
實(shí)體完整性規(guī)則(entityintegrityrule)要求關(guān)系中元組在組成主鍵的屬性上不能有空值。如果出現(xiàn)空值,那么主鍵值就起不了惟一標(biāo)織元組的作用。關(guān)系模型的三類完整性規(guī)則
(2)參照完整性規(guī)則(referenceintegrityrule)定義2.3參照完整性規(guī)則的形式定義如下:如果屬性集K是關(guān)系模式R1的主鍵,K也是關(guān)系模式R2的外鍵,那么在R2的關(guān)系中,K的取值只允許兩種可能,或者為空值,或者等于R1關(guān)系中某個主鍵值。這條規(guī)則的實(shí)質(zhì)是“不允許引用不存在的實(shí)體”。在上述形式定義中,關(guān)系模式R1的關(guān)系稱為“參照關(guān)系”,關(guān)系模式R2的關(guān)系稱為“依賴關(guān)系”?!爸鞅怼焙汀案北怼保案副怼焙汀白颖怼?。
關(guān)系模型的三類完整性規(guī)則
(3)例2.1下面各種情況說明了參照完整性規(guī)則在關(guān)系中如何實(shí)現(xiàn)的。①在關(guān)系數(shù)據(jù)庫中有下列兩個關(guān)系模式:
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)這里帶下劃線者為主鍵,帶波浪線者為外鍵。據(jù)規(guī)則要求關(guān)系SC中的S#值應(yīng)該在關(guān)系S中出現(xiàn)。如果關(guān)系SC中有一個元組(S7,C4,80),而學(xué)號S7卻在關(guān)系S中找不到,那么我們就認(rèn)為在關(guān)系SC中引用了一個不存在的學(xué)生實(shí)體,這就違反了參照完整性規(guī)則。另外,在關(guān)系SC中S#不僅是外鍵,也是主鍵的一部分,因此這里S#值不允許空。關(guān)系模型的三類完整性規(guī)則
(4)②設(shè)工廠數(shù)據(jù)庫中有兩個關(guān)系模式:
DEPT(D#,DNAME) EMP(E#,ENAME,SALARY,D#)
車間模式DEPT的屬性為車間編號、車間名,職工模式EMP的屬性為工號、姓名、工資、所在車間的編號。每個模式的主鍵與外鍵已標(biāo)出。在EMP中,由于D#不在主鍵中,因此D#值允許空。關(guān)系模型的三類完整性規(guī)則
(5)③設(shè)課程之間有先修、后繼聯(lián)系。模式如下:
R(C#
,CNAME,PC#)
其屬性表示課程號、課程名、先修課的課程號。如果規(guī)定,每門課程的直接先修課只有一門,那么模式R的主鍵是C#,外鍵是PC#.。這里參照完整性在一個模式中實(shí)現(xiàn)。即每門課程的直接先修課必須在關(guān)系中出現(xiàn)。
關(guān)系模型的三類完整性規(guī)則
(6)用戶定義的完整性規(guī)則
在建立關(guān)系模式時,對屬性定義了數(shù)據(jù)類型,即使這樣可能還滿足不了用戶的需求。此時,用戶可以針對具體的數(shù)據(jù)約束,設(shè)置完整性規(guī)則,由系統(tǒng)來檢驗(yàn)實(shí)施,以使用統(tǒng)一的方法處理它們,不再由應(yīng)用程序承擔(dān)這項工作。例如學(xué)生的年齡定義為兩位整數(shù),范圍還太大,我們可以寫如下規(guī)則把年齡限制在15~30歲之間:
CHECK(AGEBETWEEN15AND30)
返回ER模型向關(guān)系模型的轉(zhuǎn)換規(guī)則
(1)ER模型向關(guān)系模型的轉(zhuǎn)換,實(shí)際上就是把ER圖轉(zhuǎn)換成關(guān)系模式的集合。規(guī)則2.1(實(shí)體類型的轉(zhuǎn)換):將每個實(shí)體類型轉(zhuǎn)換成一個關(guān)系模式,實(shí)體的屬性即為關(guān)系模式的屬性,實(shí)體標(biāo)識符即為關(guān)系模式的鍵。規(guī)則2.2(二元聯(lián)系類型的轉(zhuǎn)換)①若實(shí)體間聯(lián)系是1:1。②若實(shí)體間聯(lián)系是1:N。③若實(shí)體間聯(lián)系是M:N。ER模型向關(guān)系模型的轉(zhuǎn)換規(guī)則
(2)圖2.3一對一聯(lián)系
ER模型向關(guān)系模型的轉(zhuǎn)換規(guī)則
(3)圖2.4一對多聯(lián)系
ER模型向關(guān)系模型的轉(zhuǎn)換規(guī)則
(4)圖2.5多對多聯(lián)系
返回關(guān)系模型的三級體系結(jié)構(gòu)
--關(guān)系模式
在關(guān)系模型中,記錄類型稱為關(guān)系模式,而關(guān)系模式的集合就是數(shù)據(jù)庫的概念模式。在系統(tǒng)實(shí)現(xiàn)時,關(guān)系模式和屬性的命名一般都用英文單詞。譬如圖2.5的ER圖轉(zhuǎn)換成的關(guān)系模式集可用圖2.6表示。而圖2.7是這個關(guān)系模型的三個具體關(guān)系。
學(xué)生關(guān)系模式S(S#,SNAME,AGE,SEX)
選課關(guān)系模式SC(S#,C#,GRADE)
課程關(guān)系模式C(C#,CNAME,TEACHER)圖2.6關(guān)系模式集關(guān)系模型的三級體系結(jié)構(gòu)
--子模式
子模式是用戶所用到的那部分?jǐn)?shù)據(jù)的描述。除此之外,還應(yīng)指出數(shù)據(jù)與關(guān)系模式中相應(yīng)數(shù)據(jù)的聯(lián)系。例如,用戶需要用到子模式G(圖2.8)。成績子模式G(S#,SNAME,C#,GRADE)
圖2.8子模式關(guān)系模型的三級體系結(jié)構(gòu)
--存儲模式
圖2.10關(guān)系S和SC的環(huán)結(jié)構(gòu)
在有些DBMS中,關(guān)系存儲是作為文件看待的,每個元組就是一個記錄。由于關(guān)系模式有鍵,因此存儲一個關(guān)系可用散列方法或索引方法實(shí)現(xiàn)。如果關(guān)系的元組數(shù)目較少(100個以內(nèi)),那么也可以用“堆文件”方式實(shí)現(xiàn)(即沒有特定的次序)。此外,還可對任意的屬性集建立輔助索引。
關(guān)系模型的形式定義
關(guān)系模型有三個重要組成部分:數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)操縱,數(shù)據(jù)完整性規(guī)則。(1)數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)庫中全部數(shù)據(jù)及其相互聯(lián)系都被組織成“關(guān)系”(二維表格)的形式。關(guān)系模型基本的數(shù)據(jù)結(jié)構(gòu)是關(guān)系。(2)數(shù)據(jù)操縱:關(guān)系模型提供一組完備的高級關(guān)系運(yùn)算,以支持對數(shù)據(jù)庫的各種操作。關(guān)系運(yùn)算分成關(guān)系代數(shù)、關(guān)系演算和關(guān)系邏輯等三類。(3)數(shù)據(jù)完整性規(guī)則:數(shù)據(jù)庫中數(shù)據(jù)必須滿足實(shí)體完整性,參照完整性和用戶定義的完整性等三類完整性規(guī)則。
關(guān)系模型的優(yōu)點(diǎn)與其它數(shù)據(jù)模型相比,關(guān)系模型突出的優(yōu)點(diǎn)如下:(1)關(guān)系模型提供單一的數(shù)據(jù)結(jié)構(gòu)形式,具有高度的簡明性和精確性。(2)關(guān)系模型的邏輯結(jié)構(gòu)和相應(yīng)的操作完全獨(dú)立于數(shù)據(jù)存儲方式,具有高度的數(shù)據(jù)獨(dú)立性。(3)關(guān)系模型使數(shù)據(jù)庫的研究建立在比較堅實(shí)的數(shù)學(xué)基礎(chǔ)上。(4)關(guān)系數(shù)據(jù)庫語言與一階謂詞邏輯的固有內(nèi)在聯(lián)系,為以關(guān)系數(shù)據(jù)庫為基礎(chǔ)的推理系統(tǒng)和知識庫系統(tǒng)的研究提供了方便。
返回關(guān)系查詢語言和關(guān)系運(yùn)算
關(guān)系數(shù)據(jù)庫的數(shù)據(jù)操縱語言(DML)的語句分成查詢語句和更新語句兩大類。查詢語句用于描述用戶的各種檢索要求;更新語句用于描述用戶進(jìn)行插入、刪除、修改等操作。關(guān)于查詢的理論稱為“關(guān)系運(yùn)算理論”。關(guān)系查詢語言根據(jù)其理論基礎(chǔ)的不同分成三類:(1)關(guān)系代數(shù)語言。(2)關(guān)系演算語言。(3)關(guān)系邏輯語言。
返回2.2關(guān)系代數(shù)
2.2.1關(guān)系代數(shù)的五個基本操作
2.2.2關(guān)系代數(shù)的四個組合操作
2.2.3關(guān)系代數(shù)運(yùn)算的應(yīng)用實(shí)例
2.2.4關(guān)系代數(shù)的七個擴(kuò)充操作
返回關(guān)系代數(shù)的五個基本操作
(1)
并(Union)設(shè)關(guān)系R和S具有相同的關(guān)系模式,R和S的并是由屬于R或?qū)儆赟的元組構(gòu)成的集合,記為R∪S。形式定義如下:R∪S≡{t|t∈R∨t∈S},t是元組變量,R和S的元數(shù)相同。差(Difference)設(shè)關(guān)系R和S具有相同的關(guān)系模式,R和S的差是由屬于R但不屬于S的元組構(gòu)成的集合,記為R-S。形式定義如下:R-S≡{t|t∈R∧t∈S},R和S的元數(shù)相同。關(guān)系代數(shù)的五個基本操作
(2)
投影(Projection)這個操作是對一個關(guān)系進(jìn)行垂直分割,消去某些列,并重新安排列的順序。設(shè)關(guān)系R是k元關(guān)系,R在其分量Ai1,…,Aim(m≤k,i1,…,im為1到k間的整數(shù))上的投影用πi1,…,im(R)表示,它是一個m元元組集合,形式定義如下:πi1,…,im(R)≡{t|t=〈ti1,…,tim〉∧〈t1,…,tk〉∈R}
例如,π3,1(R)表示關(guān)系R中取第1、3列,組成新的關(guān)系,新關(guān)系中第1列為R的第3列,新關(guān)系的第2列為R的第1列。如果R的每列標(biāo)上屬性名,那么操作符π的下標(biāo)處也可以用屬性名表示。例如,關(guān)系R(A,B,C),那么πC,A(R)與π3,1(R)是等價的。關(guān)系代數(shù)的五個基本操作
(3)
選擇(Selection)選擇操作是根據(jù)某些條件對關(guān)系做水平分割,即選取符合條件的元組。條件可用命題公式(即計算機(jī)語言中的條件表達(dá)式)F表示。F中有兩種成分:關(guān)系R關(guān)于公式F的選擇操作用σF(R)表示,形式定義如下:σF(R)={t|t∈R∧F(t)=true}σ為選擇運(yùn)算符,σF(R)表示從R中挑選滿足公式F為真的元組所構(gòu)成的關(guān)系。例如,σ2>ˊ3ˊ(R)表示從R中挑選第2個分量值大于3的元組所構(gòu)成的關(guān)系。書寫時,為了與屬性序號區(qū)別起見,常量用引號括起來,而屬性序號或?qū)傩悦灰靡柪ㄆ饋?。(a)關(guān)系R(b)關(guān)系S
圖2.12兩個關(guān)系
關(guān)系代數(shù)的五個基本操作
(例)例2.3圖2.12有兩個關(guān)系R和S,圖2.13的(a)、(b)表示R∪S和R-S。(c)表示R×S,此處R和S的屬性名相同,就應(yīng)在屬性名前注上相應(yīng)的關(guān)系名,例如R.A、S.A等。圖2.13的(d)表示πC,A(R),即π3,1(R)。(e)表示σB=ˊbˊ(R)。關(guān)系代數(shù)的五個基本操作
(例)(a)R∪S (b)R-S (c)R×S (d)πC,A(R)(e)σB='b'(R)
圖2.13關(guān)系代數(shù)操作的結(jié)果
返回關(guān)系代數(shù)的四個組合操作
(1)
交(intersection)關(guān)系R和S的交是由屬于R又屬于S的元組構(gòu)成的集合,記為R∩S,這里要求R和S定義在相同的關(guān)系模式上。形式定義如下:R∩S≡{t︱t∈R∧t∈S},R和S的元數(shù)相同。由于R∩S=R-(R-S),或R∩S=S-(S-R),因此交操作不是一個獨(dú)立的操作。在圖2.12中,R∩S的結(jié)果是只有一個元組(d,a,f)。關(guān)系代數(shù)的四個組合操作
(2)連接(join)連接有兩種:θ連接和F連接(這里θ是算術(shù)比較符,F(xiàn)是公式)。①θ連接
R?S≡{t︱t=<tr,ts>∧tr∈R∧ts∈S∧triθtsj}②F連接
F連接是從關(guān)系R和S的笛卡兒積中選取屬性間滿足某一公式F的元組,這里F是形為F1∧F2∧…∧Fn的公式,每個FP是形為iθj的式子,而i和j分別為關(guān)系R和S的第i、第j個分量的序號。
關(guān)系代數(shù)的四個組合操作
(3)
自然連接(naturaljoin)兩個關(guān)系R和S的自然連接操作具體計算過程如下:①計算R×S;②設(shè)R和S的公共屬性是A1,…,AK,挑選R×S中滿足R.A1=S.A1,…,R.AK=S.AK
的那些元組;③去掉S.A1,…,S.AK這些列。定義:
πi1,…,im(σR.A1=S.A1∧...∧R.AK=S.AK(R×S)),其中i1,…,im為R和S的全部屬性,但公共屬性只出現(xiàn)一次。
關(guān)系代數(shù)的四個組合操作
(4)除法(division)設(shè)關(guān)系R和S的元數(shù)分別為r和s(設(shè)r>s>0),那么R÷S是一個(r-s)元的元組的集合。(R÷S)是滿足下列條件的最大關(guān)系:其中每個元組t與S中每個元組u組成的新元組<t,u>必在關(guān)系R中。R÷S≡π1,2,…,r-s(R)-π1,2,…,r-s((π1,2,…,r-s(R)×S)-R)
返回關(guān)系代數(shù)運(yùn)算的應(yīng)用實(shí)例
在關(guān)系代數(shù)運(yùn)算中,把由五個基本操作經(jīng)過有限次復(fù)合的式子稱為關(guān)系代數(shù)表達(dá)式。這種表達(dá)式的運(yùn)算結(jié)果仍是一個關(guān)系。我們可以用關(guān)系代數(shù)表達(dá)式表示各種數(shù)據(jù)查詢操作。例2.7返回關(guān)系代數(shù)的七個擴(kuò)充操作
改名廣義投影賦值外連接(outerjoin)外部并(outerunion)半連接(semijoin)聚集操作返回2.3關(guān)系演算
把數(shù)理邏輯的謂詞演算引入到關(guān)系運(yùn)算中,就可得到以關(guān)系演算為基礎(chǔ)的運(yùn)算。關(guān)系演算又可分為元組關(guān)系演算和域關(guān)系演算,前者以元組為變量,后者以屬性(域)為變量。2.3.1元組關(guān)系演算
2.3.2域關(guān)系演算
2.3.3關(guān)系運(yùn)算的安全約束和等價性返回元組關(guān)系演算
(1)
在元組關(guān)系演算(TupleRelationalCalculus)中,元組關(guān)系演算表達(dá)式簡稱為元組表達(dá)式,其一般形式為
{t|P(t)}
其中,t是元組變量,表示一個元數(shù)固定的元組;P是公式,在數(shù)理邏輯中也稱為謂詞,也就是計算機(jī)語言中的條件表達(dá)式。{t|P(t)}表示滿足公式P的所有元組t的集合。元組關(guān)系演算
(2)在元組表達(dá)式中,公式由原子公式組成。定義2.4原子公式(Atoms)有下列三種形式:①R(s)②s[i]θu[j]③s[i]θa或aθu[j]。在定義關(guān)系演算操作時,要用到“自由”(Free)和“約束”(Bound)變量概念。在一個公式中,如果元組變量未用存在量詞?或全稱量詞
符號定義,那么稱為自由元組變量,否則稱為約束元組變量。
元組關(guān)系演算
(3)定義2.5公式(Formulas)的遞歸定義如下:①每個原子是一個公式。其中的元組變量是自由變量。②如果P1和P2是公式,那么┐P1、P1∨P2、P1∧P2和P1
P2也都是公式。③如果P1是公式,那么(
s)(P1)和(
s)(P1)也都是公式。④公式中各種運(yùn)算符的優(yōu)先級從高到低依次為:θ,
和
,┐,∧和∨,
。在公式外還可以加括號,以改變上述優(yōu)先順序。⑤公式只能由上述四種形式構(gòu)成,除此之外構(gòu)成的都不是公式。元組關(guān)系演算
(4)例2.16
圖2.20的(a)、(b)是關(guān)系R和S,(c)~(g)分別是下面五個元組表達(dá)式的值
圖2.20元組關(guān)系演算的例子
R1={t|S(t)∧t[1]>2}R2={t|R(t)∧┐S(t)}R3={t|(
u)(S(t)∧R(u)∧t[3]<u[2]}}R4={t|(
u)(R(t)∧S(u)∧t[3]>u[1])}R5={t|(
u)(
v)(R(u)∧S(v)∧u[1]>v[2]∧t[1]=u[2]∧t[2]=v[3]∧t[3]=u[1])}
元組關(guān)系演算
(5)
在元組關(guān)系演算的公式中,有下列三個等價的轉(zhuǎn)換規(guī)則:①P1∧P2等價于┐(┐P1∨┐P2);
P1∨P2等價于┐(┐P1∧┐P2)。②(
s)(P1(s))等價于┐(
s)(┐P1(s));(
s)(P1(s))等價于┐(
s)(┐P1(s))。③P1
P2等價于┐P1∨P2。元組關(guān)系演算
(6)關(guān)系代數(shù)表達(dá)式到元組表達(dá)式的轉(zhuǎn)換例2.17
R∪S可用{t|R(t)∨S(t)}表示;
R-S可用{t|R(t)∧┐S(t)}表示;
R×S可用{t|(
u)(
v)(R(u)∧S(V)∧t[1]=u[1]∧t[2]=u[2]∧t[3]=u[3]∧t[4]=v[1]∧t[5]=v[2]∧t[6]=v[3])}表示。設(shè)投影操作是π2,3(R),那么元組表達(dá)式可寫成:{t|(
u)(R(u)∧t[l]=u[2]∧t[2]=u[3])}σF(R)可用{t|R(t)∧F'}表示,F(xiàn)'是F的等價表示形式。譬如σ2='d'(R)可寫成{t|(R(t)∧t[2]='d')。
返回域關(guān)系演算
(1)原子公式有兩種形式:⑴R(x1…xk);⑵xθy。公式中也可使用∧、∨、┐和
等邏輯運(yùn)算符,(
x)和(
x),但變量x是域變量,不是元組變量。自由域變量、約束域變量等概念和元組演算中一樣。域演算表達(dá)式是形為{t1…tk∣P(t1,…,tk)}的表達(dá)式,其中P(t1,…,tk)是關(guān)于自由域變量t1,…,tk的公式。域關(guān)系演算
(2)例2.20圖2.21的(a)、(b)、(c)是三個關(guān)系R、S、W,(d)、(e)、(f)分別表示下面三個域表達(dá)式的值。(a)關(guān)系R (b)關(guān)系S (c)關(guān)系W (d)R1 (e)R2 (f)R3
圖2.21域關(guān)系演算的例子
R1={xyz|R(xyz)∧x<5∧y>3}R2={xyz|R(xyz)∨(S(xyz)∧y=4)}R3={xyz|(
u)(
v)(R(zxu)∧w(yv)∧u>v)}域關(guān)系演算
(3)元組表達(dá)式到域表達(dá)式的轉(zhuǎn)換我們可以很容易地把元組表達(dá)式轉(zhuǎn)換成域表達(dá)式,轉(zhuǎn)換規(guī)則如下:⑴對于k元的元組變量t,可引入k個域變量t1…tk,在公式中t用t1…tk替換,元組分量t[i]用ti替換。⑵
對于每個量詞(
u)或(
u),若u是m元的元組變量,則引入m個新的域變量u1…um。在量詞的轄域內(nèi),u用u1…um替換,u[i]用ui替換,(
u)用(
u1)…(
um)替換,(
u)用(
u1)…(
um)替換。
返回關(guān)系運(yùn)算的安全約束和等價性
定義2.6在數(shù)據(jù)庫技術(shù)中,不產(chǎn)生無限關(guān)系和無窮驗(yàn)證的運(yùn)算稱為安全運(yùn)算,相應(yīng)的表達(dá)式稱為安全表達(dá)式,所采取的措施稱為安全約束。并、差、笛爾卡積、投影和選擇是關(guān)系代數(shù)最基本的操作,并構(gòu)成了關(guān)系代數(shù)運(yùn)算的最小完備集。已經(jīng)證明,在這個基礎(chǔ)上,關(guān)系代數(shù)、安全的元組關(guān)系演算、安全的域關(guān)系演算在關(guān)系的表達(dá)和操作能力上是完全等價的。
返回2.4關(guān)系代數(shù)表達(dá)式的優(yōu)化
2.4.1關(guān)系代數(shù)表達(dá)式的優(yōu)化問題
2.4.2關(guān)系代數(shù)表達(dá)式的等價變換規(guī)則
2.4.3關(guān)系代數(shù)表達(dá)式的優(yōu)化算法
返回關(guān)系代數(shù)表達(dá)式的優(yōu)化(1)在關(guān)系代數(shù)表達(dá)式中需要指出若干關(guān)系的操作步驟。那么,系統(tǒng)應(yīng)該以什么樣的操作順序,才能做到既省時間,又省空間,而且效率也比較高呢?這個問題稱為查詢優(yōu)化問題。在關(guān)系代數(shù)運(yùn)算中,笛卡兒積和連接運(yùn)算是最費(fèi)時間的。關(guān)系代數(shù)表達(dá)式的優(yōu)化(2)例2.23設(shè)關(guān)系R和S都是二元關(guān)系,屬性名分別為A,B和C,D。設(shè)有一個查詢可用關(guān)系代數(shù)表達(dá)式表示:
E1=πA(σB=C∧D='99'(R×S))也可以把選擇條件D=‘99’移到笛卡兒積中的關(guān)系S前面:
E2=πA(σB=C(R×σD='99'(S))還可以把選擇條件B=C與笛卡兒積結(jié)合成等值連接形式:
B=CE3=πA(RσD='99'(S))這三個關(guān)系代數(shù)表達(dá)式是等價的,但執(zhí)行的效率大不一樣。顯然,求El,E2,E3的大部分時間是花在連接操作上的。
返回關(guān)系代數(shù)表達(dá)式的等價變換規(guī)則
(1)連接和笛卡兒積的交換律
連接和笛卡兒積的結(jié)合律
投影的級聯(lián)
選擇的級聯(lián)
選擇和投影操作的交換
選擇對笛卡兒積的分配律
選擇對并的分配律
圖2.6關(guān)系模式集關(guān)系代數(shù)表達(dá)式的等價變換規(guī)則
(2)選擇對集合差的分配律
選擇對自然連接的分配律
投影對笛卡兒積的分配律
投影對并的分配律
選擇與連接操作的結(jié)合
并和交的交換律
并和交的結(jié)合律
返回關(guān)系代數(shù)表達(dá)式的優(yōu)化算法
(1)
在關(guān)系代數(shù)表達(dá)式中,最花費(fèi)時間和空間的運(yùn)算是笛卡兒積和連接操作,為此,引出三條啟發(fā)式規(guī)則,用于對表達(dá)式進(jìn)行轉(zhuǎn)換,以減少中間關(guān)系的大小。·盡可能早地執(zhí)行選擇操作;·盡可能早地執(zhí)行投影操作;
·避免直接做笛卡兒積,把笛卡兒積操作之前和之后的一連串選擇和投影合并起來一起做。
關(guān)系代數(shù)表達(dá)式的優(yōu)化算法
(2)算法2.1 關(guān)系代數(shù)表達(dá)式的啟發(fā)式優(yōu)化算法。輸入:一個關(guān)系代數(shù)表達(dá)式的語法樹輸出:計算表達(dá)式的一個優(yōu)化序列例2.24
返回2.5關(guān)系邏輯
(自學(xué))2.5.1關(guān)系運(yùn)算的成分
2.5.2規(guī)則的安全性
2.5.3從關(guān)系代數(shù)到關(guān)系邏輯的轉(zhuǎn)換
2.5.4遞歸過程
2.5.5關(guān)系邏輯與關(guān)系代數(shù)的差異
小結(jié)在2.3.3節(jié)中提到關(guān)系代數(shù)和關(guān)系演算在表達(dá)功能上是等價的。那么關(guān)系代數(shù)和關(guān)系邏輯在表達(dá)功能上是否等價?已有文獻(xiàn)證明,這兩者之間相差甚大。在規(guī)則中沒有否定時,關(guān)系代數(shù)與關(guān)系邏輯在表達(dá)功能方面已不相適應(yīng),每個都能表達(dá)另一個不能表達(dá)的內(nèi)容。在規(guī)則中帶有否定時,關(guān)系邏輯比關(guān)系代數(shù)更富于表現(xiàn)力。只有在規(guī)則被約束為安全的、非遞歸的、在帶有某些否定的情況下,關(guān)系代數(shù)才與關(guān)系邏輯等價。由于關(guān)系邏輯中引進(jìn)了基于邏輯的規(guī)則概念,使得關(guān)系邏輯比關(guān)系代數(shù)在模擬現(xiàn)實(shí)世界能力方面更強(qiáng)。關(guān)系邏輯一般是用在知識庫的知識表達(dá)中。本章的重點(diǎn)篇幅
(1)教材中P56的例2.7(關(guān)系代數(shù)表達(dá)式的應(yīng)用實(shí)例)。(2)教材中P63的例2.19(元組表達(dá)式的應(yīng)用實(shí)例)。(3)教材中P81的例2.36(關(guān)系邏輯的規(guī)則表示)。
重要內(nèi)容分析(一)(1)一般規(guī)則·對于只涉及到選擇、投影、連接的查詢可用下列表達(dá)式表示:
π(σ(R×S)) 或者π(σ…(R?S))·對于否定的操作,一般要用差操作表示,例如“檢索不學(xué)C2課的學(xué)生姓名”?!τ跈z索具有“全部”特征的操作,一般要用除法操作表示,例如“檢索學(xué)習(xí)全部課程的學(xué)生姓名”。重要內(nèi)容分析(二)(2)“檢索不學(xué)C2課的學(xué)生姓名”,決不能用下式表示:
πSNAME,AGE(σC#≠'C2'(S?SC))一定要用“差”的形式:
πSNAME,AGE(S)-πSNAME,AGE(σC#='C2'(S?SC))(3)“檢索學(xué)習(xí)全部課程的學(xué)生學(xué)號”,要用πS#,C#(SC)÷πC#(C)表示,而不能寫成 πS#(SC÷πC#(C))形式。這是因?yàn)橐粋€學(xué)生學(xué)的課程的成績可能是不一樣的。重要內(nèi)容分析(三) 2.非過程性語言與過程性語言的區(qū)別編程時必須指出“干什么”及“怎么干”的語言,稱為過程性語言;編程時只須指出“干什么”,不必指出“怎么干”的語言,稱為非過程性語言。第3章關(guān)系數(shù)據(jù)庫語言SQL
本章重要概念
(1)SQL數(shù)據(jù)庫的體系結(jié)構(gòu),SQL的組成。(2)SQL的數(shù)據(jù)定義:SQL模式、基本表和索引的創(chuàng)建和撤銷。(3)SQL的數(shù)據(jù)查詢;SELECT語句的句法,SELECT語句的三種形式及各種限定,基本表的聯(lián)接操作,SQL3中的遞歸查詢。(4)SQL的數(shù)據(jù)更新:插入、刪除和修改語句。(5)視圖的創(chuàng)建和撤銷,對視圖更新操作的限制。(6)嵌入式SQL:預(yù)處理方式,使用規(guī)定,使用技術(shù),卷游標(biāo),動態(tài)SQL語句。
本章概述SQL是關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言,對關(guān)系模型的發(fā)展和商用DBMS的研制起著重要的作用。SQL語言是介乎于關(guān)系代數(shù)和元組演算之間的一種語言。本章詳細(xì)介紹SQL的核心部分內(nèi)容:數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)更新和嵌入式SQL。
關(guān)系數(shù)據(jù)庫語言SQL3.1SQL的體系結(jié)構(gòu)
3.2SQL的數(shù)據(jù)定義
3.3SQL的數(shù)據(jù)查詢3.4數(shù)據(jù)更新3.5視圖的定義和對視圖的操作3.6嵌入式SQL
3.1SQL的體系結(jié)構(gòu)
3.1.1SQL的產(chǎn)生與發(fā)展
3.1.2SQL數(shù)據(jù)庫的體系結(jié)構(gòu)
3.1.3SQL的組成
返回SQL的產(chǎn)生與發(fā)展
1970年,美國IBM研究中心的E.F.Codd連續(xù)發(fā)表多篇論文,提出關(guān)系模型。1972年,IBM公司開始研制實(shí)驗(yàn)型關(guān)系數(shù)據(jù)庫管理系統(tǒng)SYSTEMR,配制的查詢語言稱為SQUARE(SpecifyingQueriesAsRelationalExpression)語言,在語言中使用了較多的數(shù)學(xué)符號。1974年,Boyce和Chamberlin把SQUARE修改為SEQUEL(StructuredEnglishQUEryLanguage)語言。后來SEQUEL簡稱為SQL(StructuredQueryLanguage),即“結(jié)構(gòu)式查詢語言”,SQL的發(fā)音仍為“sequel”?,F(xiàn)在SQL已經(jīng)成為一個標(biāo)準(zhǔn)。SQL數(shù)據(jù)庫的體系結(jié)構(gòu)
用戶1用戶2用戶3用戶4視圖1視圖1基本表1基本表2基本表3基本表4存儲文件1存儲文件2存儲文件3存儲文件4圖3.1SQL數(shù)據(jù)庫的體系結(jié)構(gòu)SQL用戶ViewBasetableStoredfileSQL的組成
核心SQL主要有四個部分: (1)數(shù)據(jù)定義語言,即SQLDDL,用于定義SQL模式、基本表、視圖、索引等結(jié)構(gòu)。
(2)數(shù)據(jù)操縱語言,即SQLDML。數(shù)據(jù)操縱分成數(shù)據(jù)查詢和數(shù)據(jù)更新兩類。其中數(shù)據(jù)更新又分成插入、刪除和修改三種操作。
(3)嵌入式SQL語言的使用規(guī)定。這一部分內(nèi)容涉及到SQL語句嵌入在宿主語言程序中的規(guī)則。
(4)數(shù)據(jù)控制語言,即SQLDCL,這一部分包括對基本表和視圖的授權(quán)、完整性規(guī)則的描述、事務(wù)控制等內(nèi)容。返回3.2SQL的數(shù)據(jù)定義
3.2.1SQL模式的創(chuàng)建和撤銷
3.2.2基本數(shù)據(jù)類型
3.2.3基本表的創(chuàng)建、修改和撤銷
3.2.4索引的創(chuàng)建和撤銷
返回SQL模式的創(chuàng)建和撤銷
SQL模式的創(chuàng)建可用CREATESCHEMA語句定義,其基本句法如下:
CREATESCHEMA〈模式名〉A(chǔ)UTHORIZATION〈用戶名〉DROP語句的句法如下:
DROPSCHEMA〈模式名〉[CASCADE│RESTRICT]其方式有兩種:
CASCADE(級聯(lián)式)方式。
RESTRICT(約束式)方式。
基本數(shù)據(jù)類型
SQL提供的主要數(shù)據(jù)類型(也稱為“域類型”)有:(1)數(shù)值型(2)字符串型(3)位串型(4)時間型返回基本表的創(chuàng)建、修改和撤銷
(1)
基本表的創(chuàng)建
例3.1
基本表SS(S#,SNAME,AGE,SEX)可用下列語句創(chuàng)建:
CREATETABLES (S# CHAR(4)NOTNULL,
SNAMECHAR(8)NOTNULL,
AGE CHAR(1),
SEX CHAR(1), PRIMARYKEY(S#));
基本表的創(chuàng)建、修改和撤銷(2)基本表結(jié)構(gòu)的修改增加新的列用“ALTER…ADD…”語句,其句法如下:
ALTERTABLE<基本表名>ADD<列名><類型>刪除原有的列用“ALTER…DROP…”語句,句法如下:
ALTERTABLE<基本表名>DROP<列名>[CASCADE│RESTRICT]此處CASCADE方式表示:在基本表中刪除某列時,所有引用到該列的視圖和約束也要一起自動地被刪除。而RESTRICT方式表示在沒有視圖或約束引用該屬性時,才能在基本表中刪除該列,否則拒絕刪除操作。
基本表的創(chuàng)建、修改和撤銷(3)例3.2在基本表S中增加一個地址(ADDRESS)列,可用下列語句:
ALTERTABLESADDADDRESSVARCHAR(30); 應(yīng)注意,新增加的列不能定義為“NOTNULL”?;颈碓谠黾右涣泻?,原有元組在新增加的列上的值都被定義為空值(NULL)。例3.3在基本表S中刪除年齡(AGE)列,并且把引用該列的所有視圖和約束也一起刪除,可用下列語句:
ALTERTABLESDROPAGECASCADE;例3.4在基本表S中S#的長度修改為6,可用下列語句:
ALTERTABLESMODIFYS#CHAR(6);
基本表的創(chuàng)建、修改和撤銷(4)基本表的撤銷撤銷語句的句法如下:
DROPTABLE<基本表名>[CASCADE│RESTRICT]此處的CASCADE、RESTRICT的語義同前面句法中的語義一樣。
返回索引的創(chuàng)建和撤銷
索引的創(chuàng)建 創(chuàng)建索引可用“CREATEINDEX”語句實(shí)現(xiàn)。句法如下:
CREATE[UNIQUE]INDEX<索引名>ON<基本表名>(列名表)索引的撤銷 當(dāng)索引不需要時,可以用“DROPINDEX”語句撤銷,其句法如下:
DROPINDEX<索引名>返回3.3SQL的數(shù)據(jù)查詢
3.3.1
SELECT查詢語句
3.3.2
SELECT語句完整的句法
3.3.3
SELECT語句中的限定
3.3.4
基本表的聯(lián)接操作
3.3.5
SQL3中的遞歸查詢
返回SELECT查詢語句
(1)SELECT—FROM—WHERE句型 在關(guān)系代數(shù)中最常用的式子是下列表達(dá)式:
πA1,…,An(σF(R1×…×Rm))
這里R1、…、Rm為關(guān)系,F(xiàn)是公式,A1、…、An為屬性。 針對上述表達(dá)式,SQL為此設(shè)計了SELECT—FROM—WHERE句型:
SELECTA1,…,An FROMR1,…,Rm WHEREF
這個句型是從關(guān)系代數(shù)表達(dá)式演變來的,但WHERE子句中的條件表達(dá)式F要比關(guān)系代數(shù)中公式更靈活。SELECT查詢語句
(2)SELECT句型使用實(shí)例 例3.8教學(xué)數(shù)據(jù)中有三個基本表(關(guān)系):
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)
C(C#,CNAME,TEACHER) 下面用SELECT查詢語句表達(dá)每個查詢。 ①檢索學(xué)習(xí)課程號為C2的學(xué)生學(xué)號與成績。 ②檢索學(xué)習(xí)課程號為C2的學(xué)生學(xué)號與姓名。 ③檢索選修課程名為MATHS的學(xué)生學(xué)號與姓名。④檢索選修課程號為C2或C4的學(xué)生學(xué)號。⑤檢索至少選修課程號為C2和C4的學(xué)生學(xué)號。SELECT查詢語句
(3)SELECT語句的圖示形式
例3.9對于例3.8中的第二個查詢語句的圖示形式如下所述。SELECT查詢語句
(4)
聚合函數(shù)
COUNT(*)計算元組的個數(shù)COUNT(列名)對一列中的值計算個數(shù)SUM(列名)求某一列值的總和(此列的值必須是數(shù)值型)AVG(列名)求某一列值的平均值(此列的值必須是數(shù)值型)MAX(列名)求某一列值的最大值MIN(列名)求某一列值的最小值返回SELECT語句完整的句法
(1)SELECT語句完整的句法如下:
SELECT目標(biāo)表的列名或列表達(dá)式序列
FROM基本表名和(或)視圖序列
[WHERE行條件表達(dá)式][GROUPBY列名序列
[HAVING組條件表達(dá)式]][ORDERBY列名[ASC|DESC],…]SELECT語句完整的句法(2)整個語句的執(zhí)行過程如下:(1)讀取FROM子句中基本表、視圖的數(shù)據(jù),執(zhí)行笛卡爾積操作。(2)選取滿足WHERE子句中給出的條件表達(dá)式的元組。(3)按GROUP子句中指定列的值分組,同時提取滿足HAVING子句中組條件表達(dá)式的那些組。(4)按SELECT子句中給出的列名或
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年電梯用鋼繩行業(yè)深度研究分析報告
- 存放服務(wù)合同范本
- 2025年污水化驗(yàn)行業(yè)深度研究分析報告
- 赤小豆就是紅豆嗎
- 固體廢棄物資源化再利用項目建設(shè)項目環(huán)境影響報告表【模板】
- 中國補(bǔ)胎充氣一體機(jī)行業(yè)發(fā)展前景及投資戰(zhàn)略規(guī)劃研究報告
- 2024-2030年中國醫(yī)用超聲儀器行業(yè)市場深度分析及投資潛力預(yù)測報告
- 采購合同和補(bǔ)充合同范本
- 2025年中國枕式包裝機(jī)械行業(yè)發(fā)展前景預(yù)測及投資戰(zhàn)略咨詢報告
- 2024-2030年中國湘菜行業(yè)市場發(fā)展監(jiān)測及投資戰(zhàn)略咨詢報告
- 中國著名的塔課件
- Q∕GDW 11612.2-2018 低壓電力線高速載波通信互聯(lián)互通技術(shù)規(guī)范 第2部分:技術(shù)要求
- 公司辦公室5S管理規(guī)定(實(shí)用含圖片)
- (完整版)餐飲員工入職登記表
- 智能化工程施工工藝圖片講解
- 人教版小學(xué)五年級數(shù)學(xué)下冊教材解讀
- 2022年最新蘇教版五年級下冊科學(xué)全冊教案
- 咳嗽與咳痰課件
- 小學(xué)四年級數(shù)學(xué)奧數(shù)應(yīng)用題100題
- 綜合布線驗(yàn)收報告材料
- 《初三心理健康教育》ppt課件
評論
0/150
提交評論