《數(shù)據(jù)庫(kù)》教學(xué)案(共57頁(yè))_第1頁(yè)
《數(shù)據(jù)庫(kù)》教學(xué)案(共57頁(yè))_第2頁(yè)
《數(shù)據(jù)庫(kù)》教學(xué)案(共57頁(yè))_第3頁(yè)
《數(shù)據(jù)庫(kù)》教學(xué)案(共57頁(yè))_第4頁(yè)
《數(shù)據(jù)庫(kù)》教學(xué)案(共57頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上數(shù)據(jù)庫(kù)系統(tǒng)概論教案及講義授課老師:XXX專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)第一章 緒 論教學(xué)目標(biāo):1、結(jié)合具體的例子講述數(shù)據(jù)庫(kù)的設(shè)計(jì)步驟,通過(guò)此例子讓同學(xué)們對(duì)本教材各章節(jié)所要學(xué)習(xí)的內(nèi)容有一個(gè)初步的整體了解;2、對(duì)照文件系統(tǒng)的數(shù)據(jù)管理過(guò)程,講述數(shù)據(jù)庫(kù)管理系統(tǒng)的數(shù)據(jù)管理過(guò)程,讓同學(xué)們對(duì)數(shù)據(jù)庫(kù)管理系統(tǒng)的功能、組成、工作過(guò)程有個(gè)初步了解,并對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)模型(主要是關(guān)系模型)有比較深入的理解。3、課外布置學(xué)生完成一個(gè)小的數(shù)據(jù)庫(kù)設(shè)計(jì)課程設(shè)計(jì)題目,要求學(xué)生分組尋找題目并完成設(shè)計(jì)過(guò)程。教學(xué)重點(diǎn):1、舉簡(jiǎn)單例子說(shuō)明數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程。2、數(shù)據(jù)庫(kù)技術(shù)的產(chǎn)生發(fā)展過(guò)程的文件系統(tǒng)階段與數(shù)據(jù)庫(kù)系統(tǒng)階段。3、概念模型

2、、數(shù)據(jù)模型及三要素、數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)教學(xué)難點(diǎn):數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu);數(shù)據(jù)庫(kù)的二級(jí)映象功能與數(shù)據(jù)獨(dú)立性。教學(xué)過(guò)程:本章分3次講述,每次2課時(shí),主要講述以下內(nèi)容介紹如下:1、舉簡(jiǎn)單例子說(shuō)明需求分析及表達(dá)、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)過(guò)程。第六章的不少內(nèi)容前到此處講述(實(shí)際教學(xué)過(guò)程中本章的學(xué)時(shí)數(shù)增加2學(xué)時(shí)左右)。對(duì)照文件系統(tǒng)的數(shù)據(jù)管理過(guò)程,講述數(shù)據(jù)庫(kù)管理系統(tǒng)的數(shù)據(jù)管理過(guò)程,及相關(guān)概念。2、講述數(shù)據(jù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)的基本概念;數(shù)據(jù)庫(kù)模型(主要是關(guān)系模型);數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)。1.1 引言1.1.1 數(shù)據(jù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)1、 數(shù)據(jù)(data)* 高級(jí)語(yǔ)言的數(shù)據(jù),如PA

3、SCAL語(yǔ)言中各種類(lèi)型數(shù)據(jù)(常量、變量):integer,real,char,record,file, (著重文件類(lèi)型數(shù)據(jù)說(shuō)明)* 定義:1)數(shù)據(jù)是描述事物的符號(hào)記錄,2)數(shù)據(jù)與其語(yǔ)義是不可分的,需要經(jīng)過(guò)語(yǔ)義解釋。2、 數(shù)據(jù)庫(kù)(database,簡(jiǎn)稱(chēng)DB)*定義:數(shù)據(jù)庫(kù)是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫(kù)中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲(chǔ),具有較小的冗余度,較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并為各種用戶(hù)共享。(P1)*目前流行數(shù)據(jù)庫(kù)的數(shù)據(jù)模型:關(guān)系模型,數(shù)據(jù)結(jié)構(gòu)為表。*數(shù)據(jù)庫(kù)的存儲(chǔ):若干表一個(gè)庫(kù),一張表一個(gè)庫(kù)(文件系統(tǒng)為一個(gè)文件一個(gè)庫(kù))*對(duì)數(shù)據(jù)庫(kù)的操作:在數(shù)據(jù)庫(kù)管理系統(tǒng)的支

4、持下,可進(jìn)行數(shù)據(jù)查詢(xún)(select)、數(shù)據(jù)定義(create drop alter)、數(shù)據(jù)操縱(insert update delete)、數(shù)據(jù)控制(grant revoke)3) 從定義上數(shù)據(jù)庫(kù)與文件比較: 對(duì)照數(shù)據(jù)庫(kù)說(shuō)明:長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)、有組織的(組織簡(jiǎn)單)、可共享(共享性差)的數(shù)據(jù)集合。冗余度大,數(shù)據(jù)獨(dú)立性低。3、 數(shù)據(jù)庫(kù)管理系統(tǒng)(database management system ,簡(jiǎn)稱(chēng)DBMS)(P7)*定義(功能解釋?zhuān)篋BMS在數(shù)據(jù)庫(kù)建立、運(yùn)用和維護(hù)時(shí)對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一控制,以保證數(shù)據(jù)的完整性、安全性,并在多用戶(hù)同時(shí)使用數(shù)據(jù)庫(kù)時(shí)進(jìn)行并發(fā)控制,在發(fā)生故障后對(duì)系統(tǒng)進(jìn)行恢復(fù)。*對(duì)照

5、文件系統(tǒng):提供的操作簡(jiǎn)單,主要包括:建立文件、刪除文件、讀元素、寫(xiě)元素、打開(kāi)文件、關(guān)閉文件等。*用戶(hù)與文件系統(tǒng)及數(shù)據(jù)庫(kù)的接口: 文件系統(tǒng):系統(tǒng)調(diào)用 數(shù)據(jù)庫(kù)管理系統(tǒng):SQL(數(shù)據(jù)查詢(xún)、數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)控制)。4、 數(shù)據(jù)庫(kù)系統(tǒng):*是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的系統(tǒng)構(gòu)成,一般由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)(及其應(yīng)用開(kāi)發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫(kù)管理員和用戶(hù)構(gòu)成。5、 本課程的主要研究?jī)?nèi)容、意義及學(xué)習(xí)方法*主要內(nèi)容 關(guān)系數(shù)據(jù)庫(kù)及SQL、關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)(設(shè)計(jì)理論、具體設(shè)計(jì))、數(shù)據(jù)保護(hù)。*意義:非常實(shí)用*學(xué)習(xí)方法:大量的上機(jī)實(shí)踐是學(xué)好本課程的先決條件。1.1.2 數(shù)據(jù)管理的技術(shù)的發(fā)展(*數(shù)據(jù)庫(kù)技術(shù)產(chǎn)生:

6、是應(yīng)數(shù)據(jù)管理管理任務(wù)的需要而產(chǎn)生的。)*數(shù)據(jù)管理:是指如何對(duì)數(shù)據(jù)進(jìn)行分類(lèi)、組織、編碼、存儲(chǔ)、檢索和維護(hù),是數(shù)據(jù)處理的中心問(wèn)題。*隨著計(jì)算機(jī)硬件和軟件的發(fā)展,數(shù)據(jù)管理技術(shù)經(jīng)歷了三個(gè)發(fā)展階段:人工管理、文件系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng)。1、 人工管理階段的特點(diǎn):(背景:硬件,沒(méi)有直接存取的存儲(chǔ)設(shè)備;軟件,沒(méi)有操作系統(tǒng)及管理數(shù)據(jù)的軟件;數(shù)據(jù)處理方式為批處理)1) 數(shù)據(jù)不保存2) 數(shù)據(jù)需要由應(yīng)用程序自己管理,沒(méi)有相應(yīng)的軟件負(fù)責(zé)數(shù)據(jù)的管理工作。應(yīng)用程序中不僅要規(guī)定數(shù)據(jù)的邏輯結(jié)構(gòu),而且要設(shè)計(jì)物理結(jié)構(gòu)(包括存儲(chǔ)結(jié)構(gòu)、存取方法、輸入方式等)。(PASCAL語(yǔ)言文件處理:應(yīng)用程序中只考慮邏輯結(jié)構(gòu))3) 數(shù)據(jù)不共享:數(shù)據(jù)

