欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    关联式资料模型与关联式资料库的限制.ppt

    • 资源ID:6091939       资源大小:1.24MB        全文页数:36页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    关联式资料模型与关联式资料库的限制.ppt

    關聯式資料模型與關聯式資料庫的限制,第 5 章,資料庫管理,2,關聯式模型的觀念非正式的定義正式的定義關聯的特徵鍵值限制候選鍵與主鍵實體完整性與參考完整性限制其他類型的限制關聯的更新運算動作,學習重點,資料庫管理,3,關聯式模型(relational model):將資料庫表示成一個由關聯(relation)所組成的集合每個關聯就好像一個表格(table),裡面有資料值表格名稱與欄位名稱是用來說明每一列的值所代表的意義關聯是一種數學觀念,其理論基礎是集合論,關聯式模型的觀念,資料庫管理,4,非正式的定義,關聯(Relation):由資料值所組成的表格關聯可視為是一組橫列(row)的集合關聯也可以視為是一組直欄(column)的集合每個橫列是對應到某個真實世界的實體或關係每個直欄通常是以它的欄位名稱、欄位標題或屬性名稱來稱呼每一橫列(row)有一或多個項目的值能讓此橫列被唯一辨識出來這一或多個項目被稱為鍵值(key)例如,圖5.1中,Ssn即是鍵值(key),資料庫管理,5,Student關聯的屬性和值組,資料庫管理,6,正式的定義綱要(schema),關聯式模型術語的正式定義關聯(relation):表格值組(tuple):每一列屬性(attribute):欄位的標題定義域(domain):每一欄內所能合法出現的數值關聯的綱要被表示成R(A1,A2,.An)R是關聯的名稱A1,A2,.An 皆是關聯的屬性範例CUSTOMER(Cust-id,Cust-name,Address,Phone#)CUSTOMER是關聯名稱4個屬性Cust-id、Cust-name、Address、Phone#,資料庫管理,7,正式的定義值組(tuple),值組(tuple):一組值的有序集合(ordered set)每個值都是從適當的定義域中取得範例:在CUSTOMER關聯中每一列可以稱作一筆值組,其中含有4個值例如,是其中一筆值組一個關聯可以稱作一組值組(tuple)的集合關聯的向度(degree):關聯綱要的屬性個數,資料庫管理,8,正式的定義定義域(domain),定義域(domain):由一組不可分割的單元值(atomic)所組成的集合可以被指定某種資料型態或資料格式USA_phone_numbers定義域的資料型態可宣告為(ddd)-ddd-dddd,其中的d是代表一個10進位數字日期的資料格式有多種,如yyyy-mm-dd或dd mm,yyyy組成定義域的所有值可以由這個資料型態中取得定義域會指定名稱、資料型態或格式,另外可能指定其他額外的資訊例如,Person_weights需要指定其測量單位(磅or公斤)屬性Ai的定義域,被表示成dom(Ai),資料庫管理,9,正式的定義狀態(state),關聯狀態(relation state):關聯R(A1,A2,.,An)的狀態是由n值組所組成的集合 r=t1,t2,.,tm表示成 r(R)每個n值組(n-tuple)t 都是由n個vi所組成的有序串列實際上,t=v1,v2,.,vn,每個vi都是dom(Ai)的一個元素或是個特殊的空值(NULL)關聯狀態的數學化正式定義由定義域的卡氏積(cartesian product)所形成的卡氏積會產生由定義域所衍生出來所有可能值的組合r(R)dom(A1)dom(A2).dom(An)卡內積中的值組總個數為|dom(A1)|dom(A2)|.|dom(An)|dom(Ai)|代表定義域dom(Ai)內資料值的總個數,資料庫管理,10,定義域的範例,假設R(A1,A2)是一個關聯綱要令 dom(A1)=0,1 且 dom(A2)=a,b,c則 dom(A1)dom(A2)是所有可能值的組合,如下所示,通常 r(R)dom(A1)dom(A2)例如,在資料庫中的關聯狀態 r(R)可能只有三組資料,如下所示,資料庫管理,11,名詞定義對照表,資料庫管理,12,關聯的特徵(1/4),關聯 r(R)中值組的順序:關聯中的值組是沒有任何特定順序的圖5.1與圖5.2所表示的關聯被視為完全相等要求值組有順序有時候反而造成麻煩:順序本身也是一種資訊,須小心維護其順序系統必須提供在第 n 與第 n+1 筆間加入一筆或 請刪除第 6 筆的運算要以那一個屬性做為排順序的依據?或是以加入的時間來排順序?通常的應用中,是查詢後對結果下排序命令(order by),資料庫管理,13,關聯的特徵(2/4),資料庫管理,14,關聯的特徵(3/4),關聯綱要R中屬性的順序(及值組中資料值的順序)定義在R(A1,A2,.,An)中的屬性,還有在 t=裡的值是有順序的(ordered)在一般化的關聯定義,不需要限制屬性的順序事實上,屬性與其資料值的順序並非那麼重要只要能夠維持屬性及其資料值間的對映即可圖5.3的兩個值組若根據這個定義,則是完全相同的,資料庫管理,15,關聯的特徵(4/4),值組中的資料值:在關聯模型中,值組內的每個資料值都是不可分割的(atomic)。表示法:將值組 t 的成分值以 tAi=vi 來表示(值組 t 的屬性Ai 的值)tAu,Av,.,Aw 是代表 t 的子值組,裡面分別包括屬性Au,Av,.,Aw 的值值組中的空值:空值(null)是用來表示屬性值是未知的,或者是不適用於該值組,資料庫管理,16,所謂的限制(constraint)是指在所有有效的關聯實例上都要成立的那些條件(condition)。這裡的限制主要分成3種:鍵值限制(key constraint)實體完整性限制(entity integrity constraint)參考完整性限制(referential integrity constraint)定義域限制(domain constraint)每個屬性A的值必須是該屬性定義域dom(A)內的一個不可分割的單元值此限制通常是隱含的限制,關聯式模型的限制,資料庫管理,17,鍵值限制(1/2),鍵值限制(key constraint):在同一個關聯中,二筆不同的值組在鍵值(key)上的所有屬性不能有完全相同的值鍵值(key):鍵值(記作K)是最小的超鍵(superkey),也就是說它如果從K移除了任何屬性後,所形成的新集合K不再是關聯綱要R的超鍵超鍵(superkey):關聯綱要R的超鍵,代表R中一些屬性的集合(記作SK),且滿足下列條件在合法的關聯狀態r(R)中,沒有任何兩個SK值組內的屬性資料值是相同的。可寫成任兩個r(R)中不同的值組 t1 及 t2 t1SK t2SK,資料庫管理,18,鍵值限制(2/2),範例:考慮CAR關聯綱要CAR(State,Reg#,SerialNo,Make,Model,Year)假設CAR有兩個鍵值(key)Key1=State,Reg#Key2=SerialNoKey1 及 Key2 都是CAR 的超鍵(superkey)SerialNo,Make是CAR的超鍵,但不是鍵值結論任何鍵值是超鍵(反之,則不然)任何包含鍵值的屬性集合一定是超鍵最小的超鍵也是鍵值,資料庫管理,19,候選鍵與主鍵(1/2),候選鍵(candidate key):一個關聯綱要可能有一個以上的鍵值,這種情況下,每個鍵值都被稱為候選鍵在圖5.4中,CAR關聯有兩個候選鍵License_number 及 Engine_serial_number候選鍵的值會被用來識別關聯中的不同值組主鍵(primary key):候選鍵其中之一會被指定為此關聯的主鍵通常會選擇所含屬性的個數愈小越好,最好只有一個屬性主鍵通常會被加上底線應選擇較不會改變其值的屬性當主鍵。如學號、身份証號碼確保不會有空值(null)的屬性,資料庫管理,20,候選鍵與主鍵(2/2),資料庫管理,21,關聯式資料庫綱要,關聯式資料庫綱要(schema)一個關聯式資料庫綱要S,是一組關聯綱要的集合,S=R1,R2,Rm,加上一組完整性限制(integrity constraint)IC關聯式資料庫狀態(state)S的關聯式資料庫狀態DB,是一組關聯狀態的集合,DB=r1,r2,rm,其中每一個ri 都是Ri 的狀態,且ri 滿足IC中的完整性限制圖5.5是一個關聯式資料庫綱要範例共有六個關聯每個關聯綱要中畫底線的屬性代表主鍵,資料庫管理,22,關聯式資料庫綱要的範例,資料庫管理,23,關聯式資料庫狀態的範例,資料庫管理,24,實體完整性及參考完整性限制(1/2),實體完整性限制(entity integrity constraint)主鍵的值不可以等於空值(NULL)參考完整性限制(referential integrity constraint)一個關聯R1參考到另一個關聯R2時,R1裡的外來鍵的值必須滿足外來鍵的定義鍵值限制與實體完整性限制:指定在個別關聯上參考完整性限制:指定在兩個關聯之間,用來保持兩個關聯值組間的一致性,資料庫管理,25,實體完整性及參考完整性限制(2/2),外來鍵(foreign key):在關聯綱要R1裡的一組屬性集合FK滿足以下規則,則稱FK為R1參考R2的外來鍵在FK中的屬性與R2的主鍵屬性PK有相同的定義域在目前狀態r1(R1)的t1值組中,FK的值不是出現在r2(R2)的某個值組t2中的PK值,就是空值在外來鍵的定義中R1稱為參考關聯(referencing relation)R2稱為被參考關聯(referenced relation)參考完整性限制的圖形表示法從外來鍵畫出一條有箭頭的線到它所參考的關聯上,資料庫管理,26,參考完整性限制範例,資料庫管理,27,其他類型的限制,語意完整性限制(Semantic Integrity Constraint)根據應用本身的語意,無法由模型本身來表達例如,員工在所有計畫上工作的每週最大時數為56就算是這類限制這類限制是利用一種限制指定語言(constraint specification language)來表達所使用的機制被稱為觸發(trigger)或宣示(assertion)SQL-99有 CREATE ASSERTION命令可使用,資料庫管理,28,關聯的更新運算動作(1/2),在關聯上有三種基本的更新運算插入(INSERT)用來插入一或多筆新的值組刪除(DELETE)用來刪除值組更新(UPDATE)用來改變值組中的某些屬性值注意:在進行更新運算時,原本指定的完整性限制仍然不應該違反有時可能需要將數個更新運算組合在一起更新運算可能會傳播(propagate)而自動引發其他的更新運算。為了維持完整性限制可能必須如此,資料庫管理,29,關聯的更新運算動作(2/2),假如發生違反完整性限制的情況,可以採取以下這些措施:取消(cancel)導致這個違反情況的運算REJECT 選項執行(perform)這個運算但通知(inform)使用者有發生違反情況觸發(trigger)額外的更新動作,來修正這個違反情況CASCADE選項、SET NULL選項執行由使用者所定義的錯誤修正程序,資料庫管理,30,插入(insert)運算,插入運算可能違反的完整性限制定義域限制如果被指定的屬性值並未屬於所對應的定義域鍵值限制如果新值組的鍵值已經存在於關聯中的另一個值組裡實體完整性限制如果新值組的主鍵等於NULL參考完整性限制如果新值組的任何外來鍵參考了某個不在被參考關聯中的值組,資料庫管理,31,插入運算範例(1/2),將 插入到EMPLOYEE 中拒絕(Reject):因為此插入運算的主鍵Ssn 是NULL,違反實體完整性限制詢問使用者:提供一個有效的Ssn值將 插入到EMPLOYEE 中拒絕(Reject):因為此插入運算的主鍵Ssn 的值 999887777已存在於EMPLOYEE中,違反鍵值限制,資料庫管理,32,插入運算範例(2/2),將 插入到EMPLOYEE 中詢問使用者:因為此插入運算的外來鍵Dno 值 7,違反參考完整性限制(在DEPARTMENT中沒有Dnumber=7)將 插入到EMPLOYEE 中接受(Accept):因為此插入運算滿足所有的限制,資料庫管理,33,刪除(delete)運算(1/2),刪除運算只可能會違反參考完整性限制範例:刪除Essn=999887777與Pno=10的WORKS_ON值組接受(Accept):會剛好刪除一個值組刪除Ssn=999887777的EMPLOYEE值組不可接受(Not Accept):因為WORKS_ON中有值組參考到此值組,若執行刪除會違反參考完整性限制刪除Ssn=333445555的EMPLOYEE值組不可接受(Not Accept):因為EMPLOYEE,DEPARTMENT,WORKS_ON與DEPENDENT等關聯的值組都參考到該值組,資料庫管理,34,刪除(delete)運算(2/2),刪除運算導致違反限制時,有三種可能的處理方式拒絕(Reject)刪除連鎖(Cascade)刪除:將會參考到被刪除值組的值組也刪除修改(update)屬性值:修改那些會導致違反情況的參考屬性值,將它的值設定成NULL,或改成參考到另外一個有效的值組通常DBMS會讓使用者指定在限制被違反時,該使用上述的那一種處理方式,資料庫管理,35,更新(Update)運算(1/2),將Ssn=999887777的EMPLOYEE值組內的Salary屬性修改為28000可接受(Acceptable)將Ssn=999887777的EMPLOYEE值組內的Dno屬性修改為1可接受(Acceptable)將Ssn=999887777的EMPLOYEE值組內的Dno屬性修改為7不可接受(Unacceptable):違反參考完整性限制將Ssn=999887777的EMPLOYEE值組內的Ssn屬性修改為987654321不可接受(Acceptable):與另一個值組的主鍵值重複,違反主鍵限制其他值組也參考到Ssn的現存值,違反參考完整性限制,資料庫管理,36,更新(Update)運算(2/2),討論:更新一個既非主鍵,也不是外來鍵的屬性,通常不會有問題只需檢查並確認新資料值是否為正確的資料型態和定義域即可若修改主鍵,就必須特別小心因為主鍵是用來識別值組的,不可有重覆值且可能發生插入與刪除運算時的相同問題若修改外來鍵,要確定新的資料值在被參考關聯中存在(或是NULL),

    注意事项

    本文(关联式资料模型与关联式资料库的限制.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开