數(shù)據(jù)庫原理與應(yīng)用(MySQL版) 課件 第3章 關(guān)系數(shù)據(jù)庫_第1頁
數(shù)據(jù)庫原理與應(yīng)用(MySQL版) 課件 第3章 關(guān)系數(shù)據(jù)庫_第2頁
數(shù)據(jù)庫原理與應(yīng)用(MySQL版) 課件 第3章 關(guān)系數(shù)據(jù)庫_第3頁
數(shù)據(jù)庫原理與應(yīng)用(MySQL版) 課件 第3章 關(guān)系數(shù)據(jù)庫_第4頁
數(shù)據(jù)庫原理與應(yīng)用(MySQL版) 課件 第3章 關(guān)系數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3章

關(guān)系數(shù)據(jù)庫

數(shù)據(jù)庫原理與應(yīng)用1本章內(nèi)容3.1關(guān)系數(shù)據(jù)模型3.2關(guān)系模型的基本術(shù)語與形式化定義3.3完整性約束3.4關(guān)系代數(shù)23.1關(guān)系數(shù)據(jù)模型3.1.1關(guān)系數(shù)據(jù)結(jié)構(gòu)

3.1.2關(guān)系操作

3.1.3數(shù)據(jù)完整性約束33.1.1數(shù)據(jù)結(jié)構(gòu)關(guān)系數(shù)據(jù)模型源于數(shù)學(xué)。用二維表來組織數(shù)據(jù),這個(gè)二維表在關(guān)系數(shù)據(jù)庫中就稱為關(guān)系。關(guān)系數(shù)據(jù)庫就是表或者說是關(guān)系的集合。關(guān)系系統(tǒng)要求讓用戶所感覺的數(shù)據(jù)庫就是一張張表。在關(guān)系系統(tǒng)中,表是邏輯結(jié)構(gòu)而不是物理結(jié)構(gòu)。43.1.2關(guān)系操作傳統(tǒng)的關(guān)系運(yùn)算:并(Union)交(Intersection)差(Difference)廣義笛卡爾乘積(ExtendedCartesianProduct)專門的關(guān)系運(yùn)算:選擇(Select)投影(Project)連接(Join)除(Divide)5關(guān)系操作(續(xù))查詢(Query)插入(Insert)刪除(Delete)修改(Update)關(guān)系模型的操作對(duì)象是集合,而不是行。集合處理能力是關(guān)系系統(tǒng)區(qū)別于其他系統(tǒng)的一個(gè)重要特征。6關(guān)系操作與非關(guān)系操作的比較非關(guān)系模型各個(gè)數(shù)據(jù)記錄之間是通過指針等方式連接的,當(dāng)要定位到某條記錄時(shí),需要用戶自己按指針的鏈接方向逐層查找。關(guān)系數(shù)據(jù)模型是按集合進(jìn)行操作,用戶只需指定數(shù)據(jù)的定位條件,數(shù)據(jù)庫管理系統(tǒng)就可以自動(dòng)定位到該數(shù)據(jù)記錄。7查找計(jì)算機(jī)學(xué)院軟件工程教研室張海濤8查找計(jì)算機(jī)系學(xué)號(hào)為202101003的學(xué)生學(xué)號(hào)姓名性別所在學(xué)院202101001李勇男計(jì)算機(jī)202101002劉晨男計(jì)算機(jī)202101003王敏女計(jì)算機(jī)202101004張小紅女計(jì)算機(jī)202102001張海男經(jīng)濟(jì)管理202102002劉琳女經(jīng)濟(jì)管理93.1.3數(shù)據(jù)完整性約束數(shù)據(jù)完整性是指保證數(shù)據(jù)正確性的特征。包括兩個(gè)方面:與現(xiàn)實(shí)世界中應(yīng)用需求的數(shù)據(jù)的相容性和正確性;數(shù)據(jù)庫內(nèi)數(shù)據(jù)之間的相容性和正確性。如:學(xué)生的學(xué)號(hào)必須是惟一的。性別只能是‘男’和‘女。10本章內(nèi)容3.1關(guān)系數(shù)據(jù)模型3.2關(guān)系模型的基本術(shù)語與形式化定義3.3完整性約束3.4關(guān)系代數(shù)111.基本術(shù)語關(guān)系

:關(guān)系就是二維表。并滿足如下性質(zhì):關(guān)系表中的每一列都是不可再分的基本屬性;表中的行、列次序并不重要。屬性

