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

下載本文檔

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

文檔簡(jiǎn)介

1、第1章 數(shù)據(jù)庫(kù)基本知識(shí)1.1 信息、數(shù)據(jù)與數(shù)據(jù)處理1.2 數(shù)據(jù)庫(kù)系統(tǒng)1.3 數(shù)據(jù)模型1.1 信息、數(shù)據(jù)與數(shù)據(jù)處理1.1.1 數(shù)據(jù)與信息1.1.2 數(shù)據(jù)處理1.1.3 數(shù)據(jù)處理的發(fā)展1.1.4 數(shù)據(jù)庫(kù)技術(shù)的發(fā)展1.1.5 數(shù)據(jù)庫(kù)新技術(shù)返回首頁(yè)1.1.1 數(shù)據(jù)與信息數(shù)據(jù)的概念包括兩個(gè)方面,即數(shù)據(jù)內(nèi)容和數(shù)據(jù)形式。數(shù)據(jù)內(nèi)容是指所描述客觀事物的具體特性,也就是通常所說的數(shù)據(jù)的“值”;數(shù)據(jù)形式則是指數(shù)據(jù)內(nèi)容存儲(chǔ)在媒體上的具體形式,也就是通常所說的數(shù)據(jù)的“類型”。數(shù)據(jù)主要有數(shù)字、文字、聲音、圖形和圖像等多種形式。信息是指數(shù)據(jù)經(jīng)過加工處理后所獲取的有用知識(shí)。信息是以某種數(shù)據(jù)形式表現(xiàn)的。數(shù)據(jù)和信息是兩個(gè)相互聯(lián)系

2、、但又相互區(qū)別的概念;數(shù)據(jù)是信息的具體表現(xiàn)形式,信息是數(shù)據(jù)有意義的表現(xiàn)。返回本節(jié)1.1.2 數(shù)據(jù)處理數(shù)據(jù)處理就是將數(shù)據(jù)轉(zhuǎn)換為信息的過程。數(shù)據(jù)處理的內(nèi)容主要包括:數(shù)據(jù)的收集、整理、存儲(chǔ)、加工、分類、維護(hù)、排序、檢索和傳輸?shù)纫幌盗谢顒?dòng)的總和。數(shù)據(jù)處理的目的是從大量的數(shù)據(jù)中,根據(jù)數(shù)據(jù)自身的規(guī)律和及其相互聯(lián)系,通過分析、歸納、推理等科學(xué)方法,利用計(jì)算機(jī)技術(shù)、數(shù)據(jù)庫(kù)技術(shù)等技術(shù)手段,提取有效的信息資源,為進(jìn)一步分析、管理和決策提供依據(jù)。數(shù)據(jù)處理也稱信息處理。返回本節(jié)1.1.3 數(shù)據(jù)處理的發(fā)展1人工管理階段早期的計(jì)算機(jī)主要用于科學(xué)計(jì)算,計(jì)算處理的數(shù)據(jù)量很小,基本上不存在數(shù)據(jù)管理的問題。從50年代初,開始將計(jì)

3、算機(jī)應(yīng)用于數(shù)據(jù)處理。 2文件管理階段從50年代后期開始至60年代末為文件管理階段,應(yīng)用程序通過專門管理數(shù)據(jù)的軟件即文件系統(tǒng)管理來使用數(shù)據(jù)。 3數(shù)據(jù)庫(kù)管理階段數(shù)據(jù)庫(kù)管理階段是60年代末在文件管理基礎(chǔ)上發(fā)展起來的。圖1-1 人工管理階段程序與數(shù)據(jù)的關(guān)系 圖1-2 文件管理階段程序與數(shù)據(jù)的關(guān)系圖1-3 應(yīng)用程序與數(shù)據(jù)之間的關(guān)系返回本節(jié)1.1.4 數(shù)據(jù)庫(kù)技術(shù)的發(fā)展(1)1969年IBM公司研制、開發(fā)了數(shù)據(jù)庫(kù)管理系統(tǒng)商品化軟件IMS(Information Management System),IMS的數(shù)據(jù)模型是層次結(jié)構(gòu)的。(2)美國(guó)數(shù)據(jù)系統(tǒng)語(yǔ)言協(xié)會(huì)CODASYL(Conference On Data

4、System Language)下屬的數(shù)據(jù)庫(kù)任務(wù)組DBTG(Data Base Task Group)對(duì)數(shù)據(jù)庫(kù)方法進(jìn)行系統(tǒng)的討論、研究,提出了若干報(bào)告,成為OBTG報(bào)告。OBTG報(bào)告確定并且建立了數(shù)據(jù)庫(kù)系統(tǒng)的許多概念、方法和技術(shù)。 (3)1970年IBM公司San Jose研究實(shí)驗(yàn)室的研究員E.F.Codd發(fā)表了著名的“大型共享系統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)的關(guān)系模型”論文,為關(guān)系數(shù)據(jù)庫(kù)技術(shù)奠定了理論基礎(chǔ)。自20世紀(jì)70年代開始,數(shù)據(jù)庫(kù)技術(shù)有了很大的發(fā)展,表現(xiàn)為:(1)數(shù)據(jù)庫(kù)方法,特別是OBTG方法和思想應(yīng)用于各種計(jì)算機(jī)系統(tǒng),出現(xiàn)了許多商品化數(shù)據(jù)庫(kù)系統(tǒng),它們大都是基于網(wǎng)狀模型和層次模型的。(2)這些商用系統(tǒng)

5、的運(yùn)行,使數(shù)據(jù)庫(kù)技術(shù)日益廣泛地應(yīng)用到企業(yè)管理、事務(wù)處理、交通運(yùn)輸、信息檢索、軍事指揮、政府管理和輔助決策等各個(gè)方面,深入到生產(chǎn)、生活的各個(gè)領(lǐng)域。數(shù)據(jù)庫(kù)技術(shù)成為實(shí)現(xiàn)和優(yōu)化信息系統(tǒng)的基本技術(shù)。(3)關(guān)系方法的理論研究和軟件系統(tǒng)的研制取得了很大的成果。 返回本節(jié)1.1.5 數(shù)據(jù)庫(kù)新技術(shù)1分布式數(shù)據(jù)庫(kù)分布式數(shù)據(jù)庫(kù)系統(tǒng)(Distributed DataBase System,DDBS)是在集中式數(shù)據(jù)庫(kù)基礎(chǔ)上發(fā)展起來的,是數(shù)據(jù)庫(kù)技術(shù)與計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)、分布處理技術(shù)相結(jié)合的產(chǎn)物。分布式數(shù)據(jù)庫(kù)系統(tǒng)的主要特點(diǎn)如下:(1)數(shù)據(jù)是分布的。 (2)數(shù)據(jù)是邏輯相關(guān)的。(3)結(jié)點(diǎn)的自治性。 2面向?qū)ο髷?shù)據(jù)庫(kù)面向?qū)ο髷?shù)據(jù)庫(kù)系

6、統(tǒng)(Object-Oriented DataBase System,OODBS)是將面向?qū)ο蟮哪P?、方法和機(jī)制,與先進(jìn)的數(shù)據(jù)庫(kù)技術(shù)有機(jī)地結(jié)合而形成的新型數(shù)據(jù)庫(kù)系統(tǒng)。它從關(guān)系模型中脫離出來,強(qiáng)調(diào)在數(shù)據(jù)庫(kù)框架中的發(fā)展類型、數(shù)據(jù)抽象、繼承和持久性;它的基本設(shè)計(jì)思想是,一方面把面向?qū)ο笳Z(yǔ)言向數(shù)據(jù)庫(kù)方向擴(kuò)展,使應(yīng)用程序能夠存取并處理對(duì)象;另一方面擴(kuò)展數(shù)據(jù)庫(kù)系統(tǒng),使其具有面向?qū)ο蟮奶卣鳎峁┮环N綜合的語(yǔ)義數(shù)據(jù)建模概念集,以便對(duì)現(xiàn)實(shí)世界中復(fù)雜應(yīng)用的實(shí)體和聯(lián)系建模。 3多媒體數(shù)據(jù)庫(kù)多媒體數(shù)據(jù)庫(kù)系統(tǒng)(Multi-Media DataBase System,MDBS)是數(shù)據(jù)庫(kù)技術(shù)與多媒體技術(shù)相結(jié)合的產(chǎn)物。(1)數(shù)