7、面向應(yīng)用,一組數(shù)據(jù)只能對(duì)應(yīng)一個(gè)程序。因此程序與程序之間有大量的冗余數(shù)據(jù)。4) 數(shù)據(jù)不具有獨(dú)立性:數(shù)據(jù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)發(fā)生變化后,必須對(duì)應(yīng)用程序做相應(yīng)的修改。2、 文件系統(tǒng)階段的特點(diǎn):(背景:硬件,已有直接存取的存儲(chǔ)設(shè)備;軟件,操作系統(tǒng)中已經(jīng)有了專(zhuān)門(mén)的數(shù)據(jù)管理軟件,一般成為文件系統(tǒng);數(shù)據(jù)處理方式,不僅有了批處理而且能夠聯(lián)機(jī)實(shí)時(shí)處理)1) 數(shù)據(jù)可以長(zhǎng)期保存。2) 由專(zhuān)門(mén)的軟件即文件系統(tǒng)進(jìn)行數(shù)據(jù)管理。應(yīng)用程序按名存取數(shù)據(jù),大大節(jié)省了程序的編寫(xiě)與維護(hù)工作量。3) 數(shù)據(jù)共享性差。一個(gè)文件基本上對(duì)應(yīng)于一個(gè)應(yīng)用程序。不同應(yīng)用程序具有部分相同數(shù)據(jù)時(shí)也必許建立各自的文件,不能共享相同的數(shù)據(jù),數(shù)據(jù)冗余度大。相

8、同數(shù)據(jù)重復(fù)存儲(chǔ)、各自管理,給數(shù)據(jù)的修改與維護(hù)帶來(lái)了困難,容易造成數(shù)據(jù)的不一致性。4) 數(shù)據(jù)的獨(dú)立性低。數(shù)據(jù)與程序間缺乏獨(dú)立性:一旦數(shù)據(jù)的邏輯結(jié)構(gòu)改變,必須修改應(yīng)用程序修改文件結(jié)構(gòu)定義。而應(yīng)用程序的改變(應(yīng)用程序改用不同的高級(jí)語(yǔ)言)也將引起文件數(shù)據(jù)結(jié)構(gòu)的改變。3、 數(shù)據(jù)庫(kù)系統(tǒng)階段產(chǎn)生背景:以文件系統(tǒng)作為數(shù)據(jù)管理手段已經(jīng)不能滿足應(yīng)用的需要(多用戶(hù)、多應(yīng)用共享數(shù)據(jù)),于是出現(xiàn)了數(shù)據(jù)庫(kù)技術(shù)及統(tǒng)一管理數(shù)據(jù)的專(zhuān)門(mén)軟件數(shù)據(jù)庫(kù)管理系統(tǒng)。 特點(diǎn):1) 數(shù)據(jù)結(jié)構(gòu)化,存取方式靈活 數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)了整體數(shù)據(jù)的結(jié)構(gòu)化:在描述數(shù)據(jù)時(shí)不僅要描述數(shù)據(jù)本身,還要描述數(shù)據(jù)之間的聯(lián)系。文件系統(tǒng)盡管其記錄內(nèi)部有某種結(jié)構(gòu),但記錄之間沒(méi)

9、有聯(lián)系。2) 數(shù)據(jù)共享性好,冗余度低數(shù)據(jù)庫(kù)系統(tǒng)從整體角度看待和描述數(shù)據(jù),數(shù)據(jù)不再面向某個(gè)應(yīng)用而是面向整個(gè)系統(tǒng)。這樣既可以大大減少數(shù)據(jù)冗余,節(jié)約存儲(chǔ)空間,又能避免數(shù)據(jù)之間不相容與不一致性。3) 數(shù)據(jù)獨(dú)立性高數(shù)據(jù)庫(kù)系統(tǒng)提供了兩方面的映象功能,從而使數(shù)據(jù)既具有物理獨(dú)立性又具有邏輯獨(dú)立性。數(shù)據(jù)與程序間的邏輯獨(dú)立性:數(shù)據(jù)的總體邏輯結(jié)構(gòu)與某類(lèi)應(yīng)用所涉及的局部邏輯結(jié)構(gòu)之間的映象或轉(zhuǎn)換功能,保證了當(dāng)數(shù)據(jù)的總體邏輯結(jié)構(gòu)改變時(shí),通過(guò)對(duì)映象的相應(yīng)改變可以保持?jǐn)?shù)據(jù)的局部邏輯結(jié)構(gòu)不變,由于應(yīng)用程序是依據(jù)數(shù)據(jù)的局部邏輯結(jié)構(gòu)編寫(xiě)的,所以應(yīng)用程序不必修改。數(shù)據(jù)與程序間的物理獨(dú)立性:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與邏輯結(jié)構(gòu)之間的映象或轉(zhuǎn)換功能

10、,保證了當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)(或物理結(jié)構(gòu))改變時(shí),通過(guò)對(duì)映象的相應(yīng)修改可以保持?jǐn)?shù)據(jù)的邏輯結(jié)構(gòu)不變,從而應(yīng)用程序也不必修改。4) 數(shù)據(jù)由DBMS統(tǒng)一管理和控制*統(tǒng)一管理有結(jié)構(gòu)的數(shù)據(jù),使數(shù)據(jù)可以有靈活的使用方式。數(shù)據(jù)庫(kù)系統(tǒng)彈性大,易于擴(kuò)充。*有以下幾方面的控制功能:1) 數(shù)據(jù)的安全性:指保護(hù)數(shù)據(jù),防止不合法使用數(shù)據(jù)造成數(shù)據(jù)的泄密和破壞,使每個(gè)用戶(hù)只能按規(guī)定對(duì)某些數(shù)據(jù)以某種方式進(jìn)行訪問(wèn)和處理。2) 數(shù)據(jù)的完整性:指數(shù)據(jù)的正確性、有效性和相容性。即將數(shù)據(jù)控制在有效的范圍內(nèi),或要求數(shù)據(jù)間滿足一定的關(guān)系。3) 并發(fā)控制:當(dāng)多個(gè)用戶(hù)的并發(fā)進(jìn)程同時(shí)存取、修改數(shù)據(jù)時(shí),可能會(huì)相互干擾而得到錯(cuò)誤的結(jié)構(gòu),并使數(shù)據(jù)的完整性

