《數(shù)據(jù)庫原理》PPT課件.ppt_第1頁
《數(shù)據(jù)庫原理》PPT課件.ppt_第2頁
《數(shù)據(jù)庫原理》PPT課件.ppt_第3頁
《數(shù)據(jù)庫原理》PPT課件.ppt_第4頁
《數(shù)據(jù)庫原理》PPT課件.ppt_第5頁
已閱讀5頁,還剩62頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1,數(shù)據(jù)庫系統(tǒng)原理,主講人:彭一明 教材:數(shù)據(jù)庫系統(tǒng)原理教程 王珊等、清華大學(xué)出版社,2,前言,1.學(xué)習(xí)該課程的目的 2.學(xué)習(xí)內(nèi)容 3.學(xué)習(xí)方法與要求 4.參考書,3,1.學(xué)習(xí)該課程 的目的,數(shù)據(jù)庫技術(shù)是數(shù)據(jù)管理的最新技術(shù)。(20世紀(jì)60年代中期) 它的出現(xiàn)極大地促進(jìn)了計算機(jī)應(yīng)用向各行各業(yè)滲透。 目前基于數(shù)據(jù)庫技術(shù)的計算機(jī)應(yīng)用已成為計算機(jī)應(yīng)用的主流(占 60%) 電子政務(wù)與管理信息系統(tǒng)(MIS) -政府、企業(yè)、銀行、飯店、旅游、醫(yī)療、遠(yuǎn)程教育 網(wǎng)絡(luò)應(yīng)用(計費(fèi)系統(tǒng)、目錄服務(wù)) 人工智能系統(tǒng)、專家系統(tǒng)、 地理信息系統(tǒng)、工程、科學(xué)統(tǒng)計以及圖形、圖象、CAD、多媒體等領(lǐng)域有廣泛的應(yīng)用,其數(shù)據(jù)庫技術(shù)起著

2、關(guān)鍵作用。 數(shù)據(jù)庫系統(tǒng)原理是從事數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)、維護(hù)和數(shù)據(jù)庫管理系統(tǒng)的建立及相關(guān)理論研究必備的基礎(chǔ)知識。,4,2.學(xué)習(xí)內(nèi)容,本課以關(guān)系數(shù)據(jù)庫為重點(diǎn)比較全面講解數(shù)據(jù)庫的基本概念和基本技術(shù)。 第一章 緒論 概述 數(shù)據(jù)管理的進(jìn)展、數(shù)據(jù)模型、數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)、 數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫工程的基本概念。 第二章第四章 講解關(guān)系數(shù)據(jù)庫 關(guān)系數(shù)據(jù)庫數(shù)據(jù)模型、數(shù)據(jù)語言、關(guān)系數(shù)據(jù)庫語言SQL、關(guān)系數(shù)據(jù)庫設(shè)計理論 第五章 數(shù)據(jù)庫保護(hù) 安全性、完整性、并發(fā)控制、恢復(fù) 第六章 數(shù)據(jù)庫設(shè)計 第七章 關(guān)系數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品實例 第八章 數(shù)據(jù)庫技術(shù)新進(jìn)展,5,3.學(xué)習(xí)方法與要求,該課的特點(diǎn):以學(xué)習(xí)數(shù)據(jù)庫的基本概念、基本

3、技術(shù)和數(shù)據(jù)庫設(shè)計為主。 不象學(xué)習(xí)sql server, oracle,學(xué)習(xí)語言,編程為主。 有些概念和語句的語法不僅要熟記,還要了解用在何處?作用是什么?怎么使用? 認(rèn)真看書、聽講、復(fù)習(xí)、思考、討論 先修課有操作系統(tǒng)、離散數(shù)學(xué)、數(shù)據(jù)結(jié)構(gòu) 認(rèn)真完成作業(yè)及每章同步練習(xí)題 上機(jī)(通過MS Sql Serevr 2000 學(xué)習(xí)sql 語言),6,兩次面授課程 兩次語音答疑 期末復(fù)習(xí)串講 課程論壇 ,7,4.參考書,(1)薩師煊,王珊 數(shù)據(jù)庫系統(tǒng)概論(第四版)高等教育出版社 (2)徐潔磐,王銀銀數(shù)據(jù)庫系統(tǒng)引論1996 南京大學(xué)出版社 (3)王能斌 數(shù)據(jù)庫系統(tǒng) 1995 電子工業(yè)出版社 (4)李昭原主編,

