數(shù)據(jù)庫原理與應(yīng)用課件_第1頁
數(shù)據(jù)庫原理與應(yīng)用課件_第2頁
數(shù)據(jù)庫原理與應(yīng)用課件_第3頁
數(shù)據(jù)庫原理與應(yīng)用課件_第4頁
數(shù)據(jù)庫原理與應(yīng)用課件_第5頁
已閱讀5頁,還剩378頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一章

數(shù)據(jù)庫系統(tǒng)導(dǎo)論

2024/3/921.

信息的定義2.

DBMS的組成和功能3.

E—R模型教學(xué)重點(diǎn)第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/93§1.1數(shù)據(jù)與信息§1.2計(jì)算機(jī)數(shù)據(jù)管理的發(fā)展§1.3數(shù)據(jù)庫系統(tǒng)的組成§1.4數(shù)據(jù)和數(shù)據(jù)聯(lián)系的描述課程章節(jié)第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論第一章

數(shù)據(jù)庫系統(tǒng)導(dǎo)論

數(shù)據(jù)庫(database)是通用化的相關(guān)數(shù)據(jù)的集合,它不僅包括數(shù)據(jù)本身,而且包括關(guān)于數(shù)據(jù)之間的聯(lián)系?!?.1數(shù)據(jù)與信息1.1.1數(shù)據(jù)、信息與數(shù)據(jù)處理1.1.2信息系統(tǒng)2024/3/961.?dāng)?shù)據(jù)的概念

數(shù)據(jù)(Data),通常只用符號記錄下來的可加以鑒別的信息(Information),即描述事物的符號記錄稱為數(shù)據(jù)。描述事物的符號可以是數(shù)字,也可以是文字、圖形、圖像、聲音、語言等,數(shù)據(jù)有多種表現(xiàn)形式,它們都可以經(jīng)過數(shù)字化后存入計(jì)算機(jī)。數(shù)據(jù)的概念包括兩個(gè)方面:其一,數(shù)據(jù)內(nèi)容是事物特性的反映或描述;其二,數(shù)據(jù)是符號的集合。

符號:不僅指數(shù)字、字母、文字和其他特殊字符,且包括圖形、圖像、聲音等多媒體數(shù)據(jù)。

記錄:不僅指寫在紙上,而且包括記錄在各種介質(zhì)上。

通信:在空間上傳遞

存儲:在時(shí)間上傳遞1.1.1數(shù)據(jù)、信息與數(shù)據(jù)處理第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/972.信息的概念信息是關(guān)于現(xiàn)實(shí)世界事物的存在方式或運(yùn)動形態(tài)反映的綜合,是人們進(jìn)行各種活動所需要的知識。數(shù)據(jù)與信息的關(guān)系:有聯(lián)系也有區(qū)別

數(shù)據(jù)是載荷信息的物理符號或稱為載體,數(shù)據(jù)能表示信息,但并非任何數(shù)據(jù)都能表示信息。

信息是人們消化理解了的數(shù)據(jù)。

信息是抽象的,不隨數(shù)據(jù)設(shè)備所決定的數(shù)據(jù)形式而改變。

數(shù)據(jù)的表示方式具有可選性。

信息是反映客觀現(xiàn)實(shí)世界的知識,用不同的數(shù)據(jù)形式可以表示同樣的信息。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/983.?dāng)?shù)據(jù)處理

數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過程。廣義地講,它包括對數(shù)據(jù)的收集、存儲、加工、分類、檢索、傳播等一系列活動。狹義地講,它是指對所輸入的數(shù)據(jù)進(jìn)行加工整理。信息=數(shù)據(jù)+處理例如,人的“出生日期”是與生俱來的不可改變的基本特征之一,屬于原始數(shù)據(jù),而年齡使用現(xiàn)年與出生日期相減而得的,具有相對性。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/99數(shù)據(jù)收集原始數(shù)據(jù)信息傳播二次數(shù)據(jù)數(shù)據(jù)存儲((信息)處理1數(shù)據(jù)存儲處理2通信

圖1-1數(shù)據(jù)與信息的關(guān)系第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/9101.信息系統(tǒng)

信息系統(tǒng)只為了某些明確的目的而建立的,它是有人員、設(shè)備、程序和數(shù)據(jù)集合構(gòu)成的統(tǒng)一整體。信息系統(tǒng)的主要功能是提供信息,以支持一個(gè)組織機(jī)構(gòu)的運(yùn)行、管理和決策。更確切地說,信息系統(tǒng)將不使用的數(shù)據(jù)形式加工成可利用的形式。1.1.2信息系統(tǒng)第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/9112.信息系統(tǒng)分類(1)數(shù)據(jù)處理系統(tǒng)EDP(ElectronicDataProcessing):用計(jì)算機(jī)代替繁雜的手工事務(wù)處理工作。目的:提高數(shù)據(jù)處理的準(zhǔn)確性、及時(shí)性,節(jié)約人力,提高工作效率。(2)管理信息系統(tǒng)MIS(ManagementInformationSystem):由若干子系統(tǒng)構(gòu)成的一個(gè)集成的人機(jī)系統(tǒng),從組織的全局出發(fā),實(shí)現(xiàn)數(shù)據(jù)共享

,提供分析、計(jì)劃、預(yù)測、控制等方面的綜合信息。目的:發(fā)揮系統(tǒng)的綜合效益,提高管理水平。(3)決策支持系統(tǒng)DSS(DecisionSupportSystem):為決策過程提供有效的信息和輔助決策手段的人機(jī)系統(tǒng)。目的:幫助決策者提高決策的科學(xué)性及有效性。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論§1.2計(jì)算機(jī)數(shù)據(jù)管理的發(fā)展2024/3/913

20世紀(jì)50年代以前,數(shù)據(jù)的組織和管理完全靠程序員手工完成。其硬件是:外存只有紙帶、卡片、磁帶,沒有磁盤等直接存取的存儲設(shè)備;軟件是:沒有操作系統(tǒng),沒有管理數(shù)據(jù)的軟件;數(shù)據(jù)處理方式是批處理。數(shù)據(jù)與應(yīng)用程序之間的關(guān)系如圖1-2所示。第一階段:人工管理階段(50年代中期以前)第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/914圖1-2人工管理數(shù)據(jù)與程序的關(guān)系應(yīng)用程序2數(shù)據(jù)2數(shù)據(jù)n應(yīng)用程序n應(yīng)用程序1數(shù)據(jù)1

第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/915

特點(diǎn):

(1)數(shù)據(jù)與程序不具有獨(dú)立性一組數(shù)據(jù)對應(yīng)一組程序。這就使得程序依賴于數(shù)據(jù),如果數(shù)據(jù)的類型、格式或者數(shù)據(jù)量、存取方法、輸入輸出方式等改變了,程序必須做相應(yīng)的修改。(2)數(shù)據(jù)不能長期保存由于數(shù)據(jù)是面向應(yīng)用程序的,在一個(gè)程序中定義的數(shù)據(jù),無法被其他程序利用,因此程序與程序之間存在大量的重復(fù)數(shù)據(jù)。(3)系統(tǒng)中沒有對數(shù)據(jù)進(jìn)行管理的軟件數(shù)據(jù)管理任務(wù),包括存儲結(jié)構(gòu)、存儲方法、輸入輸出方法等完全由計(jì)算機(jī)自負(fù)其責(zé)。這就給應(yīng)用程序設(shè)計(jì)人員增加了很大的負(fù)擔(dān)。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/916第二階段:文件系統(tǒng)階段(50年代后期至60年代中后期)

20世紀(jì)50年代后期到60年代中期,這時(shí)硬件方面已有了磁盤、磁鼓等直接存取存儲設(shè)備;軟件方面,操作系統(tǒng)中已經(jīng)有了專門的數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng);處理方式上不僅有了批處理,而且能夠聯(lián)機(jī)實(shí)時(shí)處理。由于文件系統(tǒng)具有數(shù)據(jù)的增、刪、改等操作,使得數(shù)據(jù)管理變得輕松,且數(shù)據(jù)可以反復(fù)使用。但這個(gè)階段仍存在一些問題,如數(shù)據(jù)冗余度大、數(shù)據(jù)共享性差等。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/917文件系統(tǒng)存在的問題

(1)數(shù)據(jù)冗余和數(shù)據(jù)不一致(DataRedundancyandInconsistency)(2)數(shù)據(jù)訪問困難(DifficultyinAccessingData)(3)數(shù)據(jù)孤立(DataIsolation)(4)完整性問題(IntegrityProblems)(5)原子性問題(AtomicityProblems)(6)并發(fā)性問題(Concurrent-accessAnomalies)(7)安全性問題(SecurityProblems)第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/918