11、遭到破壞,因此對(duì)多用戶(hù)并發(fā)操作加以控制和協(xié)調(diào)。4) 數(shù)據(jù)庫(kù)恢復(fù):硬件、軟件、操作員失誤、故意破壞等造成的故障,DBMS必須將數(shù)據(jù)庫(kù)從錯(cuò)誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)。12 數(shù)據(jù)模型121數(shù)據(jù)模型的作用、組成要素、概念1、數(shù)據(jù)模型的作用:通俗地說(shuō)是計(jì)算機(jī)世界對(duì)現(xiàn)實(shí)世界信息處理的模擬。具體為抽象、表示和處理現(xiàn)實(shí)世界的數(shù)據(jù)和信息。2、數(shù)據(jù)模型的組成要素:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、數(shù)據(jù)的約束條件。1)數(shù)據(jù)結(jié)構(gòu):*現(xiàn)實(shí)世界的信息抽象、表示為計(jì)算機(jī)世界的數(shù)據(jù)結(jié)構(gòu)。*數(shù)據(jù)結(jié)構(gòu):為所研究對(duì)象類(lèi)型的集合。一類(lèi)對(duì)象與數(shù)據(jù)類(lèi)型、內(nèi)容、性質(zhì)有關(guān),另一類(lèi)對(duì)象與數(shù)據(jù)間的聯(lián)系有關(guān)。*例 現(xiàn)實(shí)世界的“學(xué)生選修課程處理”涉及的信息,

12、抽象、表示為計(jì)算機(jī)世界的數(shù)據(jù)結(jié)構(gòu) *涉及的對(duì)象有 與數(shù)據(jù)本身有關(guān)對(duì)象:學(xué)生、課程 與數(shù)據(jù)間聯(lián)系有關(guān)對(duì)象:選課 *數(shù)據(jù)結(jié)構(gòu)(關(guān)系數(shù)據(jù)模型為表,數(shù)據(jù)及其聯(lián)系都用表表示)學(xué)生(學(xué)號(hào)、姓名、性別、系別、年齡、籍貫)(加屬性類(lèi)型說(shuō)明)課程(課程號(hào)、課程名、學(xué)分)(加屬性類(lèi)型說(shuō)明)選課(學(xué)號(hào)、課程號(hào)、成績(jī))(加屬性類(lèi)型說(shuō)明)*數(shù)據(jù)結(jié)構(gòu)在數(shù)據(jù)模型中的地位:數(shù)據(jù)模型中的數(shù)據(jù)結(jié)構(gòu)是刻畫(huà)一個(gè)數(shù)據(jù)模型性質(zhì)的最重要方面,人們通常按數(shù)據(jù)結(jié)構(gòu)類(lèi)型來(lái)命名數(shù)據(jù)模型。數(shù)據(jù)庫(kù)中的數(shù)據(jù)結(jié)構(gòu)有三種:關(guān)系結(jié)構(gòu)、層次結(jié)構(gòu)、網(wǎng)狀結(jié)構(gòu)。關(guān)系模型的重要性。2)數(shù)據(jù)操作*現(xiàn)實(shí)世界的信息對(duì)應(yīng)計(jì)算機(jī)世界的數(shù)據(jù)結(jié)構(gòu),現(xiàn)實(shí)世界信息的處理對(duì)應(yīng)計(jì)算機(jī)世界的

13、數(shù)據(jù)操作。主要有檢索和更新(包括插入、刪除、修改)兩大操作。*數(shù)據(jù)操作:是指對(duì)數(shù)據(jù)庫(kù)中各種對(duì)象(型)的實(shí)例(值)允許執(zhí)行的操作集合,包括操作及有關(guān)操作規(guī)則。*關(guān)系模型數(shù)據(jù)庫(kù)操作語(yǔ)言為SQL,主要功能:數(shù)據(jù)查詢(xún)(SELECT),數(shù)據(jù)定義(CREATE,DROP,ALTER),數(shù)據(jù)操縱(INSERT,UPDATE,DELETE),數(shù)據(jù)控制(GRANT,REVOTE)。3)數(shù)據(jù)的約束條件*是一組完整性規(guī)則的集合,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫(kù)狀態(tài),以保證數(shù)據(jù)的正確、有效和相容。*關(guān)系模型完整性約束:實(shí)體完整性、參照完整性、用戶(hù)自定義完整性。3、文件管理系統(tǒng)支持一種簡(jiǎn)單(或簡(jiǎn)陋)的數(shù)據(jù)模型 (通過(guò)文件系

14、統(tǒng)支持的簡(jiǎn)單數(shù)據(jù)模型來(lái)理解數(shù)據(jù)庫(kù)系統(tǒng)支持的數(shù)據(jù)模型,僅僅為了說(shuō)明問(wèn)題,通常不稱(chēng)文件系統(tǒng)支持?jǐn)?shù)據(jù)模型)*文件數(shù)據(jù)結(jié)構(gòu)及對(duì)文件這種數(shù)據(jù)結(jié)構(gòu)所進(jìn)行操作集合是文件管理系統(tǒng)所支持的一種簡(jiǎn)單數(shù)據(jù)模型。*將現(xiàn)實(shí)世界的信息抽象為文件,對(duì)信息的處理通過(guò)文件操作實(shí)現(xiàn)。*例 學(xué)生選課程文件結(jié)構(gòu)(學(xué)號(hào)、姓名、性別、系別、年齡、籍貫,課程號(hào)、課程名、學(xué)分,成績(jī))*文件系統(tǒng)不提供完整性約束功能,由應(yīng)用程序?qū)崿F(xiàn)。數(shù)據(jù)結(jié)構(gòu)及對(duì)數(shù)據(jù)的操作與數(shù)據(jù)庫(kù)中的數(shù)據(jù)模型相比顯得落后。4、數(shù)據(jù)模型的概念任何一種數(shù)據(jù)模型都是嚴(yán)格定義的概念的集合。這些概念必須能夠精確地描述系統(tǒng)的靜態(tài)特性、動(dòng)態(tài)特性和完整性約束條件。5、任何一種數(shù)據(jù)庫(kù)管理系統(tǒng)(D

15、BMS)都基于某種數(shù)據(jù)模型(或支持某種數(shù)據(jù)模型) 122現(xiàn)實(shí)世界的信息抽象表示為計(jì)算機(jī)世界某個(gè)數(shù)據(jù)模型數(shù)據(jù)結(jié)構(gòu)的橋梁- 概念模型1、 現(xiàn)實(shí)世界的信息轉(zhuǎn)換到機(jī)器世界信息的處理過(guò)程:1) 現(xiàn)時(shí)世界到信息世界(概念模型):*常用ER圖來(lái)描述現(xiàn)實(shí)世界的概念模型2) 信息世界轉(zhuǎn)換為機(jī)器世界(概念模型到數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu))2、 信息世界的基本概念(結(jié)合關(guān)系模型考慮)例子:1) 學(xué)生:學(xué)號(hào)、姓名、性別、系別、年齡、籍貫學(xué)號(hào)姓名性別系別年齡籍貫王五男機(jī)械19北京李六男化工18天津張三男信電20浙江2) 病人:病歷號(hào)、病人姓名、年齡、性別病歷號(hào)病人姓名年齡性別李勇60男劉醇50男許春30男1) 實(shí)體:客觀存在并

16、可相互區(qū)別的事物??梢允蔷唧w的人、事、物,也可以是抽象的概念或聯(lián)系(如學(xué)生的一次選課)。2) 屬性:實(shí)體所具有的某一特性。一個(gè)實(shí)體由若干個(gè)屬性來(lái)刻畫(huà)。3) 碼:唯一標(biāo)識(shí)實(shí)體的屬性集。4) 域:屬性的取值范圍稱(chēng)為該屬性的域。5) 實(shí)體型:用實(shí)體名及其屬性名集合來(lái)抽象和刻劃同類(lèi)實(shí)體。學(xué)生:學(xué)號(hào)、姓名、性別、系別、年齡、籍貫病人:病歷號(hào)、病人姓名、年齡、性別6) 實(shí)體集:同型實(shí)體的集合7) 聯(lián)系:實(shí)體內(nèi)部(實(shí)體的各屬性間)的聯(lián)系和實(shí)體之間的聯(lián)系。*兩實(shí)體型間的聯(lián)系可以分三類(lèi):*一對(duì)一聯(lián)系(1:1),班級(jí)與班長(zhǎng):一個(gè)班級(jí)只有一個(gè)班長(zhǎng),一個(gè)班長(zhǎng)只在一個(gè)班級(jí)任職。*一對(duì)多聯(lián)系(1:n),班級(jí)與學(xué)生:一個(gè)班

