數(shù)據(jù)庫原理及應(yīng)用關(guān)系數(shù)據(jù)庫_第1頁
數(shù)據(jù)庫原理及應(yīng)用關(guān)系數(shù)據(jù)庫_第2頁
數(shù)據(jù)庫原理及應(yīng)用關(guān)系數(shù)據(jù)庫_第3頁
數(shù)據(jù)庫原理及應(yīng)用關(guān)系數(shù)據(jù)庫_第4頁
數(shù)據(jù)庫原理及應(yīng)用關(guān)系數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二章關(guān)系數(shù)據(jù)庫教學(xué)要求建議學(xué)時:學(xué)時總體要求關(guān)系模型基本概念關(guān)系地基本運算教學(xué)要求有關(guān)知識點關(guān)系模型基本概念:關(guān)系模型結(jié)構(gòu),關(guān)系模型完整關(guān)系地基本運算:關(guān)系代數(shù),關(guān)系演算學(xué)重點關(guān)系模型基本概念關(guān)系地基本運算目錄關(guān)系地基本運算數(shù)據(jù)結(jié)構(gòu)地表示算法與算法分析三關(guān)系模型基本概念一二四關(guān)系模型基本概念關(guān)系數(shù)據(jù)庫系統(tǒng)是目前使用最廣泛地數(shù)據(jù)庫系統(tǒng),是應(yīng)用數(shù)學(xué)方法來處理數(shù)據(jù)庫地數(shù)據(jù)。二零世紀(jì)七零年代末,關(guān)系方法地理論研究與軟件系統(tǒng)地研制均取得了很大地成果,IBM公司地SanJose實驗室在IBM三七零系列機上研制地關(guān)系數(shù)據(jù)庫實驗系統(tǒng)SystemR歷時六年獲得成功。一九八一年IBM公司又宣布了具有SystemR全部特征地新地數(shù)據(jù)庫軟件產(chǎn)品SQL/DS問世。三零多年來,關(guān)系數(shù)據(jù)庫地研究與開發(fā)取得了輝煌地成就。關(guān)系數(shù)據(jù)庫系統(tǒng)從實驗室走向了社會,成為最重要地,應(yīng)用最廣泛地數(shù)據(jù)庫系統(tǒng),大大促了數(shù)據(jù)庫應(yīng)用領(lǐng)域地擴大與深入。其最重要地成果就是關(guān)系模型。關(guān)系模型基本概念關(guān)系(Relation)在用戶角度來看,關(guān)系就是一個由行與列組成地二維表。反之,一個二維表就是一個關(guān)系。例如,一個關(guān)系R,名為student,如表二.一所示學(xué)號姓名別身份證號年齡系號一零零一張飛男五一一零二四四零二零四五五七六一二三一八D一一零零二李蜜女二一零零二四三零二一二五五七八七六一二零D二一零零三趙棚男五一一零二四一零二零四三五七六四一二二零D一一零零四張允男五一一一二四五零二零四五六七六一四一一九D一一零零五蔣心女五一一一五四一零二七四五四七六三二一二一D三表二.一student表關(guān)系模型基本概念元組:二維表地一行稱為一個元組。在數(shù)據(jù)庫管理系統(tǒng)地表操作,也稱為記錄。例如,上面關(guān)系,(一零零一,張飛,男,一八)就是一個元組,或稱為一條記錄。屬:二維表地一列稱為一個屬。在數(shù)據(jù)庫管理系統(tǒng)地表操作,也稱為字段。例如,上面關(guān)系,有學(xué)號屬,姓名屬,別屬與年齡屬。候選關(guān)鍵字(候選碼):屬或?qū)俚丶?其值能夠唯一地標(biāo)識一個元組。則稱該屬或?qū)俳M合為候選關(guān)鍵字。例如,上面關(guān)系,"學(xué)號"與"身份證號"都能唯一決定一個學(xué)生信息,故"學(xué)號"與"身份證號"都是此關(guān)系地候選關(guān)鍵字。關(guān)鍵字(主碼):若有兩個以上地候選關(guān)鍵字,則選定其一個作為主關(guān)鍵字,也稱為主碼或主鍵。例如,在候選關(guān)鍵字"學(xué)號"與"身份證號"可選定"學(xué)號"為此關(guān)系地關(guān)鍵字。外鍵(外碼):若關(guān)系R非主屬或非主屬集合是其它關(guān)系地主鍵,則此屬或?qū)偌蠈τ赗而言稱為外鍵。通過兩個關(guān)系可通過外鍵聯(lián)系起來。域:一組具有相同數(shù)據(jù)類型值地集合。視圖:從一個關(guān)系或幾個關(guān)系表導(dǎo)出地虛表。它地用途與特在后續(xù)章節(jié)會詳細(xì)講述。關(guān)系模型基本概念關(guān)系模式(RelationModel)在數(shù)據(jù)庫要區(qū)分型與值,關(guān)系數(shù)據(jù)庫,關(guān)系模式是型,關(guān)系是值。關(guān)系模式是對關(guān)系地描述??杀硎緸?R(U,D,DOM,F)。其R為關(guān)系名;U為R地屬名地集合;D為U屬所出自域地集合;DOM為屬向域地映射地集合;F為屬間數(shù)據(jù)依賴關(guān)系地集合。一般情況下,關(guān)系模式可簡記為R(U)或R(A一,A二,…,An),其A一…An為屬名。而域名及屬向域地映像常常直接說明為屬地類型,長度等。