7、據(jù)量大。(2)結(jié)構(gòu)復(fù)雜。 (3)時(shí)序性。 (4)數(shù)據(jù)傳輸?shù)倪B續(xù)性。 從實(shí)際應(yīng)用的角度考慮,多媒體數(shù)據(jù)庫(kù)管理系統(tǒng)(MDBMS)應(yīng)具有如下基本功能:(1)應(yīng)能夠有效地表示多種媒體數(shù)據(jù),對(duì)不同媒體的數(shù)據(jù),如文本、圖形、圖像、聲音等能夠按應(yīng)用的不同,采用不同的表示方法。(2)應(yīng)能夠處理各種媒體數(shù)據(jù),正確識(shí)別和表現(xiàn)各種媒體數(shù)據(jù)的特征、各種媒體間的空間或時(shí)間的關(guān)聯(lián)。(3)應(yīng)能夠像其他格式化數(shù)據(jù)一樣對(duì)多媒體數(shù)據(jù)進(jìn)行操作。(4)應(yīng)具有開放功能,提供多媒體數(shù)據(jù)庫(kù)的應(yīng)用程序接口等。4數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)倉(cāng)庫(kù)可以提供對(duì)企業(yè)數(shù)據(jù)方便訪問和具有強(qiáng)大分析能力的工具,從企業(yè)數(shù)據(jù)中獲得有價(jià)值的信息,發(fā)掘企業(yè)的競(jìng)爭(zhēng)優(yōu)勢(shì),提高企業(yè)的運(yùn)營(yíng)

8、效率和指導(dǎo)企業(yè)決策。數(shù)據(jù)倉(cāng)庫(kù)作為決策支持系統(tǒng)(Decision Support System,DSS)的有效解決方案,涉及三方面的技術(shù)內(nèi)容:數(shù)據(jù)倉(cāng)庫(kù)技術(shù)、聯(lián)機(jī)分析處理(On-Line Analysis Processing,OLAP)技術(shù)和數(shù)據(jù)挖掘(Data Mining,DM)技術(shù)。返回本節(jié)1.2 數(shù)據(jù)庫(kù)系統(tǒng)1.2.1 數(shù)據(jù)庫(kù)系統(tǒng)的組成1.2.2 數(shù)據(jù)庫(kù)系統(tǒng)體系結(jié)構(gòu)1.2.3 數(shù)據(jù)庫(kù)管理系統(tǒng)的功能1.2.4 數(shù)據(jù)庫(kù)管理系統(tǒng)的組成1.2.5 數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)返回首頁(yè)1.2.1 數(shù)據(jù)庫(kù)系統(tǒng)的組成1計(jì)算機(jī)硬件2數(shù)據(jù)庫(kù)管理系統(tǒng)3數(shù)據(jù)庫(kù)4應(yīng)用程序 5數(shù)據(jù)庫(kù)用戶 返回本節(jié)1.2.2 數(shù)據(jù)庫(kù)系統(tǒng)體系結(jié)構(gòu)1

9、模式模式又稱概念模式或邏輯模式,對(duì)應(yīng)于概念級(jí)。它是由數(shù)據(jù)庫(kù)設(shè)計(jì)者綜合所有用戶的數(shù)據(jù),按照統(tǒng)一的觀點(diǎn)構(gòu)造的全局邏輯結(jié)構(gòu)。 2外模式外模式又稱子模式,對(duì)應(yīng)于用戶級(jí)。它是某個(gè)或某幾個(gè)用戶所看到的數(shù)據(jù)庫(kù)的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。 3內(nèi)模式內(nèi)模式又稱存儲(chǔ)模式,對(duì)應(yīng)于物理級(jí)。它是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的內(nèi)部表示或底層描述,是數(shù)據(jù)庫(kù)最低一級(jí)的邏輯描述,它描述了數(shù)據(jù)在存儲(chǔ)介質(zhì)上的存儲(chǔ)方式和物理結(jié)構(gòu),對(duì)應(yīng)著實(shí)際存儲(chǔ)在外存儲(chǔ)介質(zhì)上的數(shù)據(jù)庫(kù)。 4數(shù)據(jù)庫(kù)系統(tǒng)的二級(jí)映射數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式是數(shù)據(jù)在三個(gè)級(jí)別(層次)上的抽象,使用戶能夠邏輯地、抽象地處理數(shù)據(jù)而不必關(guān)心數(shù)據(jù)在計(jì)算機(jī)中的物理表示和存儲(chǔ)。 圖1-5

10、 數(shù)據(jù)庫(kù)系統(tǒng)的體系結(jié)構(gòu)返回本節(jié)1.2.3 數(shù)據(jù)庫(kù)管理系統(tǒng)的功能1數(shù)據(jù)庫(kù)定義(描述)功能2數(shù)據(jù)庫(kù)操縱功能3數(shù)據(jù)庫(kù)運(yùn)行管理功能4數(shù)據(jù)組織、存儲(chǔ)和管理5數(shù)據(jù)庫(kù)的建立和維護(hù)6通信功能返回本節(jié)1.2.4 數(shù)據(jù)庫(kù)管理系統(tǒng)的組成1數(shù)據(jù)定義語(yǔ)言及其編譯處理程序2數(shù)據(jù)操作語(yǔ)言及其編譯程序3數(shù)據(jù)庫(kù)運(yùn)行控制程序4實(shí)用程序返回本節(jié)1.2.5 數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)1數(shù)據(jù)共享 2減少數(shù)據(jù)冗余3具有較高的數(shù)據(jù)獨(dú)立性 (1)物理數(shù)據(jù)獨(dú)立: (2)邏輯數(shù)據(jù)獨(dú)立: 4增強(qiáng)了數(shù)據(jù)安全性和完整性保護(hù) 返回本節(jié)1.3 數(shù)據(jù)模型1.3.1 現(xiàn)實(shí)世界的數(shù)據(jù)描述1.3.2 數(shù)據(jù)模型1.3.3 關(guān)系的基本概念及其特點(diǎn)返回首頁(yè)1.3.1 現(xiàn)實(shí)世界的

11、數(shù)據(jù)描述1信息處理的三個(gè)層次(1)現(xiàn)實(shí)世界。(2)信息世界。(3)數(shù)據(jù)世界。 2信息世界中的基本概念 (1)實(shí)體。(2)屬性。 (3)域。 (4)實(shí)體型和實(shí)體值。 (5)實(shí)體集。(6)實(shí)體聯(lián)系。 3實(shí)體模型實(shí)體模型又稱概念模型,它是反映實(shí)體之間聯(lián)系的模型。數(shù)據(jù)庫(kù)設(shè)計(jì)的重要任務(wù)就是建立實(shí)體模型,建立概念數(shù)據(jù)庫(kù)的具體描述。在建立實(shí)體模型時(shí),實(shí)體要逐一命名以示區(qū)別,并描述它們之間的各種聯(lián)系。實(shí)體模型只是將現(xiàn)實(shí)世界的客觀對(duì)象抽象為某種信息結(jié)構(gòu),這種信息結(jié)構(gòu)并不依賴于具體的計(jì)算機(jī)系統(tǒng),E-R圖是目前常用的概念模型的表示方法。返回本節(jié)1.3.2 數(shù)據(jù)模型1層次模型(Hierarchical Model)用