圖1-3文件系統(tǒng)數(shù)據(jù)與程序的關(guān)系物理文件N物理文件1應(yīng)用程序N應(yīng)用程序1應(yīng)用程序2物理文件2

文件系統(tǒng)

第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/919

20世紀(jì)60年代后期以來,計(jì)算機(jī)越來越多地應(yīng)用于管理領(lǐng)域,使得數(shù)據(jù)量急劇增長。同時(shí),人們對數(shù)據(jù)共享的要求也越來越強(qiáng)烈。這時(shí)硬件已有大容量硬盤,硬件價(jià)格下降;軟件則價(jià)格上升,為編制和維護(hù)系統(tǒng)軟件及應(yīng)用程序所需的成本相對增加;在處理方式上,聯(lián)機(jī)實(shí)時(shí)處理要求更多,并開始提出和考慮分布處理。文件系統(tǒng)管理數(shù)據(jù)已經(jīng)不能滿足應(yīng)用的需求,于是為了解決多用戶、多應(yīng)用共享數(shù)據(jù)的要求,使數(shù)據(jù)為盡可能多的應(yīng)用服務(wù),出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng)即數(shù)據(jù)庫管理系統(tǒng)。第三階段:數(shù)據(jù)庫系統(tǒng)階段(60年代后期至70年代后期)第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/920與人工管理和文件系統(tǒng)相比,數(shù)據(jù)庫系統(tǒng)的特點(diǎn)主要有以下幾個(gè)方面:(1)數(shù)據(jù)結(jié)構(gòu)化(2)數(shù)據(jù)的共享性高,冗余度低,易擴(kuò)充(3)數(shù)據(jù)獨(dú)立性高(4)數(shù)據(jù)由DBMS統(tǒng)一管理和控制第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/921

圖1-5分布式數(shù)據(jù)庫系統(tǒng)

第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論計(jì)算機(jī)1

DB1通信網(wǎng)絡(luò)計(jì)算機(jī)2計(jì)算機(jī)3

DB3

DB2§1.3數(shù)據(jù)庫系統(tǒng)的組成1.3.1數(shù)據(jù)庫系統(tǒng)的組成1.3.2三級結(jié)構(gòu)1.3.3數(shù)據(jù)庫的二級映象功能與數(shù)據(jù)獨(dú)立性1.3.4DBMS的主要功能2024/3/9231.硬件系統(tǒng)2.數(shù)據(jù)庫集合3.系統(tǒng)軟件(DBMS)(DataBaseManagementSystem,簡稱DBMS)4.數(shù)據(jù)庫管理員(DataBaseAdministrator,簡稱DBA)5.用戶1.3.1數(shù)據(jù)庫系統(tǒng)的組成第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/924數(shù)據(jù)庫管理系統(tǒng)操作系統(tǒng)硬件數(shù)據(jù)庫應(yīng)用系統(tǒng)專業(yè)用戶數(shù)據(jù)庫管理員最終用戶圖1-6數(shù)據(jù)庫系統(tǒng)層次示意圖第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/925

數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)是指數(shù)據(jù)庫系統(tǒng)是由外模式、模式和內(nèi)模式三級構(gòu)成。1.模式(Schema)2.外模式(ExternalSchema)3.內(nèi)模式(InternalSchema)1.3.2三級結(jié)構(gòu)第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/926

模式也稱邏輯模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖,屬于邏輯層抽象(LogicalLevel)。它是數(shù)據(jù)庫系統(tǒng)模式結(jié)構(gòu)的中間層,既不涉及數(shù)據(jù)的物理存儲細(xì)節(jié)和硬件環(huán)境,也與具體的應(yīng)用程序,與所使用的應(yīng)用開發(fā)工具及高級程序設(shè)計(jì)語言(如C,COBOL,F(xiàn)ORTRAN)無關(guān)。模式實(shí)際上是數(shù)據(jù)庫數(shù)據(jù)在邏輯級上的視圖。一個(gè)數(shù)據(jù)庫只有一個(gè)模式。數(shù)據(jù)庫模式以某一種數(shù)據(jù)模型為基礎(chǔ),統(tǒng)一綜合地考慮了所有用戶的需求,并將這些需求有機(jī)地結(jié)合成一個(gè)邏輯整體。定義模式時(shí)不僅要定義數(shù)據(jù)的邏輯結(jié)構(gòu),例如數(shù)據(jù)記錄由哪些數(shù)據(jù)項(xiàng)構(gòu)成,數(shù)據(jù)項(xiàng)的名字、類型、取值范圍等,而且要定義數(shù)據(jù)之間的聯(lián)系,定義與數(shù)據(jù)有關(guān)的安全性、完整性要求。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/927

外模式也稱子模式(Subschema)或用戶模式,屬于視圖層抽象(ViewLevel),它是數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶)能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)邏輯表示。外模式通常是模式的子集。一個(gè)數(shù)據(jù)庫可以有多個(gè)外模式。由于它是各個(gè)用戶的數(shù)據(jù)視圖,如果不同的用戶在應(yīng)用需求、看待數(shù)據(jù)的方式、對數(shù)據(jù)保密的要求等方面存在差異,則其外模式描述就是不同的。即使對模式中同一數(shù)據(jù),在外模式中的結(jié)構(gòu)、類型、長度、保密級別等都可以不同。另一方面,同一外模式也可以為某一用戶的多個(gè)應(yīng)用系統(tǒng)所使用,但一個(gè)應(yīng)用程序只能使用一個(gè)外模式。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/928

內(nèi)模式也稱存儲模式(StorageSchema),屬于物理層抽象(PhysicalLevel)。一個(gè)數(shù)據(jù)庫只有一個(gè)內(nèi)模式。它是數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式。例如,記錄的存儲方式是順序存儲、按照B樹結(jié)構(gòu)存儲還是按hash方法存儲;索引按照什么方式組織;數(shù)據(jù)是否壓縮存儲,是否加密;數(shù)據(jù)的存儲記錄結(jié)構(gòu)有何規(guī)定等。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/929數(shù)據(jù)庫管理系統(tǒng)在三級模式之間提供了兩層映象:

·

外模式/模式映象

·

模式/內(nèi)模式映象正是這兩層映象保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論1.3.3數(shù)據(jù)庫的二級映象功能與數(shù)據(jù)獨(dú)立性2024/3/9301.外模式/模式映象模式描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu),外模式描述的是數(shù)據(jù)的局部邏輯結(jié)構(gòu)。對應(yīng)于同一個(gè)模式可以有任意多個(gè)外模式。對于每一個(gè)外模式,數(shù)據(jù)庫系統(tǒng)都有一個(gè)外模式/模式映象,它定義了該外模式與模式之間的對應(yīng)關(guān)系。這些映象定義通常包含在各自外模式的描述中。當(dāng)模式改變時(shí)(例如增加新的關(guān)系、新的屬性、改變屬性的數(shù)據(jù)類型等),由數(shù)據(jù)庫管理員對各個(gè)外模式/模式的映象作相應(yīng)改變,可以使外模式保持不變。應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)與程序的邏輯獨(dú)立性,簡稱數(shù)據(jù)的邏輯獨(dú)立性。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/9312.模式/內(nèi)模式映象數(shù)據(jù)庫中只有一個(gè)模式,也只有一個(gè)內(nèi)模式,所以模式/內(nèi)模式映象是唯一的,它定義了數(shù)據(jù)全局邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的對應(yīng)關(guān)系。例如,說明邏輯記錄和字段在內(nèi)部是如何表示的。該映象定義通常包含在模式描述中。當(dāng)數(shù)據(jù)庫的存儲結(jié)構(gòu)改變了(例如選用了另一種存儲結(jié)構(gòu)),由數(shù)據(jù)庫管理員對模式/內(nèi)模式映象作相應(yīng)改變,可以使模式保持不變,從而應(yīng)用程序也不必改變。保證了數(shù)據(jù)與程序的物理獨(dú)立性,簡稱數(shù)據(jù)的物理獨(dú)立性。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/932物理獨(dú)立性是指用戶的應(yīng)用程序與存儲在磁盤上的數(shù)據(jù)庫中數(shù)據(jù)的相互獨(dú)立性。也就是說,數(shù)據(jù)在磁盤上的數(shù)據(jù)庫中的存儲是由DBMS管理的,用戶程序一般不需要了解。應(yīng)用程序要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu)也就是數(shù)據(jù)庫中的數(shù)據(jù),這樣在計(jì)算機(jī)存儲設(shè)備上的物理存儲改變時(shí),應(yīng)用程序可以不必改變,而由DBMS來處理這種改變,這又稱為“物理獨(dú)立性”。有的DBMS還提供一些功能使得某些程序上數(shù)據(jù)庫的邏輯結(jié)構(gòu)改變了,用戶程序也可以不改變,這又稱為“邏輯獨(dú)立性”所以說,數(shù)據(jù)獨(dú)立性是數(shù)據(jù)庫的一種特征和優(yōu)點(diǎn),它有利于在數(shù)據(jù)庫結(jié)構(gòu)修改應(yīng)用程序盡可能的不改變或少改變,這樣就大大減少了應(yīng)用程序開發(fā)人員的工作量。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/933圖1-7數(shù)據(jù)庫的三級結(jié)構(gòu)和兩個(gè)獨(dú)立性2024/3/9341.數(shù)據(jù)定義功能

