關(guān)系數(shù)據(jù)庫基本原理關(guān)系模型和關(guān)系代數(shù)-課件_第1頁
關(guān)系數(shù)據(jù)庫基本原理關(guān)系模型和關(guān)系代數(shù)-課件_第2頁
關(guān)系數(shù)據(jù)庫基本原理關(guān)系模型和關(guān)系代數(shù)-課件_第3頁
關(guān)系數(shù)據(jù)庫基本原理關(guān)系模型和關(guān)系代數(shù)-課件_第4頁
關(guān)系數(shù)據(jù)庫基本原理關(guān)系模型和關(guān)系代數(shù)-課件_第5頁
已閱讀5頁,還剩117頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

關(guān)系數(shù)據(jù)庫基本原理

(1)關(guān)系模型與關(guān)系代數(shù)王傳棟南京郵電大學(xué)計算機學(xué)院關(guān)系數(shù)據(jù)庫基本原理

(1)關(guān)系模型與關(guān)系代數(shù)王傳棟內(nèi)容與要求知識點(1)知識點一:關(guān)系模型概述(2)知識點二:關(guān)系數(shù)據(jù)結(jié)構(gòu)(3)知識點三:關(guān)系代數(shù)理論(4)知識點四:關(guān)系數(shù)據(jù)庫標準語言SQL(5)知識點五:關(guān)系數(shù)據(jù)庫的規(guī)范化理論實驗1SQL語言的應(yīng)用教學(xué)基本要求了解關(guān)系數(shù)據(jù)結(jié)構(gòu)的基本概念,了解關(guān)系模型的各種操作和關(guān)系代數(shù)的基本原理,掌握關(guān)系數(shù)據(jù)模型的完整性約束機制,掌握SQL語言,了解函數(shù)依賴等基本概念,掌握關(guān)系模式的規(guī)范化概念、方法、原理與過程。內(nèi)容與要求知識點2引言關(guān)系模型是當前的主流邏輯數(shù)據(jù)模型由IBM公司的高級研究員E.F.Codd于1970年提出應(yīng)用廣泛的原因:單一的數(shù)據(jù)建模概念堅實的數(shù)學(xué)理論基礎(chǔ)提供高級接口:數(shù)據(jù)庫語言SQL引言關(guān)系模型是當前的主流邏輯數(shù)據(jù)模型3關(guān)系模型的基本概念關(guān)系模型(RelationalModel)用二維表格表示實體集,用關(guān)鍵碼表示實體之間聯(lián)系的數(shù)據(jù)模型稱為關(guān)系模型理解用二維表格(table)表示實體集及其間聯(lián)系,用關(guān)鍵碼(或鍵)進行數(shù)據(jù)導(dǎo)航關(guān)系模型是邏輯模型的一種,也具有三個要素關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系操作數(shù)據(jù)完整性約束規(guī)則關(guān)系模型的基本概念關(guān)系模型(RelationalModel4關(guān)系模型的基本概念示例關(guān)系模型的基本概念示例5關(guān)系模型的基本概念關(guān)系數(shù)據(jù)結(jié)構(gòu):二維表字段稱為屬性,也稱為列(column)反映事物的一個特征,每個字段都有字段名和字段值屬性的取值范圍(所有可取值的集合)稱為屬性域Domain大寫字母A、B、C、…表示單個屬性;大寫字母…、X、Y、Z表示屬性集小寫字母a、b、c、…表示屬性值記錄稱為元組(tuple),也稱為行(row)記錄類型稱為關(guān)系模式,由模式名和屬性列表組成元組集合稱為關(guān)系(relation)或?qū)嵗╥nstance),也稱為表格關(guān)系模型的基本概念關(guān)系數(shù)據(jù)結(jié)構(gòu):二維表6關(guān)系模型的基本概念關(guān)系數(shù)據(jù)結(jié)構(gòu):二維表元組用關(guān)鍵字(Keyword—簡稱鍵)來標識屬性個數(shù)稱為元數(shù)(Arity),也稱為目元組個數(shù)為基數(shù)(Cardinality)一般術(shù)語

關(guān)系模型術(shù)語字段、數(shù)據(jù)項 屬性記錄類型 關(guān)系模式記錄1 元組1記錄2 元組2記錄3 元組3記錄4 元組4字段值 屬性值文件關(guān)系R(A,B,C,D,E)關(guān)系模型的基本概念關(guān)系數(shù)據(jù)結(jié)構(gòu):二維表一般術(shù)語 關(guān)系模型術(shù)語7關(guān)系模型的基本概念關(guān)鍵碼(key,簡稱鍵)由一個或多個屬性組成。在實際使用中,有下列幾種鍵1)超鍵(SuperKey)其值能唯一地決定其它所有屬性的值的屬性集2)候選鍵(CandidateKey)不含多余屬性的超鍵其值能唯一地決定關(guān)系中其它所有屬性的值、而它的任何真子集無此性質(zhì)的屬性或?qū)傩越M3)主鍵(PrimaryKey)用戶選作元組標識的候選鍵,稱為主鍵(PK),簡稱鍵關(guān)系模型的基本概念關(guān)鍵碼(key,簡稱鍵)8關(guān)系模型的基本概念關(guān)鍵碼(key,簡稱鍵)4)候補鍵(AlternateKey)主鍵之外的候選鍵5)全鍵:由關(guān)系的所有屬性構(gòu)成的主鍵6)外鍵(ForeignKey,F(xiàn)K)如果模式R中的屬性K是其它模式的主鍵,那么K在模式R中稱為外鍵不是本關(guān)系的鍵,卻引用了其它關(guān)系或本關(guān)系的鍵的屬性或?qū)傩越M7)主屬性與非主屬性nSUPPLY(供應(yīng)商,零件名,工程名)