17、級(jí)有若干名學(xué)生,每個(gè)學(xué)生只在一個(gè)班級(jí)中學(xué)習(xí)。* 多對(duì)多聯(lián)系(m:n)學(xué)生與課程:一個(gè)學(xué)生選修了多門(mén)課程,一門(mén)課程為多個(gè)學(xué)生選修*同一實(shí)體集內(nèi)的各實(shí)體之間也可以存在三類(lèi)聯(lián)系如學(xué)生實(shí)體集內(nèi)部:學(xué)生的領(lǐng)導(dǎo)被領(lǐng)導(dǎo)關(guān)系3、 概念模型的表示方法(最常用ER法)*ER圖提供了表示實(shí)體型、屬性和聯(lián)系的方法實(shí)體及其屬性圖實(shí)體及其聯(lián)系圖成績(jī)概念模型:實(shí)體、屬性、聯(lián)系合一圖(涉及實(shí)體及屬性較多時(shí),為清晰起見(jiàn)兩圖分開(kāi))課程選課課程學(xué)生 1 m n講授 m n參考書(shū)教師班級(jí) 1組成 學(xué)生人員 n學(xué)生*同一實(shí)體型的聯(lián)系學(xué)生 1 n領(lǐng)導(dǎo)*總體實(shí)體及其聯(lián)系圖班級(jí)成績(jī)學(xué)生人員組成選課學(xué)生課程 m n領(lǐng)導(dǎo) 1 1 n講授 m n

18、教師參考書(shū)*E一R圖123關(guān)系數(shù)據(jù)模型1、 關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)*關(guān)系模式的數(shù)據(jù)結(jié)構(gòu)是一張二維表,它由行和列組成。*一些概念:關(guān)系:表元組:表行屬性:表列主碼:某個(gè)屬性組,它可以唯一確定一個(gè)元組。域:屬性的取值范圍分量:元組的一個(gè)屬性值關(guān)系模式:對(duì)關(guān)系的描述,一般表示為:關(guān)系名(屬性1、屬性2、屬性n)*關(guān)系模型中實(shí)體與實(shí)體間的聯(lián)系都是用表(關(guān)系)來(lái)表示的 (與概念模型的實(shí)體型及聯(lián)系對(duì)應(yīng))學(xué)生()課程()學(xué)生選課()*關(guān)系模型要求關(guān)系必須是規(guī)范化的,即關(guān)系模式必須滿足一定的規(guī)范條件。最基本一條為每個(gè)分量必須是不可分的數(shù)據(jù)項(xiàng)2、 關(guān)系數(shù)據(jù)模型的操縱與完整性約束3、 關(guān)系數(shù)據(jù)模型的存儲(chǔ)結(jié)構(gòu)*一個(gè)

19、表對(duì)應(yīng)一個(gè)DBF文件(DBASE,F(xiàn)oxpro等)*多個(gè)表放在一個(gè)DB文件中(SYBASE SQL Anywhere,SQL Server等)1.3數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)1、關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的模式結(jié)構(gòu)SQL視圖2視圖1外模式基表4基表3基表2基表1模式存儲(chǔ)文件2存儲(chǔ)文件1存儲(chǔ)模式模式:也稱(chēng)邏輯模式,是數(shù)據(jù)庫(kù)中全體邏輯結(jié)構(gòu)和特征的描述,是所有用戶(hù)的公共數(shù)據(jù)視圖。外模式:也稱(chēng)子模式或用戶(hù)模式,他是數(shù)據(jù)庫(kù)用戶(hù)(包括應(yīng)用程序員和最終用戶(hù))看見(jiàn)和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述內(nèi)模式:內(nèi)模式也稱(chēng)存儲(chǔ)模式,它是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)的描述,是數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部的表示方式。數(shù)據(jù)庫(kù)系統(tǒng)的模式結(jié)構(gòu):數(shù)據(jù)庫(kù)系統(tǒng)是由外模式

20、、模式、內(nèi)模式三級(jí)構(gòu)成第二章 關(guān)系數(shù)據(jù)庫(kù)教學(xué)目標(biāo):介紹關(guān)系模型的基本概念,即關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作和關(guān)系完整性。結(jié)合第三章的數(shù)據(jù)定義介紹數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)完整性。關(guān)系操作主要介紹關(guān)系代數(shù)。教學(xué)重點(diǎn):1、數(shù)據(jù)結(jié)構(gòu):笛卡兒積、關(guān)系、關(guān)系模式、關(guān)系數(shù)據(jù)庫(kù)。2、關(guān)系完整性:實(shí)體、參照、用戶(hù)自定義。3、關(guān)系操作:關(guān)系代數(shù),重點(diǎn)是投影、選擇、連接、除法操作。教學(xué)難點(diǎn):關(guān)系數(shù)據(jù)庫(kù)的型和值;關(guān)系代數(shù)的除法運(yùn)算。教學(xué)過(guò)程:本章分3次講述,每次2學(xué)時(shí),每次主要講述以下內(nèi)容介紹如下:第一次:介紹數(shù)據(jù)結(jié)構(gòu)(笛卡兒積、關(guān)系、關(guān)系模式、關(guān)系數(shù)據(jù)庫(kù))。關(guān)系完整性(實(shí)體、參照、用戶(hù)自定義)(實(shí)際教學(xué)過(guò)程中將第三章的表定義及

21、對(duì)數(shù)據(jù)庫(kù)的插入操作部分提前到這里,相當(dāng)于第三章有2學(xué)時(shí)多調(diào)整到了這里)。第二次:介紹舉例關(guān)系操作的語(yǔ)義(關(guān)系代數(shù),重點(diǎn)是投影、選擇、連接、除法操作),并介紹相應(yīng)的SQL語(yǔ)句表達(dá)式(實(shí)際教學(xué)過(guò)程相當(dāng)于將第三章的相關(guān)內(nèi)容調(diào)整到了此處介紹)。關(guān)系操作舉例,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(重點(diǎn)講述各類(lèi)系統(tǒng)支持模型的程度)。21 關(guān)系數(shù)據(jù)庫(kù)概述1、 關(guān)系數(shù)據(jù)庫(kù)系統(tǒng):支持關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng)。2、 關(guān)系模型的組成:關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合、完整性約束條件三部分。3、 關(guān)系數(shù)據(jù)結(jié)構(gòu)表,特點(diǎn):簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)表達(dá)豐富的語(yǔ)義,描述現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的聯(lián)系(例)4、 關(guān)系操作*采用集合操作:操作對(duì)象與操作結(jié)果為集合,*

