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

下載本文檔

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

文檔簡介

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

2、據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu);數(shù)據(jù)庫的二級映象功能與數(shù)據(jù)獨立性。教學過程:本章分3次講述,每次2課時,主要講述以下內(nèi)容介紹如下:1、舉簡單例子說明需求分析及表達、概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計過程。第六章的不少內(nèi)容前到此處講述(實際教學過程中本章的學時數(shù)增加2學時左右)。對照文件系統(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ù)(data)* 高級語言的數(shù)據(jù),如PASCAL語言中各種類型數(shù)據(jù)(常量、變量):integ

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

4、tedropalter)、數(shù)據(jù)操縱(insertupdatedelete)、數(shù)據(jù)控制(grantrevoke)3)從定義上數(shù)據(jù)庫與文件比較:對照數(shù)據(jù)庫說明:長期存儲在計算機內(nèi)、有組織的(組織簡單)、可共享(共享性差)的數(shù)據(jù)集合。冗余度大,數(shù)據(jù)獨立性低。3、數(shù)據(jù)庫管理系統(tǒng)(databasemanagementsystem簡稱DBMS)(P7)*定義(功能解釋):DBMS在數(shù)據(jù)庫建立、運用和維護時對數(shù)據(jù)庫進行統(tǒng)一控制,以保證數(shù)據(jù)的完整性、安全性,并在多用戶同時使用數(shù)據(jù)庫時進行并發(fā)控制,在發(fā)生故障后對系統(tǒng)進行恢復。*對照文件系統(tǒng):提供的操作簡單,主要包括:建立文件、刪除文件、讀元素、寫元素、打開文件

5、、關(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):*是指在計算機系統(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)容、意義及學習方法*主要內(nèi)容關(guān)系數(shù)據(jù)庫及SQL、關(guān)系數(shù)據(jù)庫設(shè)計(設(shè)計理論、具體設(shè)計)、數(shù)據(jù)保護。*意義:非常實用*學習方法:大量的上機實踐是學好本課程的先決條件。1.1.2數(shù)據(jù)管理的技術(shù)的發(fā)展(*數(shù)據(jù)庫技術(shù)產(chǎn)生:是應(yīng)數(shù)據(jù)管理管理任務(wù)的需要而產(chǎn)生的。)*數(shù)據(jù)管理:是指如何對數(shù)據(jù)進行分類、組織、編碼、存儲、

6、檢索和維護,是數(shù)據(jù)處理的中心問題。*隨著計算機硬件和軟件的發(fā)展,數(shù)據(jù)管理技術(shù)經(jīng)歷了三個發(fā)展階段:人工管理、文件系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)。1、人工管理階段的特點:(背景:硬件,沒有直接存取的存儲設(shè)備;軟件,沒有操作系統(tǒng)及管理數(shù)據(jù)的軟件;數(shù)據(jù)處理方式為批處理)1)數(shù)據(jù)不保存2)數(shù)據(jù)需要由應(yīng)用程序自己管理,沒有相應(yīng)的軟件負責數(shù)據(jù)的管理工作。應(yīng)用程序中不僅要規(guī)定數(shù)據(jù)的邏輯結(jié)構(gòu),而且要設(shè)計物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)、存取方法、輸入方式等)。(PASCAL語言文件處理:應(yīng)用程序中只考慮邏輯結(jié)構(gòu))3)數(shù)據(jù)不共享:數(shù)據(jù)面向應(yīng)用,一組數(shù)據(jù)只能對應(yīng)一個程序。因此程序與程序之間有大量的冗余數(shù)據(jù)。4)數(shù)據(jù)不具有獨立性:數(shù)據(jù)的

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