項目供應(yīng)mp零件供應(yīng)商關(guān)系模型的基本概念關(guān)鍵碼(key,簡稱鍵)nSUPPLY(供92.1關(guān)系模型的基本概念示例關(guān)系模式STUDENT(學(xué)號,姓名,性別,出生日期,籍貫)假設(shè):不允許學(xué)生重名,問:(學(xué)號,姓名,性別,出生日期,籍貫)?(學(xué)號,性別)?(學(xué)號,姓名)?(學(xué)號)?(姓名)?哪些是主屬性?2.1關(guān)系模型的基本概念示例10關(guān)系模型的基本概念關(guān)系的定義和性質(zhì)關(guān)系是一個屬性數(shù)目相同的元組的集合有限關(guān)系在關(guān)系模型中,關(guān)系的規(guī)范性限制:1)關(guān)系中每一個屬性值都是不可分解的(原子的)2)關(guān)系中不允許出現(xiàn)重復(fù)元組(即不允許出現(xiàn)相同的元組)3)由于關(guān)系是一個集合,因此不考慮元組間的順序,即沒有行序注:關(guān)系中元組的排列是有序的,取決于索引4)元組中的屬性在理論上也是無序的,但使用時按習(xí)慣考慮列的順序關(guān)系模型的基本概念關(guān)系的定義和性質(zhì)11關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則實體完整性規(guī)則(entityintegrityrule)關(guān)系內(nèi)的約束每個關(guān)系都應(yīng)有一個主鍵每個元組的主鍵的值應(yīng)當唯一;組成主鍵的屬性,不能有空值(NULL)否則,主鍵值就起不了惟一標識元組的作用關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則12關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則實體完整性規(guī)則(entityintegrityrule)例如關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則13關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則參照完整性規(guī)則(referenceintegrityrule)不同關(guān)系或同一關(guān)系的不同元組間的約束參照完整性規(guī)則的形式定義如果屬性集K是關(guān)系模式R1的主鍵,K也是關(guān)系模式R2的外鍵,那么在R2的關(guān)系中,K的取值只允許兩種可能,或者為空值,或者等于R1關(guān)系中某個主鍵值規(guī)則的實質(zhì):不允許引用不存在的實體在上述形式定義中關(guān)系模式R1的關(guān)系稱為“參照關(guān)系”,也稱“主表”、“父表”關(guān)系模式R2的關(guān)系稱為“依賴關(guān)系”,也稱“副表”、“子表”關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則14關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則參照完整性規(guī)則(referenceintegrityrule)規(guī)則在具體使用時,有三點變通:①外鍵和相應(yīng)主鍵可以不同名,只要定義在相同值域上即可②R1和R2可以是不同關(guān)系模式,也可以是同一個關(guān)系模式同一個關(guān)系模式中,表示了同一個關(guān)系中不同元組之間的聯(lián)系③外鍵值是否允許空,應(yīng)視具體問題而定當外鍵屬性是主鍵的組成成分時,不允許為空關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則15關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則參照完整性規(guī)則(referenceintegrityrule)示例關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則16關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則用戶定義的完整性規(guī)則和數(shù)據(jù)的具體內(nèi)容有關(guān)的約束構(gòu)建關(guān)系模式時,屬性的數(shù)據(jù)類型,可能滿足不了需求,需要顯式定義額外的約束規(guī)則說明CHECK()子句、觸發(fā)器、斷言、過程…說明各種DBMS產(chǎn)品對完整性約束的支持程度不同數(shù)據(jù)庫中完整性約束檢查,由DBMS實現(xiàn)對DB進行更新(I/D/U)操作時檢查,保證數(shù)據(jù)與現(xiàn)實世界的一致性關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則17關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則用戶定義的完整性規(guī)則示例1關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則18關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則用戶定義的完整性規(guī)則示例2關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則19關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)

關(guān)系模型也遵循數(shù)據(jù)庫的三級體系結(jié)構(gòu)關(guān)系模式記錄類型稱為關(guān)系模式關(guān)系模式的集合就是數(shù)據(jù)庫的概念模式,是問題域數(shù)據(jù)的全局邏輯視圖是對數(shù)據(jù)的特征描述,不涉及物理存儲方面的描述由數(shù)據(jù)定義語言(DDL)實現(xiàn)定義模式名、屬性名、值域、模式主鍵定義時,模式名和屬性名一般都用英文單詞表示關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)20關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)

關(guān)系模型也遵循數(shù)據(jù)庫的三級體系結(jié)構(gòu)關(guān)系模式

用戶(應(yīng)用程序)用戶記錄模式/內(nèi)模式映像外模式模式內(nèi)模式DB模式/外模式映像關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)用戶(應(yīng)用程序)21關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)

關(guān)系模型也遵循數(shù)據(jù)庫的三級體系結(jié)構(gòu)子模式是用戶所用到的局部數(shù)據(jù)的描述構(gòu)建子模式時,需要指出數(shù)據(jù)與關(guān)系模式中相應(yīng)數(shù)據(jù)的聯(lián)系由數(shù)據(jù)定義語言(DDL)實現(xiàn)定義時需要考慮用戶對數(shù)據(jù)的操作權(quán)限對子模式的操作(如插入、修改、刪除)是受限的關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)22關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)

關(guān)系模型也遵循數(shù)據(jù)庫的三級體系結(jié)構(gòu)子模式例如構(gòu)建成績子模式,要求顯示學(xué)號、姓名、課程號和成績G(S#,SNAME,C#,SCORE)

關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)G(S#,SNAME23關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)

關(guān)系模型也遵循數(shù)據(jù)庫的三級體系結(jié)構(gòu)子模式

用戶(應(yīng)用程序)用戶記錄模式/內(nèi)模式映像外模式模式內(nèi)模式DB模式/外模式映像關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)用戶(應(yīng)用程序)24關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)

關(guān)系模型也遵循數(shù)據(jù)庫的三級體系結(jié)構(gòu)存儲模式在有些DBMS中,關(guān)系存儲是作為文件看待的每個元組就是一個記錄由于關(guān)系模式有鍵,因此存儲一個關(guān)系可用散列方法或索引方法實現(xiàn)如果關(guān)系的元組數(shù)目較少(100個以內(nèi)),那么也可以用“堆文件”方式實現(xiàn)(即沒有特定的次序)可對任意的屬性集建立輔助索引關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)25關(guān)系模型的基本概念關(guān)系模型的形式定義和優(yōu)點關(guān)系模型的三個要素1)關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系,二維表數(shù)據(jù)庫中全部數(shù)據(jù)及其相互聯(lián)系都被組織成“關(guān)系”

