![數(shù)據(jù)庫系統(tǒng)概論課件_第1頁](http://file4.renrendoc.com/view10/M00/0C/34/wKhkGWXrcYCALVtZAACjlf8svoI174.jpg)
![數(shù)據(jù)庫系統(tǒng)概論課件_第2頁](http://file4.renrendoc.com/view10/M00/0C/34/wKhkGWXrcYCALVtZAACjlf8svoI1742.jpg)
![數(shù)據(jù)庫系統(tǒng)概論課件_第3頁](http://file4.renrendoc.com/view10/M00/0C/34/wKhkGWXrcYCALVtZAACjlf8svoI1743.jpg)
![數(shù)據(jù)庫系統(tǒng)概論課件_第4頁](http://file4.renrendoc.com/view10/M00/0C/34/wKhkGWXrcYCALVtZAACjlf8svoI1744.jpg)
![數(shù)據(jù)庫系統(tǒng)概論課件_第5頁](http://file4.renrendoc.com/view10/M00/0C/34/wKhkGWXrcYCALVtZAACjlf8svoI1745.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
數(shù)據(jù)庫系統(tǒng)概論AnIntroductiontoDatabaseSystem
第一章緒論第一章緒論1.1數(shù)據(jù)庫系統(tǒng)概述1.2數(shù)據(jù)模型1.3數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)1.4數(shù)據(jù)庫系統(tǒng)的組成1.5數(shù)據(jù)庫技術(shù)的研究領(lǐng)域1.6小結(jié)1.1
數(shù)據(jù)庫系統(tǒng)概述
1.1.1數(shù)據(jù)庫的地位
1.1.2四個基本概念
1.1.3數(shù)據(jù)管理技術(shù)的產(chǎn)生與發(fā)展數(shù)據(jù)庫的地位數(shù)據(jù)庫技術(shù)產(chǎn)生于六十年代末,是數(shù)據(jù)管理的最新技術(shù),是計算機科學的重要分支數(shù)據(jù)庫系統(tǒng)與操作系統(tǒng)一樣是計算機系統(tǒng)的基礎(chǔ)軟件,也稱為系統(tǒng)軟件、平臺軟件。它的出現(xiàn)極大地促進了計算機技術(shù)在各行各業(yè)的應(yīng)用數(shù)據(jù)庫技術(shù)是信息系統(tǒng)的核心和基礎(chǔ),是信息化建設(shè)的基礎(chǔ)設(shè)施數(shù)據(jù)庫的建設(shè)規(guī)模、數(shù)據(jù)庫信息量的大小和使用頻度已成為衡量一個國家信息化程度的重要標志以往對于軟件開發(fā)人員的技術(shù)要求數(shù)據(jù)庫面向?qū)ο蠹夹g(shù)PatternsModeling技術(shù)程序語言數(shù)據(jù)結(jié)構(gòu)Algorithm開發(fā)人員核心技術(shù)未來對于軟件開發(fā)人員的技術(shù)要求IntegrationArchitectureTestingConfiguration開發(fā)人員核心技術(shù)程序語言數(shù)據(jù)結(jié)構(gòu)AlgorithmDB建模模式OO1.1數(shù)據(jù)庫系統(tǒng)概述1.1.1數(shù)據(jù)庫的地位
1.1.2四個基本概念
1.1.3數(shù)據(jù)管理技術(shù)的產(chǎn)生與發(fā)展1.1.2四個基本概念數(shù)據(jù)(Data)數(shù)據(jù)庫(Database)數(shù)據(jù)庫管理系統(tǒng)(DBMS)數(shù)據(jù)庫系統(tǒng)(DBS)一、數(shù)據(jù)數(shù)據(jù)(Data)是數(shù)據(jù)庫中存儲的基本對象數(shù)據(jù)的定義描述事物的符號記錄數(shù)據(jù)的種類文字、圖形、圖象、聲音數(shù)據(jù)的特點數(shù)據(jù)與其語義是不可分的數(shù)據(jù)舉例學生檔案中的學生記錄(李明,男,1972,江蘇,計算機系,1990)數(shù)據(jù)的形式不能完全表達其內(nèi)容數(shù)據(jù)的解釋語義:學生姓名、性別、出生年月、籍貫、所在系別、入學時間解釋:李明是個大學生,1972年出生,江蘇人,1990年考入計算機系請給出另一個解釋和語義二、數(shù)據(jù)庫(舉例)二、數(shù)據(jù)庫(續(xù))人們收集并抽取出一個應(yīng)用所需要的大量數(shù)據(jù)之后,應(yīng)將其保存起來以供進一步加工處理,進一步抽取有用信息數(shù)據(jù)庫的定義數(shù)據(jù)庫(Database,簡稱DB)是長期儲存在計算機內(nèi)、有組織的、可共享的大量數(shù)據(jù)集合二、數(shù)據(jù)庫(續(xù))數(shù)據(jù)庫的特征數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲存可為各種用戶共享冗余度較小數(shù)據(jù)獨立性較高易擴展三、數(shù)據(jù)庫管理系統(tǒng)什么是DBMS數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,簡稱DBMS)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。DBMS的用途科學地組織和存儲數(shù)據(jù)、高效地獲取和維護數(shù)據(jù)DBMS的主要功能數(shù)據(jù)定義功能
提供數(shù)據(jù)定義語言(DDL)
定義數(shù)據(jù)庫中的數(shù)據(jù)對象數(shù)據(jù)操縱功能:提供數(shù)據(jù)操縱語言(DML)
操縱數(shù)據(jù)實現(xiàn)對數(shù)據(jù)庫的基本操作
(查詢、插入、刪除和修改)DBMS的主要功能數(shù)據(jù)庫的運行管理
保證數(shù)據(jù)的安全性、完整性、 多用戶對數(shù)據(jù)的并發(fā)使用 發(fā)生故障后的系統(tǒng)恢復數(shù)據(jù)庫的建立和維護功能(實用程序)
數(shù)據(jù)庫數(shù)據(jù)批量裝載數(shù)據(jù)庫轉(zhuǎn)儲介質(zhì)故障恢復數(shù)據(jù)庫的重組織性能監(jiān)視等四、數(shù)據(jù)庫系統(tǒng)什么是數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,簡稱DBS)是指在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成。在不引起混淆的情況下常常把數(shù)據(jù)庫系統(tǒng)簡稱為數(shù)據(jù)庫。數(shù)據(jù)庫系統(tǒng)的構(gòu)成由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員(和用戶)構(gòu)成。數(shù)據(jù)庫系統(tǒng)(續(xù))數(shù)據(jù)庫系統(tǒng)構(gòu)成圖示參看教材page_5圖1.1數(shù)據(jù)庫系統(tǒng)在計算機系統(tǒng)中的位置圖示參看教材page_5圖1.21.1數(shù)據(jù)庫系統(tǒng)概述1.1.1數(shù)據(jù)庫的地位
1.1.2四個基本概念
1.1.3數(shù)據(jù)管理技術(shù)的產(chǎn)生與發(fā)展1.1.3數(shù)據(jù)管理技術(shù)的產(chǎn)生和發(fā)展什么是數(shù)據(jù)管理對數(shù)據(jù)進行分類、組織、編碼、存儲、檢索和維護,是數(shù)據(jù)處理的中心問題數(shù)據(jù)管理技術(shù)的發(fā)展過程人工管理階段(40年代中--50年代中)文件系統(tǒng)階段(50年代末--60年代中)數(shù)據(jù)庫系統(tǒng)階段(60年代末--現(xiàn)在)數(shù)據(jù)管理技術(shù)的產(chǎn)生和發(fā)展(續(xù))數(shù)據(jù)管理技術(shù)的發(fā)展動力應(yīng)用需求的推動計算機硬件的發(fā)展計算機軟件的發(fā)展一、人工管理時期40年代中--50年代中產(chǎn)生的背景應(yīng)用需求 科學計算 硬件水平 無直接存取存儲設(shè)備 軟件水平 沒有操作系統(tǒng) 處理方式 批處理 人工管理(續(xù))特點數(shù)據(jù)的管理者:應(yīng)用程序,數(shù)據(jù)不保存。數(shù)據(jù)面向的對象:某一應(yīng)用程序數(shù)據(jù)的共享程度:無共享、冗余度極大數(shù)據(jù)的獨立性:不獨立,完全依賴于程序數(shù)據(jù)的結(jié)構(gòu)化:無結(jié)構(gòu)數(shù)據(jù)控制能力:應(yīng)用程序自己控制應(yīng)用程序與數(shù)據(jù)的對應(yīng)關(guān)系(人工管理)
應(yīng)用程序1數(shù)據(jù)集1應(yīng)用程序2數(shù)據(jù)集2應(yīng)用程序n數(shù)據(jù)集n...…...…二、文件系統(tǒng)時期50年代末--60年代中產(chǎn)生的背景應(yīng)用需求 科學計算、管理 硬件水平 磁盤、磁鼓 軟件水平 有文件系統(tǒng) 處理方式 聯(lián)機實時處理、批處理
文件系統(tǒng)(續(xù))特點數(shù)據(jù)的管理者:文件系統(tǒng),數(shù)據(jù)可長期保存數(shù)據(jù)面向的對象:某一應(yīng)用程序數(shù)據(jù)的共享程度:共享性差、冗余度大數(shù)據(jù)的結(jié)構(gòu)化:記錄內(nèi)有結(jié)構(gòu),整體無結(jié)構(gòu)數(shù)據(jù)的獨立性:獨立性差,數(shù)據(jù)的邏輯結(jié)構(gòu)改變必須修改應(yīng)用程序數(shù)據(jù)控制能力:應(yīng)用程序自己控制應(yīng)用程序與數(shù)據(jù)的對應(yīng)關(guān)系(文件系統(tǒng))應(yīng)用程序1文件1應(yīng)用程序2文件2應(yīng)用程序n文件n存取方法...…...…文件系統(tǒng)中數(shù)據(jù)的結(jié)構(gòu)記錄內(nèi)有結(jié)構(gòu)。數(shù)據(jù)的結(jié)構(gòu)是靠程序定義和解釋的。數(shù)據(jù)只能是定長的。可以間接實現(xiàn)數(shù)據(jù)變長要求,但訪問相應(yīng)數(shù)據(jù)的應(yīng)用程序復雜了。文件間是獨立的,因此數(shù)據(jù)整體無結(jié)構(gòu)??梢蚤g接實現(xiàn)數(shù)據(jù)整體的有結(jié)構(gòu),但必須在應(yīng)用程序中對描述數(shù)據(jù)間的聯(lián)系。數(shù)據(jù)的最小存取單位是記錄。三、數(shù)據(jù)庫系統(tǒng)時期60年代末以來產(chǎn)生的背景應(yīng)用背景 大規(guī)模管理 硬件背景 大容量磁盤 軟件背景 有數(shù)據(jù)庫管理系統(tǒng) 處理方式 聯(lián)機實時處理,分布處理,批處理 數(shù)據(jù)庫系統(tǒng)(續(xù))特點數(shù)據(jù)的管理者:DBMS數(shù)據(jù)面向的對象:現(xiàn)實世界 數(shù)據(jù)的共享程度:共享性高 數(shù)據(jù)的獨立性:高度的物理獨立性和一定的邏輯獨立性 數(shù)據(jù)的結(jié)構(gòu)化:整體結(jié)構(gòu)化數(shù)據(jù)控制能力:由DBMS統(tǒng)一管理和控制應(yīng)用程序與數(shù)據(jù)的對應(yīng)關(guān)系(數(shù)據(jù)庫系統(tǒng))DBMS應(yīng)用程序1應(yīng)用程序2數(shù)據(jù)庫…數(shù)據(jù)的高共享性的好處降低數(shù)據(jù)的冗余度,節(jié)省存儲空間避免數(shù)據(jù)間的不一致性使系統(tǒng)易于擴充數(shù)據(jù)獨立性物理獨立性指用戶的應(yīng)用程序與存儲在磁盤上的數(shù)據(jù)庫中數(shù)據(jù)是相互獨立的。當數(shù)據(jù)的物理存儲改變了,應(yīng)用程序不用改變。邏輯獨立性指用戶的應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨立的。數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,用戶程序也可以不變。數(shù)據(jù)結(jié)構(gòu)化整體數(shù)據(jù)的結(jié)構(gòu)化是數(shù)據(jù)庫的主要特征之一。數(shù)據(jù)庫中實現(xiàn)的是數(shù)據(jù)的真正結(jié)構(gòu)化數(shù)據(jù)的結(jié)構(gòu)用數(shù)據(jù)模型描述,無需程序定義和解釋。數(shù)據(jù)可以變長。數(shù)據(jù)的最小存取單位是數(shù)據(jù)項。DBMS對數(shù)據(jù)的控制功能數(shù)據(jù)的安全性(Security)保護使每個用戶只能按指定方式使用和處理指定數(shù)據(jù),保護數(shù)據(jù)以防止不合法的使用造成的數(shù)據(jù)的泄密和破壞。數(shù)據(jù)的完整性(Integrity)檢查將數(shù)據(jù)控制在有效的范圍內(nèi),或保證數(shù)據(jù)之間滿足一定的關(guān)系。DBMS對數(shù)據(jù)的控制功能并發(fā)(Concurrency)控制對多用戶的并發(fā)操作加以控制和協(xié)調(diào),防止相互干擾而得到錯誤的結(jié)果。數(shù)據(jù)庫恢復(Recovery)將數(shù)據(jù)庫從錯誤狀態(tài)恢復到某一已知的正確狀態(tài)。第一章緒論1.1數(shù)據(jù)庫系統(tǒng)概述1.2數(shù)據(jù)模型1.3數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)1.4數(shù)據(jù)庫系統(tǒng)的組成1.5數(shù)據(jù)庫技術(shù)的研究領(lǐng)域1.6小結(jié)數(shù)據(jù)模型在數(shù)據(jù)庫中用數(shù)據(jù)模型這個工具來抽象、表示和處理現(xiàn)實世界中的數(shù)據(jù)和信息。通俗地講數(shù)據(jù)模型就是現(xiàn)實世界的模擬數(shù)據(jù)模型應(yīng)滿足三方面要求能比較真實地模擬現(xiàn)實世界容易為人所理解便于在計算機上實現(xiàn)數(shù)據(jù)模型(續(xù))數(shù)據(jù)模型分成兩個不同的層次(1)概念模型也稱信息模型,它是按用戶的觀點來對數(shù)據(jù)和信息建模。(2)數(shù)據(jù)模型主要包括網(wǎng)狀模型、層次模型、關(guān)系模型等,它是按計算機系統(tǒng)的觀點對數(shù)據(jù)建模。數(shù)據(jù)模型(續(xù))客觀對象的抽象過程兩步抽象現(xiàn)實世界中的客觀對象抽象為概念模型;把概念模型轉(zhuǎn)換為某一DBMS支持的數(shù)據(jù)模型。概念模型是現(xiàn)實世界到機器世界的一個中間層次。1.2數(shù)據(jù)模型
1.2.1數(shù)據(jù)模型的組成要素
1.2.2概念模型
1.2.3常用數(shù)據(jù)模型
1.2.4層次模型
1.2.5網(wǎng)狀模型
1.2.6關(guān)系模型1.2.1數(shù)據(jù)模型的組成要素數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)操作數(shù)據(jù)的約束條件1.數(shù)據(jù)結(jié)構(gòu)什么是數(shù)據(jù)結(jié)構(gòu)對象類型的集合兩類對象與數(shù)據(jù)類型、內(nèi)容、性質(zhì)有關(guān)的對象與數(shù)據(jù)之間聯(lián)系有關(guān)的對象數(shù)據(jù)結(jié)構(gòu)是對系統(tǒng)靜態(tài)特性的描述2.數(shù)據(jù)操作數(shù)據(jù)操作對數(shù)據(jù)庫中各種對象(型)的實例(值)允許執(zhí)行的操作及有關(guān)的操作規(guī)則數(shù)據(jù)操作的類型檢索更新(包括插入、刪除、修改)
數(shù)據(jù)操作(續(xù))數(shù)據(jù)模型對操作的定義操作的確切含義操作符號操作規(guī)則(如優(yōu)先級)實現(xiàn)操作的語言數(shù)據(jù)操作是對系統(tǒng)動態(tài)特性的描述。3.數(shù)據(jù)的約束條件數(shù)據(jù)的約束條件一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和儲存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。
數(shù)據(jù)的約束條件(續(xù))數(shù)據(jù)模型對約束條件的定義反映和規(guī)定本數(shù)據(jù)模型必須遵守的基本的通用的完整性約束條件。例如在關(guān)系模型中,任何關(guān)系必須滿足實體完整性和參照完整性兩個條件。提供定義完整性約束條件的機制,以反映具體應(yīng)用所涉及的數(shù)據(jù)必須遵守的特定的語義約束條件。1.2.2概念模型1.概念模型2.信息世界中的基本概念3.概念模型的表示方法1.概念模型概念模型的用途概念模型用于信息世界的建模是現(xiàn)實世界到機器世界的一個中間層次是數(shù)據(jù)庫設(shè)計的有力工具數(shù)據(jù)庫設(shè)計人員和用戶之間進行交流的語言對概念模型的基本要求較強的語義表達能力,能夠方便、直接地表達應(yīng)用中的各種語義知識簡單、清晰、易于用戶理解。2.信息世界中的基本概念
(1)實體(Entity)客觀存在并可相互區(qū)別的事物稱為實體??梢允蔷唧w的人、事、物或抽象的概念。(2)屬性(Attribute)實體所具有的某一特性稱為屬性。一個實體可以由若干個屬性來刻畫。
(3)碼(Key)唯一標識實體的屬性集稱為碼。
信息世界中的基本概念(續(xù))(4)域(Domain)屬性的取值范圍稱為該屬性的域。(5)實體型(EntityType)用實體名及其屬性名集合來抽象和刻畫同類實體稱為實體型(6)實體集(EntitySet)同型實體的集合稱為實體集信息世界中的基本概念(續(xù))(7)聯(lián)系(Relationship)現(xiàn)實世界中事物內(nèi)部以及事物之間的聯(lián)系在信息世界中反映為實體內(nèi)部的聯(lián)系和實體之間的聯(lián)系實體型間聯(lián)系兩個實體型一對一聯(lián)系(1:1)三個實體型一對多聯(lián)系(1:n)一個實體型多對多聯(lián)系(m:n)
兩個實體型間的聯(lián)系實體型1聯(lián)系名實體型2111:1聯(lián)系實體型1聯(lián)系名實體型2mnm:n聯(lián)系實體型1聯(lián)系名實體型21n1:n聯(lián)系兩個實體型間的聯(lián)系一對一聯(lián)系如果對于實體集A中的每一個實體,實體集B中至多有一個實體與之聯(lián)系,反之亦然,則稱實體集A與實體集B具有一對一聯(lián)系。記為1:1。
實例班級與班長之間的聯(lián)系:一個班級只有一個正班長一個班長只在一個班中任職兩個實體型間的聯(lián)系(續(xù))一對多聯(lián)系如果對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯(lián)系,則稱實體集A與實體集B有一對多聯(lián)系記為1:n實例班級與學生之間的聯(lián)系:一個班級中有若干名學生,每個學生只在一個班級中學習兩個實體型間的聯(lián)系(續(xù))多對多聯(lián)系(m:n)如果對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中也有m個實體(m≥0)與之聯(lián)系,則稱實體集A與實體B具有多對多聯(lián)系。記為m:n實例課程與學生之間的聯(lián)系:一門課程同時有若干個學生選修一個學生可以同時選修多門課程多個實體型間的聯(lián)系(續(xù))多個實體型間的一對多聯(lián)系若實體集E1,E2,...,En存在聯(lián)系,對于實體集Ej(j=1,2,...,i-1,i+1,...,n)中的給定實體,最多只和Ei中的一個實體相聯(lián)系,則我們說Ei與E1,E2,...,Ei-1,Ei+1,...,En之間的聯(lián)系是一對多的。多個實體型間的聯(lián)系(續(xù))實例
課程、教師與參考書三個實體型如果一門課程可以有若干個教師講授,使用若干本參考書,每一個教師只講授一門課程,每一本參考書只供一門課程使用課程與教師、參考書之間的聯(lián)系是一對多的多個實體型間的一對一聯(lián)系多個實體型間的多對多聯(lián)系同一實體集內(nèi)各實體間的聯(lián)系一對多聯(lián)系實例
職工實體集內(nèi)部具有領(lǐng)導與被領(lǐng)導的聯(lián)系某一職工(干部)“領(lǐng)導”若干名職工一個職工僅被另外一個職工直接領(lǐng)導這是一對多的聯(lián)系一對一聯(lián)系多對多聯(lián)系3.概念模型的表示方法概念模型的表示方法很多實體-聯(lián)系方法(E-R方法)用E-R圖來描述現(xiàn)實世界的概念模型E-R方法也稱為E-R模型E-R圖實體型用矩形表示,矩形框內(nèi)寫明實體名。學生教師E-R圖(續(xù))屬性用橢圓形表示,并用無向邊將其與相應(yīng)的實體連接起來學生學號年齡性別姓名E-R圖(續(xù))聯(lián)系聯(lián)系本身:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實體連接起來,同時在無向邊旁標上聯(lián)系的類型(1:1、1:n或m:n)聯(lián)系的屬性:聯(lián)系本身也是一種實體型,也可以有屬性。如果一個聯(lián)系具有屬性,則這些屬性也要用無向邊與該聯(lián)系連接起來
聯(lián)系的表示方法實體型1聯(lián)系名實體型2111:1聯(lián)系實體型1聯(lián)系名實體型2mnm:n聯(lián)系實體型1聯(lián)系名實體型21n1:n聯(lián)系聯(lián)系的表示方法(續(xù))實體型1聯(lián)系名mn同一實體型內(nèi)部的m:n聯(lián)系實體型1聯(lián)系名實體型21m多個實體型間的1:n聯(lián)系實體型3n聯(lián)系的表示方法示例班級班級-班長班長111:1聯(lián)系課程選修學生mnm:n聯(lián)系班級組成學生1n1:n聯(lián)系聯(lián)系的表示方法示例(續(xù))職工領(lǐng)導1n同一實體型內(nèi)部的1:n聯(lián)系課程講授教師1m多個實體型間的1:n聯(lián)系參考書n聯(lián)系屬性的表示方法課程選修學生mn成績E-R圖(續(xù))E-R圖實例:
P19-P20
某工廠物資管理E-R圖1.2.3常用數(shù)據(jù)模型非關(guān)系模型層次模型(HierarchicalModel)網(wǎng)狀模型(NetworkModel)數(shù)據(jù)結(jié)構(gòu):以基本層次聯(lián)系為基本單位
基本層次聯(lián)系:兩個記錄以及它們之間的一對多(包括一對一)的聯(lián)系常用數(shù)據(jù)模型(續(xù))關(guān)系模型(RelationalModel)數(shù)據(jù)結(jié)構(gòu):表面向?qū)ο竽P?ObjectOrientedModel)數(shù)據(jù)結(jié)構(gòu):對象2.4
關(guān)系代數(shù)
概述傳統(tǒng)的集合運算專門的關(guān)系運算概述1.關(guān)系代數(shù)2.運算的三要素3.關(guān)系代數(shù)運算的三個要素4.關(guān)系代數(shù)運算的分類5.表示記號概述1.關(guān)系代數(shù) 一種抽象的查詢語言 用對關(guān)系的運算來表達查詢概述(續(xù))2.關(guān)系代數(shù)運算的三個要素運算對象:關(guān)系運算結(jié)果:關(guān)系運算符:四類概述(續(xù))集合運算符將關(guān)系看成元組的集合運算是從關(guān)系的“水平”方向即行的角度來進行專門的關(guān)系運算符不僅涉及行而且涉及列算術(shù)比較符輔助專門的關(guān)系運算符進行操作邏輯運算符輔助專門的關(guān)系運算符進行操作集合運算符∪-∩×并差交廣義笛卡爾積比較運算符>≥<≤=≠大于大于等于小于小于等于等于不等于運算符含義運算符含義表2.4關(guān)系代數(shù)運算符
概述(續(xù))專門的關(guān)系運算符σπ
÷選擇投影連接除邏輯運算符
∧∨非與或運算符含義運算符含義表2.4關(guān)系代數(shù)運算符(續(xù))
概述(續(xù))概述(續(xù))4.關(guān)系代數(shù)運算的分類 傳統(tǒng)的集合運算并、差、交、廣義笛卡爾積 專門的關(guān)系運算選擇、投影、連接、除概述(續(xù))5.表示記號
(1)R,t
R,t[Ai]
設(shè)關(guān)系模式為R(A1,A2,…,An)它的一個關(guān)系設(shè)為R。t
R表示t是R的一個元組t[Ai]則表示元組t中相應(yīng)于屬性Ai的一個分量
概述(續(xù))(2)A,t[A],A
若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,則A稱為屬性列或域列。t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元組t在屬性列A上諸分量的集合。A則表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的屬性組。概述(續(xù))(3)trtsR為n目關(guān)系,S為m目關(guān)系。tr
R,ts
S,trts稱為元組的連接。它是一個n+m列的元組,前n個分量為R中的一個n元組,后m個分量為S中的一個m元組。概述(續(xù))4)象集Zx
給定一個關(guān)系R(X,Z),X和Z為屬性組。當t[X]=x時,x在R中的象集(ImagesSet)為:
Zx={t[Z]|t
R,t[X]=x}
它表示R中屬性組X上值為x的諸元組在Z上分量的集合。2.4
關(guān)系代數(shù)
概述
傳統(tǒng)的集合運算
專門的關(guān)系運算2.4.1傳統(tǒng)的集合運算并差交廣義笛卡爾積1.并(Union)R和S具有相同的目n(即兩個關(guān)系都有n個屬性)相應(yīng)的屬性取自同一個域R∪S
仍為n目關(guān)系,由屬于R或?qū)儆赟的元組組成
R∪S={t|t
R∨t
S}并(續(xù))ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪S
2.差(Difference)R和S具有相同的目n相應(yīng)的屬性取自同一個域R-S
仍為n目關(guān)系,由屬于R而不屬于S的所有元組組成
R-S={t|t
R∧t
S}差(續(xù))ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S
3.交(Intersection)R和S具有相同的目n相應(yīng)的屬性取自同一個域R∩S仍為n目關(guān)系,由既屬于R又屬于S的元組組成
R∩S={t|t
R∧t
S} R∩S=R
–(R-S)交(續(xù))ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∩S
4.廣義笛卡爾積(ExtendedCartesianProduct)Rn目關(guān)系,k1個元組Sm目關(guān)系,k2個元組R×S
列:(n+m)列的元組的集合元組的前n列是關(guān)系R的一個元組后m列是關(guān)系S的一個元組行:k1×k2個元組R×S={tr
ts|tr
R∧ts
S}廣義笛卡爾積(續(xù))ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×S
ABCa1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c12.4
關(guān)系代數(shù)概述傳統(tǒng)的集合運算專門的關(guān)系運算2.4.2專門的關(guān)系運算選擇投影連接除1.選擇(Selection)1)選擇又稱為限制(Restriction)2)選擇運算符的含義在關(guān)系R中選擇滿足給定條件的諸元組
σF(R)={t|t
R∧F(t)='真'}F:選擇條件,是一個邏輯表達式,基本形式為:
[(]
X1θY1[)][φ[(]X2θY2[)]]…θ:比較運算符(>,≥,<,≤,=或<>)X1,Y1等:屬性名、常量、簡單函數(shù);屬性名也可以用它的序號來代替;φ:邏輯運算符(∧或∨)[]:表示任選項…:表示上述格式可以重復下去選擇(續(xù))3)選擇運算是從行的角度進行的運算4)舉例 設(shè)有一個學生-課程數(shù)據(jù)庫,包括學生關(guān)系Student、課程關(guān)系Course和選修關(guān)系SC。σ選擇(續(xù))學號Sno姓名Sname性別Ssex年齡Sage所在系Sdept95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004張立男19IS(a)
Student例1例2例4例3例9選擇(續(xù))(b)Course課程號課程名先行課學分CnoCnameCpnoCcredit1數(shù)據(jù)庫542數(shù)學
23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理
27PASCAL語言64例9選擇(續(xù))
(c)SC學號課程號成績SnoCnoGrade9500119295001285950013889500229095002380例7例9選擇(續(xù))[例1]查詢信息系(IS系)全體學生
σSdept
='IS'(Student)
或σ5='IS'(Student)結(jié)果:SnoSnameSsexSageSdept95002劉晨女19IS95004張立男19IS選擇(續(xù))[例2]查詢年齡小于20歲的學生
σSage<20(Student)
或σ4<20(Student)
結(jié)果:
SnoSnameSsexSageSdept95002劉晨女19IS95003王敏女18MA95004張立男19IS
2.投影(Projection)1)投影運算符的含義從R中選擇出若干屬性列組成新的關(guān)系
πA(R)={t[A]|t
R} A:R中的屬性列
2.投影(Projection)2)投影操作主要是從列的角度進行運算但投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組(避免重復行)π投影(續(xù))3)舉例[例3]查詢學生的姓名和所在系 即求Student關(guān)系上學生姓名和所在系兩個屬性上的投影
πSname,Sdept(Student)
或π2,5(Student)結(jié)果:投影(續(xù))SnameSdept李勇CS劉晨IS王敏MA張立IS投影(續(xù))[例4]查詢學生關(guān)系Student中都有哪些系
πSdept(Student)
結(jié)果:SdeptCSISMA3.連接(Join)1)連接也稱為θ連接2)連接運算的含義從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組
RS={|tr
R∧ts
S∧tr[A]θts[B]}A和B:分別為R和S上度數(shù)相等且可比的屬性組θ:比較運算符
連接運算從R和S的廣義笛卡爾積R×S中選?。≧關(guān)系)在A屬性組上的值與(S關(guān)系)在B屬性組上值滿足比較關(guān)系的元組。
AθBtrts
連接(續(xù))3)兩類常用連接運算等值連接(equijoin)什么是等值連接θ為“=”的連接運算稱為等值連接
等值連接的含義從關(guān)系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組,即等值連接為:
RS={|tr
R∧ts
S∧tr[A]=ts[B]}A=Btrts
連接(續(xù))自然連接(Naturaljoin)什么是自然連接自然連接是一種特殊的等值連接兩個關(guān)系中進行比較的分量必須是相同的屬性組在結(jié)果中把重復的屬性列去掉自然連接的含義
R和S具有相同的屬性組B
R
S={|tr
R∧ts
S∧tr[B]=ts[B]}trts連接(續(xù))4)一般的連接操作是從行的角度進行運算。 自然連接還需要取消重復列,所以是同時從行和列的角度進行運算。
AθBRS連接(續(xù))5)舉例
[例5]ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS連接(續(xù))R
S
AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310
C<E連接(續(xù))
等值連接R
SR.B=S.B
AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32連接(續(xù))
自然連接R
S
ABCEa1b153a1b267a2b3810a2b3824)象集Z
給定一個關(guān)系R(X,Z),X和Z為屬性組。當t[X]=x時,x在R中的象集(ImagesSet)為:
Zx={t[Z]|t
R,t[X]=x}
它表示R中屬性組X上值為x的諸元組在Z上分量的集合。4)象集ZABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2R÷SAa1RS4.除(Division)給定關(guān)系R(X,Y)
和S(Y,Z),其中X,Y,Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。R與S的除運算得到一個新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。
R÷S={tr[X]|tr
R∧πY(S)
Yx}
Yx:x在R中的象集,x=tr[X]除(續(xù))2)除操作是同時從行和列角度進行運算
3)舉例
[例6](p62)÷RS除(續(xù))ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2R÷SAa1RS分析:在關(guān)系R中,A可以取四個值{a1,a2,a3,a4}a1的象集為{(b1,c2),(b2,c3),(b2,c1)}
a2的象集為{(b3,c7),(b2,c3)}
a3的象集為{(b4,c6)}
a4的象集為{(b6,c6)}S在(B,C)上的投影為
{(b1,c2),(b2,c1),(b2,c3)}只有a1的象集包含了S在(B,C)屬性組上的投影所以R÷S={a1}5.綜合舉例以學生-課程數(shù)據(jù)庫為例(P.59)[例7]查詢至少選修1號課程和3號課程的學生號碼
首先建立一個臨時關(guān)系K:
然后求:πSno.Cno(SC)÷K
Cno
1
3綜合舉例(續(xù))例7續(xù)πSno.Cno(SC)
95001象集{1,2,3} 95002象集{2,3}
πCno(K)={1,3}
于是:πSno.Cno(SC)÷K={95001}SnoCno950011950012950013950022950023綜合舉例(續(xù))[例8]查詢選修了2號課程的學生的學號。
πSno(σCno='2'(SC))={95001,95002}
綜合舉例(續(xù))[例9]查詢至少選修了一門其直接先行課為5號課程的課程的學生姓名。
πSname(σCpno='5'(CourseSCStudent))或
πSname(σCpno='5'(Course)SCπSno,Sname(Student))或πSname(πSno(σCpno='5'(Course)SC)πSno,Sname(Student))
綜合舉例(續(xù))[例10]查詢選修了全部課程的學生號碼和姓名。
πSno,Cno(SC)÷πCno(Course)πSno,Sname(Student)
小結(jié)l
關(guān)系代數(shù)運算 關(guān)系代數(shù)運算 并、差、交、笛卡爾積、投影、選擇、連接、除 基本運算 并、差、笛卡爾積、投影、選擇 交、連接、除 可以用5種基本運算來表達引進它們并不增加語言的能力,但可以簡化表達小結(jié)(續(xù))l
關(guān)系代數(shù)表達式關(guān)系代數(shù)運算經(jīng)有限次復合后形成的式子l
典型關(guān)系代數(shù)語言ISBL(InformationSystemBaseLanguage)由IBMUnitedKingdom研究中心研制用于PRTV(PeterleeRelationalTestVehicle)實驗系統(tǒng)第二章關(guān)系數(shù)據(jù)庫2.1關(guān)系模型概述2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)2.3關(guān)系的完整性2.4關(guān)系代數(shù)2.5關(guān)系演算2.6小結(jié)2.5關(guān)系演算關(guān)系演算以數(shù)理邏輯中的謂詞演算為基礎(chǔ)種類:按謂詞變元不同分類1.元組關(guān)系演算:以元組變量作為謂詞變元的基本對象元組關(guān)系演算語言ALPHA2.域關(guān)系演算:以域變量作為謂詞變元的基本對象域關(guān)系演算語言QBE2.5.1元組關(guān)系演算語言ALPHA由E.F.Codd提出INGRES所用的QUEL語言是參照ALPHA語言研制的語句檢索語句GET更新語句PUT,HOLD,UPDATE,DELETE,DROP一、檢索操作
語句格式:
GET
工作空間名
[(定額)](表達式1)
[:操作條件][DOWN/UP表達式2]
定額:規(guī)定檢索的元組個數(shù)格式:數(shù)字表達式1:指定語句的操作對象格式:關(guān)系名|關(guān)系名.屬性名|元組變量.屬性名|集函數(shù)[,…]操作條件:將操作結(jié)果限定在滿足條件的元組中格式:邏輯表達式表達式2:指定排序方式格式:關(guān)系名.屬性名|元組變量.屬性名[,…]檢索操作(續(xù))(1)簡單檢索(即不帶條件的檢索)(2)限定的檢索(即帶條件的檢索)(3)帶排序的檢索(4)帶定額的檢索(5)用元組變量的檢索(6)用存在量詞的檢索檢索操作(續(xù))(7)帶有多個關(guān)系的表達式的檢索(8)用全稱量詞的檢索(9)用兩種量詞的檢索(10)用蘊函(Implication)的檢索(11)集函數(shù)(1)簡單檢索 GET
工作空間名(表達式1)[例1]查詢所有被選修的課程號碼。
GETW(SC.Cno)
[例2]查詢所有學生的數(shù)據(jù)。
GETW(Student)(2)限定的檢索格式
GET
工作空間名(表達式1):操作條件[例3]查詢信息系(IS)中年齡小于20歲的學生的學號和年齡。
GETW(Student.Sno,Student.Sage):Student.Sdept='IS'∧Student.Sage<20(3)帶排序的檢索格式
GET
工作空間名(表達式1)[:操作條件]DOWN/UP表達式2
[例4]查詢計算機科學系(CS)學生的學號、年齡,結(jié)果按年齡降序排序。
GETW(Student.Sno,Student.Sage):Student.Sdept='CS‘
DOWNStudent.Sage(4)帶定額的檢索
格式
:GET
工作空間名(定額)(表達式1)
[:操作條件][DOWN/UP
表達式2][例5]取出一個信息系學生的學號。
GETW(1)(Student.Sno): Student.Sdept='IS'
[例6]查詢信息系年齡最大的三個學生的學號及其年齡,結(jié)果按年齡降序排序。
GETW(3)(Student.Sno,Student.Sage):Student.Sdept='IS'DOWNStudent.Sage(5)用元組變量的檢索元組變量的含義表示可以在某一關(guān)系范圍內(nèi)變化(也稱為范圍變量RangeVariable)元組變量的用途①簡化關(guān)系名:設(shè)一個較短名字的元組變量來代替較長的關(guān)系名。②操作條件中使用量詞時必須用元組變量。定義元組變量格式:RANGE關(guān)系名變量名一個關(guān)系可以設(shè)多個元組變量(6)用存在量詞的檢索[例8]查詢選修2號課程的學生名字。
RANGESCX
GETW(Student.Sname):
X(X.Sno=Student.Sno∧X.Cno='2')[例9]查詢選修了這樣課程的學生學號,其直接先行課是6號課程。
RANGECourseCXGETW(SC.Sno):
CX(CX.Cno=SC.Cno∧CX.Pcno='6')
用存在量詞的檢索(續(xù))[例10]查詢至少選修一門其先行課為6號課程的學生名字
RANGECourseCXSCSCX GETW(Student.Sname):
SCX(SCX.Sno=Student.Sno∧
CX(CX.Cno=SCX.Cno∧CX.Pcno='6'))
前束范式形式:
GETW(Student.Sname):
SCX
CX(SCX.Sno=Student.Sno∧CX.Cno=SCX.Cno∧CX.Pcno='6')(7)帶有多個關(guān)系的表達式的檢索
[例11]查詢成績?yōu)?0分以上的學生名字與課程名字。
RANGESCSCXGETW(Student.Sname,Course.Cname):
SCX(SCX.Grade≥90∧SCX.Sno=Student.Sno∧Course.Cno=SCX.Cno)(8)用全稱量詞的檢索
[例12]查詢不選1號課程的學生名字。
RANGESCSCXGETW(Student.Sname):SCX(SCX.Sno≠Student.Sno∨SCX.Cno≠'1')用存在量詞表示:
RANGESCSCXGETW(Student.Sname):
SCX(SCX.Sno=Student.Sno∧SCX.Cno='1')(9)用兩種量詞的檢索[例13]查詢選修了全部課程的學生姓名。
RANGECourseCXSCSCXGETW(Student.Sname):CX
SCX (SCX.Sno=Student.Sno∧ SCX.Cno=CX.Cno)(10)用蘊函(Implication)的檢索
[例14]查詢最少選修了95002學生所選課程的學生學號。
RANGECouseCXSCSCXSCSCYGETW(Student.Sno):CX(
SCX(SCX.Sno='95002'∧SCX.Cno=CX.Cno)
SCY(SCY.Sno=Student.Sno∧ SCY.Cno=CX.Cno))(11)集函數(shù)常用集函數(shù)(Aggregationfunction)或內(nèi)部函數(shù)(Build-infunction)函數(shù)名功能COUNT
對元組計數(shù)TOTAL
求總和MAX
求最大值MIN
求最小值A(chǔ)VG
求平均值集函數(shù)(續(xù))[例15]查詢學生所在系的數(shù)目。
GETW(COUNT(Student.Sdept))COUNT函數(shù)在計數(shù)時會自動排除重復值。
[例16]查詢信息系學生的平均年齡GETW(AVG(Student.Sage):Student.Sdept='IS’)
二、更新操作(1)修改操作(2)插入操作(3)刪除操作(1)修改操作步驟①用HOLD語句將要修改的元組從數(shù)據(jù)庫中讀到工作空間中HOLD
工作空間名(表達式1)[:操作條件]HOLD語句是帶上并發(fā)控制的GET語句②用宿主語言修改工作空間中元組的屬性③用UPDATE語句將修改后的元組送回數(shù)據(jù)庫中
UPDATE
工作空間名修改操作(續(xù))[例17]把95007學生從計算機科學系轉(zhuǎn)到信息系。HOLDW(Student.Sno,Student.Sdetp):Student.Sno='95007'
(從Student關(guān)系中讀出95007學生的數(shù)據(jù))
MOVE'IS'TOW.Sdept
(用宿主語言進行修改)
UPDATEW
(把修改后的元組送回Student關(guān)系)(2)插入操作步驟①用宿主語言在工作空間中建立新元組②用PUT語句把該元組存入指定關(guān)系中
PUT
工作空間名(關(guān)系名)
PUT語句只對一個關(guān)系操作插入操作(續(xù))[例18]學校新開設(shè)了一門2學分的課程“計算機組織與結(jié)構(gòu)”,其課程號為8,直接先行課為6號課程。插入該課程元組
MOVE'8'TOW.CnoMOVE'計算機組織與結(jié)構(gòu)'TOW.CnameMOVE'6'TOW.CpnoMOVE'2'TOW.Ccredit
PUTW(Course)(3)刪除操作①用HOLD語句把要刪除的元組從數(shù)據(jù)庫中讀到工作空間中②用DELETE語句刪除該元組
DELETE
工作空間名刪除操作(續(xù))[例19]95110學生因故退學,刪除該學生元組。
HOLDW(Student):Student.Sno='95110'DELETEW
刪除操作(續(xù))[例20]將學號95001改為95102。
HOLDW(Student):Student.Sno='95001'
DELETEWMOVE'95102'TOW.SnoMOVE'李勇'TOW.SnameMOVE'男'OW.SsexMOVE'20'TOW.SageMOVE'CS'TOW.Sdept
PUTW(Student)
刪除操作(續(xù))[例21]刪除全部學生。
HOLDW(SC)DELETEW
HOLDW(Student)DELETEW在刪除操作中保持參照完整性小結(jié):元組關(guān)系演算語言ALPHA檢索操作GETGET
工作空間名
[(定額)](表達式1)
[:操作條件][DOWN/UP表達式2]插入操作建立新元組--PUT修改操作HOLD--修改--UPDATE刪除操作HOLD--DELETE2.5關(guān)系演算2.5.1元組關(guān)系演算語言ALPHA2.5.2域關(guān)系演算語言QBE2.5.2域關(guān)系演算語言QBE
l
一種典型的域關(guān)系演算語言 由M.M.Zloof提出
1978年在IBM370上得以實現(xiàn)
QBE也指此關(guān)系數(shù)據(jù)庫管理系統(tǒng)l
QBE:QueryByExample
基于屏幕表格的查詢語言查詢要求:以填寫表格的方式構(gòu)造查詢用示例元素(域變量)來表示查詢結(jié)果可能的情況查詢結(jié)果:以表格形式顯示QBE操作框架
關(guān)系名屬性名操作命令元組屬性值或查詢條件或操作命令一、檢索操作(1)用戶提出要求;(2)屏幕顯示空白表格;
(3)用戶在最左邊一欄輸入要查詢的關(guān)系名,例如Student;Student檢索操作(續(xù))(4)系統(tǒng)顯示該關(guān)系的屬性名
(5)用戶在上面構(gòu)造查詢要求
StudentSnoSnameSsexSageSdept
P.T
AO.C
StudentSnoSnameSsexSageSdept
檢索操作(續(xù))(6)屏幕顯示查詢結(jié)果StudentSnoSnameSsexSageSdept
李勇張立
C
構(gòu)造查詢的幾個要素示例元素即域變量一定要加下劃線示例元素是這個域中可能的一個值,它不必是查詢結(jié)果中的元素打印操作符P.
指定查詢結(jié)果所含屬性列查詢條件不用加下劃線可使用比較運算符>,≥,<,≤,=和≠
其中=可以省略排序要求1.簡單查詢[例1]查詢?nèi)w學生的全部數(shù)據(jù)。StudentSnoSnameSsexSageSdept
P.95001P.李勇P.男P.20P.CS簡單查詢(續(xù))
顯示全部數(shù)據(jù)也可以簡單地把P.操作符作用在關(guān)系名上。StudentSnoSnameSsexSageSdept
P.
2.條件查詢(1)簡單條件
[例2]求信息系全體學生的姓名。StudentSnoSnameSsexSageSdept
P.李勇
IS條件查詢(續(xù))
[例3]求年齡大于19歲的學生的學號。StudentSnoSnameSsexSageSdept
P.95001
>19條件查詢(與條件)[例4]求計算機科學系年齡大于19歲的學生的學號。方法(1):把兩個條件寫在同一行上StudentSnoSnameSsexSageSdept
P.95001
>19CS條件查詢(續(xù))
方法(2):把兩個條件寫在不同行上,但使用相同的示例元素值StudentSnoSnameSsexSageSdept
P.95001P.95001
>19CS條件查詢(續(xù))[例5]查詢既選修了1號課程又選修了2號課程的學生的學號。SCSnoCnoGrade
P.95001P.9500112
條件查詢(續(xù))[例6]查詢計算機科學系或者年齡大于19歲的學生的學號。StudentSnoSnameSsexSageSdept
P.95001P.95002
>19CS
多表連接
[例7]查詢選修1號課程的學生姓名。
注意:示例元素Sno是連接屬性,其值在兩個表中要相同。SCSnoCnoGrade
950011
StudentSnoSnameSsexSageSdept
95001P.李勇
條件查詢(非條件)[例8]查詢未選修1號課程的學生姓名
思路:顯示學號為95001的學生名字,而該學生選修1號課程的情況為假SCSnoCnoGrade
950011
StudentSnoSnameSsexSageSdept
95001P.李勇
條件查詢(續(xù))[例9]查詢有兩個人以上選修的課程號思路:查詢這樣的課程1,它不僅被95001選修而且也被另一個學生(
95001)選修了SCSnoCnoGrade
95001
.95001P.11
3.集函數(shù)常用集函數(shù):函數(shù)名功能CNT對元組計數(shù)SUM求總和AVG求平均值MAX求最大值MIN求最小值集函數(shù)(續(xù))[例10]查詢信息系學生的平均年齡。StudentSnoSnameSsexSageSdept
P.AVG.ALL.IS4.對查詢結(jié)果排序(續(xù))[例11]查全體男生的姓名,要求查詢結(jié)果按所在系升序排序,對相同系的學生按年齡降序排序。StudentSnoSnameSsexSageSdept
P.李勇男DO(2).AO(1).二、修改操作[例12]把95001學生的年齡改為18歲。方法(1):將操作符“U.”放在值上StudentSnoSnameSsexSageSdept95001
U.18
修改操作(續(xù))方法(2):將操作符“U.”放在關(guān)系上碼95001標明要修改的元組?!癠.”標明所在的行是修改后的新值。由于主碼是不能修改的,所以系統(tǒng)不會混淆要修改的屬性。StudentSnoSnameSsexSageSdeptU.95001
18
修改操作(續(xù))[例13]將計算機系所有學生的年齡都改為18歲StudentSnoSnameSsexSageSdept95008
U.18
CS修改操作(續(xù))
[例14]把95001學生的年齡增加1歲分兩行分別表示改前和改后的示例元素必須將操作符“U.”放在關(guān)系上StudentSnoSnameSsexSageSdept
U.9500195001
1717+1
修改操作(續(xù))
[例15]將計算機系所有學生的年齡都增加1歲StudentSnoSnameSsexSageSdept
U.9500895008
1818+1
CS2.插入操作[例16]把信息系女生95701,姓名張三,年齡17歲存入數(shù)據(jù)庫中。StudentSnoSnameSsexSageSdeptI.95701張三女17IS關(guān)系數(shù)據(jù)庫簡介系統(tǒng)而嚴格地提出關(guān)系模型的是美國IBM公司的E.F.Codd1970年提出關(guān)系數(shù)據(jù)模型E.F.Codd,“ARelationalModelofDataforLargeSharedDataBanks”,《CommunicationoftheACM》,1970之后,提出了關(guān)系代數(shù)和關(guān)系演算的概念1972年提出了關(guān)系的第一、第二、第三范式1974年提出了關(guān)系的BC范式關(guān)系數(shù)據(jù)庫簡介關(guān)系數(shù)據(jù)庫應(yīng)用數(shù)學方法來處理數(shù)據(jù)庫中的數(shù)據(jù)80年代后,關(guān)系數(shù)據(jù)庫系統(tǒng)成為最重要、最流行的數(shù)據(jù)庫系統(tǒng)關(guān)系數(shù)據(jù)庫簡介典型實驗系統(tǒng)SystemRUniversityINGRES典型商用系統(tǒng)ORACLESYBASEINFORMIXDB2INGRES第二章關(guān)系數(shù)據(jù)庫2.1關(guān)系模型概述2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)2.3關(guān)系的完整性2.4關(guān)系代數(shù)2.5關(guān)系演算2.6小結(jié)2.1關(guān)系模型概述關(guān)系數(shù)據(jù)庫系統(tǒng)是支持關(guān)系模型的數(shù)據(jù)庫系統(tǒng)關(guān)系模型的組成關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系操作集合關(guān)系完整性約束1.關(guān)系數(shù)據(jù)結(jié)構(gòu)單一的數(shù)據(jù)結(jié)構(gòu)關(guān)系現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關(guān)系來表示數(shù)據(jù)的邏輯結(jié)構(gòu)二維表從用戶角度,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。2.關(guān)系操作集合1)常用的關(guān)系操作2)關(guān)系操作的特點3)關(guān)系數(shù)據(jù)語言的種類4)關(guān)系數(shù)據(jù)語言的特點關(guān)系操作集合(續(xù))1)常用的關(guān)系操作查詢選擇、投影、連接、除、并、交、差數(shù)據(jù)更新插入、刪除、修改查詢的表達能力是其中最主要的部分關(guān)系操作集合(續(xù))2)關(guān)系操作的特點集合操作方式,即操作的對象和結(jié)果都是集合。非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作方式:一次一記錄文件系統(tǒng)的數(shù)據(jù)操作方式關(guān)系操作集合(續(xù))3)關(guān)系數(shù)據(jù)語言的種類關(guān)系代數(shù)語言用對關(guān)系的運算來表達查詢要求典型代表:ISBL關(guān)系操作集合(續(xù))關(guān)系數(shù)據(jù)語言的種類(續(xù))關(guān)系演算語言:用謂詞來表達查詢要求元組關(guān)系演算語言謂詞變元的基本對象是元組變量典型代表:APLHA,QUEL域關(guān)系演算語言謂詞變元的基本對象是域變量典型代表:QBE具有關(guān)系代數(shù)和關(guān)系演算雙重特點的語言典型代表:SQL關(guān)系操作集合(續(xù))4)關(guān)系數(shù)據(jù)語言的特點關(guān)系語言是一種高度非過程化的語言存取路徑的選擇由DBMS的優(yōu)化機制來完成用戶不必用循環(huán)結(jié)構(gòu)就可以完成數(shù)據(jù)操作能夠嵌入高級語言中使用關(guān)系代數(shù)、元組關(guān)系演算和域關(guān)系演算三種語言在表達能力上完全等價3.關(guān)系的三類完整性約束實體完整性通常由關(guān)系系統(tǒng)自動支持參照完整性早期系統(tǒng)不支持,目前大型系統(tǒng)能自動支持用戶定義的完整性反映應(yīng)用領(lǐng)域需要遵循的約束條件,體現(xiàn)了具體領(lǐng)域中的語義約束用戶定義后由系統(tǒng)支持第二章關(guān)系數(shù)據(jù)庫2.1關(guān)系模型概述2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)2.3關(guān)系的完整性2.4關(guān)系代數(shù)2.5關(guān)系演算2.6小結(jié)2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系模型建立在集合代數(shù)的基礎(chǔ)上關(guān)系數(shù)據(jù)結(jié)構(gòu)的基本概念關(guān)系關(guān)系模式關(guān)系數(shù)據(jù)庫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ù)庫2.2.1關(guān)系⒈域(Domain)
2.笛卡爾積(CartesianProduct)
3.關(guān)系(Relation)⒈域(Domain)域是一組具有相同數(shù)據(jù)類型的值的集合。例:整數(shù)實數(shù)介于某個取值范圍的整數(shù)長度指定長度的字符串集合{‘男’,‘女’}介于某個取值范圍的日期2.笛卡爾積(CartesianProduct)1)笛卡爾積給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|di
Di,i=1,2,…,n}所有域的所有取值的一個組合不能重復笛卡爾積(續(xù))例給出三個域:
D1=SUPERVISOR={張清玫,劉逸}
D2=SPECIALITY={計算機專業(yè),信息專業(yè)}D3=POSTGRADUATE={李勇,劉晨,王敏}則D1,D2,D3的笛卡爾積為:D1×D2×D3={(張清玫,計算機專業(yè),李勇),(張清玫,計算機專業(yè),劉晨),
(張清玫,計算機專業(yè),王敏),(張清玫,信息專業(yè),李勇),
(張清玫,信息專業(yè),劉晨),(張清玫,信息專業(yè),王敏),
(劉逸,計算機專業(yè),李勇),(劉逸,計算機專業(yè),劉晨),
(劉逸,計算機專業(yè),王敏),(劉逸,信息專業(yè),李勇),
(劉逸,信息專業(yè),劉晨),(劉逸,信息專業(yè),王敏)}笛卡爾積(續(xù))2)元組(Tuple)笛卡爾積中每一個元素(d1,d2,…,dn)叫作一個n元組(n-tuple)或簡稱元組。
3)分量(Component)笛卡爾積元素(d1,d2,…,dn)中的每一個值di叫作一個分量。
笛卡爾積(續(xù))4)基數(shù)(Cardinalnumber)若Di(i=1,2,…,n)為有限集,其基數(shù)為mi(i=1,2,…,n),則D1×D2×…×Dn的基數(shù)M為:在上例中,基數(shù):2×2×3=12,即D1×D2×D3共有2×2×3=12個元組笛卡爾積(續(xù))5)笛卡爾積的表示方法笛卡爾積可表示為一個二維表。表中的每行對應(yīng)一個元組,表中的每列對應(yīng)一個域。在上例中,12個元組可列成一張二維表
笛卡爾積(續(xù))3.關(guān)系(Relation)1)關(guān)系D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的關(guān)系,表示為
R(D1,D2,…,Dn)
R:關(guān)系名
n:關(guān)系的目或度(Degree)關(guān)系(續(xù))注意:關(guān)系是笛卡爾積的有限子集。無限關(guān)系在數(shù)據(jù)庫系統(tǒng)中是無意義的。由于笛卡爾積不滿足交換律,即
(d1,d2,…,dn)≠(d2,d1,…,dn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋租賃合同的擔保合同
- 商砼購銷的合同
- 采購合同的主要類型
- 物流公司承運合同
- 網(wǎng)絡(luò)營銷執(zhí)行作業(yè)指導書
- 平面設(shè)計軟件應(yīng)用作業(yè)指導書
- 公司給員工的勞動合同
- 2025年南京貨運從業(yè)資格證500道題目答案大全
- 電力分配合同(2篇)
- 2024-2025學年高中英語課時分層作業(yè)3含解析新人教版選修9
- 2025年紀檢辦公室工作計劃范文
- 2024年保險公司柜員年終工作總結(jié)
- 2025年南瑞集團招聘筆試參考題庫含答案解析
- 七年級上學期歷史期末考試模擬卷02(原卷版)
- 橋梁建設(shè)施工組織設(shè)計方案
- (新版)中國動態(tài)血壓監(jiān)測基層應(yīng)用指南(2024年)
- GB/T 44892-2024保險業(yè)車型識別編碼規(guī)則
- 四新技術(shù)培訓
- 人教版一年級數(shù)學2024版上冊期末測評(提優(yōu)卷一)(含答案)
- 2024年同等學力申碩英語考試真題
- 浙江省杭州市2024年中考語文試卷(含答案)
評論
0/150
提交評論