4、羅曉沛主審 數(shù)據(jù)庫技術(shù)新進(jìn)展1997 清華大學(xué)出版社 (5)余晨,李文炬 編著 SQL Server 2000 培訓(xùn)教程2001年7月第1版 2003年9月第7次印刷, 清華大學(xué)出版社 (6)上機(jī)內(nèi)容+sql概要語法(隨課件光盤一起發(fā)布),8,第一章 緒論,理解數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫系統(tǒng)的概念。 掌握數(shù)據(jù)庫系統(tǒng)的特點(diǎn),數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu),數(shù)據(jù)庫系統(tǒng)的組成。 掌握數(shù)據(jù)模型的相關(guān)概念。 熟練掌握E-R模型的表示方法。,9,1數(shù)據(jù):實際上是描述事物的符號記錄。 2數(shù)據(jù)管理是指對數(shù)據(jù)的分類,組織,編碼,儲存,檢索和維護(hù)。經(jīng)歷了三個階段:(1)人工管理階段 (2)文件系統(tǒng)階段 (3)

5、數(shù)據(jù)庫系統(tǒng)階段 3數(shù)據(jù)庫(database,簡稱DB) 數(shù)據(jù)庫是長期儲存在計算機(jī)內(nèi)、有組織的、可共享的數(shù)據(jù)集合。 4數(shù)據(jù)庫管理系統(tǒng)(簡稱DBMS) 是數(shù)據(jù)管理軟件。 功能:數(shù)據(jù)庫在建立、運(yùn)用和維護(hù)時由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理、統(tǒng)一控制。 5數(shù)據(jù)庫系統(tǒng)(簡稱DBS) 指在計算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成,一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構(gòu)成。,10,數(shù)據(jù)庫系統(tǒng)特點(diǎn)(4頁)5點(diǎn) (1)數(shù)據(jù)的結(jié)構(gòu)化面向全組織復(fù)雜的數(shù)據(jù)結(jié)構(gòu) (2)數(shù)據(jù)的共享性好,冗余度小 (3)具有較高的數(shù)據(jù)與程序獨(dú)立性 (4)數(shù)據(jù)由DBMS統(tǒng)一管理和控制(安全性控制,完整性控制,并發(fā)控制,

6、數(shù)據(jù)庫恢復(fù)) (5)數(shù)據(jù)的最小存取單位是數(shù)據(jù)項。 7 數(shù)據(jù)的邏輯獨(dú)立性 當(dāng)數(shù)據(jù)的總體邏輯結(jié)構(gòu)改變時,通過數(shù)據(jù)的總體邏輯結(jié)構(gòu)與某類應(yīng)用所涉及的局部邏輯結(jié)構(gòu)之間的映象或轉(zhuǎn)換功能保持?jǐn)?shù)據(jù)的局部邏輯結(jié)構(gòu)不變,由于應(yīng)用程序是依據(jù)數(shù)據(jù)的局部邏輯結(jié)構(gòu)編寫的,所以應(yīng)用程序不必修改。這就是數(shù)據(jù)與程序的邏輯獨(dú)立性,簡稱數(shù)據(jù)的邏輯獨(dú)立性。,11,8.數(shù)據(jù)的物理獨(dú)立性 當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)(或物理結(jié)構(gòu))改變時,通過數(shù)據(jù)的存儲結(jié)構(gòu)與邏輯結(jié)構(gòu)之間的映象或轉(zhuǎn)換功能保持?jǐn)?shù)據(jù)的邏輯結(jié)構(gòu)不變,從而應(yīng)用程序也不必改變。這就是數(shù)據(jù)與程序的物理獨(dú)立性,簡稱數(shù)據(jù)的物理獨(dú)立性。 9數(shù)據(jù)模型的重要性及組成 數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心與基礎(chǔ)。各種