8、間缺乏獨立性:一旦數(shù)據(jù)的邏輯結(jié)構(gòu)改變,必須修改應(yīng)用程序修改文件結(jié)構(gòu)定義。而應(yīng)用程序的改變(應(yīng)用程序改用不同的高級語言)也將引起文件數(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)。特點:1)數(shù)據(jù)結(jié)構(gòu)化,存取方式靈活數(shù)據(jù)庫系統(tǒng)實現(xiàn)了整體數(shù)據(jù)的結(jié)構(gòu)化:在描述數(shù)據(jù)時不僅要描述數(shù)據(jù)本身,還要描述數(shù)據(jù)之間的聯(lián)系。文件系統(tǒng)盡管其記錄內(nèi)部有某種結(jié)構(gòu),但記錄之間沒有聯(lián)系。2)數(shù)據(jù)共享性好,冗余度低數(shù)據(jù)庫系統(tǒng)從整體角度看待和描述數(shù)據(jù),數(shù)據(jù)不再面向某個應(yīng)用而是面向整個系統(tǒng)。這樣既可以大

9、大減少數(shù)據(jù)冗余,節(jié)約存儲空間,又能避免數(shù)據(jù)之間不相容與不一致性。3)數(shù)據(jù)獨立性高數(shù)據(jù)庫系統(tǒng)提供了兩方面的映象功能,從而使數(shù)據(jù)既具有物理獨立性又具有邏輯獨立性。數(shù)據(jù)與程序間的邏輯獨立性:數(shù)據(jù)的總體邏輯結(jié)構(gòu)與某類應(yīng)用所涉及的局部邏輯結(jié)構(gòu)之間的映象或轉(zhuǎn)換功能,保證了當數(shù)據(jù)的總體邏輯結(jié)構(gòu)改變時,通過對映象的相應(yīng)改變可以保持數(shù)據(jù)的局部邏輯結(jié)構(gòu)不變,由于應(yīng)用程序是依據(jù)數(shù)據(jù)的局部邏輯結(jié)構(gòu)編寫的,所以應(yīng)用程序不必修改。數(shù)據(jù)與程序間的物理獨立性:數(shù)據(jù)的存儲結(jié)構(gòu)與邏輯結(jié)構(gòu)之間的映象或轉(zhuǎn)換功能,保證了當數(shù)據(jù)的存儲結(jié)構(gòu)(或物理結(jié)構(gòu))改變時,通過對映象的相應(yīng)修改可以保持數(shù)據(jù)的邏輯結(jié)構(gòu)不變,從而應(yīng)用程序也不必修改。4)數(shù)

10、據(jù)由DBMS統(tǒng)一管理和控制*統(tǒng)一管理有結(jié)構(gòu)的數(shù)據(jù),使數(shù)據(jù)可以有靈活的使用方式。數(shù)據(jù)庫系統(tǒng)彈性大,易于擴充。*有以下幾方面的控制功能:1)數(shù)據(jù)的安全性:指保護數(shù)據(jù),防止不合法使用數(shù)據(jù)造成數(shù)據(jù)的泄密和破壞,使每個用戶只能按規(guī)定對某些數(shù)據(jù)以某種方式進行訪問和處理。2)數(shù)據(jù)的完整性:指數(shù)據(jù)的正確性、有效性和相容性。即將數(shù)據(jù)控制在有效的范圍內(nèi),或要求數(shù)據(jù)間滿足一定的關(guān)系。3)并發(fā)控制:當多個用戶的并發(fā)進程同時存取、修改數(shù)據(jù)時,可能會相互干擾而得到錯誤的結(jié)構(gòu),并使數(shù)據(jù)的完整性遭到破壞,因此對多用戶并發(fā)操作加以控制和協(xié)調(diào)。4)數(shù)據(jù)庫恢復:硬件、軟件、操作員失誤、故意破壞等造成的故障,DBMS必須將數(shù)據(jù)庫從錯

