數(shù)據(jù)庫原理-ZQX第一章11.3關(guān)系模型_第1頁
數(shù)據(jù)庫原理-ZQX第一章11.3關(guān)系模型_第2頁
數(shù)據(jù)庫原理-ZQX第一章11.3關(guān)系模型_第3頁
數(shù)據(jù)庫原理-ZQX第一章11.3關(guān)系模型_第4頁
數(shù)據(jù)庫原理-ZQX第一章11.3關(guān)系模型_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

11.3關(guān)系模型2本節(jié)主要講述:1.3.1關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)1.3.2關(guān)系的數(shù)學(xué)定義1.3.3關(guān)系的性質(zhì)1.3.4關(guān)系的碼1.3.5關(guān)系數(shù)據(jù)庫模式與關(guān)系數(shù)據(jù)庫1.3.6關(guān)系運算1.3.7關(guān)系代數(shù)31.3.1關(guān)系模型

關(guān)系模型就是用二維表格結(jié)構(gòu)來表示實體及實體之間聯(lián)系的模型。關(guān)系模型是由若干個關(guān)系模式組成的集合。在建立關(guān)系模型時,只要把所有的實體及其屬性用關(guān)系模式來表示,同時把實體之間的聯(lián)系也用關(guān)系模式來表示,就可以得到一個關(guān)系模型。41.3.2關(guān)系的數(shù)學(xué)定義一、域(Domain)域是一組具有相同數(shù)據(jù)類型的值的集合,又稱為值域。(用D表示)例如整數(shù)、實數(shù)、字符串的集合。域中所包含的值的個數(shù)稱為域的基數(shù)(用m表示)。例如:D1={李力,王平,劉偉} m1=3 D2={男,女} m2=2 D3={47,28,30} m3=3 其中,D1,D2,D3為域名,分別表示教師關(guān)系中姓名、性別、年齡的集合。域的值無排列次序,如D2={男,女}={女,男}關(guān)系中用域表示屬性的取值范圍5二、笛卡爾積(CartesianProduct)給定一組域D1,D2,…,Dn(它們可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,…,Dn的笛卡爾積為D1×D2×……×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}。由定義可以看出,笛卡爾積也是一個集合。例如:上述表示教師關(guān)系中姓名、性別兩個域的笛卡爾積為:D1={李力,王平,劉偉}D2={男,女}D1×D2={(李力,男),(李力,女),(王平,男),(王平,女),(劉偉,男),(劉偉,女)}6D1={李力,王平,劉偉}D2={男,女}笛卡爾積(CartesianProduct)給定一組域D1,D2,…,Dn(它們可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,…,Dn的笛卡爾積為D1×D2×……×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}。其中:1.元素中的每一個di叫做一個分量(Component),來自相應(yīng)的域(di∈Di)2.每一個元素(d1,d2,d3,…,dn)叫做一個n元組(n-tuple),簡稱元組(Tuple)。但元組不是di的集合,元組的每個分量(di)是按序排列的。如:(1,2,3)≠(2,3,1)≠(1,3,2)而集合中的元素是沒有排序次序的,如(1,2,3)=(2,3,1)=(1,3,2)。其中:李力、王平、劉偉、男、女都是分量(李力,男),(李力,女)等是元組3.若Di(i=1,2,……n)為有限集,Di中的集合元素個數(shù)稱為Di的基數(shù),用mi(i=1,2,……n)表示,則笛卡爾積D1×D2×……×Dn的基數(shù)M(即元素(d1,d2,……dn)的個數(shù))為所有域的基數(shù)的累積?;鶖?shù)M=m1×m2=3*2=6元組的個數(shù)為6例如:上述表示教師關(guān)系中姓名、性別兩個域的笛卡爾積為:即

M=94.笛卡爾積可用二維表的形式表示。例如,上述的6個元組可表示成下表。姓名性別李力男李力女王平男王平女劉偉男劉偉女D1D2笛卡爾積實際是一個二維表,表的框架由域構(gòu)成,表的任意一行就是一個元組,表中的每一列來自同一域,如第一個分量來自D1,第二個分量來自D2。D1和D2的笛卡爾積10三、關(guān)系的數(shù)學(xué)定義(Relation)笛卡爾積D1×D2×…×Dn的任一子集稱為定義在域D1,D2,…Dn上的n元關(guān)系(Relation),可用