7、機(jī)器上實現(xiàn)的DBMS軟件都基于某種數(shù)據(jù)模型,數(shù)據(jù)庫發(fā)展階段的劃分也是以數(shù)據(jù)模型的發(fā)展作為主要的依據(jù)和標(biāo)志。 10.數(shù)據(jù)模型由三部分組成: 數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、完整性約束,12,數(shù)據(jù)模型概述,在數(shù)據(jù)庫中用數(shù)據(jù)模型這個工具來抽象、表示和處理現(xiàn)實世界中的數(shù)據(jù)和信息。 數(shù)據(jù)模型就是現(xiàn)實世界的 模擬。 數(shù)據(jù)模型應(yīng)滿足三方面要求:一是能比較真實地模擬觀實世界;二是容易為人所理解; 三是便于在計算機(jī)上實現(xiàn)。 模型劃分為兩類:它們分屬于兩個不同的層次。 第一類模型是概念模型,也稱信息模型,它是按用戶的觀點(diǎn)對數(shù)據(jù)和信息建模。 另一類模型是數(shù)據(jù)模型,它是按計算機(jī)系統(tǒng)的觀點(diǎn)對數(shù)據(jù)建模。主要包括網(wǎng)狀模型、層次模型、關(guān)

8、系模型等。,13,數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ)。各種機(jī)器上實現(xiàn)的DBMS軟件都是基于某種數(shù)據(jù)模型的。 為了把現(xiàn)實世界中的具體事物抽象、組織為某一DBMS支持的數(shù)據(jù)模型。通常分二步:首先把現(xiàn)實世界中的客觀對象抽象為某一種信息結(jié)構(gòu),這種信息結(jié)構(gòu)并不依賴于具體的計算機(jī)系統(tǒng),不是某個DBMS支持的數(shù)據(jù)模型,而是概念級的模型概念模型; 然后再把概念模型轉(zhuǎn)換為計算機(jī)上某一DBMS支持的數(shù)據(jù)模型。 概念模型實際上是現(xiàn)實世界到機(jī)器世界的一個中間層次。用于信息世界的建模,是現(xiàn)實世界到信息世界的第一層抽象,是用戶與數(shù)據(jù)庫設(shè)計人員之間進(jìn)行交流的語言。,概念模型,14,圖110 對象的抽象模型,15,1 信息世界

9、的基本概念,信息世界(概念模型)涉及的概念主要有: (1)實體(entity) 客觀存在并可相互區(qū)別的事物稱為實體。實體可以是具體的人、事、物,也可以是抽象的概念或聯(lián)系,例如,一個職工、一個學(xué)生、一個部門、一門課、學(xué)生的一次選課、部門的一次訂貨,老師與系的工作關(guān)系(即某位老師在某系工作)等。 (2)屬性(attribute) 實體所具有的某一特性稱為屬性。一個實體可以由若干個屬性來刻畫。例如,學(xué)生實體可以由學(xué)號、姓名、性別、出生年份、系、入學(xué)時間等屬性組成(94002268,張山,男,1976,計算機(jī)系,1994)。這些屬性組合起來表征了一個學(xué)生。,16,(3)碼(key) 唯一標(biāo)識實體的屬性

10、集稱為碼。例如,學(xué)號是學(xué)生實體的碼。 (4)域(domain) 屬性的取值范圍稱為該屬性的域。例如,學(xué)號的域為8位整數(shù),姓名的域為字符串集合年齡的域為小于35的整數(shù),性別的域為(男,女)。 (5)實體型(entity type) 用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型。例如,學(xué)生(學(xué)號,姓名,性別,出生年份,系,入學(xué)時間)就是一個實體型。 (6)實體集(entity set) 同型實體的集合稱為實體集。例如,全體學(xué)生就是一個實體集。,17,(7)聯(lián)系(relationship) 在現(xiàn)實世界中,事務(wù)內(nèi)部以及事務(wù)之間是有聯(lián)系的, 在信息世界中,這些聯(lián)系反映為實體內(nèi)部的聯(lián)系和實體之間