11、誤狀態(tài)恢復到某一已知的正確狀態(tài)。12據(jù)模型121數(shù)據(jù)模型的作用、組成要素、概念1、數(shù)據(jù)模型的作用:通俗地說是計算機世界對現(xiàn)實世界信息處理的模擬。具體為抽象、表示和處理現(xiàn)實世界的數(shù)據(jù)和信息。2、數(shù)據(jù)模型的組成要素:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、數(shù)據(jù)的約束條件。1)數(shù)據(jù)結(jié)構(gòu):*現(xiàn)實世界的信息抽象、表示為計算機世界的數(shù)據(jù)結(jié)構(gòu)。*數(shù)據(jù)結(jié)構(gòu):為所研究對象類型的集合。一類對象與數(shù)據(jù)類型、內(nèi)容、性質(zhì)有關(guān),另一類對象與數(shù)據(jù)間的聯(lián)系有關(guān)。*例現(xiàn)實世界的“學生選修課程處理”涉及的信息,抽象、表示為計算機世界的數(shù)據(jù)結(jié)構(gòu)*涉及的對象有與數(shù)據(jù)本身有關(guān)對象:學生、課程與數(shù)據(jù)間聯(lián)系有關(guān)對象:選課*數(shù)據(jù)結(jié)構(gòu)(關(guān)系數(shù)據(jù)模型為表,數(shù)據(jù)及其

12、聯(lián)系都用表表示)學生(學號、姓名、性別、系別、年齡、籍貫()加屬性類型說明)課程(課程號、課程名、學分)(加屬性類型說明)選課(學號、課程號、成績)(加屬性類型說明)*數(shù)據(jù)結(jié)構(gòu)在數(shù)據(jù)模型中的地位:數(shù)據(jù)模型中的數(shù)據(jù)結(jié)構(gòu)是刻畫一個數(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)實世界的信息對應(yīng)計算機世界的數(shù)據(jù)結(jié)構(gòu),現(xiàn)實世界信息的處理對應(yīng)計算機世界的數(shù)據(jù)操作。主要有檢索和更新(包括插入、刪除、修改)兩大操作。*數(shù)據(jù)操作:是指對數(shù)據(jù)庫中各種對象(型)的實例(值)允許執(zhí)行的操作集合,包括操作及有關(guān)操

13、作規(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)系模型完整性約束:實體完整性、參照完整性、用戶自定義完整性。3、文件管理系統(tǒng)支持一種簡單(或簡陋)的數(shù)據(jù)模型(通過文件系統(tǒng)支持的簡單數(shù)據(jù)模型來理解數(shù)據(jù)庫系統(tǒng)支持的數(shù)據(jù)模型,僅僅為了說明問題,通常不稱文件系統(tǒng)支持數(shù)據(jù)模型)*文件數(shù)據(jù)結(jié)構(gòu)及對文件這種數(shù)據(jù)結(jié)構(gòu)所進行操作集合是

14、文件管理系統(tǒng)所支持的一種簡單數(shù)據(jù)模型。*將現(xiàn)實世界的信息抽象為文件,對信息的處理通過文件操作實現(xiàn)。*例學生選課程文件結(jié)構(gòu)(學號、姓名、性別、系別、年齡、籍貫,課程號、課程名、學分,成績)*文件系統(tǒng)不提供完整性約束功能,由應(yīng)用程序?qū)崿F(xiàn)。數(shù)據(jù)結(jié)構(gòu)及對數(shù)據(jù)的操作與數(shù)據(jù)庫中的數(shù)據(jù)模型相比顯得落后。4、數(shù)據(jù)模型的概念任何一種數(shù)據(jù)模型都是嚴格定義的概念的集合。這些概念必須能夠精確地描述系統(tǒng)的靜態(tài)特性、動態(tài)特性和完整性約束條件。5、任何一種數(shù)據(jù)庫管理系統(tǒng)(DBMS)都基于某種數(shù)據(jù)模型(或支持某種數(shù)據(jù)模型)122現(xiàn)實世界的信息抽象表示為計算機世界某個數(shù)據(jù)模型數(shù)據(jù)結(jié)構(gòu)的橋梁概念模型現(xiàn)實世界的信息轉(zhuǎn)換到機器世界信

