《數(shù)據(jù)庫》教案_第1頁
《數(shù)據(jù)庫》教案_第2頁
《數(shù)據(jù)庫》教案_第3頁
《數(shù)據(jù)庫》教案_第4頁
《數(shù)據(jù)庫》教案_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、【精品文檔】如有侵權(quán),請(qǐng)聯(lián)系網(wǎng)站刪除,僅供學(xué)習(xí)與交流數(shù)據(jù)庫教案.精品文檔.數(shù)據(jù)庫系統(tǒng)概論教案及講義授課老師:XXX第一章 緒 論教學(xué)目標(biāo):1、結(jié)合具體的例子講述數(shù)據(jù)庫的設(shè)計(jì)步驟,通過此例子讓同學(xué)們對(duì)本教材各章節(jié)所要學(xué)習(xí)的內(nèi)容有一個(gè)初步的整體了解;2、對(duì)照文件系統(tǒng)的數(shù)據(jù)管理過程,講述數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)管理過程,讓同學(xué)們對(duì)數(shù)據(jù)庫管理系統(tǒng)的功能、組成、工作過程有個(gè)初步了解,并對(duì)數(shù)據(jù)庫的數(shù)據(jù)模型(主要是關(guān)系模型)有比較深入的理解。3、課外布置學(xué)生完成一個(gè)小的數(shù)據(jù)庫設(shè)計(jì)課程設(shè)計(jì)題目,要求學(xué)生分組尋找題目并完成設(shè)計(jì)過程。教學(xué)重點(diǎn):1、舉簡(jiǎn)單例子說明數(shù)據(jù)庫設(shè)計(jì)過程。2、數(shù)據(jù)庫技術(shù)的產(chǎn)生發(fā)展過程的文件系統(tǒng)階

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

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

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

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

6、的技術(shù)的發(fā)展(*數(shù)據(jù)庫技術(shù)產(chǎn)生:是應(yīng)數(shù)據(jù)管理管理任務(wù)的需要而產(chǎn)生的。)*數(shù)據(jù)管理:是指如何對(duì)數(shù)據(jù)進(jìn)行分類、組織、編碼、存儲(chǔ)、檢索和維護(hù),是數(shù)據(jù)處理的中心問題。*隨著計(jì)算機(jī)硬件和軟件的發(fā)展,數(shù)據(jù)管理技術(shù)經(jīng)歷了三個(gè)發(fā)展階段:人工管理、文件系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)。1、 人工管理階段的特點(diǎn):(背景:硬件,沒有直接存取的存儲(chǔ)設(shè)備;軟件,沒有操作系統(tǒng)及管理數(shù)據(jù)的軟件;數(shù)據(jù)處理方式為批處理)1) 數(shù)據(jù)不保存2) 數(shù)據(jù)需要由應(yīng)用程序自己管理,沒有相應(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īng)用程序中只考慮

7、邏輯結(jié)構(gòu))3) 數(shù)據(jù)不共享:數(shù)據(jù)面向應(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)有了專門的數(shù)據(jù)管理軟件,一般成為文件系統(tǒng);數(shù)據(jù)處理方式,不僅有了批處理而且能夠聯(lián)機(jī)實(shí)時(shí)處理)1) 數(shù)據(jù)可以長期保存。2) 由專門的軟件即文件系統(tǒng)進(jìn)行數(shù)據(jù)管理。應(yīng)用程序按名存取數(shù)據(jù),大大節(jié)省了程序的編寫與維護(hù)工作量。3) 數(shù)據(jù)共享性差。一個(gè)文件基本上對(duì)應(yīng)于一個(gè)應(yīng)用程序。不同應(yīng)用程序具有部分相同數(shù)據(jù)時(shí)也必許建立各自的文件,不能

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

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

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

11、得到錯(cuò)誤的結(jié)構(gòu),并使數(shù)據(jù)的完整性遭到破壞,因此對(duì)多用戶并發(fā)操作加以控制和協(xié)調(diào)。4) 數(shù)據(jù)庫恢復(fù):硬件、軟件、操作員失誤、故意破壞等造成的故障,DBMS必須將數(shù)據(jù)庫從錯(cuò)誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài)。12 數(shù)據(jù)模型121數(shù)據(jù)模型的作用、組成要素、概念1、數(shù)據(jù)模型的作用:通俗地說是計(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ì)象類型的集合。一類對(duì)象與數(shù)據(jù)類型、內(nèi)容、性質(zhì)有關(guān),另一類對(duì)象與數(shù)據(jù)間的聯(lián)系有關(guān)。*例 現(xiàn)實(shí)世界的

