數(shù)據(jù)庫(kù)原理(完整版)_第1頁(yè)
數(shù)據(jù)庫(kù)原理(完整版)_第2頁(yè)
數(shù)據(jù)庫(kù)原理(完整版)_第3頁(yè)
數(shù)據(jù)庫(kù)原理(完整版)_第4頁(yè)
數(shù)據(jù)庫(kù)原理(完整版)_第5頁(yè)
已閱讀5頁(yè),還剩621頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)原理(完整版)第一頁(yè),共626頁(yè)。教材及參考書(shū)(1)教材薩師煊,王珊:數(shù)據(jù)庫(kù)系統(tǒng)概論(第三版),高等教育出版社,2000中國(guó)人民大學(xué)李紅:數(shù)據(jù)庫(kù)原理與應(yīng)用

高等教育出版社,2003

第二頁(yè),共626頁(yè)。教材及參考書(shū)(2)參考書(shū)崔巍:數(shù)據(jù)庫(kù)系統(tǒng)與應(yīng)用,

高等教育出版社,2000施伯樂(lè):數(shù)據(jù)庫(kù)系統(tǒng)教程高等教育出版社第三頁(yè),共626頁(yè)。第一章緒論第四頁(yè),共626頁(yè)。1.1

數(shù)據(jù)庫(kù)系統(tǒng)概述

1.1.1數(shù)據(jù)庫(kù)的地位1.1.2四個(gè)基本概念1.1.3數(shù)據(jù)管理技術(shù)的產(chǎn)生與發(fā)展第五頁(yè),共626頁(yè)。數(shù)據(jù)庫(kù)的地位為什么要學(xué)習(xí)數(shù)據(jù)庫(kù)第六頁(yè),共626頁(yè)。數(shù)據(jù)庫(kù)技術(shù)始于20世紀(jì)60年代,經(jīng)歷了最初的基于文件的初級(jí)系統(tǒng)、20世紀(jì)60~70年代流行的層次系統(tǒng)和網(wǎng)狀系統(tǒng),而現(xiàn)在廣泛使用的是關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。數(shù)據(jù)庫(kù)應(yīng)用也從簡(jiǎn)單的事務(wù)管理擴(kuò)展到各個(gè)應(yīng)用領(lǐng)域,如用于工程設(shè)計(jì)的工程數(shù)據(jù)庫(kù)、用于因特網(wǎng)的Web數(shù)據(jù)庫(kù)、用于決策支持的數(shù)據(jù)倉(cāng)庫(kù)技術(shù)、用于多媒體技術(shù)的多媒體數(shù)據(jù)庫(kù)等,但應(yīng)用最廣泛的還是在基于事務(wù)管理的各類信息系統(tǒng)領(lǐng)域。第七頁(yè),共626頁(yè)。1.1數(shù)據(jù)庫(kù)系統(tǒng)概述1.1.1數(shù)據(jù)庫(kù)的地位

1.1.2四個(gè)基本概念1.1.3數(shù)據(jù)管理技術(shù)的產(chǎn)生與發(fā)展第八頁(yè),共626頁(yè)。1.1.2四個(gè)基本概念數(shù)據(jù)(Data)數(shù)據(jù)庫(kù)(Database)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)數(shù)據(jù)庫(kù)系統(tǒng)(DBS)第九頁(yè),共626頁(yè)。一、數(shù)據(jù)數(shù)據(jù)(Data)是數(shù)據(jù)庫(kù)中存儲(chǔ)的基本對(duì)象數(shù)據(jù)的定義描述事物的符號(hào)記錄數(shù)據(jù)的種類文字、圖形、圖象、聲音數(shù)據(jù)的特點(diǎn)數(shù)據(jù)與其語(yǔ)義是不可分的第十頁(yè),共626頁(yè)。數(shù)據(jù)舉例學(xué)生檔案中的學(xué)生記錄(李明,男,1972,江蘇,計(jì)算機(jī)系,1990)數(shù)據(jù)的形式不能完全表達(dá)其內(nèi)容數(shù)據(jù)的解釋語(yǔ)義:學(xué)生姓名、性別、出生年月、籍貫、所在系別、入學(xué)時(shí)間解釋:李明是個(gè)大學(xué)生,1972年出生,江蘇人,1990年考入計(jì)算機(jī)系第十一頁(yè),共626頁(yè)。二、數(shù)據(jù)庫(kù)(舉例)第十二頁(yè),共626頁(yè)。數(shù)據(jù)庫(kù)——是相互關(guān)聯(lián)的數(shù)據(jù)的集合。性質(zhì):用綜合的方法組織數(shù)據(jù),具有較小的數(shù)據(jù)冗余,可供多個(gè)用戶共享,具有較高的數(shù)據(jù)獨(dú)立性,具有安全控制機(jī)制,能夠保證數(shù)據(jù)的安全、可靠,允許并發(fā)地使用數(shù)據(jù)庫(kù),能有效、及時(shí)地處理數(shù)據(jù),并能保證數(shù)據(jù)的一致性和完整性。什么是數(shù)據(jù)庫(kù)第十三頁(yè),共626頁(yè)。DataBaseManagementSystem——簡(jiǎn)稱DBMS三、數(shù)據(jù)庫(kù)管理系統(tǒng)第十四頁(yè),共626頁(yè)。簡(jiǎn)單說(shuō)DBMS就是管理數(shù)據(jù)庫(kù)的系統(tǒng)軟件,它應(yīng)該具有如下功能:數(shù)據(jù)庫(kù)定義功能數(shù)據(jù)庫(kù)操縱功能數(shù)據(jù)庫(kù)查詢功能數(shù)據(jù)庫(kù)控制功能數(shù)據(jù)庫(kù)通訊功能什么是數(shù)據(jù)庫(kù)管理系統(tǒng)?第十五頁(yè),共626頁(yè)。數(shù)據(jù)庫(kù)管理的重要性數(shù)據(jù)庫(kù)管理員——DataBaseAdministratorDBA的重要職責(zé)數(shù)據(jù)庫(kù)管理和數(shù)據(jù)庫(kù)管理員第十六頁(yè),共626頁(yè)。DBMS的主要功能數(shù)據(jù)定義功能

提供數(shù)據(jù)定義語(yǔ)言(DDL)定義數(shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)象數(shù)據(jù)操縱功能:提供數(shù)據(jù)操縱語(yǔ)言(DML)

操縱數(shù)據(jù)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的基本操作(查詢、插入、刪除和修改)第十七頁(yè),共626頁(yè)。DBMS的主要功能數(shù)據(jù)庫(kù)的運(yùn)行管理

保證數(shù)據(jù)的安全性、完整性、 多用戶對(duì)數(shù)據(jù)的并發(fā)使用 發(fā)生故障后的系統(tǒng)恢復(fù)數(shù)據(jù)庫(kù)的建立和維護(hù)功能(實(shí)用程序)數(shù)據(jù)庫(kù)數(shù)據(jù)批量裝載 數(shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ) 介質(zhì)故障恢復(fù) 數(shù)據(jù)庫(kù)的重組織 性能監(jiān)視等第十八頁(yè),共626頁(yè)。四、數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)就是基于數(shù)據(jù)庫(kù)的計(jì)算機(jī)應(yīng)用系統(tǒng),它包括:以數(shù)據(jù)為主體的數(shù)據(jù)庫(kù)管理數(shù)據(jù)庫(kù)的系統(tǒng)軟件DBMS支持?jǐn)?shù)據(jù)庫(kù)系統(tǒng)的計(jì)算機(jī)硬件環(huán)境和操作系統(tǒng)環(huán)境管理和使用數(shù)據(jù)庫(kù)系統(tǒng)的人,特別是負(fù)責(zé)設(shè)計(jì)、維護(hù)數(shù)據(jù)庫(kù)的技術(shù)人員——數(shù)據(jù)庫(kù)管理員方便使用和管理系統(tǒng)的各種技術(shù)說(shuō)明書(shū)和使用說(shuō)明書(shū)第十九頁(yè),共626頁(yè)。數(shù)據(jù)庫(kù)系統(tǒng)(續(xù))數(shù)據(jù)庫(kù)系統(tǒng)構(gòu)成圖示參看教材page_5圖1.1數(shù)據(jù)庫(kù)系統(tǒng)在計(jì)算機(jī)系統(tǒng)中的位置圖示參看教材page_5圖1.2第二十頁(yè),共626頁(yè)。1.1數(shù)據(jù)庫(kù)系統(tǒng)概述1.1.1數(shù)據(jù)庫(kù)的地位1.1.2四個(gè)基本概念

1.1.3數(shù)據(jù)管理技術(shù)的產(chǎn)生與發(fā)展第二十一頁(yè),共626頁(yè)。1.1.3數(shù)據(jù)管理技術(shù)的產(chǎn)生和發(fā)展什么是數(shù)據(jù)管理對(duì)數(shù)據(jù)進(jìn)行分類、組織、編碼、存儲(chǔ)、檢索和維護(hù),是數(shù)據(jù)處理的中心問(wèn)題數(shù)據(jù)管理技術(shù)的發(fā)展過(guò)程人工管理階段(40年代中--50年代中)文件系統(tǒng)階段(50年代末--60年代中)數(shù)據(jù)庫(kù)系統(tǒng)階段(60年代末--現(xiàn)在)第二十二頁(yè),共626頁(yè)。數(shù)據(jù)管理技術(shù)的產(chǎn)生和發(fā)展(續(xù))數(shù)據(jù)管理技術(shù)的發(fā)展動(dòng)力應(yīng)用需求的推動(dòng)計(jì)算機(jī)硬件的發(fā)展計(jì)算機(jī)軟件的發(fā)展第二十三頁(yè),共626頁(yè)。一、人工管理時(shí)期40年代中--50年代中產(chǎn)生的背景應(yīng)用需求 科學(xué)計(jì)算 硬件水平 無(wú)直接存取存儲(chǔ)設(shè)備 軟件水平 沒(méi)有操作系統(tǒng) 處理方式 批處理 第二十四頁(yè),共626頁(yè)。人工管理(續(xù))特點(diǎn)數(shù)據(jù)的管理者:應(yīng)用程序,數(shù)據(jù)不保存。數(shù)據(jù)面向的對(duì)象:某一應(yīng)用程序數(shù)據(jù)的共享程度:無(wú)共享、冗余度極大數(shù)據(jù)的獨(dú)立性:不獨(dú)立,完全依賴于程序數(shù)據(jù)的結(jié)構(gòu)化:無(wú)結(jié)構(gòu)數(shù)據(jù)控制能力:應(yīng)用程序自己控制第二十五頁(yè),共626頁(yè)。應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n…數(shù)據(jù)集n數(shù)據(jù)集2數(shù)據(jù)集1…人工管理階段第二十六頁(yè),共626頁(yè)。二、文件系統(tǒng)時(shí)期50年代末--60年代中產(chǎn)生的背景應(yīng)用需求 科學(xué)計(jì)算、管理 硬件水平 磁盤(pán)、磁鼓 軟件水平 有文件系統(tǒng) 處理方式 聯(lián)機(jī)實(shí)時(shí)處理、批處理