12、樹形結(jié)構(gòu)表示實(shí)體和實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為層次模型。層次模型的基本特點(diǎn):(1)有且僅有一個(gè)結(jié)點(diǎn)無父結(jié)點(diǎn),稱其為根結(jié)點(diǎn)。(2)其他結(jié)點(diǎn)有且只一個(gè)父結(jié)點(diǎn)。2網(wǎng)狀模型(Network Model)用網(wǎng)狀結(jié)構(gòu)表示實(shí)體和實(shí)體之間關(guān)系的數(shù)據(jù)模型稱為網(wǎng)狀模型。網(wǎng)狀模型的基本特點(diǎn):(1)一個(gè)以上結(jié)點(diǎn)無父結(jié)點(diǎn)。(2)至少有一結(jié)點(diǎn)有多于一個(gè)的父結(jié)點(diǎn)。3關(guān)系模型(Relational Model)用二維表來表示實(shí)體和實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為關(guān)系模型。例如,在關(guān)系模型中可用如表1-1的形式表示學(xué)生對(duì)象。關(guān)系不但可以表示實(shí)體間一對(duì)多的聯(lián)系,也可以方便地表示多對(duì)多的聯(lián)系。學(xué)號(hào)姓名性別班級(jí)名系別代號(hào)地址出生日期是否團(tuán)員備注

13、011110李建國(guó)男計(jì)012101湖北武漢1984-9-28是011103李寧女電013402江西九江1985-5-6否011202趙娜女英011203廣西南寧1984-2-21否011111趙琳女計(jì)012101江蘇南京1985-11-18是021405羅宇波男英011203江蘇南通1985-12-12否表1-1 學(xué)生基本情況表返回本節(jié)1.3.3 關(guān)系的基本概念及其特點(diǎn)1關(guān)系的基本概念(1)關(guān)系:一個(gè)關(guān)系就是一張二維表,通常將一個(gè)沒有重復(fù)行、重復(fù)列的二維表看成一個(gè)關(guān)系,每個(gè)關(guān)系都有一個(gè)關(guān)系名。 (2)元組:二維表的每一行在關(guān)系中稱為元組。(3)屬性:二維表的每一列在關(guān)系中稱為屬性,每個(gè)屬性都有

14、一個(gè)屬性名,屬性值則是各個(gè)元組在該屬性上的取值。(4)域:屬性的取值范圍稱為域。 2關(guān)系模型的主要優(yōu)點(diǎn)關(guān)系模型具有如下優(yōu)點(diǎn):(1)數(shù)據(jù)結(jié)構(gòu)單一。關(guān)系模型中,不管是實(shí)體還是實(shí)體之間的聯(lián)系,都用關(guān)系來表示,而關(guān)系都對(duì)應(yīng)一張二維數(shù)據(jù)表,數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單、清晰。(2)關(guān)系規(guī)范化,并建立在嚴(yán)格的理論基礎(chǔ)上。關(guān)系中每個(gè)屬性不可再分割,構(gòu)成關(guān)系的基本規(guī)范。同時(shí)關(guān)系是建立在嚴(yán)格的數(shù)學(xué)概念基礎(chǔ)上,具有堅(jiān)實(shí)的理論基礎(chǔ)。(3)概念簡(jiǎn)單,操作方便。 返回本節(jié)第2章 關(guān)系數(shù)據(jù)庫(kù)2.1 關(guān)系數(shù)據(jù)庫(kù)概述2.2 關(guān)系數(shù)據(jù)結(jié)構(gòu)2.3 關(guān)系的完整性2.4 關(guān)系代數(shù)2.5 關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)2.1 關(guān)系數(shù)據(jù)庫(kù)概述所謂關(guān)系數(shù)據(jù)庫(kù)就是采用

15、關(guān)系模型作為數(shù)據(jù)的組織方式,換句話說就是支持關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng)。關(guān)系模型由三個(gè)部分構(gòu)成:關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系數(shù)據(jù)操作和完整性約束。返回首頁(yè)1. 關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)非常簡(jiǎn)單,實(shí)際上就是一張二維表,但這種簡(jiǎn)單的二維表卻可以表達(dá)豐富的語(yǔ)義,可以很方便地描述出現(xiàn)實(shí)世界的實(shí)體以及實(shí)體之間的各種聯(lián)系。2. 關(guān)系數(shù)據(jù)操作關(guān)系數(shù)據(jù)操作采用集合操作方式,即操作的對(duì)象和結(jié)果都是集合。關(guān)系數(shù)據(jù)操作包括查詢和更新兩個(gè)部分: 查詢:選擇、投影、連接、除、并、交、差等。更新:增加、刪除以及修改3. 完整性約束完整性約束條件是關(guān)系數(shù)據(jù)模型的一個(gè)重要組成部分,是為了保證數(shù)據(jù)庫(kù)中的數(shù)據(jù)一致性。完整性約束分為三類:實(shí)

16、體完整性、參照完整性和用戶定義完整性。 返回本節(jié)2.2 關(guān)系數(shù)據(jù)結(jié)構(gòu)2.2.1 關(guān)系2.2.2 關(guān)系模式2.2.3 關(guān)系數(shù)據(jù)庫(kù)返回首頁(yè)2.2.1 關(guān)系1域定義 域是一組具有相同數(shù)據(jù)類型的值的集合。域中所包含的值的個(gè)數(shù)叫做域的基數(shù)。域是需要命名的。 2. 笛卡爾積定義 給定一組域D1,D2,D3,Dn,則這些域的笛卡爾積為:D1D2D3Dn=(d1,d2,d3,dn)|diDj,i=1,2,n,其中:(1)每一個(gè)元組(d1,d2,d3,dn)叫做一個(gè)n元組,簡(jiǎn)稱元組。(2)元組的每一個(gè)值di叫做一個(gè)分量。(3)笛卡爾積的基數(shù)為:3關(guān)系D1D2Dn的子集叫作在域D1,D2,Dn上的關(guān)系,用R(D1

17、,D2,Dn)表示。其中R表示關(guān)系的名字,n是關(guān)系的目或度(degree)。4碼的定義(1)碼(Key)。 (2)侯選碼(Candidate Key)。(3)主碼(Primary Key)。 (4)主屬性(Prime Attribute)。 (5)非主屬性(Non-Key Attribute)。 5關(guān)系的三種類型(1)基本關(guān)系:基本關(guān)系通常又稱為基本表或基表,指的是實(shí)實(shí)在在存在的表。(2)導(dǎo)出表:導(dǎo)出表是從一個(gè)或幾個(gè)基本表進(jìn)行查詢而得到的結(jié)果所對(duì)應(yīng)的表。(3)視圖:視圖是由基本表或其他視圖表導(dǎo)出的表,是虛表,不對(duì)應(yīng)實(shí)際存儲(chǔ)的數(shù)據(jù)。6基本關(guān)系的6條性質(zhì)(1)列是同質(zhì)的,即每一列中的分量是同一類型

18、的數(shù)據(jù),來自同一個(gè)域。(2)不同的列可出自同一個(gè)域,稱其中的每一列為一個(gè)屬性,不同的屬性要給予不同的屬性名。(3)列的順序無所謂,即列的次序可以任意交換。(4)任意兩個(gè)元組不能完全相同。(5)行的順序無所謂,即行的次序可以任意交換。(6)分量必須取原子值,也就是說每一個(gè)分量都必須是不可分的數(shù)據(jù)項(xiàng)。 圖書號(hào)Bookid圖書名Bookname編者Editor價(jià)格Price出版社Publish出版年月PubDate庫(kù)存數(shù)QtyTP2001-001數(shù)據(jù)結(jié)構(gòu)李國(guó)慶22.00清華大學(xué)出版社2001-01-0820TP2003-002數(shù)據(jù)結(jié)構(gòu)劉嬌麗18.9中國(guó)水利水電出版社2003-10-1550TP200