R(D1,D2……Dn)表示如上例D1×D2笛卡爾積的子集可以構(gòu)成教師關(guān)系T。姓名性別李力男王平女劉偉男幾點說明:1.

R為關(guān)系名,n稱為關(guān)系的目或度(Degree)。當(dāng)n=1時,稱為單元關(guān)系。當(dāng)n=2時,稱為二元關(guān)系?!?dāng)n=n時,稱為n元關(guān)系。112.關(guān)系中元組個數(shù)是關(guān)系的基數(shù)。如果一個關(guān)系的元組個數(shù)是無限的,則稱為無限關(guān)系;如果一個關(guān)系的元組個數(shù)是有限的,則稱為有限關(guān)系。3.

同樣可以把關(guān)系看成一個二維表。其中,(1)表的框架由域Di(i=1,2,……n)構(gòu)成;(2)表的任意一行對應(yīng)一個元組;(3)表的每一列來自同一域;(4)域可以相同,為了加以區(qū)別,每列起一個名字,稱為屬性,n目關(guān)系有n個屬性,屬性的名字唯一,屬性的取值范圍Di(i=1,2,…,n)稱為值域用Ai表示4.關(guān)系的定義:定義在域D1,D2……Dn上的關(guān)系由關(guān)系頭和關(guān)系體組成:

關(guān)系頭:是屬性A1,A2……An的集合;

關(guān)系體:是元組的集合。具有相同關(guān)系框架的關(guān)系稱為同類關(guān)系,例如,有另一個關(guān)系T2,如表所示:T212姓名性別張雪女張?zhí)m女T1和T2是同類關(guān)系135.數(shù)學(xué)上關(guān)系是笛卡爾積的任意子集,但在實際應(yīng)用中關(guān)系是笛卡爾積中所取的有意義的子集。姓名性別李力男李力女表不符合實際情況141.3.3關(guān)系的性質(zhì)1.關(guān)系中不允許出現(xiàn)相同的元組。2.關(guān)系中元組的順序(即行序)是無關(guān)緊要的,在一個關(guān)系中可以任意交換兩行的次序。根據(jù)關(guān)系的這個性質(zhì),可以改變元組的順序使其具有某種排序,然后按照順序查詢數(shù)據(jù),可以提高查詢速度。153.關(guān)系中屬性的順序是無關(guān)緊要的:即列的順序可以任意交換。交換時,應(yīng)連同屬性名一起交換,否則將得到不同的關(guān)系。例如:關(guān)系T作如表1所示的交換時,無任何影響而作如表2所示的交換時,不交換屬性名,只交換屬性列中的值,則得到不同的關(guān)系。性別姓名男李力女王平男劉偉姓名性別男李力女王平男劉偉表1表2164.同一屬性名下的各個屬性值必須來自同一個域:是同一類型的數(shù)據(jù)。5.關(guān)系中各個屬性必須有不同的名字:不同的屬性可來自同一個域,即它們的分量可以取自同一個域。姓名職業(yè)兼職張強教師輔導(dǎo)員王麗工人教師劉寧教師輔導(dǎo)員職業(yè)與兼職是兩個不同的屬性,它們?nèi)∽酝粋€域:職業(yè)={教師,工人,輔導(dǎo)員}。176.所有的屬性值都是原子的,元組中每一分量必須是不可分的數(shù)據(jù)項,即不可“表中有表”。滿足上述條件的關(guān)系稱為規(guī)范化關(guān)系,否則稱為非規(guī)范化關(guān)系。姓名籍貫省市/縣張強吉林長春王麗山西大同姓名省市/縣張強吉林長春王麗山西大同表1表2181.3.4關(guān)系的碼一、候選碼與主碼1.候選碼:能唯一標(biāo)識關(guān)系中元組的屬性或?qū)傩约瑒t稱該屬性或?qū)傩约癁楹蜻x碼(CandidateKey),也稱候選鍵,關(guān)系鍵。如:候選碼候選碼19下面給出候選碼的形式化定義:設(shè)關(guān)系R有屬性A1,A2,……An,其屬性集K=(Ai,Aj,……Ak),當(dāng)且僅當(dāng)滿足下列條件時,K被稱為候選碼:

1.唯一性(Uniqueness):關(guān)系R的任意兩個不同元組,其屬性集K的值是不同的。