15、息的處理過程:1)現(xiàn)時世界到信息世界(概念模型):*常用ER圖來描述現(xiàn)實世界的概念模型2)信息世界轉(zhuǎn)換為機器世界(概念模型到數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu))2、信息世界的基本概念(結(jié)合關(guān)系模型考慮)例子:1)學生:學號、姓名、性別、系別、年齡、籍貫學號姓名性別系別年齡籍貫970501王五男機械19北京970606李六男化工18天津971060張三男信電20浙江2)病人:病歷號、病人姓名、年齡、性別病歷號病人姓名年齡性別100001李勇60男100010劉醇50男111001許春30男1)實體:客觀存在并可相互區(qū)別的事物??梢允蔷唧w的人、事、物,也可以是抽象的概念或聯(lián)系(如學生的一次選課)2)屬性:實體所具

16、有的某一特性。一個實體由若干個屬性來刻畫。3)碼:唯一標識實體的屬性集。4)域:屬性的取值范圍稱為該屬性的域。5)實體型:用實體名及其屬性名集合來抽象和刻劃同類實體。學生:學號、姓名、性別、系別、年齡、籍貫病人:病歷號、病人姓名、年齡、性別6)實體集:同型實體的集合7)聯(lián)系:實體內(nèi)部(實體的各屬性間)的聯(lián)系和實體之間的聯(lián)系。*兩實體型間的聯(lián)系可以分三類:*一對一聯(lián)系(1:1),班級與班長:一個班級只有一個班長,一個班長只在一個班級任職。*一對多聯(lián)系(1:n),班級與學生:一個班級有若干名學生,每個學生只在一個班級中學習。*多對多聯(lián)系(m:n)學生與課程:一個學生選修了多門課程,一門課程為多個學

17、生選修*同一實體集內(nèi)的各實體之間也可以存在三類聯(lián)系如學生實體集內(nèi)部:學生的領(lǐng)導被領(lǐng)導關(guān)系3、概念模型的表示方法(最常用R法)*ER圖提供了表示實體型、屬性和聯(lián)系的方法實體及其屬性圖實體及其聯(lián)系圖概念模型:實體、屬性、聯(lián)系合一圖(涉及實體及屬性較多時,為清晰起見兩*總體實體及其聯(lián)系圖*E123關(guān)系數(shù)據(jù)模型1、關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)*關(guān)系模式的數(shù)據(jù)結(jié)構(gòu)是一張二維表,它由行和列組成。*一些概念:關(guān)系:表元組:表行屬性:表列主碼:某個屬性組,它可以唯一確定一個元組。域:屬性的取值范圍分量:元組的一個屬性值關(guān)系模式:對關(guān)系的描述,一般表示為:關(guān)系名(屬性1、屬性2、屬性n)*關(guān)系模型中實體與實體間的聯(lián)系

18、都是用表(關(guān)系)來表示的(與概念模型的實體型及聯(lián)系對應(yīng))學生()課程()學生選課()*關(guān)系模型要求關(guān)系必須是規(guī)范化的,即關(guān)系模式必須滿足一定的規(guī)范條件。最基本一條為每個分量必須是不可分的數(shù)據(jù)項2、關(guān)系數(shù)據(jù)模型的操縱與完整性約束3、關(guān)系數(shù)據(jù)模型的存儲結(jié)構(gòu)*一個表對應(yīng)一個DBF文件(DBASE,F(xiàn)oxpro等)*多個表放在一個DB文件中(SYBASESQLAnywhere,SQLServer等)1.3數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)1、關(guān)系數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu)模式:也稱邏輯模式,是數(shù)據(jù)庫中全體邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。外模式:也稱子模式或用戶模式,他是數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶)看見