:表中的每一列是一個(gè)屬性值集,列可以命名,稱為屬性名。值域:屬性的取值范圍

。如,性別只能是‘男’和‘女’兩個(gè)值。12基本術(shù)語(續(xù))元組:表中的每一行稱作是一個(gè)元組。分量:元組中的每一個(gè)屬性值稱為元組的一個(gè)分量。關(guān)系模式:是關(guān)系的“型”或元組的結(jié)構(gòu)共性的描述。設(shè)關(guān)系名為R,屬性分別為A1,A2,…,An,則關(guān)系模式可以表示為:

R(A1,A2,…,An)

13基本術(shù)語(續(xù))關(guān)系數(shù)據(jù)庫:對(duì)應(yīng)于一個(gè)關(guān)系模型的所有關(guān)系的集合。候選鍵:能夠惟一標(biāo)識(shí)關(guān)系中的一個(gè)元組的一個(gè)屬性或最小屬性組。

主鍵:當(dāng)一個(gè)關(guān)系中有多個(gè)候選鍵時(shí),可以從中選擇一個(gè)作為主碼。每個(gè)關(guān)系只能有一個(gè)主鍵。主屬性:包含在任一候選鍵中的屬性。非主屬性:不包含在任一候選鍵中的屬性。142.形式化定義關(guān)系的形式化定義——笛卡爾積設(shè)D1,D2,…,Dn為任意集合,定義笛卡爾積D1,D2,…,Dn為:

D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}其中每一個(gè)元素(d1,d2,…,dn)稱為一個(gè)n元組,簡(jiǎn)稱元組。元組中每一個(gè)di稱為是一個(gè)分量。15笛卡兒乘積示例D1={計(jì)算機(jī),經(jīng)濟(jì)管理}D2={李勇,王敏,張海}D3={男,女}則D1×D2×D3笛卡爾積為:D1×D2×D3={(計(jì)算機(jī),李勇,男),(計(jì)算機(jī),李勇,女),(計(jì)算機(jī),王敏,男),(計(jì)算機(jī),王敏,女),(計(jì)算機(jī),張海,男),(計(jì)算機(jī),張海,女),(經(jīng)濟(jì)管理,李勇,男),(經(jīng)濟(jì)管理,李勇,女),(經(jīng)濟(jì)管理,王敏,男),(經(jīng)濟(jì)管理,王敏,女),(經(jīng)濟(jì)管理,張海,男),(經(jīng)濟(jì)管理,張海,女)}16笛卡爾積實(shí)際上就是一個(gè)二維表17關(guān)系的形式化定義笛卡爾積D1,D2,…,Dn的任意一個(gè)子集稱為D1,D2,…,Dn上的一個(gè)n元關(guān)系。把關(guān)系看成二維表,給表中的每個(gè)列取一個(gè)名字,稱為屬性。一個(gè)關(guān)系中的屬性的名字必須是唯一的。屬性Di(i=1,2,…,n)的取值范圍稱為該屬性的值域。18對(duì)關(guān)系的限定關(guān)系中的每個(gè)分量必須是不可再分的最小屬性。

表中列的數(shù)據(jù)類型是固定的。

不同列的數(shù)據(jù)可以取自相同的值域。

關(guān)系表中行、列的順序不重要。同一個(gè)關(guān)系中的元組不能重復(fù)。19本章內(nèi)容3.1關(guān)系數(shù)據(jù)模型3.2關(guān)系模型的基本術(shù)語與形式化定義3.3完整性約束3.4關(guān)系代數(shù)203.3完整性約束3.3.1實(shí)體完整性

3.3.2參照完整性3.3.3用戶定義的完整性213.3.1實(shí)體完整性實(shí)體完整性是保證關(guān)系中的每個(gè)元組都是可識(shí)別的和惟一的。

而且表中不允許存在如下的記錄:無主鍵值的記錄主鍵值相同的記錄22缺少主鍵值的學(xué)生數(shù)據(jù)示例學(xué)

號(hào)姓

名性

別所

學(xué)

?李勇男計(jì)算機(jī)202101002劉晨男計(jì)算機(jī)202101003王敏女計(jì)算機(jī)

?李勇男計(jì)算機(jī)202102001張海男經(jīng)濟(jì)管理202102002劉琳女經(jīng)濟(jì)管理23主鍵值有重復(fù)的學(xué)生數(shù)據(jù)示例學(xué)

號(hào)姓

名性

別所

學(xué)