2.最小性(Minimally):組成關(guān)系鍵的屬性集(Ai,Aj,……Ak)中,任一屬性都不能從屬性集K中刪掉,否則將破壞唯一性的性質(zhì)。2.如果一個關(guān)系中有多個候選碼,可以從中選擇一個作為查詢、插入或刪除元組的操作變量,被選用的候選鍵稱為主碼(PrimaryKey),或稱為主鍵、主關(guān)鍵字。20二、主屬性與非主屬性主屬性(PrimeAttribute):包含在主碼中的各屬性稱為主屬性。非主屬性(Non-PrimeAttribute):不包含在任何候選碼中的屬性稱為非主屬性。在最簡單的情況下,一個候選碼只包含一個屬性,如學(xué)生關(guān)系中的“學(xué)號”,教師關(guān)系中的“教師號”。在最極終端的情況下,所有屬性的組合是關(guān)系的候選碼,這時稱為全碼(all-key)。21一個老師可以指導(dǎo)多個學(xué)生,一個學(xué)生的導(dǎo)師可以有多個。學(xué)生姓名指導(dǎo)教師李陽王名李陽李斌張浩王名張浩李斌全鍵22三、外碼(Foreignkey)

如果關(guān)系R2的一個或一組屬性X不是R2的主碼,而是另一關(guān)系R1的主碼,則該屬性或?qū)傩越MX稱為關(guān)系R2的外碼或外部關(guān)系鍵。并稱關(guān)系R2為參照關(guān)系(referencingrelation),關(guān)系R1為被參照關(guān)系(referencedrelation)。參照關(guān)系被參照關(guān)系學(xué)生選課由外部關(guān)系鍵的定義可知,被參照關(guān)系的主碼和參照關(guān)系的外碼必須定義在同一個域上。R2R123同一關(guān)系內(nèi)部屬性間也可能存在參照關(guān)系。例:職工(職工號,姓名,性別,部門領(lǐng)導(dǎo)號)外碼外碼并不一定要與相應(yīng)的主碼同名:習(xí)慣上,當(dāng)外碼與相應(yīng)的主碼屬于不同的關(guān)系時,取相同的名字。24四、關(guān)系模型的完整性關(guān)系模型的三類完整性:實體完整性參照完整性用戶定義的完整性25例如,學(xué)生關(guān)系中的屬性“學(xué)號”可以唯一標(biāo)識一個元組,也可以唯一標(biāo)識學(xué)生實體。不能為空不能部分為空1.實體完整性(EntityIntegrity)實體完整性是指主碼的值不能為空或不能部分為空。262.

參照完整性(Referentialintegrity)如果關(guān)系R2的外碼X與關(guān)系R1的主碼相符,則X的每個值或者等于R1中主碼的某一個值,或者取空值。SNO學(xué)號SN姓名SEX性別AGE年齡DEPT所在系S1趙亦女17計算機S2錢爾男18信息…

S11王威男19

S(學(xué)生關(guān)系)D(系別關(guān)系)DEPT所在系A(chǔ)DDR地址計算機1號樓自動化1號樓

信息2號樓空值R1R227學(xué)生

選課例:學(xué)號是學(xué)生關(guān)系的主鍵,在選課關(guān)系中,學(xué)號能不能取空值?283.用戶定義完整性(User-definedIntegrity)用戶定義完整性是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件。它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。例如,屬性值根據(jù)實際需要,要具備一些約束條件,如選課關(guān)系中成績不能為負(fù)數(shù);某些數(shù)據(jù)的輸入格式要有一些限制等。291.3.5關(guān)系數(shù)據(jù)庫模式與關(guān)系數(shù)據(jù)庫一、關(guān)系模式(RelationSchema):1.定義:一個關(guān)系的屬性名表(集合)R(A1,A2,…,An)叫做關(guān)系模式,其中

R為關(guān)系名;A1,A2,…,An為屬性名。二、關(guān)系數(shù)據(jù)庫(RelationDatabase)一組隨時間變化的,具有各種度的規(guī)范化關(guān)系的集合。關(guān)系頭2.關(guān)系數(shù)據(jù)庫模式:一組關(guān)系模式的集合。3.關(guān)系數(shù)據(jù)庫的內(nèi)容:對應(yīng)于關(guān)系數(shù)據(jù)庫模式的當(dāng)前值,也稱關(guān)系數(shù)據(jù)庫的實例。關(guān)系體關(guān)系數(shù)據(jù)庫由一組關(guān)系頭的集合及其關(guān)系體的集合組成。30例如教學(xué)數(shù)據(jù)庫中,共有五個關(guān)系,其關(guān)系模式分別學(xué)生(學(xué)號,姓名,性別,年齡,系別)教師(教師號,姓名,性別,年齡,系別)課程(課程號,課程名,課時)選課(學(xué)號,課程號,成績)授課(教師號,課程號)31在每個關(guān)系中,又有其相應(yīng)的數(shù)據(jù)庫的實例