11、的聯(lián)系。 實體內(nèi)部的聯(lián)系通常是指組成實體的各屬性之間的聯(lián)系。 兩個實體型之間的聯(lián)系可以分為三類: 一對一聯(lián)系(1:1) 如果對于實體集A中的每一個實體,實體集B中至多有一個實體與之聯(lián)系,反之亦然。稱實體集A與實體集B具有一對一聯(lián)系。記為1:1。 例如:班級與班長。,18,一對多聯(lián)系(1:n),如果對于實體集A中的每一個實體,實體集B中有n個實體(n=0) 與之聯(lián)系,反之對于實體集B中的每一個實體,實體集A中至多只有一個實體與之聯(lián)系,稱實體集A與實體集B具有一對多聯(lián)系。記為1:n。 例如,班級與學(xué)生。,19,多對多聯(lián)系(m:n),如果對于實體集A中的每一個實體,實體集B中有n個實體(n=0) 與

12、之聯(lián)系,反之對于實體集B中的每一個實體,實體集A中有m個實體(m=0) 與之聯(lián)系,稱實體集A與實體集B具有多對多聯(lián)系。記為m:n。例如,課程與學(xué)生。,20,概念模型應(yīng)該能夠方便、準(zhǔn)確地表示出信息世界中的常用概念。表示方法很多,其中最為常用的是P.P.S.Chen于1976年提出的實體聯(lián)系方法(entity-relationship approach)。該方法用ER圖來描述現(xiàn)實世界的概念。 ER圖提供了表示實體型、屬性和聯(lián)系的方法是: 實體型:用矩形表示,矩形框內(nèi)寫明實體名。 屬性:用橢圓形表示,并用無向邊將其與相應(yīng)的實體連接。 聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實體連接

13、起來,同時在無向邊旁標(biāo)上聯(lián)系的類型(1:1,1:n或m:n)。,概念模型的表示方法,21,11概念模型常用表示方法:實體聯(lián)系法(E-R圖描述) E-R圖成分(實體、屬性、聯(lián)系),會畫E-R圖。,22,完整的E-R圖有屬性 實體的屬性表示,23,E-R圖實例(選修與組成的屬性標(biāo)在聯(lián)系中),24,25,數(shù)據(jù)模型,在機(jī)器世界中不同的數(shù)據(jù)模型具有不同的數(shù)據(jù)結(jié)構(gòu)形式。目前最常用的數(shù)據(jù)模型有層次模型(hierarchical model)、網(wǎng)狀模型(network model)、關(guān)系模型(relational model)、面向?qū)ο蟮哪P汀?其中層次模型和網(wǎng)狀模型統(tǒng)稱為非關(guān)系模型。 非關(guān)系模型的數(shù)據(jù)庫系統(tǒng)

14、在20世紀(jì)70年代與80年代初非常流行。 關(guān)系模型的數(shù)據(jù)庫系統(tǒng)80年代初到現(xiàn)在非常流行。 面向?qū)ο竽P褪窃?0世紀(jì)80年代以來,面向?qū)ο蟮姆椒ê图夹g(shù)在計算機(jī)各個領(lǐng)域的應(yīng)用發(fā)展起來的。,26,關(guān)系模型是目前最重要的一種模型。 美國IBM公司的研究員EFcodd于1970年發(fā)表題為“大型共享系統(tǒng)的關(guān)系數(shù)據(jù)庫的關(guān)系模型”的論文,文中首次提出了數(shù)據(jù)庫系統(tǒng)的關(guān)系模型。 20世紀(jì)80年代以來,計算機(jī)廠商新推出的數(shù)據(jù)庫管理系統(tǒng)(DBMS)幾乎都支持關(guān)系模型。數(shù)據(jù)庫領(lǐng)域當(dāng)前的研究工作都是以關(guān)系方法為基礎(chǔ)。 1關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu) 在用戶看來,一個關(guān)系模型的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。例如,圖l23

