版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫原理2在講授課程內(nèi)容之前,首先介紹一下數(shù)據(jù)庫技術(shù)的地位,使得大家了解學(xué)習(xí)數(shù)據(jù)庫原理的目的、作用和重要性。其次介紹一下課程教學(xué)大綱,使得大家對(duì)課程內(nèi)容和課程要求有所了解,明確后續(xù)學(xué)習(xí)的目標(biāo)。在計(jì)算機(jī)應(yīng)用中的地位在計(jì)算機(jī)專業(yè)課程中的地位數(shù)據(jù)庫技術(shù)的地位3在計(jì)算機(jī)應(yīng)用中的地位
數(shù)據(jù)庫技術(shù)代表數(shù)據(jù)處理的最高水平數(shù)據(jù)處理科學(xué)計(jì)算自動(dòng)控制輔助設(shè)計(jì)人工智能4在計(jì)算機(jī)專業(yè)課程中的地位程序設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)操作系統(tǒng)數(shù)據(jù)庫原理軟件工程人工智能離散數(shù)學(xué)大型數(shù)據(jù)庫分布數(shù)據(jù)庫網(wǎng)絡(luò)數(shù)據(jù)庫數(shù)據(jù)庫應(yīng)用數(shù)據(jù)挖掘大數(shù)據(jù)5課程教學(xué)大綱課程的性質(zhì)、目的及任務(wù)本課程的基本要求學(xué)時(shí)分配6課程的性質(zhì)、目的及任務(wù)本課程屬于專業(yè)基礎(chǔ)必修課。系統(tǒng)講授數(shù)據(jù)庫基礎(chǔ)知識(shí)、數(shù)據(jù)庫系統(tǒng)原理與技術(shù),使學(xué)生熟悉并掌握數(shù)據(jù)庫系統(tǒng)的原理、基本概念和數(shù)據(jù)庫設(shè)計(jì)理論和方法,具備開發(fā)和應(yīng)用數(shù)據(jù)庫軟件的能力。71.了解數(shù)據(jù)庫系統(tǒng)的產(chǎn)生、發(fā)展和基本特點(diǎn);2.掌握基本概念;掌握數(shù)據(jù)庫模型的基本要素;掌握數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)3.掌握關(guān)系數(shù)據(jù)庫方法;4.了解關(guān)系系統(tǒng)的定義和分類及查詢優(yōu)化的基本原理。5.掌握標(biāo)準(zhǔn)SQL語言。6.掌握關(guān)系數(shù)據(jù)理論。7.掌握數(shù)據(jù)庫設(shè)計(jì)理論和方法。8.掌握數(shù)據(jù)庫完整性、安全性;9.熟悉并發(fā)控制和數(shù)據(jù)庫恢復(fù)技術(shù)。10.了解數(shù)據(jù)庫技術(shù)的新發(fā)展。本課程的基本要求8基礎(chǔ)產(chǎn)生與發(fā)展基本概念體系結(jié)構(gòu)DB設(shè)計(jì)安全性完整性恢復(fù)技術(shù)并發(fā)控制設(shè)計(jì)系統(tǒng)DB理論關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)SQL語言規(guī)范化理論9學(xué)時(shí)分配講課:48學(xué)時(shí)基本概念DB、DBMSDBS、DMDBS體系結(jié)構(gòu)關(guān)系代數(shù)標(biāo)準(zhǔn)SQL語句規(guī)范化理論數(shù)據(jù)庫設(shè)計(jì)安全性完整性恢復(fù)技術(shù)并發(fā)控制10學(xué)時(shí)6+10學(xué)時(shí)8學(xué)時(shí)6學(xué)時(shí)8學(xué)時(shí)10主要參考書1.孟凡榮數(shù)據(jù)庫原理與應(yīng)用(MySQL版)清華大學(xué)出版社20192.王珊薩師煊數(shù)據(jù)庫系統(tǒng)概論(第5版)高等教育出版社201411第1章緒論數(shù)據(jù)庫的基本概念數(shù)據(jù)庫系統(tǒng)的產(chǎn)生與發(fā)展數(shù)據(jù)模型數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)概述 12數(shù)據(jù)庫數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫系統(tǒng)1.1數(shù)據(jù)庫的基本概念數(shù)據(jù)庫應(yīng)用系統(tǒng)13(1)數(shù)據(jù)庫DB–DataBase
在計(jì)算機(jī)的存儲(chǔ)設(shè)備上合理存放、相關(guān)聯(lián)、有結(jié)構(gòu)的數(shù)據(jù)集合。數(shù)據(jù)庫14數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。它主要功能是建立和維護(hù)數(shù)據(jù)庫,接受和完成用戶訪問數(shù)據(jù)庫的各種請(qǐng)求。(2)數(shù)據(jù)庫管理系統(tǒng)DBMS——
DatabaseManagementSystem15系統(tǒng)控制程序授權(quán)檢查程序并發(fā)控制程序數(shù)據(jù)存取控制程序數(shù)據(jù)存儲(chǔ)管理程序完整性控制程序通信控制程序終端查詢語言解釋程序DB控制語言解釋程序DML處理程序DML翻譯程序維護(hù)公用程序定義公用程序轉(zhuǎn)儲(chǔ)、編輯、打印公用程序工作日志公用程序信息格式維護(hù)公用程序統(tǒng)計(jì)分析公用程序DB恢復(fù)公用程序DB重構(gòu)公用程序裝入程序信息格式定義公用程序保密定義公用程序子模式定義公用程序模式定義公用程序系統(tǒng)運(yùn)行控制程序公用程序語言翻譯處理程序數(shù)據(jù)庫管理系統(tǒng)一個(gè)典型DBMS程序模塊組成圖16(3)數(shù)據(jù)庫系統(tǒng)(DBS——DatabaseSystem)數(shù)據(jù)庫系統(tǒng):是指在計(jì)算機(jī)系統(tǒng)中引進(jìn)數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)后的組成。組成:一般由硬件、軟件、數(shù)據(jù)庫、用戶四部分組成。用戶包括:管理、開發(fā)人員和用戶。17數(shù)據(jù)庫系統(tǒng)及其應(yīng)用程序的組成。即在數(shù)據(jù)庫系統(tǒng)環(huán)境下建立起來為某種應(yīng)用服務(wù)的軟、硬件的集合。(4)數(shù)據(jù)庫應(yīng)用系統(tǒng)(DatabaseApplicationSystem,簡記DBAS)18應(yīng)用程序/用戶DBMSOS硬件DBDBSDBASDB、DBMS、DBS、DBAS關(guān)系19數(shù)據(jù)、信息、數(shù)據(jù)管理與數(shù)據(jù)處理數(shù)據(jù)管理技術(shù)的產(chǎn)生與發(fā)展數(shù)據(jù)庫系統(tǒng)的特點(diǎn)1.2數(shù)據(jù)庫系統(tǒng)的產(chǎn)生與發(fā)展20
1.2.1數(shù)據(jù)、信息、數(shù)據(jù)管理與數(shù)據(jù)處理數(shù)據(jù)管理:是指對(duì)數(shù)據(jù)的分類、組織、編碼、存儲(chǔ)、查詢和維護(hù)等活動(dòng),是數(shù)據(jù)處理的中心環(huán)節(jié)。數(shù)據(jù):用以載荷信息的各種符號(hào)信息:數(shù)據(jù)有意義的表現(xiàn)。數(shù)據(jù)處理:是指對(duì)數(shù)據(jù)進(jìn)行收集、組織、存儲(chǔ)、加工、抽取和傳播等一系列活動(dòng)的總和。其目的是從大量的、原始數(shù)據(jù)中抽取、推導(dǎo)出對(duì)人們有價(jià)值的信息。21應(yīng)用程序數(shù)據(jù)(1)人工管理階段50年代中期以前應(yīng)用程序管理數(shù)據(jù)數(shù)據(jù)不共享數(shù)據(jù)不具有獨(dú)立性數(shù)據(jù)不保存1.2.2數(shù)據(jù)管理技術(shù)的發(fā)展22(2)文件系統(tǒng)階段50年代后期至60年代中期應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n文件管理系統(tǒng)文件1文件2文件n1.2.2數(shù)據(jù)管理技術(shù)的發(fā)展數(shù)據(jù)可以長期保存由文件系統(tǒng)管理數(shù)據(jù)數(shù)據(jù)共享性差冗余度大數(shù)據(jù)獨(dú)立性差23(3)數(shù)據(jù)庫系統(tǒng)階段60年代末后期以來應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n數(shù)據(jù)庫管理系統(tǒng)(DBMS)數(shù)據(jù)庫1.2.2數(shù)據(jù)管理技術(shù)的發(fā)展24三個(gè)里程碑IMS系統(tǒng)InformationManagementSystemDBTG系統(tǒng)DataBaseTaskGroup關(guān)系數(shù)據(jù)庫系統(tǒng)25數(shù)據(jù)庫系統(tǒng)的三個(gè)發(fā)展階段第二代數(shù)據(jù)庫系統(tǒng)
20世紀(jì)80年代以關(guān)系數(shù)據(jù)庫為代表的。新一代數(shù)據(jù)庫系統(tǒng)
20世紀(jì)80年代末,90年代初以來熱點(diǎn)課題第一代數(shù)據(jù)庫系統(tǒng)20世紀(jì)70年代以網(wǎng)狀型數(shù)據(jù)庫和層次型數(shù)據(jù)庫為代表的。261.2.3數(shù)據(jù)庫系統(tǒng)的特點(diǎn)
采用一定的數(shù)據(jù)模型實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)的冗余度小實(shí)現(xiàn)數(shù)據(jù)共享避免了數(shù)據(jù)的不一致性較高的數(shù)據(jù)獨(dú)立性數(shù)據(jù)由DBMS統(tǒng)一管理和控制安全性完整性并發(fā)控制數(shù)據(jù)庫恢復(fù)271.3數(shù)據(jù)模型數(shù)據(jù)模型:現(xiàn)實(shí)世界數(shù)據(jù)特征的模擬和抽象。模型:現(xiàn)實(shí)世界特征的模擬和抽象。281.3.1數(shù)據(jù)模型的幾個(gè)重要問題信息世界:概念模型數(shù)據(jù)世界(計(jì)算機(jī)世界):DBMS支持的數(shù)據(jù)模型
現(xiàn)實(shí)世界中客觀對(duì)象的抽象過程現(xiàn)實(shí)世界29數(shù)據(jù)模型的要求(1)真實(shí)性(2)易理解(3)易實(shí)現(xiàn)(1)概念數(shù)據(jù)模型(2)邏輯數(shù)據(jù)模型(3)物理數(shù)據(jù)模型30數(shù)據(jù)模型的分類數(shù)據(jù)模型的組成要素?cái)?shù)據(jù)結(jié)構(gòu):數(shù)據(jù)操作:數(shù)據(jù)的約束條件:是對(duì)系統(tǒng)靜態(tài)特性的描述。是對(duì)系統(tǒng)動(dòng)態(tài)特性的描述。一組完整性規(guī)則的集合。數(shù)據(jù)本身及數(shù)據(jù)之間的聯(lián)系對(duì)數(shù)據(jù)操作所要完成的功能保證數(shù)據(jù)的正確、有效、相容31概念模型是從現(xiàn)實(shí)世界到數(shù)據(jù)世界的一個(gè)中間層次,是數(shù)據(jù)庫設(shè)計(jì)的重要工具。
特點(diǎn):具有豐富的語義表達(dá)能力和直接模擬現(xiàn)實(shí)世界的能力,具有直觀、自然、語義豐富、易于用戶理解
E-R數(shù)據(jù)模型(Entity-Relationshipdatamodel),即實(shí)體—聯(lián)系數(shù)據(jù)模型。
1.3.2實(shí)體聯(lián)系數(shù)據(jù)模型(概念模型)32(1)實(shí)體(Entity)實(shí)體:客觀存在并可相互區(qū)別的個(gè)體。實(shí)體特性:描述實(shí)體的主要特征。實(shí)體集:具有相同特性實(shí)體的集合。實(shí)體標(biāo)識(shí)符:唯一能確定實(shí)體集中某個(gè)實(shí)體的最小實(shí)體特性集。33三個(gè)世界所用術(shù)語及其對(duì)應(yīng)關(guān)系現(xiàn)實(shí)世界信息世界計(jì)算機(jī)世界實(shí)體實(shí)體記錄記錄實(shí)體特性屬性字段實(shí)體集實(shí)體記錄集表實(shí)體標(biāo)識(shí)符標(biāo)識(shí)屬性關(guān)鍵字34三個(gè)世界所用術(shù)語及其對(duì)應(yīng)關(guān)系現(xiàn)實(shí)世界信息世界計(jì)算機(jī)世界實(shí)體實(shí)體記錄記錄實(shí)體特性屬性字段實(shí)體集實(shí)體記錄集表實(shí)體標(biāo)識(shí)符標(biāo)識(shí)屬性關(guān)鍵字35屬性(Attribute)一個(gè)實(shí)體可以有若干個(gè)屬性不能再細(xì)分的屬性稱為原子屬性屬性有型與值的區(qū)別值域(屬性值的變化范圍)關(guān)鍵字36三個(gè)世界所用術(shù)語及其對(duì)應(yīng)關(guān)系現(xiàn)實(shí)世界信息世界計(jì)算機(jī)世界實(shí)體實(shí)體記錄記錄實(shí)體特性屬性字段實(shí)體集實(shí)體記錄集表實(shí)體標(biāo)識(shí)符標(biāo)識(shí)屬性關(guān)鍵字屬性37①二元聯(lián)系:只有兩個(gè)實(shí)體集參與的聯(lián)系⑵實(shí)體(集)間的聯(lián)系1:1聯(lián)系(one-to-one)學(xué)校校長實(shí)體集A實(shí)體集B11381:m聯(lián)系(one-to-many)學(xué)校學(xué)生實(shí)體集A實(shí)體集B1m39
m:n聯(lián)系(many-to-many)教師學(xué)生實(shí)體集A實(shí)體集Bmn40m:n各種實(shí)體聯(lián)系的包含關(guān)系1:n1:141
②多元聯(lián)系:參與聯(lián)系的實(shí)體集的個(gè)數(shù)≥3時(shí),稱為多元聯(lián)系。教師學(xué)生課程42③自反聯(lián)系:它描述了同一實(shí)體集內(nèi)兩部分實(shí)體之間的聯(lián)系。職工領(lǐng)導(dǎo)1n43(3)E—R圖實(shí)體名屬性名聯(lián)系名①E-R圖的圖形符號(hào)難點(diǎn):起名44②繪制E-R圖的步驟第一步:通過對(duì)現(xiàn)實(shí)世界的分析、抽象以后,找出實(shí)體集及其屬性第二步:找出實(shí)體集之間的聯(lián)系第四步:繪制E-R圖。第三步:找出實(shí)體集聯(lián)系的屬性45教學(xué)管理?46教學(xué)管理第一步首先找出相關(guān)實(shí)體集有:學(xué)生(S)教師(T)課程(C)學(xué)院(D)每個(gè)實(shí)體的屬性分別為:S:學(xué)號(hào),學(xué)生姓名,出生日期,專業(yè),班級(jí)T:工號(hào),教師姓名,職稱,所在系C:課程號(hào),課程名稱,學(xué)時(shí),考核方式D:學(xué)院代號(hào),學(xué)院名稱47教學(xué)管理第二步找出實(shí)體集之間的聯(lián)系第三步找出實(shí)體集之間聯(lián)系的屬性學(xué)生(S)教師(T)課程(C)學(xué)院(D)
S與C之間有m:n聯(lián)系
D與S之間有1:n聯(lián)系
T與C之間有m:n聯(lián)系
D與T之間有1:nS與C之間聯(lián)系的結(jié)果用成績表示。T與C之間聯(lián)系以學(xué)號(hào)來表示。48教學(xué)管理第四步繪制E-R圖T編號(hào)教師姓名職稱所在教研室S學(xué)號(hào)學(xué)生姓名專業(yè)出生日期班級(jí)第四步繪制E-R圖49C課程號(hào)課程名稱學(xué)時(shí)考核方式D學(xué)院代號(hào)學(xué)院名稱教學(xué)管理50第四步繪制E-R圖學(xué)生學(xué)院課程教師管理學(xué)習(xí)授課編制成績學(xué)號(hào)教學(xué)情況E-R圖教學(xué)管理51教學(xué)管理第二步找出實(shí)體集之間的聯(lián)系
S與C之間有m:n聯(lián)系
D與S之間有1:n聯(lián)系
T與C之間有m:n聯(lián)系
D與T之間有1:n學(xué)生(S)教師(T)課程(C)學(xué)院(D)第二步找出實(shí)體集之間的聯(lián)系
S與C之間有m:n聯(lián)系
S與T之間有m:n聯(lián)系
D與S之間有1:n聯(lián)系
T與C之間有m:n聯(lián)系
D與T之間有1:n52教學(xué)管理學(xué)生(S)教師(T)課程(C)學(xué)院(D)第三步找出實(shí)體集之間聯(lián)系的屬性S與C之間聯(lián)系的結(jié)果用成績表示。T與C之間聯(lián)系學(xué)號(hào)來表示。第二步找出實(shí)體集之間的聯(lián)系
S與C之間有m:n聯(lián)系
D與S之間有1:n聯(lián)系
T與C之間有m:n聯(lián)系
D與T之間有1:n53教學(xué)管理第三步找出實(shí)體集之間聯(lián)系的屬性S與C之間聯(lián)系的結(jié)果用成績表示。S與T之間聯(lián)系的結(jié)果用課程號(hào)表示。T與C之間聯(lián)系學(xué)號(hào)來表示。學(xué)生(S)教師(T)課程(C)學(xué)院(D)第二步找出實(shí)體集之間的聯(lián)系
S與C之間有m:n聯(lián)系
S與T之間有m:n聯(lián)系
D與S之間有1:n聯(lián)系
T與C之間有m:n聯(lián)系
D與T之間有1:n54第四步繪制E-R圖教學(xué)情況E-R圖教學(xué)管理學(xué)生學(xué)院課程教師管理學(xué)習(xí)授課編制成績學(xué)號(hào)教學(xué)課程號(hào)55教學(xué)管理第二步找出實(shí)體集之間的聯(lián)系
S、T、C之間有三元聯(lián)系,且為m:n聯(lián)系
D與S之間有1:n聯(lián)系
D與T之間有1:n第三步找出實(shí)體集之間聯(lián)系的屬性S、T、C之間聯(lián)系的結(jié)果用成績表示。學(xué)生(S)教師(T)課程(C)院系(D)56第四步繪制E-R圖教學(xué)情況E-R圖教學(xué)管理學(xué)生學(xué)院課程教師管理編制STC成績57教學(xué)情況?圖書管理?超市管理?思考:581.3.3最常用的數(shù)據(jù)模型層次模型網(wǎng)狀模型關(guān)系模型面向?qū)ο竽P?9滿足如下條件:(1)有且只有一個(gè)結(jié)點(diǎn)沒有雙親結(jié)點(diǎn),稱為根結(jié)點(diǎn)(2)根以外的其它結(jié)點(diǎn)有且只有一個(gè)雙親結(jié)點(diǎn)。⑴層次模型60R1R3R2R4R5R6兄弟結(jié)點(diǎn)葉結(jié)點(diǎn)根結(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)61D1計(jì)算機(jī)系Y1Z140副教授080101數(shù)據(jù)庫W1層次模型的具體實(shí)例I1計(jì)算機(jī)學(xué)院X1………學(xué)院代號(hào)院長姓名系號(hào)系名系主任名課程號(hào)課程名學(xué)時(shí)姓名年齡職稱系課程教師學(xué)院層次模型例子辦公室號(hào)辦公室名辦公室主任名辦公室學(xué)院名稱62數(shù)據(jù)操作1)查詢從根結(jié)點(diǎn)開始,按給定條件沿一個(gè)層次路徑查找所需要的記錄。①插入:指定一個(gè)插入層次路徑,完成數(shù)據(jù)的插入操作。②刪除:先定位到要?jiǎng)h除的記錄上,完成刪除任務(wù)。③修改:先定位,然后可將修改后的記錄值寫回到數(shù)據(jù)庫中。2)更新63ACBC7C5B6B4B1A1C8C6C4C9C2C14C364C7C5B6B4B1A1C8C6C4C9C2C14C3層次序列鏈接法65C7C5B6B4B1A1C8C6C4C9C2C14C3子女兄弟鏈接法…A2C8C6C4B6C9C2B4C14C7C5C3B1A166數(shù)據(jù)約束1)除根結(jié)點(diǎn)外,任何其它結(jié)點(diǎn)不能離開其雙親結(jié)點(diǎn)而孤立存在。2)不能直接表示m:n。3)對(duì)層次結(jié)構(gòu)進(jìn)行修改時(shí),不允許改變原數(shù)據(jù)庫中記錄類型之間的雙親子女聯(lián)系,這使得數(shù)據(jù)庫的適應(yīng)能力受到限制。67優(yōu)缺點(diǎn)缺點(diǎn):不能直接表示多對(duì)多關(guān)系操作限制多結(jié)構(gòu)嚴(yán)密,層次命令程序化優(yōu)點(diǎn):簡單清晰性能較高良好的完整性支持68允許一個(gè)以上的結(jié)點(diǎn)無雙親一個(gè)結(jié)點(diǎn)可以有多于一個(gè)的雙親班級(jí)學(xué)生社團(tuán)s1s2網(wǎng)狀結(jié)構(gòu)一個(gè)例子⑵網(wǎng)狀模型69學(xué)生學(xué)習(xí)課程的網(wǎng)狀數(shù)據(jù)庫模式課程課程號(hào)課程名學(xué)時(shí)數(shù)學(xué)生學(xué)號(hào)姓名年齡性別70將m:n轉(zhuǎn)換為兩個(gè)1:n聯(lián)系s1s2學(xué)號(hào)姓名年齡性別學(xué)生課程號(hào)課程名學(xué)時(shí)數(shù)課程學(xué)號(hào)課程號(hào)成績學(xué)習(xí)71單向鏈接法72優(yōu)缺點(diǎn)優(yōu)點(diǎn):能直接描述現(xiàn)實(shí)世界存取效率高缺點(diǎn):結(jié)構(gòu)復(fù)雜,難掌握其DDL,DML語言復(fù)雜,不易使用73數(shù)據(jù)結(jié)構(gòu):學(xué)號(hào)姓名性別年齡學(xué)院110301張弛男19計(jì)算機(jī)110302王利男18計(jì)算機(jī)210301李紅女18機(jī)電210302趙丹女17機(jī)電210303郭皖男20機(jī)電┅
關(guān)系:二維表元組:行;記錄屬性:列;字段碼:關(guān)鍵字⑶關(guān)系模型二維表格74關(guān)系模式(RelationSchema)關(guān)系模式是關(guān)系中信息內(nèi)容結(jié)構(gòu)的描述。S(學(xué)號(hào),姓名,性別,年齡,學(xué)院,專業(yè),班級(jí))R:是關(guān)系名U:是組成關(guān)系R的全部屬性的集合D:是U中屬性取值的值域DOM:是屬性列到域的映射I:是一組完整性約束條件Σ(F):是屬性集間的一組數(shù)據(jù)依賴R(U,D,DOM,I,Σ)簡寫:R(U)或R(U,F(xiàn))75學(xué)號(hào)姓名性別年齡專業(yè)學(xué)號(hào)課號(hào)成績課號(hào)課名學(xué)時(shí)學(xué)分學(xué)期76選擇、投影、連接關(guān)系演算:以數(shù)理邏輯中的謂詞演算來表達(dá)關(guān)系的操作。數(shù)據(jù)操作:查詢、更新關(guān)系代數(shù):傳統(tǒng)的集合運(yùn)算特殊的關(guān)系運(yùn)算77數(shù)據(jù)約束實(shí)體完整性參照完整性用戶定義完整性78缺點(diǎn):效率低優(yōu)缺點(diǎn)優(yōu)點(diǎn):堅(jiān)實(shí)的理論基礎(chǔ)表達(dá)能力強(qiáng)簡單數(shù)據(jù)獨(dú)立性高79將現(xiàn)實(shí)世界的一切事物看作對(duì)象,一個(gè)對(duì)象不僅包括描述它的數(shù)據(jù),而且還包括對(duì)它進(jìn)行操作方法的定義。我們也可以把面向?qū)ο髷?shù)據(jù)模型看作是一種可擴(kuò)充的數(shù)據(jù)模型,這種數(shù)據(jù)模型比傳統(tǒng)數(shù)據(jù)模型有更豐富的語義,用戶根據(jù)應(yīng)用需要可以定義新的數(shù)據(jù)類型及相應(yīng)的約束和操作。⑷面向?qū)ο髷?shù)據(jù)模型80學(xué)生學(xué)號(hào)姓名性別學(xué)籍管理課程課程號(hào)課程名學(xué)時(shí)教學(xué)計(jì)劃管理1+1+成績學(xué)生課程學(xué)習(xí)成績學(xué)號(hào)姓名性別課程號(hào)課程名學(xué)時(shí)81
層次模型網(wǎng)狀模型關(guān)系模型面向?qū)ο竽P烷_始情況1968年IBM公司IMS系統(tǒng)1969年CODASYL的DBTG報(bào)告1970年E·F·CODD20世紀(jì)80年代數(shù)據(jù)結(jié)構(gòu)復(fù)雜(樹結(jié)構(gòu))復(fù)雜(有向圖)簡單(二維表)復(fù)雜(嵌套、遞歸)數(shù)據(jù)聯(lián)系通過指針通過指針通過表間的公共屬性通過對(duì)象標(biāo)識(shí)查詢語言過程性語言過程性語言非過程性語言面向?qū)ο笳Z言典型產(chǎn)品IMSIDS/Ⅱ,IMAGE/3000OracleSybase、DB2SQLServerONTOSDB盛行期間20世紀(jì)70年代20世紀(jì)70年代至80年代中期20世紀(jì)80年代至今20世紀(jì)90年代至今四種結(jié)構(gòu)數(shù)據(jù)模型比較82值1.4.1數(shù)據(jù)庫系統(tǒng)的三級(jí)模式結(jié)構(gòu)模式(Schema):數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。模式反映的是數(shù)據(jù)的結(jié)構(gòu)及其聯(lián)系。實(shí)例(Instance):模式的一個(gè)具體值。實(shí)例反映的是數(shù)據(jù)庫某一時(shí)刻的狀態(tài)。1.4數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)型83應(yīng)用A應(yīng)用B應(yīng)用C應(yīng)用D應(yīng)用E外模式1外模式2外模式3模式內(nèi)模式數(shù)據(jù)庫模式/內(nèi)模式外模式/模式(1)模式模式也稱邏輯模式。是對(duì)數(shù)據(jù)庫全局邏輯結(jié)構(gòu)的描述,是數(shù)據(jù)庫所有用戶的公共數(shù)據(jù)視圖。84(2)外模式簡稱子模式,也稱用戶模式。是用戶觀念下局部數(shù)據(jù)結(jié)構(gòu)的邏輯描述,是用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。應(yīng)用A應(yīng)用B應(yīng)用C應(yīng)用D應(yīng)用E外模式1外模式2外模式3模式內(nèi)模式數(shù)據(jù)庫模式/內(nèi)模式外模式/模式85(3)內(nèi)模式存儲(chǔ)模式。是對(duì)數(shù)據(jù)庫中數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式。應(yīng)用A應(yīng)用B應(yīng)用C應(yīng)用D應(yīng)用E外模式1外模式2外模式3模式內(nèi)模式數(shù)據(jù)庫模式/內(nèi)模式外模式/模式86這兩層映象保證了數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)具有較高的邏輯獨(dú)立性和物理獨(dú)立性。1.4.2數(shù)據(jù)庫的兩級(jí)映像與數(shù)據(jù)獨(dú)立性外模式/模式映象模式/內(nèi)模式映象邏輯獨(dú)立性物理獨(dú)立性87用戶數(shù)據(jù)庫外模式概念數(shù)據(jù)庫物理數(shù)據(jù)庫內(nèi)模式用戶A1用戶A2用戶B外模式B外模式A內(nèi)部模式模式外模式/模式映象模式/內(nèi)部模式映象數(shù)據(jù)庫DBMSOS數(shù)據(jù)庫的分級(jí)結(jié)構(gòu)與抽象層次對(duì)應(yīng)圖用戶視圖DBA視圖系統(tǒng)程序員視圖模式88應(yīng)用系統(tǒng)/用戶內(nèi)模式模式外模式DBDBMSOS數(shù)據(jù)抽象級(jí)別軟件系統(tǒng)層次用戶DBA系統(tǒng)程序員各種人員的數(shù)據(jù)視圖89數(shù)據(jù)庫管理員(DBA)負(fù)責(zé)全面管理和控制數(shù)據(jù)庫系統(tǒng)。主要職責(zé)有:1)決定數(shù)據(jù)庫中的信息內(nèi)容和結(jié)構(gòu)2)決定數(shù)據(jù)庫的存儲(chǔ)結(jié)構(gòu)和存取策略3)定義數(shù)據(jù)的安全性要求和完整性約束條件4)監(jiān)控?cái)?shù)據(jù)庫的使用和運(yùn)行5)負(fù)責(zé)數(shù)據(jù)庫性能的改進(jìn)和數(shù)據(jù)庫的重組及重構(gòu)工作。重組重構(gòu)901.4.3用戶通過DBMS訪問數(shù)據(jù)庫的過程應(yīng)用程序/用戶DB系統(tǒng)緩沖區(qū)DBMSDBOS外模式模式內(nèi)模式用戶訪問數(shù)據(jù)庫的過程91DBMS的工作模式數(shù)據(jù)請(qǐng)求數(shù)據(jù)(處理結(jié)果)低層命令數(shù)據(jù)(查詢結(jié)果)
DB物理數(shù)據(jù)庫DBMS操作系統(tǒng)(OS)用戶應(yīng)用程序921.5數(shù)據(jù)庫管理系統(tǒng)1.5.1數(shù)據(jù)庫管理系統(tǒng)的主要功能數(shù)據(jù)庫定義功能數(shù)據(jù)庫管理功能數(shù)據(jù)庫的建立和維護(hù)功能數(shù)據(jù)組織、存儲(chǔ)和管理功能通信功能931.5.2數(shù)據(jù)庫管理系統(tǒng)應(yīng)該滿足的要求容易使用;數(shù)據(jù)處理速度快、能力強(qiáng)具有可發(fā)展性具有邏輯數(shù)據(jù)獨(dú)立性和物理數(shù)據(jù)獨(dú)立性確保數(shù)據(jù)的完整性具有良好的數(shù)據(jù)保密性和安全性兼容性好邏輯數(shù)據(jù)結(jié)構(gòu)簡單強(qiáng)有力的用戶語言941.5.3數(shù)據(jù)庫管理系統(tǒng)程序模塊的組成951.5.4數(shù)據(jù)庫管理系統(tǒng)的層次結(jié)構(gòu)961.5.5常見的數(shù)據(jù)庫管理系統(tǒng)
MicrosoftAccess
Oracle
MicrosoftSQLServer971.5.5常見的數(shù)據(jù)庫管理系統(tǒng)
OracleDatabase,又名OracleRDBMS,或簡稱Oracle。是甲骨文公司的一款關(guān)系數(shù)據(jù)庫管理系統(tǒng)。到目前仍在數(shù)據(jù)庫市場上占有主要份額。勞倫斯·埃里森和他的朋友,之前的同事BobMiner和EdOates在1977年建立了軟件開發(fā)實(shí)驗(yàn)室咨詢公司(SDL,SoftwareDevelopmentLaboratories)。SDL開發(fā)了Oracle軟件的最初版本。Oracle的名稱來自于埃里森在Ampex工作時(shí)參加的一個(gè)由中央情報(bào)局創(chuàng)建的項(xiàng)目的代碼名稱。981.5.5常見的數(shù)據(jù)庫管理系統(tǒng)
SQLServer是一個(gè)關(guān)系數(shù)據(jù)庫管理系統(tǒng)。它最初是由MicrosoftSybase和Ashton-Tate三家公司共同開發(fā)的,于1988年推出了第一個(gè)OS/2版本。在WindowsNT推出后,Microsoft與Sybase在SQLServer的開發(fā)上就分道揚(yáng)鑣了,Microsoft將SQLServer移植到WindowsNT系統(tǒng)上,專注于開發(fā)推廣SQLServer的WindowsNT版本。Sybase則較專注于SQLServer在UNIX操作系統(tǒng)上的應(yīng)用。SQLServer2000是Microsoft公司推出的SQLServer數(shù)據(jù)庫管理系統(tǒng),該版本繼承了SQLServer7.0版本的優(yōu)點(diǎn),同時(shí)又比它增加了許多更先進(jìn)的功能。具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn),可跨越從運(yùn)行MicrosoftWindows98到運(yùn)行MicrosoftWindows2000的大型多處理器的服務(wù)器等多種平臺(tái)使用。991.5.5常見的數(shù)據(jù)庫管理系統(tǒng)
Access是微軟把數(shù)據(jù)庫引擎的圖形用戶界面和軟件開發(fā)工具結(jié)合在一起的一個(gè)數(shù)據(jù)庫管理系統(tǒng),它是微軟OFFICE的一個(gè)成員。優(yōu)點(diǎn):簡單易學(xué)使用方便100單用戶結(jié)構(gòu)1.6數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)概述101集中式結(jié)構(gòu)102分布式結(jié)構(gòu):數(shù)據(jù)在邏輯上相關(guān)、物理上分布,既能執(zhí)行局部應(yīng)用又能執(zhí)行全局應(yīng)用的結(jié)構(gòu)。103客戶/服務(wù)器(C/S)結(jié)構(gòu):根據(jù)客戶端和服務(wù)器端所完成的功能可以劃分出多種方案,但目的是在給定環(huán)境下使Client和Server上負(fù)載均衡分配、減少網(wǎng)上的數(shù)據(jù)傳輸量,以獲得系統(tǒng)的更高運(yùn)行性能。104基于Web的數(shù)據(jù)庫系統(tǒng):主要研究有效地訪問和管理Web上的信息,簡稱Web數(shù)據(jù)庫系統(tǒng)。多層B/S模式結(jié)構(gòu)105數(shù)據(jù)庫技術(shù)研究的領(lǐng)域數(shù)據(jù)庫管理系統(tǒng)軟件的研制數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫理論1061072.1
關(guān)系模型
2.2
關(guān)系代數(shù)*2.3
關(guān)系演算
2.4
查詢優(yōu)化
2.5
關(guān)系系統(tǒng)1082.1關(guān)系模型2.1.1關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系的非形式化定義:滿足一定條件的二維表?;拘g(shù)語1.域:一組具有相同數(shù)據(jù)類型的值的集合。1092.笛卡爾積(CartesianProduct)給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D2,…,Dn的笛卡爾積為:
D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}元組(Tuple):每一個(gè)元素(d1,d2,…,dn)分量:元素中的每一個(gè)值di若Di(i=1,2,…,n)為有限集,其基數(shù)(Cardinalnumber)為mi(i=1,2,…,n),則D1×D2×…×Dn的基數(shù)為:
n
M=∏mi
i=1
2.1關(guān)系模型110例如:D1={孫悟空,宋江,林黛玉}D2={男,女}D3={西游記,水滸傳,紅樓夢}D1ХD2ХD3={{孫悟空,男},{宋江,男},{林黛玉,男},{孫悟空,女},{宋江,女},{林黛玉,女}}ХD3={{孫悟空,男,西游記},{宋江,男,西游記},{林黛玉,男,西游記},{孫悟空,女,西游記},{宋江,女,西游記},{林黛玉,女,西游記},
{孫悟空,男,水滸傳},{宋江,男,水滸傳},{林黛玉,男,水滸傳},{孫悟空,女,水滸傳},{宋江,女,水滸傳},{林黛玉,女,水滸傳},
{孫悟空,男,紅樓夢},{宋江,男,紅樓夢},{林黛玉,男,紅樓夢},{孫悟空,女,紅樓夢},{宋江,女,紅樓夢},{林黛玉,女,紅樓夢}}
2.1關(guān)系模型1113.關(guān)系(Relation)的數(shù)學(xué)定義
D1×D2×…×Dn的子集叫作在域D1、D2、…、Dn上的關(guān)系,用
R(D1,D2,…,Dn)表示。R:關(guān)系的名字n:關(guān)系的目或度(Degree)。單元關(guān)系(Unaryrelation)n=1二元關(guān)系(Binaryrelation)n=22.1關(guān)系模型112
小說名
人物名
性別西游記孫悟空
男水滸傳宋江
男紅樓夢林黛玉
女小說人物對(duì)照表對(duì)于一個(gè)笛卡爾積只有取它的子集才有意義,這也和用戶看待的二維表一樣,只有滿足一定條件的二維表才是研究的對(duì)象。2.1關(guān)系模型1134.碼候選碼(CandidateKey):在一個(gè)關(guān)系中,能惟一標(biāo)識(shí)元組的屬性或最小屬性集稱為關(guān)系的候選碼。主碼(PrimaryKey):若一個(gè)關(guān)系中有多個(gè)候選碼,則選其中的一個(gè)為主碼。包含在任何一個(gè)候選碼中的屬性稱為主屬性(PrimaryAttribute),不包含在任何候選碼中的屬性稱為非主屬性(Non-primaryAttribute)或非碼屬性(Non-keyAttribute)。2.1關(guān)系模型114外碼(ForeignKey):設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,但不是R的碼。Ks是基本關(guān)系S的主碼。如果F與Ks相對(duì)應(yīng),則稱F是R的外碼。并稱基本關(guān)系R為參照關(guān)系(ReferencingRelation),基本關(guān)系S為被參照關(guān)系(ReferencedRelationship)。2.1關(guān)系模型4.碼115例如:學(xué)生關(guān)系和專業(yè)關(guān)系分別為:學(xué)生(學(xué)生編號(hào),姓名,性別,年齡,專業(yè)編號(hào),身份證號(hào)碼)專業(yè)(專業(yè)編號(hào),專業(yè)名稱,專業(yè)負(fù)責(zé)人)在關(guān)系數(shù)據(jù)庫中,表與表的聯(lián)系就是通過公共屬性實(shí)現(xiàn)的,這個(gè)公共屬性是一個(gè)表的主碼和另外一個(gè)表的外碼
2.1關(guān)系模型4.碼1165.關(guān)系的性質(zhì)1)分量必須取原子值2)列是同質(zhì)的,即每一列的分量是同一類型的數(shù)據(jù),來自同一個(gè)域。3)表中的列稱為屬性,給每列起一個(gè)名稱即屬性名,不同屬性要起不同的屬性名。4)列的順序無關(guān)5)關(guān)系中任意兩行不能相同。6)行的順序無關(guān)。2.1關(guān)系模型1172.1.2關(guān)系操作1操作對(duì)象是關(guān)系2基本操作方式
屬性指定元祖選擇關(guān)系合并
元組插入元組刪除檢索更新2.1關(guān)系模型118關(guān)系代數(shù)語言關(guān)系演算語言具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言域關(guān)系數(shù)據(jù)語言元組關(guān)系數(shù)據(jù)語言ISBLAPLHAQUELQBESQL關(guān)系數(shù)據(jù)語言關(guān)系數(shù)據(jù)語言2.1關(guān)系模型1192.1.3關(guān)系完整性約束實(shí)體完整性參照完整性用戶自定義完整性2.1關(guān)系模型120實(shí)體完整性規(guī)則:若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。2.1關(guān)系模型121導(dǎo)師編號(hào)姓名性別職稱1001劉易男副教授1002張清枚男教授1003王敏女教授研究生編號(hào)姓名性別研究方向?qū)熅幪?hào)2004001李勇男網(wǎng)絡(luò)安全10012004002劉晨女IPv610022004003張三男數(shù)據(jù)倉庫10032004004李立男數(shù)據(jù)挖掘10022004005趙兵男網(wǎng)格安全導(dǎo)師研究生2.1關(guān)系模型122外碼:設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系R的碼。如果F與基本關(guān)系S的主碼Ks相對(duì)應(yīng),則稱F是基本關(guān)系R的外碼。規(guī)則:若F是基本關(guān)系R的外碼,并與S的主碼Ks相對(duì)應(yīng),則對(duì)于R中每個(gè)元組在F上的值必須為:取空值(F的每個(gè)屬性值均為空值)等于S中某個(gè)元組的主碼值參照完整性2.1關(guān)系模型參照完整性123例如:學(xué)生(學(xué)號(hào)、姓名、性別…)課程(課程號(hào)、課程名、學(xué)時(shí)…)學(xué)習(xí)(學(xué)號(hào)、課程號(hào)、成績)思考:每個(gè)關(guān)系的主碼哪個(gè)關(guān)系有外碼2.1關(guān)系模型124某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。職稱(助教,講師,副教授,教授)性別(男,女)用戶自定義的完整性2.1關(guān)系模型2.1
關(guān)系模型
2.2
關(guān)系代數(shù)*2.3
關(guān)系演算
2.4
查詢優(yōu)化
2.5
關(guān)系系統(tǒng)
概述傳統(tǒng)的集合運(yùn)算專門的關(guān)系運(yùn)算2.2關(guān)系代數(shù)概述1.關(guān)系代數(shù)2.關(guān)系代數(shù)運(yùn)算的三個(gè)要素3.關(guān)系代數(shù)運(yùn)算的分類4.表示記號(hào)2.2關(guān)系代數(shù)1.關(guān)系代數(shù)用戶對(duì)關(guān)系數(shù)據(jù)的操作通過關(guān)系代數(shù)表達(dá)式描述。2.關(guān)系代數(shù)運(yùn)算的三個(gè)要素運(yùn)算對(duì)象:關(guān)系運(yùn)算結(jié)果:關(guān)系運(yùn)算符:四類2.2關(guān)系代數(shù)概述集合運(yùn)算符∪-∩×并差交廣義笛卡爾積比較運(yùn)算符>≥<≤=≠大于大于等于小于小于等于等于不等于運(yùn)算符含義運(yùn)算符含義表1關(guān)系代數(shù)運(yùn)算符
2.2關(guān)系代數(shù)概述專門的關(guān)系運(yùn)算符σπ
÷選擇投影連接除邏輯運(yùn)算符
∧∨非與或運(yùn)算符含義運(yùn)算符含義表2關(guān)系代數(shù)運(yùn)算符(續(xù))
2.2關(guān)系代數(shù)概述集合運(yùn)算將關(guān)系看成元組的集合運(yùn)算是從關(guān)系的“水平”方向即行的角度來進(jìn)行專門的關(guān)系運(yùn)算不僅涉及行而且涉及列算術(shù)比較輔助專門的關(guān)系運(yùn)算符進(jìn)行操作邏輯運(yùn)算輔助專門的關(guān)系運(yùn)算符進(jìn)行操作2.2關(guān)系代數(shù)概述3.關(guān)系代數(shù)運(yùn)算的分類 傳統(tǒng)的集合運(yùn)算并、差、交、廣義笛卡爾積 專門的關(guān)系運(yùn)算選擇、投影、連接、除2.2關(guān)系代數(shù)概述4.表示記號(hào)設(shè)關(guān)系模式為R(A1,A2,…,An)R,t
R,t[Ai]它的一個(gè)關(guān)系設(shè)為R。t
R表示t是R的一個(gè)元組t[Ai]則表示元組t中相應(yīng)于屬性Ai的一個(gè)分量2.2關(guān)系代數(shù)概述2.2
關(guān)系代數(shù)
概述
傳統(tǒng)的集合運(yùn)算
專門的關(guān)系運(yùn)算2.2.1傳統(tǒng)的集合運(yùn)算并差交廣義笛卡爾積1.并(Union)R和S(相容關(guān)系)具有相同的目n(即兩個(gè)關(guān)系都有n個(gè)屬性)相應(yīng)的屬性取自同一個(gè)域R∪S
仍為n目關(guān)系,由屬于R或?qū)儆赟的元組組成
R∪S={t|t
R∨t
S}2.2.1傳統(tǒng)的集合運(yùn)算ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪S
1.并(Union)2.2.1傳統(tǒng)的集合運(yùn)算R和S(相容關(guān)系)具有相同的目n相應(yīng)的屬性取自同一個(gè)域R-S
仍為n目關(guān)系,由屬于R而不屬于S的所有元組組成
R-S={t|t
R∧t
S}2.差(Difference)2.2.1傳統(tǒng)的集合運(yùn)算ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S
2.差(Difference)2.2.1傳統(tǒng)的集合運(yùn)算R和S(相容關(guān)系)具有相同的目n相應(yīng)的屬性取自同一個(gè)域R∩S仍為n目關(guān)系,由既屬于R又屬于S的元組組成
R∩S={t|t
R∧t
S} R∩S=R
–(R-S)3.交(Intersection)2.2.1傳統(tǒng)的集合運(yùn)算ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∩S
3.交(Intersection)2.2.1傳統(tǒng)的集合運(yùn)算Rn目關(guān)系,k1個(gè)元組Sm目關(guān)系,k2個(gè)元組R×S
列:(n+m)列的元組的集合元組的前n列是關(guān)系R的一個(gè)元組后m列是關(guān)系S的一個(gè)元組行:k1×k2個(gè)元組R×S={tr
ts|tr
R∧ts
S}4.廣義笛卡爾積(ExtendedCartesianProduct)2.2.1傳統(tǒng)的集合運(yùn)算ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×S
ABCa1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c14.廣義笛卡爾積(ExtendedCartesianProduct)2.2.1傳統(tǒng)的集合運(yùn)算2.2
關(guān)系代數(shù)概述傳統(tǒng)的集合運(yùn)算專門的關(guān)系運(yùn)算選擇投影連接除2.2.2專門的關(guān)系運(yùn)算1)選擇又稱為限制(Restriction)2)選擇運(yùn)算符的含義在關(guān)系R中選擇滿足給定條件的元組組成一個(gè)新的關(guān)系
σF(R)={t|t
R∧F(t)='真'}F:選擇條件,是由比較運(yùn)算符和/或邏輯運(yùn)算符組合構(gòu)成的表達(dá)式選擇運(yùn)算是單目運(yùn)算,運(yùn)算符為“σ”2.2.2專門的關(guān)系運(yùn)算1.選擇(Selection)3)選擇運(yùn)算是從行的角度進(jìn)行的運(yùn)算4)舉例 設(shè)有一個(gè)學(xué)生-課程數(shù)據(jù)庫,包括學(xué)生關(guān)系Student、課程關(guān)系Course和選修關(guān)系SC。σ2.2.2專門的關(guān)系運(yùn)算1.選擇(Selection)148學(xué)生學(xué)號(hào)姓名性別籍貫出生年份學(xué)院091501王英女河北1997計(jì)算機(jī)091502王小梅女江蘇2000信電091503張小飛男江西1996計(jì)算機(jī)091504孫志鵬男海南1998計(jì)算機(jī)091505徐穎女江蘇1997信電091506錢易蒙男河北2000外文………………2.2.2專門的關(guān)系運(yùn)算149[例1]查詢計(jì)算機(jī)全體學(xué)生情況
學(xué)院=“計(jì)算機(jī)”(學(xué)生)
6=“計(jì)算機(jī)”(學(xué)生)學(xué)號(hào)姓名性別籍貫出生年份學(xué)院091501王英女河北1997計(jì)算機(jī)091503張小飛男江西1996計(jì)算機(jī)091504孫志鵬男海南1998計(jì)算機(jī)………………2.2.2專門的關(guān)系運(yùn)算150選擇運(yùn)算的關(guān)鍵問題確定操作對(duì)象是哪個(gè)關(guān)系?操作的條件是什么?如何表示?2.2.2專門的關(guān)系運(yùn)算151[例2]查詢90年代出生的全體學(xué)生情況
出生年份>=1990∧出生年份<=1999
(學(xué)生)學(xué)號(hào)姓名性別籍貫出生年份學(xué)院091501王英女河北1997計(jì)算機(jī)091503張小飛男江西1996計(jì)算機(jī)091504孫志鵬男海南1998計(jì)算機(jī)091505徐穎女江蘇1997信電….……………2.2.2專門的關(guān)系運(yùn)算152[例3]查詢信電學(xué)院江蘇籍全體學(xué)生情況
學(xué)院=“信電”∧籍貫=“江蘇”(學(xué)生)學(xué)號(hào)姓名性別籍貫出生年份學(xué)院091502王小梅女江蘇2000信電091505徐穎女江蘇1997信電………………2.2.2專門的關(guān)系運(yùn)算153[例4]查詢江蘇或者河北全體學(xué)生情況
籍貫=“江蘇”∨籍貫=“河北”
(學(xué)生)學(xué)號(hào)姓名性別籍貫出生年份學(xué)院091501王英女河北1997計(jì)算機(jī)091502王小梅女江蘇2000信電091505徐穎女江蘇1997信電091506錢易蒙男河北2000外文………………2.2.2專門的關(guān)系運(yùn)算1)投影運(yùn)算符的含義從R中選擇出若干屬性列組成新的關(guān)系
πA(R)={t[A]|t
R} A:R中的屬性列
2.2.2專門的關(guān)系運(yùn)算2.投影(Projection)2)投影操作主要是從列的角度進(jìn)行運(yùn)算但投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組(避免重復(fù)行)π2.2.2專門的關(guān)系運(yùn)算2.投影(Projection)1562.2.2專門的關(guān)系運(yùn)算學(xué)生學(xué)號(hào)姓名性別籍貫出生年份學(xué)院091501王英女河北1997計(jì)算機(jī)091502王小梅女江蘇2000信電091503張小飛男江西1996計(jì)算機(jī)091504孫志鵬男海南1998計(jì)算機(jī)091505徐穎女江蘇1997信電091506錢易蒙男河北2000外文………………157[例5]查詢所有學(xué)生的姓名和籍貫
姓名,籍貫
(學(xué)生)
2,4
(學(xué)生)姓名籍貫王英河北王小梅江蘇張小飛江西孫志鵬海南徐穎江蘇錢易蒙河北….…2.2.2專門的關(guān)系運(yùn)算158[例6]查詢學(xué)生生源來自哪些省份?
籍貫(學(xué)生)籍貫河北江蘇江西海南…
4(學(xué)生)投影之后不僅取消了原關(guān)系中的某些列,而且還取消了某些元組。2.2.2專門的關(guān)系運(yùn)算159[例7]查找出生年份在1998年以前(不含1998年)的學(xué)生的姓名、籍貫及其出生年份情況。
Π姓名,籍貫,出生年份(σ出生年份<1998(學(xué)生))姓名籍貫出生年份王英河北1997張小飛江西1996徐穎江蘇1997………2.2.2專門的關(guān)系運(yùn)算1)連接也稱為θ連接2)連接運(yùn)算的含義從兩個(gè)關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組
RS={trts|tr
R∧ts
S∧tr[A]θts[B]}A和B:分別為R和S上度數(shù)相等且可比的屬性組θ:比較運(yùn)算符
連接運(yùn)算從R和S的廣義笛卡爾積R×S中選取(R關(guān)系)在A屬性組上的值與(S關(guān)系)在B屬性組上值滿足比較關(guān)系的元組。
AθB2.2.2專門的關(guān)系運(yùn)算3.連接(Join)3)兩類常用連接運(yùn)算等值連接(equijoin)什么是等值連接θ為“=”的連接運(yùn)算稱為等值連接
等值連接的含義從關(guān)系R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組,即等值連接為:RS={trts|tr
R∧ts
S∧tr[A]=ts[B]}A=B2.2.2專門的關(guān)系運(yùn)算3.連接(Join)自然連接(Naturaljoin)什么是自然連接自然連接是一種特殊的等值連接兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組在結(jié)果中把重復(fù)的屬性列去掉自然連接的含義
R和S具有相同的屬性組B
R
S={trts|tr
R∧ts
S∧tr[B]=ts[B]}2.2.2專門的關(guān)系運(yùn)算3.連接(Join)4)一般的連接操作是從行的角度進(jìn)行運(yùn)算。自然連接還需要取消重復(fù)列,所以是同時(shí)從行和列的角度進(jìn)行運(yùn)算。
AθBRS2.2.2專門的關(guān)系運(yùn)算3.連接(Join)5)舉例ABCa1b15a1b26a2b38BEb13b27b310b32RS2.2.2專門的關(guān)系運(yùn)算3.連接(Join)R
S
AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310
C<E2.2.2專門的關(guān)系運(yùn)算3.連接(Join)
等值連接R
SR.B=S.B
AR.BCS.BEa1b15b13a1b26b27a2b38b3102.2.2專門的關(guān)系運(yùn)算3.連接(Join)
自然連接R
S
ABCEa1b153a1b267a2b38102.2.2專門的關(guān)系運(yùn)算3.連接(Join)ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×S
R.AR.BR.C
a1b1c1
a1b1c1a1b1c1a1b2c2
a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1S.AS.BS.C
a1b2c2a1b3c2
a2b2c1a1b2c2a1b3c2
a2b2c1a1b2c2a1b3c2
a2b2c1R×S2.2.2專門的關(guān)系運(yùn)算3.連接(Join)169R.AR.BR.C
a1b1c1
a1b1c1a1b1c1a1b2c2
a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1S.AS.BS.C
a1b2c2a1b3c2
a2b2c1a1b2c2a1b3c2
a2b2c1a1b2c2a1b3c2
a2b2c1RSR.B≠S.BR.AR.BR.C
a1b1c1
a1b1c1a1b1c1a1b2c2a2b2c1S.AS.BS.C
a1b2c2a1b3c2
a2b2c1a1b3c2a1b3c2R×SR.AR.BR.CS.AS.BS.Ca1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a1b2c2a2b2c1a2b2c1RSR.B=S.BRS170關(guān)系SC和關(guān)系C的自然聯(lián)接SNOCNOGRADES3C387S1C288S4C379S9C483CNOCNAMECDEPTTNAMEC2離散數(shù)學(xué)計(jì)算機(jī)汪宏偉C3高等數(shù)學(xué)通信錢紅C4數(shù)據(jù)結(jié)構(gòu)計(jì)算機(jī)馬良C1計(jì)算機(jī)原理計(jì)算機(jī)李兵關(guān)系C關(guān)系SC第一步,計(jì)算SC×C;第二步,計(jì)算滿足SC.CNO=C.CNO條件的元組;第三步,去掉重復(fù)列,操作結(jié)果為:2.2.2專門的關(guān)系運(yùn)算171關(guān)系SC和關(guān)系C的自然聯(lián)接SNOCNOGRADECNAMECDEPTTNAMES3C387高等數(shù)學(xué)通訊錢紅S1C288離散數(shù)學(xué)計(jì)算機(jī)汪宏偉S4C379高等數(shù)學(xué)通信錢紅S9C483數(shù)據(jù)結(jié)構(gòu)計(jì)算機(jī)馬良2.2.2專門的關(guān)系運(yùn)算172自然連接和等值連接的區(qū)別①等值連接要求相等的分量,但不一定是公共屬性,而自然連接要求相等的分量必須是公共屬性②等值連接不做投影運(yùn)算,而自然連接要把重復(fù)的屬性去掉;③自然連接一定是等值連接,但等值連接不一定是自然連接。2.2.2專門的關(guān)系運(yùn)算173查詢選修課程號(hào)為180103的學(xué)生情況和課程號(hào)、成績
課程號(hào)=“180103”(學(xué)生課程)學(xué)生(
課程號(hào)=“180103”
(學(xué)習(xí)))
課程號(hào)=“180103”(學(xué)生學(xué)習(xí))學(xué)生(
課程號(hào)=“180103”
(課程))學(xué)生學(xué)習(xí)
課程號(hào)=“180103”
(課程)思考:1、找出全部課程的課程號(hào)2、找出每個(gè)學(xué)生選修的課程號(hào)3、每個(gè)學(xué)生選修的課程號(hào)是否包含全部課程的課程號(hào)?174查詢選修了全部課程的學(xué)生的學(xué)號(hào)?2.2.2專門的關(guān)系運(yùn)算象集Z給定一個(gè)關(guān)系R(X,Z),X和Z為屬性組。當(dāng)t[X]=x時(shí),x在R中的象集(ImagesSet)為:
Zx={t[Z]|t
R,t[X]=x}
它表示R中屬性組X上值為x的諸元組在Z上分量的集合。2.2.2專門的關(guān)系運(yùn)算5.除(Division)ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1RA=a1的象集BCb1c2b2c3b2c12.2.2專門的關(guān)系運(yùn)算5.除(Division)給定關(guān)系R(X,Y)
和S(Y,Z),其中X,Y,Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。R與S的除運(yùn)算得到一個(gè)新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。
R÷S={tr[X]|tr
R∧πY(S)
Yx}
Yx:x在R中的象集,x=tr[X]2.2.2專門的關(guān)系運(yùn)算5.除(Division)除操作是同時(shí)從行和列角度進(jìn)行運(yùn)算
÷RS2.2.2專門的關(guān)系運(yùn)算5.除(Division)ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2RS2.2.2專門的關(guān)系運(yùn)算5.除(Division)在關(guān)系R中,A可以取四個(gè)值{a1,a2,a3,a4}a1的象集為{(b1,c2),(b2,c3),(b2,c1)}
a2的象集為{(b3,c7),(b2,c3)}
a3的象集為{(b4,c6)}
a4的象集為{(b6,c6)}S在(B,C)上的投影為
{(b1,c2),(b2,c1),(b2,c3)}只有a1的象集包含了S在(B,C)屬性組上的投影所以R÷S={a1}Aa1R÷S2.2.2專門的關(guān)系運(yùn)算5.除(Division)181除法的代數(shù)表示方法R÷S=
x(R)—
x((
x(R)×
y(S))—R)2.2.2專門的關(guān)系運(yùn)算5.除(Division)學(xué)號(hào)課程號(hào)S1C1S1C2S2C1S2C2S2C3S3C2課程號(hào)C1C2C3第一步:求
x(R)
T=Π學(xué)號(hào)(SC)
SC(R)C(S)求選修了全部課程的學(xué)生學(xué)號(hào)學(xué)號(hào)S1S2S3課程號(hào)C1C2C3第三步:求T
S
學(xué)號(hào)S1S1S1學(xué)號(hào)C1C2C3S2S2S2S3C1C2C3C1S3S3C2C3第二步:求
y(S)S=Π課程號(hào)(C)
課程名高數(shù)英語體育學(xué)號(hào)課程號(hào)S1C1S1C2S2C1S2C2S2C3S3C2學(xué)號(hào)S2SC(R)第四步:計(jì)算W=(T
S)-RC(S)求選修了全部課程的學(xué)生學(xué)號(hào)課程號(hào)C1C2C3課程名高數(shù)英語體育第六步:R÷S=T-V學(xué)號(hào)課程號(hào)S1C3S3C1S3C3第五步:求
x(W)V=Π學(xué)號(hào)(W)學(xué)號(hào)S1S3SnoSnameSsexSageSdept95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004張立男19IS
Student5.綜合舉例2.2.2專門的關(guān)系運(yùn)算CourseCnoCnameCpnoCcredit1數(shù)據(jù)庫542數(shù)學(xué)
23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理
27PASCAL語言642.2.2專門的關(guān)系運(yùn)算
SnoCnoGrade9500119295001285950013889500229095002380SC2.2.2專門的關(guān)系運(yùn)算首先建立一個(gè)臨時(shí)關(guān)系K:
然后求:πSno,Cno(SC)÷K
Cno
1
3以學(xué)生-課程數(shù)據(jù)庫為例例
查詢至少選修1號(hào)課程和3號(hào)課程的學(xué)生學(xué)號(hào)2.2.2專門的關(guān)系運(yùn)算πSno.Cno(SC)SnoCno950011950012950013950022950023
95001象集{1,2,3} 95002象集{2,3}
πCno(K)={1,3}
于是:πSno,Cno(SC)÷K={95001}2.2.2專門的關(guān)系運(yùn)算例
查詢至少選修1號(hào)課程和3號(hào)課程的學(xué)生學(xué)號(hào)πSno,Cno(SC)÷πCno(σCno=‘1’∨Cno=‘3’(Course))={95001}2.2.2專門的關(guān)系運(yùn)算2.2.3關(guān)系代數(shù)舉例學(xué)號(hào)姓名性別籍貫出生年份學(xué)院090101王英女河北1989計(jì)算機(jī)090102王小梅女江蘇1990信電090103張小飛男宜昌1990計(jì)算機(jī)090104孫志鵬男海南1991計(jì)算機(jī)090105徐穎女江蘇1991信電090106錢易蒙男河北1990外文………………課程號(hào)課程名學(xué)時(shí)開課學(xué)期課程性質(zhì)180101數(shù)據(jù)結(jié)構(gòu)722必修180102操作系統(tǒng)883必修180103數(shù)據(jù)庫原理564必修……………學(xué)號(hào)課程號(hào)成績090101180101720901011801028809010118010377090102180101700901021801026509010218010370………學(xué)生學(xué)習(xí)課程(1)找出計(jì)算機(jī)學(xué)院女同學(xué)的名單Π姓名(σ學(xué)院=“計(jì)算機(jī)”∧性別=“女”(學(xué)生))(2)求選修180101號(hào)課程的學(xué)生名單Π姓名(σ課程號(hào)=“180101”(學(xué)習(xí)
學(xué)生))(3)求同時(shí)選修數(shù)據(jù)庫及數(shù)學(xué)的學(xué)生名單Π姓名,課程號(hào)(學(xué)習(xí)
學(xué)生)÷Π課程號(hào)(σ課程名=“數(shù)據(jù)庫”∨課程名=“數(shù)學(xué)”(課程))(4)沒有選修任何課程的學(xué)生名單及所在系Π姓名,學(xué)院(學(xué)生)-Π姓名,學(xué)院(學(xué)習(xí)
學(xué)生)1912.2.3關(guān)系代數(shù)舉例192與關(guān)系代數(shù)不同,關(guān)系演算是非過程化語言,它只描述所需要的信息,而不給出獲得該信息的具體過程。按照謂詞變元的不同,關(guān)系演算分為元組關(guān)系演算和域關(guān)系演算兩種。
*2.3關(guān)系演算元組關(guān)系是以元組變量作為謂詞變元的基本對(duì)象元組關(guān)系演算語言ALPHA
共有GET、PUT、HOLD、UPDATE、DELETE、DROP6條語句操作語句工作空間名(表達(dá)式):操作條件*2.3.1元組關(guān)系演算查詢所有學(xué)生的數(shù)據(jù)GETW(學(xué)生)查詢學(xué)生表中有哪些院系GETW(學(xué)生.學(xué)院)查詢所有1980年以后出生的學(xué)生學(xué)號(hào)和籍貫GET
W(學(xué)生.學(xué)號(hào),學(xué)生.籍貫):學(xué)生.出生年份>1980查詢所有學(xué)生的數(shù)據(jù),結(jié)果按出生年份降序排序GETW(學(xué)生)
DOWN出生年份*2.3.1元組關(guān)系演算查詢所有學(xué)生的數(shù)據(jù)GETW(學(xué)生)查詢學(xué)生表中有哪些院系GETW(學(xué)生.學(xué)院)查詢所有1980年以后出生的學(xué)生學(xué)號(hào)和籍貫GET
W(學(xué)生.學(xué)號(hào),學(xué)生.籍貫):學(xué)生.出生年份>1980查詢所有學(xué)生的數(shù)據(jù),結(jié)果按出生年份降序排序GETW(學(xué)生)
DOWN出生年份*2.3.1元組關(guān)系演算196域關(guān)系演算表達(dá)式的定義用域變量代替元組變量的每一個(gè)分量,域變量的變化范圍是某個(gè)值域而不是一個(gè)關(guān)系域關(guān)系演算的查詢表達(dá)式為:{t1,t2,…,tk|P(t1,t2,…,tk)}
其中t1,t2,…,tk代表域變量,P是域演算公式。*2.3.1域關(guān)系演算197用戶輸入查詢查詢的內(nèi)部表示執(zhí)行查詢步驟向用戶報(bào)告查詢結(jié)果查詢語句的句法分析查詢優(yōu)化處理查詢
1、響應(yīng)用戶查詢的一般過程
2.4查詢優(yōu)化198例:查詢學(xué)號(hào)為091502的學(xué)生選修的課程名稱。E1=π課程名(σ課程.學(xué)號(hào)=學(xué)習(xí).學(xué)號(hào)∧學(xué)習(xí).學(xué)號(hào)=‘091502’(課程×學(xué)習(xí)))E2=π課程名(σ課程.學(xué)號(hào)=學(xué)習(xí).學(xué)號(hào)(課程×σ學(xué)號(hào)=‘091502’(學(xué)習(xí))))E3=π課程名(課程∞σ學(xué)號(hào)=‘091502’(學(xué)習(xí)))查詢效率:E3>E2>E12.4.1查詢優(yōu)化的必要性199關(guān)系代數(shù)表達(dá)式的等價(jià)變換規(guī)則1)連接、笛卡爾積交換律
E1×E2≡E2×E1
E1E2≡E2E1
E1E2≡E2E1FF2)連接、笛卡爾積結(jié)合律
(E1×E2)×E3≡E1×(E2×E3)
(E1E2)E3≡E1(E2E3)
(E1E2)E3≡E1
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度殘障人士職業(yè)康復(fù)服務(wù)合同2篇
- 溫州職業(yè)技術(shù)學(xué)院《BM概論與實(shí)訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度智能設(shè)備租賃服務(wù)與技術(shù)支持合同2篇
- 二零二五年度金融資產(chǎn)證券化股份質(zhì)押交易合同3篇
- 2025年度學(xué)校窗簾更換及節(jié)能環(huán)保合同3篇
- 個(gè)人財(cái)產(chǎn)質(zhì)押借款協(xié)議書(2024年修訂)版
- 個(gè)人房產(chǎn)抵押貸款協(xié)議范本(2024版)版B版
- 渭南師范學(xué)院《樂理視唱二》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版簡易自愿離婚合同書范例一
- 二零二五年度新能源汽車采購合同質(zhì)量監(jiān)控與配送管理細(xì)則3篇
- 光伏工程各單位歸檔資料
- 《美麗中國是我家》 課件
- 全面依法治國
- GB/T 17215.304-2017交流電測量設(shè)備特殊要求第4部分:經(jīng)電子互感器接入的靜止式電能表
- 2023年最新的鄉(xiāng)鎮(zhèn)街道班子成員民主生活互相批評(píng)意見2023
- 商務(wù)溝通第二版第6章管理溝通
- 培訓(xùn)課件-核電質(zhì)保要求
- 過敏原檢測方法分析
- 室外給水排水和燃?xì)鉄崃こ炭拐鹪O(shè)計(jì)規(guī)范
- 【個(gè)人獨(dú)資】企業(yè)有限公司章程(模板)
- 外觀GRR考核表
評(píng)論
0/150
提交評(píng)論