S1趙亦女17計算機S2錢爾男18信息S3孫珊女20信息S4李思男21自動化S5周武男19計算機S6吳麗女20自動化與學(xué)生關(guān)系模式對應(yīng)的數(shù)據(jù)庫中的實例321.3.6關(guān)系運算關(guān)系數(shù)據(jù)語言的種類關(guān)系數(shù)據(jù)語言關(guān)系代數(shù)語言關(guān)系演算語言具有關(guān)系代數(shù)和關(guān)系演算雙重特點的語言元組關(guān)系演算語言域關(guān)系演算語言ISBL(InformationSystemBaseLanguage)QUELQBESQL33一、關(guān)系代數(shù)的分類及其運算符關(guān)系代數(shù)的運算對象是關(guān)系,運算結(jié)果也是關(guān)系,關(guān)系代數(shù)用到的運算符主要包括四類:集合運算符:∪(并),-(差),∩(交),×(廣義笛卡爾積);專門的關(guān)系運算符:σ(選取),∏(投影),∞(連接),*(自然連接),÷(除);算術(shù)比較運算符:>(大于),≥(大于等于),<(小于),≤(小于等于),=(等于),≠(不等于);邏輯運算符:∧(AND與),∨(OR或),┐(NOT非)1.3.7關(guān)系代數(shù)34關(guān)系代數(shù)的運算按運算符的不同主要分為兩類:傳統(tǒng)的集合運算:∪(并),-(差),∩(交),×(廣義笛卡爾積);專門的關(guān)系運算:

σ(選擇),∏(投影),∞(連接),*(自然連接),÷(除)35二、傳統(tǒng)的集合運算對參加運算的關(guān)系有什么要求呢?下面先看一個定義。定義設(shè)給定兩個關(guān)系R、S,若滿足:具有相同的度n;R中第i個屬性和S中第i個屬性必須來自同一個域。則說關(guān)系R、S是相容的。除笛卡爾積外,要求參加運算的關(guān)系必須滿足上述的相容性定義。361.并(Union)關(guān)系R和關(guān)系S的并由屬于R或?qū)儆赟的元組組成,即R和S的所有元組合并,刪去重復(fù)元組,組成一個新關(guān)系,其結(jié)果仍為n目關(guān)系。記作:

R∪S={t|t∈R∨t∈S}R

S對于關(guān)系數(shù)據(jù)庫,記錄的插入和添加可通過并運算實現(xiàn)。372.差(Difference)關(guān)系R與關(guān)系S的差由屬于R而不屬于S的所有元組組成,即R中刪去與S中相同的元組,組成一個新關(guān)系,其結(jié)果仍為n目關(guān)系。記作:

R-S={t|t∈R∧┐t∈S}R

S通過差運算,可實現(xiàn)關(guān)系數(shù)據(jù)庫

記錄的刪除。383.交(Intersection)關(guān)系R與關(guān)系S的交由既屬于R又屬于S的元組組成,即R與S中相同的元組,組成一個新關(guān)系,其結(jié)果仍為n目關(guān)系。記作:

R∩S={t|t∈R∧t∈S}R

S如果兩個關(guān)系沒有相同的元組,那么它們的交為空(Ф)。兩個關(guān)系的并和差運算為基本運算,而交運算為非基本運算,交運算可以用差運算來表示:R∩S=R-(R-S)394.廣義笛卡爾積(ExtendedCartesianProduct)不要求參加運算的兩個關(guān)系是同類關(guān)系。關(guān)系R的目為n,關(guān)系S的目為m,則R與S的廣義笛卡爾積為:

R×S={trts|tr∈R,ts∈S}⌒關(guān)系的廣義笛卡爾積可用于兩關(guān)系的連接操作;連接操作將在后面章節(jié)中介紹。結(jié)果:它是一個n+m列的元組,前n個分量為R中的一個n元組,后m個分量為S中的一個m元組。