DBMS提供數(shù)據(jù)定義語言(DataDefinitionLanguage,簡稱DDL)2.數(shù)據(jù)操縱功能

DBMS還提供數(shù)據(jù)操縱語言(DataManipulationLanguage,簡稱DML)第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論1.3.4DBMS的主要功能2024/3/9353.數(shù)據(jù)庫的運(yùn)行管理(1)并發(fā)(Concurrency)(2)數(shù)據(jù)的安全性(Security)保護(hù)(3)數(shù)據(jù)的完整性(Integrity)檢查(4)數(shù)據(jù)庫恢復(fù)(Recovery)4.數(shù)據(jù)字典數(shù)據(jù)字典DD(DataDictionary)中存放著對實(shí)際數(shù)據(jù)庫各級模式所做的定義,即對數(shù)據(jù)庫結(jié)構(gòu)的描述。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論§1.4數(shù)據(jù)和數(shù)據(jù)聯(lián)系的描述1.4.1三個(gè)世界1.4.2E-R模型(Entity-RelationshipModel)1.4.3E-R模型的實(shí)例2024/3/9371.現(xiàn)實(shí)世界在現(xiàn)實(shí)世界中,事物及事物之間存在著聯(lián)系,這種聯(lián)系是客觀存在的。2.概念世界(1)實(shí)體(Entity)客觀存在并可相互區(qū)別的事物稱為實(shí)體。例如,一個(gè)職工、一個(gè)學(xué)生、一個(gè)部門、一門課、學(xué)生的一次選課、部門的一次訂貨、老師與系的工作關(guān)系(即某位老師在某系工作)等都是實(shí)體。(2)屬性(Attribute)實(shí)體所具有的某一特性稱為屬性。一個(gè)實(shí)體可以由若干個(gè)屬性來刻畫。例如學(xué)生實(shí)體可以由學(xué)號、姓名、性別、出生年份、系、入學(xué)時(shí)間等屬性組成。(94002268,張山,男,1976,計(jì)算機(jī)系,1994)。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論1.4.1三個(gè)世界2024/3/938

(3)關(guān)鍵字(Key)唯一標(biāo)識實(shí)體的屬性集稱為關(guān)鍵字。例如學(xué)號是學(xué)生實(shí)體的關(guān)鍵字。(4)聯(lián)系(Relationship)在現(xiàn)實(shí)世界中,事物內(nèi)部以及事物之間是有聯(lián)系的,這些聯(lián)系在信息世界中反映為實(shí)體(型)內(nèi)部的聯(lián)系和實(shí)體(型)之間的聯(lián)系。實(shí)體內(nèi)部的聯(lián)系通常是指組成實(shí)體的各屬性之間的聯(lián)系。實(shí)體之間的聯(lián)系通常是指不同實(shí)體集之間的聯(lián)系。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/939(5)實(shí)體型(EntityType)具有相同屬性的實(shí)體必然具有共同的特征和性質(zhì)。用實(shí)體名及其屬性名集合來抽象和刻畫同類實(shí)體,稱為實(shí)體型。例如,學(xué)生(學(xué)號,姓名,性別,出生年份,系,入學(xué)時(shí)間)就是一個(gè)實(shí)體型。(6)實(shí)體集(EntitySet)同型實(shí)體的集合稱為實(shí)體集。例如,全體學(xué)生就是一個(gè)實(shí)體集。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/940相關(guān)英文講解:Entitytype:Agroupofobjectswiththesameproperties,whichareidentifiedbytheenterpriseashavinganindependentexistence.Entityoccurrence:Auniquelyidentifiableobjectofanentitytype.Attribute:Apropertyofanentityorarelationshiptype.Candidatekey:Theminimalsetofattributesthatuniquelyidentifieseachoccurrenceofanentitytype.3.機(jī)器世界數(shù)據(jù)庫中的數(shù)據(jù)是有結(jié)構(gòu)的,這種結(jié)構(gòu)用數(shù)據(jù)模型表示。數(shù)據(jù)模型將概念世界中的實(shí)體及實(shí)體間的聯(lián)系進(jìn)一步抽象成便于計(jì)算機(jī)處理的方式。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/941第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論1.4.2E-R模型(Entity-RelationshipModel)1.概念概念模型是對信息世界建模,所以概念模型應(yīng)該能夠方便、準(zhǔn)確地表示出上述信息世界中的常用概念。概念模型的表示方法很多,其中最為著名最為常用的是P.P.S.Chen于1976年提出的實(shí)體-聯(lián)系方法(Entity-RelationshipApproach)。該方法用E-R圖來描述現(xiàn)實(shí)世界的概念模型,E-R方法也稱為E-R模型。2024/3/9422.描述概念世界,建立概念模型的實(shí)用工具

E-R圖提供了表示實(shí)體型、屬性和聯(lián)系的方法:

·

實(shí)體型:用矩形表示,矩形框內(nèi)寫明實(shí)體名。

·

屬性:用橢圓形表示,并用無向邊將其與相應(yīng)的實(shí)體連接起來。

·

聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實(shí)體連接起來,同時(shí)在無向邊旁標(biāo)上聯(lián)系的類型(1:1,1:n或m:n)。

相關(guān)英文講解:TheERmodelusesahigherlevelofabstractionthanthesemanticnetbycombiningsetsofentityoccurrencesintoentitytypesandsetsofrelationshipoccurrencesintorelationshiptypes.第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/9433.聯(lián)系的類型兩個(gè)實(shí)體型之間的聯(lián)系可以分為三類:(1)一對一聯(lián)系(1:1)設(shè)A,B為兩個(gè)實(shí)體集。若A中的每個(gè)實(shí)體至多和B中的一個(gè)實(shí)體有聯(lián)系,反過來,B中的每實(shí)體至多和A中的一個(gè)實(shí)體有聯(lián)系,稱A對B或B對A是1:1聯(lián)系,見圖1-8。例如,一個(gè)公司只有一個(gè)總經(jīng)理,同時(shí)一個(gè)總經(jīng)理不能在其他公司兼職。注意“至多”一詞的含義,1:1聯(lián)系不一定都是一一對應(yīng)的關(guān)系。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/944圖1-8一對一聯(lián)系第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/945(2)一對多聯(lián)系(1:n)如果A中的每個(gè)實(shí)體可以和B中的幾個(gè)試題有聯(lián)系,而B中的每個(gè)實(shí)體至多和A中的一個(gè)實(shí)體有聯(lián)系,那么A對B屬于1:n聯(lián)系,見圖1-9。這類聯(lián)系比較普遍,例如,部門與職工只在一個(gè)部門就職(只占一個(gè)部門的編制)。又如,一個(gè)學(xué)生只能在一個(gè)系注冊,而一個(gè)系有很多個(gè)學(xué)生。一對一的聯(lián)系可以看作一對多聯(lián)系的一個(gè)特殊情況,即n=1時(shí)的特例。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/946圖1-9一對多聯(lián)系第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/947(3)多對多聯(lián)系(m:n)若A中的每個(gè)實(shí)體可與和B中的多個(gè)實(shí)體有聯(lián)系,反過來,B中的每個(gè)實(shí)體也可以與A中的多個(gè)試題有聯(lián)系,稱A對B或B對A是m:n聯(lián)系,見圖1-10。例如,一個(gè)學(xué)生可以選修多門課程,一門課程由多名學(xué)生選修。學(xué)生和課程間存在多對多聯(lián)系。圖書與讀者之間是m:n聯(lián)系:一位讀者可以借閱若干本圖書;同一本書可以相繼被幾個(gè)讀者借閱。研究人員和科研之間是m:n聯(lián)系:一個(gè)人可以參加多個(gè)課題;一個(gè)課題由多個(gè)人參加。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/948圖1-10多對多聯(lián)系第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/949相關(guān)英文講解:Relationshiptype:Asetofmeaningfulassociationsamongentitytypes.Relationshipoccurrence:Auniquelyidentifiableassociation,whichincludesoneoccurrencefromeachparticipatingentitytype.0..1Zerooroneentityoccurrence1..1(orjust1)Exactlyoneentityoccurrence0..*(orjust*)Zeroormanyentitiesoccurrences1..*Oneormanyentityoccurrences第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/950