院202101001李勇男計(jì)算機(jī)202101002劉晨男計(jì)算機(jī)202101003王敏女計(jì)算機(jī)202101001李勇男計(jì)算機(jī)202102001張海男經(jīng)濟(jì)管理202102002劉琳女經(jīng)濟(jì)管理243.3.2參照完整性參照完整性也稱為引用完整性?,F(xiàn)實(shí)世界中的實(shí)體之間往往存在著某種聯(lián)系,在關(guān)系模型中,實(shí)體以及實(shí)體之間的聯(lián)系都是用關(guān)系來表示的,這樣就自然存在著關(guān)系與關(guān)系之間的引用。參照完整性描述實(shí)體之間的聯(lián)系,這里的實(shí)體之間可以是不同的實(shí)體,也可以是同一個(gè)實(shí)體。25參照完整性示例示例1學(xué)生(學(xué)號(hào),姓名,性別,所在學(xué)院名)學(xué)院(學(xué)院名,辦公地點(diǎn),辦公電話)示例2學(xué)生(學(xué)號(hào),姓名,性別,所在學(xué)院)課程(課程號(hào),課程名,學(xué)分,開課學(xué)期)選課(學(xué)號(hào),課程號(hào),成績(jī))示例3職工(職工號(hào),姓名,性別,直接領(lǐng)導(dǎo)職工號(hào))26外鍵定義設(shè)F是關(guān)系R的一個(gè)或一組屬性,如果F與關(guān)系S的主鍵相對(duì)應(yīng),則稱F是關(guān)系R的外鍵(ForeignKey),并稱關(guān)系R為參照關(guān)系(ReferencingRelation),關(guān)系S為被參照關(guān)系(ReferencedRelation)。關(guān)系R和關(guān)系S不一定是不同的關(guān)系。27參照表示圖28示例:參照完整性規(guī)則參照完整性規(guī)則就是定義外鍵與主鍵之間的引用規(guī)則。對(duì)于外鍵,一般應(yīng)符合如下要求:或者值為空;或者等于其所應(yīng)用的關(guān)系中的某個(gè)元組的主鍵值。29示例職工(職工號(hào),職工名,部門號(hào),工資級(jí)別)部門(部門號(hào),部門名)如果某新來職工還沒有被分配到具體的部門,則其“部門號(hào)”就為空值;如果職工已經(jīng)被分配到了某個(gè)部門,則其“部門號(hào)”就有了確定的值(非空值)。303.3.3用戶定義的完整性也稱為域完整性或語義完整性。用戶定義的完整性實(shí)際上就是指明關(guān)系中屬性的取值范圍,也就是屬性的域,以限制關(guān)系中屬性的取值類型及取值范圍,防止屬性的值與應(yīng)用語義矛盾。例如:學(xué)生的考試成績(jī)的取值范圍為0~100,或取{優(yōu),良,中,及格,不及格}31本章內(nèi)容3.1關(guān)系數(shù)據(jù)模型3.2關(guān)系模型的基本術(shù)語與形式化定義3.3完整性約束3.4關(guān)系代數(shù)323.4關(guān)系代數(shù)關(guān)系模型源于數(shù)學(xué),關(guān)系是由元組構(gòu)成的集合,可以通過關(guān)系的運(yùn)算來表達(dá)查詢要求,關(guān)系代數(shù)是關(guān)系操作語言的一種傳統(tǒng)的表示方式,它是一種抽象的查詢語言。關(guān)系代數(shù)的運(yùn)算可分為兩大類:傳統(tǒng)的集合運(yùn)算:廣義笛卡爾積運(yùn)算、并、交和差運(yùn)算。專門的關(guān)系運(yùn)算:選擇、投影、連接和除運(yùn)算。33關(guān)系代數(shù)運(yùn)算符運(yùn)算符含義傳統(tǒng)的集合運(yùn)算∪并∩交-差×廣義笛卡爾積專門的關(guān)系運(yùn)算∏選擇σ投影連接÷除34關(guān)系代數(shù)運(yùn)算符(續(xù))運(yùn)算符含義比較運(yùn)算符>大于<小于=等于≠不等于≤小于等于≥大于等于邏輯運(yùn)算符?

