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

關系模型、關系代數、關系演算

2013-11-11 21:34:26  來源: Windows系統管理 

  一關系模型
  &#;關系模型是年由EFCodd提出的與層次網狀模型相比它有以下特點
  
   數據結構簡單—二維表格
  
   扎實的理論基礎
  
   a關系運算理論
  
   b關系模式設計理論
  
  關系模型的基本概念
  
  &#;用二維表格結構表示實體外鍵表示實體間聯系的數據模型稱為關系模型
  
  &#;介紹二維表格中的術語體系結構完整性約束和關系模型的形式定義
  
  &#; 二維表格的基本術語
  
   二維表格
  
  關系模型中字段稱為屬性字段值稱為屬性值記錄類型稱為關系模型關系模式名是R記錄稱為元組元組的集合稱為關系或實例一般用大寫字母ABC……表示單個屬性用小寫字母表示屬性值關系中屬性的個數稱為元數元組的個數稱為基數例子的關系元數為基數為有時也稱關系為表格元組為行屬性為列
  
  
  
   鍵由一個或幾個屬性組成分為以下幾種
  
   a超鍵在關系中能惟一標識元組的屬性集稱為關系模式的超鍵
  
   b候選鍵不含多余屬性的超鍵稱為候選鍵即在候選鍵中若要再刪除屬性就不是鍵了
  
   c主鍵用戶選作元組標識的一個候選鍵稱為主鍵一般情況下鍵指主鍵
  
  關系的定義和性質
  
   關系是一個元數為K(K>=)的元組的集合
  
   關系是一種規范化的表格它有以下限制
  
   a關系中的每一個屬性值都是不可分解的
  
   b關系中不允許出現相同的元組
  
   c關系中不考慮元組之間的順序
  
   d 元組中屬性也是無序的
  
  關系模式關系子模式和存儲模式
  
   關系模型中概念模式是關系模式的集合外模式是關系子模式的集合內模式是存儲模式的集合
  
  關系模式
  
   關系模式實際就是記錄類型包括模式名屬性名值域名以及模式的主鍵它不涉及物理存儲方面的描述只是對數據特性的描述
  
  關系子模式
  
   子模式是用戶所用到的那部分數據的描述除了指出用戶的數據外還應指出模式與子模式之間的對應性
  
   存儲模式
  
   關系存儲時的基本組織方式是文件元組是文件中的記錄由於關系模式有鍵因此存儲一個關系可以用散列方法或索引方法實現
  
  關系模型的三類完整性規則
  
   實體完整性規則
  
   這條規則要求關系中元組在組成主鍵的屬性上不能有空值如有空值那麼主鍵值就起不了惟一標識元組的作用
  
   參照完整性規則
  
   如果屬性集K是關系模式R的主鍵K也是關系模式R的外鍵那麼在R的關系中K的取值只允許有兩種可能或為空值或等於R關系中某個主鍵值
  
  使用時應注意
  
   a外鍵和相對應的主鍵可以不同名只要定義在相同的值域上即可
  
   bR和R也可以是同一個關系模式表示了屬性之間的聯系
  
   c 外鍵值是否允許為空應視具體問題而定
  
  用戶定義的完整性規則
  
   這是針對具體數據的約束條件由應用環境而定
  
  &#;關系模型的形式定義
  
   三個組成部分數據結構數據操作和完整性規則
  
   關系模型的基本數據結構就是關系
  
   關系運算分為關系代數和關系演算
  
   關系模型的三類完整性規則
  
  二關系代數
  
  關系數據庫的數據操作分為查詢和更新兩類查詢語句用於各種檢索操作更新操作用於插入刪除和修改等操作
  
  
  
  關系查詢語言根據其理論基礎的不同分成兩大類
  
   關系代數語言查詢操作是以集合操作為基礎運算的DML語言
  
   關系演算語言查詢操作是以謂詞演算為基礎運算的DML語言
  
  
  
  關系代數的五個基本運算
  
  關系代數是以關系為運算對象的一組高級運算的集合關系定義為元數相同的元組的集合集合中的元素為元組關系代數中的操作可分為兩類
  
   傳統的集合操作笛卡爾積
  
   擴充的關系操作投影選擇聯接和自然聯接
  
  
  
   設有兩個關系R和S具有相同的關系模式R和S的並是由屬於R和S的元組構成的集合記為R∪S
  
   注意R和S的元數相同
  
  
  
   設有兩個關系R和S具有相同的關系模式R和S的差是由屬於R但不屬於S的元組構成的集合記為R-S
  
   注意R和S的元數相同
  
   笛卡爾積
  
   設關系R和S的元數分別為r和s定義R和S的笛卡爾積是一個(r+s)元的元組集合每個元組的前r個分量(屬性值)來自R的一個元組後s個分量來自S的一個元組記為R×S
  
   若R有M個元組S有n個元組則R×S 有m×n個元組
  
  選擇
  
   從關系中找出滿足給定條件的所有元組稱為選擇其中的條件是以邏輯表達式給出的 該邏輯表達式的值為真的元組被選取這是從行的角度進行的運算即水平方向抽取元組經過選擇運算得到的結果可以形成新的關系其關系模式不變但其中元組的數目小於或等於原來的關系中的元組的個數它是原關系的一個子集
  
   記為 δF(R)≡{t∣t屬於R∧F(t)=true}
  
   投影
  
   從關系中挑選若干屬性組成的新的關系稱為投影這是從列的角度進行運算經過投影運算可以得到一個新關系其關系所包含的屬性個數往往比原關系少或者屬性的排列順序不同如果新關系中包含重復元組則要刪除重復元組
  
   記為∏A(R)={t[A] ∣t屬於R} A為R中的屬性列
  
   例如(R)
   關系代數的四個組合操作
  
  
  
   關系R和S的交是由屬於R又屬於S的元組構成的集合記為R∩SR和S要求定義在相同的關系模式上
  
   R∩S≡ {t∣t屬於R∧t屬於S}R和S的元數相同
  
  聯接
  
   聯接有兩種θ聯接和F聯接(θ是算術比較符F是公式)
  
   ⑴ θ聯接
  
   θ聯接是從關系R和S的笛卡爾積中選取屬性值滿足某一θ操作的元組記為
  
   R︱×i θj︱S這裡i和j 分別是關系R和S中第 i個第j個屬性的序號
  
   R︱×i θj︱S≡ δi θ (r+j)( R×S )
  
   如果θ是等號=該聯接操作稱為等值聯接
  
  ⑵F聯接
  
   F聯接操作是從關系R和S的笛卡爾積中選取屬性值滿足某一公式F的元組記為
  
   R︱×F︱S這裡的F是形為F∧F∧…∧Fn的公式每一個f都是形為i θj的式子而i和j 分別是關系R和S中第 i個第j個屬性的序號
  
  自然聯接
  
   兩個關系R和S的自然聯接用R︱×︱S表示具體計算過程如下
  
   ①計算R×S
  
   ②設R和S的公共屬性是A……Ak挑選R×S中滿足R A=SA……RAk=SAk的那些元組
  
   ③去掉SA…… SAk的這些列
  
  如果兩個關系中沒有公共屬性那麼其自然聯接就轉化為笛卡爾積操作
  
  除法
  
   給定關系R(XY)和S(YZ)其中XYZ為屬性組R中的Y與S中的Y可以有不同的屬性名但必須出自相同的域集R與S的除運算得到一個新的關系P(X)P是R中滿足下列條件的元組在X屬性上的投影元組在X上分量值x的象集YX包含S在Y上投影的集合
  
  關系代數表達式及其應用實例
  
  在關系代數運算中把由五個基本操作經過有限次復合的式子稱為關系代數表達式這種表達式的結果仍然是一個關系可以使用關系代數表達式表示各種數據查詢操作
  
  例題設教學庫中有三個關系
  
   學生關系S(S#SNAMEAGESEX)
  
  學習關系SC(S#C#GRADE)
  
   課程關系C(C#CNAMETEACHER)
  
   下面用關系代數表達式表達各個查詢語句
  
   檢索學習課程號為C的學生學號與成績
  
   檢索學習課程號為C的學生學號與姓名
  
   檢索選修課程名為MATHS的學生學號與姓名
  
   檢索選修課程號為C或C的學生學號
  
   檢索至少選修課程號為C或C的學生學號
  
   檢索不學C課的學生姓名有年齡
  
   檢索學習全部課程的學生姓名
  
   ∏S#GRADE(δC#=C(SC))
  
   或∏(δ=C
From:http://tw.wingwit.com/Article/os/xtgl/201311/8722.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.