第二十七頁(yè),共626頁(yè)。文件系統(tǒng)(續(xù))特點(diǎn)數(shù)據(jù)的管理者:文件系統(tǒng),數(shù)據(jù)可長(zhǎng)期保存數(shù)據(jù)面向的對(duì)象:某一應(yīng)用程序數(shù)據(jù)的共享程度:共享性差、冗余度大數(shù)據(jù)的結(jié)構(gòu)化:記錄內(nèi)有結(jié)構(gòu),整體無(wú)結(jié)構(gòu)數(shù)據(jù)的獨(dú)立性:獨(dú)立性差,數(shù)據(jù)的邏輯結(jié)構(gòu)改變必須修改應(yīng)用程序數(shù)據(jù)控制能力:應(yīng)用程序自己控制第二十八頁(yè),共626頁(yè)。應(yīng)用程序與數(shù)據(jù)的對(duì)應(yīng)關(guān)系(文件系統(tǒng))應(yīng)用程序1文件1應(yīng)用程序2文件2……應(yīng)用程序n文件n文件系統(tǒng)第二十九頁(yè),共626頁(yè)。文件系統(tǒng)中數(shù)據(jù)的結(jié)構(gòu)記錄內(nèi)有結(jié)構(gòu)。數(shù)據(jù)的結(jié)構(gòu)是靠程序定義和解釋的。數(shù)據(jù)只能是定長(zhǎng)的??梢蚤g接實(shí)現(xiàn)數(shù)據(jù)變長(zhǎng)要求,但訪問(wèn)相應(yīng)數(shù)據(jù)的應(yīng)用程序復(fù)雜了。文件間是獨(dú)立的,因此數(shù)據(jù)整體無(wú)結(jié)構(gòu)。可以間接實(shí)現(xiàn)數(shù)據(jù)整體的有結(jié)構(gòu),但必須在應(yīng)用程序中對(duì)描述數(shù)據(jù)間的聯(lián)系。數(shù)據(jù)的最小存取單位是記錄。第三十頁(yè),共626頁(yè)。三、數(shù)據(jù)庫(kù)系統(tǒng)時(shí)期60年代末以來(lái)產(chǎn)生的背景應(yīng)用背景 大規(guī)模管理 硬件背景 大容量磁盤(pán) 軟件背景 有數(shù)據(jù)庫(kù)管理系統(tǒng) 處理方式 聯(lián)機(jī)實(shí)時(shí)處理,分布處理,批處理 第三十一頁(yè),共626頁(yè)。數(shù)據(jù)庫(kù)系統(tǒng)(續(xù))特點(diǎn)數(shù)據(jù)的管理者:DBMS數(shù)據(jù)面向的對(duì)象:現(xiàn)實(shí)世界 數(shù)據(jù)的共享程度:共享性高 數(shù)據(jù)的獨(dú)立性:高度的物理獨(dú)立性和一定的邏輯獨(dú)立性 數(shù)據(jù)的結(jié)構(gòu)化:整體結(jié)構(gòu)化數(shù)據(jù)控制能力:由DBMS統(tǒng)一管理和控制第三十二頁(yè),共626頁(yè)。應(yīng)用程序與數(shù)據(jù)的對(duì)應(yīng)關(guān)系(數(shù)據(jù)庫(kù)系統(tǒng))DBMS應(yīng)用程序1應(yīng)用程序2數(shù)據(jù)庫(kù)…第三十三頁(yè),共626頁(yè)。數(shù)據(jù)的高共享性的好處降低數(shù)據(jù)的冗余度,節(jié)省存儲(chǔ)空間避免數(shù)據(jù)間的不一致性使系統(tǒng)易于擴(kuò)充第三十四頁(yè),共626頁(yè)。數(shù)據(jù)獨(dú)立性物理獨(dú)立性指用戶的應(yīng)用程序與存儲(chǔ)在磁盤(pán)上的數(shù)據(jù)庫(kù)中數(shù)據(jù)是相互獨(dú)立的。當(dāng)數(shù)據(jù)的物理存儲(chǔ)改變了,應(yīng)用程序不用改變。邏輯獨(dú)立性指用戶的應(yīng)用程序與數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)是相互獨(dú)立的。數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,用戶程序也可以不變。第三十五頁(yè),共626頁(yè)。數(shù)據(jù)結(jié)構(gòu)化整體數(shù)據(jù)的結(jié)構(gòu)化是數(shù)據(jù)庫(kù)的主要特征之一。數(shù)據(jù)庫(kù)中實(shí)現(xiàn)的是數(shù)據(jù)的真正結(jié)構(gòu)化數(shù)據(jù)的結(jié)構(gòu)用數(shù)據(jù)模型描述,無(wú)需程序定義和解釋。數(shù)據(jù)可以變長(zhǎng)。數(shù)據(jù)的最小存取單位是數(shù)據(jù)項(xiàng)。第三十六頁(yè),共626頁(yè)。DBMS對(duì)數(shù)據(jù)的控制功能數(shù)據(jù)的安全性(Security)保護(hù)使每個(gè)用戶只能按指定方式使用和處理指定數(shù)據(jù),保護(hù)數(shù)據(jù)以防止不合法的使用造成的數(shù)據(jù)的泄密和破壞。數(shù)據(jù)的完整性(Integrity)檢查將數(shù)據(jù)控制在有效的范圍內(nèi),或保證數(shù)據(jù)之間滿足一定的關(guān)系。第三十七頁(yè),共626頁(yè)。DBMS對(duì)數(shù)據(jù)的控制功能并發(fā)(Concurrency)控制對(duì)多用戶的并發(fā)操作加以控制和協(xié)調(diào),防止相互干擾而得到錯(cuò)誤的結(jié)果。數(shù)據(jù)庫(kù)恢復(fù)(Recovery)將數(shù)據(jù)庫(kù)從錯(cuò)誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)。第三十八頁(yè),共626頁(yè)。第一章緒論1.1數(shù)據(jù)庫(kù)系統(tǒng)概述1.2數(shù)據(jù)模型1.3數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)1.4數(shù)據(jù)庫(kù)系統(tǒng)的組成1.5數(shù)據(jù)庫(kù)技術(shù)的研究領(lǐng)域1.6小結(jié)第三十九頁(yè),共626頁(yè)。數(shù)據(jù)模型在數(shù)據(jù)庫(kù)中用數(shù)據(jù)模型這個(gè)工具來(lái)抽象、表示和處理現(xiàn)實(shí)世界中的數(shù)據(jù)和信息。通俗地講數(shù)據(jù)模型就是現(xiàn)實(shí)世界的模擬數(shù)據(jù)模型應(yīng)滿足三方面要求能比較真實(shí)地模擬現(xiàn)實(shí)世界容易為人所理解便于在計(jì)算機(jī)上實(shí)現(xiàn)第四十頁(yè),共626頁(yè)。數(shù)據(jù)模型(續(xù))數(shù)據(jù)模型分成兩個(gè)不同的層次(1)概念模型也稱信息模型,它是按用戶的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模。(2)數(shù)據(jù)模型主要包括網(wǎng)狀模型、層次模型、關(guān)系模型等,它是按計(jì)算機(jī)系統(tǒng)的觀點(diǎn)對(duì)數(shù)據(jù)建模。第四十一頁(yè),共626頁(yè)。數(shù)據(jù)模型(續(xù))客觀對(duì)象的抽象過(guò)程兩步抽象現(xiàn)實(shí)世界中的客觀對(duì)象抽象為概念模型;把概念模型轉(zhuǎn)換為某一DBMS支持的數(shù)據(jù)模型。

概念模型是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次。第四十二頁(yè),共626頁(yè)。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)系模型第四十三頁(yè),共626頁(yè)。1.2.1數(shù)據(jù)模型的組成要素?cái)?shù)據(jù)結(jié)構(gòu)數(shù)據(jù)操作數(shù)據(jù)的約束條件第四十四頁(yè),共626頁(yè)。1.數(shù)據(jù)結(jié)構(gòu)什么是數(shù)據(jù)結(jié)構(gòu)對(duì)象類型的集合兩類對(duì)象與數(shù)據(jù)類型、內(nèi)容、性質(zhì)有關(guān)的對(duì)象與數(shù)據(jù)之間聯(lián)系有關(guān)的對(duì)象數(shù)據(jù)結(jié)構(gòu)是對(duì)系統(tǒng)靜態(tài)特性的描述第四十五頁(yè),共626頁(yè)。2.數(shù)據(jù)操作數(shù)據(jù)操作對(duì)數(shù)據(jù)庫(kù)中各種對(duì)象(型)的實(shí)例(值)允許執(zhí)行的操作及有關(guān)的操作規(guī)則數(shù)據(jù)操作的類型檢索更新(包括插入、刪除、修改)第四十六頁(yè),共626頁(yè)。數(shù)據(jù)操作(續(xù))數(shù)據(jù)模型對(duì)操作的定義操作的確切含義操作符號(hào)操作規(guī)則(如優(yōu)先級(jí))實(shí)現(xiàn)操作的語(yǔ)言數(shù)據(jù)操作是對(duì)系統(tǒng)動(dòng)態(tài)特性的描述。第四十七頁(yè),共626頁(yè)。3.數(shù)據(jù)的約束條件數(shù)據(jù)的約束條件一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和儲(chǔ)存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫(kù)狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。第四十八頁(yè),共626頁(yè)。數(shù)據(jù)的約束條件(續(xù))數(shù)據(jù)模型對(duì)約束條件的定義反映和規(guī)定本數(shù)據(jù)模型必須遵守的基本的通用的完整性約束條件。例如在關(guān)系模型中,任何關(guān)系必須滿足實(shí)體完整性和參照完整性兩個(gè)條件。提供定義完整性約束條件的機(jī)制,以反映具體應(yīng)用所涉及的數(shù)據(jù)必須遵守的特定的語(yǔ)義約束條件。第四十九頁(yè),共626頁(yè)。1.2.2概念模型1.概念模型2.信息世界中的基本概念3.概念模型的表示方法第五十頁(yè),共626頁(yè)。1.概念模型概念模型的用途概念模型用于信息世界的建模是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次是數(shù)據(jù)庫(kù)設(shè)計(jì)的有力工具數(shù)據(jù)庫(kù)設(shè)計(jì)人員和用戶之間進(jìn)行交流的語(yǔ)言對(duì)概念模型的基本要求較強(qiáng)的語(yǔ)義表達(dá)能力,能夠方便、直接地表達(dá)應(yīng)用中的各種語(yǔ)義知識(shí)簡(jiǎn)單、清晰、易于用戶理解。第五十一頁(yè),共626頁(yè)。2.信息世界中的基本概念