19、2-001高等數(shù)學(xué)劉自強(qiáng)12.00中國(guó)水利水電出版社2002-01-0860TP2003-001數(shù)據(jù)庫(kù)系統(tǒng)汪 洋14.00人民郵電出版社2003-05-1826TP2004-005數(shù)據(jù)庫(kù)原理與應(yīng)用劉淳24中國(guó)水利水電出版社2004-07-25100表2-2 圖書關(guān)系BOOK借書卡號(hào)Cardid讀者姓名Name性別Sex工作單位Dept讀者類別ClassT0001劉勇男計(jì)算機(jī)系1S0101丁鈺女人事處2S0111張清蜂男培訓(xùn)部3T0002張偉女計(jì)算機(jī)系1表2-3 讀者關(guān)系READER圖書號(hào)Bookid借書卡號(hào)Cardid借書日期Bdate還書日期SdateTP2003-002T00012003-

20、11-182003-12-09TP2001-001S01012003-02-282003-05-20TP2003-001S01112004-05-06TP2003-002S01012004-02-08表2-4 借書關(guān)系BORROW返回本節(jié)2.2.2 關(guān)系模式所謂關(guān)系模式就是對(duì)關(guān)系的描述。描述的內(nèi)容包括:元組集合結(jié)構(gòu):有哪些屬性、屬性來自哪些域,屬性與域之間的映象關(guān)系(屬性的長(zhǎng)度和類型)。元組集合的語(yǔ)義。完整性約束條件:屬性間的相互關(guān)系,屬性的取值范圍限制。返回本節(jié)2.2.3 關(guān)系數(shù)據(jù)庫(kù)所有支持關(guān)系數(shù)據(jù)庫(kù)模型的實(shí)體及實(shí)體之間聯(lián)系的關(guān)系集合就構(gòu)成了一個(gè)關(guān)系數(shù)據(jù)庫(kù)。關(guān)系數(shù)據(jù)庫(kù)有型與值之分,型稱為關(guān)系

21、數(shù)據(jù)庫(kù)的模式,值稱為關(guān)系數(shù)據(jù)庫(kù)的值。關(guān)系數(shù)據(jù)庫(kù)模式與關(guān)系數(shù)據(jù)庫(kù)的值通常統(tǒng)稱為關(guān)系數(shù)據(jù)庫(kù)。返回本節(jié)2.3 關(guān)系的完整性1實(shí)體完整性 2參照完整性3. 用戶定義完整性 返回首頁(yè)職工姓名Name部門編號(hào)DeptNo部門編號(hào)DeptNo部門名稱DeptName劉勇0101計(jì)算機(jī)系丁鈺0202人事處張清蜂03電子系 表2-5 職工 表2-6 部門返回本節(jié)2.4 關(guān)系代數(shù)2.4.1 傳統(tǒng)的集合運(yùn)算2.4.2 專門的關(guān)系運(yùn)算返回首頁(yè)運(yùn)算符含義集合運(yùn)算符并-差交廣義笛卡爾積專門的關(guān)系運(yùn)算符選擇投影 連接除表2-7 關(guān)系代數(shù)運(yùn)算符運(yùn)算符含義比較運(yùn)算符大于大于或等于小于小于或等于等于不等于邏輯運(yùn)算符非與或續(xù)表2.

22、4.1 傳統(tǒng)的集合運(yùn)算1并2差-3. 交4廣義笛卡爾積表2-8 傳統(tǒng)集合運(yùn)算舉例返回本節(jié)2.4.2 專門的關(guān)系運(yùn)算1選擇(selection)選擇又稱為限制,它是在關(guān)系R中選擇滿足給定條件的元組,組成一個(gè)新的關(guān)系。記作:F (R) =t|tRF(t) = TRUE 2投影(projection)從關(guān)系R上選取若干屬性列A,并刪除重復(fù)行,組成新的關(guān)系。記作:A (R) = t A | t R投影操作是從列的角度進(jìn)行的運(yùn)算。例2-3 查詢關(guān)系BOOK中所有圖書的書名和對(duì)應(yīng)的出版社。 Bookname,Publish(Book)結(jié)果如下:BooknamePublish數(shù)據(jù)結(jié)構(gòu)清華大學(xué)出版社數(shù)據(jù)結(jié)構(gòu)中

23、國(guó)水利水電出版社高等數(shù)學(xué)中國(guó)水利水電出版社數(shù)據(jù)庫(kù)系統(tǒng)人民郵電出版社數(shù)據(jù)庫(kù)原理與應(yīng)用中國(guó)水利水電出版社例2-4 查詢“中國(guó)水利水電出版社”出版的所有藏書的書名和庫(kù)存數(shù)量。Bookname,Qty(Publish=中國(guó)水利水電出版社(Book)結(jié)果如下:BooknameQty數(shù)據(jù)結(jié)構(gòu)50高等數(shù)學(xué)60數(shù)據(jù)庫(kù)原理與應(yīng)用1003連接(join)連接也稱為連接。它是從兩個(gè)關(guān)系R和S的笛卡爾積RS中選取屬性間滿足一定條件的元組,構(gòu)成新的關(guān)系。記作: BookidBooknamePublishTP2001-001數(shù)據(jù)結(jié)構(gòu)清華大學(xué)出版社TP2003-002數(shù)據(jù)結(jié)構(gòu)中國(guó)水利水電出版社TP2002-001高等數(shù)學(xué)中

24、國(guó)水利水電出版社TP2003-001數(shù)據(jù)庫(kù)系統(tǒng)人民郵電出版社TP2004-005數(shù)據(jù)庫(kù)原理與應(yīng)用中國(guó)水利水電出版社表2-9(a) R關(guān)系CardidBookidT0001TP2003-002S0101TP2001-001S0111TP2003-001S0101TP2003-002表2-9(b) S關(guān)系RBookidBookNamePublishSBookidCardidTP2001-001數(shù)據(jù)結(jié)構(gòu)清華大學(xué)出版社TP2001-001S0101TP2003-002數(shù)據(jù)結(jié)構(gòu)中國(guó)水利水電出版社TP2003-002T0001TP2003-002數(shù)據(jù)結(jié)構(gòu)中國(guó)水利水電出版社TP2003-002S0101TP

25、2003-001數(shù)據(jù)庫(kù)系統(tǒng)人民郵電出版社TP2003-001S0111表2-9(c) R和S的等值連接4除(division)為了說明除法運(yùn)算,先得給出象集的概念。象集的定義:給定一個(gè)關(guān)系R(X,Z),X和Z為屬性組。定義當(dāng)t(X)= 時(shí),在R中的象集為: Zx=tZ|tR,tX= x它表示R中屬性組X上值為的諸元組在Z上分量的集合。 例2-6 設(shè)關(guān)系R,S分別如表2-10中的(a)和(b)所示,求RS。返回本節(jié)2.5 關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(1)(最小)關(guān)系系統(tǒng)。即滿足上面最基本的條件,支持關(guān)系數(shù)據(jù)結(jié)構(gòu),支持選擇、投影和連接操作。 (2)關(guān)系完備系統(tǒng)。支持關(guān)系數(shù)據(jù)結(jié)構(gòu)和所有的關(guān)系代數(shù)操作。 (3

26、)全關(guān)系。這類系統(tǒng)支持關(guān)系模型的所有特征,而且支持?jǐn)?shù)據(jù)結(jié)構(gòu)中域的概念及實(shí)體完整性和參照完整性。 返回首頁(yè)第3章 關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL3.1 SQL概述3.2 數(shù)據(jù)定義3.3 數(shù)據(jù)查詢3.4 數(shù)據(jù)更新3.5 視圖3.6 數(shù)據(jù)控制3.1 SQL概述1SQL語(yǔ)言SQL語(yǔ)言是1974年由BOYCE和CHAMBERLIN提出的。1975年至1979年IBM公司SANJOSE RESEARCH LABORATORY研究的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)原型系統(tǒng)SYSTEM R實(shí)現(xiàn)了這種語(yǔ)言,由于它功能豐富,語(yǔ)言簡(jiǎn)潔,使用方便,被眾多計(jì)算機(jī)公司和軟件公司所采用,經(jīng)各公司不斷修改、擴(kuò)充和完善,SQL語(yǔ)言最終發(fā)展為關(guān)系數(shù)