15、中的學(xué)生人事記錄就是一個關(guān)系模型,它涉及下列概念。,關(guān)系數(shù)據(jù)模型,27,12關(guān)系模型中幾個主要術(shù)語 關(guān)系、元組、屬性、域、分量、碼、 關(guān)系模式,關(guān)系:定義2.3 D1D2Dn的子集叫作在域D1,D2,Dn上的關(guān)系,用 R(D1,D2,Dn)表示。 關(guān)系是笛卡爾積的子集,所以關(guān)系也是一個二維表。 元組:表的每行為一個元組。 屬性:對每列起一個名字,稱為屬性(表中的一列即為一個屬性)。 域(domain):屬性的取值范圍。 分量:元組中的一個屬性值。 碼(候選碼):若關(guān)系中的某一屬性組的值能唯一地標(biāo)識一個元組,而其真子集不行,則稱該屬性組為候選碼。 主碼:若一個關(guān)系有多個候選碼,則選定其中一個為主

16、碼 關(guān)系模式:對關(guān)系的描述,一般表示為:R(U) 關(guān)系名(屬性1,屬性2,.,屬性n) 三元組表示法:R(U,F),28,29,關(guān)系模式:對關(guān)系的描述,一般表示為: 關(guān)系名(屬性1,屬性2,.,屬性n) 例如: 學(xué)生(學(xué)號,姓名,性別,系別,年齡,籍貫) 課程(課程號,課程名,學(xué)分) 在關(guān)系模型中,實體以及實體間的聯(lián)系都是用關(guān)系來表示。 例如學(xué)生與課程之間的多對多聯(lián)系(選修)在關(guān)系模型中可以表示如下:選修(學(xué)號,課程號,成績),30,關(guān)系數(shù)據(jù)模型的操縱主要包括查詢、插入、刪除和更新數(shù)據(jù)。這些操作必須滿足關(guān)系的完整性約束條件。 關(guān)系的完整性約束條件包括三大類:實體完整性、參照完整性和用戶定義的完

17、整性。其具體含義將在后面介紹。 關(guān)系模型中的數(shù)據(jù)操作是集合操作,操作對象和操作結(jié)果都是關(guān)系、即若干元組的集合。而不像非關(guān)系模型中那樣是單記錄的操作方式。另一方面,關(guān)系模型把存取路徑向用戶隱蔽起來,用戶只要指出“干什么”或“找什么”,不必詳細(xì)說明“怎么干”或“怎么找”從而大大地提高了數(shù)據(jù)的獨(dú)立性,提高了用戶的生產(chǎn)率。 Select * from student,2關(guān)系數(shù)據(jù)模型的操縱與完整性約束,31,13集中式數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)及二級映象。 數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)是指數(shù)據(jù)庫系統(tǒng)是由外模式、模式和內(nèi)模式三級構(gòu)成。 兩級映象功能是:外模式/模式映象,模式/內(nèi)模式映象。,32,掌握關(guān)系模型、關(guān)

18、系、關(guān)系模式、關(guān)系數(shù)據(jù)庫、關(guān)系數(shù)據(jù)庫系統(tǒng)和關(guān)系數(shù)據(jù)庫管理系統(tǒng)的概念。 正確理解關(guān)系的碼、外碼 理解關(guān)系的完整性內(nèi)容及規(guī)則 會用關(guān)系代數(shù)表示查詢。 一、基本概念: 1 .關(guān)系模型:由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和完整性約束三部分組成。 關(guān)系的數(shù)據(jù)結(jié)構(gòu) 關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)非常單一,是一張扁平的二維表?,F(xiàn)實世界的實體以及實體間的各種聯(lián)系都用關(guān)系二維表表示。 關(guān)系操作 特點(diǎn):采用集合操作方式,即操作的對象和結(jié)果都是集合。 完整性約束 實體完整性、參照完整性和用戶定義的完整性,第二章 關(guān)系數(shù)據(jù)庫,33,2關(guān)系模式(41頁) 定義2.4:關(guān)系的描述稱為關(guān)系模式,形式化表示R(U,D,DOM,F)。R為關(guān)系名