19、和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述內(nèi)模式:內(nèi)模式也稱存儲模式,它是數(shù)據(jù)物理結(jié)構(gòu)和存儲結(jié)構(gòu)的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式。數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu):數(shù)據(jù)庫系統(tǒng)是由外模式、模式、內(nèi)模式三級構(gòu)成第二章關(guān)系數(shù)據(jù)庫教學目標:介紹關(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ù)。教學重點:1、數(shù)據(jù)結(jié)構(gòu):笛卡兒積、關(guān)系、關(guān)系模式、關(guān)系數(shù)據(jù)庫。2、關(guān)系完整性:實體、參照、用戶自定義。3、關(guān)系操作:關(guān)系代數(shù),重點是投影、選擇、連接、除法操作。教學難點:關(guān)系數(shù)據(jù)庫的型和值;關(guān)系代數(shù)的除法運算。教學過程:本章分3次講述,每次

20、2學時,每次主要講述以下內(nèi)容介紹如下:第一次:介紹數(shù)據(jù)結(jié)構(gòu)(笛卡兒積、關(guān)系、關(guān)系模式、關(guān)系數(shù)據(jù)庫)。關(guān)系完整性(實體、參照、用戶自定義)(實際教學過程中將第三章的表定義及對數(shù)據(jù)庫的插入操作部分提前到這里,相當于第三章有2學時多調(diào)整到了這里)。第二次:介紹舉例關(guān)系操作的語義(關(guān)系代數(shù),重點是投影、選擇、連接、除法操作),并介紹相應(yīng)的SQL語句表達式(實際教學過程相當于將第三章的相關(guān)內(nèi)容調(diào)整到了此處介紹)。關(guān)系操作舉例,關(guān)系數(shù)據(jù)庫管理系統(tǒng)(重點講述各類系統(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)系操作集合、完整性約束條件

21、三部分。3、關(guān)系數(shù)據(jù)結(jié)構(gòu)表,特點:簡單的數(shù)據(jù)結(jié)構(gòu)表達豐富的語義,描述現(xiàn)實世界的實體以及實體間的聯(lián)系(例)4、關(guān)系操作*采用集合操作:操作對象與操作結(jié)果為集合,*常用的操作*查詢:選擇、投影、連接、除、并、交、差等;更新:增、刪、改*查詢的表達能力是關(guān)系操作中的最主要部分*關(guān)系模型中關(guān)系操作能力的早期抽象表示(即抽象查詢語言,領(lǐng)會語言的含義):1)關(guān)系代數(shù)語言:用代數(shù)方式表示,即用關(guān)系的運算來表達查詢要求的方式。2)關(guān)系演算語言:用邏輯方式表示,即用謂詞來表達查詢要求的方式。元組關(guān)系演算:謂詞變元的基本對象是元組變量。域關(guān)系演算:謂詞變元的基本對象為域變量。3)關(guān)系代數(shù)、關(guān)系演算(元組關(guān)系演算、

22、域關(guān)系演算)三種語言在表達能力上是等價的。*早期抽象查詢語言(關(guān)系代數(shù)、關(guān)系演算語言)的作用作為評估實際系統(tǒng)中查詢語言能力的標準。與具體DBMS實現(xiàn)的實際語言不完全一樣(提供許多附加功能,如集函數(shù)、關(guān)系賦值、算術(shù)運算等)*關(guān)系數(shù)據(jù)庫的標準語言(SQLstructuredquerylanguage結(jié)構(gòu)化查詢語言)是集數(shù)據(jù)查詢、DDL數(shù)據(jù)定義、DML數(shù)據(jù)操縱、DCL數(shù)據(jù)控制于一體的語言。具有關(guān)系代數(shù)與關(guān)系演算雙重特點的語言。5、完整性約束*允許定義三類完整性:實體完整性、參照完整性、用戶自定義完整性。*關(guān)系系統(tǒng)自動支持的完整性:實體完整性、參照完整性。22關(guān)系數(shù)據(jù)結(jié)構(gòu)(關(guān)系、關(guān)系模式、關(guān)系數(shù)據(jù)庫)

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