(1)實(shí)體(Entity)客觀存在并可相互區(qū)別的事物稱為實(shí)體??梢允蔷唧w的人、事、物或抽象的概念。(2)屬性(Attribute)實(shí)體所具有的某一特性稱為屬性。一個(gè)實(shí)體可以由若干個(gè)屬性來(lái)刻畫(huà)。

(3)碼(Key)唯一標(biāo)識(shí)實(shí)體的屬性集稱為碼。

第五十二頁(yè),共626頁(yè)。信息世界中的基本概念(續(xù))(4)域(Domain)屬性的取值范圍稱為該屬性的域。(5)實(shí)體型(EntityType)用實(shí)體名及其屬性名集合來(lái)抽象和刻畫(huà)同類實(shí)體稱為實(shí)體型(6)實(shí)體集(EntitySet)同型實(shí)體的集合稱為實(shí)體集第五十三頁(yè),共626頁(yè)。信息世界中的基本概念(續(xù))(7)聯(lián)系(Relationship)現(xiàn)實(shí)世界中事物內(nèi)部以及事物之間的聯(lián)系在信息世界中反映為實(shí)體內(nèi)部的聯(lián)系和實(shí)體之間的聯(lián)系實(shí)體型間聯(lián)系兩個(gè)實(shí)體型一對(duì)一聯(lián)系(1:1)三個(gè)實(shí)體型一對(duì)多聯(lián)系(1:n)一個(gè)實(shí)體型多對(duì)多聯(lián)系(m:n)

第五十四頁(yè),共626頁(yè)。兩個(gè)實(shí)體型間的聯(lián)系實(shí)體型1聯(lián)系名實(shí)體型2111:1聯(lián)系實(shí)體型1聯(lián)系名實(shí)體型2mnm:n聯(lián)系實(shí)體型1聯(lián)系名實(shí)體型21n1:n聯(lián)系第五十五頁(yè),共626頁(yè)。兩個(gè)實(shí)體型間的聯(lián)系一對(duì)一聯(lián)系如果對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中至多有一個(gè)實(shí)體與之聯(lián)系,反之亦然,則稱實(shí)體集A與實(shí)體集B具有一對(duì)一聯(lián)系。記為1:1。

實(shí)例班級(jí)與班長(zhǎng)之間的聯(lián)系:一個(gè)班級(jí)只有一個(gè)正班長(zhǎng)一個(gè)班長(zhǎng)只在一個(gè)班中任職第五十六頁(yè),共626頁(yè)。兩個(gè)實(shí)體型間的聯(lián)系(續(xù))一對(duì)多聯(lián)系如果對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n個(gè)實(shí)體(n≥0)與之聯(lián)系,反之,對(duì)于實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A中至多只有一個(gè)實(shí)體與之聯(lián)系,則稱實(shí)體集A與實(shí)體集B有一對(duì)多聯(lián)系記為1:n實(shí)例班級(jí)與學(xué)生之間的聯(lián)系:一個(gè)班級(jí)中有若干名學(xué)生,每個(gè)學(xué)生只在一個(gè)班級(jí)中學(xué)習(xí)第五十七頁(yè),共626頁(yè)。兩個(gè)實(shí)體型間的聯(lián)系(續(xù))多對(duì)多聯(lián)系(m:n)如果對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n個(gè)實(shí)體(n≥0)與之聯(lián)系,反之,對(duì)于實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A中也有m個(gè)實(shí)體(m≥0)與之聯(lián)系,則稱實(shí)體集A與實(shí)體B具有多對(duì)多聯(lián)系。記為m:n實(shí)例課程與學(xué)生之間的聯(lián)系:一門(mén)課程同時(shí)有若干個(gè)學(xué)生選修一個(gè)學(xué)生可以同時(shí)選修多門(mén)課程第五十八頁(yè),共626頁(yè)。多個(gè)實(shí)體型間的聯(lián)系(續(xù))多個(gè)實(shí)體型間的一對(duì)多聯(lián)系若實(shí)體集E1,E2,...,En存在聯(lián)系,對(duì)于實(shí)體集Ej(j=1,2,...,i-1,i+1,...,n)中的給定實(shí)體,最多只和Ei中的一個(gè)實(shí)體相聯(lián)系,則我們說(shuō)Ei與E1,E2,...,Ei-1,Ei+1,...,En之間的聯(lián)系是一對(duì)多的。第五十九頁(yè),共626頁(yè)。多個(gè)實(shí)體型間的聯(lián)系(續(xù))實(shí)例

課程、教師與參考書(shū)三個(gè)實(shí)體型如果一門(mén)課程可以有若干個(gè)教師講授,使用若干本參考書(shū),每一個(gè)教師只講授一門(mén)課程,每一本參考書(shū)只供一門(mén)課程使用課程與教師、參考書(shū)之間的聯(lián)系是一對(duì)多的多個(gè)實(shí)體型間的一對(duì)一聯(lián)系多個(gè)實(shí)體型間的多對(duì)多聯(lián)系第六十頁(yè),共626頁(yè)。同一實(shí)體集內(nèi)各實(shí)體間的聯(lián)系一對(duì)多聯(lián)系實(shí)例

職工實(shí)體集內(nèi)部具有領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)的聯(lián)系某一職工(干部)“領(lǐng)導(dǎo)”若干名職工一個(gè)職工僅被另外一個(gè)職工直接領(lǐng)導(dǎo)這是一對(duì)多的聯(lián)系一對(duì)一聯(lián)系多對(duì)多聯(lián)系第六十一頁(yè),共626頁(yè)。3.概念模型的表示方法概念模型的表示方法很多實(shí)體-聯(lián)系方法(E-R方法)用E-R圖來(lái)描述現(xiàn)實(shí)世界的概念模型E-R方法也稱為E-R模型第六十二頁(yè),共626頁(yè)。E-R圖實(shí)體型用矩形表示,矩形框內(nèi)寫(xiě)明實(shí)體名。學(xué)生教師第六十三頁(yè),共626頁(yè)。E-R圖(續(xù))屬性用橢圓形表示,并用無(wú)向邊將其與相應(yīng)的實(shí)體連接起來(lái)學(xué)生學(xué)號(hào)年齡性別姓名第六十四頁(yè),共626頁(yè)。E-R圖(續(xù))聯(lián)系聯(lián)系本身:用菱形表示,菱形框內(nèi)寫(xiě)明聯(lián)系名,并用無(wú)向邊分別與有關(guān)實(shí)體連接起來(lái),同時(shí)在無(wú)向邊旁標(biāo)上聯(lián)系的類型(1:1、1:n或m:n)聯(lián)系的屬性:聯(lián)系本身也是一種實(shí)體型,也可以有屬性。如果一個(gè)聯(lián)系具有屬性,則這些屬性也要用無(wú)向邊與該聯(lián)系連接起來(lái)

第六十五頁(yè),共626頁(yè)。聯(lián)系的表示方法實(shí)體型1聯(lián)系名實(shí)體型2111:1聯(lián)系實(shí)體型1聯(lián)系名實(shí)體型2mnm:n聯(lián)系實(shí)體型1聯(lián)系名實(shí)體型21n1:n聯(lián)系第六十六頁(yè),共626頁(yè)。聯(lián)系的表示方法(續(xù))實(shí)體型1聯(lián)系名mn同一實(shí)體型內(nèi)部的m:n聯(lián)系實(shí)體型1聯(lián)系名實(shí)體型21m多個(gè)實(shí)體型間的1:n聯(lián)系實(shí)體型3n第六十七頁(yè),共626頁(yè)。聯(lián)系的表示方法示例班級(jí)班級(jí)-班長(zhǎng)班長(zhǎng)111:1聯(lián)系課程選修學(xué)生mnm:n聯(lián)系班級(jí)組成學(xué)生1n1:n聯(lián)系第六十八頁(yè),共626頁(yè)。聯(lián)系的表示方法示例(續(xù))職工領(lǐng)導(dǎo)1n同一實(shí)體型內(nèi)部的1:n聯(lián)系課程講授教師1m多個(gè)實(shí)體型間的1:n聯(lián)系參考書(shū)n第六十九頁(yè),共626頁(yè)。聯(lián)系屬性的表示方法課程選修學(xué)生mn成績(jī)第七十頁(yè),共626頁(yè)。E-R圖(續(xù))E-R圖實(shí)例:

P19-P20某工廠物資管理E-R圖第七十一頁(yè),共626頁(yè)。1.2.3常用數(shù)據(jù)模型非關(guān)系模型層次模型(HierarchicalModel)網(wǎng)狀模型(NetworkModel)數(shù)據(jù)結(jié)構(gòu):以基本層次聯(lián)系為基本單位

基本層次聯(lián)系:兩個(gè)記錄以及它們之間的一對(duì)多(包括一對(duì)一)的聯(lián)系第七十二頁(yè),共626頁(yè)。常用數(shù)據(jù)模型(續(xù))關(guān)系模型(RelationalModel)數(shù)據(jù)結(jié)構(gòu):表面向?qū)ο竽P?ObjectOrientedModel)數(shù)據(jù)結(jié)構(gòu):對(duì)象第七十三頁(yè),共626頁(yè)。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)系模型第七十四頁(yè),共626頁(yè)。1.2.4層次模型1.層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)2.層次數(shù)據(jù)模型的數(shù)據(jù)操縱3.層次數(shù)據(jù)模型的與完整性約束4.層次數(shù)據(jù)模型的存儲(chǔ)結(jié)構(gòu)5.層次數(shù)據(jù)模型的優(yōu)缺點(diǎn)