2)關(guān)系操作一組完備的關(guān)系運算,支持對數(shù)據(jù)庫的各種操作關(guān)系運算分成關(guān)系代數(shù)、關(guān)系演算和關(guān)系邏輯等三類3)數(shù)據(jù)完整性約束規(guī)則實體完整性、參照完整性和用戶自定義的完整性關(guān)系模型的基本概念關(guān)系模型的形式定義和優(yōu)點26關(guān)系模型的基本概念關(guān)系模型的形式定義和優(yōu)點關(guān)系模型的優(yōu)點1)單一的數(shù)據(jù)結(jié)構(gòu)形式,具有高度的簡明性和精確性2)邏輯結(jié)構(gòu)和相應(yīng)的操作,完全獨立于數(shù)據(jù)存儲方式具有高度的數(shù)據(jù)獨立性3)堅實的數(shù)學(xué)基礎(chǔ)關(guān)系運算的完備性和規(guī)范化設(shè)計理論4)數(shù)據(jù)庫技術(shù)的基礎(chǔ)關(guān)系數(shù)據(jù)庫語言與一階謂詞邏輯的固有內(nèi)在聯(lián)系,為以關(guān)系數(shù)據(jù)庫為基礎(chǔ)的推理系統(tǒng)和知識庫系統(tǒng)研究提供了方便關(guān)系模型的基本概念關(guān)系模型的形式定義和優(yōu)點27關(guān)系模型的基本概念關(guān)系查詢語言和關(guān)系運算數(shù)據(jù)庫語言SQL分為:DDL,DML、QL和DCL數(shù)據(jù)操縱語言DML,描述插入、刪除、修改等操作查詢語言QL,描述用戶的各種檢索要求理論基礎(chǔ)是“關(guān)系運算理論”,分為3部分:1)關(guān)系代數(shù)語言2)關(guān)系演算語言3)關(guān)系邏輯語言關(guān)系模型的基本概念關(guān)系查詢語言和關(guān)系運算28關(guān)系代數(shù)五個基本操作并(Union)前提相同的關(guān)系模式(并兼容:兩關(guān)系具有相同的目,對應(yīng)屬性域相同且兩個關(guān)系的屬性排列次序一樣)定義R和S的并,是由屬于R或?qū)儆赟的元組構(gòu)成的集合記為R∪S形式定義R∪S≡{t|t∈R∨t∈S},t是元組變量關(guān)系代數(shù)五個基本操作29關(guān)系代數(shù)五個基本操作差(Difference)前提相同的關(guān)系模式(并兼容:兩關(guān)系具有相同的目,對應(yīng)屬性域相同且兩個關(guān)系的屬性排列次序一樣)定義R和S的差,是由屬于R但不屬于S的元組構(gòu)成的集合記為R-S形式定義R-S≡{t|t∈R∧t∈S},t是元組變量關(guān)系代數(shù)五個基本操作30關(guān)系代數(shù)五個基本操作笛卡爾積(CartesianProduct)形式定義假設(shè):R的元數(shù)r,基數(shù)為m;S的元數(shù)s,基數(shù)為nR×S≡{t|t=<tr,ts>∧tr∈R∧ts∈S}R×S的元數(shù)為r+s,基數(shù)m×n參與運算的R和S關(guān)系,不要求有同名屬性若有同名屬性,在屬性名前加“關(guān)系名.”來標注關(guān)系代數(shù)五個基本操作31關(guān)系代數(shù)五個基本操作投影(Projection)對關(guān)系進行垂直分割(感興趣的列),屬性可任意排列表示Π<屬性或序號列表>(<關(guān)系名>)形式定義Πi1,…,im(R)≡{t|t=<ti1,…,tim>∧<t1,…,tk>∈R}性質(zhì)Π<屬性表1>(Π<屬性表2>(R))≡Π<屬性表1>(R) 屬性表1∈屬性表2關(guān)系代數(shù)五個基本操作32關(guān)系代數(shù)五個基本操作選擇(Selection)據(jù)條件對關(guān)系做水平分割,選取符合條件的元組表示σ<選擇條件>(<關(guān)系名>)→σF(R),F(xiàn)是命題公式形式定義σF(R)={t|t∈R∧F(t)=true}性質(zhì)a)σ<F1>(σ<F2>(R))≡σ<F2>(σ<F1>(R))b)σ<F1>σ<F2>(

…(σ<Fn>(R)))

≡σ<F1>∧<F2>∧…∧<Fn>(R)關(guān)系代數(shù)五個基本操作33關(guān)系代數(shù)五個基本操作示例關(guān)系代數(shù)五個基本操作34關(guān)系代數(shù)四個組合操作交(intersection)前提相同的關(guān)系模式(并兼容:兩關(guān)系具有相同的目,對應(yīng)屬性域相同且兩個關(guān)系的屬性排列次序一樣)定義R和S的交,是由屬于R又屬于S的元組構(gòu)成的集合記為R∩S形式定義R∩S≡{t︱t∈R∧t∈S}推導(dǎo)R∩S=R-(R-S),或R∩S=S-(S-R)關(guān)系代數(shù)四個組合操作35關(guān)系代數(shù)四個組合操作交(intersection)示例關(guān)系代數(shù)四個組合操作36關(guān)系代數(shù)四個組合操作連接(join)形式定義R?

S≡{t︱t=<tr,ts>∧tr∈R∧ts∈S∧triθtsj}推導(dǎo)R?S≡σiθ(r+j)(R×S),其中r是關(guān)系R的元數(shù)表示連接是在(R×S)中,挑選第i個分量和第(r+j)個分量滿足θ操作的元組說明:兩個關(guān)系的同域?qū)傩员容^θ連接:θ{,,,,,}等值連接:θ{}F連接:FF1

∧…∧Fn,F(xiàn)k

iθj(∧、∨、┐)關(guān)系代數(shù)四個組合操作37關(guān)系代數(shù)四個組合操作連接(join)示例1)θ連接:R?

S,或R?

S2)等值連接:R?

S,或R?

S3)F連接:R?

S,或R?

S關(guān)系代數(shù)四個組合操作38關(guān)系代數(shù)四個組合操作自然連接(naturaljoin)兩個關(guān)系公共屬性上的等值連接推導(dǎo)R?S=Πi1,…im