22、常用的操作*查詢(xún):選擇、投影、連接、除、并、交、差等;更新:增、刪、改*查詢(xún)的表達(dá)能力是關(guān)系操作中的最主要部分*關(guān)系模型中關(guān)系操作能力的早期抽象表示(即抽象查詢(xún)語(yǔ)言,領(lǐng)會(huì)語(yǔ)言的含義):1) 關(guān)系代數(shù)語(yǔ)言:用代數(shù)方式表示,即用關(guān)系的運(yùn)算來(lái)表達(dá)查詢(xún)要求的方式。2) 關(guān)系演算語(yǔ)言:用邏輯方式表示,即用謂詞來(lái)表達(dá)查詢(xún)要求的方式。元組關(guān)系演算:謂詞變?cè)幕緦?duì)象是元組變量。域關(guān)系演算:謂詞變?cè)幕緦?duì)象為域變量。3) 關(guān)系代數(shù)、關(guān)系演算(元組關(guān)系演算、域關(guān)系演算)三種語(yǔ)言在表達(dá)能力上是等價(jià)的。*早期抽象查詢(xún)語(yǔ)言(關(guān)系代數(shù)、關(guān)系演算語(yǔ)言)的作用作為評(píng)估實(shí)際系統(tǒng)中查詢(xún)語(yǔ)言能力的標(biāo)準(zhǔn)。與具體DBMS實(shí)現(xiàn)的實(shí)際

23、語(yǔ)言不完全一樣(提供許多附加功能,如集函數(shù)、關(guān)系賦值、算術(shù)運(yùn)算等)*關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言(SQLstructured query language結(jié)構(gòu)化查詢(xún)語(yǔ)言)是集數(shù)據(jù)查詢(xún)、DDL數(shù)據(jù)定義、DML數(shù)據(jù)操縱、DCL數(shù)據(jù)控制于一體的語(yǔ)言。具有關(guān)系代數(shù)與關(guān)系演算雙重特點(diǎn)的語(yǔ)言。5、 完整性約束*允許定義三類(lèi)完整性:實(shí)體完整性、參照完整性、用戶(hù)自定義完整性。*關(guān)系系統(tǒng)自動(dòng)支持的完整性:實(shí)體完整性、參照完整性。22關(guān)系數(shù)據(jù)結(jié)構(gòu)(關(guān)系、關(guān)系模式、關(guān)系數(shù)據(jù)庫(kù))1、 關(guān)系例1:有表結(jié)構(gòu)(關(guān)系模式):學(xué)生(學(xué)號(hào)、性別) 如果,學(xué)號(hào)為子界類(lèi)型 D1=1.100, 性別為枚舉類(lèi)型D2=(男,女), 學(xué)生表的最大取

24、值(最大表):100*2=200個(gè)元組例2:有表結(jié)構(gòu):學(xué)生(學(xué)號(hào)、姓名、性別、系別、年齡、籍貫) 每個(gè)列的類(lèi)型:integer,char(8),bolean,char(8),integer,char(10)最大表元組數(shù):實(shí)際應(yīng)用中的具體表:最大表的有意義的子集1) 域:是一組具有相同數(shù)據(jù)類(lèi)型值的集合。表中的每列都與一域(表的數(shù)據(jù)類(lèi)型)相關(guān)連2) 笛卡兒積(本質(zhì)上為最大元組表)*定義:給定一組域D1,D2,.,Dn,這些域可以完全不同,也可以部分或全部相同。D1,D2,.,Dn的笛卡兒積為:D1D2. Dn=(d1,d2,dn)diDi,i=1,2,n其中每一個(gè)元素(d1,d2,dn)叫作一個(gè)n

25、元組,或簡(jiǎn)稱(chēng)為元組。元素中的每一個(gè)值di叫作一個(gè)分量。*若Di(i=1,2,n)為有限集,其基數(shù)為mi(i=1,2,n),則D1D2. Dn的基數(shù)為m1*m2*mn3) 關(guān)系*定義:D1D2. Dn的子集叫作在域D1,D2,.,Dn上的關(guān)系,用R(D1,D2,.,Dn)表示。R表示關(guān)系的名字,n是關(guān)系的目或度n=1單元關(guān)系n=2二元關(guān)系關(guān)系為笛卡兒積的子集,表行元組,表列屬性(n目關(guān)系有n個(gè)屬性)。*侯選碼:若關(guān)系中某一屬性組的值能唯一標(biāo)識(shí)一個(gè)元組,則稱(chēng)該屬性組為侯選碼*主碼:若一個(gè)關(guān)系中有多個(gè)侯選碼,則選其中一個(gè)作為主碼。*主屬性:主碼的諸屬性*非碼屬性:不包含在任何侯選碼中的屬性*全碼:侯

26、選碼為關(guān)系的所有屬性組*關(guān)系的三種類(lèi)型:基本表(實(shí)際存在表)、查詢(xún)表(查詢(xún)結(jié)果)、視圖表(虛表由基本表與其他試圖表導(dǎo)出)*基本關(guān)系具有6條性質(zhì):(見(jiàn)書(shū)P40)2、 關(guān)系模式*定義:關(guān)系的描述稱(chēng)為關(guān)系模式。它可形式化地表示為R(U,D,DOM,F(xiàn))。R為關(guān)系名U組成該關(guān)系的屬性名集合D屬性組所來(lái)自的域DOM屬性向域的映象集合F屬性間數(shù)據(jù)的依賴(lài)關(guān)系集合(第四章專(zhuān)門(mén)討論)*關(guān)系模式通常簡(jiǎn)記為R(U)或R(A1,A2,An),域名及屬性向域的映象常常直接說(shuō)明為屬性的類(lèi)型、長(zhǎng)度*型與值:模式是型,關(guān)系(表)是模式的值3、 關(guān)系數(shù)據(jù)庫(kù)含義:在一個(gè)給定的現(xiàn)實(shí)世界的領(lǐng)域中,相應(yīng)于所有實(shí)體及實(shí)體之間的聯(lián)系的關(guān)系

27、的集合構(gòu)成一個(gè)關(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)系模式的值也稱(chēng)為關(guān)系數(shù)據(jù)庫(kù),是這些關(guān)系模式在某一時(shí)刻對(duì)應(yīng)的關(guān)系的集合。關(guān)系數(shù)據(jù)庫(kù)模式與關(guān)系數(shù)據(jù)庫(kù)通常稱(chēng)為關(guān)系數(shù)據(jù)庫(kù)。23關(guān)系完整性1、 實(shí)體完整性要點(diǎn):主屬性不能取空值?,F(xiàn)實(shí)世界的語(yǔ)義要求:一個(gè)基本關(guān)系通常對(duì)應(yīng)現(xiàn)實(shí)世界的一個(gè)實(shí)體集,現(xiàn)實(shí)世界的實(shí)體是可以區(qū)分的,即它們具有某種唯一標(biāo)識(shí),在關(guān)系模型中以主碼作為唯一標(biāo)識(shí)。2、 參照完整性*關(guān)系與關(guān)系之間存在著引用關(guān)系:因?yàn)楝F(xiàn)實(shí)世界的實(shí)體之間存在某種聯(lián)系,而關(guān)系模型中實(shí)體及實(shí)體間的聯(lián)系都是用關(guān)系來(lái)描述的。*舉例:

28、* 要點(diǎn):*外碼基本關(guān)系R的非碼屬性(組)F與基本關(guān)系S的主碼Ks相對(duì)應(yīng),則屬性(組)F為R的外碼。*參照關(guān)系R*被參照關(guān)系S*參照完整性規(guī)則基本關(guān)系R的外碼F與基本關(guān)系S的主碼Ks相對(duì)應(yīng),則R上的每個(gè)元組在F上的取值要求:或者取空值;或者等于S中的某個(gè)元組的主碼值。3、 用戶(hù)自定義完整性 *反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語(yǔ)義要求。 *通常有三類(lèi):非空約束(not null)、唯一約束(unique)、檢查約束(check)*24如何實(shí)現(xiàn)完整性約束規(guī)則(作問(wèn)題處理)1、 在表中定義完整性規(guī)則2、 在對(duì)表中的數(shù)據(jù)進(jìn)行更新操作時(shí),數(shù)據(jù)庫(kù)管理系統(tǒng)自動(dòng)的檢查完整性規(guī)則,將表中的數(shù)據(jù)約束在用戶(hù)期