19、,U為組成關(guān)系的諸屬性名,D為屬性的域,DOM表示屬性向域的映象,F(xiàn)是屬性間的數(shù)據(jù)依賴關(guān)系。通常簡記為R(U)或記為R(A1,A2,An)。 3關(guān)系數(shù)據(jù)庫 關(guān)系數(shù)據(jù)庫的型與值(42頁) 關(guān)系模式是型,關(guān)系是值。 關(guān)系數(shù)據(jù)庫模式與關(guān)系數(shù)據(jù)庫通常統(tǒng)稱為關(guān)系數(shù)據(jù)庫 4.關(guān)系數(shù)據(jù)庫系統(tǒng):支持關(guān)系模型的數(shù)據(jù)庫系統(tǒng). 5.關(guān)系數(shù)據(jù)庫管理系統(tǒng)簡稱為關(guān)系系統(tǒng),34,二、關(guān)系模型三類完整性(42),實體完整性,參照完整性,用戶定義完整性 實體完整性規(guī)則,參照完整性規(guī)則,主、外碼概念及用途。 候選碼:若關(guān)系中的某一屬性組的值能唯一地標(biāo)識一個元組,而其真子集不行,則稱該屬性組為候選碼(candidate key)。

20、 主碼:若一個關(guān)系有多個候選碼,則選定其中一個為主碼(primary key)。 主屬性:候選碼中的屬性稱主屬性。 非主屬性:不包含在任何候選碼中的屬性稱為非碼屬性也稱為非主屬性。 規(guī)則21 實體完整性規(guī)則:若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。,35,外碼:定義2.5 設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(guān)系R的碼,如果F與基本關(guān)系S的主碼Ks相對應(yīng),則稱F是基本關(guān)系R的外碼(foreign key),并稱基本關(guān)系R為參照關(guān)系(referencing relation),基本關(guān)系S為被參照關(guān)系(referenced relation)或目標(biāo)關(guān)系(target relatton

21、)。關(guān)系R和S不一定是不同的關(guān)系。 規(guī)則2.2 參照完整性規(guī)則:若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對于R中每個元組在F上的值必須為: 或者取空值(F的每個屬性值均為空值); 或者等于S中某個元組的主碼值。,36,選擇又稱為限制(restriction),它是在關(guān)系R中選擇滿足給定條件的諸元組,記作:,其中F表示選擇條件。,(1)選擇(selection),三、關(guān)系操作 1關(guān)系模型的操作:8種: 傳統(tǒng)的集合運(yùn)算4種(并、交、差、廣義笛卡爾積) 專門的關(guān)系運(yùn)算4種(選擇,投影,連接,除) 操作方式的特點(diǎn):集合操作 2用關(guān)系

22、代數(shù)表示關(guān)系運(yùn)算選擇,投影,連接,除,37,關(guān)系R上的投影是從R中選擇出若干屬性列組成新的關(guān)系。 A(R) tA | t R 其中A為R中的屬性列。 投影操作是從列的角度進(jìn)行的運(yùn)算。 ()連接(join) 它是從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組,記作:,( 2)投影(projection),自然連接:兩個關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,取值相同,并且要在結(jié)果中把重復(fù)的屬性去掉。即若R和S具有相同的屬性組B,則自然連接可記作:,38,例1 查詢信息系(IS系)全體學(xué)生 Sdept = IS(Student) 或 5 = IS(Student) 例2 查詢學(xué)生關(guān)系stude