(σR.A1=S.A1∧…∧R.Ak=S.Ak

(R×S))A1,…,Ak是關(guān)系R和S的公共屬性列表i1,…im是兩個關(guān)系屬性的并集計算過程1)計算R×S2)選擇:在R×S中,挑選滿足公共屬性相等的元組3)投影:在R×S中,去掉冗余屬性S.A1,…,S.Ak關(guān)系代數(shù)四個組合操作39關(guān)系代數(shù)四個組合操作自然連接(naturaljoin)示例R?S≡∏A,R.B,R.C,D(σR.B=S.B∧R.C=S.C(R×S))注:參與自然連接運算的2個關(guān)系,若沒有公共屬性,則自然連接運算自動轉(zhuǎn)化為笛卡爾積運算。關(guān)系代數(shù)四個組合操作40關(guān)系代數(shù)四個組合操作除法(division)前提R中的屬性包含S中的屬性R(X,Y),S(Y)作用R÷S是滿足下列條件的最大關(guān)系,屬性由R中那些不出現(xiàn)在S的屬性組成,(R÷S)

S的每個元組都在關(guān)系R中計算過程:R÷S=ΠX(R)–ΠX((ΠX(R)S)–R)1)T=∏X(R);X為不包含在S中的屬性2)W=(T×S)-R;計算T×S中不在R的元組3)V=∏X(W)4)R÷S=T-V關(guān)系代數(shù)四個組合操作41

C

D

c

d

e

fS→

A

B

C

D

a

b

c

d

a

b

e

f

a

b

d

e

b

c

e

f

e

d

c

d

e

d

e

fR→

關(guān)系代數(shù)四個組合操作除法(division)示例

bccd被除關(guān)系對除關(guān)系有覆蓋CDcdefS→42關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例關(guān)系代數(shù)表達式五個基本操作的有限次復(fù)合的式子表達式的運算結(jié)果仍是一個關(guān)系用關(guān)系代數(shù)表達式表示各種數(shù)據(jù)查詢操作關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例43關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例關(guān)系代數(shù)表達式示例關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例44關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例1)檢索學(xué)習(xí)課程號為C2課程的學(xué)生學(xué)號與成績ΠSNO,Grade(σCNO='C2'(SC))Π1,3(σ2='C2'(SC))σCNO='C2'

(ΠSNO,Grade(SC))σ2='C2'

(Π1,3(SC))關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例45關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例1)檢索學(xué)習(xí)課程號為C2課程的學(xué)生學(xué)號與成績ΠSNO,Grade(σCNO='C2'(SC))σCNO='C2'

(ΠSNO,Grade(SC))╳σΠΠσ對應(yīng)的查詢:SelectSno,GradeFromSCWhereCno=‘C2’;關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例╳σΠΠσ對應(yīng)的查詢:46關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例2)檢索學(xué)習(xí)課程號為C2的學(xué)生學(xué)號與姓名ΠSNO,SNAME(σCNO='C2'(S?SC))查詢涉及到兩個關(guān)系S與SC,先要對這兩個關(guān)系進行自然連接操作,然后再執(zhí)行選擇和投影操作關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例47關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例2)檢索學(xué)習(xí)課程號為C2的學(xué)生學(xué)號與姓名ΠSNO,SNAME(σCNO='C2'(S?SC))?關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例?48關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例2)檢索學(xué)習(xí)課程號為C2的學(xué)生學(xué)號與姓名ΠSNO,SNAME(σCNO='C2'(S?SC))Πσ對應(yīng)的查詢:SelectSNO,SNAMEFromS,SCWhereS.Sno=SC.SnoandCno=‘C2’;關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例Πσ對應(yīng)的查詢:49關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例3)檢索至少選修LIU老師所授課程一門課程的學(xué)