29、望的范圍中。*PB提供了一定的前端約束檢查功能*在前端定義約束規(guī)則(相當(dāng)check功能),在前端進(jìn)行合法性檢查。即在輸入數(shù)據(jù)時(shí)一定程度上過(guò)濾了不合法的數(shù)據(jù)。相同的檢查在數(shù)據(jù)庫(kù)表中可以不需要再定義。*在前端一已經(jīng)實(shí)現(xiàn)的完整性約束,在數(shù)據(jù)庫(kù)表中是否可以不需要再定義?回答否,因?yàn)椋绮煌ㄟ^(guò)應(yīng)用程序直接通過(guò)工具操作數(shù)據(jù)庫(kù)表時(shí),就沒(méi)有了相應(yīng)的完整性檢查。24 關(guān)系代數(shù)1、 何為關(guān)系代數(shù):是抽象的查詢(xún)語(yǔ)言,它用關(guān)系運(yùn)算來(lái)表達(dá)查詢(xún)。主要研究關(guān)系(表)運(yùn)算,運(yùn)算對(duì)象是關(guān)系,運(yùn)算結(jié)果也是關(guān)系。2、 關(guān)系運(yùn)算分兩類(lèi):1) 傳統(tǒng)的集合運(yùn)算:并、交、差、廣義笛卡爾積。運(yùn)算只涉及行,將關(guān)系看成是行(元組)的集合,。2)

30、 專(zhuān)門(mén)的關(guān)系運(yùn)算:選擇、投影、連接、除。運(yùn)算既涉及行也涉及列。3、 傳統(tǒng)的集合運(yùn)算(著重掌握語(yǔ)義)設(shè)關(guān)系R、SRABa1b1a1b2 SABa1b2a2b21) 并(U)R S= t | tR tS 并由屬于R或?qū)儆赟的元組組成。兩集合元組并在一起,去掉重復(fù)元組。 關(guān)系R、S要求具有相同的目n(都具有n個(gè)屬性),相應(yīng)的屬性取自同一個(gè)域(同類(lèi)型數(shù)據(jù))2) 差()R S= t | tR tS 差由屬于R并不屬于S的元組組成。 關(guān)系R、S要求具有相同的目n(都具有n個(gè)屬性),相應(yīng)的屬性取自同一個(gè)域(同類(lèi)型數(shù)據(jù))3) 交()R S= t | tR tS 由屬于R且屬于S的元組組成。 關(guān)系R、S要求具有

31、相同的目n(都具有n個(gè)屬性),相應(yīng)的屬性取自同一個(gè)域(同類(lèi)型數(shù)據(jù))4) 廣義笛卡爾積R S=trts | trR tsS *關(guān)系R、S分別為m、n目k1、k2個(gè)元組,結(jié)果為m+n目,元組個(gè)數(shù)為k1*k2個(gè)。例:R學(xué)號(hào)姓名1A2BS課 程數(shù)據(jù)庫(kù)操作系統(tǒng)R S學(xué)號(hào)姓名課程1A數(shù)據(jù)庫(kù)1A操作系統(tǒng)2B數(shù)據(jù)庫(kù)2B操作系統(tǒng)(廣義笛卡兒積與笛卡兒積的比較:)4、 專(zhuān)門(mén)關(guān)系運(yùn)算(運(yùn)算結(jié)果著重掌握語(yǔ)義)1) 選擇F(R)=t| tR F(t)=“T” 選擇關(guān)系R中滿足邏輯表達(dá)式F為真的元組。P48 例1、查詢(xún)信息系的全體學(xué)生 例2、查詢(xún)年齡小于20的元組 例1: sdept='is'(stude

32、nt) 例2:sage<20(student) 邏輯表達(dá)式F的基本形式為:X1 Y1 X2 Y2 比較運(yùn)算符,邏輯運(yùn)算符,Xi、Yi屬性名或常量名或簡(jiǎn)單函數(shù)。2) 投影A(R)=tA| tR A為R中的屬性列例3:學(xué)生關(guān)系在姓名和系兩個(gè)屬性上的投影。例4:在學(xué)生關(guān)系中有那些系表見(jiàn)P48 例3:sname,sdept(student) 例4:sdept(student)注:投影后的重復(fù)行應(yīng)該消除 3) 連接R S=trts | trR tsS trA tsB AB從廣義笛卡爾積R S中選擇滿足比較運(yùn)算表達(dá)式AB的元組,A、B分別為R、S上度數(shù)相等且可比的屬性組。例(P50):R S c&l

33、t;d 等值連接:上述連接的特例,取=自然連接:書(shū)寫(xiě)格式在連接符下不加比較表達(dá)式,比較分量必須是相同的屬性組,連接結(jié)果去掉重復(fù)列。4) 除(÷)例6:設(shè)關(guān)系R(A,B,C),S(B,C,D),求R÷S,R÷S為新關(guān)系P(A),P是R中滿足下列條件的元組在A屬性列上的投影:元組在A上分量值a的象集BCa包含S在BC上投影的集合。見(jiàn)書(shū)P51 *象集:關(guān)系R(X,Z),X和Z為屬性組。我們定義,當(dāng)tX=x時(shí),x在R中的象集為:Zx=tZ| tR ,tX=x表示R中屬性組X上值為x的諸元素在Z 上分量的集合。*R÷S:R(X,Y),S(Y,Z),其中X,Y,Z為

34、屬性組R(X,Y)X=A,Y=BCS(Y,Z)Y=BC,Z=DR÷S的結(jié)果為新關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。 R ÷ S = trX| trR y(S) 包含于trX的象集例:至少選修了課程表中所有課程的學(xué)生sno,cno(student_course) ÷cno(course)例:P51 例7例10假設(shè)學(xué)生課程數(shù)據(jù)庫(kù)中有表:(理解含義) Student(Sno學(xué)號(hào),sname姓名,sex性別,age年齡,sdept所在系), Course(Cno,Cname,Cpno,Ccredi

35、t), SC(Sno,Cno,Grade)例9:查詢(xún)至少選修了一門(mén)其直接先行課為6號(hào)課程的學(xué)生姓名1、 先行課為6號(hào)的課程,涉及課程表。P1=cpno='6'(coruse)2、 選了上述課程的學(xué)生學(xué)號(hào)P2:P1SC 或sno(P1SC )3、 根據(jù)學(xué)號(hào)求姓名:P2Sno,Sname(Student),投影出Sname例10:查詢(xún)選修了全部課程的學(xué)生號(hào)碼和姓名1、 所有課程的課程號(hào)P1:cno(Course )2、 選修了所有課程的學(xué)生號(hào)P2:Sno,Cno(SC)÷P13、 學(xué)生姓名、學(xué)生號(hào):P2Sno,Sname(Student)2.6關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(簡(jiǎn)稱(chēng)關(guān)系

36、系統(tǒng))1、關(guān)系系統(tǒng):為支持關(guān)系模型的系統(tǒng),各種實(shí)際應(yīng)用的關(guān)系系統(tǒng)對(duì)關(guān)系模型的支持程度不同(數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操縱、完整性約束)。2、各類(lèi)關(guān)系系統(tǒng)的分類(lèi)與定義:1) 表式系統(tǒng):僅支持關(guān)系數(shù)據(jù)結(jié)構(gòu),不支持集合級(jí)操作,實(shí)際上不能算關(guān)系系統(tǒng)。2) (最?。╆P(guān)系系統(tǒng):支持關(guān)系數(shù)據(jù)結(jié)構(gòu)和選擇、投影、連接三種操作。(FoxBASE,FoxPro等)3) 關(guān)系完備系統(tǒng):支持關(guān)系數(shù)據(jù)結(jié)構(gòu)和支持關(guān)系代數(shù)操作(功能上與關(guān)系代數(shù)等價(jià))。(DB2,ORACLE等)4) 全關(guān)系系統(tǒng):支持關(guān)系模型的所有特征。到目前為止尚沒(méi)有一個(gè)系統(tǒng)是全關(guān)系系統(tǒng)。DB2,ORACLE接近全關(guān)系目標(biāo)。3、關(guān)系系統(tǒng)的體系結(jié)構(gòu)*不同關(guān)系系統(tǒng)的體系結(jié)構(gòu)