以一個(gè)簡單的工廠管理為例。通過實(shí)地調(diào)查分析,該工廠需要管理的實(shí)體類型有雇員、部門、項(xiàng)目、零件、供應(yīng)商和倉庫。在該系統(tǒng)中,與管理這些實(shí)體有關(guān)的有以下這些聯(lián)系:(1)一個(gè)雇員只在一個(gè)部門工作,一個(gè)部門可以有多個(gè)雇員。(2)一個(gè)雇員可以參加一個(gè)以上的項(xiàng)目,每個(gè)項(xiàng)目常需要多個(gè)人參加。(3)每個(gè)項(xiàng)目必須確定一個(gè)負(fù)責(zé)人,一個(gè)人可以負(fù)責(zé)多個(gè)項(xiàng)目。(4)一個(gè)供應(yīng)商可以為若干個(gè)項(xiàng)目供應(yīng)零件,每個(gè)項(xiàng)目可以從不同的供應(yīng)商那里采購零件,每個(gè)項(xiàng)目需要多種零件。(5)系統(tǒng)還保存各個(gè)供應(yīng)商可以提供的各種零件與數(shù)量。(6)一種零件還可以由其他幾種零件組裝而成。(7)購買的零件存放在倉庫里,一個(gè)倉庫存放多種零件,一種零件也可以存放在不同的倉庫當(dāng)中。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論1.4.3E-R模型的實(shí)例2024/3/951雇員雇員號,姓名,性別,職稱,工資,住址部門部門號,名稱,電話,部門地址項(xiàng)目項(xiàng)目號,項(xiàng)目名,預(yù)算,開始日期,完成日期零件零件號,零件名,規(guī)模,單價(jià)供應(yīng)商編號,名稱,聯(lián)系人,電話,賬號倉庫庫號,地址,面積,電話表1-1第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/952圖1-11一個(gè)工廠的E-R圖第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/953本章小結(jié)

在這一章,我們介紹了數(shù)據(jù)與信息的區(qū)別與聯(lián)系、信息系統(tǒng)、計(jì)算機(jī)數(shù)據(jù)管理發(fā)展的4個(gè)階段(人工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫系統(tǒng)階段和分布式數(shù)據(jù)庫系統(tǒng)階段)、數(shù)據(jù)庫系統(tǒng)的組成、DBMS的主要功能,以及數(shù)據(jù)和數(shù)據(jù)聯(lián)系的描述方法:E-R模型。第一章數(shù)據(jù)庫系統(tǒng)導(dǎo)論2024/3/954教學(xué)目的:l

了解幾種典型的數(shù)據(jù)模型,重點(diǎn)掌握關(guān)系模型l

掌握關(guān)系數(shù)據(jù)庫的基本概念l

掌握關(guān)系代數(shù)中6種基本運(yùn)算教學(xué)要求:l

牢記有關(guān)概念,掌握6種關(guān)系運(yùn)算第二章關(guān)系數(shù)據(jù)模型2024/3/955課程章節(jié)§2.1非關(guān)系模型§2.2關(guān)系模型§2.3關(guān)系運(yùn)算第二章關(guān)系數(shù)據(jù)模型2024/3/956§2.1非關(guān)系模型

2.1.1層次模型(HierarchicalDataModel)滿足下面兩個(gè)條件的基本層次聯(lián)系的集合為層次模型:(1)有且只有一個(gè)結(jié)點(diǎn)沒有雙親結(jié)點(diǎn),這個(gè)結(jié)點(diǎn)稱為根結(jié)點(diǎn);(2)根以外的其他結(jié)點(diǎn)有且只有一個(gè)雙親結(jié)點(diǎn)。在層次模型中,每個(gè)結(jié)點(diǎn)表示一個(gè)記錄類型,記錄(類型)之間的聯(lián)系用結(jié)點(diǎn)之間的連線(有向邊)表示,這種聯(lián)系是父子之間的一對多的聯(lián)系。這就使得層次數(shù)據(jù)庫系統(tǒng)只能處理一對多的實(shí)體聯(lián)系。

第二章關(guān)系數(shù)據(jù)模型2024/3/9571.層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)

2.多對多聯(lián)系在層次模型中的表示

3.層次模型的數(shù)據(jù)操縱與完整性約束

4.層次數(shù)據(jù)模型的存儲結(jié)構(gòu)

5.層次模型的優(yōu)缺點(diǎn)

第二章關(guān)系數(shù)據(jù)模型2024/3/958層次模型的優(yōu)點(diǎn)主要有:

·

層次數(shù)據(jù)模型本身比較簡單。

·

對于實(shí)體間聯(lián)系是固定的,且預(yù)先定義好的應(yīng)用系統(tǒng),采用層次模型來實(shí)現(xiàn),其性能優(yōu)于關(guān)系模型,不低于網(wǎng)狀模型。

·

層次數(shù)據(jù)模型提供了良好的完整性支持。

層次模型的缺點(diǎn)主要有:

·

現(xiàn)實(shí)世界中很多聯(lián)系是非層次性的,如多對多聯(lián)系、一個(gè)結(jié)點(diǎn)具有多個(gè)雙親等,層次模型表示這類聯(lián)系的方法很笨拙,只能通過引入冗余數(shù)據(jù)(易產(chǎn)生不一致性)或創(chuàng)建非自然的數(shù)據(jù)組織(引入虛擬結(jié)點(diǎn))來解決。

·

對插入和刪除操作的限制比較多。

·

查詢子女結(jié)點(diǎn)必須通過雙親結(jié)點(diǎn)。

·

由于結(jié)構(gòu)嚴(yán)密,層次命令趨于程序化。

第二章關(guān)系數(shù)據(jù)模型2024/3/9592.1.2網(wǎng)狀模型(NetworkDataModel)

1.網(wǎng)狀數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)

把滿足以下兩個(gè)條件的基本層次聯(lián)系集合稱為網(wǎng)狀模型:(1)允許一個(gè)以上的結(jié)點(diǎn)無雙親;(2)一個(gè)結(jié)點(diǎn)可以有多于一個(gè)的雙親。2.網(wǎng)狀數(shù)據(jù)模型的操縱與完整性約束

3.網(wǎng)狀數(shù)據(jù)模型的存儲結(jié)構(gòu)

第二章關(guān)系數(shù)據(jù)模型2024/3/960學(xué)生選修程課(a)S1C1

S1C2S2C2S2C1S2C3S3C1S3C2S3C3S3C4C1C3C4C2S1S3S2(b)

圖2-1網(wǎng)狀模型第二章關(guān)系數(shù)據(jù)模型2024/3/9614.網(wǎng)狀數(shù)據(jù)模型的優(yōu)缺點(diǎn)

網(wǎng)狀數(shù)據(jù)模型的優(yōu)點(diǎn)主要有:

·

能夠更為直接地描述現(xiàn)實(shí)世界,如一個(gè)結(jié)點(diǎn)可以有多個(gè)雙親。

·

具有良好的性能,存取效率較高。

網(wǎng)狀數(shù)據(jù)模型的缺點(diǎn)主要有:

·

結(jié)構(gòu)比較復(fù)雜,而且隨著應(yīng)用環(huán)境的擴(kuò)大,數(shù)據(jù)庫的結(jié)構(gòu)就變得越來越復(fù)雜,不利于最終用戶掌握。

·

其DDL,DML語言復(fù)雜,用戶不容易使用。第二章關(guān)系數(shù)據(jù)模型2024/3/9622.1.3面向?qū)ο竽P?ObjectOrientedModel)

面向?qū)ο竽P椭凶罨镜母拍钍菍ο螅╫bject)和類(class)。1.對象現(xiàn)實(shí)世界中實(shí)體的模型化,它和記錄的概念相似,但更復(fù)雜。每個(gè)對象有一個(gè)唯一的標(biāo)識符,并把一個(gè)狀態(tài)(state)和一個(gè)行為(behavior)封裝在一起。2.類每個(gè)類有兩部分組成,其一是對象類型;其二是對這個(gè)對象類型進(jìn)行的操作方法。對象的狀態(tài)是描述該對象屬性值的集合,對象的行為是對該對象操作的集合。第二章關(guān)系數(shù)據(jù)模型2024/3/9633.類層次一個(gè)系統(tǒng)中所有的類和子類組成一個(gè)樹狀的類層次。4.面向?qū)ο竽P偷膬?yōu)缺點(diǎn)優(yōu)點(diǎn):由于面向?qū)ο竽P椭胁粌H包括描述對象狀態(tài)的屬性集,而且包括類的方法及類層次,具有更加豐富的表達(dá)能力。因此,面向?qū)ο蟮臄?shù)據(jù)庫比層次、網(wǎng)狀、關(guān)系數(shù)據(jù)庫使用方便。缺點(diǎn):由于模型復(fù)雜,系統(tǒng)實(shí)現(xiàn)起來難度大。第二章關(guān)系數(shù)據(jù)模型2024/3/964