24、Dn的笛卡兒積為:D1XD2X.XDn=(d1,d2,.,dn)|diWDi,i=l,2,.,n其中每一個元素(dl,d2,.,dn)叫作一個n元組,或簡稱為元組。元素中的每一個值di叫作一個分量。*若Di(i=l,2,.,n)為有限集,其基數(shù)為mi(i=l,2,.,n),貝VD1XD2X.XDn的基數(shù)為ml*m2*.*mn3)關(guān)系*定義:D1XD2X.XDn的子集叫作在域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)系為笛卡兒積的子集,表行一一元組,表列一一屬性(1目關(guān)系有n個屬性)。*侯選碼:若關(guān)系中某一屬性組的值能

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

26、映象常常直接說明為屬性的類型、長度*型與值:模式是型,關(guān)系(表)是模式的值3、關(guān)系數(shù)據(jù)庫含義:在一個給定的現(xiàn)實世界的領(lǐng)域中,相應(yīng)于所有實體及實體之間的聯(lián)系的關(guān)系的集合構(gòu)成一個關(guān)系數(shù)據(jù)庫。關(guān)系數(shù)據(jù)庫的型和值:型即關(guān)系數(shù)據(jù)庫模式,是對關(guān)系數(shù)據(jù)庫的描述,它包括若干域的定義以及在這些域上定義的若干關(guān)系模式。關(guān)系模式的值也稱為關(guān)系數(shù)據(jù)庫,是這些關(guān)系模式在某一時刻對應(yīng)的關(guān)系的集合。關(guān)系數(shù)據(jù)庫模式與關(guān)系數(shù)據(jù)庫通常稱為關(guān)系數(shù)據(jù)庫。23關(guān)系完整性1、實體完整性要點:主屬性不能取空值?,F(xiàn)實世界的語義要求:一個基本關(guān)系通常對應(yīng)現(xiàn)實世界的一個實體集,現(xiàn)實世界的實體是可以區(qū)分的,即它們具有某種唯一標識,在關(guān)系模型中以主

27、碼作為唯一標識。2、參照完整性*關(guān)系與關(guān)系之間存在著引用關(guān)系:因為現(xiàn)實世界的實體之間存在某種聯(lián)系,而關(guān)系模型中實體及實體間的聯(lián)系都是用關(guān)系來描述的。*舉例:*要點:*外碼基本關(guān)系R的非碼屬性(組)F與基本關(guān)系S的主碼Ks相對應(yīng),則屬性(組)F為R的外碼。*參照關(guān)系一一R*被參照關(guān)系一一S*參照完整性規(guī)則基本關(guān)系R的外碼F與基本關(guān)系S的主碼Ks相對應(yīng),則R上的每個元組在F上的取值要求:或者取空值;或者等于S中的某個元組的主碼值。3、用戶自定義完整性*反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。*通常有三類:非空約束(notnull)、唯一約束(unique)、檢查約束(check)*24如何

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

29、關(guān)系,運算結(jié)果也是關(guān)系。2、關(guān)系運算分兩類:1)傳統(tǒng)的集合運算:并、交、差、廣義笛卡爾積。運算只涉及行,將關(guān)系看成是行(元組)的集合,。2)專門的關(guān)系運算:選擇、投影、連接、除。運算既涉及行也涉及列。3、傳統(tǒng)的集合運算(著重掌握語義)設(shè)關(guān)系R、SRABa1b1a1b2ABa1b2a2b21)并(U)RUS=tItWRVt£S并由屬于R或?qū)儆赟的元組組成。兩集合元組并在一起,去掉重復元組。關(guān)系R、S要求具有相同的目n(都具有n個屬性),相應(yīng)的屬性取自同一個域(同類型數(shù)據(jù))2)差()RS=tIt£RA-teS差由屬于R并不屬于S的元組組成。關(guān)系R、S要求具有相同的目n(都具有n

30、個屬性),相應(yīng)的屬性取自同一個域(同類型數(shù)據(jù))3)交(n)RnS=tIteRAtes由屬于R且屬于S的元組組成。關(guān)系R、S要求具有相同的目n(都具有n個屬性),相應(yīng)的屬性取自同一個域(同類型數(shù)據(jù))4)廣義笛卡爾積RXS=trtsItreRAtseS*關(guān)系R、S分別為m、n目k1、k2個元組,結(jié)果為m+n目,元組個數(shù)為k1*k2個。例:R學號姓名1A2BS課程數(shù)據(jù)庫操作系統(tǒng)RXS學號姓名課程1A數(shù)據(jù)庫1A操作系統(tǒng)2B數(shù)據(jù)庫2B操作系統(tǒng)廣義笛卡兒積與笛卡兒積的比較:)4、專門關(guān)系運算(運算結(jié)果著重掌握語義)1) 選擇of(R)=t|tWRAF(t)=“T”選擇關(guān)系R中滿足邏輯表達式F為真的元組。P