37、都符合三級(jí)模式結(jié)構(gòu)。*三級(jí)模式:模式表,外模式視圖,內(nèi)模式物理存儲(chǔ)文件*兩級(jí)映象:模式與外模式,模式與內(nèi)模式。映象由關(guān)系系統(tǒng)自動(dòng)提供與維護(hù)。第三章 關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言SQL教學(xué)目標(biāo):介紹目前已經(jīng)成為關(guān)系數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)語(yǔ)言的結(jié)構(gòu)化查詢(xún)語(yǔ)言(SQL)。此內(nèi)容是數(shù)據(jù)庫(kù)應(yīng)用的基礎(chǔ),學(xué)生需要熟練掌握之。教學(xué)重點(diǎn):1.數(shù)據(jù)定義(表、視圖、索引的定義)。表定義與完成性約束定義,數(shù)據(jù)定義與數(shù)據(jù)字典,索引能加快查詢(xún)速度的原因,對(duì)視圖操作與對(duì)基本表操作,視圖及外模式。2.數(shù)據(jù)更新操作與數(shù)據(jù)完整性維護(hù),數(shù)據(jù)更新操作與數(shù)據(jù)庫(kù)一致性維護(hù)問(wèn)題。3.SQL查詢(xún)(單表查詢(xún)、連接查詢(xún)、嵌套查詢(xún)、集合查詢(xún))相關(guān)關(guān)系代數(shù)表達(dá)。4.嵌入

38、式SQL。教學(xué)難點(diǎn):涉及多表的連接查詢(xún)。教學(xué)過(guò)程:本章分6次講述,每次2學(xué)時(shí),每次主要講述以下內(nèi)容介紹如下:第一次:介紹數(shù)據(jù)結(jié)構(gòu)及完整性約束條件定義,數(shù)據(jù)更新操作與完整性維護(hù)問(wèn)題。索引及其作用。單表查詢(xún)(若干列、若干元組、對(duì)查詢(xún)結(jié)果排序、使用集函數(shù)、對(duì)查詢(xún)結(jié)果分組)。第二次:連接查詢(xún)(等值與非等值連接查詢(xún)、自身連接查詢(xún)、外連接查詢(xún)、復(fù)合條件連接)。第三次:嵌套查詢(xún)(帶IN謂詞查詢(xún)、帶比較運(yùn)算符查詢(xún))。嵌套查詢(xún)(帶ANY或ALL謂詞查詢(xún)、帶EXISTS謂詞子查詢(xún)),集合查詢(xún)。第四次:數(shù)據(jù)更新,更新操作與數(shù)據(jù)庫(kù)的一致性問(wèn)題(通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)的事務(wù)功能解決,以及程序員如何編程解決)。第五次:視圖。

39、31 標(biāo)準(zhǔn)SQL語(yǔ)言核心功能的9個(gè)動(dòng)詞SQL功能動(dòng)詞數(shù)據(jù)定義CREATE,DROP,ALTER數(shù)據(jù)查詢(xún)SELECT數(shù)據(jù)操縱INSERT,UPDATE,DELETE數(shù)據(jù)控制GRANT,REVOTE各個(gè)DBMS產(chǎn)品在實(shí)現(xiàn)標(biāo)準(zhǔn)SQL語(yǔ)言時(shí)各有差別,一般都作了某些擴(kuò)充32數(shù)據(jù)定義數(shù)據(jù)定義的基本對(duì)象為表、索引、視圖(導(dǎo)出表)操作對(duì)象操作方式創(chuàng)建刪除修改表CREATE TABLEDROP TABLEALTER TABLE索引CREATE INDEXDROP INDEX視圖CREATE VIEWDROP VIEW*基本表獨(dú)立存在,不同的RDBMS產(chǎn)品,表的物理存儲(chǔ)會(huì)有不同的方式:若干基本表存儲(chǔ)于一個(gè)文件;一

40、個(gè)表存儲(chǔ)與一個(gè)文件。(小型DBMS如DBASE,一個(gè)基本表對(duì)應(yīng)一個(gè)存儲(chǔ)文件)*索引依附于基本表。其作用是為了加快數(shù)據(jù)的訪問(wèn)速度。兩類(lèi):聚簇索引與非聚簇索引*視圖為導(dǎo)出表(基于基本表的虛表),只存儲(chǔ)視圖定義,不存放視圖對(duì)應(yīng)的數(shù)據(jù),數(shù)據(jù)存放在導(dǎo)出視圖的基本表中。(對(duì)視圖操作最終通過(guò)視圖的定義變?yōu)閷?duì)基本表操作)*SQL數(shù)據(jù)定義語(yǔ)句3.2.1 定義、刪除、修改基本表4、 舉例例1:從以下3方面理清定義表的條件a 名、屬性: student(no,name,sex,age,dept)b屬性的域(即屬性的數(shù)據(jù)類(lèi)型)c 約束1) 主鍵(no)2) 參照(無(wú))3) 自定義(由實(shí)際需要定)name( uniqu

41、e not null)sex(not null)age(10<age<150)dept(無(wú)約束條件)定義的實(shí)現(xiàn)create table student( no char(6) primary key,/ 主鍵 即實(shí)體完整性name char(6) unigue not null ,sex char(1) not null ,age int(eger) check(age >10 and age<150),dept char(8)/ primary key(no) /表級(jí)約束);5、 一般格式1) 表定義內(nèi)容(關(guān)系模式、完整性約束)*關(guān)系模式R(U,D,DOM,F(xiàn))。F沒(méi)

42、有直接體現(xiàn)。*完整性約束結(jié)合前例進(jìn)一步說(shuō)明。2) 定義基本表的一般格式 CREATE TABLE <表名>(列名數(shù)據(jù)類(lèi)型列級(jí)完整性約束條件 ,列名數(shù)據(jù)類(lèi)型列級(jí)完整性約束條件 ,<表級(jí)完整性約束條件> );*格式說(shuō)明:create table為關(guān)鍵字,表名由用戶(hù)自定義,屬性由逗號(hào)分割,結(jié)束符為;3) 最常用的數(shù)據(jù)類(lèi)型(域)不同數(shù)據(jù)庫(kù)系統(tǒng)支持的數(shù)據(jù)類(lèi)型不完全相同(實(shí)際使用時(shí)需要查閱相關(guān)資料)。最常用的數(shù)據(jù)類(lèi)型有:integer,float,date,char(n)等SQL SERVER 支持以下數(shù)據(jù)類(lèi)型二進(jìn)制 binary(n) varbinary(n)字符型 char(n

43、),varchar(n)日期及時(shí)間型 data datetime, 精確數(shù)值型 decimal(p,s), numeric(p,s) p表示整數(shù)位與小數(shù)位之和,s表示小數(shù)位近視數(shù)值型 float,real整形 int(integer)4字節(jié) smallint 2字節(jié) tinyint 1字節(jié)貨幣 money文本和圖象 text image4) 完整性規(guī)則(1) 實(shí)體完整性不可少(NOT NULL UNIQUE)(2) 列級(jí)約束與表級(jí)約束的區(qū)別如果完整性約束涉及到該表的多個(gè)屬性列,必須定義在表級(jí)上,否則既可以定義在列級(jí)也可以定義在表級(jí)用SC表說(shuō)明create table student_cours