生學(xué)號與姓名ΠSNO,SNAME(σTNAME='LIU'(S?SC?C?T))對應(yīng)的查詢:SelectS.Sno,SnameFromS,SC,C,TWhereTname=‘LIU’andS.Sno=SC.SnoandSC.Cno=C.Cno andC.TNO=T.Tno;關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例對應(yīng)的查詢:50關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例4)檢索選修課程號為C2或C4的學(xué)生學(xué)號ΠSNO(σCNO='C2‘∨CNO='C4'(SC))σΠ對應(yīng)的查詢2:SelectSnoFromSCWhereCnoin(‘C2’,‘C4’);對應(yīng)的查詢1:SelectSnoFromSCWhereCno=‘C2’orCno=‘C4’;對應(yīng)的查詢3:SelectSnoFromSCWhereCno=SOME(‘C2’,‘C4’);關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例σΠ對應(yīng)的查詢2:對應(yīng)的查詢151關(guān)系代數(shù)運算的應(yīng)用實例5)檢索至少選修課程號為C2和C4的學(xué)生學(xué)號ΠSNO(σCNO='C2‘∧CNO='C4'(SC))關(guān)系代數(shù)╳σΠ關(guān)系代數(shù)運算的應(yīng)用實例關(guān)系代數(shù)╳σΠ52關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例5)檢索至少選修課程號為C2和C4的學(xué)生學(xué)號Π1(σ1=4∧2='C2‘∧5='C4'(SC×SC))×對應(yīng)的查詢:SelectX.SnoFromSCasX,SCasYWhereX.Sno=Y.SnoandX.Cno=‘C2’andY.Cno=‘C4’;關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例×對應(yīng)的查詢:53關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例6)檢索不學(xué)C2課的學(xué)生姓名與年齡ΠSNAME,AGE(σCNO<>'C2'(S?SC))?連接查詢關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例?連接查詢54關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例6)檢索不學(xué)C2課的學(xué)生姓名與年齡ΠSNAME,AGE(σCNO<>'C2'(S?SC))Πσ結(jié)論:連接查詢不能解決否定問題!關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例Πσ結(jié)論:55關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例6)檢索不學(xué)C2課的學(xué)生姓名與年齡ΠSNAME,AGE(S)-ΠSNAME,AGE(σCNO='C2‘(S?SC))差操作先求出全體學(xué)生的姓名和年齡再求出學(xué)了C2課的學(xué)生的姓名和年齡最后執(zhí)行差操作-對應(yīng)的查詢:SelectSname,AgeFromSWhereSnonotin( SelectSnoFromSCWhereCno=‘C2’);關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例-對應(yīng)的查詢:56關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例7)檢索學(xué)習(xí)全部課程的學(xué)生姓名ΠSNAME(S?(ΠSNO,CNO(SC)÷ΠCNO(C)))ΠΠ÷Π?關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例ΠΠ÷Π?57關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例7)檢索學(xué)習(xí)全部課程的學(xué)生姓名①投影出所有學(xué)生的選課情況ΠSNO,CNO(SC)②投影出全部課程的課程號ΠCNO(C)③用除法計算學(xué)了全部課程的學(xué)生學(xué)號集合(臨時關(guān)系)ΠSNO,CNO(SC)÷ΠCNO(C)④用③得到的關(guān)系與S自然聯(lián)接,最后投影出SNAMEΠSNAME(S?(ΠSNO,CNO(SC)÷ΠCNO(C)))對應(yīng)的查詢:SelectSnameFromSWherenotExists(Select*FromCWherenotExists( Select*FromSC WhereSno=S.SnoandCno=C.Cno));關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例對應(yīng)的查詢:58關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例8)檢索所學(xué)課程包含學(xué)生S3所學(xué)課程的學(xué)生學(xué)號ΠSNO,CNO(SC)÷ΠCNO(σSNO='S3‘(SC))ΠσΠ÷?Π?關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例ΠσΠ÷?Π?59關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例8)檢索所學(xué)課程包含學(xué)生S3所學(xué)課程的學(xué)生學(xué)號①投影出所有學(xué)生的選課情況ΠSNO,CNO(SC)②投影出學(xué)生S3所學(xué)的全部課程的課程號ΠCNO(σSNO='S3‘(SC))③用除法計算所學(xué)課程包含學(xué)生S3所學(xué)課程的學(xué)生學(xué)號ΠSNO,CNO(SC)÷ΠCNO(σSNO='S3‘(SC))注③式與S自然連接,投影Π……(S?(③))?對應(yīng)的查詢:SelectDistinctSnoFromSCasXWherenotExists(Select*FromSCasYWhereY.Sno=‘S3’andnotExists(Select*FromSCasZWhereSno=X.SnoandCno=Y.Cno));關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例?對應(yīng)的查詢:60關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例總結(jié)查詢語句的關(guān)系代數(shù)表達式的一般形式是:Π…(σ…(R×S)) 或者Π…(σ…(R?S))先選擇,后投影查詢涉及到“否定”問題,用減法(差)來解決查詢涉及到“全部”問題,用除法來解決關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例61關(guān)系數(shù)據(jù)庫基本原理

(1)關(guān)系模型與關(guān)系代數(shù)王傳棟南京郵電大學(xué)計算機學(xué)院關(guān)系數(shù)據(jù)庫基本原理

(1)關(guān)系模型與關(guān)系代數(shù)王傳棟內(nèi)容與要求知識點(1)知識點一:關(guān)系模型概述(2)知識點二:關(guān)系數(shù)據(jù)結(jié)構(gòu)(3)知識點三:關(guān)系代數(shù)理論(4)知識點四:關(guān)系數(shù)據(jù)庫標準語言SQL(5)知識點五:關(guān)系數(shù)據(jù)庫的規(guī)范化理論實驗1SQL語言的應(yīng)用教學(xué)基本要求了解關(guān)系數(shù)據(jù)結(jié)構(gòu)的基本概念,了解關(guān)系模型的各種操作和關(guān)系代數(shù)的基本原理,掌握關(guān)系數(shù)據(jù)模型的完整性約束機制,掌握SQL語言,了解函數(shù)依賴等基本概念,掌握關(guān)系模式的規(guī)范化概念、方法、原理與過程。內(nèi)容與要求知識點63引言關(guān)系模型是當前的主流邏輯數(shù)據(jù)模型由IBM公司的高級研究員E.F.Codd于1970年提出應(yīng)用廣泛的原因:單一的數(shù)據(jù)建模概念堅實的數(shù)學(xué)理論基礎(chǔ)提供高級接口:數(shù)據(jù)庫語言SQL引言關(guān)系模型是當前的主流邏輯數(shù)據(jù)模型64關(guān)系模型的基本概念關(guān)系模型(RelationalModel)用二維表格表示實體集,用關(guān)鍵碼表示實體之間聯(lián)系的數(shù)據(jù)模型稱為關(guān)系模型理解用二維表格(table)表示實體集及其間聯(lián)系,用關(guān)鍵碼(或鍵)進行數(shù)據(jù)導(dǎo)航關(guān)系模型是邏輯模型的一種,也具有三個要素關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系操作數(shù)據(jù)完整性約束規(guī)則關(guān)系模型的基本概念關(guān)系模型(RelationalModel65關(guān)系模型的基本概念示例關(guān)系模型的基本概念示例66關(guān)系模型的基本概念關(guān)系數(shù)據(jù)結(jié)構(gòu):二維表字段稱為屬性,也稱為列(column)反映事物的一個特征,每個字段都有字段名和字段值屬性的取值范圍(所有可取值的集合)稱為屬性域Domain大寫字母A、B、C、…表示單個屬性;大寫字母…、X、Y、Z表示屬性集小寫字母a、b、c、…表示屬性值記錄稱為元組(tuple),也稱為行(row)記錄類型稱為關(guān)系模式,由模式名和屬性列表組成元組集合稱為關(guān)系(relation)或?qū)嵗╥nstance),也稱為表格關(guān)系模型的基本概念關(guān)系數(shù)據(jù)結(jié)構(gòu):二維表67關(guān)系模型的基本概念關(guān)系數(shù)據(jù)結(jié)構(gòu):二維表元組用關(guān)鍵字(Keyword—簡稱鍵)來標識屬性個數(shù)稱為元數(shù)(Arity),也稱為目元組個數(shù)為基數(shù)(Cardinality)一般術(shù)語

