數(shù)據(jù)庫(kù)第章關(guān)系數(shù)據(jù)庫(kù)理論基礎(chǔ)
單擊此處編輯母版標(biāo)題樣式,*,數(shù)據(jù)庫(kù)原理及開發(fā),*,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),第2章 關(guān)系數(shù)據(jù)庫(kù)理論基礎(chǔ),本章重點(diǎn)內(nèi)容,關(guān)系的數(shù)學(xué)定義和性質(zhì),關(guān)系模式的完整性約束條件,關(guān)系代數(shù),關(guān)系的規(guī)范化原則,范式的基本概念和分解方法,2024/12/11,1,數(shù)據(jù)庫(kù)原理及開發(fā),關(guān)系模型:關(guān)系數(shù)據(jù)結(jié)構(gòu) 關(guān)系操作集合 關(guān)系完整性約束,關(guān)系操作:查詢(選擇,select,投影,project,連接,join,除,divide,并,union,交,intersection,差)、增加、刪除、修改,關(guān)系操作的特點(diǎn)是集合操作方式,關(guān)系操作的表示:代數(shù)方式、邏輯方式,分別稱為關(guān)系代數(shù) 和關(guān)系演算。表達(dá)查詢要求的方式,SQL(structurel query language):,介于關(guān)系代數(shù)和關(guān)系演算之間的語言。是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語言。,2024/12/11,2,數(shù)據(jù)庫(kù)原理及開發(fā),2.1 關(guān)系的基本概念,2.1.1 關(guān)系的數(shù)學(xué)定義,1域(,Domain),域:是一組具有相同數(shù)據(jù)類型的值集合。例如:自然數(shù),男,女,0,1等都可以是域。,基數(shù):域中數(shù)據(jù)的個(gè)數(shù)稱為域的基數(shù)。,域被命名后用如下方法表示:,D1=,白亞春,陳韜,王雪蓮,表示姓名的集合,基數(shù)是3;,D2=,計(jì)算機(jī)系,電子系,2024/12/11,3,數(shù)據(jù)庫(kù)原理及開發(fā),2笛卡爾積(,Cartesian Product),給定一組域,D,1,,D,2,,D,i,,D,n,(,可以有相同的域),則笛卡爾積定義為:,D,1,D,2,D,i,D,n,=(d,1,,d,2,,d,i,,d,n,)d,i,D,i,,i=1,2,n,D,1,XD,2,=,(,陳韜,,計(jì)算機(jī)系,),(,陳韜,電子系,),(王雪蓮,,計(jì)算機(jī)系,),(,王雪蓮,電子系,),(白亞春,,計(jì)算機(jī)系,),(,白亞春,電子系,),其中每個(gè)(,d,1,,d,2,,d,i,,d,n,),叫做,元組,,元組中的每一個(gè)值,d,i,叫做,分量,,,d,i,必須是,D,i,中的一個(gè)值。,顯然,笛卡爾積的基數(shù)就是構(gòu)成該積所有域的基數(shù)累乘積,若,Di(i=1,2,n),為有限集合,其基數(shù)為,m,i,(i=1,2,n),,則,D,1,D,2,D,i,D,n,笛卡爾積的基數(shù),M,為:,2024/12/11,4,數(shù)據(jù)庫(kù)原理及開發(fā),該笛卡爾積的基數(shù)是,M=m,1,m,2,=3*2=6,,,即該笛卡爾積共有,6,個(gè)元組,它可組成一張二維表,姓名,籍貫,陳韜,計(jì)算機(jī)系,陳韜,電子系,王雪蓮,計(jì)算機(jī)系,王雪蓮,電子系,白亞春,計(jì)算機(jī)系,白亞春,電子系,2024/12/11,5,數(shù)據(jù)庫(kù)原理及開發(fā),3關(guān)系(,Relation),關(guān)系:笛卡爾積,D,1,D,2,D,i,D,n,的子集,R,稱作在域,D,1,,D,2,,D,n,上的關(guān)系,記作:,R(D,1,,D,2,,D,i,,D,n,),其中:,R,為關(guān)系名,,n,為關(guān)系的度或目(,Degree),D,i,是域組中的第,i,個(gè)域名.,當(dāng),n=1,時(shí),稱該關(guān)系為單元關(guān)系;,當(dāng),n=2,時(shí),稱該關(guān)系為二元關(guān)系;,以此類推,關(guān)系中有,n,個(gè)域,稱該關(guān)系為,n,元關(guān)系。,把列稱為屬性(,Attribute,)。,一般來說,一個(gè)取自笛卡爾積的子集才有意義。,2024/12/11,6,數(shù)據(jù)庫(kù)原理及開發(fā),關(guān)系可以分為三種類型:,基本關(guān)系(又稱基本表):是實(shí)際存在的表,它是實(shí)際存儲(chǔ)數(shù)據(jù)的邏輯表示;,查詢表:是對(duì)基本表進(jìn)行查詢后得到的結(jié)果表;,視圖表:是由基本表或其它視圖導(dǎo)出的表,是一個(gè)虛表,不對(duì)應(yīng)實(shí)際存儲(chǔ)的數(shù)據(jù)。,姓名,籍貫,陳韜,計(jì)算機(jī)系,王雪蓮,電子系,白亞春,計(jì)算機(jī)系,2024/12/11,7,數(shù)據(jù)庫(kù)原理及開發(fā),2.1.2 關(guān)系的性質(zhì),1,列是同質(zhì)的。,2,關(guān)系中行的順序、列的順序可以任意互換,不會(huì)改變關(guān)系的意義。,學(xué)號(hào),姓名,性別,出生日期,所在系,0022102,王雪蓮,女,1980-9-15,電子系,計(jì)算機(jī)系,白亞春,男,1981-1-25,0051309,0052201,陳韜,男,計(jì)算機(jī)系,1981-5-6,0052217,袁更旭,男,1980-12-8,計(jì)算機(jī)系,2024/12/11,8,數(shù)據(jù)庫(kù)原理及開發(fā),3,關(guān)系中的任意兩個(gè)元組不能相同。,4,、關(guān)系中的元組分量具有原子性,即每一個(gè)分量都必須是不可分的數(shù)據(jù)項(xiàng)。最基本的一條,滿足一定的規(guī)范化條件的關(guān)系模型簡(jiǎn)稱范式。,學(xué)號(hào),姓名,性別,出生日期,所在系,0022102,王雪蓮,女,1980-9-15,電子系,0051309,白亞春,男,1981-1-25,計(jì)算機(jī)系,0051309,白亞春,男,1981-1-25,計(jì)算機(jī)系,0052217,袁更旭,男,1980-12-8,計(jì)算機(jī)系,2024/12/11,9,數(shù)據(jù)庫(kù)原理及開發(fā),2.2 關(guān)系的完整性,2.2.1 鍵,1候選鍵(,Candidate key),若關(guān)系中的某一屬性組的值能惟一地標(biāo)識(shí)一個(gè)元組,則稱該屬性組為候選鍵。,2主鍵(,Primary key),若一個(gè)關(guān)系中有多個(gè)候選鍵,則選定一個(gè)為主鍵。,2024/12/11,10,數(shù)據(jù)庫(kù)原理及開發(fā),3主屬性(,Primary Attribute),主鍵的屬性稱為主屬性。,4外鍵(,Foreign key),設(shè),F,是基本關(guān)系,R,的一個(gè)或一組屬性,但不是,R,的鍵(主鍵或候選鍵),如果,F,與基本關(guān)系,S,的主鍵,K,相對(duì)應(yīng),則稱,F,是,R,的外鍵,并稱,R,為參照關(guān)系,,S,為被參照關(guān)系。,2.2 關(guān)系的完整性,2024/12/11,11,數(shù)據(jù)庫(kù)原理及開發(fā),學(xué)號(hào),姓名,性別,出生日期,所在系,0022102,王雪蓮,女,1980-9-15,電子系,0051309,白亞春,男,1981-1-25,計(jì)算機(jī)系,0052201,陳韜,男,1981-5-6,計(jì)算機(jī)系,0052217,袁更旭,男,1980-12-8,計(jì)算機(jī)系,課程號(hào),學(xué)號(hào),成績(jī),C201,0022102,75,C505,0051309,95,C508,0052201,92,C506,0052217,80,2024/12/11,12,數(shù)據(jù)庫(kù)原理及開發(fā),2.2.2 實(shí)體完整性,實(shí)體完整性規(guī)則:關(guān)系中的主鍵不能為空值(Null)??罩稻褪恰安恢馈被颉盁o意義”,2.2.3 參照完整性,參照完整性規(guī)則:表的外鍵必須是另一個(gè)表主鍵的有效值,或者是空值。,2.2 關(guān)系的完整性,2024/12/11,13,數(shù)據(jù)庫(kù)原理及開發(fā),學(xué)號(hào),姓名,性別,出生日期,所在系,0022102,王雪蓮,女,1980-9-15,電子系,0051309,白亞春,男,1981-1-25,計(jì)算機(jī)系,0052201,陳韜,男,1981-5-6,計(jì)算機(jī)系,0052217,袁更旭,男,1980-12-8,計(jì)算機(jī)系,課程號(hào),學(xué)號(hào),成績(jī),C201,0022102,75,C505,0051309,95,C508,A102869,92,C506,0052217,80,實(shí)體完整性和參照完整性實(shí)例,2024/12/11,14,數(shù)據(jù)庫(kù)原理及開發(fā),2.2.4 用戶定義完整性,用戶按照實(shí)際的數(shù)據(jù)庫(kù)運(yùn)行環(huán)境要求,對(duì)關(guān)系中的數(shù)據(jù)所定義的約束條件,它反映的是某一具體應(yīng)用所涉及的數(shù)據(jù)必須要滿足的條件。,2.2 關(guān)系的完整性,2024/12/11,15,數(shù)據(jù)庫(kù)原理及開發(fā),2.3,關(guān)系代數(shù),關(guān)系代數(shù)是一種抽象的查詢語言,是關(guān)系數(shù)據(jù)操縱語言的一種傳統(tǒng)的表達(dá)方式,他是用對(duì)關(guān)系的運(yùn)算來表達(dá)查詢的。,運(yùn)算的三大要素:運(yùn)算對(duì)象、運(yùn)算符、運(yùn)算結(jié)果。,關(guān)系代數(shù)的運(yùn)算對(duì)象是關(guān)系,運(yùn)算結(jié)果也是關(guān)系,運(yùn)算符包括4類:集合運(yùn)算符(交 并差)、專門的關(guān)系運(yùn)算符(笛卡爾積 選擇 投影 連接 除)、算術(shù)比較符(大于 小于 等于等)和邏輯運(yùn)算符(與或非),關(guān)系代數(shù)的運(yùn)算按運(yùn)算符的不同可分為傳統(tǒng)的集合運(yùn)算和專門的關(guān)系運(yùn)算。,傳統(tǒng)的集合運(yùn)算是從關(guān)系的行來進(jìn)行的,專門的關(guān)系運(yùn)算涉及到行和列。,2024/12/11,16,數(shù)據(jù)庫(kù)原理及開發(fā),2.3.1 傳統(tǒng)的集合運(yùn)算,包括并、差、交和笛卡爾積,當(dāng)集合運(yùn)算并、交、差用于關(guān)系時(shí),要求參與運(yùn)算的兩個(gè)關(guān)系必須是相容的,即兩個(gè)關(guān)系的度數(shù)一致,并且關(guān)系屬性的性質(zhì)必須一致。,2024/12/11,17,數(shù)據(jù)庫(kù)原理及開發(fā),1并,并:,是將兩個(gè)關(guān)系中的所有元組構(gòu)成新的關(guān)系,并運(yùn)算的結(jié)果中必須消除重復(fù)值。,關(guān)系,R,與,S,的并運(yùn)算記作:,R,S,。,學(xué)號(hào),姓名,性別,出生日期,所在系,0022101,何芊,女,1982-6-5,電子系,0022102,王雪蓮,女,1980-9-15,電子系,0022201,葉媛媛,女,1982-3-5,電子系,0051309,白亞春,男,1981-1-25,計(jì)算機(jī)系,0052201,陳韜,男,1981-5-6,計(jì)算機(jī)系,0052217,袁更旭,男,1980-12-8,計(jì)算機(jī)系,2024/12/11,18,數(shù)據(jù)庫(kù)原理及開發(fā),R,S,學(xué)號(hào),姓名,性別,出生日期,所在系,0051309,白亞春,男,1981-1-25,計(jì)算機(jī)系,0052201,陳韜,男,1981-5-6,計(jì)算機(jī)系,0052217,袁更旭,男,1980-12-8,計(jì)算機(jī)系,0022102,王雪蓮,女,1980-9-15,電子系,學(xué)號(hào),姓名,性別,出生日期,所在系,0022101,何芊,女,1982-6-5,電子系,0022201,葉媛媛,女,1982-3-5,電子系,0051309,白亞春,男,1981-1-25,計(jì)算機(jī)系,0052217,袁更旭,男,1980-12-8,計(jì)算機(jī)系,2024/12/11,19,數(shù)據(jù)庫(kù)原理及開發(fā),2交,交:將兩個(gè)關(guān)系中的公共元組構(gòu)成新的關(guān)系。,關(guān)系,R,與,S,的交運(yùn)算記作:,R,S,。,學(xué)號(hào),姓名,性別,出生日期,所在系,0051309,白亞春,男,1981-1-25,計(jì)算機(jī)系,0052217,袁更旭,男,1980-12-8,計(jì)算機(jī)系,2024/12/11,20,數(shù)據(jù)庫(kù)原理及開發(fā),3差,差:運(yùn)算結(jié)果是由屬于一個(gè)關(guān)系并且不屬于另一個(gè)關(guān)系的元組構(gòu)成的新關(guān)系,就是從一個(gè)關(guān)系中減去另一個(gè)關(guān)系。關(guān)系,R,與,S,的差運(yùn)算記作:,R,S,。,學(xué)號(hào),姓名,性別,出生日期,所在系,0022102,王雪蓮,女,1980-9-15,電子系,0052201,陳韜,男,1981-5-6,計(jì)算機(jī)系,2024/12/11,21,數(shù)據(jù)庫(kù)原理及開發(fā),2.3.2 專門的關(guān)系運(yùn)算,專門的關(guān)系運(yùn)算包括:選擇、投影和連接,用于數(shù)據(jù)查詢服務(wù)。,1選擇(,Selection),選擇:是按照給定條件從指定的關(guān)系中挑選出滿足條件的元組構(gòu)成新的關(guān)系,?;蛘哒f,選擇運(yùn)算的結(jié)果是一個(gè)表的行的子集。記作,學(xué)號(hào),姓名,性別,出生日期,所在系,0051309,白亞春,男,1981-1-25,計(jì)算機(jī)系,0052201,陳韜,男,1981-5-6,計(jì)算機(jī)系,0052217,袁更旭,男,1980-12-8,計(jì)算機(jī)系,2024/12/11,22,數(shù)據(jù)庫(kù)原理及開發(fā),2,投影(,Projection,),投影:是從指定的關(guān)系中挑選出某些屬性構(gòu)成新的關(guān)系,?;蛘哒f,選擇運(yùn)算的結(jié)果是一個(gè)表的列的子集。,記作,,其中,A,為,R,的屬性列。投影的結(jié)果將取消由于取消了某些列而產(chǎn)生的重復(fù)元組。,學(xué)號(hào),姓名,性別,0022102,王雪蓮,女,0051309,白亞春,男,0052201,陳韜,男,0052217,袁更旭,男,2024/12/11,23,數(shù)據(jù)庫(kù)原理及開發(fā),3連接(,Join),連接:是將兩個(gè)和多個(gè)關(guān)系連接在一起,形成一個(gè)新的關(guān)系。連接運(yùn)算是按照給定條件,把滿足條件的各關(guān)系的所有元組,按照一切可能組合成新的關(guān)系?;蛘哒f,連接運(yùn)算的結(jié)果是在兩關(guān)系的笛卡爾積上的選擇。記作,:,自然連接:當(dāng)連接的兩關(guān)系有相同的屬性名時(shí),稱這種連接為自然連接,它是連接的一個(gè)特例。記作:,2024/12/11,24,數(shù)據(jù)庫(kù)原理及開發(fā),學(xué)號(hào),姓名,性別,出生日期,所在系,課程號(hào),成績(jī),0022102,王雪蓮,女,1980-9-15,電子系,C201,75,0051309,白亞春,男,1981-1-25,計(jì)算機(jī)系,C505,95,0052