關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義_第1頁
關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義_第2頁
關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義_第3頁
關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義_第4頁
關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

關(guān)系數(shù)據(jù)結(jié)構(gòu)及形式化定義在關(guān)系模型中,無論是實(shí)體還是實(shí)體之間的聯(lián)系均由單一的結(jié)構(gòu)類型即關(guān)系(表)來表示。前面己經(jīng)非形式化地介紹了關(guān)系模型及有關(guān)的基本概念。關(guān)系模型是建立在集合代數(shù)的基礎(chǔ)上的,這里從集合論角度給出關(guān)系數(shù)據(jù)結(jié)構(gòu)的形式化定義。一關(guān)系l.域(Domain)定義1域是一組具有相同數(shù)據(jù)類型的值的集合。例如,自然數(shù)、整數(shù)、實(shí)數(shù)、長度小于25字節(jié)的字符串集合、{0,l}、大于等于0且小于等于100的正整數(shù)等,都可以是域。2.笛卡爾積(CartesianProduct)定義2給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=l,2,…,n}其中每一個(gè)元素(d1,d2,…,dn)叫作一個(gè)n元組(n-tuple)或簡稱元組(Tuple)。元素中的每一個(gè)值di叫作一個(gè)分量(Component)。若Di(i=l,2,…,n)為有限集,其基數(shù)(Cardinalnumber)為mi(i=l,2,…,n),則D1×D2×…×Dn的基數(shù)M為:笛卡爾積可表示為一個(gè)二維表。表中的每行對(duì)應(yīng)一個(gè)元組,表中的每列對(duì)應(yīng)一個(gè)域。例如給出三個(gè)城:D1=導(dǎo)師集合SUPERVISOR=張清玫,劉逸D2=專業(yè)集合SPECIALITY=計(jì)算機(jī)專業(yè),信息專業(yè)D3=研究生集合POSTGRADUATE=勇,劉晨,王敏則D1,D2,D3的笛卡爾積為:D1×D2×D3={(張清玫,計(jì)算機(jī)專業(yè),李勇),(張清玫,計(jì)算機(jī)專業(yè),劉晨),(張清玫,計(jì)算機(jī)專業(yè),王敏),(張清玫,信息專業(yè),李勇),(張清玫,信息專業(yè),劉晨),(張清玫,信息專業(yè),王敏),(劉逸,計(jì)算機(jī)專業(yè),李勇),(劉逸,計(jì)算機(jī)專業(yè),劉晨),(劉逸,計(jì)算機(jī)專業(yè),王敏),(劉逸,信息專業(yè),李勇),(劉逸,信息專業(yè),劉晨),(劉逸,信息專業(yè),王敏)}其中(張清玫,計(jì)算機(jī)專業(yè),李勇)、(張清玫,計(jì)算機(jī)專業(yè),劉晨)等都是元組。張清玫、計(jì)算機(jī)專業(yè)、李勇、劉晨等都是分量。該笛卡爾積的基數(shù)為2×2×3=12,也就是說,D1×D2×D3一共有2×2×3=12個(gè)元組。這12個(gè)元組可列成一張二維表(如表l)。表1D1,D2,D3的笛卡爾積3.關(guān)系(Relation)定義3D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的關(guān)系,表示為R(D1,D2,…,Dn)這里R表示關(guān)系的名字,n是關(guān)系的目或度(Degree)。關(guān)系中的每個(gè)元素是關(guān)系中的元組,通常用t表示。當(dāng)n=l時(shí),稱該關(guān)系為單元關(guān)系(Unaryrelation)。當(dāng)n=2時(shí),稱該關(guān)系為二元關(guān)系(Binaryrelation)。關(guān)系是笛卡爾積的有限子集,所以關(guān)系也是一個(gè)二維表,表的每行對(duì)應(yīng)一個(gè)元組,表的每列對(duì)應(yīng)一個(gè)域。由于域可以相同,為了加以區(qū)分,必須對(duì)每列起一個(gè)名字,稱為屬性(Attribute)。n目關(guān)系必有n個(gè)屬性。若關(guān)系中的某一屬性組的值能唯一地標(biāo)識(shí)一個(gè)元組,則稱該屬性組為候選碼(Candidatekey)。若一個(gè)關(guān)系有多個(gè)候選碼,則選定其中一個(gè)為主碼(Primaryhers)。主碼的諸屬性稱為主屬性(Primeattribute)。不包含在任何候選碼中的屬性稱為非碼屬性(Non-keyattribute)。在最簡單的情況下,候選碼只包含一個(gè)屬性。在最極端的情況下,關(guān)系模式的所有屬性組是這個(gè)關(guān)系模式的候選碼,稱為全碼(All-key)。例如,可以在表2.l的笛卡爾積中取出一個(gè)子集來構(gòu)造一個(gè)關(guān)系。由于一個(gè)研究生只師從于一個(gè)導(dǎo)師,學(xué)習(xí)某一個(gè)專業(yè),所以笛卡爾積中的許多元組是無實(shí)際意義的,從中取出有實(shí)際意義的元組來構(gòu)造關(guān)系。該關(guān)系的名字為SAP,屬性名就取域名,即SUPERVISOR,SPECIALITY和POSTGRADUATE。則這個(gè)關(guān)系可以表示為:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)假設(shè)導(dǎo)師與專業(yè)是一對(duì)一的,即一個(gè)導(dǎo)師只有一個(gè)專業(yè);導(dǎo)師與研究生是一對(duì)多的,即一個(gè)導(dǎo)師可以帶多名研究生,而一名研究生只有一個(gè)導(dǎo)師。這樣SAP關(guān)系可以包含三個(gè)元組,如表2所示。表2SAP關(guān)系假設(shè)研究生不會(huì)重名(這在實(shí)際當(dāng)中是不合適的,這里只是為了舉例方便),則POSTGRADUATE屬性的每一個(gè)值都唯一地標(biāo)識(shí)了一個(gè)元組,因此可以作為SAP關(guān)系的主碼。關(guān)系可以有三種類型:基本關(guān)系(通常又稱為基本表或基表)、查詢表和視圖表?;颈硎菍?shí)際存在的表,它是實(shí)際存儲(chǔ)數(shù)據(jù)的邏輯表示。查詢表是查詢結(jié)果對(duì)應(yīng)的表。視圖表是由基本表或其他視圖表導(dǎo)出的表,是虛表,不對(duì)應(yīng)實(shí)際存儲(chǔ)的數(shù)據(jù)。按照定義2,關(guān)系可以是一個(gè)無限集合。由于笛卡爾積不滿足交換律,所以按照數(shù)學(xué)定義,(d1,d2,…,dn)≠(d2,d1,…,dn)。當(dāng)關(guān)系作為關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)時(shí),需要給予如下的限定和擴(kuò)充:(1)無限關(guān)系在數(shù)據(jù)庫系統(tǒng)中是無意義的。因此,限定關(guān)系數(shù)據(jù)模型中的關(guān)系必須是有限集合。(2)通過為關(guān)系的每個(gè)列附加一個(gè)屬性名的方法取消關(guān)系元組的有序性,即(d1,d2,…,di,dj,…,dn)=(d2,d1,…,dj,di,…,dn)(i,j=1,2,…,n)。因此,基本關(guān)系具有以下六條性質(zhì):①列是同質(zhì)的(Homogeneous),即每一列中的分量是同一類型的數(shù)據(jù),來自同一個(gè)域。②不同的列可出自同一個(gè)域,稱其中的每一列為一個(gè)屬性,不同的屬性要給予不同的屬性名。例如在上面的例子中,也可以只給出兩個(gè)城:人(PERSON)=張清玫,劉逸,李勇,劉晨,王敏專業(yè)(SPECIALITY)=計(jì)算機(jī)專業(yè),信息專業(yè)SAP關(guān)系的導(dǎo)師屬性和研究生屬性都從PERSON域中取值。為了避免混淆,必須給這兩個(gè)屬性取不同的屬性名,而不能直接使用城名。例如定義導(dǎo)師屬性名為SUPERVISOR-PERSON(或SUPERVISOR),研究生屬性名為POSTGMDUATE-PERSON(或POSTGRADUATE)。③列的順序無所謂,即列的次序可以任意交換。由于列順序是無關(guān)緊要的,因此在許多實(shí)際關(guān)系數(shù)據(jù)庫產(chǎn)品中(例如Oracle),增加新屬性時(shí),永遠(yuǎn)是插至最后一列。④任意兩個(gè)元組不能完全相同。⑤行的順序無所謂,即行的次序可以任意交換。③分量必須取原子值,即每一個(gè)分量都必須是不可分的數(shù)據(jù)項(xiàng)。注意:在許多實(shí)際關(guān)系數(shù)據(jù)庫產(chǎn)品中,基本表并不完全具有這六條性質(zhì),例如,有的數(shù)據(jù)庫產(chǎn)品(如FoxPro)仍然區(qū)分了屬性順序和元組的順序;許多關(guān)系數(shù)據(jù)庫產(chǎn)品中,例如Oracle,F(xiàn)oxPro等,它們都允許關(guān)系表中存在兩個(gè)完全相同的元組,除非用戶特別定義了相應(yīng)的約束條件。關(guān)系模型要求關(guān)系必須是規(guī)范化的,即要求關(guān)系模式必須滿足一定的規(guī)范條件。這些規(guī)范條件中最基本的一條就是,關(guān)系的每一個(gè)分量必須是一個(gè)不可分的數(shù)據(jù)項(xiàng)。規(guī)范化的關(guān)系簡稱為范式(NormalForm)。例如,表3雖然很好地表達(dá)了導(dǎo)師與研究生之間的一對(duì)多關(guān)系,但由于POSTGRADUATE分量取了兩個(gè)值,不符合規(guī)范化的要求,因此這樣的關(guān)系在數(shù)據(jù)庫中是不允許的。表3非規(guī)范化關(guān)系二關(guān)系模式在數(shù)據(jù)庫中要區(qū)分型和值。關(guān)系數(shù)據(jù)庫中,關(guān)系模式是型,關(guān)系是值。關(guān)系模式是對(duì)關(guān)系的描述,那么一個(gè)關(guān)系需要描述哪些方面呢?首先,應(yīng)該知道,關(guān)系實(shí)質(zhì)上是一張二維表,表的每一行為一個(gè)元組,每一列為一個(gè)屬性。一個(gè)元組就是該關(guān)系所涉及的屬性集的笛卡爾積的一個(gè)元素。關(guān)系是無組的集合,因此關(guān)系模式必須指出這個(gè)元組集合的結(jié)構(gòu),即它由哪些屬性構(gòu)成,這些屬性來自哪些城,以及屬性與城之間的映象關(guān)系。其次,一個(gè)關(guān)系通常是由賦予它的元組語義來確定的。元組語義實(shí)質(zhì)上是一個(gè)n目謂詞(n是屬性集中屬性的個(gè)數(shù))。凡使該n目謂詞為真的笛卡爾積中的元素(或者說凡符合元組語義的那部分元素)的全體就構(gòu)成了該關(guān)系模式的關(guān)系?,F(xiàn)實(shí)世界隨著時(shí)間在不斷地變化,因而在不同的時(shí)刻,關(guān)系模式的關(guān)系也會(huì)有所變化。但是,現(xiàn)實(shí)世界的許多己有事實(shí)限定了關(guān)系模式所有可能的關(guān)系必須滿足一定的完整性約束條件。這些約柬或者通過對(duì)屬性取值范圍的限定,例如職工年齡小于65歲(65歲以后必須退休),或者通過屬性值間的相互關(guān)連(主要體現(xiàn)于值的相等與否)反映出來。關(guān)系模式應(yīng)當(dāng)刻劃出這些完整性約束條件。因此一個(gè)關(guān)系模式應(yīng)當(dāng)是一個(gè)5元組。定義4關(guān)系的描述稱為關(guān)系模式(RelationSchema)。它可以形式化地表示為:R(U,D,dom,F(xiàn))其中R為關(guān)系名,U為組成該關(guān)系的屬性名集合,D為屬性組U中屬性所來自的域,dom為屬性向域的映象集合,F(xiàn)為屬性間數(shù)據(jù)的依賴關(guān)系集合。例如,在上面例子中,由于導(dǎo)師和研究生出自同一個(gè)域-人,所以要取不同的屬性名,并在模式中定義屬性向域的映象,即說明它們分別出自哪個(gè)域,如:dom(SUPERVISOR-PERSON)=dom(POSTGRADUATE-PERSON)=PERSON關(guān)系模式通常可以簡記為R(U)或R(A1,A2,…,An)其中,R為關(guān)系名,A1,A2,…,An為屬性名。而域名及屬性向域的映象常常直接說明為屬性的類型、長度。關(guān)系是關(guān)系模式在某一時(shí)刻的狀態(tài)或內(nèi)容。關(guān)系模式是靜態(tài)的、穩(wěn)定的,而關(guān)系是動(dòng)態(tài)的、隨時(shí)間不斷變化的,因?yàn)殛P(guān)系操作在不斷地更新著數(shù)據(jù)庫中的數(shù)據(jù)。但在實(shí)際當(dāng)中,人們常常把關(guān)系模式和關(guān)系都稱為關(guān)系,這不難從上下文中加以區(qū)別。三關(guān)系數(shù)據(jù)

溫馨提示

  • 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)論