44、e( sno char(6) , cno char(6), grade int, primary key(sno,cno);(3) 自定義*非空約束(not null),*唯一約束(unique),(可NULL)(與primary key 的區(qū)別)*檢查約束(check)*缺省約束DEFAULT。(4) 約束的定義的形式 在不同的數(shù)據(jù)庫(kù)管理系統(tǒng)產(chǎn)品上某些地方有所不同,需要查相關(guān)產(chǎn)品的資料。(5) 外鍵約束student(no, name, sex , age , dept) /外碼 deptdepartment(dept, dept_name, location) /主碼create tabl

45、e student(no char(6) primary key,name char(6),sex char(1),age integer,dept char(8) references department,/(dept),/列級(jí)約束/ constraint f_k foreign key (dept) references department,/(dept_code), / 表級(jí)約束);create table department( dept char(8) primary key, dept_name char(20), location char(20),);(6) 完整性檢查過(guò)程

46、*建表時(shí)完整性約束條件被存入系統(tǒng)的數(shù)據(jù)字典中*用戶(hù)操作表中的數(shù)據(jù)時(shí),由DBMS自動(dòng)檢查該操作是否違背所定義的完整性約束條件。5) 表(數(shù)據(jù)定義)內(nèi)容的存儲(chǔ)執(zhí)行建表語(yǔ)句后,關(guān)系模式與完整性約束條件被存入系統(tǒng)的數(shù)據(jù)字典中6) 修改基本表*增加新列*刪除完整性約束*修改列其一般格式為: ALTER TABLE <表名>ADD <新列名><數(shù)據(jù)類(lèi)型>完整性約束DROP <完整性約束名>MODIFY 列名數(shù)據(jù)類(lèi)型;舉例: drop table student; create table student ( dept_code char(8) primary

47、 key, name char(20) unique, sex char(1) );/增加新列alter table student add age integer not null;alter table student add age integer not null unique;/刪除約束alter table student drop unique(name);/修改已經(jīng)存在的列alter table student modify sex char(2) not null;/char(1)改為char(2),并加上約束7) 刪除基本表(一般用得不多)drop table<表名&

48、gt;;drop table student;3.2.2建立與刪除索引(11_29)1、 索引的作用*建立索引是加快表查詢(xún)速度的有效手段。*原理示例圖:student(no,name,sex,age)*索引中記錄索引項(xiàng)與其記錄實(shí)際存放地址。*在查找某一記錄(004號(hào)呂紅)時(shí),DBMS先通過(guò)索引文件找到相應(yīng)記錄的物理地址,通過(guò)物理地址找到記錄內(nèi)容。*實(shí)際的索引結(jié)構(gòu)往往采用B+樹(shù)結(jié)構(gòu)。*索引依附于基本表*索引的使用,通過(guò)查詢(xún)過(guò)程說(shuō)明 select no,name,age from student where no=006;2、 索引的類(lèi)別:唯一索引、非唯一索引、復(fù)合、和聚簇索引。1) 唯一索引、非

49、唯一索引*唯一索引:每個(gè)索引值只對(duì)應(yīng)唯一的數(shù)據(jù)記錄*非唯一索引:索引列存在重復(fù)值的索引(在建索引語(yǔ)句中不加UNIQUE,缺省情況)例CREATE UNIQUE INDEX in_name ON student(name);*SQL SERVER在帶PRIMARY KEY約束或UNIQUE約束時(shí)自動(dòng)創(chuàng)建一個(gè)唯一索引2) 復(fù)合索引:在幾個(gè)字段上建立索引CREATE UNIQUE INDEX in_snocno ON sc(sno ASC,cno DESC);/升序,降序3) 聚簇索引:索引項(xiàng)的順序與表中記錄的物理順序一致的索引組織。*顯然,一個(gè)基本表上最多只能建立一個(gè)聚簇索引。(因物理順序只有一個(gè)

50、)*經(jīng)常更新的列不宜建立聚簇索引:導(dǎo)致記錄物理順序的變更,代價(jià)較大。3、 建立索引的一般格式CREATE UNIQUECLUSTERINDEX <索引名> ON <表名>(<列名><次序>,<列名><次序>);4、 索引一經(jīng)建立,就由系統(tǒng)使用和維護(hù),不需要用戶(hù)干預(yù)。如:Select from student where sno=98001;系統(tǒng)自動(dòng)根據(jù)索引優(yōu)化查找。5、 是否需要?jiǎng)?chuàng)建索引的考慮索引是有用的(可以加速數(shù)據(jù)訪問(wèn)速度。如沒(méi)有索引,在查找一個(gè)主題的信息時(shí),必須一次一頁(yè)地掃描整個(gè)文本),但索引要耗用磁盤(pán)空間,并引起系

51、統(tǒng)開(kāi)銷(xiāo)和增加維護(hù)的費(fèi)用。在使用索引時(shí)要考慮以下事實(shí)和要點(diǎn):*修改一個(gè)索引列上的數(shù)據(jù)時(shí),要更新相關(guān)的索引*維護(hù)索引需要時(shí)間和資源,所以不要?jiǎng)?chuàng)建不經(jīng)常使用的索引*小表上的索引沒(méi)有多少好處。6、 刪除索引如果數(shù)據(jù)增加、刪除、修改頻繁,系統(tǒng)需要花費(fèi)許多時(shí)間來(lái)維護(hù)索引,這時(shí)需要?jiǎng)h除一些不必要的索引。DROP INDEX <索引名>;34 數(shù)據(jù)更新部分功能舉例1、 表中插數(shù)據(jù)1) 插入整個(gè)元組:insert into b values('97006','mm','f',21,'信電系');insert into b values(

52、'97007','nn','m',22,'信電系');2) 插入部分屬性insert into b(no,name) values('97006','mm','f',21,'信電系');/ 出錯(cuò)(與前面元組主碼同)3) 插入操作時(shí)的完整性檢查(1)主鍵約束:不能插入主鍵屬性值相同的元組,主鍵屬性值不能為空。 insert into b values('97006','mm','f',21,'信電系');

53、insert into b values('97007','nn','m',22,'信電系'); insert into b(no,dept) values('97006','信電系');/因?yàn)橹麈I值相同不能插入 insert into b(name,sex,age,dept) values('nn','f',22,'信電系');/主鍵屬性為空,不能插入。(2)外鍵約束student(no, name, sex , age , dept) /外碼 de

54、ptdepartment(dept, dept_name, location) /主碼*被引用關(guān)系元組 insert into department values('1','信電系','教二樓'); insert into department values('2','化工系','教二樓'); select * from department;*外鍵取值 insert into s. values('97001','aa','f',21,null);/空值 insert into s. values('97002','aa','f',21,'1');/被引用關(guān)系元組主屬性值 insert into s. values('97003'

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論