版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
數(shù)據(jù)庫原理(完整版)第一頁,共626頁。教材及參考書(1)教材薩師煊,王珊:數(shù)據(jù)庫系統(tǒng)概論(第三版),高等教育出版社,2000中國人民大學李紅:數(shù)據(jù)庫原理與應用
高等教育出版社,2003
第二頁,共626頁。教材及參考書(2)參考書崔?。簲?shù)據(jù)庫系統(tǒng)與應用,
高等教育出版社,2000施伯樂:數(shù)據(jù)庫系統(tǒng)教程高等教育出版社第三頁,共626頁。第一章緒論第四頁,共626頁。1.1
數(shù)據(jù)庫系統(tǒng)概述
1.1.1數(shù)據(jù)庫的地位1.1.2四個基本概念1.1.3數(shù)據(jù)管理技術(shù)的產(chǎn)生與發(fā)展第五頁,共626頁。數(shù)據(jù)庫的地位為什么要學習數(shù)據(jù)庫第六頁,共626頁。數(shù)據(jù)庫技術(shù)始于20世紀60年代,經(jīng)歷了最初的基于文件的初級系統(tǒng)、20世紀60~70年代流行的層次系統(tǒng)和網(wǎng)狀系統(tǒng),而現(xiàn)在廣泛使用的是關系數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫應用也從簡單的事務管理擴展到各個應用領域,如用于工程設計的工程數(shù)據(jù)庫、用于因特網(wǎng)的Web數(shù)據(jù)庫、用于決策支持的數(shù)據(jù)倉庫技術(shù)、用于多媒體技術(shù)的多媒體數(shù)據(jù)庫等,但應用最廣泛的還是在基于事務管理的各類信息系統(tǒng)領域。第七頁,共626頁。1.1數(shù)據(jù)庫系統(tǒng)概述1.1.1數(shù)據(jù)庫的地位
1.1.2四個基本概念1.1.3數(shù)據(jù)管理技術(shù)的產(chǎn)生與發(fā)展第八頁,共626頁。1.1.2四個基本概念數(shù)據(jù)(Data)數(shù)據(jù)庫(Database)數(shù)據(jù)庫管理系統(tǒng)(DBMS)數(shù)據(jù)庫系統(tǒng)(DBS)第九頁,共626頁。一、數(shù)據(jù)數(shù)據(jù)(Data)是數(shù)據(jù)庫中存儲的基本對象數(shù)據(jù)的定義描述事物的符號記錄數(shù)據(jù)的種類文字、圖形、圖象、聲音數(shù)據(jù)的特點數(shù)據(jù)與其語義是不可分的第十頁,共626頁。數(shù)據(jù)舉例學生檔案中的學生記錄(李明,男,1972,江蘇,計算機系,1990)數(shù)據(jù)的形式不能完全表達其內(nèi)容數(shù)據(jù)的解釋語義:學生姓名、性別、出生年月、籍貫、所在系別、入學時間解釋:李明是個大學生,1972年出生,江蘇人,1990年考入計算機系第十一頁,共626頁。二、數(shù)據(jù)庫(舉例)第十二頁,共626頁。數(shù)據(jù)庫——是相互關聯(lián)的數(shù)據(jù)的集合。性質(zhì):用綜合的方法組織數(shù)據(jù),具有較小的數(shù)據(jù)冗余,可供多個用戶共享,具有較高的數(shù)據(jù)獨立性,具有安全控制機制,能夠保證數(shù)據(jù)的安全、可靠,允許并發(fā)地使用數(shù)據(jù)庫,能有效、及時地處理數(shù)據(jù),并能保證數(shù)據(jù)的一致性和完整性。什么是數(shù)據(jù)庫第十三頁,共626頁。DataBaseManagementSystem——簡稱DBMS三、數(shù)據(jù)庫管理系統(tǒng)第十四頁,共626頁。簡單說DBMS就是管理數(shù)據(jù)庫的系統(tǒng)軟件,它應該具有如下功能:數(shù)據(jù)庫定義功能數(shù)據(jù)庫操縱功能數(shù)據(jù)庫查詢功能數(shù)據(jù)庫控制功能數(shù)據(jù)庫通訊功能什么是數(shù)據(jù)庫管理系統(tǒng)?第十五頁,共626頁。數(shù)據(jù)庫管理的重要性數(shù)據(jù)庫管理員——DataBaseAdministratorDBA的重要職責數(shù)據(jù)庫管理和數(shù)據(jù)庫管理員第十六頁,共626頁。DBMS的主要功能數(shù)據(jù)定義功能
提供數(shù)據(jù)定義語言(DDL)定義數(shù)據(jù)庫中的數(shù)據(jù)對象數(shù)據(jù)操縱功能:提供數(shù)據(jù)操縱語言(DML)
操縱數(shù)據(jù)實現(xiàn)對數(shù)據(jù)庫的基本操作(查詢、插入、刪除和修改)第十七頁,共626頁。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)視等第十八頁,共626頁。四、數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)就是基于數(shù)據(jù)庫的計算機應用系統(tǒng),它包括:以數(shù)據(jù)為主體的數(shù)據(jù)庫管理數(shù)據(jù)庫的系統(tǒng)軟件DBMS支持數(shù)據(jù)庫系統(tǒng)的計算機硬件環(huán)境和操作系統(tǒng)環(huán)境管理和使用數(shù)據(jù)庫系統(tǒng)的人,特別是負責設計、維護數(shù)據(jù)庫的技術(shù)人員——數(shù)據(jù)庫管理員方便使用和管理系統(tǒng)的各種技術(shù)說明書和使用說明書第十九頁,共626頁。數(shù)據(jù)庫系統(tǒng)(續(xù))數(shù)據(jù)庫系統(tǒng)構(gòu)成圖示參看教材page_5圖1.1數(shù)據(jù)庫系統(tǒng)在計算機系統(tǒng)中的位置圖示參看教材page_5圖1.2第二十頁,共626頁。1.1數(shù)據(jù)庫系統(tǒng)概述1.1.1數(shù)據(jù)庫的地位1.1.2四個基本概念
1.1.3數(shù)據(jù)管理技術(shù)的產(chǎn)生與發(fā)展第二十一頁,共626頁。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)在)第二十二頁,共626頁。數(shù)據(jù)管理技術(shù)的產(chǎn)生和發(fā)展(續(xù))數(shù)據(jù)管理技術(shù)的發(fā)展動力應用需求的推動計算機硬件的發(fā)展計算機軟件的發(fā)展第二十三頁,共626頁。一、人工管理時期40年代中--50年代中產(chǎn)生的背景應用需求 科學計算 硬件水平 無直接存取存儲設備 軟件水平 沒有操作系統(tǒng) 處理方式 批處理 第二十四頁,共626頁。人工管理(續(xù))特點數(shù)據(jù)的管理者:應用程序,數(shù)據(jù)不保存。數(shù)據(jù)面向的對象:某一應用程序數(shù)據(jù)的共享程度:無共享、冗余度極大數(shù)據(jù)的獨立性:不獨立,完全依賴于程序數(shù)據(jù)的結(jié)構(gòu)化:無結(jié)構(gòu)數(shù)據(jù)控制能力:應用程序自己控制第二十五頁,共626頁。應用程序1應用程序2應用程序n…數(shù)據(jù)集n數(shù)據(jù)集2數(shù)據(jù)集1…人工管理階段第二十六頁,共626頁。二、文件系統(tǒng)時期50年代末--60年代中產(chǎn)生的背景應用需求 科學計算、管理 硬件水平 磁盤、磁鼓 軟件水平 有文件系統(tǒng) 處理方式 聯(lián)機實時處理、批處理
第二十七頁,共626頁。文件系統(tǒng)(續(xù))特點數(shù)據(jù)的管理者:文件系統(tǒng),數(shù)據(jù)可長期保存數(shù)據(jù)面向的對象:某一應用程序數(shù)據(jù)的共享程度:共享性差、冗余度大數(shù)據(jù)的結(jié)構(gòu)化:記錄內(nèi)有結(jié)構(gòu),整體無結(jié)構(gòu)數(shù)據(jù)的獨立性:獨立性差,數(shù)據(jù)的邏輯結(jié)構(gòu)改變必須修改應用程序數(shù)據(jù)控制能力:應用程序自己控制第二十八頁,共626頁。應用程序與數(shù)據(jù)的對應關系(文件系統(tǒng))應用程序1文件1應用程序2文件2……應用程序n文件n文件系統(tǒng)第二十九頁,共626頁。文件系統(tǒng)中數(shù)據(jù)的結(jié)構(gòu)記錄內(nèi)有結(jié)構(gòu)。數(shù)據(jù)的結(jié)構(gòu)是靠程序定義和解釋的。數(shù)據(jù)只能是定長的??梢蚤g接實現(xiàn)數(shù)據(jù)變長要求,但訪問相應數(shù)據(jù)的應用程序復雜了。文件間是獨立的,因此數(shù)據(jù)整體無結(jié)構(gòu)。可以間接實現(xiàn)數(shù)據(jù)整體的有結(jié)構(gòu),但必須在應用程序中對描述數(shù)據(jù)間的聯(lián)系。數(shù)據(jù)的最小存取單位是記錄。第三十頁,共626頁。三、數(shù)據(jù)庫系統(tǒng)時期60年代末以來產(chǎn)生的背景應用背景 大規(guī)模管理 硬件背景 大容量磁盤 軟件背景 有數(shù)據(jù)庫管理系統(tǒng) 處理方式 聯(lián)機實時處理,分布處理,批處理 第三十一頁,共626頁。數(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)一管理和控制第三十二頁,共626頁。應用程序與數(shù)據(jù)的對應關系(數(shù)據(jù)庫系統(tǒng))DBMS應用程序1應用程序2數(shù)據(jù)庫…第三十三頁,共626頁。數(shù)據(jù)的高共享性的好處降低數(shù)據(jù)的冗余度,節(jié)省存儲空間避免數(shù)據(jù)間的不一致性使系統(tǒng)易于擴充第三十四頁,共626頁。數(shù)據(jù)獨立性物理獨立性指用戶的應用程序與存儲在磁盤上的數(shù)據(jù)庫中數(shù)據(jù)是相互獨立的。當數(shù)據(jù)的物理存儲改變了,應用程序不用改變。邏輯獨立性指用戶的應用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨立的。數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,用戶程序也可以不變。第三十五頁,共626頁。數(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ù)項。第三十六頁,共626頁。DBMS對數(shù)據(jù)的控制功能數(shù)據(jù)的安全性(Security)保護使每個用戶只能按指定方式使用和處理指定數(shù)據(jù),保護數(shù)據(jù)以防止不合法的使用造成的數(shù)據(jù)的泄密和破壞。數(shù)據(jù)的完整性(Integrity)檢查將數(shù)據(jù)控制在有效的范圍內(nèi),或保證數(shù)據(jù)之間滿足一定的關系。第三十七頁,共626頁。DBMS對數(shù)據(jù)的控制功能并發(fā)(Concurrency)控制對多用戶的并發(fā)操作加以控制和協(xié)調(diào),防止相互干擾而得到錯誤的結(jié)果。數(shù)據(jù)庫恢復(Recovery)將數(shù)據(jù)庫從錯誤狀態(tài)恢復到某一已知的正確狀態(tài)。第三十八頁,共626頁。第一章緒論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ù)的研究領域1.6小結(jié)第三十九頁,共626頁。數(shù)據(jù)模型在數(shù)據(jù)庫中用數(shù)據(jù)模型這個工具來抽象、表示和處理現(xiàn)實世界中的數(shù)據(jù)和信息。通俗地講數(shù)據(jù)模型就是現(xiàn)實世界的模擬數(shù)據(jù)模型應滿足三方面要求能比較真實地模擬現(xiàn)實世界容易為人所理解便于在計算機上實現(xiàn)第四十頁,共626頁。數(shù)據(jù)模型(續(xù))數(shù)據(jù)模型分成兩個不同的層次(1)概念模型也稱信息模型,它是按用戶的觀點來對數(shù)據(jù)和信息建模。(2)數(shù)據(jù)模型主要包括網(wǎng)狀模型、層次模型、關系模型等,它是按計算機系統(tǒng)的觀點對數(shù)據(jù)建模。第四十一頁,共626頁。數(shù)據(jù)模型(續(xù))客觀對象的抽象過程兩步抽象現(xiàn)實世界中的客觀對象抽象為概念模型;把概念模型轉(zhuǎn)換為某一DBMS支持的數(shù)據(jù)模型。
概念模型是現(xiàn)實世界到機器世界的一個中間層次。第四十二頁,共626頁。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關系模型第四十三頁,共626頁。1.2.1數(shù)據(jù)模型的組成要素數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)操作數(shù)據(jù)的約束條件第四十四頁,共626頁。1.數(shù)據(jù)結(jié)構(gòu)什么是數(shù)據(jù)結(jié)構(gòu)對象類型的集合兩類對象與數(shù)據(jù)類型、內(nèi)容、性質(zhì)有關的對象與數(shù)據(jù)之間聯(lián)系有關的對象數(shù)據(jù)結(jié)構(gòu)是對系統(tǒng)靜態(tài)特性的描述第四十五頁,共626頁。2.數(shù)據(jù)操作數(shù)據(jù)操作對數(shù)據(jù)庫中各種對象(型)的實例(值)允許執(zhí)行的操作及有關的操作規(guī)則數(shù)據(jù)操作的類型檢索更新(包括插入、刪除、修改)第四十六頁,共626頁。數(shù)據(jù)操作(續(xù))數(shù)據(jù)模型對操作的定義操作的確切含義操作符號操作規(guī)則(如優(yōu)先級)實現(xiàn)操作的語言數(shù)據(jù)操作是對系統(tǒng)動態(tài)特性的描述。第四十七頁,共626頁。3.數(shù)據(jù)的約束條件數(shù)據(jù)的約束條件一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和儲存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。第四十八頁,共626頁。數(shù)據(jù)的約束條件(續(xù))數(shù)據(jù)模型對約束條件的定義反映和規(guī)定本數(shù)據(jù)模型必須遵守的基本的通用的完整性約束條件。例如在關系模型中,任何關系必須滿足實體完整性和參照完整性兩個條件。提供定義完整性約束條件的機制,以反映具體應用所涉及的數(shù)據(jù)必須遵守的特定的語義約束條件。第四十九頁,共626頁。1.2.2概念模型1.概念模型2.信息世界中的基本概念3.概念模型的表示方法第五十頁,共626頁。1.概念模型概念模型的用途概念模型用于信息世界的建模是現(xiàn)實世界到機器世界的一個中間層次是數(shù)據(jù)庫設計的有力工具數(shù)據(jù)庫設計人員和用戶之間進行交流的語言對概念模型的基本要求較強的語義表達能力,能夠方便、直接地表達應用中的各種語義知識簡單、清晰、易于用戶理解。第五十一頁,共626頁。2.信息世界中的基本概念
(1)實體(Entity)客觀存在并可相互區(qū)別的事物稱為實體??梢允蔷唧w的人、事、物或抽象的概念。(2)屬性(Attribute)實體所具有的某一特性稱為屬性。一個實體可以由若干個屬性來刻畫。
(3)碼(Key)唯一標識實體的屬性集稱為碼。
第五十二頁,共626頁。信息世界中的基本概念(續(xù))(4)域(Domain)屬性的取值范圍稱為該屬性的域。(5)實體型(EntityType)用實體名及其屬性名集合來抽象和刻畫同類實體稱為實體型(6)實體集(EntitySet)同型實體的集合稱為實體集第五十三頁,共626頁。信息世界中的基本概念(續(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)
第五十四頁,共626頁。兩個實體型間的聯(lián)系實體型1聯(lián)系名實體型2111:1聯(lián)系實體型1聯(lián)系名實體型2mnm:n聯(lián)系實體型1聯(lián)系名實體型21n1:n聯(lián)系第五十五頁,共626頁。兩個實體型間的聯(lián)系一對一聯(lián)系如果對于實體集A中的每一個實體,實體集B中至多有一個實體與之聯(lián)系,反之亦然,則稱實體集A與實體集B具有一對一聯(lián)系。記為1:1。
實例班級與班長之間的聯(lián)系:一個班級只有一個正班長一個班長只在一個班中任職第五十六頁,共626頁。兩個實體型間的聯(lián)系(續(xù))一對多聯(lián)系如果對于實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯(lián)系,反之,對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯(lián)系,則稱實體集A與實體集B有一對多聯(lián)系記為1:n實例班級與學生之間的聯(lián)系:一個班級中有若干名學生,每個學生只在一個班級中學習第五十七頁,共626頁。兩個實體型間的聯(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)系:一門課程同時有若干個學生選修一個學生可以同時選修多門課程第五十八頁,共626頁。多個實體型間的聯(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)系是一對多的。第五十九頁,共626頁。多個實體型間的聯(lián)系(續(xù))實例
課程、教師與參考書三個實體型如果一門課程可以有若干個教師講授,使用若干本參考書,每一個教師只講授一門課程,每一本參考書只供一門課程使用課程與教師、參考書之間的聯(lián)系是一對多的多個實體型間的一對一聯(lián)系多個實體型間的多對多聯(lián)系第六十頁,共626頁。同一實體集內(nèi)各實體間的聯(lián)系一對多聯(lián)系實例
職工實體集內(nèi)部具有領導與被領導的聯(lián)系某一職工(干部)“領導”若干名職工一個職工僅被另外一個職工直接領導這是一對多的聯(lián)系一對一聯(lián)系多對多聯(lián)系第六十一頁,共626頁。3.概念模型的表示方法概念模型的表示方法很多實體-聯(lián)系方法(E-R方法)用E-R圖來描述現(xiàn)實世界的概念模型E-R方法也稱為E-R模型第六十二頁,共626頁。E-R圖實體型用矩形表示,矩形框內(nèi)寫明實體名。學生教師第六十三頁,共626頁。E-R圖(續(xù))屬性用橢圓形表示,并用無向邊將其與相應的實體連接起來學生學號年齡性別姓名第六十四頁,共626頁。E-R圖(續(xù))聯(lián)系聯(lián)系本身:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯(lián)系的類型(1:1、1:n或m:n)聯(lián)系的屬性:聯(lián)系本身也是一種實體型,也可以有屬性。如果一個聯(lián)系具有屬性,則這些屬性也要用無向邊與該聯(lián)系連接起來
第六十五頁,共626頁。聯(lián)系的表示方法實體型1聯(lián)系名實體型2111:1聯(lián)系實體型1聯(lián)系名實體型2mnm:n聯(lián)系實體型1聯(lián)系名實體型21n1:n聯(lián)系第六十六頁,共626頁。聯(lián)系的表示方法(續(xù))實體型1聯(lián)系名mn同一實體型內(nèi)部的m:n聯(lián)系實體型1聯(lián)系名實體型21m多個實體型間的1:n聯(lián)系實體型3n第六十七頁,共626頁。聯(lián)系的表示方法示例班級班級-班長班長111:1聯(lián)系課程選修學生mnm:n聯(lián)系班級組成學生1n1:n聯(lián)系第六十八頁,共626頁。聯(lián)系的表示方法示例(續(xù))職工領導1n同一實體型內(nèi)部的1:n聯(lián)系課程講授教師1m多個實體型間的1:n聯(lián)系參考書n第六十九頁,共626頁。聯(lián)系屬性的表示方法課程選修學生mn成績第七十頁,共626頁。E-R圖(續(xù))E-R圖實例:
P19-P20某工廠物資管理E-R圖第七十一頁,共626頁。1.2.3常用數(shù)據(jù)模型非關系模型層次模型(HierarchicalModel)網(wǎng)狀模型(NetworkModel)數(shù)據(jù)結(jié)構(gòu):以基本層次聯(lián)系為基本單位
基本層次聯(lián)系:兩個記錄以及它們之間的一對多(包括一對一)的聯(lián)系第七十二頁,共626頁。常用數(shù)據(jù)模型(續(xù))關系模型(RelationalModel)數(shù)據(jù)結(jié)構(gòu):表面向?qū)ο竽P?ObjectOrientedModel)數(shù)據(jù)結(jié)構(gòu):對象第七十三頁,共626頁。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關系模型第七十四頁,共626頁。1.2.4層次模型1.層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)2.層次數(shù)據(jù)模型的數(shù)據(jù)操縱3.層次數(shù)據(jù)模型的與完整性約束4.層次數(shù)據(jù)模型的存儲結(jié)構(gòu)5.層次數(shù)據(jù)模型的優(yōu)缺點
6.典型的層次數(shù)據(jù)庫系統(tǒng)第七十五頁,共626頁。1.層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)層次模型
滿足下面兩個條件的基本層次聯(lián)系的集合為層次模型。1.有且只有一個結(jié)點沒有雙親結(jié)點,這個結(jié)點稱為根結(jié)點2.根以外的其它結(jié)點有且只有一個雙親結(jié)點層次模型中的幾個術(shù)語根結(jié)點,雙親結(jié)點,兄弟結(jié)點,葉結(jié)點第七十六頁,共626頁。層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))
R1
根結(jié)點
R2
兄弟結(jié)點
R3
葉結(jié)點
R4
兄弟結(jié)點
R5
葉結(jié)點
葉結(jié)點第七十七頁,共626頁。層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))表示方法實體型:用記錄類型描述。每個結(jié)點表示一個記錄類型。屬性:用字段描述。每個記錄類型可包含若干個字段。聯(lián)系:用結(jié)點之間的連線表示記錄(類)型之間的
一對多的聯(lián)系實例:教員-學生數(shù)據(jù)模型(P23)第七十八頁,共626頁。層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))特點結(jié)點的雙親是唯一的只能直接處理一對多的實體聯(lián)系每個記錄類型定義一個排序字段,也稱為碼字段任何記錄值只有按其路徑查看時,才能顯出它的全部意義沒有一個子女記錄值能夠脫離雙親記錄值而獨立存在第七十九頁,共626頁。層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))多對多聯(lián)系在層次模型中的表示用層次模型間接表示多對多聯(lián)系方法將多對多聯(lián)系分解成一對多聯(lián)系分解方法冗余結(jié)點法虛擬結(jié)點法第八十頁,共626頁。2.層次模型的數(shù)據(jù)操縱查詢插入刪除更新第八十一頁,共626頁。3.層次模型的完整性約束無相應的雙親結(jié)點值就不能插入子女結(jié)點值如果刪除雙親結(jié)點值,則相應的子女結(jié)點值也被同時刪除更新操作時,應更新所有相應記錄,以保證數(shù)據(jù)的一致性第八十二頁,共626頁。4.層次數(shù)據(jù)模型的存儲結(jié)構(gòu)鄰接法按照層次樹前序遍歷的順序把所有記錄值依次鄰接存放,即通過物理空間的位置相鄰來實現(xiàn)層次順序鏈接法用指引元來反映數(shù)據(jù)之間的層次聯(lián)系子女-兄弟鏈接法P26層次序列鏈接法P26第八十三頁,共626頁。5.層次模型的優(yōu)缺點優(yōu)點層次數(shù)據(jù)模型簡單,對具有一對多的層次關系的部門描述自然、直觀,容易理解性能優(yōu)于關系模型,不低于網(wǎng)狀模型層次數(shù)據(jù)模型提供了良好的完整性支持缺點多對多聯(lián)系表示不自然對插入和刪除操作的限制多查詢子女結(jié)點必須通過雙親結(jié)點層次命令趨于程序化第八十四頁,共626頁。6.典型的層次數(shù)據(jù)庫系統(tǒng)IMS數(shù)據(jù)庫管理系統(tǒng)第一個大型商用DBMS1968年推出IBM公司研制第八十五頁,共626頁。第二章關系數(shù)據(jù)庫第八十六頁,共626頁。第二章關系數(shù)據(jù)庫2.1關系模型概述2.2關系數(shù)據(jù)結(jié)構(gòu)2.3關系的完整性2.4關系代數(shù)2.5關系演算2.6小結(jié)第八十七頁,共626頁。關系數(shù)據(jù)庫系統(tǒng)概述關系數(shù)據(jù)庫的發(fā)展CODASYL于1962年發(fā)表的“信息代數(shù)”一文
從1970年起發(fā)表了一系列的論文20世紀70年代末的實驗系統(tǒng)SystemR和Ingres從20世紀80年代逐步走向成熟第八十八頁,共626頁。關系數(shù)據(jù)庫簡介關系數(shù)據(jù)庫應用數(shù)學方法來處理數(shù)據(jù)庫中的數(shù)據(jù)80年代后,關系數(shù)據(jù)庫系統(tǒng)成為最重要、最流行的數(shù)據(jù)庫系統(tǒng)第八十九頁,共626頁。關系數(shù)據(jù)庫簡介典型實驗系統(tǒng)SystemRUniversityINGRES典型商用系統(tǒng)ORACLESYBASEINFORMIXDB2INGRES第九十頁,共626頁。第二章關系數(shù)據(jù)庫2.1關系模型概述2.2關系數(shù)據(jù)結(jié)構(gòu)2.3關系的完整性2.4關系代數(shù)2.5關系演算2.6小結(jié)第九十一頁,共626頁。2.1關系模型概述關系數(shù)據(jù)庫系統(tǒng)是支持關系模型的數(shù)據(jù)庫系統(tǒng)關系模型的組成關系數(shù)據(jù)結(jié)構(gòu)關系操作集合關系完整性約束第九十二頁,共626頁。1.關系數(shù)據(jù)結(jié)構(gòu)單一的數(shù)據(jù)結(jié)構(gòu)關系現(xiàn)實世界的實體以及實體間的各種聯(lián)系均用關系來表示數(shù)據(jù)的邏輯結(jié)構(gòu)二維表從用戶角度,關系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。第九十三頁,共626頁。2.關系操作集合1)常用的關系操作2)關系操作的特點3)關系數(shù)據(jù)語言的種類4)關系數(shù)據(jù)語言的特點第九十四頁,共626頁。關系操作集合(續(xù))1)常用的關系操作查詢選擇、投影、連接、除、并、交、差數(shù)據(jù)更新插入、刪除、修改查詢的表達能力是其中最主要的部分第九十五頁,共626頁。關系操作集合(續(xù))2)關系操作的特點集合操作方式,即操作的對象和結(jié)果都是集合。非關系數(shù)據(jù)模型的數(shù)據(jù)操作方式:一次一記錄文件系統(tǒng)的數(shù)據(jù)操作方式第九十六頁,共626頁。關系操作集合(續(xù))3)關系數(shù)據(jù)語言的種類關系代數(shù)語言用對關系的運算來表達查詢要求典型代表:ISBL第九十七頁,共626頁。關系操作集合(續(xù))關系數(shù)據(jù)語言的種類(續(xù))關系演算語言:用謂詞來表達查詢要求元組關系演算語言謂詞變元的基本對象是元組變量典型代表:APLHA,QUEL域關系演算語言謂詞變元的基本對象是域變量典型代表:QBE具有關系代數(shù)和關系演算雙重特點的語言典型代表:SQL第九十八頁,共626頁。關系操作集合(續(xù))4)關系數(shù)據(jù)語言的特點關系語言是一種高度非過程化的語言存取路徑的選擇由DBMS的優(yōu)化機制來完成用戶不必用循環(huán)結(jié)構(gòu)就可以完成數(shù)據(jù)操作能夠嵌入高級語言中使用關系代數(shù)、元組關系演算和域關系演算三種語言在表達能力上完全等價第九十九頁,共626頁。3.關系完整性約束在數(shù)據(jù)庫中數(shù)據(jù)完整性是指保證數(shù)據(jù)正確的特性。它包括兩方面的內(nèi)容:
與現(xiàn)實世界中應用需求的數(shù)據(jù)的相容性和正確性;數(shù)據(jù)庫內(nèi)數(shù)據(jù)之間的相容性和正確性。
在關系數(shù)據(jù)模型中一般將數(shù)據(jù)完整性分為三類
實體完整性參照完整性用戶定義完整性
第一百頁,共626頁。第二章關系數(shù)據(jù)庫2.1關系模型概述2.2關系數(shù)據(jù)結(jié)構(gòu)2.3關系的完整性2.4關系代數(shù)2.5關系演算2.6小結(jié)第一百零一頁,共626頁。2.2關系數(shù)據(jù)結(jié)構(gòu)關系數(shù)據(jù)結(jié)構(gòu)非常簡單,在關系數(shù)據(jù)模型中,現(xiàn)實世界中的實體及實體與實體之間的聯(lián)系均用關系來表示。從邏輯或用戶的觀點來看,關系就是二維表。
第一百零二頁,共626頁。2.2關系數(shù)據(jù)結(jié)構(gòu)2.2.1關系2.2.2關系模式2.2.3關系數(shù)據(jù)庫第一百零三頁,共626頁。2.2.1關系⒈域(Domain)2.笛卡爾積(CartesianProduct)3.關系(Relation)第一百零四頁,共626頁。⒈域(Domain)域是一組具有相同數(shù)據(jù)類型的值的集合。例:整數(shù)實數(shù)介于某個取值范圍的整數(shù)長度指定長度的字符串集合{‘男’,‘女’}介于某個取值范圍的日期第一百零五頁,共626頁。2.笛卡爾積(CartesianProduct)1)笛卡爾積給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}所有域的所有取值的一個組合不能重復第一百零六頁,共626頁。笛卡爾積(續(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è),王敏)}第一百零七頁,共626頁。笛卡爾積(續(xù))2)元組(Tuple)笛卡爾積中每一個元素(d1,d2,…,dn)叫作一個n元組(n-tuple)或簡稱元組。
3)分量(Component)笛卡爾積元素(d1,d2,…,dn)中的每一個值di叫作一個分量。
第一百零八頁,共626頁。笛卡爾積(續(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個元組第一百零九頁,共626頁。笛卡爾積(續(xù))5)笛卡爾積的表示方法笛卡爾積可表示為一個二維表。表中的每行對應一個元組,表中的每列對應一個域。在上例中,12個元組可列成一張二維表第一百一十頁,共626頁。
第一百一十一頁,共626頁。笛卡爾積(續(xù))第一百一十二頁,共626頁。3.關系(Relation)1)關系D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的關系,表示為
R(D1,D2,…,Dn)
R:關系名n:關系的目或度(Degree)第一百一十三頁,共626頁。關系(續(xù))注意:關系是笛卡爾積的有限子集。無限關系在數(shù)據(jù)庫系統(tǒng)中是無意義的。由于笛卡爾積不滿足交換律,即(d1,d2,…,dn)≠(d2,d1,…,dn)
但關系滿足交換律,即(d1,d2,…,di,dj,…,dn)=(d1,d2,…,dj,di
,…,dn)(i,j=1,2,…,n)解決方法:為關系的每個列附加一個屬性名以取消關系元組的有序性第一百一十四頁,共626頁。關系(續(xù))例在表2.1的笛卡爾積中取出有實際意義的元組來構(gòu)造關系關系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)關系名,屬性名假設:導師與專業(yè):1:1,導師與研究生:1:n于是:SAP關系可以包含三個元組{(張清玫,信息專業(yè),李勇),
(張清玫,信息專業(yè),劉晨),(劉逸,信息專業(yè),王敏)}
第一百一十五頁,共626頁。關系(續(xù))2)元組關系中的每個元素是關系中的元組,通常用t表示。3)單元關系與二元關系當n=1時,稱該關系為單元關系(Unaryrelation)。當n=2時,稱該關系為二元關系(Binaryrelation)。第一百一十六頁,共626頁。關系(續(xù))4)關系的表示關系也是一個二維表,表的每行對應一個元組,表的每列對應一個域。第一百一十七頁,共626頁。關系(續(xù))5)屬性關系中不同列可以對應相同的域,為了加以區(qū)分,必須對每列起一個名字,稱為屬性(Attribute)。n目關系必有n個屬性。第一百一十八頁,共626頁。關系(續(xù))6)碼候選碼(Candidatekey)若關系中的某一屬性組的值能唯一地標識一個元組,則稱該屬性組為候選碼在最簡單的情況下,候選碼只包含一個屬性。稱為全碼(All-key)在最極端的情況下,關系模式的所有屬性組是這個關系模式的候選碼,稱為全碼(All-key)第一百一十九頁,共626頁。關系(續(xù))碼(續(xù))主碼若一個關系有多個候選碼,則選定其中一個為主碼(Primarykey)主碼的諸屬性稱為主屬性(Primeattribute)。不包含在任何侯選碼中的屬性稱為非碼屬性(Non-keyattribute)第一百二十頁,共626頁。關系(續(xù))7)三類關系基本關系(基本表或基表)實際存在的表,是實際存儲數(shù)據(jù)的邏輯表示查詢表查詢結(jié)果對應的表視圖表由基本表或其他視圖表導出的表,是虛表,不對應實際存儲的數(shù)據(jù)第一百二十一頁,共626頁。8)基本關系的性質(zhì)①列是同質(zhì)的(Homogeneous)每一列中的分量是同一類型的數(shù)據(jù),來自同一個域②不同的列可出自同一個域其中的每一列稱為一個屬性不同的屬性要給予不同的屬性名第一百二十二頁,共626頁?;娟P系的性質(zhì)(續(xù))上例中也可以只給出兩個域:人(PERSON)=張清玫,劉逸,李勇,劉晨,王敏專業(yè)(SPECIALITY)=計算機專業(yè),信息專業(yè)SAP關系的導師屬性和研究生屬性都從PERSON域中取值為了避免混淆,必須給這兩個屬性取不同的屬性名,而不能直接使用域名。例如定義:導師屬性名為SUPERVISOR-PERSON(或SUPERVISOR)研究生屬性名為POSTGRADUATE-PERSON(或POSTGRADUATE)第一百二十三頁,共626頁?;娟P系的性質(zhì)(續(xù))③列的順序無所謂列的次序可以任意交換遵循這一性質(zhì)的數(shù)據(jù)庫產(chǎn)品(如ORACLE),增加新屬性時,永遠是插至最后一列但也有許多關系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì),例如FoxPro仍然區(qū)分了屬性順序第一百二十四頁,共626頁?;娟P系的性質(zhì)(續(xù))④任意兩個元組不能完全相同由笛卡爾積的性質(zhì)決定但許多關系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì)。例如:Oracle,F(xiàn)oxPro等都允許關系表中存在兩個完全相同的元組,除非用戶特別定義了相應的約束條件。第一百二十五頁,共626頁?;娟P系的性質(zhì)(續(xù))⑤行的順序無所謂行的次序可以任意交換遵循這一性質(zhì)的數(shù)據(jù)庫產(chǎn)品(如ORACLE),插入一個元組時永遠插至最后一行但也有許多關系數(shù)據(jù)庫產(chǎn)品沒有遵循這一性質(zhì),例如FoxPro仍然區(qū)分了元組的順序第一百二十六頁,共626頁。基本關系的性質(zhì)(續(xù))⑥分量必須取原子值每一個分量都必須是不可分的數(shù)據(jù)項。這是規(guī)范條件中最基本的一條第一百二十七頁,共626頁。2.2關系數(shù)據(jù)結(jié)構(gòu)2.2.1關系2.2.2關系模式2.2.3關系數(shù)據(jù)庫第一百二十八頁,共626頁。2.2.2關系模式1.什么是關系模式2.定義關系模式3.關系模式與關系第一百二十九頁,共626頁。1.什么是關系模式關系模式(RelationSchema)是型-靜態(tài)穩(wěn)定關系是值-動態(tài)變化,因為操作更新數(shù)據(jù)庫中數(shù)據(jù)關系模式需要描述:域:元組語義以及完整性約束條件元組:該關系所涉及的屬性集的笛卡爾積的一個元素關系是元組的集合,笛卡爾積的子集。關系模式必須指出這個元組集合的結(jié)構(gòu),由哪些屬性構(gòu)成,這些屬性來自哪些域,屬性與域之間的映像關系。關系由元組語義-n目謂詞確定,n目謂詞為真的笛卡爾積中的元素的全體就構(gòu)成了該關系模式的關系。第一百三十頁,共626頁。2.定義關系模式定義:關系的描述稱為關系模式,可以形式化地表示為:
R(U,D,dom,F(xiàn)) R關系名 U組成該關系的屬性名集合 D屬性組U中屬性所來自的域 dom屬性向域的映象集合 F屬性間的數(shù)據(jù)依賴關系集合第一百三十一頁,共626頁。定義關系模式(續(xù))例:導師和研究生出自同一個域——人,必須取不同的屬性名,并在模式中定義屬性向域的映象,即說明它們分別出自哪個域:dom(SUPERVISOR-PERSON)=dom(POSTGRADUATE-PERSON)=PERSON第一百三十二頁,共626頁。定義關系模式(續(xù))關系模式通??梢院営洖?/p>
R(U)或
R(A1,A2,…,An)
R關系名A1,A2,…,An屬性名注:域名及屬性向域的映象常常直接說明為屬性的類型、長度第一百三十三頁,共626頁。3.關系模式與關系關系模式對關系的描述靜態(tài)的、穩(wěn)定的關系關系模式在某一時刻的狀態(tài)或內(nèi)容動態(tài)的、隨時間不斷變化的關系模式和關系往往統(tǒng)稱為關系通過上下文加以區(qū)別第一百三十四頁,共626頁。2.2關系數(shù)據(jù)結(jié)構(gòu)2.2.1關系2.2.2關系模式2.2.3關系數(shù)據(jù)庫第一百三十五頁,共626頁。2.2.3關系數(shù)據(jù)庫1.關系數(shù)據(jù)庫2.關系數(shù)據(jù)庫的型與值第一百三十六頁,共626頁。1.關系數(shù)據(jù)庫在一個給定的應用領域中,所有實體及實體之間聯(lián)系的關系的集合構(gòu)成一個關系數(shù)據(jù)庫。第一百三十七頁,共626頁。2.關系數(shù)據(jù)庫的型與值關系數(shù)據(jù)庫也有型和值之分關系數(shù)據(jù)庫的型稱為關系數(shù)據(jù)庫模式,是對關系數(shù)據(jù)庫的描述若干域的定義在這些域上定義的若干關系模式關系數(shù)據(jù)庫的值是這些關系模式在某一時刻對應的關系的集合,通常簡稱為關系數(shù)據(jù)庫第一百三十八頁,共626頁。第二章關系數(shù)據(jù)庫2.1關系模型概述2.2關系數(shù)據(jù)結(jié)構(gòu)2.3關系的完整性2.4關系代數(shù)2.5關系演算2.6小結(jié)第一百三十九頁,共626頁。2.3關系的完整性關系模型的完整性規(guī)則是對關系的某種約束條件。關系模型中三類完整性約束:實體完整性參照完整性用戶定義的完整性實體完整性和參照完整性是關系模型必須滿足的完整性約束條件,被稱作是關系的兩個不變性,應該由關系系統(tǒng)自動支持。第一百四十頁,共626頁。關系的完整性(續(xù))2.3.1實體完整性2.3.2.參照完整性2.3.3.用戶定義的完整性第一百四十一頁,共626頁。2.3.1實體完整性實體完整性規(guī)則(EntityIntegrity)若屬性A是基本關系R的主屬性,則屬性A不能取空值例SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)如果POSTGRADUATE屬性為主碼,因為前兩個屬性一定會重,(假設研究生不會重名),則其不能取空值第一百四十二頁,共626頁。實體完整性規(guī)則實體完整性是要保證關系中的每個元組都是可識別和唯一的。實體完整性規(guī)則的具體內(nèi)容是:若屬性A是關系R的主屬性,則屬性A不可以為空值。實體完整性是關系模型必須滿足的完整性約束條件,也稱作是關系的不變性。關系數(shù)據(jù)庫管理系統(tǒng)可以用主關鍵字實現(xiàn)實體完整性,這是由關系系統(tǒng)自動支持的。第一百四十三頁,共626頁。對實體完整性規(guī)則的幾點說明實體完整性規(guī)則是針對關系而言的,而關系則對應一個現(xiàn)實世界中的實體集。例如,倉庫關系對應現(xiàn)實世界中的倉庫實體集。現(xiàn)實世界中的實體是可區(qū)分的,它們具有某種標識特征;相應地,關系中的元組也是可區(qū)分的,在關系中用主關鍵字做唯一性標識。主關鍵字中的屬性、即主屬性不能取空值。如果主屬性取空值,則意味著關系中的某個元組是不可標識的,即存在不可區(qū)分的實體,這與實體的定義也是矛盾的。第一百四十四頁,共626頁。關系的完整性2.3.1實體完整性2.3.2.參照完整性2.3.3.用戶定義的完整性第一百四十五頁,共626頁。2.3.2參照完整性1.關系間的引用2.外碼3.參照完整性規(guī)則第一百四十六頁,共626頁。1.關系間的引用在關系模型中實體及實體間的聯(lián)系都是用關系來描述的,因此可能存在著關系與關系間的引用。例1學生實體、專業(yè)實體以及專業(yè)與學生間的一對多聯(lián)系學生(學號,姓名,性別,專業(yè)號,年齡)專業(yè)(專業(yè)號,專業(yè)名)第一百四十七頁,共626頁。兩個關系間存在屬性的引用,即學生關系引用了專業(yè)關系的主碼“專業(yè)號”。學生關系中的專業(yè)號值必須是確實存在的專業(yè),即,學生關系中的某個屬性的取值需要參照專業(yè)關系的屬性取值。第一百四十八頁,共626頁。
學生(學號,姓名,性別,專業(yè)號,年齡)
專業(yè)(專業(yè)號,專業(yè)名)
第一百四十九頁,共626頁。關系間的引用(續(xù))例2學生、課程、學生與課程之間的多對多聯(lián)系學生(學號,姓名,性別,專業(yè)號,年齡)課程(課程號,課程名,學分)選修(學號,課程號,成績)第一百五十頁,共626頁。例2要說明的也是屬性間存在引用。同樣,選修關系中的學號必須是學生關系中有記錄的學生,選修關系中的課程號值必須是課程關系中確實存在的。選修關系中某些屬性的取值需要參照其他關系中屬性的取值。第一百五十一頁,共626頁。
學生學生選課課程第一百五十二頁,共626頁。關系間的引用(續(xù))例3學生實體及其內(nèi)部的領導聯(lián)系(一對多)
學生(學號,姓名,性別,專業(yè)號,年齡,班長)班長引用了本關系中“學號”屬性,即必須是確實存在的學生的學號第一百五十三頁,共626頁。2.外碼(ForeignKey)設F是基本關系R的一個或一組屬性,但不是關系R的碼。如果F與基本關系S的主碼Ks相對應,則稱F是基本關系R的外碼基本關系R稱為參照關系(ReferencingRelation)基本關系S稱為被參照關系(ReferencedRelation)或目標關系(TargetRelation)。第一百五十四頁,共626頁。外碼(續(xù))說明關系R和S不一定是不同的關系目標關系S的主碼Ks和參照關系的外碼F必須定義在同一個(或一組)域上外碼并不一定要與相應的主碼同名當外碼與相應的主碼屬于不同關系時,往往取相同的名字,以便于識別第一百五十五頁,共626頁。3.參照完整性規(guī)則若屬性(或?qū)傩越M)F是基本關系R的外碼它與基本關系S的主碼Ks相對應(基本關系R和S不一定是不同的關系),則對于R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值)或者等于S中某個元組的主碼值。第一百五十六頁,共626頁。參照完整性規(guī)則(續(xù))學生關系中每個元組的“專業(yè)號”屬性只取下面兩類值:(1)空值,表示尚未給該學生分配專業(yè)(2)非空值,這時該值必須是專業(yè)關系中某個元組的“專業(yè)號”值,表示該學生不可能分配到一個不存在的專業(yè)中第一百五十七頁,共626頁。例1中“專業(yè)號”為學生關系的外碼,專業(yè)關系為被參照關系專業(yè)號學生關系
專業(yè)關系例2中(略)
學號課程號學生關系選修關系課程關系
第一百五十八頁,共626頁。參照完整性規(guī)則(續(xù))選修(學號,課程號,成績)“學號”和“課程號”是選修關系中的主屬性按照實體完整性和參照完整性規(guī)則,它們只能取相應被參照關系中已經(jīng)存在的主碼值第一百五十九頁,共626頁。參照完整性規(guī)則(續(xù))學生(學號,姓名,性別,專業(yè)號,年齡,班長)“班長”屬性值可以取兩類值:(1)空值,表示該學生所在班級尚未選出班長,或該學生本人即是班長;(2)非空值,這時該值必須是本關系中某個元組的學號值第一百六十頁,共626頁。關系的完整性(續(xù))2.3.1實體完整性2.3.2.參照完整性2.3.3.用戶定義的完整性第一百六十一頁,共626頁。2.3.3用戶定義的完整性一種與應用密切相關的數(shù)據(jù)完整性約束,如某個屬性的值必須唯一某個非主屬性不能取空值某個屬性的取值必須在某個范圍內(nèi)某些屬性值之間應該滿足一定的函數(shù)關系等類似以上的約束不是關系數(shù)據(jù)模型本身所要求的,而是為了滿足具體應用必須的語義要求在用戶定義完整性中最常見的是限定屬性的取值范圍,即對值域的約束,所以在用戶定義完整性中最常見的是域完整性約束。第一百六十二頁,共626頁。用戶定義完整性約束的作用執(zhí)行插入操作時檢查完整性執(zhí)行插入操作時需要分別檢查實體完整性規(guī)則、參照完整性規(guī)則和用戶定義完整性規(guī)則。執(zhí)行刪除操作時檢查完整性執(zhí)行刪除操作時一般只需要檢查參照完整性規(guī)則。執(zhí)行更新操作時檢查完整性執(zhí)行更新操作可以看作是先刪除舊的元組,然后再插入新的元組。所以執(zhí)行更新操作時的完整性檢查綜合了上述兩種情況。第一百六十三頁,共626頁。用戶定義的完整性(續(xù))例: 課程(課程號,課程名,學分)“課程名”屬性必須取唯一值非主屬性“課程名”也不能取空值“學分”屬性只能取值{1,2,3,4}第一百六十四頁,共626頁。2.4關系代數(shù)是一種抽象的查詢語言,是關系數(shù)據(jù)操縱語言的一種傳統(tǒng)表達方式,是用對關系的運算表達查詢的。三大要素:運算對象、運算符、運算結(jié)果運算符:集合運算符∪,-,∩,×專門的關系運算符∏÷……算術(shù)比較符≥≠……邏輯運算符∨∧……第一百六十五頁,共626頁。引入記號關系模式R(A1,A2,…,An),t∈R表示R的一個元組t。t[Ai]表示屬性元組t中相應于屬性Ai的分量若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An的一部分A稱作屬性列或域列。元組的連接給定關系R(X,Z),定義當t[X]=x時,x在R中的象集為表示R中屬性組X上值為x的諸元組在Z上分量的集合。第一百六十六頁,共626頁。2.4關系代數(shù)關系的數(shù)據(jù)操作集合查詢選擇、投影、連接、除、并、交、差數(shù)據(jù)更新插入、刪除、修改第一百六十七頁,共626頁。關系的完整性約束實體完整性參照完整性外碼用戶定義的完整性第一百六十八頁,共626頁。第三章關系數(shù)據(jù)庫標準語言 SQL第一百六十九頁,共626頁。3.1SQL概述SQL的特點1.綜合統(tǒng)一2.高度非過程化3.面向集合的操作方式4.以同一種語法結(jié)構(gòu)提供兩種使用方法5.語言簡潔,易學易用第一百七十頁,共626頁。5.語言簡捷,易學易用第一百七十一頁,共626頁。3.2數(shù)據(jù)定義第一百七十二頁,共626頁。3.2.1定義語句格式CREATETABLE<表名>(<列名><數(shù)據(jù)類型>[<列級完整性約束>],<列名><數(shù)據(jù)類型>[<列級完整性約束>],……,[<表級完整性約束>])[<其它參數(shù)>]?
<表名>給出要創(chuàng)建的基本表的名稱;?
<列名>給出列名或字段名;?
<數(shù)據(jù)類型>?
<列級完整性約束>?
<表級完整性約束>?
<其它參數(shù)>第一百七十三頁,共626頁。為列指定數(shù)據(jù)類型及其數(shù)據(jù)寬度;
關系數(shù)據(jù)庫支持非常豐富的數(shù)據(jù)類型,不同的數(shù)據(jù)庫管理系統(tǒng)支持的數(shù)據(jù)類型基本是一樣的,右表列出了常用的數(shù)據(jù)類型。
數(shù)據(jù)類型第一百七十四頁,共626頁。用于定義列或字段一級的完整性約束,一般包括:NOTNULL和NULL約束
PRIMARYKEY約束
UNIQUE約束
FOREIGNKEY約束
DEFAULT定義
CHECK約束
列級完整性約束第一百七十五頁,共626頁。用于定義表一級的完整性約束,一般包括:PRIMARYKEY約束(復合屬性構(gòu)成的主關鍵字說明)FOREIGNKEY約束(外部關鍵字及參照關系說明)CHECK約束(同時涉及到多個屬性的域完整性約束)
表級完整性約束第一百七十六頁,共626頁。不是SQL的標準選項,一般用于與物理存儲有關的說明,不同的數(shù)據(jù)庫管理系統(tǒng)定義的方式肯定不同,另外該項參數(shù)一般也不是必需的。
其他參數(shù)第一百七十七頁,共626頁。例題[例1]建立一個“學生”表Student,它由學號Sno、姓名Sname、性別Ssex、年齡Sage、所在系Sdept五個屬性組成。其中學號不能為空,值是唯一的,并且姓名取值也唯一。CREATETABLEStudent(SnoCHAR(5)NOTNULLUNIQUE,SnameCHAR(20)UNIQUE,SsexCHAR(1),SageINT,SdeptCHAR(15));第一百七十八頁,共626頁。二、修改基本表ALTERTABLE<表名>[ADD<新列名><數(shù)據(jù)類型>[<列級完整性約束>]]|[DROP<完整性約束名>][MODIFY<列名><數(shù)據(jù)類型>][DROPCOLUMN<列名>][ALTERCOLUMN<列名><數(shù)據(jù)類型>[<列級完整性約束>]]第一百七十九頁,共626頁。例題[例2]向Student表增加“入學時間”列,其數(shù)據(jù)類型為日期型。
ALTERTABLEStudentADDScomeDATE;不論基本表中原來是否已有數(shù)據(jù),新增加的列一律為空值。
第一百八十頁,共626頁。例題[例3]將年齡的數(shù)據(jù)類型改為半字長整數(shù)。
ALTERTABLEStudentMODIFYSageSMALLINT;修改原有的列定義可能會破壞已有數(shù)據(jù)。
第一百八十一頁,共626頁。例題[例4]刪除關于學號必須取唯一值的約束。
ALTERTABLEStudentDROPUNIQUE(Sno);SQL沒有提供刪除屬性列的語句,只能間接實現(xiàn),先將原表中要保留的列及其內(nèi)容復制到一個新表中,然后刪除原表,并將新表命名為原表名。
第一百八十二頁,共626頁。三、刪除基本表 DROPTABLE<表名>;
基本表刪除 數(shù)據(jù)、表上的索引都刪除 表上的視圖往往仍然保留,但 無法引用刪除基本表時,系統(tǒng)會自動從數(shù)據(jù)字典中刪去有關該基本表及其索引的描述,因此建立在此表上的視圖雖然已保留,但已無法引用第一百八十三頁,共626頁。例題例5刪除Student表DROPTABLEStudent;第一百八十四頁,共626頁。3.2.2建立與刪除索引建立索引是加快查詢速度的有效手段建立索引DBA或表的屬主(即建立表的人)根據(jù)需要建立和刪除有些DBMS自動建立以下列上的索引
PRIMARYKEYUNIQUE維護索引
DBMS自動完成
使用索引
DBMS自動選擇是否使用索引以及使用哪些索引第一百八十五頁,共626頁。一、建立索引語句格式CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]]…); 用<表名>指定要建索引的基本表名字索引可以建立在該表的一列或多列上,各列名之間用逗號分隔用<次序>指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASCUNIQUE表明此索引的每一個索引值只對應唯一的數(shù)據(jù)記錄CLUSTER表示要建立的索引是聚簇索引第一百八十六頁,共626頁。建立索引(續(xù))唯一值索引對于已含重復值的屬性列不能建UNIQUE索引對某個列建立UNIQUE索引后,插入新記錄時DBMS會自動檢查新記錄在該列上是否取了重復值。這相當于增加了一個UNIQUE約束第一百八十七頁,共626頁。建立索引(續(xù))聚簇索引建立聚簇索引后,基表中數(shù)據(jù)也需要按指定的聚簇屬性值的升序或降序存放。也即聚簇索引的索引項順序與表中記錄的物理順序一致例:CREATECLUSTERINDEXStusnameONStudent(Sname);在Student表的Sname(姓名)列上建立一個聚簇索引,而且Student表中的記錄將按照Sname值的升序存放
第一百八十八頁,共626頁。建立索引(續(xù))在一個基本表上最多只能建立一個聚簇索引聚簇索引的用途:對于某些類型的查詢,可以提高查詢效率聚簇索引的適用范圍很少對基表進行增刪操作很少對其中的變長列進行修改操作第一百八十九頁,共626頁。聚簇索引是指索引項的順序與表中記錄的物理順序一致的索引組織。例CREATECLUSTERINDEXStusnameONStudent(Sname);將會在Student表的Sname列上建一個聚簇索引,而且記錄會按照Sname值的升序存放。用戶可以在最常查詢的列上建立聚簇索引以提高查詢效率。但在一個基本表上只能建一個,而且更新索引列數(shù)據(jù)會導致表中記錄的物理順序的變更,因此經(jīng)常更新的數(shù)據(jù)列不宜建立。第一百九十頁,共626頁。例題[例6]為學生-課程數(shù)據(jù)庫中的Student,Course,SC三個表建立索引。其中Student表按學號升序建唯一索引,Course表按課程號升序建唯一索引,SC表按學號升序和課程號降序建唯一索引。CREATEUNIQUEINDEXStusnoONStudent(Sno)CREATEUNIQUEINDEXCoucnoONCourse(Cno);CREATEUNIQUEINDEXSCnoONSC(SnoASC,CnoDESC);第一百九十一頁,共626頁。二、刪除索引DROPINDEX<索引名>;刪除索引時,系統(tǒng)會從數(shù)據(jù)字典中刪去有關該索引的描述。[例7]刪除Student表的Stusname索引。 DROPINDEXStusname;第一百九十二頁,共626頁。3.3.1概述語句格式SELECT[ALL|DISTINCT]<目標表達式>[,<目標表達式>]…FROM<表名或視圖名>[,<表名或視圖名>…][WHERE<條件表達式>][GROUPBY<列名1>[HAVING<條件表達式>]][ORDERBY<列名2>[ASC|DESC]];第一百九十三頁,共626頁。示例數(shù)據(jù)庫學生-課程數(shù)據(jù)庫學生表:Student(Sno,Sname,Ssex,Sage,Sdept)課程表:Course(Cno,Cname,Cpno,Ccredit)學生選課表:SC(Sno,Cno,Grade)第一百九十四頁,共626頁。3.3查詢3.3.1概述3.3.2單表查詢3.3.3連接查詢3.3.4嵌套查詢3.3.5集合查詢3.3.6小結(jié)第一百九十五頁,共626頁。3.3.2單表查詢查詢僅涉及一個表,是一種最簡單的查詢操作一、選擇表中的若干列二、選擇表中的若干元組三、對查詢結(jié)果排序四、使用集函數(shù)五、對查詢結(jié)果分組
第一百九十六頁,共626頁。從職工關系中檢索所有工資值SELECT工資FROM職工結(jié)果是:12201210125012301250SELECTDISTINCT工資FROM職工結(jié)果是:1220121012501230第一百九十七頁,共626頁。單表查詢用戶在查詢時可根據(jù)應用的需要改變列的顯示順序例2查詢?nèi)w學生的姓名、學號、所在系。查詢?nèi)苛?將所有的列名在SELECT后面列出或者用*表示列名例3SELECT*FROMStudent;查詢經(jīng)過計算的值例4查詢?nèi)w學生姓名及其出生年份SELECTSname,1996-SageFROMStudent;第一百九十八頁,共626頁。單表查詢<目標列表達式>不僅可以是算術(shù)表達式,還可以是字符串常量、函數(shù)等。例5查詢?nèi)w學生的姓名、出生年份和所有系,要求用小寫字母表示所有系名SELECTSname,’YearofBirth:’,1996-Sage,ISLOWER(Sdept)FROMStudent;輸出結(jié)果:Sname’YearofBirth:’1996-SageISLOWER(Sdept)
李勇YearofBirth:1976cs劉晨YearofBirth:1977is王名YearofBirth:1978ma張立YearofBirth:1977is第一百九十九頁,共626頁。[例5.*]使用列別名改變查詢結(jié)果的列標題SELECTSnameNAME,'YearofBirth:’
BIRTH,
2000-SageBIRTHDAY,ISLOWER(Sdept)DEPARTMENTFROM
Student;輸出結(jié)果:
NAMEBIRTHBIRTHDAYDEPARTMENT
李勇YearofBirth:1976cs劉晨YearofBirth:1977is王名YearofBirth:1978ma張立YearofBirth:1977is第二百頁,共626頁。二、選擇表中的若干元組消除取值重復的行查詢滿足條件的元組第二百零一頁,共626頁。1.消除取值重復的行在SELECT子句中使用DISTINCT短語假設SC表中有下列數(shù)據(jù) SnoCnoGrade
9500119295001285950013889500229095002380第二百零二頁,共626頁。ALL與
DISTINCT
[例6]查詢選修了課程的學生學號。(1)SELECTSnoFROMSC;(因為默認的是ALL)SELECTALLSnoFROMSC;
所以結(jié)果為:Sno
9500195001950019500295002第二百零三頁,共626頁。例題(續(xù))(2)SELECTDISTINCTSnoFROMSC;
結(jié)果:
Sno
9500195002總結(jié):兩個本來并不完全相同的元組,投影到指定的某些列上后,可能變成完全相同的行,于是必須用DISTINCT短語或象下面那樣用WHERE語句。第二百零四頁,共626頁。2.查詢滿足條件的元組WHERE子句常用的查詢條件第二百零五頁,共626頁。(1)比較大小在WHERE子句的<比較條件>中使用比較運算符=,>,<,>=,<=,!=或<>,!>,!<,邏輯運算符NOT+比較運算符[例8]查詢所有年齡在20歲以下的學生姓名及其年齡。
SELECTSname,Sage
FROMStudentWHERESage<20;或SELECTSname,SageFROMStudentWHERENOTSage>=20;
第二百零六頁,共626頁。例9查詢考試成績有不及格的學生的學號SELECTDISTINCTSnoFROMSCWHEREGrade<60;第二百零七頁,共626頁。(2)確定范圍使用謂詞BETWEEN…(下限)AND…(上限)NOTBETWEEN…AND…[例10]查詢年齡在20~23歲(包括20歲和23歲)之間的學生的姓名、系別和年齡。
SELECTSname,Sdept,SageFROMStudentWHERESageBETWEEN20AND23;
第二百零八頁,共626頁。例題(續(xù))[例11]查詢年齡不在20~23歲之間的學生姓名、系別和年齡。SELECTSname,Sdept,SageFROMStudentWHERESageNOTBETWEEN20AND23;
第二百零九頁,共626頁。(3)確定集合使用謂詞IN<值表>,NOTIN<值表>
<值表>:用逗號分隔的一組取值[例12]查詢信息系(IS)、數(shù)學系(MA)和計算機科學系(CS)學生的姓名和性別。SELECTSname,SsexFROMStudentWHERESdeptIN('IS','MA','CS');第二百一十頁,共626頁。(3)確定集合[例13]查詢既不是信息系、數(shù)學系,也不是計算機科學系的學生的姓名和性別。SELECTSname,SsexFROMStudent WHERESdeptNOTIN('IS','MA','CS');第二百一十一頁,共626頁。(4)字符串匹配[NOT]LIKE‘<匹配串>’[ESCAPE‘<換碼字符>’]<匹配串>:指定匹配模板匹配模板:固定字符串或含通配符的字符串當匹配模板為固定字符串時,即不含通配符時可以用=運算符取代LIKE謂詞用!=或<>運算符取代NOTLIKE謂詞第二百一十二頁,共626頁。通配符%(百分號)代表任意長度(長度可以為0)的字符串例:a%b表示以a開頭,以b結(jié)尾的任意長度的字符串。如acb,addgb,ab等都滿足該匹配
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 娛樂行業(yè)宣傳活動總結(jié)
- 通訊設備行業(yè)安全管理工作總結(jié)
- 二零二五年度航空發(fā)動機機油專業(yè)供應及維修合同3篇
- 個人車輛抵債協(xié)議書(二零二五版)債權(quán)債務解除條款4篇
- 2025版老舊小區(qū)水電改造工程承包協(xié)議書2篇
- 二零二五年度電商小商品購銷合作合同規(guī)范文本3篇
- 二零二五年度進口建筑材料質(zhì)量檢驗合同范本6篇
- 二零二五年度個人住宅裝修工程環(huán)保驗收合同2篇
- 生活服務保安工作總結(jié)
- 裝修設計行業(yè)銷售工作總結(jié)
- 知識圖譜與大模型融合實踐研究報告
- 衛(wèi)生專業(yè)技術(shù)資格考試衛(wèi)生檢驗技術(shù)(初級(師)211)專業(yè)知識試題及答案指導
- 0-9任意四位數(shù)手機密碼排列組合全部數(shù)據(jù)列表
- 碳排放管理員 (碳排放核查員)技能考核內(nèi)容結(jié)構(gòu)表四級、技能考核要素細目表四級
- 物業(yè)五級三類服務統(tǒng)一標準
- 分期還款協(xié)議書范本
- 2024年東南亞人用疫苗市場深度研究及預測報告
- 【采購管理優(yōu)化探究文獻綜述3000字】
- 《大學生職業(yè)發(fā)展與就業(yè)指導》課程標準
- 第23課《出師表》課件(共56張)
- GB/T 3953-2024電工圓銅線
評論
0/150
提交評論