23、nt 在學(xué)生姓名和所在系兩個屬性上的投影 Sname,Sdept(student) 或 ,(student) 例3 查詢至少選修了一門其直接先行課為6號課程的學(xué)生姓名(52頁),Sname(Cpno=6 (Course,SC,Student),關(guān)系代數(shù)例題,例4 檢索信息系(IS系) 學(xué)生的姓名 Sname Sdept = IS(Student) Select Sname from student where Sdept = IS,39,1SQL語言 SQL的數(shù)據(jù)定義功能、SQL的數(shù)據(jù)操縱功能 SQL的數(shù)據(jù)查詢功能、SQL的數(shù)據(jù)控制功能 2嵌入式SQL語句與主語言之間的通信,第三章 關(guān)系數(shù)據(jù)庫

24、標(biāo)準(zhǔn)語言-SQL,40,SQL語言支持關(guān)系數(shù)據(jù)庫三級模式結(jié)構(gòu),如圖31所示。其中外模式對應(yīng)于視圖(view)和部分基本表(base table)、模式對應(yīng)于基本表,內(nèi)模式對應(yīng)于存儲文件。,SQL語言支持三級模式結(jié)構(gòu),41,基本表是本身獨(dú)立存在的表,在SQL中一個關(guān)系對應(yīng)一個表,一些基本表對應(yīng)一個存儲文件,一個表可以帶若干索引,索引存放在存儲文件中。 存儲文件的邏輯結(jié)構(gòu)組成了關(guān)系數(shù)據(jù)庫的內(nèi)模式。存儲文件的物理文件結(jié)構(gòu)是任意的。 視圖是從基本表或其他視圖中導(dǎo)出的表,它本身不獨(dú)立存儲在數(shù)據(jù)庫中,數(shù)據(jù)庫中只存放視圖的定義而不存放視圖對應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在導(dǎo)出視圖的基本表中,因此視圖是一個虛表。

25、用戶可以用SQL語言對視圖和基本表進(jìn)行查詢。在用戶眼中,視圖和基本表都是關(guān)系,而存儲文件對用戶是透明的。,基本表、存儲文件與視圖,42,修改視圖和索引怎么辦?,數(shù)據(jù)定義,43,CREATE TABLE表名 ( 列名數(shù)據(jù)類型列級完整件約束條件 ,列名數(shù)據(jù)類型列級完整性約束條件. ,表級完整性約束條件 ) ; 其中表名是基本表的名字,它由一個或多個屬性(列)組成。屬性要說明類型與長度,建表的同時還可定義與該表有關(guān)的完整性約束條件。如果完整性約束條件涉及到該表的多個屬性列,則必須定義在表級上。,1定義基本表 SQL語言使用CREATE TABLE語句定義基本表,其一般格式如下:,44,例1 建立一個

26、“學(xué)生”表Student,它由學(xué)號sno、姓名Sname、性別Ssex、年齡Sage、所在系Sdept 5個屬性組成,其中學(xué)號屬性不能為空,并且其值是唯一的。 CREATE TABLE Student (Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20), Ssex char(2), Sage int, Sdept CHAR(15); 系統(tǒng)執(zhí)行上面的語句后,就在數(shù)據(jù)庫中建立一個新的空的“學(xué)生”表,并將有關(guān)“學(xué)生”表的定義及有關(guān)約束條件存放在數(shù)據(jù)字典中。,45,2刪除基本表,DROP TABLE表名; 例5 刪除Student表 DROP TABLE Stud

27、ent;,46,3建立與刪除索引,通過索引可以大大加快表的查詢。 在基本表上建立一個或多個索引,系統(tǒng)在存取數(shù)據(jù)時會自動選擇合適的索引作為存取路徑,用戶不必也不能選擇索引。 1建立索引 建立索引使用CREATE INDEX語句,其一般格式為: CREATE UNIQUE CLUSTER INDEX ON (,); 其中,表名指定要建索引的基本表的名字。索引可以建在該表的一列或多列上,各列名之間用逗號分隔。每個列名后面還可以用次序指定索引值的排列次序,包括ASC和DESC。,47,例6 為學(xué)生課程數(shù)據(jù)庫中的Student,Course,SC 3個表建立索引。其中Student表按學(xué)號升序建立唯一索

28、引,course表按課程號升序建立唯一索引,sc表按學(xué)號升序和課程號降序建唯一索引。 CREATE UNIQUE INDEX Stusno ON Student(Sno); CREATE UNIQUE INDEX Coucno ON Course(Cno); CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC); 2刪除索引 刪除索引使用DROP INDEX語句,其一般格式為 DROP INDEX索引名; 例7 刪除Student表的Stusname索引。(stusno) DROP INDEX Stusname; DROP INDEX Stusno;