關(guān)系模型術(shù)語字段、數(shù)據(jù)項 屬性記錄類型 關(guān)系模式記錄1 元組1記錄2 元組2記錄3 元組3記錄4 元組4字段值 屬性值文件關(guān)系R(A,B,C,D,E)關(guān)系模型的基本概念關(guān)系數(shù)據(jù)結(jié)構(gòu):二維表一般術(shù)語 關(guān)系模型術(shù)語68關(guān)系模型的基本概念關(guān)鍵碼(key,簡稱鍵)由一個或多個屬性組成。在實際使用中,有下列幾種鍵1)超鍵(SuperKey)其值能唯一地決定其它所有屬性的值的屬性集2)候選鍵(CandidateKey)不含多余屬性的超鍵其值能唯一地決定關(guān)系中其它所有屬性的值、而它的任何真子集無此性質(zhì)的屬性或?qū)傩越M3)主鍵(PrimaryKey)用戶選作元組標識的候選鍵,稱為主鍵(PK),簡稱鍵關(guān)系模型的基本概念關(guān)鍵碼(key,簡稱鍵)69關(guān)系模型的基本概念關(guān)鍵碼(key,簡稱鍵)4)候補鍵(AlternateKey)主鍵之外的候選鍵5)全鍵:由關(guān)系的所有屬性構(gòu)成的主鍵6)外鍵(ForeignKey,F(xiàn)K)如果模式R中的屬性K是其它模式的主鍵,那么K在模式R中稱為外鍵不是本關(guān)系的鍵,卻引用了其它關(guān)系或本關(guān)系的鍵的屬性或?qū)傩越M7)主屬性與非主屬性nSUPPLY(供應(yīng)商,零件名,工程名)

項目供應(yīng)mp零件供應(yīng)商關(guān)系模型的基本概念關(guān)鍵碼(key,簡稱鍵)nSUPPLY(供702.1關(guān)系模型的基本概念示例關(guān)系模式STUDENT(學(xué)號,姓名,性別,出生日期,籍貫)假設(shè):不允許學(xué)生重名,問:(學(xué)號,姓名,性別,出生日期,籍貫)?(學(xué)號,性別)?(學(xué)號,姓名)?(學(xué)號)?(姓名)?哪些是主屬性?2.1關(guān)系模型的基本概念示例71關(guān)系模型的基本概念關(guān)系的定義和性質(zhì)關(guān)系是一個屬性數(shù)目相同的元組的集合有限關(guān)系在關(guān)系模型中,關(guān)系的規(guī)范性限制:1)關(guān)系中每一個屬性值都是不可分解的(原子的)2)關(guān)系中不允許出現(xiàn)重復(fù)元組(即不允許出現(xiàn)相同的元組)3)由于關(guān)系是一個集合,因此不考慮元組間的順序,即沒有行序注:關(guān)系中元組的排列是有序的,取決于索引4)元組中的屬性在理論上也是無序的,但使用時按習(xí)慣考慮列的順序關(guān)系模型的基本概念關(guān)系的定義和性質(zhì)72關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則實體完整性規(guī)則(entityintegrityrule)關(guān)系內(nèi)的約束每個關(guān)系都應(yīng)有一個主鍵每個元組的主鍵的值應(yīng)當唯一;組成主鍵的屬性,不能有空值(NULL)否則,主鍵值就起不了惟一標識元組的作用關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則73關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則實體完整性規(guī)則(entityintegrityrule)例如關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則74關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則參照完整性規(guī)則(referenceintegrityrule)不同關(guān)系或同一關(guān)系的不同元組間的約束參照完整性規(guī)則的形式定義如果屬性集K是關(guān)系模式R1的主鍵,K也是關(guān)系模式R2的外鍵,那么在R2的關(guān)系中,K的取值只允許兩種可能,或者為空值,或者等于R1關(guān)系中某個主鍵值規(guī)則的實質(zhì):不允許引用不存在的實體在上述形式定義中關(guān)系模式R1的關(guān)系稱為“參照關(guān)系”,也稱“主表”、“父表”關(guān)系模式R2的關(guān)系稱為“依賴關(guān)系”,也稱“副表”、“子表”關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則75關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則參照完整性規(guī)則(referenceintegrityrule)規(guī)則在具體使用時,有三點變通:①外鍵和相應(yīng)主鍵可以不同名,只要定義在相同值域上即可②R1和R2可以是不同關(guān)系模式,也可以是同一個關(guān)系模式同一個關(guān)系模式中,表示了同一個關(guān)系中不同元組之間的聯(lián)系③外鍵值是否允許空,應(yīng)視具體問題而定當外鍵屬性是主鍵的組成成分時,不允許為空關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則76關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則參照完整性規(guī)則(referenceintegrityrule)示例關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則77關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則用戶定義的完整性規(guī)則和數(shù)據(jù)的具體內(nèi)容有關(guān)的約束構(gòu)建關(guān)系模式時,屬性的數(shù)據(jù)類型,可能滿足不了需求,需要顯式定義額外的約束規(guī)則說明CHECK()子句、觸發(fā)器、斷言、過程…說明各種DBMS產(chǎn)品對完整性約束的支持程度不同數(shù)據(jù)庫中完整性約束檢查,由DBMS實現(xiàn)對DB進行更新(I/D/U)操作時檢查,保證數(shù)據(jù)與現(xiàn)實世界的一致性關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則78關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則用戶定義的完整性規(guī)則示例1關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則79關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則用戶定義的完整性規(guī)則示例2關(guān)系模型的基本概念關(guān)系模型的完整性規(guī)則80關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)

關(guān)系模型也遵循數(shù)據(jù)庫的三級體系結(jié)構(gòu)關(guān)系模式記錄類型稱為關(guān)系模式關(guān)系模式的集合就是數(shù)據(jù)庫的概念模式,是問題域數(shù)據(jù)的全局邏輯視圖是對數(shù)據(jù)的特征描述,不涉及物理存儲方面的描述由數(shù)據(jù)定義語言(DDL)實現(xiàn)定義模式名、屬性名、值域、模式主鍵定義時,模式名和屬性名一般都用英文單詞表示關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)81關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)

關(guān)系模型也遵循數(shù)據(jù)庫的三級體系結(jié)構(gòu)關(guān)系模式

用戶(應(yīng)用程序)用戶記錄模式/內(nèi)模式映像外模式模式內(nèi)模式DB模式/外模式映像關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)用戶(應(yīng)用程序)82關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)

關(guān)系模型也遵循數(shù)據(jù)庫的三級體系結(jié)構(gòu)子模式是用戶所用到的局部數(shù)據(jù)的描述構(gòu)建子模式時,需要指出數(shù)據(jù)與關(guān)系模式中相應(yīng)數(shù)據(jù)的聯(lián)系由數(shù)據(jù)定義語言(DDL)實現(xiàn)定義時需要考慮用戶對數(shù)據(jù)的操作權(quán)限對子模式的操作(如插入、修改、刪除)是受限的關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)83關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)