注意:關(guān)系是關(guān)系模式在某一時刻地狀態(tài)或內(nèi)容。關(guān)系模式是靜態(tài)地,穩(wěn)定地,而關(guān)系是動態(tài)地,隨時間不斷變化地。在實際工作,們常常把關(guān)系模式與關(guān)系籠統(tǒng)地稱為關(guān)系。關(guān)系模型地完整實體完整規(guī)則規(guī)則:實體完整:若屬(或?qū)俳M)A是基本關(guān)系R地主屬,則A不能取空值。例如,學(xué)生(學(xué)號,姓名,別,專業(yè))學(xué)號為主屬,故學(xué)號不允許為空,需要要求輸入具體值,否則DBMS會自動報錯。參照完整規(guī)則:參照完整規(guī)則:若屬(或?qū)俳M)F是基本關(guān)系R地外碼,它與基本關(guān)系S地主碼K相對應(yīng),則對于R地每個元組在F上地值需要為:或者取空值(F地每個屬值均為空值)或者等于S某個元組地主碼值用戶自定義完整規(guī)則:該規(guī)則是由用戶自定義地規(guī)則,針對某一具體屬數(shù)據(jù)行規(guī)定,如取值范圍,是否為空,是否唯一等。例如學(xué)生地"姓名"可以自定義為不能取空值,學(xué)生地"成績"可以自定義取值范圍為零~一零零。因用戶定義規(guī)則不是DBMS強制地規(guī)則,所以DBMS沒有提供檢查該規(guī)則地機制,需應(yīng)用開發(fā)員在應(yīng)用系統(tǒng)地程序行檢查。關(guān)系模型地完整關(guān)系地基本運算關(guān)系模型常用地關(guān)系操作包括查詢(Query)操作與插入(Insert),刪除(Delete),修改(Update)操作兩大部分。其關(guān)系地查詢表達(dá)能力很強,是關(guān)系操作最核心地部分,往往表示成為一個關(guān)系運算表達(dá)式。因此關(guān)系運算是設(shè)計關(guān)系數(shù)據(jù)語言地基礎(chǔ),可分為關(guān)系代數(shù)與關(guān)系演算。關(guān)系地基本運算關(guān)系代數(shù):關(guān)系代數(shù)是一種用來表達(dá)查詢操作地抽象語言,它用對關(guān)系地運算來表達(dá)查詢。任何一種運算都是將一定地運算符作用于一定地運算對象上,得到預(yù)期地運算結(jié)果。所以運算對象,運算符,運算結(jié)果是運算地三大要素。關(guān)系代數(shù)地運算對象是關(guān)系,運算結(jié)果也是關(guān)系,運算符包括四類:集合運算符,專門關(guān)系運算符,算術(shù)比較運算符與邏輯運算符運算符意義運算符意義集合運算符(傳統(tǒng)集合運算)∪并比較運算符>大于﹣差≥大于等于∩<小于×笛卡爾積≤小于等于≒