31、48例1、查詢信息系的全體學生例2、查詢年齡小于20的元組例1:o,(student)例2:o(student)sdept='is'sage<20邏輯表達式F的基本形式為:X19Y1©X29Y2e比較運算符,©邏輯運算符AV,Xi、Yi屬性名或常量名或簡單函數(shù)。2) 投影nA(R)=tA|t£RA為R中的屬性列例3:學生關(guān)系在姓名和系兩個屬性上的投影。例4:在學生關(guān)系中有那些系表見P48例3:nsname,sdept(stUdent)例dJept(student)注:投影后的重復行應(yīng)該消除3)連接bRS=trtsItrGRAtsSAtrA9t

32、sBA9B從廣義笛卡爾積RXS中選擇滿足比較運算表達式A9B的元組,A、B分別為R、S上度數(shù)相等且可比的屬性組。例5(P50):RSc<d等值連接:上述連接的特例,9取=自然連接:書寫格式在連接符下不加比較表達式,比較分量必須是相同的屬性組,連接結(jié)果去掉重復列。4) 除(三)例6:設(shè)關(guān)系R(A,B,C),S(B,C,D),求RFS,RFS為新關(guān)系P(A),P是R中滿足下列條件的元組在A屬性列上的投影:元組在A上分量值a的象集BCa包含S在BC上投影的集合。見書P51*象集:關(guān)系R(X,Z),X和Z為屬性組。我們定義,當tX=x時,x在R中的象集為:Zx=tZltGR,tX=x表示R中屬性

33、組X上值為x的諸元素在Z上分量的集合。*RFS:R(X,Y),S(Y,Z),其中X,Y,Z為屬性組R(XY)X=AY=BCS(YZ)Y=BCZ=DR-S的結(jié)果為新關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。RS=trX|tr£RAny(S)包含于trX的象集例:至少選修了課程表中所有課程的學生nsno,cno(stUdentCOUTSe)三口近(course)例:P51例7例10假設(shè)學生課程數(shù)據(jù)庫中有表:(理解含義)Student(Sno學號,sname姓名,sex性別,age年齡,sdept所在系),Course(

34、Cno,Cname,Cpno,Ccredit),SC(Sno,Cno,Grade)例9:查詢至少選修了一門其直接先行課為6號課程的學生姓名1、先行課為6號的課程,涉及課程表。P1=°,6,(coruse)cpno='6'2、選了上述課程的學生學號P2:P1-SC或n(P1-SC)sno3、根據(jù)學號求姓名:P2ngnoSname(Student),投影出Sname例10:查詢選修了全部課程的學生號碼和姓名1、所有課程的課程號P1:ncno(Course)2、選修了所有課程的學生號P2:nSno,Cno(sc)mpi3、學生姓名、學生號:PZsHsno'Sname

