關(guān)聯(lián)式資料模型與關(guān)聯(lián)式資料庫(kù)的限制課件_第1頁(yè)
關(guān)聯(lián)式資料模型與關(guān)聯(lián)式資料庫(kù)的限制課件_第2頁(yè)
關(guān)聯(lián)式資料模型與關(guān)聯(lián)式資料庫(kù)的限制課件_第3頁(yè)
關(guān)聯(lián)式資料模型與關(guān)聯(lián)式資料庫(kù)的限制課件_第4頁(yè)
關(guān)聯(lián)式資料模型與關(guān)聯(lián)式資料庫(kù)的限制課件_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、關(guān)聯(lián)式資料模型與關(guān)聯(lián)式資料庫(kù)的限制第 5 章1關(guān)聯(lián)式模型的觀念非正式的定義正式的定義關(guān)聯(lián)的特徵鍵值限制候選鍵與主鍵實(shí)體完整性與參考完整性限制其他類型的限制關(guān)聯(lián)的更新運(yùn)算動(dòng)作學(xué)習(xí)重點(diǎn)2資料庫(kù)管理關(guān)聯(lián)式模型(relational model):將資料庫(kù)表示成一個(gè)由關(guān)聯(lián)(relation)所組成的集合每個(gè)關(guān)聯(lián)就好像一個(gè)表格(table),裡面有資料值表格名稱與欄位名稱是用來(lái)說(shuō)明每一列的值所代表的意義關(guān)聯(lián)是一種數(shù)學(xué)觀念,其理論基礎(chǔ)是集合論關(guān)聯(lián)式模型的觀念3資料庫(kù)管理非正式的定義關(guān)聯(lián) (Relation):由資料值所組成的表格關(guān)聯(lián)可視為是一組橫列 (row) 的集合關(guān)聯(lián)也可以視為是一組直欄 (colum

2、n) 的集合每個(gè)橫列是對(duì)應(yīng)到某個(gè)真實(shí)世界的實(shí)體或關(guān)係每個(gè)直欄通常是以它的欄位名稱、欄位標(biāo)題或?qū)傩悦Q來(lái)稱呼每一橫列(row)有一或多個(gè)項(xiàng)目的值能讓此橫列被唯一辨識(shí)出來(lái)這一或多個(gè)項(xiàng)目被稱為鍵值(key)例如,圖5.1中,Ssn即是鍵值(key)4資料庫(kù)管理正式的定義綱要(schema)關(guān)聯(lián)式模型術(shù)語(yǔ)的正式定義關(guān)聯(lián)(relation):表格值組(tuple):每一列屬性(attribute):欄位的標(biāo)題定義域(domain):每一欄內(nèi)所能合法出現(xiàn)的數(shù)值關(guān)聯(lián)的綱要被表示成R (A1, A2, .An)R是關(guān)聯(lián)的名稱A1, A2, .An 皆是關(guān)聯(lián)的屬性範(fàn)例CUSTOMER (Cust-id, Cus

3、t-name, Address, Phone#)CUSTOMER是關(guān)聯(lián)名稱4個(gè)屬性Cust-id、Cust-name、Address、Phone# 6資料庫(kù)管理正式的定義值組(tuple)值組 (tuple):一組值的有序集合 (ordered set)每個(gè)值都是從適當(dāng)?shù)亩x域中取得範(fàn)例:在CUSTOMER關(guān)聯(lián)中每一列可以稱作一筆值組,其中含有4個(gè)值例如 , 是其中一筆值組一個(gè)關(guān)聯(lián)可以稱作一組值組 (tuple) 的集合關(guān)聯(lián)的向度(degree):關(guān)聯(lián)綱要的屬性個(gè)數(shù)7資料庫(kù)管理正式的定義狀態(tài)(state)關(guān)聯(lián)狀態(tài)(relation state):關(guān)聯(lián)R(A1, A2, ., An)的狀態(tài)是由n

4、值組所組成的集合 r=t1, t2, ., tm表示成 r(R)每個(gè)n值組(n-tuple) t 都是由n個(gè)vi所組成的有序串列實(shí)際上, t = v1, v2, ., vn,每個(gè)vi都是dom (Ai)的一個(gè)元素或是個(gè)特殊的空值(NULL)關(guān)聯(lián)狀態(tài)的數(shù)學(xué)化正式定義由定義域的卡氏積 (cartesian product) 所形成的卡氏積會(huì)產(chǎn)生由定義域所衍生出來(lái)所有可能值的組合r(R) dom (A1) dom (A2) . dom(An)卡內(nèi)積中的值組總個(gè)數(shù)為|dom (A1)| |dom (A2)| . |dom(An)|dom (Ai)|代表定義域dom (Ai)內(nèi)資料值的總個(gè)數(shù)9資料庫(kù)管理

5、定義域的範(fàn)例假設(shè)R(A1, A2) 是一個(gè)關(guān)聯(lián)綱要令 dom(A1) = 0,1 且 dom(A2) = a,b,c則 dom(A1) dom(A2) 是所有可能值的組合,如下所示 , , , , , 通常 r(R) dom(A1) dom(A2)例如,在資料庫(kù)中的關(guān)聯(lián)狀態(tài) r(R) 可能只有三組資料,如下所示, , 10資料庫(kù)管理名詞定義對(duì)照表正式的關(guān)連式術(shù)語(yǔ)非正式的相等用語(yǔ)關(guān)連(relation)表格(table)值組(tuple)橫列或記錄(row or record)基數(shù)(cardinality)橫列個(gè)數(shù)(number of rows)屬性(attribute)直欄或欄位(column

6、 or field)定義域(domain)合法值群(Values in a column)向度(degree)直行個(gè)數(shù)(number of columns)主鍵(primary key)唯一識(shí)別字(unique identifier)11資料庫(kù)管理關(guān)聯(lián)的特徵 (1/4)關(guān)聯(lián) r(R)中值組的順序:關(guān)聯(lián)中的值組是沒(méi)有任何特定順序的圖5.1與圖5.2所表示的關(guān)聯(lián)被視為完全相等要求值組有順序有時(shí)候反而造成麻煩:順序本身也是一種資訊,須小心維護(hù)其順序系統(tǒng)必須提供在第 n 與第 n+1 筆間加入一筆或 請(qǐng)刪除第 6 筆的運(yùn)算要以那一個(gè)屬性做為排順序的依據(jù)?或是以加入的時(shí)間來(lái)排順序?通常的應(yīng)用中,是查詢後

7、對(duì)結(jié)果下排序命令(order by)12資料庫(kù)管理關(guān)聯(lián)的特徵 (2/4)13資料庫(kù)管理關(guān)聯(lián)的特徵 (3/4)關(guān)聯(lián)綱要R中屬性的順序 (及值組中資料值的順序)定義在R(A1, A2, ., An) 中的屬性,還有在 t= 裡的值是有順序的 (ordered)在一般化的關(guān)聯(lián)定義,不需要限制屬性的順序事實(shí)上,屬性與其資料值的順序並非那麼重要只要能夠維持屬性及其資料值間的對(duì)映即可圖5.3的兩個(gè)值組若根據(jù)這個(gè)定義,則是完全相同的14資料庫(kù)管理所謂的限制 (constraint) 是指在所有有效的關(guān)聯(lián)實(shí)例上都要成立的那些條件 (condition)。這裡的限制主要分成3種:鍵值限制 (key constr

8、aint)實(shí)體完整性限制 (entity integrity constraint)參考完整性限制 (referential integrity constraint)定義域限制 (domain constraint)每個(gè)屬性A的值必須是該屬性定義域dom(A)內(nèi)的一個(gè)不可分割的單元值此限制通常是隱含的限制關(guān)聯(lián)式模型的限制16資料庫(kù)管理鍵值限制 (1/2)鍵值限制(key constraint):在同一個(gè)關(guān)聯(lián)中,二筆不同的值組在鍵值(key)上的所有屬性不能有完全相同的值鍵值(key):鍵值(記作K)是最小的超鍵(superkey),也就是說(shuō)它如果從K移除了任何屬性後,所形成的新集合K不再是關(guān)

9、聯(lián)綱要R的超鍵超鍵(superkey):關(guān)聯(lián)綱要R的超鍵,代表R中一些屬性的集合(記作SK),且滿足下列條件在合法的關(guān)聯(lián)狀態(tài)r(R)中,沒(méi)有任何兩個(gè)SK值組內(nèi)的屬性資料值是相同的??蓪懗扇蝺蓚€(gè)r(R)中不同的值組 t1 及 t2 t1SK t2SK17資料庫(kù)管理候選鍵與主鍵 (1/2)候選鍵(candidate key):一個(gè)關(guān)聯(lián)綱要可能有一個(gè)以上的鍵值,這種情況下,每個(gè)鍵值都被稱為候選鍵在圖5.4中,CAR關(guān)聯(lián)有兩個(gè)候選鍵License_number 及 Engine_serial_number候選鍵的值會(huì)被用來(lái)識(shí)別關(guān)聯(lián)中的不同值組主鍵(primary key):候選鍵其中之一會(huì)被指定為此關(guān)

10、聯(lián)的主鍵通常會(huì)選擇所含屬性的個(gè)數(shù)愈小越好,最好只有一個(gè)屬性主鍵通常會(huì)被加上底線應(yīng)選擇較不會(huì)改變其值的屬性當(dāng)主鍵。如學(xué)號(hào)、身份証號(hào)碼確保不會(huì)有空值(null)的屬性19資料庫(kù)管理候選鍵與主鍵 (2/2)20資料庫(kù)管理關(guān)聯(lián)式資料庫(kù)綱要關(guān)聯(lián)式資料庫(kù)綱要(schema)一個(gè)關(guān)聯(lián)式資料庫(kù)綱要S,是一組關(guān)聯(lián)綱要的集合,S = R1, R2 , Rm,加上一組完整性限制(integrity constraint) IC關(guān)聯(lián)式資料庫(kù)狀態(tài)(state)S的關(guān)聯(lián)式資料庫(kù)狀態(tài)DB,是一組關(guān)聯(lián)狀態(tài)的集合,DB = r1, r2 , rm,其中每一個(gè)ri 都是Ri 的狀態(tài),且ri 滿足IC中的完整性限制圖5.5是一個(gè)關(guān)

11、聯(lián)式資料庫(kù)綱要範(fàn)例共有六個(gè)關(guān)聯(lián)每個(gè)關(guān)聯(lián)綱要中畫底線的屬性代表主鍵21資料庫(kù)管理關(guān)聯(lián)式資料庫(kù)綱要的範(fàn)例22資料庫(kù)管理關(guān)聯(lián)式資料庫(kù)狀態(tài)的範(fàn)例23資料庫(kù)管理實(shí)體完整性及參考完整性限制 (1/2)實(shí)體完整性限制(entity integrity constraint)主鍵的值不可以等於空值 (NULL)參考完整性限制(referential integrity constraint)一個(gè)關(guān)聯(lián)R1參考到另一個(gè)關(guān)聯(lián)R2時(shí), R1裡的外來(lái)鍵的值必須滿足外來(lái)鍵的定義鍵值限制與實(shí)體完整性限制:指定在個(gè)別關(guān)聯(lián)上參考完整性限制:指定在兩個(gè)關(guān)聯(lián)之間,用來(lái)保持兩個(gè)關(guān)聯(lián)值組間的一致性24資料庫(kù)管理參考完整性限制範(fàn)例26資

12、料庫(kù)管理其他類型的限制語(yǔ)意完整性限制 (Semantic Integrity Constraint)根據(jù)應(yīng)用本身的語(yǔ)意,無(wú)法由模型本身來(lái)表達(dá)例如,員工在所有計(jì)畫上工作的每週最大時(shí)數(shù)為56就算是這類限制這類限制是利用一種限制指定語(yǔ)言 (constraint specification language) 來(lái)表達(dá)所使用的機(jī)制被稱為觸發(fā) (trigger) 或宣示(assertion)SQL-99有 CREATE ASSERTION命令可使用27資料庫(kù)管理關(guān)聯(lián)的更新運(yùn)算動(dòng)作 (2/2)假如發(fā)生違反完整性限制的情況,可以採(cǎi)取以下這些措施:取消(cancel)導(dǎo)致這個(gè)違反情況的運(yùn)算REJECT 選項(xiàng)執(zhí)行

13、(perform)這個(gè)運(yùn)算但通知(inform)使用者有發(fā)生違反情況觸發(fā)(trigger)額外的更新動(dòng)作,來(lái)修正這個(gè)違反情況CASCADE選項(xiàng)、SET NULL選項(xiàng)執(zhí)行由使用者所定義的錯(cuò)誤修正程序29資料庫(kù)管理插入(insert)運(yùn)算插入運(yùn)算可能違反的完整性限制定義域限制如果被指定的屬性值並未屬於所對(duì)應(yīng)的定義域鍵值限制如果新值組的鍵值已經(jīng)存在於關(guān)聯(lián)中的另一個(gè)值組裡實(shí)體完整性限制如果新值組的主鍵等於NULL參考完整性限制如果新值組的任何外來(lái)鍵參考了某個(gè)不在被參考關(guān)聯(lián)中的值組30資料庫(kù)管理插入運(yùn)算範(fàn)例 (1/2)將 插入到EMPLOYEE 中拒絕(Reject):因?yàn)榇瞬迦脒\(yùn)算的主鍵Ssn 是NU