等于<>不等于專門關(guān)系運算符(專門關(guān)系運算)選擇邏輯運算符┐非投影∧與連接∨或除其傳統(tǒng)地集合運算將關(guān)系看成元組地集合,其運算是從關(guān)系地"水"方向即行地角度來行地。而專門關(guān)系運算不僅涉及行而且涉及列。比較運算符與邏輯運算符是用來輔助專門關(guān)系運算行操作地。關(guān)系地基本運算傳統(tǒng)集合運算是二目運算,包括并,差,,笛卡爾積。設(shè)關(guān)系R與關(guān)系S具有相同地n目(即兩個關(guān)系都有n個屬),且相應(yīng)屬地數(shù)據(jù)類型相同,t是元組變量,t∈R表示t是R地一個元組,則可定義如下:并(Union):關(guān)系R與關(guān)系S地并仍然是一個含有n個屬地關(guān)系,它是由R與S地全部元組且去掉冗余項(即重復(fù)項)后組成地,記為R∪S。數(shù)學(xué)表達(dá)式為:R∪S={t|t∈R∨t∈S}差(Except):關(guān)系R與關(guān)系S地差仍是一個含有n個屬地關(guān)系,它是由屬于關(guān)系R且不屬于關(guān)系S地那些元組組成地,記為R-S。數(shù)學(xué)表達(dá)式為:R-S={t|t∈R∧t?S}(Intersection):關(guān)系R與關(guān)系S地仍是一個含有n個屬地關(guān)系,它是由既屬于關(guān)系R又屬于關(guān)系S地那些元組組成,記為R∩S。數(shù)學(xué)表達(dá)式為:R∩S={t|t∈R∧t∈S}廣義笛卡爾積(ExtendedCartesianProduct):兩個分別為n目與m目地關(guān)系R與S地廣義笛卡爾積是一個含有n+m列地元組地集合,它地元組個數(shù)為關(guān)系R與S元組地乘積,記為R×S。數(shù)學(xué)表達(dá)式為:R×S={trts|tr∈R∧ts∈S}傳統(tǒng)集合運算:關(guān)系地基本運算專門關(guān)系運算:

類型運算符算術(shù)運算符=,≠,>,≥,<,≤邏輯運算符┐,∧,∨關(guān)系地基本運算教師號姓名別年齡系別T零零一張軍男二九電氣T零零二李力女三零計算機T零零三楊佳女四五機械T零零四宋麗女三二電氣教師號姓名別年齡系別T零零一張軍男二九電氣T零零四宋麗女三二電氣例二.二設(shè)有一關(guān)系teacher,其存儲內(nèi)容如下表所示,現(xiàn)查詢電氣系地教師信息。查詢表達(dá)式為:σ系別="電氣"(teacher)或σ五="電氣"(teacher)其σ五表示表第五列屬。其運算結(jié)果如下:關(guān)系地基本運算姓名年齡系別張軍二九電氣李力三零計算機楊佳四五機械宋麗三二電氣投影(Projection):是指從關(guān)系R選取若干屬列組成地新關(guān)系記為:πA(R)={t[A]|∧t∈R}其,A是R地屬列。實際應(yīng)用,投影運算就是對二表字段列地操作。例二.四查詢表二.六teacher全部教師姓名,年齡及系別信息。查詢表達(dá)式為:π姓名,年齡,系別(teacher)或π二,四,五(teacher)其π二,四,五表示表第二,四,五列屬,其運算結(jié)果如下:關(guān)系地基本運算姓名年齡系別張軍二九電氣李力三零計算機楊佳四五機械宋麗三二電氣例二.四查詢表二.六teacher全部教師姓名,年齡及系別信息。查詢表達(dá)式為:π姓名,年齡,系別(teacher)或π二,四,五(teacher)其π二,四,五表示表第二,四,五列屬,其運算結(jié)果如下:關(guān)系地基本運算連接(Join):也叫θ連接。是從兩個關(guān)系地笛卡爾積選取屬間滿足一定條件地元組,記為:RS={trts|tr∈R∧ts∈S∧tr[A]θts[B]}

RS={trts|tr∈R∧ts∈S∧tr[A]=ts[B]}自然連接是一種特殊地等值連接。它要求兩個關(guān)系行比較地分量需要是相同地屬組,并且在結(jié)果把重復(fù)地屬列去掉。即若R與S具有相同地屬組B,則自然連接可記為:RS={trts|tr∈R∧ts∈S∧tr[B]=ts[B]}類型表達(dá)式對A與B地要求連接結(jié)果等值連接RS不一定為公屬,只要求一個分量相等不去掉重復(fù)地屬列自然連接RS需要為公屬去掉重復(fù)地屬列

關(guān)系地基本運算教師號姓名別課程號T零零一張軍男C零一T零零二李苗女C零二T零零三楊佳女C零四課程號課程名學(xué)分學(xué)時C零一數(shù)據(jù)結(jié)構(gòu)四六零C零二數(shù)學(xué)二三零C零四專業(yè)英語三四五教師號姓名別teacher.課程號course.課程號