§2.2關(guān)系模型(RelationDataModel)

2.2.1二維表

關(guān)系模型是用二維表的形式來表示實(shí)體和實(shí)體間聯(lián)系的數(shù)據(jù)模型。關(guān)系的邏輯結(jié)構(gòu)是一個(gè)二維表。表2-1和表2-2分別代表訂單和庫存兩個(gè)關(guān)系。表2-1訂單關(guān)系訂單號貨號訂貨單位售價(jià)訂貨量送貨地點(diǎn)96001JW65陽光公司806.50280天津96002VF90友誼商城588.881700北京96003AB55和平飯店250.991005上海96004EF77五環(huán)實(shí)業(yè)674.00600北京第二章關(guān)系數(shù)據(jù)模型2024/3/965表2-2庫存關(guān)系貨號品名庫存量倉庫地點(diǎn)單價(jià)VF90電話機(jī)1000北京550.00JW65收錄機(jī)300上海800.50SL88錄像機(jī)2600北京11898.50AB55收音機(jī)3000上海280.00EF77電視機(jī)1200廣州600.00第二章關(guān)系數(shù)據(jù)模型2024/3/9662.2.2關(guān)系術(shù)語

1.關(guān)系(Relations)一個(gè)關(guān)系對應(yīng)通常說的一張表;2.元組(Tuples)表中的一行即為一個(gè)元組;3.屬性(Attributes)表中的一列即為一個(gè)屬性,給每一個(gè)屬性起一個(gè)名稱即屬性名。如上表有六列,對應(yīng)六個(gè)屬性(學(xué)號,姓名,年齡,性別,系和年級);第二章關(guān)系數(shù)據(jù)模型2024/3/967

4.域(Domains)屬性的取值范圍稱為該屬性的域。如人的年齡一般在1~150歲之間,大學(xué)生年齡屬性的域是(14~38),性別的域是(男,女),系別的域是一個(gè)學(xué)校所有系名的集合;學(xué)號的域?yàn)?位整數(shù),姓名的域?yàn)樽址稀?.關(guān)鍵字或碼(Keys)表中的某個(gè)屬性組,它可以唯一確定一個(gè)元組,如圖1.27中的學(xué)號,可以唯一確定一個(gè)學(xué)生,也就成為本關(guān)系的主關(guān)鍵字;6.分量(Component):元組中的一個(gè)屬性值;7.關(guān)系模式(RelationSchemas)對關(guān)系的描述,一般表示為:關(guān)系名(屬性1,屬性2,…,屬性n)第二章關(guān)系數(shù)據(jù)模型2024/3/968相關(guān)英文講解:Recursiverelationship:Arelationshiptypewherethesameentitytypeparticipatesmorethanonceindifferentroles.Attribute:Apropertyofanentityorarelationshiptype.Attributedomain:Thesetofallowablevaluesforoneormoreattributes.Candidatekey:Theminimalsetofattributesthatuniquelyidentifieseachoccurrenceofanentitytype.第二章關(guān)系數(shù)據(jù)模型2024/3/9692.2.3關(guān)系模型的特點(diǎn)

1.關(guān)系必須規(guī)范化所謂規(guī)范化是指關(guān)系模型中的每一個(gè)關(guān)系模式都必須滿足一定的要求。2.

模型概念單一無論實(shí)體還是實(shí)體之間的聯(lián)系都用關(guān)系表示。對數(shù)據(jù)的檢索結(jié)果也是關(guān)系(即表)。所以其數(shù)據(jù)結(jié)構(gòu)簡單、清晰,用戶易懂易用。3.集合操作在關(guān)系模型中,操作的對象和結(jié)果都是元組的集合,即關(guān)系。第二章關(guān)系數(shù)據(jù)模型2024/3/970關(guān)系數(shù)據(jù)模型還具有下列優(yōu)點(diǎn):

·關(guān)系模型與非關(guān)系模型不同,它是建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上的。

·關(guān)系模型的存取路徑對用戶透明,從而具有更高的數(shù)據(jù)獨(dú)立性、更好的安全保密性,也簡化了程序員的工作和數(shù)據(jù)庫開發(fā)建立的工作。關(guān)系數(shù)據(jù)模型最主要的缺點(diǎn)是,由于存取路徑對用戶透明,查詢效率往往不如非關(guān)系數(shù)據(jù)模型。因此為了提高性能,必須對用戶的查詢請求進(jìn)行優(yōu)化,增加了開發(fā)數(shù)據(jù)庫管理系統(tǒng)難度。第二章關(guān)系數(shù)據(jù)模型2024/3/971§2.3關(guān)系運(yùn)算

關(guān)系代數(shù)的運(yùn)算對象是關(guān)系,運(yùn)算結(jié)果亦為關(guān)系。關(guān)系代數(shù)用到的運(yùn)算符包括四類:集合運(yùn)算符、專門的關(guān)系運(yùn)算符、算術(shù)比較符和邏輯運(yùn)算符。關(guān)系代數(shù)的運(yùn)算按運(yùn)算符的不同可分為傳統(tǒng)的集合運(yùn)算和專門的關(guān)系運(yùn)算兩類。第二章關(guān)系數(shù)據(jù)模型2024/3/9722.3.1傳統(tǒng)的集合運(yùn)算傳統(tǒng)的集合運(yùn)算是二目運(yùn)算,包括并、差、交三種運(yùn)算。1.并運(yùn)算(Union)設(shè)有兩個(gè)關(guān)系R和S,它們具有相同的元素。R和S的并是由屬于R或?qū)儆赟的元素組組成的集合。2.差運(yùn)算(Difference)設(shè)有兩個(gè)關(guān)系R和S,它們具有相同的元數(shù)。R和S的差是由屬于R但不屬于S的元組組成的集合。3.交(Intersection)設(shè)有兩個(gè)關(guān)系R和S,它們具有相同的元數(shù)。R和S的交是由既屬于R又屬于S的元組組成的集合。第二章關(guān)系數(shù)據(jù)模型2024/3/9732.3.2選擇運(yùn)算(Selection)選擇運(yùn)算是從指定的關(guān)系中選取滿足給定條件的若干元組以構(gòu)成一個(gè)新關(guān)系的運(yùn)算,其表現(xiàn)形式為:

SELECT關(guān)系名

WHERE條件

其中,條件是由常數(shù)、字段名及其通過相應(yīng)的比較運(yùn)算符和邏輯運(yùn)算符連接形成邏輯運(yùn)算式組成的。第二章關(guān)系數(shù)據(jù)模型2024/3/974例1:設(shè)有關(guān)系圖書如表所示,從圖書中找出書名是“數(shù)據(jù)庫理論”的書目。

圖書目總編號分類號書名作者出版單位單價(jià)

445501445502445503332211112266665544114455113388TP3/12TP3/12TP3/12TP5/10TP3/12TS7/21TR9/12TR7/90數(shù)據(jù)庫導(dǎo)論數(shù)據(jù)庫導(dǎo)論數(shù)據(jù)庫導(dǎo)論計(jì)算機(jī)基礎(chǔ)FoxBASE高等數(shù)學(xué)線性代數(shù)大學(xué)英語DateDateDate李偉張三劉明孫業(yè)胡玲科技出版社科技出版社科技出版社高等教育出版社電子工業(yè)出版社高等教育出版社北京大學(xué)出版社清華大學(xué)出版社17.9017.9017.9018.0032.6019.0020.8012.50SELECT圖書WHERE書名=″數(shù)據(jù)庫導(dǎo)論″查詢結(jié)果包括3個(gè)元組第二章關(guān)系數(shù)據(jù)模型2024/3/975例2:從圖書中找出高等教育出版社出版的,單價(jià)不超過20元的書目。SELECT圖書WHERE出版單位=“高等教育出版社”AND單價(jià)<=20

查詢結(jié)果包括兩個(gè)元組第二章關(guān)系數(shù)據(jù)模型2024/3/9762.3.3投影運(yùn)算(Projection)關(guān)系R上的投影是從R中選擇出若干屬性列組成新的關(guān)系。投影運(yùn)算是從指定的關(guān)系中選取指定的若干字段從而構(gòu)成一個(gè)新關(guān)系的運(yùn)算,其表現(xiàn)形式為:PROJECT關(guān)系名(字段名1,字段名2,……,字段名n)第二章關(guān)系數(shù)據(jù)模型2024/3/977例3:設(shè)有讀者關(guān)系,讀者(借書證號、姓名、性別、單位、職稱、地址)。按照單位在前,姓名在后的次序列出讀者名單。PROJECT讀者(單位、姓名)