14、LL,違反實(shí)體完整性限制詢問(wèn)使用者:提供一個(gè)有效的Ssn值將 插入到EMPLOYEE 中拒絕(Reject):因?yàn)榇瞬迦脒\(yùn)算的主鍵Ssn 的值 999887777已存在於EMPLOYEE中,違反鍵值限制31資料庫(kù)管理插入運(yùn)算範(fàn)例 (2/2)將 插入到EMPLOYEE 中詢問(wèn)使用者:因?yàn)榇瞬迦脒\(yùn)算的外來(lái)鍵Dno 值 7,違反參考完整性限制(在DEPARTMENT中沒(méi)有Dnumber=7)將 插入到EMPLOYEE 中接受(Accept):因?yàn)榇瞬迦脒\(yùn)算滿足所有的限制32資料庫(kù)管理刪除(delete)運(yùn)算 (1/2)刪除運(yùn)算只可能會(huì)違反參考完整性限制範(fàn)例:刪除Essn=999887777與Pno=

15、10的WORKS_ON值組接受(Accept):會(huì)剛好刪除一個(gè)值組刪除Ssn=999887777的EMPLOYEE值組不可接受(Not Accept):因?yàn)閃ORKS_ON中有值組參考到此值組,若執(zhí)行刪除會(huì)違反參考完整性限制刪除Ssn=333445555的EMPLOYEE值組不可接受(Not Accept):因?yàn)镋MPLOYEE, DEPARTMENT, WORKS_ON與DEPENDENT等關(guān)聯(lián)的值組都參考到該值組33資料庫(kù)管理刪除(delete)運(yùn)算 (2/2)刪除運(yùn)算導(dǎo)致違反限制時(shí),有三種可能的處理方式拒絕(Reject)刪除連鎖(Cascade)刪除:將會(huì)參考到被刪除值組的值組也刪除修

16、改(update)屬性值:修改那些會(huì)導(dǎo)致違反情況的參考屬性值,將它的值設(shè)定成NULL,或改成參考到另外一個(gè)有效的值組通常DBMS會(huì)讓使用者指定在限制被違反時(shí),該使用上述的那一種處理方式34資料庫(kù)管理更新(Update)運(yùn)算 (1/2)將Ssn=999887777的EMPLOYEE值組內(nèi)的Salary屬性修改為28000可接受(Acceptable)將Ssn=999887777的EMPLOYEE值組內(nèi)的Dno屬性修改為1可接受(Acceptable)將Ssn=999887777的EMPLOYEE值組內(nèi)的Dno屬性修改為7不可接受(Unacceptable):違反參考完整性限制將Ssn=999887777的EMPLOYE

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論