27、據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言。返回首頁(yè)2擴(kuò)展SQL語(yǔ)言盡管ASNI和ISO已經(jīng)針對(duì)SQL制定了一些標(biāo)準(zhǔn),但標(biāo)準(zhǔn)SQL語(yǔ)言只能完成數(shù)據(jù)庫(kù)的大部分操作,不適合為關(guān)系數(shù)據(jù)庫(kù)編寫各種類型的程序,各家廠商針對(duì)其各自的數(shù)據(jù)庫(kù)軟件版本做了某些擴(kuò)充和修改,一般都根據(jù)需要增加了一些非標(biāo)準(zhǔn)的SQL語(yǔ)言。經(jīng)擴(kuò)充后的SQL語(yǔ)言稱為擴(kuò)展SQL語(yǔ)言。 返回本節(jié)3.2 數(shù)據(jù)定義1基本表定義2修改基本表3刪除基本表4建立索引5刪除索引返回首頁(yè)SQL數(shù)據(jù)定義功能包括定義基本表、定義視圖和定義索引等,如表3-1所示。由于視圖是基于基本表的虛表,索引是基于基本表的,因此SQL通常不提供修改視圖和索引語(yǔ)句,用戶如果要修改視圖或索引,只能先將它們刪

28、除,然后重新創(chuàng)建。操作對(duì)象操作方式創(chuàng)建刪除修改基本表CREATE TABLEDROP TABLEALTER TABLE視圖CREATE VIEWDROP VIEW索引CREATE INDEXDROP INDEX表3-1 SQL數(shù)據(jù)定義語(yǔ)句1基本表定義CREATE TABLE 表名說明:(1)其中表名是要定義的基本表的名稱。一個(gè)表可以由一個(gè)或多個(gè)屬性列組成。(2)創(chuàng)建表時(shí)通常還可以定義與該表有關(guān)的完整性約束條件。 (3)數(shù)據(jù)類型:SQL Server 2000常用數(shù)據(jù)類型。1)實(shí)體完整性定義語(yǔ)法:CONSTRAINT 約束名 PRIMARY KEY(屬性列表) 2)參照完整性定義語(yǔ)法:CONST