12、“學(xué)生選修課程處理”涉及的信息,抽象、表示為計(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)、姓名、性別、系別、年齡、籍貫)(加屬性類型說明)課程(課程號(hào)、課程名、學(xué)分)(加屬性類型說明)選課(學(xué)號(hào)、課程號(hào)、成績)(加屬性類型說明)*數(shù)據(jù)結(jié)構(gòu)在數(shù)據(jù)模型中的地位:數(shù)據(jù)模型中的數(shù)據(jù)結(jié)構(gòu)是刻畫一個(gè)數(shù)據(jù)模型性質(zhì)的最重要方面,人們通常按數(shù)據(jù)結(jié)構(gòu)類型來命名數(shù)據(jù)模型。數(shù)據(jù)庫中的數(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)

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

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

15、。5、任何一種數(shù)據(jù)庫管理系統(tǒng)(DBMS)都基于某種數(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ī)器世界信息的處理過程:1) 現(xiàn)時(shí)世界到信息世界(概念模型):*常用ER圖來描述現(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)姓名性別系別年齡籍貫970501王五男機(jī)械19北京970606李六男化工18天津971060張三男信電20浙江2) 病人:病歷號(hào)、病人姓名、年齡、性別病歷號(hào)

16、病人姓名年齡性別100001李勇60男100010劉醇50男111001許春30男1) 實(shí)體:客觀存在并可相互區(qū)別的事物。可以是具體的人、事、物,也可以是抽象的概念或聯(lián)系(如學(xué)生的一次選課)。2) 屬性:實(shí)體所具有的某一特性。一個(gè)實(shí)體由若干個(gè)屬性來刻畫。3) 碼:唯一標(biāo)識(shí)實(shí)體的屬性集。4) 域:屬性的取值范圍稱為該屬性的域。5) 實(shí)體型:用實(shí)體名及其屬性名集合來抽象和刻劃同類實(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)系可以分三類:*一對(duì)一聯(lián)系(1:1)

17、,班級(jí)與班長:一個(gè)班級(jí)只有一個(gè)班長,一個(gè)班長只在一個(gè)班級(jí)任職。*一對(duì)多聯(lián)系(1:n),班級(jí)與學(xué)生:一個(gè)班級(jí)有若干名學(xué)生,每個(gè)學(xué)生只在一個(gè)班級(jí)中學(xué)習(xí)。* 多對(duì)多聯(lián)系(m:n)學(xué)生與課程:一個(gè)學(xué)生選修了多門課程,一門課程為多個(gè)學(xué)生選修*同一實(shí)體集內(nèi)的各實(shí)體之間也可以存在三類聯(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)系圖成績概念模型:實(shí)體、屬性、聯(lián)系合一圖(涉及實(shí)體及屬性較多時(shí),為清晰起見兩圖分開)課程選課課程學(xué)生 1 m n講授 m n參考書教師班級(jí) 1組成 學(xué)生人員 n學(xué)生*同一實(shí)體型的聯(lián)系

18、學(xué)生 1 n領(lǐng)導(dǎo)*總體實(shí)體及其聯(lián)系圖班級(jí)成績學(xué)生人員組成選課學(xué)生課程 m n領(lǐng)導(dǎo) 1 1 n講授 m n教師參考書*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)系)來表示的 (與概念模型的實(shí)體型及聯(lián)系對(duì)應(yīng))學(xué)生()課程()學(xué)生選課()*關(guān)系模型要求關(guān)系必須是規(guī)范化的,即關(guān)系模式必須滿足一定的規(guī)范條件。最基本

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