關(guān)系模型也遵循數(shù)據(jù)庫的三級體系結(jié)構(gòu)子模式例如構(gòu)建成績子模式,要求顯示學(xué)號、姓名、課程號和成績G(S#,SNAME,C#,SCORE)

關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)G(S#,SNAME84關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)

關(guān)系模型也遵循數(shù)據(jù)庫的三級體系結(jié)構(gòu)子模式

用戶(應(yīng)用程序)用戶記錄模式/內(nèi)模式映像外模式模式內(nèi)模式DB模式/外模式映像關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)用戶(應(yīng)用程序)85關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)

關(guān)系模型也遵循數(shù)據(jù)庫的三級體系結(jié)構(gòu)存儲模式在有些DBMS中,關(guān)系存儲是作為文件看待的每個元組就是一個記錄由于關(guān)系模式有鍵,因此存儲一個關(guān)系可用散列方法或索引方法實現(xiàn)如果關(guān)系的元組數(shù)目較少(100個以內(nèi)),那么也可以用“堆文件”方式實現(xiàn)(即沒有特定的次序)可對任意的屬性集建立輔助索引關(guān)系模型的基本概念關(guān)系模型的三層體系結(jié)構(gòu)86關(guān)系模型的基本概念關(guān)系模型的形式定義和優(yōu)點關(guān)系模型的三個要素1)關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系,二維表數(shù)據(jù)庫中全部數(shù)據(jù)及其相互聯(lián)系都被組織成“關(guān)系”

2)關(guān)系操作一組完備的關(guān)系運算,支持對數(shù)據(jù)庫的各種操作關(guān)系運算分成關(guān)系代數(shù)、關(guān)系演算和關(guān)系邏輯等三類3)數(shù)據(jù)完整性約束規(guī)則實體完整性、參照完整性和用戶自定義的完整性關(guān)系模型的基本概念關(guān)系模型的形式定義和優(yōu)點87關(guān)系模型的基本概念關(guān)系模型的形式定義和優(yōu)點關(guān)系模型的優(yōu)點1)單一的數(shù)據(jù)結(jié)構(gòu)形式,具有高度的簡明性和精確性2)邏輯結(jié)構(gòu)和相應(yīng)的操作,完全獨立于數(shù)據(jù)存儲方式具有高度的數(shù)據(jù)獨立性3)堅實的數(shù)學(xué)基礎(chǔ)關(guān)系運算的完備性和規(guī)范化設(shè)計理論4)數(shù)據(jù)庫技術(shù)的基礎(chǔ)關(guān)系數(shù)據(jù)庫語言與一階謂詞邏輯的固有內(nèi)在聯(lián)系,為以關(guān)系數(shù)據(jù)庫為基礎(chǔ)的推理系統(tǒng)和知識庫系統(tǒng)研究提供了方便關(guān)系模型的基本概念關(guān)系模型的形式定義和優(yōu)點88關(guān)系模型的基本概念關(guān)系查詢語言和關(guān)系運算數(shù)據(jù)庫語言SQL分為:DDL,DML、QL和DCL數(shù)據(jù)操縱語言DML,描述插入、刪除、修改等操作查詢語言QL,描述用戶的各種檢索要求理論基礎(chǔ)是“關(guān)系運算理論”,分為3部分:1)關(guān)系代數(shù)語言2)關(guān)系演算語言3)關(guān)系邏輯語言關(guān)系模型的基本概念關(guān)系查詢語言和關(guān)系運算89關(guān)系代數(shù)五個基本操作并(Union)前提相同的關(guān)系模式(并兼容:兩關(guān)系具有相同的目,對應(yīng)屬性域相同且兩個關(guān)系的屬性排列次序一樣)定義R和S的并,是由屬于R或?qū)儆赟的元組構(gòu)成的集合記為R∪S形式定義R∪S≡{t|t∈R∨t∈S},t是元組變量關(guān)系代數(shù)五個基本操作90關(guān)系代數(shù)五個基本操作差(Difference)前提相同的關(guān)系模式(并兼容:兩關(guān)系具有相同的目,對應(yīng)屬性域相同且兩個關(guān)系的屬性排列次序一樣)定義R和S的差,是由屬于R但不屬于S的元組構(gòu)成的集合記為R-S形式定義R-S≡{t|t∈R∧t∈S},t是元組變量關(guān)系代數(shù)五個基本操作91關(guān)系代數(shù)五個基本操作笛卡爾積(CartesianProduct)形式定義假設(shè):R的元數(shù)r,基數(shù)為m;S的元數(shù)s,基數(shù)為nR×S≡{t|t=<tr,ts>∧tr∈R∧ts∈S}R×S的元數(shù)為r+s,基數(shù)m×n參與運算的R和S關(guān)系,不要求有同名屬性若有同名屬性,在屬性名前加“關(guān)系名.”來標注關(guān)系代數(shù)五個基本操作92關(guān)系代數(shù)五個基本操作投影(Projection)對關(guān)系進行垂直分割(感興趣的列),屬性可任意排列表示Π<屬性或序號列表>(<關(guān)系名>)形式定義Πi1,…,im(R)≡{t|t=<ti1,…,tim>∧<t1,…,tk>∈R}性質(zhì)Π<屬性表1>(Π<屬性表2>(R))≡Π<屬性表1>(R) 屬性表1∈屬性表2關(guān)系代數(shù)五個基本操作93關(guān)系代數(shù)五個基本操作選擇(Selection)據(jù)條件對關(guān)系做水平分割,選取符合條件的元組表示σ<選擇條件>(<關(guān)系名>)→σF(R),F(xiàn)是命題公式形式定義σF(R)={t|t∈R∧F(t)=true}性質(zhì)a)σ<F1>(σ<F2>(R))≡σ<F2>(σ<F1>(R))b)σ<F1>σ<F2>(

…(σ<Fn>(R)))