非∧與∨或353.4.1傳統(tǒng)的集合運(yùn)算傳統(tǒng)的集合運(yùn)算是二目運(yùn)算,設(shè)關(guān)系R和S均是n元關(guān)系,且相應(yīng)的屬性值取自同一個(gè)值域,則可以定義三種運(yùn)算:并運(yùn)算(∪)交運(yùn)算(∩)差運(yùn)算(―)36并、交、差運(yùn)算示意圖371.并運(yùn)算設(shè)關(guān)系R與關(guān)系S均是n目關(guān)系,關(guān)系R與關(guān)系S的并運(yùn)算記為:

R∪S={t|t∈R∨t∈S}其結(jié)果仍是n目關(guān)系,由屬于R或?qū)儆赟的元組組成。38并運(yùn)算示例顧客號(hào)姓名性別年齡S01張宏男45S02李麗女34S03王敏女2839顧客號(hào)姓名性別年齡S02李麗女34S04錢景男50S06王平女24顧客號(hào)姓名性別年齡S01張宏男45S02李麗女34S03王敏女28S04錢景男50S06王平女242.交運(yùn)算設(shè)關(guān)系R與關(guān)系S均是n目關(guān)系,則關(guān)系R與關(guān)系S的交運(yùn)算記為:R∩S={t|t∈R∧t∈S}其結(jié)果仍是n目關(guān)系,由屬于R并且也屬于S的元組組成。40交運(yùn)算示例顧客號(hào)姓名性別年齡S02李麗女3441顧客號(hào)姓名性別年齡S01張宏男45S02李麗女34S03王敏女28顧客號(hào)姓名性別年齡S02李麗女34S04錢景男50S06王平女243.差運(yùn)算設(shè)關(guān)系R與關(guān)系S均是n目關(guān)系,則關(guān)系R與關(guān)系S的差運(yùn)算記為:R-S={t|t∈R∧t?S}其結(jié)果仍是n目關(guān)系,由屬于R并且不屬于S的元組組成。42差運(yùn)算示例顧客號(hào)姓名性別年齡S01張宏男45S03王敏女2843顧客號(hào)姓名性別年齡S01張宏男45S02李麗女34S03王敏女28顧客號(hào)姓名性別年齡S02李麗女34S04錢景男50S06王平女244.廣義笛卡爾積兩個(gè)分別為m目和n目的關(guān)系R和關(guān)系S的廣義笛卡爾積是一個(gè)有(m+n)目的元組的集合。元組的前m個(gè)列是關(guān)系R的一個(gè)元組,后n個(gè)列是關(guān)系S的一個(gè)元組。若R有K1個(gè)元組,S有K2個(gè)元組,則關(guān)系R和關(guān)系S的廣義笛卡爾積有K1×K2個(gè)元組,記做:R×S={tr^ts|tr∈R∧ts∈S}tr^ts表示由兩個(gè)元組tr和ts前后有序連接而成的一個(gè)元組44廣義笛卡爾積示例45ABa1b1a2b2CDEc1d1e1c2d2e2c3d3e3ABCDEa1b1c1d1e1a1b1c2d2e2a1b1c3d3e3a2b2c1d1e1a2b2c2d2e2a2b2c3d3e33.4.2專門的關(guān)系運(yùn)算1.選擇(Selection)2.投影(Projection)3.連接(join)4.除(Division)46二元一元1.選擇(Selection)σF(R)={r|r∈R∧F(t)=‘真’}

σ是選擇運(yùn)算符,R是關(guān)系名,r是元組,F(xiàn)是邏輯表達(dá)式,取邏輯“真”值或“假”值。47RσF(R)……示例例3-1.查詢“計(jì)算機(jī)學(xué)院”學(xué)生信息。σcollege

=‘計(jì)算機(jī)學(xué)院’(students)482.投影(Projection)