20、是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式。數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu):數(shù)據(jù)庫系統(tǒng)是由外模式、模式、內(nèi)模式三級(jí)構(gòu)成第二章 關(guān)系數(shù)據(jù)庫教學(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ù)庫。2、關(guān)系完整性:實(shí)體、參照、用戶自定義。3、關(guān)系操作:關(guān)系代數(shù),重點(diǎn)是投影、選擇、連接、除法操作。教學(xué)難點(diǎn):關(guān)系數(shù)據(jù)庫的型和值;關(guān)系代數(shù)的除法運(yùn)算。教學(xué)過程:本章分3次講述,每次2學(xué)時(shí),每次主要講述以下內(nèi)容介紹如下:第一次:介紹數(shù)據(jù)結(jié)構(gòu)(笛卡兒

21、積、關(guān)系、關(guān)系模式、關(guān)系數(shù)據(jù)庫)。關(guān)系完整性(實(shí)體、參照、用戶自定義)(實(shí)際教學(xué)過程中將第三章的表定義及對(duì)數(shù)據(jù)庫的插入操作部分提前到這里,相當(dāng)于第三章有2學(xué)時(shí)多調(diào)整到了這里)。第二次:介紹舉例關(guān)系操作的語義(關(guān)系代數(shù),重點(diǎn)是投影、選擇、連接、除法操作),并介紹相應(yīng)的SQL語句表達(dá)式(實(shí)際教學(xué)過程相當(dāng)于將第三章的相關(guān)內(nèi)容調(diào)整到了此處介紹)。關(guān)系操作舉例,關(guān)系數(shù)據(jù)庫管理系統(tǒng)(重點(diǎn)講述各類系統(tǒng)支持模型的程度)。21 關(guān)系數(shù)據(jù)庫概述1、 關(guān)系數(shù)據(jù)庫系統(tǒng):支持關(guān)系模型的數(shù)據(jù)庫系統(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á)豐富的

22、語義,描述現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的聯(lián)系(例)4、 關(guān)系操作*采用集合操作:操作對(duì)象與操作結(jié)果為集合,*常用的操作*查詢:選擇、投影、連接、除、并、交、差等;更新:增、刪、改*查詢的表達(dá)能力是關(guān)系操作中的最主要部分*關(guān)系模型中關(guān)系操作能力的早期抽象表示(即抽象查詢語言,領(lǐng)會(huì)語言的含義):1) 關(guān)系代數(shù)語言:用代數(shù)方式表示,即用關(guān)系的運(yùn)算來表達(dá)查詢要求的方式。2) 關(guān)系演算語言:用邏輯方式表示,即用謂詞來表達(dá)查詢要求的方式。元組關(guān)系演算:謂詞變?cè)幕緦?duì)象是元組變量。域關(guān)系演算:謂詞變?cè)幕緦?duì)象為域變量。3) 關(guān)系代數(shù)、關(guān)系演算(元組關(guān)系演算、域關(guān)系演算)三種語言在表達(dá)能力上是等價(jià)的。*早期抽