⌒trts=(r1,r2,…,rn,s1,s2,…sm)稱為元組的連串40廣義笛卡兒積運算實例41三、專門的關(guān)系運算由于傳統(tǒng)的集合運算,只是從行的角度進(jìn)行,而要靈活地實現(xiàn)關(guān)系數(shù)據(jù)庫多樣的查詢操作,必須引入專門的關(guān)系運算。專門的關(guān)系運算:

σ(選擇),∏(投影),∞(連接),*(自然連接),÷(除)42樣板數(shù)據(jù)庫(學(xué)生-課程數(shù)據(jù)庫)1.選?。⊿election)選擇運算是單目運算,是在關(guān)系R中選擇滿足給定條件的若干個元組組成一個新的關(guān)系,記作:

σF(R)={t|t∈R∧F(t)為真}σ為選取運算符;F為選取的條件:它由運算對象(屬性名、常數(shù)、簡單函數(shù))、算術(shù)比較運算符(>,≥,<,≤,=,≠)和邏輯運算符(∨∧┐)連接起來的邏輯表達(dá)式,結(jié)果為邏輯值“真”或“假”。θ表示比較運算符,X1和Y1是運算對象基本形式為X1θY1屬性名也可以用它的序號來代替選取運算實際上是從關(guān)系R中選取使邏輯表達(dá)式為真的元組,是從行的角度進(jìn)行的運算。472.投影(Projection)關(guān)系R上的投影是從R中選擇出若干屬性列,組成新的關(guān)系,即對關(guān)系在垂直方向進(jìn)行的運算,從左到右按照指定的若干屬性及順序取出相應(yīng)列,刪去重復(fù)元組。記作:ΠA(R)={t[A]|t∈R}其中A為R中的屬性列,Π為投影運算符。48投影運算可以改變關(guān)系的屬性次序

49例4查詢選課關(guān)系中有哪些學(xué)生選修了課程。ΠSNO(SC)SNO9500195001950019500295002SNO9500195002投影后取消了某些屬性列,就可能出現(xiàn)重復(fù)行,應(yīng)該取消這些完全相同的行。所以投影之后,不但減少了屬性,元組也可能減少,新關(guān)系與原關(guān)系不相容。SNO95001ΠSNO(σCNO=’1’(SC))本例選取運算和投影運算相結(jié)合,先在選課表中選取滿足條件的元組,再于SNO屬性上進(jìn)行投影例5查詢選修了1號課程的學(xué)生學(xué)號。51例5查詢選修了1號課程的學(xué)生學(xué)號。ΠSNO(σCNO=’1’(SC))本例中,能不能改變選取運算與投影運算的次序?問題???SNO9500195002不能改變運算次序52投影運算是從列的角度進(jìn)行的運算,這正是選取運算和投影運算的區(qū)別所在。選取運算是從關(guān)系的水平方向上進(jìn)行運算的,而投影運算則是從關(guān)系的垂直方向上進(jìn)行的。533.連接(Join)連接運算是二目運算,是從兩個關(guān)系的笛卡爾積中選取滿足連接條件的元組,組成新的關(guān)系。設(shè)關(guān)系R(A1,A2,……An)及S(B1,B2,……Bm),連接屬性集X包含于{A1,A2,……An},及Y包含于{B1,B2,……Bm},X與Y中屬性列數(shù)目相等,且相對應(yīng)屬性有共同的域。關(guān)系R和S在連接屬性X和Y上的連接,就是從R×S笛卡爾積中,選取X屬性列上的分量與Y屬性列上的分量滿足給定θ比較條件的那些元組,組成新的關(guān)系。新關(guān)系的度為n+m。

若Z={A1,A2……An}/X(/X:去掉X之外的屬性)及W={B1,B2……Bm}/Y,則R及S可表示為R(Z,X),S(W,Y)XY是相容的54記作:RS={|tr∈R∧ts∈S∧tr[X]θts[Y]為真}其中,是連接運算符,θ為算術(shù)比較運算符,也稱θ連接;XθY為連接條件;θ為“=”時,稱為等值連接;θ為“<”時,稱為小于連接;θ為“>”時,稱為大于連接。連接運算為非基本運算,可以用選取運算和廣義笛卡爾積運算來表示:RS=σxθy(R×S)trts(55例6如圖所示的兩個關(guān)系R與S,求(1)R和S滿足C>D的連接;ABCa1b12a1b24a2b36a2b48BDb15b2

溫馨提示

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

評論

0/150

提交評論