≡σ<F1>∧<F2>∧…∧<Fn>(R)關(guān)系代數(shù)五個基本操作94關(guān)系代數(shù)五個基本操作示例關(guān)系代數(shù)五個基本操作95關(guān)系代數(shù)四個組合操作交(intersection)前提相同的關(guān)系模式(并兼容:兩關(guān)系具有相同的目,對應(yīng)屬性域相同且兩個關(guān)系的屬性排列次序一樣)定義R和S的交,是由屬于R又屬于S的元組構(gòu)成的集合記為R∩S形式定義R∩S≡{t︱t∈R∧t∈S}推導(dǎo)R∩S=R-(R-S),或R∩S=S-(S-R)關(guān)系代數(shù)四個組合操作96關(guān)系代數(shù)四個組合操作交(intersection)示例關(guān)系代數(shù)四個組合操作97關(guān)系代數(shù)四個組合操作連接(join)形式定義R?

S≡{t︱t=<tr,ts>∧tr∈R∧ts∈S∧triθtsj}推導(dǎo)R?S≡σiθ(r+j)(R×S),其中r是關(guān)系R的元數(shù)表示連接是在(R×S)中,挑選第i個分量和第(r+j)個分量滿足θ操作的元組說明:兩個關(guān)系的同域?qū)傩员容^θ連接:θ{,,,,,}等值連接:θ{}F連接:FF1

∧…∧Fn,F(xiàn)k

iθj(∧、∨、┐)關(guān)系代數(shù)四個組合操作98關(guān)系代數(shù)四個組合操作連接(join)示例1)θ連接:R?

S,或R?

S2)等值連接:R?

S,或R?

S3)F連接:R?

S,或R?

S關(guān)系代數(shù)四個組合操作99關(guān)系代數(shù)四個組合操作自然連接(naturaljoin)兩個關(guān)系公共屬性上的等值連接推導(dǎo)R?S=Πi1,…im

(σR.A1=S.A1∧…∧R.Ak=S.Ak

(R×S))A1,…,Ak是關(guān)系R和S的公共屬性列表i1,…im是兩個關(guān)系屬性的并集計算過程1)計算R×S2)選擇:在R×S中,挑選滿足公共屬性相等的元組3)投影:在R×S中,去掉冗余屬性S.A1,…,S.Ak關(guān)系代數(shù)四個組合操作100關(guān)系代數(shù)四個組合操作自然連接(naturaljoin)示例R?S≡∏A,R.B,R.C,D(σR.B=S.B∧R.C=S.C(R×S))注:參與自然連接運算的2個關(guān)系,若沒有公共屬性,則自然連接運算自動轉(zhuǎn)化為笛卡爾積運算。關(guān)系代數(shù)四個組合操作101關(guān)系代數(shù)四個組合操作除法(division)前提R中的屬性包含S中的屬性R(X,Y),S(Y)作用R÷S是滿足下列條件的最大關(guān)系,屬性由R中那些不出現(xiàn)在S的屬性組成,(R÷S)

S的每個元組都在關(guān)系R中計算過程:R÷S=ΠX(R)–ΠX((ΠX(R)S)–R)1)T=∏X(R);X為不包含在S中的屬性2)W=(T×S)-R;計算T×S中不在R的元組3)V=∏X(W)4)R÷S=T-V關(guān)系代數(shù)四個組合操作102

C

D

c

d

e

fS→

A

B

C

D

a

b

c

d

a

b

e

f

a

b

d

e

b

c

e

f

e

d

c

d

e

d

e

fR→

關(guān)系代數(shù)四個組合操作除法(division)示例

bccd被除關(guān)系對除關(guān)系有覆蓋CDcdefS→103關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例關(guān)系代數(shù)表達式五個基本操作的有限次復(fù)合的式子表達式的運算結(jié)果仍是一個關(guān)系用關(guān)系代數(shù)表達式表示各種數(shù)據(jù)查詢操作關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例104關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例關(guān)系代數(shù)表達式示例關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例105關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例1)檢索學(xué)習(xí)課程號為C2課程的學(xué)生學(xué)號與成績ΠSNO,Grade(σCNO='C2'(SC))Π1,3(σ2='C2'(SC))σCNO='C2'

(ΠSNO,Grade(SC))σ2='C2'

(Π1,3(SC))關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例106關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例1)檢索學(xué)習(xí)課程號為C2課程的學(xué)生學(xué)號與成績ΠSNO,Grade(σCNO='C2'(SC))σCNO='C2'

(ΠSNO,Grade(SC))╳σΠΠσ對應(yīng)的查詢:SelectSno,GradeFromSCWhereCno=‘C2’;關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例╳σΠΠσ對應(yīng)的查詢:107關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例2)檢索學(xué)習(xí)課程號為C2的學(xué)生學(xué)號與姓名ΠSNO,SNAME(σCNO='C2'(S?SC))查詢涉及到兩個關(guān)系S與SC,先要對這兩個關(guān)系進行自然連接操作,然后再執(zhí)行選擇和投影操作關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例108關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例2)檢索學(xué)習(xí)課程號為C2的學(xué)生學(xué)號與姓名ΠSNO,SNAME(σCNO='C2'(S?SC))?關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例?109關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例2)檢索學(xué)習(xí)課程號為C2的學(xué)生學(xué)號與姓名ΠSNO,SNAME(σCNO='C2'(S?SC))Πσ對應(yīng)的查詢:SelectSNO,SNAMEFromS,SCWhereS.Sno=SC.SnoandCno=‘C2’;關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例Πσ對應(yīng)的查詢:110關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例3)檢索至少選修LIU老師所授課程一門課程的學(xué)

生學(xué)號與姓名ΠSNO,SNAME(σTNAME='LIU'(S?SC?C?T))對應(yīng)的查詢:SelectS.Sno,SnameFromS,SC,C,TWhereTname=‘LIU’andS.Sno=SC.SnoandSC.Cno=C.Cno andC.TNO=T.Tno;關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例對應(yīng)的查詢:111關(guān)系代數(shù)關(guān)系代數(shù)運算的應(yīng)用實例4)檢索選修課程號為C2或C4的學(xué)生學(xué)號ΠSNO(σCNO='C2‘∨CNO='C4'(SC))σΠ對應(yīng)的查詢2:SelectSnoFromSCWhereCnoin(‘C2’,‘C4’);對應(yīng)的查詢1:SelectSnoFromSCWhereCno=‘C2’orCno=‘C4

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論