29、,48,CREATE VIEW視圖名(列名,列名.) AS子查詢 WITH CHECK OPTION; 其中子查詢可以是任意復(fù)雜的SELECT語句,但通常不允許含有ORDER BY子句和DISTINCT短語。 WITH CHECK OPTION表示對視圖進(jìn)行UPDATE,INSERT和DELETE操作時要保證更新、插入或刪除的行滿足視圖定義中的謂詞條件(即子查詢中的條件表達(dá)式)。 如果CREATE VIEW語句僅指定了視圖名,省略了組成視圖的各個屬性列名,則隱含該視圖由子查詢中SELECT子句目標(biāo)列中的諸字段組成。,4. 建立與刪除視圖 1. 建立視圖,49,視圖建好后,若導(dǎo)出此視圖的基本表被

30、刪除了,該視圖將失效,但一般不會被自動刪除。 DROP VIEW ;,.刪除視圖,50,數(shù)據(jù)操縱,51,SQL中數(shù)據(jù)更新包括插入數(shù)據(jù)、修改數(shù)據(jù)和刪除數(shù)據(jù):,341 插入數(shù)據(jù),SQL的數(shù)據(jù)插入語句INSERT通常有兩種形式。 1. 插入單個元組,52,例1 將一個新學(xué)生記錄(學(xué)號:95020;姓名:陳冬;性別:男;所在系:IS;年齡:18歲)插入Student表中。,例2 插入一條選課記錄(95020,1),342 修改數(shù)據(jù),修改操作又稱為更新操作,其語句的一般格式為:,新插入的記錄grade列上取空值。,(a),(b),53,其功能是修改指定表中滿足WHERE子句條件的元組。其中SET子句用于

31、指定修改方法,即用表達(dá)式的值取代相應(yīng)的屬性列值。如果省略WHERE子句,則表示要修改表中的所有元組.,1. 修改某一個元組的值 例4 將學(xué)生95001的年齡改為22歲。 2修改多個元組的值 例5 將所有學(xué)生的年齡增加1歲,UPDATE 表名 SET 列名表達(dá)式,列名表達(dá)式. WHERE條件;,54,DELETE FROM表名 WHERE條件; DELETE語句的功能是從指定表中刪除滿足WHERE子句條件的所有元組。如果省略WHERE子句,表示刪除表中全部元組,但表的定義仍在字典中。也就是說,DELETE語句刪除的是表中的數(shù)據(jù),而不是關(guān)于表的定義。 刪除某一個(或某些)元組的值 例7 刪除學(xué)號為

32、95019的學(xué)生記錄。 DELETE FROM Student WHERE Sno95019;,343 刪除數(shù)據(jù),55,2刪除多個元組的值,例8 刪除所有學(xué)生的選課記錄。 DELETE FROM SC;,56,整個SELECT語句的含義是,根據(jù)WHERE子句的條件表達(dá)式,從FROM子句指定的基本表或視圖中找出滿足條件的元組再按SELECT子句中的目標(biāo)列表達(dá)式,選出元組中的屬性值形成結(jié)果表。,。如果有GROUP子句,則將結(jié)果按列名1的值進(jìn)行分組統(tǒng)計,如果GROUP子句帶HAVING短語,則只有滿足指定條件的組才予輸出。如果有ORDER子句,則結(jié)果表還要按列名2的值的升序或降序排序。 SELECT

33、語句既可以完成簡單的單表查詢,也可以完成復(fù)雜的連接查詢和嵌套查詢。 最基本的用法是: select 列1,列2 ,列3 . from 表名 where 條件 ,57,1目標(biāo)列表達(dá)式有以下可選格式,數(shù)據(jù)查詢,58,其中屬性列名表達(dá)式可以是由屬性列、作用于屬性列的聚集函數(shù)和常量的任意算術(shù)運(yùn)算(十、一、)組成的運(yùn)算公式。 集函數(shù)的一般格式為:,59,.WHERE子句的條件表達(dá)式有以下可選格式:,60,數(shù)據(jù)查詢,61,(2)連接查詢,自然連接,自身連接 (例34查詢每一門課的間接先修課),外連接(例33:Student表為主體列出每個學(xué)生的基本情況及其選課情況) SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno, Grade FROM Student LEFT OUTER JOIN SC ON Student.Sno = SC.Sno;,6

溫馨提示

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

評論

0/150

提交評論