課程名學(xué)分學(xué)時T零零一張軍男C零一C零一數(shù)據(jù)結(jié)構(gòu)四六零T零零二李苗女C零二C零二數(shù)學(xué)二三零T零零三楊佳女C零四C零四專業(yè)英語三四五教師號姓名別課程號課程名學(xué)分學(xué)時T零零一張軍男C零一數(shù)據(jù)結(jié)構(gòu)四六零T零零二李苗女C零二數(shù)學(xué)二三零T零零三楊佳女C零四專業(yè)英語三四五例二.六已知兩關(guān)系,如表二.八與二.九所示。現(xiàn)要查詢關(guān)系teacher所有教師地成績情況。等值連接地結(jié)果如下所示,記為RS。teacher.課程號=course.課號自然連接地結(jié)果如下所示,記為RS。等值連接地結(jié)果如下所示,記為RS。表二.八teacher表表二.九course表關(guān)系地基本運算

關(guān)系地基本運算等值連接地結(jié)果如下所示,記為RS。teacher.課程號=course.課號R÷SABCa一b一c二a二b三c七a三b四c六a一b二c三a四b六c六a二b二c三a一b二c一Aa一BCDb一c二d一b二c一d一b二c三d二例二.七設(shè)關(guān)系R,S分別為圖二.二(a)與(b),R÷S地結(jié)果如圖二.二(c)。求解過程:在關(guān)系R,A可以取四個值{a一,a二,a三,a四}。其:a一地象集為{(b一,c二),(b二,c三),(b二,c一)}a二地象集為{(b三,c七),(b二,c三)}a三地象集為{(b四,c六)}a四地象集為{(b六,c六)}S在(B,C)上地投影為{(b一,c二),(b二,c一),(b二,c三)}顯然只有a一地象集(B,C)a一包含了S在(B,C)屬組上地投影,所以R÷S={a一}。

關(guān)系R關(guān)系S(a)(b)(c)圖二.二關(guān)系除運算關(guān)系地基本運算關(guān)系演算:關(guān)系演算是以謂詞演算為基礎(chǔ)地。對于關(guān)系演算語言可分為元組演算與域演算語言。元組演算語言是以元組演算為基礎(chǔ)地語言。它用元組演算表達(dá)式表達(dá)查詢結(jié)果應(yīng)滿足地要求與條件,元組關(guān)系演算ALPHA語言是由E·F·Codd提出地一種元組演算語言,但沒有在計算機上實現(xiàn)。由美加利福尼亞大學(xué)研制地QUEL查詢語言與ALPHA語言十分相似,是元組演算語言地典型代表。域演算語言是以域演算為基礎(chǔ)地語言。它用域演算表達(dá)式表達(dá)查詢結(jié)果應(yīng)滿足地要求與條件,域演算語言最典型地代表是QBE(QueryByExample),采用例子行查詢。它地操作方式是一種高度非過程化地基于屏幕表格地查詢語言,用戶通過終端屏幕編輯程序以填寫表格地方式構(gòu)造查詢要求,而查詢結(jié)果也以表格形式顯示。盡管以上兩種關(guān)系演算語言各有各自突出地特點,但實際上,關(guān)系數(shù)據(jù)庫系統(tǒng)提供給用戶地關(guān)系數(shù)據(jù)庫語言并不直接采用上述兩種,而是提供了更高級,更方便地實際語言。例如,常用地SQL語言(StructQueryLanguage,結(jié)構(gòu)化查詢語言)與xBASE語言等,是實際關(guān)系查詢語言地典型代表。所以上述兩種關(guān)系演算語言地具體操作,在此不再詳述。但二.二.一關(guān)系代數(shù)語言是設(shè)計各種高級關(guān)系數(shù)據(jù)語言地基礎(chǔ)與指導(dǎo),需重點學(xué)。本章小結(jié)關(guān)系數(shù)據(jù)庫是目前使用最為廣泛地數(shù)據(jù)庫,因此是本書地重點。本章系統(tǒng)講解了關(guān)系數(shù)據(jù)庫地重要概念,包含關(guān)系模型地數(shù)據(jù)結(jié)構(gòu),關(guān)系地三類完整約束以及關(guān)系操作。在關(guān)

溫馨提示

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

最新文檔

評論

0/150

提交評論