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