6.典型的層次數(shù)據(jù)庫(kù)系統(tǒng)第七十五頁(yè),共626頁(yè)。1.層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)層次模型

滿足下面兩個(gè)條件的基本層次聯(lián)系的集合為層次模型。1.有且只有一個(gè)結(jié)點(diǎn)沒(méi)有雙親結(jié)點(diǎn),這個(gè)結(jié)點(diǎn)稱為根結(jié)點(diǎn)2.根以外的其它結(jié)點(diǎn)有且只有一個(gè)雙親結(jié)點(diǎn)層次模型中的幾個(gè)術(shù)語(yǔ)根結(jié)點(diǎn),雙親結(jié)點(diǎn),兄弟結(jié)點(diǎn),葉結(jié)點(diǎn)第七十六頁(yè),共626頁(yè)。層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))

R1

根結(jié)點(diǎn)

R2

兄弟結(jié)點(diǎn)

R3

葉結(jié)點(diǎn)

R4

兄弟結(jié)點(diǎn)

R5

葉結(jié)點(diǎn)

葉結(jié)點(diǎn)第七十七頁(yè),共626頁(yè)。層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))表示方法實(shí)體型:用記錄類型描述。每個(gè)結(jié)點(diǎn)表示一個(gè)記錄類型。屬性:用字段描述。每個(gè)記錄類型可包含若干個(gè)字段。聯(lián)系:用結(jié)點(diǎn)之間的連線表示記錄(類)型之間的

一對(duì)多的聯(lián)系實(shí)例:教員-學(xué)生數(shù)據(jù)模型(P23)第七十八頁(yè),共626頁(yè)。層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))特點(diǎn)結(jié)點(diǎn)的雙親是唯一的只能直接處理一對(duì)多的實(shí)體聯(lián)系每個(gè)記錄類型定義一個(gè)排序字段,也稱為碼字段任何記錄值只有按其路徑查看時(shí),才能顯出它的全部意義沒(méi)有一個(gè)子女記錄值能夠脫離雙親記錄值而獨(dú)立存在第七十九頁(yè),共626頁(yè)。層次數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)(續(xù))多對(duì)多聯(lián)系在層次模型中的表示用層次模型間接表示多對(duì)多聯(lián)系方法將多對(duì)多聯(lián)系分解成一對(duì)多聯(lián)系分解方法冗余結(jié)點(diǎn)法虛擬結(jié)點(diǎn)法第八十頁(yè),共626頁(yè)。2.層次模型的數(shù)據(jù)操縱查詢插入刪除更新第八十一頁(yè),共626頁(yè)。3.層次模型的完整性約束無(wú)相應(yīng)的雙親結(jié)點(diǎn)值就不能插入子女結(jié)點(diǎn)值如果刪除雙親結(jié)點(diǎn)值,則相應(yīng)的子女結(jié)點(diǎn)值也被同時(shí)刪除更新操作時(shí),應(yīng)更新所有相應(yīng)記錄,以保證數(shù)據(jù)的一致性第八十二頁(yè),共626頁(yè)。4.層次數(shù)據(jù)模型的存儲(chǔ)結(jié)構(gòu)鄰接法按照層次樹(shù)前序遍歷的順序把所有記錄值依次鄰接存放,即通過(guò)物理空間的位置相鄰來(lái)實(shí)現(xiàn)層次順序鏈接法用指引元來(lái)反映數(shù)據(jù)之間的層次聯(lián)系子女-兄弟鏈接法P26層次序列鏈接法P26第八十三頁(yè),共626頁(yè)。5.層次模型的優(yōu)缺點(diǎn)優(yōu)點(diǎn)層次數(shù)據(jù)模型簡(jiǎn)單,對(duì)具有一對(duì)多的層次關(guān)系的部門(mén)描述自然、直觀,容易理解性能優(yōu)于關(guān)系模型,不低于網(wǎng)狀模型層次數(shù)據(jù)模型提供了良好的完整性支持缺點(diǎn)多對(duì)多聯(lián)系表示不自然對(duì)插入和刪除操作的限制多查詢子女結(jié)點(diǎn)必須通過(guò)雙親結(jié)點(diǎn)層次命令趨于程序化第八十四頁(yè),共626頁(yè)。6.典型的層次數(shù)據(jù)庫(kù)系統(tǒng)IMS數(shù)據(jù)庫(kù)管理系統(tǒng)第一個(gè)大型商用DBMS1968年推出IBM公司研制第八十五頁(yè),共626頁(yè)。第二章關(guān)系數(shù)據(jù)庫(kù)第八十六頁(yè),共626頁(yè)。第二章關(guān)系數(shù)據(jù)庫(kù)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é)第八十七頁(yè),共626頁(yè)。關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)概述關(guān)系數(shù)據(jù)庫(kù)的發(fā)展CODASYL于1962年發(fā)表的“信息代數(shù)”一文

從1970年起發(fā)表了一系列的論文20世紀(jì)70年代末的實(shí)驗(yàn)系統(tǒng)SystemR和Ingres從20世紀(jì)80年代逐步走向成熟第八十八頁(yè),共626頁(yè)。關(guān)系數(shù)據(jù)庫(kù)簡(jiǎn)介關(guān)系數(shù)據(jù)庫(kù)應(yīng)用數(shù)學(xué)方法來(lái)處理數(shù)據(jù)庫(kù)中的數(shù)據(jù)80年代后,關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)成為最重要、最流行的數(shù)據(jù)庫(kù)系統(tǒng)第八十九頁(yè),共626頁(yè)。關(guān)系數(shù)據(jù)庫(kù)簡(jiǎn)介典型實(shí)驗(yàn)系統(tǒng)SystemRUniversityINGRES典型商用系統(tǒng)ORACLESYBASEINFORMIXDB2INGRES第九十頁(yè),共626頁(yè)。第二章關(guān)系數(shù)據(jù)庫(kù)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é)第九十一頁(yè),共626頁(yè)。2.1關(guān)系模型概述關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)是支持關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng)關(guān)系模型的組成關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系操作集合關(guān)系完整性約束第九十二頁(yè),共626頁(yè)。1.關(guān)系數(shù)據(jù)結(jié)構(gòu)單一的數(shù)據(jù)結(jié)構(gòu)關(guān)系現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系均用關(guān)系來(lái)表示數(shù)據(jù)的邏輯結(jié)構(gòu)二維表從用戶角度,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表。第九十三頁(yè),共626頁(yè)。2.關(guān)系操作集合1)常用的關(guān)系操作2)關(guān)系操作的特點(diǎn)3)關(guān)系數(shù)據(jù)語(yǔ)言的種類4)關(guān)系數(shù)據(jù)語(yǔ)言的特點(diǎn)第九十四頁(yè),共626頁(yè)。關(guān)系操作集合(續(xù))1)常用的關(guān)系操作查詢選擇、投影、連接、除、并、交、差數(shù)據(jù)更新插入、刪除、修改查詢的表達(dá)能力是其中最主要的部分第九十五頁(yè),共626頁(yè)。關(guān)系操作集合(續(xù))2)關(guān)系操作的特點(diǎn)集合操作方式,即操作的對(duì)象和結(jié)果都是集合。非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作方式:一次一記錄文件系統(tǒng)的數(shù)據(jù)操作方式第九十六頁(yè),共626頁(yè)。關(guān)系操作集合(續(xù))3)關(guān)系數(shù)據(jù)語(yǔ)言的種類關(guān)系代數(shù)語(yǔ)言用對(duì)關(guān)系的運(yùn)算來(lái)表達(dá)查詢要求典型代表:ISBL第九十七頁(yè),共626頁(yè)。關(guān)系操作集合(續(xù))關(guān)系數(shù)據(jù)語(yǔ)言的種類(續(xù))關(guān)系演算語(yǔ)言:用謂詞來(lái)表達(dá)查詢要求元組關(guān)系演算語(yǔ)言謂詞變?cè)幕緦?duì)象是元組變量典型代表:APLHA,QUEL域關(guān)系演算語(yǔ)言謂詞變?cè)幕緦?duì)象是域變量典型代表:QBE具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語(yǔ)言典型代表:SQL第九十八頁(yè),共626頁(yè)。關(guān)系操作集合(續(xù))4)關(guān)系數(shù)據(jù)語(yǔ)言的特點(diǎn)關(guān)系語(yǔ)言是一種高度非過(guò)程化的語(yǔ)言存取路徑的選擇由DBMS的優(yōu)化機(jī)制來(lái)完成用戶不必用循環(huán)結(jié)構(gòu)就可以完成數(shù)據(jù)操作能夠嵌入高級(jí)語(yǔ)言中使用關(guān)系代數(shù)、元組關(guān)系演算和域關(guān)系演算三種語(yǔ)言在表達(dá)能力上完全等價(jià)第九十九頁(yè),共626頁(yè)。3.關(guān)系完整性約束在數(shù)據(jù)庫(kù)中數(shù)據(jù)完整性是指保證數(shù)據(jù)正確的特性。它包括兩方面的內(nèi)容:

與現(xiàn)實(shí)世界中應(yīng)用需求的數(shù)據(jù)的相容性和正確性;數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)之間的相容性和正確性。

在關(guān)系數(shù)據(jù)模型中一般將數(shù)據(jù)完整性分為三類

實(shí)體完整性參照完整性用戶定義完整性

第一百頁(yè),共626頁(yè)。第二章關(guān)系數(shù)據(jù)庫(kù)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é)第一百零一頁(yè),共626頁(yè)。2.2關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系數(shù)據(jù)結(jié)構(gòu)非常簡(jiǎn)單,在關(guān)系數(shù)據(jù)模型中,現(xiàn)實(shí)世界中的實(shí)體及實(shí)體與實(shí)體之間的聯(lián)系均用關(guān)系來(lái)表示。從邏輯或用戶的觀點(diǎn)來(lái)看,關(guān)系就是二維表。