23、象查詢語言(關(guān)系代數(shù)、關(guān)系演算語言)的作用作為評(píng)估實(shí)際系統(tǒng)中查詢語言能力的標(biāo)準(zhǔn)。與具體DBMS實(shí)現(xiàn)的實(shí)際語言不完全一樣(提供許多附加功能,如集函數(shù)、關(guān)系賦值、算術(shù)運(yùn)算等)*關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言(SQLstructured query language結(jié)構(gòu)化查詢語言)是集數(shù)據(jù)查詢、DDL數(shù)據(jù)定義、DML數(shù)據(jù)操縱、DCL數(shù)據(jù)控制于一體的語言。具有關(guān)系代數(shù)與關(guān)系演算雙重特點(diǎn)的語言。5、 完整性約束*允許定義三類完整性:實(shí)體完整性、參照完整性、用戶自定義完整性。*關(guān)系系統(tǒng)自動(dòng)支持的完整性:實(shí)體完整性、參照完整性。22關(guān)系數(shù)據(jù)結(jié)構(gòu)(關(guān)系、關(guān)系模式、關(guān)系數(shù)據(jù)庫)1、 關(guān)系例1:有表結(jié)構(gòu)(關(guān)系模式):學(xué)生(

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

25、1D2. Dn=(d1,d2,dn)diDi,i=1,2,n其中每一個(gè)元素(d1,d2,dn)叫作一個(gè)n元組,或簡(jiǎn)稱為元組。元素中的每一個(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è)元組,則稱該屬性組為侯選碼*主碼:若一個(gè)關(guān)系中有

26、多個(gè)侯選碼,則選其中一個(gè)作為主碼。*主屬性:主碼的諸屬性*非碼屬性:不包含在任何侯選碼中的屬性*全碼:侯選碼為關(guān)系的所有屬性組*關(guān)系的三種類型:基本表(實(shí)際存在表)、查詢表(查詢結(jié)果)、視圖表(虛表由基本表與其他試圖表導(dǎo)出)*基本關(guān)系具有6條性質(zhì):(見書P40)2、 關(guān)系模式*定義:關(guān)系的描述稱為關(guān)系模式。它可形式化地表示為R(U,D,DOM,F(xiàn))。R為關(guān)系名U組成該關(guān)系的屬性名集合D屬性組所來自的域DOM屬性向域的映象集合F屬性間數(shù)據(jù)的依賴關(guān)系集合(第四章專門討論)*關(guān)系模式通常簡(jiǎn)記為R(U)或R(A1,A2,An),域名及屬性向域的映象常常直接說明為屬性的類型、長度*型與值:模式是型,關(guān)系

27、(表)是模式的值3、 關(guān)系數(shù)據(jù)庫含義:在一個(gè)給定的現(xiàn)實(shí)世界的領(lǐng)域中,相應(yīng)于所有實(shí)體及實(shí)體之間的聯(lián)系的關(guān)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫。關(guān)系數(shù)據(jù)庫的型和值:型即關(guān)系數(shù)據(jù)庫模式,是對(duì)關(guān)系數(shù)據(jù)庫的描述,它包括若干域的定義以及在這些域上定義的若干關(guān)系模式。關(guān)系模式的值也稱為關(guān)系數(shù)據(jù)庫,是這些關(guān)系模式在某一時(shí)刻對(duì)應(yīng)的關(guān)系的集合。關(guān)系數(shù)據(jù)庫模式與關(guān)系數(shù)據(jù)庫通常稱為關(guān)系數(shù)據(jù)庫。23關(guān)系完整性1、 實(shí)體完整性要點(diǎn):主屬性不能取空值。現(xiàn)實(shí)世界的語義要求:一個(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)系之間存在著

28、引用關(guān)系:因?yàn)楝F(xiàn)實(shí)世界的實(shí)體之間存在某種聯(lián)系,而關(guān)系模型中實(shí)體及實(shí)體間的聯(lián)系都是用關(guān)系來描述的。*舉例: 要點(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、 用戶自定義完整性 *反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。 *通常有三類:非空約束(not null)、唯一約束(unique)、檢查約束(check)*24如何實(shí)現(xiàn)完整性約束規(guī)則(作問題處理)1、 在表中定義完整

29、性規(guī)則2、 在對(duì)表中的數(shù)據(jù)進(jìn)行更新操作時(shí),數(shù)據(jù)庫管理系統(tǒng)自動(dòng)的檢查完整性規(guī)則,將表中的數(shù)據(jù)約束在用戶期望的范圍中。*PB提供了一定的前端約束檢查功能*在前端定義約束規(guī)則(相當(dāng)check功能),在前端進(jìn)行合法性檢查。即在輸入數(shù)據(jù)時(shí)一定程度上過濾了不合法的數(shù)據(jù)。相同的檢查在數(shù)據(jù)庫表中可以不需要再定義。*在前端一已經(jīng)實(shí)現(xiàn)的完整性約束,在數(shù)據(jù)庫表中是否可以不需要再定義?回答否,因?yàn)?,如不通過應(yīng)用程序直接通過工具操作數(shù)據(jù)庫表時(shí),就沒有了相應(yīng)的完整性檢查。24 關(guān)系代數(shù)1、 何為關(guān)系代數(shù):是抽象的查詢語言,它用關(guān)系運(yùn)算來表達(dá)查詢。主要研究關(guān)系(表)運(yùn)算,運(yùn)算對(duì)象是關(guān)系,運(yùn)算結(jié)果也是關(guān)系。2、 關(guān)系運(yùn)算分兩