此運(yùn)算結(jié)果包括元組數(shù)目不變,但減少了列的數(shù)目,同時(shí)列的順序顛倒過來了。例4:從圖書中找出藏書所涉及的所有的出版社。PROJECT圖書(出版社)查詢結(jié)果包括5個(gè)元組。

投影之后不僅減少了某些列,也可能減少了某些元組。以為取消了某些屬性之后,其余屬性可能有相同的值,造成重復(fù)元組,應(yīng)當(dāng)刪除完全相同的元組。第二章關(guān)系數(shù)據(jù)模型2024/3/9782.3.4聯(lián)接運(yùn)算(Join)

選擇和投影運(yùn)算都屬于一目運(yùn)算,它們的操作對象只是一個(gè)關(guān)系。連接運(yùn)算是二目運(yùn)算,需要兩個(gè)關(guān)系作為操作對象。1.聯(lián)接聯(lián)接運(yùn)算是選取若干個(gè)指定關(guān)系中的字段滿足給定條件的元組從左至右連接,從而構(gòu)成一個(gè)新關(guān)系的運(yùn)算,其表現(xiàn)形式為:

JOIN〈關(guān)系1〉A(chǔ)ND〈關(guān)系2〉WHERE〈條件〉第二章關(guān)系數(shù)據(jù)模型2024/3/979例5:設(shè)有訂單和庫存兩個(gè)關(guān)系如表2-4和表2-5所示。查看存庫量的商品詳情。

表2-4定單關(guān)系訂單號貨號訂貨單位售價(jià)訂貨量送貨地點(diǎn)96001JW65陽光公司806.50280天津96002VF90友誼商城588.881700北京96003AB55和平飯店250.991005上海96004EF77五環(huán)實(shí)業(yè)590.00600北京第二章關(guān)系數(shù)據(jù)模型2024/3/980貨號品名庫存量倉庫地點(diǎn)單價(jià)VF90電話機(jī)1000北京550.00JW65收音機(jī)300上海800.50SL88錄像機(jī)2600北京11898.50AB55收音機(jī)3000上海280.00EF77電視機(jī)1200廣州600.00表2-5庫存關(guān)系第二章關(guān)系數(shù)據(jù)模型2024/3/981表2.6定單關(guān)系訂貨號貨號訂貨單位售價(jià)訂購量送貨地點(diǎn)品名存庫量倉庫地點(diǎn)單價(jià)96001JW65陽光公司806.50280天津收音機(jī)300上海800.5096003AB55和平飯店250.991005上海收音機(jī)3000上海280.0096004EF77五還實(shí)業(yè)674.00600北京電視機(jī)1200廣州600.00JOIN訂單AND庫存WHERE訂單(貨號)=庫存(貨號)AND庫存量>=訂購量結(jié)果如表2-6所示。表2-6例5聯(lián)接結(jié)果第二章關(guān)系數(shù)據(jù)模型2024/3/982例6:設(shè)有3個(gè)關(guān)系:學(xué)生(學(xué)號,姓名,所在系,性別,籍貫,現(xiàn)住址……)課程(課程號,課程名稱,學(xué)分,課時(shí)……)選修(學(xué)號,課程號,成績)查詢成績90分以上的學(xué)生姓名。R1=SELECT選修WHERE成績>=90R2=PROJECT學(xué)生(學(xué)號,姓名)R3=JOINR1ANDR2WHERER1(學(xué)號)=R2(學(xué)號)如果用以下方式查詢,效率則低得多。S1=JOIN選課AND學(xué)生WHERE選課(學(xué)號)=學(xué)生(學(xué)號)S2=SELECTS1WHERE成績>=90第二章關(guān)系數(shù)據(jù)模型2024/3/983例7查看選修了“操作系統(tǒng)”課程的學(xué)生詳細(xì)情況。S1=SELECT課程WHERE課程名=“操作系統(tǒng)”S2=PROJECTS1(課程號,課程名)S3=JOIN選修ANDS2WHERE選課(課程號)=S2(課程號)S4=JOIN學(xué)生ANDS3WHERE學(xué)生(學(xué)號)=S3(學(xué)號)通過上述例子可見,不同關(guān)系中的公共屬性是自然聯(lián)接的“紐帶”。利用關(guān)系的投影、選擇和自然聯(lián)接可以方便地構(gòu)造新的關(guān)系。2.自然聯(lián)接自然聯(lián)接是去掉重復(fù)屬性的等值聯(lián)接。它屬于聯(lián)接運(yùn)算的一個(gè)特例,是最常用的聯(lián)接運(yùn)算,在關(guān)系運(yùn)算中起著重要作用。第二章關(guān)系數(shù)據(jù)模型2024/3/984

2.3.5外關(guān)鍵字

定義:如果一個(gè)關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它們是另外一個(gè)關(guān)系的關(guān)鍵字,則稱其為該關(guān)系的外關(guān)鍵字。在例5、例6中,訂單關(guān)系中的關(guān)鍵字是訂單號,屬性貨號不是本關(guān)系的關(guān)鍵字,而是庫存關(guān)系的關(guān)鍵字。因此,對于訂單關(guān)系而言,貨號是外關(guān)鍵字。在例7、例8中,選修關(guān)系的關(guān)鍵字是屬性組合(學(xué)號,課程號);學(xué)號或課程號的任何一個(gè)都不能唯一確定選修關(guān)系的整個(gè)元組,但它們分別是學(xué)生和課程關(guān)系的關(guān)鍵字。因此,對于選修而言,它們是外關(guān)鍵字。第二章關(guān)系數(shù)據(jù)模型2024/3/985本章小結(jié)

在這一章,我們首先簡單介紹了非關(guān)系模型:層次模型、網(wǎng)狀模型、面向?qū)ο竽P?。然后重點(diǎn)介紹了關(guān)系數(shù)據(jù)模型。通俗的講,一個(gè)關(guān)系就是一個(gè)二維表。表中的一行是關(guān)系的一個(gè)元組,表中的一列為關(guān)系中一個(gè)屬性的具體值。應(yīng)當(dāng)掌握關(guān)系模型的特點(diǎn)和關(guān)系運(yùn)算。關(guān)系運(yùn)算包括傳統(tǒng)的集合運(yùn)算(并、差、交)和專門的關(guān)系運(yùn)算(選擇、投影、聯(lián)接)。此外關(guān)鍵字是一個(gè)很重要的概念,它是使關(guān)系之間建立聯(lián)系的手段。第二章關(guān)系數(shù)據(jù)模型2024/3/986章后習(xí)題