第一百零二頁(yè),共626頁(yè)。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è),共626頁(yè)。2.2.1關(guān)系⒈域(Domain)2.笛卡爾積(CartesianProduct)3.關(guān)系(Relation)第一百零四頁(yè),共626頁(yè)。⒈域(Domain)域是一組具有相同數(shù)據(jù)類型的值的集合。例:整數(shù)實(shí)數(shù)介于某個(gè)取值范圍的整數(shù)長(zhǎng)度指定長(zhǎng)度的字符串集合{‘男’,‘女’}介于某個(gè)取值范圍的日期第一百零五頁(yè),共626頁(yè)。2.笛卡爾積(CartesianProduct)1)笛卡爾積給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}所有域的所有取值的一個(gè)組合不能重復(fù)第一百零六頁(yè),共626頁(yè)。笛卡爾積(續(xù))例給出三個(gè)域:

D1=SUPERVISOR={張清玫,劉逸}

D2=SPECIALITY={計(jì)算機(jī)專業(yè),信息專業(yè)}D3=POSTGRADUATE={李勇,劉晨,王敏}則D1,D2,D3的笛卡爾積為:D1×D2×D3={(張清玫,計(jì)算機(jī)專業(yè),李勇),(張清玫,計(jì)算機(jī)專業(yè),劉晨),(張清玫,計(jì)算機(jī)專業(yè),王敏),(張清玫,信息專業(yè),李勇),(張清玫,信息專業(yè),劉晨),(張清玫,信息專業(yè),王敏),(劉逸,計(jì)算機(jī)專業(yè),李勇),(劉逸,計(jì)算機(jī)專業(yè),劉晨),(劉逸,計(jì)算機(jī)專業(yè),王敏),(劉逸,信息專業(yè),李勇),(劉逸,信息專業(yè),劉晨),(劉逸,信息專業(yè),王敏)}第一百零七頁(yè),共626頁(yè)。笛卡爾積(續(xù))2)元組(Tuple)笛卡爾積中每一個(gè)元素(d1,d2,…,dn)叫作一個(gè)n元組(n-tuple)或簡(jiǎn)稱元組。

3)分量(Component)笛卡爾積元素(d1,d2,…,dn)中的每一個(gè)值di叫作一個(gè)分量。

第一百零八頁(yè),共626頁(yè)。笛卡爾積(續(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個(gè)元組第一百零九頁(yè),共626頁(yè)。笛卡爾積(續(xù))5)笛卡爾積的表示方法笛卡爾積可表示為一個(gè)二維表。表中的每行對(duì)應(yīng)一個(gè)元組,表中的每列對(duì)應(yīng)一個(gè)域。在上例中,12個(gè)元組可列成一張二維表第一百一十頁(yè),共626頁(yè)。

第一百一十一頁(yè),共626頁(yè)。笛卡爾積(續(xù))第一百一十二頁(yè),共626頁(yè)。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)第一百一十三頁(yè),共626頁(yè)。關(guān)系(續(xù))注意:關(guān)系是笛卡爾積的有限子集。無(wú)限關(guān)系在數(shù)據(jù)庫(kù)系統(tǒng)中是無(wú)意義的。由于笛卡爾積不滿足交換律,即(d1,d2,…,dn)≠(d2,d1,…,dn)

但關(guān)系滿足交換律,即(d1,d2,…,di,dj,…,dn)=(d1,d2,…,dj,di

,…,dn)(i,j=1,2,…,n)解決方法:為關(guān)系的每個(gè)列附加一個(gè)屬性名以取消關(guān)系元組的有序性第一百一十四頁(yè),共626頁(yè)。關(guān)系(續(xù))例在表2.1的笛卡爾積中取出有實(shí)際意義的元組來(lái)構(gòu)造關(guān)系關(guān)系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)關(guān)系名,屬性名假設(shè):導(dǎo)師與專業(yè):1:1,導(dǎo)師與研究生:1:n于是:SAP關(guān)系可以包含三個(gè)元組{(張清玫,信息專業(yè),李勇),

(張清玫,信息專業(yè),劉晨),(劉逸,信息專業(yè),王敏)}

第一百一十五頁(yè),共626頁(yè)。關(guān)系(續(xù))2)元組關(guān)系中的每個(gè)元素是關(guān)系中的元組,通常用t表示。3)單元關(guān)系與二元關(guān)系當(dāng)n=1時(shí),稱該關(guān)系為單元關(guān)系(Unaryrelation)。當(dāng)n=2時(shí),稱該關(guān)系為二元關(guān)系(Binaryrelation)。第一百一十六頁(yè),共626頁(yè)。關(guān)系(續(xù))4)關(guān)系的表示關(guān)系也是一個(gè)二維表,表的每行對(duì)應(yīng)一個(gè)元組,表的每列對(duì)應(yīng)一個(gè)域。第一百一十七頁(yè),共626頁(yè)。關(guān)系(續(xù))5)屬性關(guān)系中不同列可以對(duì)應(yīng)相同的域,為了加以區(qū)分,必須對(duì)每列起一個(gè)名字,稱為屬性(Attribute)。n目關(guān)系必有n個(gè)屬性。第一百一十八頁(yè),共626頁(yè)。關(guān)系(續(xù))6)碼候選碼(Candidatekey)若關(guān)系中的某一屬性組的值能唯一地標(biāo)識(shí)一個(gè)元組,則稱該屬性組為候選碼在最簡(jiǎn)單的情況下,候選碼只包含一個(gè)屬性。稱為全碼(All-key)在最極端的情況下,關(guān)系模式的所有屬性組是這個(gè)關(guān)系模式的候選碼,稱為全碼(All-key)第一百一十九頁(yè),共626頁(yè)。關(guān)系(續(xù))碼(續(xù))主碼若一個(gè)關(guān)系有多個(gè)候選碼,則選定其中一個(gè)為主碼(Primarykey)主碼的諸屬性稱為主屬性(Primeattribute)。不包含在任何侯選碼中的屬性稱為非碼屬性(Non-keyattribute)第一百二十頁(yè),共626頁(yè)。關(guān)系(續(xù))7)三類關(guān)系基本關(guān)系(基本表或基表)實(shí)際存在的表,是實(shí)際存儲(chǔ)數(shù)據(jù)的邏輯表示查詢表查詢結(jié)果對(duì)應(yīng)的表視圖表由基本表或其他視圖表導(dǎo)出的表,是虛表,不對(duì)應(yīng)實(shí)際存儲(chǔ)的數(shù)據(jù)第一百二十一頁(yè),共626頁(yè)。8)基本關(guān)系的性質(zhì)①列是同質(zhì)的(Homogeneous)每一列中的分量是同一類型的數(shù)據(jù),來(lái)自同一個(gè)域②不同的列可出自同一個(gè)域其中的每一列稱為一個(gè)屬性不同的屬性要給予不同的屬性名第一百二十二頁(yè),共626頁(yè)。基本關(guān)系的性質(zhì)(續(xù))上例中也可以只給出兩個(gè)域:人(PERSON)=張清玫,劉逸,李勇,劉晨,王敏專業(yè)(SPECIALITY)=計(jì)算機(jī)專業(yè),信息專業(yè)SAP關(guān)系的導(dǎo)師屬性和研究生屬性都從PERSON域中取值為了避免混淆,必須給這兩個(gè)屬性取不同的屬性名,而不能直接使用域名。例如定義:導(dǎo)師屬性名為SUPERVISOR-PERSON(或SUPERVISOR)研究生屬性名為POSTGRADUATE-PERSON(或POSTGRADUATE)第一百二十三頁(yè),共626頁(yè)。基本關(guān)系的性質(zhì)(續(xù))③列的順序無(wú)所謂列的次序可以任意交換遵循這一性質(zhì)的數(shù)據(jù)庫(kù)產(chǎn)品(如ORACLE),增加新屬性時(shí),永遠(yuǎn)是插至最后一列但也有許多關(guān)系數(shù)據(jù)庫(kù)產(chǎn)品沒(méi)有遵循這一性質(zhì),例如FoxPro仍然區(qū)分了屬性順序第一百二十四頁(yè),共626頁(yè)。基本關(guān)系的性質(zhì)(續(xù))④任意兩個(gè)元組不能完全相同由笛卡爾積的性質(zhì)決定但許多關(guān)系數(shù)據(jù)庫(kù)產(chǎn)品沒(méi)有遵循這一性質(zhì)。例如:Oracle,F(xiàn)oxPro等都允許關(guān)系表中存在兩個(gè)完全相同的元組,除非用戶特別定義了相應(yīng)的約束條件。第一百二十五頁(yè),共626頁(yè)。基本關(guān)系的性質(zhì)(續(xù))⑤行的順序無(wú)所謂行的次序可以任意交換遵循這一性質(zhì)的數(shù)據(jù)庫(kù)產(chǎn)品(如ORACLE),插入一個(gè)元組時(shí)永遠(yuǎn)插至最后一行但也有許多關(guān)系數(shù)據(jù)庫(kù)產(chǎn)品沒(méi)有遵循這一性質(zhì),例如FoxPro仍然區(qū)分了元組的順序第一百二十六頁(yè),共626頁(yè)。基本關(guān)系的性質(zhì)(續(xù))⑥分量必須取原子值每一個(gè)分量都必須是不可分的數(shù)據(jù)項(xiàng)。這是規(guī)范條件中最基本的一條第一百二十七頁(yè),共626頁(yè)。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è),共626頁(yè)。2.2.2關(guān)系模式1.什么是關(guān)系模式2.定義關(guān)系模式3.關(guān)系模式與關(guān)系第一百二十九頁(yè),共626頁(yè)。1.什么是關(guān)系模式關(guān)系模式(RelationSchema)是型-靜態(tài)穩(wěn)定關(guān)系是值-動(dòng)態(tài)變化,因?yàn)椴僮鞲聰?shù)據(jù)庫(kù)中數(shù)據(jù)關(guān)系模式需要描述:域:元組語(yǔ)義以及完整性約束條件元組:該關(guān)系所涉及的屬性集的笛卡爾積的一個(gè)元素關(guān)系是元組的集合,笛卡爾積的子集。關(guān)系模式必須指出這個(gè)元組集合的結(jié)構(gòu),由哪些屬性構(gòu)成,這些屬性來(lái)自哪些域,屬性與域之間的映像關(guān)系。關(guān)系由元組語(yǔ)義-n目謂詞確定,n目謂詞為真的笛卡爾積中的元素的全體就構(gòu)成了該關(guān)系模式的關(guān)系。第一百三十頁(yè),共626頁(yè)。2.定義關(guān)系模式定義:關(guān)系的描述稱為關(guān)系模式,可以形式化地表示為:

R(U,D,dom,F(xiàn)) R關(guān)系名 U組成該關(guān)系的屬性名集合 D屬性組U中屬性所來(lái)自的域 dom屬性向域的映象集合 F屬性間的數(shù)據(jù)依賴關(guān)系集合第一百三十一頁(yè),共626頁(yè)。定義關(guān)系模式(續(xù))例:導(dǎo)師和研究生出自同一個(gè)域——人,必須取不同的屬性名,并在模式中定義屬性向域的映象,即說(shuō)明它們分別出自哪個(gè)域:dom(SUPERVISOR-PERSON)=dom(POSTGRADUATE-PERSON)=PERSON第一百三十二頁(yè),共626頁(yè)。定義關(guān)系模式(續(xù))關(guān)系模式通??梢院?jiǎn)記為

R(U)或

R(A1,A2,…,An)

R關(guān)系名A1,A2,…,An屬性名注:域名及屬性向域的映象常常直接說(shuō)明為屬性的類型、長(zhǎng)度第一百三十三頁(yè),共626頁(yè)。3.關(guān)系模式與關(guān)系關(guān)系模式對(duì)關(guān)系的描述靜態(tài)的、穩(wěn)定的關(guān)系關(guān)系模式在某一時(shí)刻的狀態(tài)或內(nèi)容動(dòng)態(tài)的、隨時(shí)間不斷變化的關(guān)系模式和關(guān)系往往統(tǒng)稱為關(guān)系通過(guò)上下文加以區(qū)別第一百三十四頁(yè),共626頁(yè)。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è),共626頁(yè)。2.2.3關(guān)系數(shù)據(jù)庫(kù)1.關(guān)系數(shù)據(jù)庫(kù)2.關(guān)系數(shù)據(jù)庫(kù)的型與值第一百三十六頁(yè),共626頁(yè)。1.關(guān)系數(shù)據(jù)庫(kù)在一個(gè)給定的應(yīng)用領(lǐng)域中,所有實(shí)體及實(shí)體之間聯(lián)系的關(guān)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫(kù)。第一百三十七頁(yè),共626頁(yè)。2.關(guān)系數(shù)據(jù)庫(kù)的型與值關(guān)系數(shù)據(jù)庫(kù)也有型和值之分關(guān)系數(shù)據(jù)庫(kù)的型稱為關(guān)系數(shù)據(jù)庫(kù)模式,是對(duì)關(guān)系數(shù)據(jù)庫(kù)的描述若干域的定義在這些域上定義的若干關(guān)系模式關(guān)系數(shù)據(jù)庫(kù)的值是這些關(guān)系模式在某一時(shí)刻對(duì)應(yīng)的關(guān)系的集合,通常簡(jiǎn)稱為關(guān)系數(shù)據(jù)庫(kù)第一百三十八頁(yè),共626頁(yè)。第二章關(guān)系數(shù)據(jù)庫(kù)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é)第一百三十九頁(yè),共626頁(yè)。2.3關(guān)系的完整性關(guān)系模型的完整性規(guī)則是對(duì)關(guān)系的某種約束條件。關(guān)系模型中三類完整性約束:實(shí)體完整性參照完整性用戶定義的完整性實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,被稱作是關(guān)系的兩個(gè)不變性,應(yīng)該由關(guān)系系統(tǒng)自動(dòng)支持。第一百四十頁(yè),共626頁(yè)。關(guān)系的完整性(續(xù))2.3.1實(shí)體完整性2.3.2.參照完整性2.3.3.用戶定義的完整性第一百四十一頁(yè),共626頁(yè)。2.3.1實(shí)體完整性實(shí)體完整性規(guī)則(EntityIntegrity)若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值例SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)如果POSTGRADUATE屬性為主碼,因?yàn)榍皟蓚€(gè)屬性一定會(huì)重,(假設(shè)研究生不會(huì)重名),則其不能取空值第一百四十二頁(yè),共626頁(yè)。實(shí)體完整性規(guī)則實(shí)體完整性是要保證關(guān)系中的每個(gè)元組都是可識(shí)別和唯一的。實(shí)體完整性規(guī)則的具體內(nèi)容是:若屬性A是關(guān)系R的主屬性,則屬性A不可以為空值。實(shí)體完整性是關(guān)系模型必須滿足的完整性約束條件,也稱作是關(guān)系的不變性。關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)可以用主關(guān)鍵字實(shí)現(xiàn)實(shí)體完整性,這是由關(guān)系系統(tǒng)自動(dòng)支持的。第一百四十三頁(yè),共626頁(yè)。對(duì)實(shí)體完整性規(guī)則的幾點(diǎn)說(shuō)明實(shí)體完整性規(guī)則是針對(duì)關(guān)系而言的,而關(guān)系則對(duì)應(yīng)一個(gè)現(xiàn)實(shí)世界中的實(shí)體集。例如,倉(cāng)庫(kù)關(guān)系對(duì)應(yīng)現(xiàn)實(shí)世界中的倉(cāng)庫(kù)實(shí)體集?,F(xiàn)實(shí)世界中的實(shí)體是可區(qū)分的,它們具有某種標(biāo)識(shí)特征;相應(yīng)地,關(guān)系中的元組也是可區(qū)分的,在關(guān)系中用主關(guān)鍵字做唯一性標(biāo)識(shí)。主關(guān)鍵字中的屬性、即主屬性不能取空值。如果主屬性取空值,則意味著關(guān)系中的某個(gè)元組是不可標(biāo)識(shí)的,即存在不可區(qū)分的實(shí)體,這與實(shí)體的定義也是矛盾的。第一百四十四頁(yè),共626頁(yè)。關(guān)系的完整性2.3.1實(shí)體完整性2.3.2.參照完整性2.3.3.用戶定義的完整性第一百四十五頁(yè),共626頁(yè)。2.3.2參照完整性1.關(guān)系間的引用2.外碼3.參照完整性規(guī)則第一百四十六頁(yè),共626頁(yè)。1.關(guān)系間的引用在關(guān)系模型中實(shí)體及實(shí)體間的聯(lián)系都是用關(guān)系來(lái)描述的,因此可能存在著關(guān)系與關(guān)系間的引用。例1學(xué)生實(shí)體、專業(yè)實(shí)體以及專業(yè)與學(xué)生間的一對(duì)多聯(lián)系學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡)專業(yè)(專業(yè)號(hào),專業(yè)名)第一百四十七頁(yè),共626頁(yè)。兩個(gè)關(guān)系間存在屬性的引用,即學(xué)生關(guān)系引用了專業(yè)關(guān)系的主碼“專業(yè)號(hào)”。學(xué)生關(guān)系中的專業(yè)號(hào)值必須是確實(shí)存在的專業(yè),即,學(xué)生關(guān)系中的某個(gè)屬性的取值需要參照專業(yè)關(guān)系的屬性取值。第一百四十八頁(yè),共626頁(yè)。

學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡)

專業(yè)(專業(yè)號(hào),專業(yè)名)

第一百四十九頁(yè),共626頁(yè)。關(guān)系間的引用(續(xù))例2學(xué)生、課程、學(xué)生與課程之間的多對(duì)多聯(lián)系學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡)課程(課程號(hào),課程名,學(xué)分)選修(學(xué)號(hào),課程號(hào),成績(jī))第一百五十頁(yè),共626頁(yè)。例2要說(shuō)明的也是屬性間存在引用。同樣,選修關(guān)系中的學(xué)號(hào)必須是學(xué)生關(guān)系中有記錄的學(xué)生,選修關(guān)系中的課程號(hào)值必須是課程關(guān)系中確實(shí)存在的。選修關(guān)系中某些屬性的取值需要參照其他關(guān)系中屬性的取值。第一百五十一頁(yè),共626頁(yè)。

學(xué)生學(xué)生選課課程第一百五十二頁(yè),共626頁(yè)。關(guān)系間的引用(續(xù))例3學(xué)生實(shí)體及其內(nèi)部的領(lǐng)導(dǎo)聯(lián)系(一對(duì)多)

學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡,班長(zhǎng))班長(zhǎng)引用了本關(guān)系中“學(xué)號(hào)”屬性,即必須是確實(shí)存在的學(xué)生的學(xué)號(hào)第一百五十三頁(yè),共626頁(yè)。2.外碼(ForeignKey)設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系R的碼。如果F與基本關(guān)系S的主碼Ks相對(duì)應(yīng),則稱F是基本關(guān)系R的外碼基本關(guān)系R稱為參照關(guān)系(ReferencingRelation)基本關(guān)系S稱為被參照關(guān)系(ReferencedRelation)或目標(biāo)關(guān)系(TargetRelation)。第一百五十四頁(yè),共626頁(yè)。外碼(續(xù))說(shuō)明關(guān)系R和S不一定是不同的關(guān)系目標(biāo)關(guān)系S的主碼Ks和參照關(guān)系的外碼F必須定義在同一個(gè)(或一組)域上外碼并不一定要與相應(yīng)的主碼同名當(dāng)外碼與相應(yīng)的主碼屬于不同關(guān)系時(shí),往往取相同的名字,以便于識(shí)別第一百五十五頁(yè),共626頁(yè)。3.參照完整性規(guī)則若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼它與基本關(guān)系S的主碼Ks相對(duì)應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對(duì)于R中每個(gè)元組在F上的值必須為:或者取空值(F的每個(gè)屬性值均為空值)或者等于S中某個(gè)元組的主碼值。第一百五十六頁(yè),共626頁(yè)。參照完整性規(guī)則(續(xù))學(xué)生關(guān)系中每個(gè)元組的“專業(yè)號(hào)”屬性只取下面兩類值:(1)空值,表示尚未給該學(xué)生分配專業(yè)(2)非空值,這時(shí)該值必須是專業(yè)關(guān)系中某個(gè)元組的“專業(yè)號(hào)”值,表示該學(xué)生不可能分配到一個(gè)不存在的專業(yè)中第一百五十七頁(yè),共626頁(yè)。例1中“專業(yè)號(hào)”為學(xué)生關(guān)系的外碼,專業(yè)關(guān)系為被參照關(guān)系專業(yè)號(hào)學(xué)生關(guān)系

專業(yè)關(guān)系例2中(略)

學(xué)號(hào)課程號(hào)學(xué)生關(guān)系選修關(guān)系課程關(guān)系