30、類:1) 傳統(tǒng)的集合運(yùn)算:并、交、差、廣義笛卡爾積。運(yùn)算只涉及行,將關(guān)系看成是行(元組)的集合,。2) 專門的關(guān)系運(yùn)算:選擇、投影、連接、除。運(yùn)算既涉及行也涉及列。3、 傳統(tǒng)的集合運(yùn)算(著重掌握語義)設(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è)域(同類型數(shù)據(jù))2) 差()R S= t | tR tS 差由屬于R并不屬于S的元組組成。 關(guān)系R、S要求具有相同的目n(都具有n個(gè)屬性),相應(yīng)的屬性取自同一個(gè)域(

31、同類型數(shù)據(jù))3) 交()R S= t | tR tS 由屬于R且屬于S的元組組成。 關(guān)系R、S要求具有相同的目n(都具有n個(gè)屬性),相應(yīng)的屬性取自同一個(gè)域(同類型數(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ù)庫操作系統(tǒng)R S學(xué)號(hào)姓名課程1A數(shù)據(jù)庫1A操作系統(tǒng)2B數(shù)據(jù)庫2B操作系統(tǒng)(廣義笛卡兒積與笛卡兒積的比較:)4、 專門關(guān)系運(yùn)算(運(yùn)算結(jié)果著重掌握語義)1) 選擇F(R)=t| tR F(t)=“T” 選擇關(guān)系R中滿足邏輯表達(dá)式F為真的元組。P48 例1、查詢信

32、息系的全體學(xué)生 例2、查詢年齡小于20的元組 例1: sdept='is'(student) 例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)系中有那些系表見P48 例3:sname,sdept(student) 例4:sdept(student)注:投影后的重復(fù)行應(yīng)該消除 3) 連接R S=trts | trR tsS trA tsB AB從廣義笛卡爾積R S中選擇

33、滿足比較運(yùn)算表達(dá)式AB的元組,A、B分別為R、S上度數(shù)相等且可比的屬性組。例(P50):R S c<d 等值連接:上述連接的特例,取=自然連接:書寫格式在連接符下不加比較表達(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上投影的集合。見書P51 *象集:關(guān)系R(X,Z),X和Z為屬性組。我們定義,當(dāng)tX=x時(shí),x在R中的象集為:Zx=tZ| tR ,tX=x表示R中屬性組

34、X上值為x的諸元素在Z 上分量的集合。*R÷S:R(X,Y),S(Y,Z),其中X,Y,Z為屬性組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ù)庫中有表:(理解含義) Student(Sno學(xué)號(hào),sname姓名,

35、sex性別,age年齡,sdept所在系), Course(Cno,Cname,Cpno,Ccredit), SC(Sno,Cno,Grade)例9:查詢至少選修了一門其直接先行課為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:查詢選修了全部課程的學(xué)生號(hào)碼和姓名1、 所有課程的課程號(hào)P1:cno(Course )2、 選修了所有課程的學(xué)生號(hào)P2:Sno,Cno(SC)÷