1.?dāng)?shù)據(jù)模型有幾種,都是什么?2.解釋下列名詞:關(guān)系、關(guān)系模式、關(guān)系模型、屬性、元組、關(guān)鍵字、外關(guān)鍵字。3.試舉出層次模型、網(wǎng)狀模型和關(guān)系模型的例子,并給出一個(gè)實(shí)例。4.關(guān)系模型有事么特點(diǎn)?5.關(guān)系數(shù)據(jù)庫有哪些特點(diǎn)?6.試給出一個(gè)有3個(gè)以上屬性的關(guān)系,至少包括5個(gè)元組,并指出關(guān)鍵字。7.關(guān)系運(yùn)算有幾種類型,都包括哪些?8.能否舉出一個(gè)例子,聯(lián)接運(yùn)算但不是自然聯(lián)接。第二章關(guān)系數(shù)據(jù)模型2024/3/9879.試畫出選擇、投影、聯(lián)接運(yùn)算的流程圖,或用某種程序設(shè)計(jì)語言實(shí)現(xiàn)。10.設(shè)有學(xué)生選修課程數(shù)據(jù)庫,S(S#,SNAME,AGE,SEX,DEPARTMENT,ADDRESS,BIRTHPLACE)SC(S#,C#,GRADE)C(C#,CNAME,TEACHER)試用關(guān)系運(yùn)算查詢下列問題:(1)學(xué)生“李小波”所在的系。(2)學(xué)生“李小波”所選修的全部課程名稱。(3)所有成績都在80分以上的學(xué)生姓名及所在的系。第二章關(guān)系數(shù)據(jù)模型2024/3/988教學(xué)目的了解SQL的背景知識掌握SQL查詢語句掌握SQL數(shù)據(jù)定義語句CREATE、DROP、ALTER掌握數(shù)據(jù)操縱語句INSERT、DELETE、UPDATE掌握數(shù)據(jù)控制語句GRANT、REVOKE教學(xué)要求牢記有關(guān)概念,掌握SQL查詢第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/989§3.1SQL查詢§3.2SQL數(shù)據(jù)定義§3.3SQL數(shù)據(jù)操作§3.4SQL數(shù)據(jù)控制§3.5數(shù)據(jù)字典課程章節(jié)第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/990教學(xué)重點(diǎn)SQL數(shù)據(jù)定義:基本表、視圖、別名,建立索引SQL數(shù)據(jù)操縱:插入、更新、刪除SQL數(shù)據(jù)查詢教學(xué)難點(diǎn)SQL查詢:簡單查詢、聯(lián)接查詢、嵌套查詢、庫函數(shù)查詢、集合運(yùn)算第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/991SQL的特點(diǎn)

SQL語言集數(shù)據(jù)查詢(DataQuery)、數(shù)據(jù)操縱(DataManipulation)、數(shù)據(jù)定義(DataDefinition)和數(shù)據(jù)控制(DataControl)功能于一體,主要特點(diǎn)包括:1.綜合統(tǒng)一2.高度非過程化3.面向集合的操作方式4.以同一種語法結(jié)構(gòu)提供兩種使用方式5.語言簡捷,易學(xué)易用第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/992§3.1SQL查詢

SELECT-FROM-WHERE基本結(jié)構(gòu):SELECT[DISTINCT]目標(biāo)列SELECT子句FROM基本表(或視圖)列FROM子句[WHERE條件表達(dá)式]WHERE子句[GROUPBY列名1GROUPBY子句[HAVING內(nèi)部函數(shù)表達(dá)式]]HAVING字句[ORDERBY列名2[ASC/DESC]]第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/993注釋:選擇表中的全部列或部分列,這就是投影運(yùn)算。2.消除取值重復(fù)的行兩個(gè)本來并不完全相同的元組,投影到指定的某些列上后,可能變成相同的行了。3.如果指定DISTINCT短語,則表示在計(jì)算時(shí)要取消指定列中的重復(fù)值。如果不指定DISTINCT短語或指定ALL短語(ALL為缺省值),則表示不取消重復(fù)值。第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/994l

單價(jià)between10and20等價(jià)于單價(jià)>=10and單價(jià)<=20l

出版單位in(“人民出版社”,”科學(xué)出版社”)等價(jià)于出版單位=”人民出版社”

or出版單位=”科學(xué)出版社”l

書名like“數(shù)據(jù)庫%”

或書名like“數(shù)據(jù)庫__”like后面必須是字符串常量_下劃線任何一個(gè)字符

%任何多個(gè)字符(包括0個(gè))l

exists存在notexists不存在4.條件表達(dá)式(1)關(guān)系運(yùn)算(2)邏輯運(yùn)算(3)謂詞(4)幾種特殊的第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9956.集合的比較

SOME:“至少比一個(gè)……”;

ALL:“比所有的都……”。

7.集合基數(shù)的測試(1)測試一個(gè)子查詢的結(jié)構(gòu)是否為空

EXISTS:子查詢的結(jié)果不為空時(shí)為真;

NOTEXISTS:子查詢的結(jié)果為空時(shí)為真。(2)測試一個(gè)子查詢的結(jié)果是否存在重復(fù)元組

UNIQUE:子查詢的結(jié)果不存在重復(fù)元組時(shí)為真;

NOTUNIQUE:子查詢的結(jié)果存在重復(fù)元組時(shí)為真。5.集合成員資格的確認(rèn)

IN:當(dāng)指定元素在集合中時(shí)為真;

NOTIN:當(dāng)指定元素不在集合中時(shí)為真。第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9968.測試空值ISNULL:為空時(shí)為真;ISNOTNULL:不為空時(shí)為真。9.GROUPBY子句將查詢結(jié)果表按某一列或多列值分組,值相等的為一組。10.對查詢結(jié)果排序用戶可以用ORDERBY子句對查詢結(jié)果按照一個(gè)或多個(gè)屬性列的升序(ASC)或降序(DESC)排列,缺省值為升序。第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/997查詢實(shí)例例題:設(shè)圖書管理關(guān)系數(shù)據(jù)模型的三個(gè)關(guān)系模式:圖書(總編號,分類號,書名,作者,出版單位,單價(jià))讀者(借書證號,姓名,性別,單位,職稱,地址)借閱(借書證號,總編號,借閱日期,備注)第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9983.1.1簡單查詢例1:找出讀者李欣所在單位SELECT“讀者李欣所在單位:”,姓名,單位FROM讀者WHERE姓名=“李欣”;注:SELECT子句中允許有字符串常量(表達(dá)式的簡單情況)例2:查看所有讀者的全部情況SELECT*FROM讀者;注:SELECT子句中的*表示全部屬性的通配符在查詢中無條件限制時(shí),可省略WHERE子句第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/999例3:查找人民出版社和科學(xué)出版社的所有圖書及作者方法一:SELECT書名,作者,出版單位FROM圖書WHERE出版單位=“人民出版社”

OR出版單位=“科學(xué)出版社”;方法二:SELECT書名,作者,出版單位FROM圖書WHERE出版單位IN(“人民出版社”,“科學(xué)出版社”);第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9100例4:查找書名以“數(shù)據(jù)庫”打頭的所有圖書及作者SELECT書名,作者FROM圖書WHERE書名LIKE“數(shù)據(jù)庫%”;注:謂詞LIKE后面必須是字符串常量,其中可以使用兩個(gè)通配符:_下劃線任何一個(gè)字符%任何多個(gè)字符(包括0個(gè))

例5:列出圖書館中所有藏書的書名及出版單位SELECTDISTINCT書名,出版單位FROM圖書;注:DISTINCT從查詢結(jié)果中去掉重復(fù)元組第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9101例6:查出人民出版社的所有圖書及單價(jià),結(jié)果按單價(jià)降序排列SELECT書名,出版單位,單價(jià)FROM圖書;WHERE出版單位=“人民出版社”O(jiān)RDERBY單價(jià)DESC;第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9102例7:查找價(jià)格介于10和20元之間的圖書,結(jié)果按分類號和單價(jià)升序排列方法一:SELECT書名,作者,單價(jià),分類號FROM圖書WHERE單價(jià)BETWEEN10AND20ORDERBY分類號,單價(jià)[ASC];方法二:SELECT書名,作者,單價(jià),分類號FROM圖書WHERE單價(jià)>=10AND單價(jià)<=20ORDERBY分類號,單價(jià)[ASC];注:用ORDERBY可對查詢結(jié)果排序DESC(descending)降序ASC(ascending)升序多重排序:主關(guān)鍵字,次關(guān)鍵字,關(guān)鍵字3,……第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9103例8:檢索借了總編號為500088和100909兩本書的借書證號SELECTX.借書證號FROM借閱X,借閱YWHEREX.借書證號=Y(jié).借書證號ANDX.總編號=”500088”ANDY.總編號=”100909”;注:同一個(gè)關(guān)系借閱在一個(gè)查詢模塊中出現(xiàn)兩次,則必須引入別名X,Y用相同屬性時(shí)用“.”分開第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9104例9:求缺少職稱的讀者姓名SELECT姓名FROM讀者WHERE職稱ISNULL;注:列名IS[NOT]NULL不能寫成列名=NULL第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/91053.1.2聯(lián)接查詢查詢目標(biāo)涉及到兩個(gè)或幾個(gè)關(guān)系1.等值與非等值連接查詢

連接查詢中用來連接兩個(gè)表的條件稱為連接條件或連接謂詞。2.自身連接

連接操作不僅可以在兩個(gè)表之間進(jìn)行,也可以是一個(gè)表與其自己進(jìn)行連接,稱為表的自身連接。3.外連接

在通常的連接操作中,只有滿足連接條件的元組才能作為結(jié)果輸出。4.復(fù)合條件連接

上面各個(gè)連接查詢中,WHERE子句中只有一個(gè)條件,即連接謂詞。WHERE子句中可以有多個(gè)連接條件,稱為復(fù)合條件連接。注:連接條件中的字段類型必須是可比的,但不必相同第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9106例10:查找所有借閱了圖書的讀者姓名及所在單位SELECTDISTINCT姓名,單位FROM讀者,借閱WHERE讀者.借書證號=借閱.借書證號;

例11:找出讀者李欣所借的所有圖書的書名及借閱日期SELECT姓名,“所借圖書:”,書名,借閱日期FROM圖書,借閱,讀者WHERE讀者.借書證號=借閱.借書證號and借閱.總編號=圖書.總編號and姓名=”李欣”;注:查詢涉及到三個(gè)關(guān)系之間的自然聯(lián)接,用外關(guān)鍵字指出聯(lián)接條件第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9107例12:查找價(jià)格在20元以上已借出的圖書,結(jié)果按單價(jià)降序排序SELECT*FROM圖書,借閱WHERE圖書.總編號=借閱.總編號and單價(jià)>=20ORDERBY單價(jià)DESC;注:這里*代表圖書和借閱兩個(gè)關(guān)系聯(lián)接后的所有屬性第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9108

在SQL語言中,一個(gè)SELECT-FROM-WHERE語句稱為一個(gè)查詢塊。將一個(gè)查詢塊嵌套在另一個(gè)查詢塊的WHERE子句或HAVING短語的條件中的查詢稱為嵌套查詢。1.帶有IN謂詞的子查詢

在嵌套查詢中,子查詢的結(jié)果往往是一個(gè)集合,所以謂詞IN是嵌套查詢中最經(jīng)常使用的謂詞。2.帶有比較運(yùn)算符的子查詢

帶有比較運(yùn)算符的子查詢是指父查詢與子查詢之間用比較運(yùn)算符進(jìn)行連接。3.帶有ANY或ALL謂詞的子查詢

子查詢返回單值時(shí)可以用比較運(yùn)算符,而使用ANY或ALL謂詞時(shí)則必須同時(shí)使用比較運(yùn)算符。4.帶有EXISTS謂詞的子查詢

EXISTS代表存在量詞$。帶有EXISTS謂詞的子查詢不返回任何數(shù)據(jù),只產(chǎn)生邏輯真值“true”或邏輯假值“false”。3.1.3嵌套查詢第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9109例13:找出讀者李欣所借的所有圖書的書名及借閱日期SELECT姓名,“所借圖書:”,書名,借閱日期FROM圖書WHERE總編號IN(SELECT總編號FROM借閱WHERE借書證號IN(SELECT借書證號FROM讀者WHERE姓名=”李欣”)));第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9110例14:找出借閱了“C語言程序設(shè)計(jì)”一書的讀者姓名及所在單位方法一:SELECT姓名,單位FROM圖書,借閱,讀者WHERE讀者.借書證號=借閱.借書證號and借閱.總編號=圖書.總編號and書名=”C語言程序設(shè)計(jì)”;方法二:SELECT姓名,單位FROM讀者WHERE借書證號IN(SELECT借書證號FROM借閱WHERE總編號IN(SELECT總編號FROM圖書WHERE書名=”C語言程序設(shè)計(jì)”)));注:在嵌套查詢中最常用的是謂詞IN