第一百五十八頁(yè),共626頁(yè)。參照完整性規(guī)則(續(xù))選修(學(xué)號(hào),課程號(hào),成績(jī))“學(xué)號(hào)”和“課程號(hào)”是選修關(guān)系中的主屬性按照實(shí)體完整性和參照完整性規(guī)則,它們只能取相應(yīng)被參照關(guān)系中已經(jīng)存在的主碼值第一百五十九頁(yè),共626頁(yè)。參照完整性規(guī)則(續(xù))學(xué)生(學(xué)號(hào),姓名,性別,專業(yè)號(hào),年齡,班長(zhǎng))“班長(zhǎng)”屬性值可以取兩類值:(1)空值,表示該學(xué)生所在班級(jí)尚未選出班長(zhǎng),或該學(xué)生本人即是班長(zhǎng);(2)非空值,這時(shí)該值必須是本關(guān)系中某個(gè)元組的學(xué)號(hào)值第一百六十頁(yè),共626頁(yè)。關(guān)系的完整性(續(xù))2.3.1實(shí)體完整性2.3.2.參照完整性2.3.3.用戶定義的完整性第一百六十一頁(yè),共626頁(yè)。2.3.3用戶定義的完整性一種與應(yīng)用密切相關(guān)的數(shù)據(jù)完整性約束,如某個(gè)屬性的值必須唯一某個(gè)非主屬性不能取空值某個(gè)屬性的取值必須在某個(gè)范圍內(nèi)某些屬性值之間應(yīng)該滿足一定的函數(shù)關(guān)系等類似以上的約束不是關(guān)系數(shù)據(jù)模型本身所要求的,而是為了滿足具體應(yīng)用必須的語(yǔ)義要求在用戶定義完整性中最常見(jiàn)的是限定屬性的取值范圍,即對(duì)值域的約束,所以在用戶定義完整性中最常見(jiàn)的是域完整性約束。第一百六十二頁(yè),共626頁(yè)。用戶定義完整性約束的作用執(zhí)行插入操作時(shí)檢查完整性執(zhí)行插入操作時(shí)需要分別檢查實(shí)體完整性規(guī)則、參照完整性規(guī)則和用戶定義完整性規(guī)則。執(zhí)行刪除操作時(shí)檢查完整性執(zhí)行刪除操作時(shí)一般只需要檢查參照完整性規(guī)則。執(zhí)行更新操作時(shí)檢查完整性執(zhí)行更新操作可以看作是先刪除舊的元組,然后再插入新的元組。所以執(zhí)行更新操作時(shí)的完整性檢查綜合了上述兩種情況。第一百六十三頁(yè),共626頁(yè)。用戶定義的完整性(續(xù))例: 課程(課程號(hào),課程名,學(xué)分)“課程名”屬性必須取唯一值非主屬性“課程名”也不能取空值“學(xué)分”屬性只能取值{1,2,3,4}第一百六十四頁(yè),共626頁(yè)。2.4關(guān)系代數(shù)是一種抽象的查詢語(yǔ)言,是關(guān)系數(shù)據(jù)操縱語(yǔ)言的一種傳統(tǒng)表達(dá)方式,是用對(duì)關(guān)系的運(yùn)算表達(dá)查詢的。三大要素:運(yùn)算對(duì)象、運(yùn)算符、運(yùn)算結(jié)果運(yùn)算符:集合運(yùn)算符∪,-,∩,×專門(mén)的關(guān)系運(yùn)算符∏÷……算術(shù)比較符≥≠……邏輯運(yùn)算符∨∧……第一百六十五頁(yè),共626頁(yè)。引入記號(hào)關(guān)系模式R(A1,A2,…,An),t∈R表示R的一個(gè)元組t。t[Ai]表示屬性元組t中相應(yīng)于屬性Ai的分量若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An的一部分A稱作屬性列或域列。元組的連接給定關(guān)系R(X,Z),定義當(dāng)t[X]=x時(shí),x在R中的象集為表示R中屬性組X上值為x的諸元組在Z上分量的集合。第一百六十六頁(yè),共626頁(yè)。2.4關(guān)系代數(shù)關(guān)系的數(shù)據(jù)操作集合查詢選擇、投影、連接、除、并、交、差數(shù)據(jù)更新插入、刪除、修改第一百六十七頁(yè),共626頁(yè)。關(guān)系的完整性約束實(shí)體完整性參照完整性外碼用戶定義的完整性第一百六十八頁(yè),共626頁(yè)。第三章關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言 SQL第一百六十九頁(yè),共626頁(yè)。3.1SQL概述SQL的特點(diǎn)1.綜合統(tǒng)一2.高度非過(guò)程化3.面向集合的操作方式4.以同一種語(yǔ)法結(jié)構(gòu)提供兩種使用方法5.語(yǔ)言簡(jiǎn)潔,易學(xué)易用第一百七十頁(yè),共626頁(yè)。5.語(yǔ)言簡(jiǎn)捷,易學(xué)易用第一百七十一頁(yè),共626頁(yè)。3.2數(shù)據(jù)定義第一百七十二頁(yè),共626頁(yè)。3.2.1定義語(yǔ)句格式CREATETABLE<表名>(<列名><數(shù)據(jù)類型>[<列級(jí)完整性約束>],<列名><數(shù)據(jù)類型>[<列級(jí)完整性約束>],……,[<表級(jí)完整性約束>])[<其它參數(shù)>]?

<表名>給出要?jiǎng)?chuàng)建的基本表的名稱;?

<列名>給出列名或字段名;?

<數(shù)據(jù)類型>?

<列級(jí)完整性約束>?

<表級(jí)完整性約束>?

<其它參數(shù)>第一百七十三頁(yè),共626頁(yè)。為列指定數(shù)據(jù)類型及其數(shù)據(jù)寬度;

關(guān)系數(shù)據(jù)庫(kù)支持非常豐富的數(shù)據(jù)類型,不同的數(shù)據(jù)庫(kù)管理系統(tǒng)支持的數(shù)據(jù)類型基本是一樣的,右表列出了常用的數(shù)據(jù)類型。

數(shù)據(jù)類型第一百七十四頁(yè),共626頁(yè)。用于定義列或字段一級(jí)的完整性約束,一般包括:NOTNULL和NULL約束

PRIMARYKEY約束

UNIQUE約束

FOREIGNKEY約束

DEFAULT定義

CHECK約束

列級(jí)完整性約束第一百七十五頁(yè),共626頁(yè)。用于定義表一級(jí)的完整性約束,一般包括:PRIMARYKEY約束(復(fù)合屬性構(gòu)成的主關(guān)鍵字說(shuō)明)FOREIGNKEY約束(外部關(guān)鍵字及參照關(guān)系說(shuō)明)CHECK約束(同時(shí)涉及到多個(gè)屬性的域完整性約束)

表級(jí)完整性約束第一百七十六頁(yè),共626頁(yè)。不是SQL的標(biāo)準(zhǔn)選項(xiàng),一般用于與物理存儲(chǔ)有關(guān)的說(shuō)明,不同的數(shù)據(jù)庫(kù)管理系統(tǒng)定義的方式肯定不同,另外該項(xiàng)參數(shù)一般也不是必需的。

其他參數(shù)第一百七十七頁(yè),共626頁(yè)。例題[例1]建立一個(gè)“學(xué)生”表Student,它由學(xué)號(hào)Sno、姓名Sname、性別Ssex、年齡Sage、所在系Sdept五個(gè)屬性組成。其中學(xué)號(hào)不能為空,值是唯一的,并且姓名取值也唯一。CREATETABLEStudent(SnoCHAR(5)NOTNULLUNIQUE,SnameCHAR(20)UNIQUE,SsexCHAR(1),SageINT,SdeptCHAR(15));第一百七十八頁(yè),共626頁(yè)。二、修改基本表ALTERTABLE<表名>[ADD<新列名><數(shù)據(jù)類型>[<列級(jí)完整性約束>]]|[DROP<完整性約束名>][MODIFY<列名><數(shù)據(jù)類型>][DROPCOLUMN<列名>][ALTERCOLUMN<列名><數(shù)據(jù)類型>[<列級(jí)完整性約束>]]第一百七十九頁(yè),共626頁(yè)。例題[例2]向Student表增加“入學(xué)時(shí)間”列,其數(shù)據(jù)類型為日期型。

ALTERTABLEStudentADDScomeDATE;不論基本表中原來(lái)是否已有數(shù)據(jù),新增加的列一律為空值。

第一百八十頁(yè),共626頁(yè)。例題[例3]將年齡的數(shù)據(jù)類型改為半字長(zhǎng)整數(shù)。

ALTERTABLEStudentMODIFYSageSMALLINT;修改原有的列定義可能會(huì)破壞已有數(shù)據(jù)。

第一百八十一頁(yè),共626頁(yè)。例題[例4]刪除關(guān)于學(xué)號(hào)必須取唯一值的約束。

ALTERTABLEStudentDROPUNIQUE(Sno);SQL沒(méi)有提供刪除屬性列的語(yǔ)句,只能間接實(shí)現(xiàn),先將原表中要保留的列及其內(nèi)容復(fù)制到一個(gè)新表中,然后刪除原表,并將新表命名為原表名。

第一百八十二頁(yè),共626頁(yè)。三、刪除基本表 DROPTABLE<表名>;

基本表刪除 數(shù)據(jù)、表上的索引都刪除 表上的視圖往往仍然保留,但 無(wú)法引用刪除基本表時(shí),系統(tǒng)會(huì)自動(dòng)從數(shù)據(jù)字典中刪去有關(guān)該基本表及其索引的描述,因此建立在此表上的視圖雖然已保留,但已無(wú)法引用第一百八十三頁(yè),共626頁(yè)。例題例5刪除Student表DROPTABLEStudent;第一百八十四頁(yè),共626頁(yè)。3.2.2建立與刪除索引建立索引是加快查詢速度的有效手段建立索引DBA或表的屬主(即建立表的人)根據(jù)需要建立和刪除有些DBMS自動(dòng)建立以下列上的索引

PRIMARYKEYUNIQUE維護(hù)索引

DBMS自動(dòng)完成

使用索引