36、P13、 學(xué)生姓名、學(xué)生號(hào):P2Sno,Sname(Student)2.6關(guān)系數(shù)據(jù)庫管理系統(tǒng)(簡(jiǎn)稱關(guān)系系統(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、各類關(guān)系系統(tǒng)的分類與定義: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)系模型的所有特征。到目前為止尚沒有一

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

38、據(jù)庫一致性維護(hù)問題。3.SQL查詢(單表查詢、連接查詢、嵌套查詢、集合查詢)相關(guān)關(guān)系代數(shù)表達(dá)。4.嵌入式SQL。教學(xué)難點(diǎn):涉及多表的連接查詢。教學(xué)過程:本章分6次講述,每次2學(xué)時(shí),每次主要講述以下內(nèi)容介紹如下:第一次:介紹數(shù)據(jù)結(jié)構(gòu)及完整性約束條件定義,數(shù)據(jù)更新操作與完整性維護(hù)問題。索引及其作用。單表查詢(若干列、若干元組、對(duì)查詢結(jié)果排序、使用集函數(shù)、對(duì)查詢結(jié)果分組)。第二次:連接查詢(等值與非等值連接查詢、自身連接查詢、外連接查詢、復(fù)合條件連接)。第三次:嵌套查詢(帶IN謂詞查詢、帶比較運(yùn)算符查詢)。嵌套查詢(帶ANY或ALL謂詞查詢、帶EXISTS謂詞子查詢),集合查詢。第四次:數(shù)據(jù)更新,更

39、新操作與數(shù)據(jù)庫的一致性問題(通過數(shù)據(jù)庫管理系統(tǒng)的事務(wù)功能解決,以及程序員如何編程解決)。第五次:視圖。31 標(biāo)準(zhǔn)SQL語言核心功能的9個(gè)動(dòng)詞SQL功能動(dòng)詞數(shù)據(jù)定義CREATE,DROP,ALTER數(shù)據(jù)查詢SELECT數(shù)據(jù)操縱INSERT,UPDATE,DELETE數(shù)據(jù)控制GRANT,REVOTE各個(gè)DBMS產(chǎn)品在實(shí)現(xiàn)標(biāo)準(zhǔn)SQL語言時(shí)各有差別,一般都作了某些擴(kuò)充32數(shù)據(jù)定義數(shù)據(jù)定義的基本對(duì)象為表、索引、視圖(導(dǎo)出表)操作對(duì)象操作方式創(chuàng)建刪除修改表CREATE TABLEDROP TABLEALTER TABLE索引CREATE INDEXDROP INDEX視圖CREATE VIEWDROP V

40、IEW*基本表獨(dú)立存在,不同的RDBMS產(chǎn)品,表的物理存儲(chǔ)會(huì)有不同的方式:若干基本表存儲(chǔ)于一個(gè)文件;一個(gè)表存儲(chǔ)與一個(gè)文件。(小型DBMS如DBASE,一個(gè)基本表對(duì)應(yīng)一個(gè)存儲(chǔ)文件)*索引依附于基本表。其作用是為了加快數(shù)據(jù)的訪問速度。兩類:聚簇索引與非聚簇索引*視圖為導(dǎo)出表(基于基本表的虛表),只存儲(chǔ)視圖定義,不存放視圖對(duì)應(yīng)的數(shù)據(jù),數(shù)據(jù)存放在導(dǎo)出視圖的基本表中。(對(duì)視圖操作最終通過視圖的定義變?yōu)閷?duì)基本表操作)*SQL數(shù)據(jù)定義語句3.2.1 定義、刪除、修改基本表4、 舉例例1:從以下3方面理清定義表的條件a 名、屬性: student(no,name,sex,age,dept)b屬性的域(即屬性的

41、數(shù)據(jù)類型)c 約束1) 主鍵(no)2) 參照(無)3) 自定義(由實(shí)際需要定)name( unique not null)sex(not null)age(10<age<150)dept(無約束條件)定義的實(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í)

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

43、 支持以下數(shù)據(jù)類型二進(jìn)制 binary(n) varbinary(n)字符型 char(n),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í)上,否則既可以

44、定義在列級(jí)也可以定義在表級(jí)用SC表說明create table student_course( 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ù)庫管理系統(tǒng)產(chǎn)品上某些地方有所不同,需要查相關(guān)產(chǎn)品的資料。(5) 外鍵約束student(no, name, sex , age , dept) /外碼 deptdepartme

45、nt(dept, dept_name, location) /主碼create table 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

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

47、ble student dept_code char(8) primary 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),并加上約

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

49、引的類別:唯一索引、非唯一索引、復(fù)合、和聚簇索引。1) 唯一索引、非唯一索引*唯一索引:每個(gè)索引值只對(duì)應(yīng)唯一的數(shù)據(jù)記錄*非唯一索引:索引列存在重復(fù)值的索引(在建索引語句中不加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)的順序與表中記錄的物理順序一致的索引組織

50、。*顯然,一個(gè)基本表上最多只能建立一個(gè)聚簇索引。(因物理順序只有一個(gè))*經(jīng)常更新的列不宜建立聚簇索引:導(dǎo)致記錄物理順序的變更,代價(jià)較大。3、 建立索引的一般格式CREATE UNIQUECLUSTERINDEX <索引名> ON <表名>(<列名><次序>,<列名><次序>);4、 索引一經(jīng)建立,就由系統(tǒng)使用和維護(hù),不需要用戶干預(yù)。如:Select from student where sno=98001;系統(tǒng)自動(dòng)根據(jù)索引優(yōu)化查找。5、 是否需要?jiǎng)?chuàng)建索引的考慮索引是有用的(可以加速數(shù)據(jù)訪問速度。如沒有索引,在查找一個(gè)主題的

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

52、39;信電系');insert into b values('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

53、9;,'f',21,'信電系'); 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(

54、no, name, sex , age , dept) /外碼 deptdepartment(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','aa','f',21,'2'); insert into s. values('97004','aa'

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論