35、七口血“t)2.6關(guān)系數(shù)據(jù)庫管理系統(tǒng)(簡稱關(guān)系系統(tǒng))1、關(guān)系系統(tǒng):為支持關(guān)系模型的系統(tǒng),各種實際應(yīng)用的關(guān)系系統(tǒng)對關(guān)系模型的支持程度不同(數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操縱、完整性約束)。2、各類關(guān)系系統(tǒng)的分類與定義:1)表式系統(tǒng):僅支持關(guān)系數(shù)據(jù)結(jié)構(gòu),不支持集合級操作,實際上不能算關(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ù)等價)。(DB2,ORACLE等)4)全關(guān)系系統(tǒng):支持關(guān)系模型的所有特征。到目前為止尚沒有一個系統(tǒng)是全關(guān)系系統(tǒng)。DB2,ORACLE接近全關(guān)系目標。3、關(guān)系

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

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

38、以及程序員如何編程解決)。第五次:視圖。31標準SQL語言核心功能的9個動詞SQL功能動詞數(shù)據(jù)定義CREATE,DROP,ALTER數(shù)據(jù)查詢SELECT數(shù)據(jù)操縱INSERT,UPDATE,DELETE數(shù)據(jù)控制GRANT,REVOTE各個DBMS產(chǎn)品在實現(xiàn)標準SQL語言時各有差別,一般都作了某些擴充32數(shù)據(jù)定義數(shù)據(jù)定義的基本對象為表、索引、視圖(導出表)操作對象操作方式創(chuàng)建刪除修改表CREATETABLEDROPTABLEALTERTABLE索引CREATEINDEXDROPINDEX視圖CREATEVIEWDROPVIEW*基本表獨立存在,不同的RDBMS產(chǎn)品,表的物理存儲會有不同的方式:若干

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

40、niquenotnull)sex(notnull)age(10<age<150)dept(無約束條件)定義的實現(xiàn)createtablestudent(nochar(6)primarykey,/主鍵即實體完整性namechar(6)uniguenotnull,sexchar(1)notnull,ageint(eger)check(age>10andage<150),deptchar(8)/primarykey(no)/表級約束);5、一般格式1) 表定義內(nèi)容(關(guān)系模式、完整性約束)*關(guān)系模式R(U,D,DOM,F)。F沒有直接體現(xiàn)。*完整性約束結(jié)合前例進一步說明。2) 定

41、義基本表的一般格式CREATETABLE<表名>(列名數(shù)據(jù)類型列級完整性約束條件,列名數(shù)據(jù)類型列級完整性約束條件,<表級完整性約束條件>);*格式說明:createtable為關(guān)鍵字,表名由用戶自定義,屬性由逗號分割,結(jié)束符為;3) 最常用的數(shù)據(jù)類型(域)不同數(shù)據(jù)庫系統(tǒng)支持的數(shù)據(jù)類型不完全相同(實際使用時需要查閱相關(guān)資料)。最常用的數(shù)據(jù)類型有:integer,float,date,char(n)等SQLSERVER支持以下數(shù)據(jù)類型二進制binary(n)varbinary(n)字符型char(n),varchar(n)日期及時間型datadatetime,精確數(shù)值型de

42、cimal(p,s),numeric(p,s)p表示整數(shù)位與小數(shù)位之和,s表示小數(shù)位近視數(shù)值型float,real整形int(integer)4字節(jié)smallint2字節(jié)tinyint1字節(jié)貨幣money文本和圖象textimage4) 完整性規(guī)則(1)實體完整性不可少(NOTNULLUNIQUE)(2) 列級約束與表級約束的區(qū)別如果完整性約束涉及到該表的多個屬性列,必須定義在表級上,否則既可以定義在列級也可以定義在表級用SC表說明createtablestudent_course(snochar(6),cnochar(6),gradeint,primarykey(sno,cno);(3) 自

43、定義*非空約束(notnull),*唯一約束(unique),(可NULL)(與primarykey的區(qū)別)*檢查約束(check)*缺省約束DEFAULT。(4) 約束的定義的形式在不同的數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品上某些地方有所不同,需要查相關(guān)產(chǎn)品的資料。(5) 外鍵約束student(no,name,sex,age,dept)夕卜碼deptdepartment(dept,dept_name,location)主碼createtablestudent(nochar(6)primarykey,namechar(6),sexchar(1),ageinteger,deptchar(8)referencesdepart

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論