DBMS自動(dòng)選擇是否使用索引以及使用哪些索引第一百八十五頁(yè),共626頁(yè)。一、建立索引語(yǔ)句格式CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]]…); 用<表名>指定要建索引的基本表名字索引可以建立在該表的一列或多列上,各列名之間用逗號(hào)分隔用<次序>指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASCUNIQUE表明此索引的每一個(gè)索引值只對(duì)應(yīng)唯一的數(shù)據(jù)記錄CLUSTER表示要建立的索引是聚簇索引第一百八十六頁(yè),共626頁(yè)。建立索引(續(xù))唯一值索引對(duì)于已含重復(fù)值的屬性列不能建UNIQUE索引對(duì)某個(gè)列建立UNIQUE索引后,插入新記錄時(shí)DBMS會(huì)自動(dòng)檢查新記錄在該列上是否取了重復(fù)值。這相當(dāng)于增加了一個(gè)UNIQUE約束第一百八十七頁(yè),共626頁(yè)。建立索引(續(xù))聚簇索引建立聚簇索引后,基表中數(shù)據(jù)也需要按指定的聚簇屬性值的升序或降序存放。也即聚簇索引的索引項(xiàng)順序與表中記錄的物理順序一致例:CREATECLUSTERINDEXStusnameONStudent(Sname);在Student表的Sname(姓名)列上建立一個(gè)聚簇索引,而且Student表中的記錄將按照Sname值的升序存放

第一百八十八頁(yè),共626頁(yè)。建立索引(續(xù))在一個(gè)基本表上最多只能建立一個(gè)聚簇索引聚簇索引的用途:對(duì)于某些類型的查詢,可以提高查詢效率聚簇索引的適用范圍很少對(duì)基表進(jìn)行增刪操作很少對(duì)其中的變長(zhǎng)列進(jìn)行修改操作第一百八十九頁(yè),共626頁(yè)。聚簇索引是指索引項(xiàng)的順序與表中記錄的物理順序一致的索引組織。例CREATECLUSTERINDEXStusnameONStudent(Sname);將會(huì)在Student表的Sname列上建一個(gè)聚簇索引,而且記錄會(huì)按照Sname值的升序存放。用戶可以在最常查詢的列上建立聚簇索引以提高查詢效率。但在一個(gè)基本表上只能建一個(gè),而且更新索引列數(shù)據(jù)會(huì)導(dǎo)致表中記錄的物理順序的變更,因此經(jīng)常更新的數(shù)據(jù)列不宜建立。第一百九十頁(yè),共626頁(yè)。例題[例6]為學(xué)生-課程數(shù)據(jù)庫(kù)中的Student,Course,SC三個(gè)表建立索引。其中Student表按學(xué)號(hào)升序建唯一索引,Course表按課程號(hào)升序建唯一索引,SC表按學(xué)號(hào)升序和課程號(hào)降序建唯一索引。CREATEUNIQUEINDEXStusnoONStudent(Sno)CREATEUNIQUEINDEXCoucnoONCourse(Cno);CREATEUNIQUEINDEXSCnoONSC(SnoASC,CnoDESC);第一百九十一頁(yè),共626頁(yè)。二、刪除索引DROPINDEX<索引名>;刪除索引時(shí),系統(tǒng)會(huì)從數(shù)據(jù)字典中刪去有關(guān)該索引的描述。[例7]刪除Student表的Stusname索引。 DROPINDEXStusname;第一百九十二頁(yè),共626頁(yè)。3.3.1概述語(yǔ)句格式SELECT[ALL|DISTINCT]<目標(biāo)表達(dá)式>[,<目標(biāo)表達(dá)式>]…FROM<表名或視圖名>[,<表名或視圖名>…][WHERE<條件表達(dá)式>][GROUPBY<列名1>[HAVING<條件表達(dá)式>]][ORDERBY<列名2>[ASC|DESC]];第一百九十三頁(yè),共626頁(yè)。示例數(shù)據(jù)庫(kù)學(xué)生-課程數(shù)據(jù)庫(kù)學(xué)生表:Student(Sno,Sname,Ssex,Sage,Sdept)課程表:Course(Cno,Cname,Cpno,Ccredit)學(xué)生選課表:SC(Sno,Cno,Grade)第一百九十四頁(yè),共626頁(yè)。3.3查詢3.3.1概述3.3.2單表查詢3.3.3連接查詢3.3.4嵌套查詢3.3.5集合查詢3.3.6小結(jié)第一百九十五頁(yè),共626頁(yè)。3.3.2單表查詢查詢僅涉及一個(gè)表,是一種最簡(jiǎn)單的查詢操作一、選擇表中的若干列二、選擇表中的若干元組三、對(duì)查詢結(jié)果排序四、使用集函數(shù)五、對(duì)查詢結(jié)果分組

第一百九十六頁(yè),共626頁(yè)。從職工關(guān)系中檢索所有工資值SELECT工資FROM職工結(jié)果是:12201210125012301250SELECTDISTINCT工資FROM職工結(jié)果是:1220121012501230第一百九十七頁(yè),共626頁(yè)。單表查詢用戶在查詢時(shí)可根據(jù)應(yīng)用的需要改變列的顯示順序例2查詢?nèi)w學(xué)生的姓名、學(xué)號(hào)、所在系。查詢?nèi)苛?將所有的列名在SELECT后面列出或者用*表示列名例3SELECT*FROMStudent;查詢經(jīng)過(guò)計(jì)算的值例4查詢?nèi)w學(xué)生姓名及其出生年份SELECTSname,1996-SageFROMStudent;第一百九十八頁(yè),共626頁(yè)。單表查詢<目標(biāo)列表達(dá)式>不僅可以是算術(shù)表達(dá)式,還可以是字符串常量、函數(shù)等。例5查詢?nèi)w學(xué)生的姓名、出生年份和所有系,要求用小寫(xiě)字母表示所有系名SELECTSname,’YearofBirth:’,1996-Sage,ISLOWER(Sdept)FROMStudent;輸出結(jié)果:Sname’YearofBirth:’1996-SageISLOWER(Sdept)

李勇YearofBirth:1976cs劉晨YearofBirth:1977is王名YearofBirth:1978ma張立YearofBirth:1977is第一百九十九頁(yè),共626頁(yè)。[例5.*]使用列別名改變查詢結(jié)果的列標(biāo)題SELECTSnameNAME,'YearofBirth:’

BIRTH,

2000-SageBIRTHDAY,ISLOWER(Sdept)DEPARTMENTFROM

Student;輸出結(jié)果:

NAMEBIRTHBIRTHDAYDEPARTMENT

李勇YearofBirth:1976cs劉晨YearofBirth:1977is王名YearofBirth:1978ma張立YearofBirth:1977is第二百頁(yè),共626頁(yè)。二、選擇表中的若干元組消除取值重復(fù)的行查詢滿足條件的元組第二百零一頁(yè),共626頁(yè)。1.消除取值重復(fù)的行在SELECT子句中使用DISTINCT短語(yǔ)假設(shè)SC表中有下列數(shù)據(jù) SnoCnoGrade

9500119295001285950013889500229095002380第二百零二頁(yè),共626頁(yè)。ALL與

DISTINCT

[例6]查詢選修了課程的學(xué)生學(xué)號(hào)。(1)SELECTSnoFROMSC;(因?yàn)槟J(rèn)的是ALL)SELECTALLSnoFROMSC;

所以結(jié)果為:Sno

9500195001950019500295002第二百零三頁(yè),共626頁(yè)。例題(續(xù))(2)SELECTDISTINCTSnoFROMSC;

結(jié)果:

Sno

9500195002總結(jié):兩個(gè)本來(lái)并不完全相同的元組,投影到指定的某些列上后,可能變成完全相同的行,于是必須用DISTINCT短語(yǔ)或象下面那樣用WHERE語(yǔ)句。第二百零四頁(yè),共626頁(yè)。2.查詢滿足條件的元組WHERE子句常用的查詢條件第二百零五頁(yè),共626頁(yè)。(1)比較大小在WHERE子句的<比較條件>中使用比較運(yùn)算符=,>,<,>=,<=,!=或<>,!>,!<,邏輯運(yùn)算符NOT+比較運(yùn)算符[例8]查詢所有年齡在20歲以下的學(xué)生姓名及其年齡。

SELECTSname,Sage

FROMStudentWHERESage<20;或SELECTSname,SageFROMStudentWHERENOTSage>=20;

第二百零六頁(yè),共626頁(yè)。例9查詢考試成績(jī)有不及格的學(xué)生的學(xué)號(hào)SELECTDISTINCTSnoFROMSCWHEREGrade<60;第二百零七頁(yè),共626頁(yè)。(2)確定范圍使用謂詞BETWEEN…(下限)AND…(上限)NOTBETWEEN…AND…[例10]查詢年齡在20~23歲(包括20歲和23歲)之間的學(xué)生的姓名、系別和年齡。

SELECTSname,Sdept,SageFROMStudentWHERESageBETWEEN20AND23;

第二百零八頁(yè),共626頁(yè)。例題(續(xù))[例11]查詢年齡不在20~23歲之間的學(xué)生姓名、系別和年齡。SELECTSname,Sdept,SageFROMStudentWHERESageNOTBETWEEN20AND23;

第二百零九頁(yè),共626頁(yè)。(3)確定集合使用謂詞IN<值表>,NOTIN<值表>

<值表>:用逗號(hào)分隔的一組取值[例12]查詢信息系(IS)、數(shù)學(xué)系(MA)和計(jì)算機(jī)科學(xué)系(CS)學(xué)生的姓名和性別。SELECTSname,SsexFROMStudentWHERESdeptIN('IS','MA','CS');第二百一十頁(yè),共626頁(yè)。(3)確定集合[例13]查詢既不是信息系、數(shù)學(xué)系,也不是計(jì)算機(jī)科學(xué)系的學(xué)生的姓名和性別。SELECTSname,SsexFROMStudent WHERESdeptNOTIN('IS','MA','CS');第二百一十一頁(yè),共626頁(yè)。(4)字符串匹配[NOT]LIKE‘<匹配串>’[ESCAPE‘<換碼字符>’]<匹配串>:指定匹配模板匹配模板:固定字符串或含通配符的字符串當(dāng)匹配模板為固定字符串時(shí),即不含通配符時(shí)可以用=運(yùn)算符取代LIKE謂詞用!=或<>運(yùn)算符取代NOTLIKE謂詞第二百一十二頁(yè),共626頁(yè)。通配符%(百分號(hào))代表任意長(zhǎng)度(長(zhǎng)度可以為0)的字符串例:a%b表示以a開(kāi)頭,以b結(jié)尾的任意長(zhǎng)度的字符串。如acb,addgb,ab等都滿足該匹配

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論