29、RAINT 約束名 FOREIGN KEY(列名)REFERENCES (被參照表列名)。3)自定義完整性定義語(yǔ)法:列值非空:CONSTRAINT 約束名 NOT NULL。列值惟一:CONSTRAINT 約束名 UNIQUE(屬性列表)。邏輯表達(dá)式:CONSTRAINT 約束名 CHECK(表達(dá)式)。例3-1 創(chuàng)建圖書信息表、讀者信息表和借閱表。(1)創(chuàng)建圖書信息表。CREATE TABLE BOOK(BOOKID CHAR(20) PRIMARY KEY,BOOKNAME VARCHAR(60) NOT NULL,EDITOR CHAR(8),PRICE NUMERIC(5,2),PUBL

30、ISH CHAR(30),PUBDATE DATETIME,QTY INT)(2)創(chuàng)建讀者信息表。CREATE TABLE READER (CARDID CHAR(10) PRIMARY KEY,NAME CHAR(8),SEX CHAR(2),DEPT CHAR(20),CLASS INT) -讀者類型:1代表教師,2代表學(xué)生,3代表臨時(shí)讀者。(3)創(chuàng)建借閱表。CREATE TABLE BORROW(BOOKID CHAR(20),CARDID CHAR(10),BDATE DATETIME NOT NULL,SDATE DATETIME NOT NULL,PRIMARY KEY(BOOKI

31、D,CARDID,BDATE),CONSTRAINT FK_BOOKID FOREIGN KEY(BOOKID) REFERENCES BOOK(BOOKID),CONSTRAINT FK_CARDID FOREIGN KEY(CARDID) REFERENCES READER (CARDID)2修改基本表隨著應(yīng)用環(huán)境和應(yīng)用需求的變化,有時(shí)需要修改已建立好的基本表,包括增加新列、增加新的完整性約束條件、修改原有的列定義或刪除已有的完整性約束條件等。SQL語(yǔ)言用ALTER TABLE語(yǔ)句修改基本表,其一般格式為: ALTER TABLE ALTER COLUMN NULL| NOT NULLAD

32、D 完整性約束 ADD DROP CONSTRAINT DROP COLUMN 例3-2 在圖書信息表中增加一列出版時(shí)期(PUBDATE),并將BOOKID列寬改為15。ALTER TABLE BOOK ADD PUBDATE DATETIME GOALTER TABLE BOOK ALTER COLUMN BOOKID CHAR(15)例3-3 刪除借閱表中的參照完整性。ALTER TABLE BORROW DROP CONSTRAINT FK_BOOKIDGO ALTER TABLE BORROW DROP CONSTRAINT FK_CARDID3刪除基本表當(dāng)某個(gè)基本表不再需要時(shí),可以使

33、用SQL語(yǔ)句DROP TABLE進(jìn)行刪除。其一般格式為:DROP TABLE 4建立索引在SQL語(yǔ)言中,建立索引使用CREATE INDEX語(yǔ)句,其一般格式為:CREATE UNIQUE CLUSTER INDEX ON ( , );5刪除索引索引一經(jīng)建立,就由系統(tǒng)使用和維護(hù)它,不需要用戶干預(yù)。建立索引是為了減少查詢操作的時(shí)間,但如果數(shù)據(jù)修改頻繁,系統(tǒng)會(huì)花費(fèi)許多時(shí)間來維護(hù)索引。這時(shí),可以刪除一些不必要的索引。返回本節(jié)3.3 數(shù)據(jù)查詢3.3.1 單表查詢3.3.2 多表查詢3.3.3 嵌套查詢返回首頁(yè)建立數(shù)據(jù)庫(kù)的目的是為了查詢數(shù)據(jù),因此,可以說數(shù)據(jù)庫(kù)查詢是數(shù)據(jù)庫(kù)的核心操作。SQL語(yǔ)言提供了SEL

34、ECT語(yǔ)句進(jìn)行數(shù)據(jù)庫(kù)的查詢,該語(yǔ)句具有靈活的使用方式和豐富的功能。其一般格式為:SELECT ALL | DISTINCT , FROM , 別名 WHERE GROUP BY HAVING ORDER BY ASC | DESC ;3.3.1 單表查詢1選擇表中的若干列2選擇表中滿足條件的記錄3對(duì)查詢結(jié)果排序4使用集函數(shù) 5分組統(tǒng)計(jì) 1選擇表中的若干列選擇表中的全部列或部分列,這類運(yùn)算又稱為投影。其變化方式主要表現(xiàn)在SELECT子句的上。例3-6 查詢所有讀者的卡號(hào)和姓名。SELECT CARDID, NAMEFROM READER例3-7 查詢所有圖書信息。SELECT * FROM BO

35、OK說明:*代表所有列2選擇表中滿足條件的記錄查詢滿足指定條件的元組可以通過WHERE子句實(shí)現(xiàn)。條件表達(dá)式是操作數(shù)與運(yùn)算符的組合,操作數(shù)可以包括常數(shù)、變量和字段等。常用運(yùn)算符如表3-2所示。(1)比較運(yùn)算: (2)確定范圍: (3)集合運(yùn)算: (4)字符匹配: (5)空值判斷: (6)邏輯運(yùn)算: 查詢條件運(yùn)算符比較=,=,=,!=,確定范圍BETWEEN.AND.NOT BETWEEN.AND集合運(yùn)算IN,NOT IN字符匹配LIKE,NOT LIKE空值判斷IS NULL,IS NOT NULL邏輯運(yùn)算AND,OR,NOT表3-2 常用運(yùn)算符3對(duì)查詢結(jié)果排序如果沒有指定查詢結(jié)果的顯示順序,D

36、BMS將按其最方便的順序(通常是元組在表中的先后順序)輸出查詢結(jié)果。用戶也可以用ORDER BY子句指定按照一個(gè)或多個(gè)屬性列的升序(ASC)或降序(DESC)重新排列查詢結(jié)果,其中升序ASC為缺省值。4使用集函數(shù) 為了進(jìn)一步方便用戶,增強(qiáng)檢索功能,SQL提供了許多集函數(shù),主要包括:COUNT ( DISTINCT |ALL * ) 統(tǒng)計(jì)元組個(gè)數(shù)。COUNT ( DISTINCT | ALL )統(tǒng)計(jì)一列中值的個(gè)數(shù)。SUM ( DISTINCT | ALL ) 計(jì)算一列值的總和(此列必須是數(shù)值型)。AVG(DISTINCT | ALL ) 計(jì)算一列值的平均值(此列必須是數(shù)值型)。MAX(DISTI

37、NCT | ALL ) 計(jì)算一列值的最大值。MIN(DISTINCT | ALL ) 計(jì)算一列值的最小值。5分組統(tǒng)計(jì) GROUP BY子句可以將查詢結(jié)果中的各行按一列或多列取值相等的原則進(jìn)行分組。分組一般與集函數(shù)一起使用。對(duì)查詢結(jié)果分組的目的是為了細(xì)化集函數(shù)的作用范圍。如果未對(duì)查詢結(jié)果分組,集函數(shù)將作用于整個(gè)查詢結(jié)果,即對(duì)查詢結(jié)果中的所有記錄進(jìn)行計(jì)算。如果有分組,集函數(shù)將作用于每一個(gè)分組,即集函數(shù)對(duì)每個(gè)組分別進(jìn)行計(jì)算。 返回本節(jié)3.3.2 多表查詢1等值與非等值連接查詢2自然連接 3自身連接 4外連接 5連接查詢綜合實(shí)例 1等值與非等值連接查詢當(dāng)用戶的一個(gè)查詢請(qǐng)求涉及到數(shù)據(jù)庫(kù)的多個(gè)表時(shí),必須按

38、照一定的條件把這些表連接在一起,以便能夠共同提供用戶需要的信息。用來連接兩個(gè)表的條件稱為連接條件或連接謂詞,其一般格式為: . .例3-24 查詢所有有借書未還的讀者的姓名。SELECT NAMEFROM READER,BORROWWHERE READER.CARDID=BORROW.CARDID AND SDATE IS NULL結(jié)果如下:NAME - 丁鈺 張清蜂 -例3-25 查詢所有讀者信息及借閱情況。SELECT READER.* , BORROW.*FROM READER , BORROWWHERE READER.CARDID=BORROW.CARDID該查詢結(jié)果中將包含READE

39、R和BORROW表中的所有列。2自然連接 如果按照兩個(gè)表中的相同屬性進(jìn)行等值連接,且目標(biāo)列中去掉了重復(fù)的屬性列,但保留所有不重復(fù)的屬性列,則稱為自然連接。例3-26 自然連接READER和BORROW表。SELECT READER.CARDID, NAME, SEX, DEPT, CLASS , BOOKID, BDATE, SDATEFROM READER,BORROWWHERE READER.CARDID=BORROW.CARDID查詢結(jié)果如下:3自身連接 連接操作不僅可以在兩個(gè)表之間操作,也可以是一個(gè)表與其自己進(jìn)行連接,這種操作稱為自身連接。例3-27 查詢書名相同而出版社不同的所有圖書

40、的書名。SELECT DISTINCT B1.BOOKNAMEFROM BOOK B1,BOOK B2WHERE B1.BOOKNAME=B2.BOOKNAME AND B1.PUBLISHB2.PUBLISH查詢結(jié)果為:BOOKNAME - 數(shù)據(jù)結(jié)構(gòu)-4外連接 在通常的連接操作中,只有滿足連接條件的元組才能作為結(jié)果輸出。如例3-26,如果某讀者還沒有借書記錄,在結(jié)果集中就看不到該讀者的信息。外連接又分為左外連、右外連和全外連。左外連:查詢結(jié)果中不僅包含符合連接條件的行,而且包含左表中所有數(shù)據(jù)行。右外連:查詢結(jié)果中不僅包含符合連接條件的行,而且包含右表中所有數(shù)據(jù)行。全外連:查詢結(jié)果中不僅包含符

41、合連接條件的行,而且包含兩個(gè)連接表中所有數(shù)據(jù)行。5連接查詢綜合實(shí)例 例3-29 查詢借書期限超過2個(gè)月的所有讀者的姓名、所借書籍名和借書日期。SELECT NAME,BOOKNAME,BDATEFROM BOOK,READER,BORROWWHERE BOOK.BOOKID=BORROW.BOOKID AND READER.CARDID=BORROW.CARDIDAND DATEDIFF(MM, BDATE,GETDATE() 2例3-30 按讀者姓名查詢指定讀者的借還書歷史記錄。假設(shè)讀者姓名為“劉勇”。SELECT BOOK.NAME,BDATE,SDATEFROM BORROW,BOOK,

42、READERWHERE BOOK.BOOKID=BORROW.BOOKID AND READER.CARDID=BORROW.CARDIDAND READER.NAME=劉勇如果按卡號(hào)查詢,只須將READER.NAME=劉勇改為:READER.CARDID=指定的卡號(hào)。返回本節(jié)3.3.3 嵌套查詢1帶IN謂詞的子查詢2帶有比較運(yùn)算符的子查詢3帶有ANY或ALL謂詞的子查詢4帶有EXISTS謂詞的子查詢 1帶IN謂詞的子查詢帶有IN謂詞的子查詢是指父查詢與子查詢之間用IN進(jìn)行連接,判斷某個(gè)屬性列值是否在子查詢的結(jié)果中。由于在嵌套查詢中,子查詢的結(jié)果往往是一個(gè)集合,所以謂詞IN是嵌套查詢中最經(jīng)常使

43、用的謂詞。例3-32 查詢借了“數(shù)據(jù)庫(kù)系統(tǒng)”書籍的所有讀者的姓名。SELECT NAMEFROM READERWHERE CARDID IN (SELECT CARDID FROM BORROW WHERE BOOKID IN (SELECT BOOKID FROM BOOK WHERE BOOKNAME=數(shù)據(jù)庫(kù)系統(tǒng))2帶有比較運(yùn)算符的子查詢帶有比較運(yùn)算符的子查詢是指父查詢與子查詢之間用比較運(yùn)算符進(jìn)行連接。當(dāng)用戶能確切知道內(nèi)層查詢返回的是單值時(shí),可以用、=、=、!或等比較運(yùn)算符。 3帶有ANY或ALL謂詞的子查詢?nèi)绻脩舨荒艽_切知道子查詢的返回結(jié)果為單值時(shí),可以使用帶有ANY或ALL謂詞的子查

44、詢,但ANY或ALL謂詞必須與比較運(yùn)算符一起使用。 例3-34 查詢所有正借閱“中國(guó)水利水電出版社”出版的書籍的讀者姓名。SELECT NAMEFROM READERWHERE CARDID =ANY( SELECT CARDID FROM BORROW WHERE SDATE IS NULL AND BOOKID =ANY( SELECT BOOKID FROM BOOK WHERE PUBLISH=中國(guó)水利水電出版社) 或 !=ANYIN- MAXMIN=MINALL-NOT INMINMAX=MAX表3-3 ANY,ALL謂詞與集函數(shù)及IN謂詞的等價(jià)轉(zhuǎn)換關(guān)系4帶有EXISTS謂詞的子查詢

45、 EXISTS 代表存在。帶有EXISTS量詞的子查詢不返回任何實(shí)際數(shù)據(jù),它只產(chǎn)生邏輯真值true或邏輯假值false。若內(nèi)層查詢結(jié)果非空,則外層的WHERE子句返回真值,否則返回假值。例3-35 查詢借閱了書號(hào)為TP2004-005圖書的所有讀者姓名。SELECT NAMEFROM READERWHERE EXISTS (SELECT *FROM BORROW WHERE BORROW.CARDID=READER.ID AND BOOKID=TP2004-005)返回本節(jié)3.4 數(shù)據(jù)更新3.4.1 插入數(shù)據(jù)3.4.2 修改數(shù)據(jù)3.4.3 刪除數(shù)據(jù)返回首頁(yè)3.4.1 插入數(shù)據(jù)1插入單個(gè)元組插入

46、單個(gè)元組的INSERT語(yǔ)句的語(yǔ)法格式為:INSERT INTO(,)VALUES(,)其功能是將新元組插入指定表中。 2插入子查詢結(jié)果插入子查詢結(jié)果的INSERT語(yǔ)句的格式為:INSERT INTO(,)子查詢;其功能是以批量插入,一次將子查詢的結(jié)果全部插入指定表中。子查詢結(jié)果中列數(shù)應(yīng)與INTO子句中的屬性列數(shù)相同,否則會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤。例3-38 按書號(hào)統(tǒng)計(jì)每種圖書的借出數(shù)量并保存到另一個(gè)表中。CREATE TABLE BOOKQTY(BOOKID CHAR(20), QTY INT)GOINSERT INTO BOOKQTYSELECT BOOKID, COUNT(*)FROM BORROW

47、WHERE SDATE IS NULLGROUP BY BOOKID返回本節(jié)3.4.2 修改數(shù)據(jù)修改操作又稱為更新操作,其語(yǔ)句格式為:UPDATE SET=,=WHERE;其功能是修改指定表中滿足WHERE條件的元組。其中SET子句用于指定修改方法,即用的值取代相應(yīng)的屬性列值。如果省略WHERE子句,則表示要修改表中的所有元組。例3-39 讀者還書操作。設(shè)讀者卡號(hào)為T0001,書號(hào)為TP2003-002。UPDATE BORROWSET SDATE=GETDATE()WHERE BOOKID=TP2003-002 AND CARDID=T0001GOUPDATE BOOKSET QTY=QTY

48、+1WHERE BOOKID=TP2003-002返回本節(jié)3.4.3 刪除數(shù)據(jù)刪除數(shù)據(jù)指刪除表中的某些記錄,刪除語(yǔ)句的一般格式為:DELETEFROMWHERE;DELETE語(yǔ)句的功能是從指定表中刪除滿足WHERE子句條件的所有元組。如果省略WHERE子句,表示刪除表中的全部元組,但表的結(jié)構(gòu)仍在。也就是說,DELETE語(yǔ)句刪除的是表中的數(shù)據(jù),而不是表的結(jié)構(gòu)。例3-41 刪除卡號(hào)為T0035的讀者的所有借書記錄,然后刪除該讀者信息。DELETE FROM BORROWWHERE CARDID=T0035GODELETE FROM READERWHERE CARDID =T0035返回本節(jié)3.5

49、視圖1建立視圖 2刪除視圖 3查詢視圖 4更新視圖 5視圖的用途 返回首頁(yè)1建立視圖 SQL語(yǔ)言用CREATE VIEW命令建立視圖,其一般格式為:CREATE VIEW(,)ASWITH CHECK OPTION;其中子查詢可以是任意復(fù)雜的SELECT語(yǔ)句,但通常不允許含有ORDER BY子句和DISTINCT短語(yǔ)。 例3-44 建立讀者類別為學(xué)生(CLASS=1)的讀者視圖。CREATE VIEW S_READERASSELECT *FROM READERWHERE CLASS=1例3-45 創(chuàng)建教師讀者視圖,并要求進(jìn)行修改和插入操作時(shí)仍保證視圖只有教師記錄。CREATE VIEW T_R

50、EADERASSELECT CARDID, NAME, SEX, DEPTFROM READERWHERE CLASS=2WITH CHECK OPTION返回本節(jié)2刪除視圖 視圖建好后,若導(dǎo)出此視圖的基本表被刪除了,該視圖將失效,但一般不會(huì)被自動(dòng)刪除。刪除視圖通常需要顯式地使用DROP VIEW語(yǔ)句進(jìn)行。該語(yǔ)句的格式為:DROP VIEW;一個(gè)視圖被刪除后,由該視圖導(dǎo)出的其他視圖也將失效,用戶應(yīng)該使用DROP VIEW語(yǔ)句將他們一一刪除。例3-49 刪除例3-36創(chuàng)建的視圖T_BORROW。DROP VIEW T_BORROW返回本節(jié)3查詢視圖 視圖定義后,用戶就可以像對(duì)基本表進(jìn)行查詢一樣對(duì)

51、視圖進(jìn)行查詢了。也就是說,在3.3節(jié)中介紹的對(duì)基本表的各種查詢操作一般都可以用于查詢視圖。例3-50 查詢讀者“劉偉”的借書信息。SELECT NAME, BOOKNAME, BDATEFROM V-BORROWWHERE NAME=劉偉返回本節(jié)4更新視圖 更新視圖包括插入(INSERT)、刪除(DELETE)和修改(UPDATE)三類操作。由于視圖是不實(shí)際存儲(chǔ)數(shù)據(jù)的虛表,因此對(duì)視圖的更新,最終要轉(zhuǎn)換為對(duì)基本表的更新。例3-52 通過視圖T_READER修改讀者(T0078)為“計(jì)算機(jī)系”。UPDATE T_READERSET DEPT=計(jì)算機(jī)系WHERE CARDID=T0078由于T_RE

52、ADER定義時(shí)帶了WITH CHECK OPTION子句,所以DBMS實(shí)際執(zhí)行的操作相當(dāng)于:UPDATE READERSET DEPT=計(jì)算機(jī)系WHERE CARDID=T0078 AND CLASS=2返回本節(jié)5視圖的用途 (1)視圖能夠簡(jiǎn)化用戶的操作。(2)視圖使用戶能以多種角度看待同一數(shù)據(jù)。(3)視圖對(duì)重構(gòu)數(shù)據(jù)庫(kù)提供了一定程度的邏輯獨(dú)立性。(4)視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù)。 返回本節(jié)3.6 數(shù)據(jù)控制 1授權(quán) 2權(quán)限收回 3拒絕語(yǔ)句返回首頁(yè)SQL語(yǔ)言提供了數(shù)據(jù)控制功能,能夠在一定程度上保證數(shù)據(jù)庫(kù)中數(shù)據(jù)的安全性和完整性,并提供了一定的并發(fā)控制及恢復(fù)能力。數(shù)據(jù)庫(kù)的完整性是指數(shù)據(jù)庫(kù)中數(shù)據(jù)的正

53、確性與相容性。SQL語(yǔ)言定義完整性約束條件的功能主要體現(xiàn)在CREATE TABLE語(yǔ)句中,可以在該語(yǔ)句中定義碼、取值惟一的列、參照完整性及其他一些約束條件。 1授權(quán) SQL語(yǔ)言用GRANT 語(yǔ)句向用戶授予操作權(quán)限,GRANT語(yǔ)句的一般格式為: GRANT ,2 ON TO , WITH GRANT OPTION其功能是將指定對(duì)象的指定操作權(quán)限授予指定的用戶。對(duì)象對(duì)象類型操作權(quán)限屬性列TABLESELECT,INSERT,UPDATE,DELETE,ALL PRIVILEGES基本表TABLESELECT,INSERT,UPDATE,DELETE,ALTER,INDEX,ALL PRIVILEG

54、ES視圖TABLESELECT,INSERT,UPDATE,DELETE,ALL PRIVILEGES數(shù)據(jù)庫(kù)DATABASECREATE TABLE,CREATE VIEW存儲(chǔ)過程PROCEDUREEXEC表3-4 不同對(duì)象類型允許的操作權(quán)限例3-54 授予用戶USER1創(chuàng)建表的權(quán)限,并允許他將此權(quán)限授予其他用戶。USE BOOKSYSGRANT CREATE TABLE TO USER1WITH GRANT OPTION例3-55 授予用戶USER1有更新讀者表(READER)中讀者姓名字段的權(quán)限。GRANT UPDATE ON READER(NAME)TO USER1返回本節(jié) 2權(quán)限收回授

55、予的權(quán)限可以由DBA或其授權(quán)者用REVOKE語(yǔ)句收回,REVOKE 語(yǔ)句的一般格式為:REVOKE ,ON FROM ,其功能是從指定的用戶中收回指定的權(quán)限。例3-58 回收USER1對(duì)BOOK表的查詢與修改權(quán)限。REVOKE SELECT, UPDATE ON BOOK FROM USER1如果要收回USER1的所有權(quán)限可以使用下面的命令:REVOKE ALL PRIVILEGES ON BOOK FROM USER1返回本節(jié)3拒絕語(yǔ)句有時(shí)要對(duì)用戶在某對(duì)象上的操作權(quán)限暫時(shí)禁用,或取消某用戶從角色中繼承下來的權(quán)限,可以使用拒絕語(yǔ)句,其語(yǔ)法格式如下:DENYALL | 權(quán)限ON TO用戶例3-5

56、9 如果按例3-56將BOOK表的SELECT權(quán)限授予了PUBLIC,因?yàn)樗杏脩舳际荘UBLIC的成員,所以USER1也獲得了對(duì)BOOK表的SELECT操作權(quán)限,如果要收回這個(gè)權(quán)限,必須用DENY語(yǔ)句。返回本節(jié)第4章 關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)理論4.1 數(shù)據(jù)依賴4.2 范式4.3 關(guān)系模式的分解4.1 數(shù)據(jù)依賴4.1.1 關(guān)系模式中的數(shù)據(jù)依賴4.1.2 數(shù)據(jù)依賴對(duì)關(guān)系模式的影響4.1.3 有關(guān)概念返回首頁(yè)4.1.1 關(guān)系模式中的數(shù)據(jù)依賴關(guān)系是一張二維表,它是所涉及屬性的笛卡爾積的一個(gè)子集。從笛卡爾積中選取哪些元組構(gòu)成該關(guān)系,通常是由現(xiàn)實(shí)世界賦予該關(guān)系的元組語(yǔ)義來確定的。元組語(yǔ)義實(shí)質(zhì)上是一個(gè)N目謂詞(其

57、中N是屬性集中屬性的個(gè)數(shù))。使該N目謂詞為真的笛卡爾積中的元素(或者說凡符合元組語(yǔ)義的元素)的全體就構(gòu)成了該關(guān)系。關(guān)系模式是對(duì)關(guān)系的描述,為了能夠清楚地刻畫出一個(gè)關(guān)系,它需要由五部分組成,即應(yīng)該是一個(gè)五元組:R(U, D, DOM, F)其中:R為關(guān)系名,U為組成該關(guān)系的屬性名集合,D為屬性組U中屬性所來自的域,DOM為屬性向域的映像集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集合。返回本節(jié)4.1.2 數(shù)據(jù)依賴對(duì)關(guān)系模式的影響關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)理論的中心問題是數(shù)據(jù)依賴性。所謂數(shù)據(jù)依賴是實(shí)體屬性值之間相互聯(lián)系和相互制約的關(guān)系,是現(xiàn)實(shí)世界屬性間相互聯(lián)系的抽象,是數(shù)據(jù)內(nèi)在的性質(zhì),是語(yǔ)義的體現(xiàn)?,F(xiàn)在人們已經(jīng)提出了許多類

