熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows系統管理 >> 正文

關系數據庫的模式設計

2013-11-11 21:30:01  來源: Windows系統管理 

  關系模式的設計問題
  
   關系數據庫的設計理論主要包括三個方面的內容數據依賴范式模式設計方法其中數據依賴起核心作用
  
  例:R(TNAMEADDRESSC#CNAME)
  
  
  
  限定事實一個教師只有一個地址
  
   一個教師可教若干門課
  
   每門課程只有一個教師任教
  
   所以R的鍵是(TNAMEC#)
  
   實際使用中存在的問題
  
   數據重復
  
   更新異常
  
   插入異常
  
   刪除異常
  
  采用對屬性間的函數依賴來解決使用分解方法將R分解成兩個模式
  
   R(TNAMEADDRESS)
  
   R (TNAMEC#CNAME)
  
   分解後四個問題解決基本解決即每個教師的地址只存放一次即使一個教師沒有教學任務他的地址也可存放在R
  
   但是這種分解並非最佳例如要檢索教某門課的教師的地址就需要進行聯接操作但是代價太大
  
  
  
  函數依賴
  
  
  
  函數依賴的定義
  
   設有關系模式R(AAAn)或簡記為R(U)XY是U的子集r是R的任一具體關系如果對r的任意兩個元組tt由t[X]=t[X]導致t[Y]=t[Y]則稱X函數決定Y或Y函數依賴於X記為X→Y X→Y為模式R的一個函數依賴
  
  這裡的t[X]表示元組t在屬性集X上的值t[X]表示元組t在屬性集X上的值函數依賴是對關系R的一切可能的當前值r定義的不是針對某個特定關系
  
   函數依賴不是指關系模式R的某個或某些關系滿足的約束條件而是指R的一切關系均要滿足的約束條件不能只看到關系模式R的一個特定關系就推斷那些函數依賴對於R成立
  
  在關系模式R中要判斷FD是否成立惟一的辦法是仔細考察屬性的含義即函數依賴實際是對現實世界的斷言
  
  
  
   例學習關系R(S#SNC#GCNTNTA)
  
   在R中的關系r中存在函數依賴
  
   S#→SN(每個學號只能有一個學生姓名)
  
   C# →CN(每個課程只能對應一門課程名)
  
   TN →TA(每個教師只能有一個年齡)
  
   (S#C#) →G(每個學生學習一門課只能有一個成績)
  
  
  
  函數依賴的邏輯蘊涵
  
   這裡主要研究對於給定的一組函數依賴如何判斷另外一些函數依賴是否存在
  
   定義設F是關系模式R的一個函數依賴集XY是R的屬性子集如果從F中的函數依賴能夠推出X→Y則稱F邏輯蘊涵X→Y記為F︱=X→Y
  
   被F邏輯蘊涵的函數依賴的全體構成的集合稱為F的閉包記為F+
  
  
  
  &#;鍵
  
   鍵是惟一標識實體的屬性集這裡把鍵和函數依賴結合起來做一個准確的定義
  
   設有關系模式R(AAn)F是R上的函數依賴集X是{AAn}的一個子集如果
  
   X→AA…An∈ F+
  
   不存在X的真子集Y使得Y→AA…An成立則稱X是R的一個候選鍵
  
  
  
  在定義中AA…An是A∪A∪…∪An的簡寫表示X能惟一決定一個元組表示X能滿足而又無多余的屬性集
  
  例設關系模式R(XYZ)已知FD是X→Y和Y→Z那麼可以推出X→XYZ也在F+中但X的真子集(此處是空集)不可能函數決定XYZ因此X是模式R的鍵
  
  
  
  例R(S#SNAMESEXAGE)
  
  在該模式中S#→ (S#SNAMESEXAGE)
  
   S#不存在任何真子集所以S#是鍵
  
   (S#SNAME)也可以決定R中的全部屬性但它不是鍵因為其中含有真子集S#可以決定R的所有屬性
  
  
  
  
  
  函數依賴的推理規則
  
  
  
   armSTRONG推理規則
  
  設有關系模式R(AAAn)和屬性集U= AA…AnXYZW都是U的子集F是R上只涉及到U中屬性的函數依賴集推理規則如下
  
  
  
  自反律
  
   如果YÍXÍU則X→Y在R上成立
  
  
  
  增廣律
  
   如果X→Y為F所蘊涵ZÍU則XZ→YZ在R上成立(XZ表示X∪Z)
  
  
  
  傳遞律
  
   如果X→Y和Y→Z在R上成立則X→Z在R上也成立
  
  
  
  合並律
  
   如果X→Y和X→Z成立那麼X→YZ成立
  
  
  
  偽傳遞律
  
   如果X→Y和WY→Z成立那麼WX→Z成立
  
  
  
  分解律
  
   如果X→Y和ZÍY成立那麼X→Z成立

From:http://tw.wingwit.com/Article/os/xtgl/201311/8598.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.