∏A(R)={t.A|t∈R}∏是投影運(yùn)算符,R是關(guān)系名,A是被投影的屬性或?qū)傩越M。r.A表示r這個(gè)元組中相應(yīng)于屬性(集)A的分量,也可以表示為r[A]。49投影運(yùn)算示意圖50RΠA(R)投影投影運(yùn)算步驟(1)選取出指定的屬性,形成一個(gè)可能含有重復(fù)行的新關(guān)系;(2)刪除重復(fù)行,形成結(jié)果關(guān)系。51示例例3-5.在sname、college兩個(gè)列上進(jìn)行投影運(yùn)算:∏sname,college(Student)52A和B分別是關(guān)系R和S上可比的屬性組,θ是比較運(yùn)算符,連接運(yùn)算從R和S的廣義笛卡爾積R×S中選擇(R關(guān)系)在A屬性組上的值與(S關(guān)系)在B屬性組上值滿足比較運(yùn)算符θ的元組。53連接運(yùn)算主要形式θ連接,θ為比較運(yùn)算符。等值連接(θ連接的特例)。自然連接。外部連接(簡(jiǎn)稱外連接)。54等值連接當(dāng)θ為“=”時(shí)的連接為等值連接,從關(guān)系R與關(guān)系S的廣義笛卡爾積中選取A、B屬性組值相等的那些元組。55自然連接是一種特殊的等值連接,要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性或?qū)傩越M,在連接結(jié)果中去掉重復(fù)的屬性列,使公共屬性列只保留一個(gè)。56自然連接與等值連接的區(qū)別自然連接要求相等的分量必須有共同的屬性名,等值連接無此要求;自然連接要求把重復(fù)的屬性去掉,等值連接無此操作。57外連接如果希望不滿足連接條件的元組也出現(xiàn)在連接結(jié)果中,則可通過外連接(OUTERJOIN)操作實(shí)現(xiàn)。外連接有三種形式:左外連接(LEFTOUTERJOIN)右外連接(RIGHTOUTERJOIN)全外連接(FULLOUTERJOIN)58外連接形式左外連接的連接形式為:

右外連接的連接形式為:

全外連接的連接形式為:594.除(Division)設(shè)關(guān)系S的屬性是關(guān)系R的屬性的一部分,則R÷S為這樣一個(gè)關(guān)系:此關(guān)系的屬性是由屬于R但不屬于S的所有屬性組成;R÷S的任一元組都是R中某元組的一部分。但必須符合:任取屬于R÷S的一個(gè)元組t,則t與S的任一元組連接后,都是R中原有的一個(gè)元組。60除運(yùn)算示意圖61除法的一般形式設(shè)有關(guān)系R(X,Y)和S(Y,Z),其中X、Y、Z為關(guān)系的屬性組,則:

R(X,Y)÷S(Y,Z)=R(X,Y)÷∏Y(S)

62象集給定一個(gè)關(guān)系R(X,Y),X和Y為屬性組。定義,當(dāng)t[X]=x時(shí),x在R中的象集為:

Yx={t[Y]|t∈R∧t[X]=x}t[Y]和t[X]分別表示R中的元組t在屬性組Y和X上的分量的集合。63象集示例SIDsnamegendercollege202101001李勇男計(jì)算機(jī)學(xué)院202101002劉晨男計(jì)算機(jī)學(xué)院202101003王敏女計(jì)算機(jī)學(xué)院202101004張小紅女計(jì)算機(jī)學(xué)院202101005王立東男計(jì)算機(jī)學(xué)院64有元組:(202101001,李勇,男,計(jì)算機(jī)學(xué)院)設(shè)X={gender,college},Y={SID,Sname},則上式中的t[X]的一個(gè)值:X=(男,計(jì)算機(jī)學(xué)院)

則Yx為t[X]=x=(男,計(jì)算機(jī)學(xué)院)時(shí)所有t[Y]的值,即:Yx={(202101001,李勇),(202101002,劉晨),(202101005,王立東)}除運(yùn)算的一般形式設(shè)有關(guān)系R(X,Y)和S(Y,Z),其中X、Y、Z為關(guān)系的屬性組,則:

R÷S={tr[X]|trR∧∏Y(S)Yx}

65除運(yùn)算示例66ISBNSID

9787115546081202101004

9787115546081202102001

9787115546081202102003

9787302505945202101001

SIDsname

ISBN9787302505945202101002÷202101001李勇=97871155460819787302505945202101004

202101004張小紅

97873025059459787302563839202101001

9787302563839202102003

9787541154256202102002

9787541154256202101004

3.4.3關(guān)系代數(shù)示例例3-7.查詢計(jì)算機(jī)學(xué)院的學(xué)生學(xué)號(hào)和姓名。

∏SID,sname(σcollege=‘計(jì)算機(jī)學(xué)院’(students))例3-8.查詢借過“數(shù)據(jù)分析思維”圖書的學(xué)生學(xué)號(hào)和借書時(shí)間。

∏SID,borrow_time(σbname=‘?dāng)?shù)據(jù)分析思維’(booksborrow))

也可以寫成:∏SID,borrow_time(σbname=‘?dāng)?shù)據(jù)分析思維’(books)borrow)67示例(續(xù)1)例3-9.查詢借過“數(shù)據(jù)分析思維”圖書的學(xué)生姓名和所在學(xué)院。∏sname,college(σbnam

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論