58、型的數(shù)據(jù)依賴,其中函數(shù)依賴(Functional Dependency,簡(jiǎn)稱為FD)和多值依賴(Multivalued Dependency,簡(jiǎn)稱為MVD)是與數(shù)據(jù)庫(kù)設(shè)計(jì)理論中最重要的兩種數(shù)據(jù)依賴類型。從上述事實(shí)可以得到屬性組U上一組函數(shù)依賴F(如圖4.1所示):FCardidClass, ClassMaxcount,(Bookid, Cardid, Bdate)Sdate如果僅僅考慮函數(shù)依賴這一種數(shù)據(jù)依賴,就得到一個(gè)描述“學(xué)校圖書管理”的關(guān)系模式BookU, F。但這個(gè)關(guān)系模式存在4個(gè)問題(1)存在較大數(shù)據(jù)冗余(Date Redundancy)。(2)更新異常(Update Anomalie

59、s)。(3)插入異常(Insertion Anomalies)。(4)刪除異常(Deletion Anomalies)。 返回本節(jié)4.1.3 有關(guān)概念1函數(shù)依賴(1)函數(shù)依賴是指關(guān)系模式R的所有元組均要滿足的約束條件,而不僅僅指R中某個(gè)或某些元組滿足的約束條件特例。(2)函數(shù)依賴并不一定具有可逆性。例如一般認(rèn)為CardidClass,即由于讀者的卡號(hào)具有惟一性,因此讀者的卡號(hào)可確定讀者的類型,而反之則不行。(3)若XY,則X稱為這個(gè)函數(shù)依賴的決定屬性集(Determinant)。(4)函數(shù)依賴和別的數(shù)據(jù)之間的依賴關(guān)系一樣,是語(yǔ)義范疇的概念。(5)數(shù)據(jù)庫(kù)設(shè)計(jì)者可以對(duì)描述現(xiàn)實(shí)世界的關(guān)系模式作強(qiáng)制性

60、的規(guī)定。(6)若XY,并且YX,則記為XY。(7)若Y不函數(shù)依賴于X,則記為X Y。2平凡函數(shù)依賴與非平凡函數(shù)依賴 對(duì)于任意一種關(guān)系模式,平凡函數(shù)依賴都是必然成立的,它不反映新的語(yǔ)義,因此在本章中,若不特別聲明,總是討論非平凡函數(shù)依賴。3完全函數(shù)依賴與部分函數(shù)依賴4傳遞函數(shù)依賴5碼碼是關(guān)系模式中的一個(gè)重要概念,候選碼能惟一標(biāo)識(shí)一個(gè)元組(二維表中的一行),是關(guān)系模式中一組最重要的屬性。另一方面,主碼又和外部碼一同提供了表示關(guān)系間聯(lián)系的手段。返回本節(jié)4.2 范式4.2.1 第一范式(1NF)4.2.2 第二范式(2NF4.2.3 第三范式(3NF)4.2.4 BC范式(BCNF)4.2.5 多值依

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論