并非所有的嵌套查詢都能用聯(lián)接查詢替代,往往是結(jié)合使用更顯得簡潔、方便第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9111例15:找出與李欣在同一天借書的讀者姓名、所在單位SELECT姓名,單位,借閱日期FROM讀者,借閱WHERE借閱.借書證號=讀者.借書證號AND借閱日期IN(SELECT借書日期FROM借閱,讀者WHERE借閱.借書證號=讀者.借書證號AND姓名=“李欣”);第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9112例16:找出沒有借閱任何圖書的讀者及所在單位方法一:SELECT姓名,單位FROM讀者WHERE借書證號NOTIN(SELECT借書證號FROM借閱);方法二:SELECT姓名,單位FROM讀者WHERENOTEXISTS(SELECT*FROM借閱WHERE借閱.借書證號=讀者.借書證號);注:EXISTS表示存在,若子查詢結(jié)果非空,則滿足條件

NOTEXISTS表示不存在,若子查詢結(jié)果為空,則滿足條件第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9113例17:找出藏書中所有與“數(shù)據(jù)庫導(dǎo)論”或“數(shù)據(jù)庫原理”在同一出版單位出版的書SELECT*FROM圖書WHERE出版單位=ANY(SELECT出版單位FROM圖書WHERE書名IN(“數(shù)據(jù)庫導(dǎo)論”,“數(shù)據(jù)庫原理”));注:ANY表示與子查詢結(jié)果的任何一個(gè)值相比較,滿足條件即可=ANY亦可用IN代替第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9114例18:找出藏書中比高等教育出版社的所有圖書單價(jià)更高的書籍方法一:SELECT*FROM圖書WHERE單價(jià)>ALL(SELECT單價(jià)FROM圖書WHERE出版單位=“高等教育出版社”);方法二:用函數(shù)SELECT*FROM圖書WHERE單價(jià)>(SELECTMAX(單價(jià))FROM圖書WHERE出版單位=“高等教育出版社”);注:ALL表示與子查詢結(jié)果的所有單價(jià)相比都高才算滿足條件第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9115為了進(jìn)一步方便用戶,增強(qiáng)檢索功能,SQL提供了許多集函數(shù),主要有:

COUNT(*)統(tǒng)計(jì)元組個(gè)數(shù)

COUNT(屬性名)統(tǒng)計(jì)一列中值的個(gè)數(shù)

SUM計(jì)算一列值的總和(此列必須是數(shù)值型)

AVG計(jì)算一列值的平均值(此列必須是數(shù)值型)

MAX求一列值中的最大值

MIN求一列值中的最小值例19:見例18方法二3.1.4使用庫函數(shù)查詢第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9116例20:求圖書館藏書的總冊數(shù)SELECT“藏書總冊數(shù):”,COUNT(*)FROM圖書;例21:求計(jì)算機(jī)科學(xué)系當(dāng)前借閱了圖書的讀者人數(shù)SELECT“計(jì)算機(jī)科學(xué)系借書人數(shù):”,COUNT(DISTINCT借書證號)FROM借閱WHERE借書證號IN(SELECT借書證號FROM讀者WHERE單位=“計(jì)算機(jī)科學(xué)系”);第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9117例22:求出各個(gè)出版社圖書的最高價(jià)格,最低價(jià)格和平均價(jià)格SELECT出版單位,MAX(單價(jià)),MIN(單價(jià)),AVG(單價(jià))FROM圖書GROUPBY出版單位;注:GROUPBY的作用是按屬性的取值對元組分組,然后對每一組分別使用庫函數(shù)此時(shí),若在SELECT子句中出現(xiàn)庫函數(shù),與之并列的其他項(xiàng)目必須也是庫函數(shù)或者是GROUPBY的對象,否則會出現(xiàn)邏輯錯(cuò)誤第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9118例23:找出藏書中各個(gè)出版單位的冊數(shù)、價(jià)值總額,并按總價(jià)排列,總價(jià)相同時(shí)按冊數(shù)降序排列

SELECT出版單位,“冊數(shù):”,COUNT(*),“總價(jià):”,SUM(單價(jià))FROM圖書GROUPBY出版單位ORDERBYSUM(單價(jià)),COUNT(*)DESC;注:SELECT子句中允許有字符串常量(表達(dá)式的簡單情況)第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9119例24:找出當(dāng)前至少借閱了5本圖書的讀者及所在單位SELECT姓名,單位FROM讀者WHERE借書證號IN(SELECT借書證號FROM借閱GROUPBY借書證號HAVINGCOUNT(*)>=5);第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9120例25:分別找出借書人數(shù)超過10人次的單位及具體人數(shù)SELECT單位,“借書人數(shù):”,COUNT(借書證號)FROM讀者,借閱WHERE讀者.借書證號=借閱.借書證號GROUPBY單位HAVINGCOUNT(借書證號)>10;注:HAVING子句通常在GROUPBY之后用,作用是限定分組檢索條件HAVING中條件必須包含庫函數(shù),WHERE子句里不能直接用庫函數(shù)HAVING子句與WHERE子句不矛盾,先用WHERE限定元組,再用GROUPBY分組,最后用HAVING限定分組的選擇條件第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9121SELECT語句的查詢結(jié)果是元組的集合,所以多個(gè)SELECT語句的結(jié)果可進(jìn)行集合操作。集合操作主要包括并操作UNION、交操作INTERSECT和差操作MINUS。集合并(UNION)集合交(INTERSECT)集合差(EXCEPT)MINUS3.1.5集合運(yùn)算第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9122例26:有一個(gè)校友通訊記錄關(guān)系,包含姓名、職稱和單位三個(gè)屬性,相應(yīng)的數(shù)據(jù)定義與讀者關(guān)系一致。求校友與讀者中具有教授、副教授職稱人員的并集。SELECT姓名,職稱,單位FROM讀者WHERE職稱IN(“教授”,“副教授”)UNIONSELECT姓名,職稱,單位FROM校友WHERE職稱IN(“教授”,“副教授”);注:子查詢目標(biāo)的結(jié)構(gòu)與類型必須互相匹配集合運(yùn)算結(jié)果將去掉重復(fù)元組第三章數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL2024/3/9123SQL語言中的SELECT句型靈活多樣,所表達(dá)的語義可以從簡單到復(fù)雜。

小節(jié)上述例子可知SELECT語句的一般語法如下:

SELECT查詢目標(biāo)

FROM關(guān)系

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論