數據庫原理(五)- 關係數據結構及形式化定義

前言

前面我們講了關係模型就是一張扁平的二維表,它只包含一種數據結構-關係,這是一種非形式化的概念,現在我們從出集合論角度給出關係數據結構的形式化定義

在上篇好像是說過的,一組具有相同數據類型的值的集合,比如性別的集合都是char類型,且只能選擇男或女兩種值,那麼它的就是:

{男,女}   //當然如果有第三種,那就自已看着辦

笛卡爾積

笛卡爾積是域上的一種集合運算

  • 數學代數式表達:

假設一組域爲D1,D2,…,Dn,允許其中某些域是相同的,那麼D1xD2x…xD3的笛卡爾積爲:

D1xD2x...xDn = {(d1,d2,...,dn) | di∈Di,i=1,2,..,n}

每一個元素的(d1,d2,…,dn)叫做元組,元素中的每一個 di 叫做一個元組的分量,一個域允許的不同取值範圍個數稱爲這個域的基數

  • 實例證明

假設有D1,D2,D3三個域,且域的數據類型相同,並具有一定的聯繫

D1=導師集合={趙一,錢二}
D2=專業集合={計算機專業,信息專業}
D3=研究生集合={張三、李四}

觀察可知笛卡爾積的基數爲 2x2x2=8 ,那麼它的笛卡爾積爲:

D1xD2xD3 = {(趙一,計算機專業,張三),(趙一,計算機專業,李四),
            (趙一,信息專業,張三),(趙一,信息專業,李四),
            (錢二,計算機專業,張三),(錢二,計算機專業,張三),
            (錢二,信息專業,李四),(錢二,計算機專業,李四)}

據結果又可知笛卡爾積的元組數爲:2x2x2=8,然後我們將12個元組用二維表展開,如下:

導師 專業 研究生
趙一 計算機專業 張三
趙一 計算機專業 李四
趙一 信息專業 張三
趙一 信息專業 李四
錢二 計算機專業 張三
錢二 計算機專業 李四
錢二 信息專業 張三
錢二 信息專業 李四

關係

關係的結構

如上笛卡爾積可知D1xD2x…xDn的子集叫做在域D1xD2x…xDn上的關係,表示爲:

R(D1xD2x...xDn) //這裏的R表示關係的名字,n是關係的目或度,也可以看做一張表有多少列

關係中每個元素是關係中的元組,通常用 t 表示
當n=1時,稱該關係爲單元關係,或一元關係,
當n=2時,稱該關係爲二元關係,
當n=m時,稱該關係爲m元關係

  • 候選碼,一個關係中的某一屬性組的值能唯一地表示一個元組,而其子集不能,則稱該屬性組爲候選碼
如R(學號,姓名,性別)中,學號可以知道這個學生的姓名,也可以知道這個學生的性別,那麼學號是這個關係的候選碼
  • 主碼,若一個關係有多個候選碼,則選定其中一個爲主碼
很明顯學號是候選碼,所以就是這個關係的主碼
  • 主屬性,候選碼的諸屬性稱爲主屬性
  • 非主屬性,不包含在任何候選碼中的屬性稱爲非主屬性或非碼屬性
  • 全碼,若一個關係中所有屬性是這個關係模式的候選碼,稱爲全碼

關係的類型

關係有三種類型:基本關係(通常又稱基本表或基表)、查詢表和視圖表

  • 基本表是實際存在的表,它是實際存儲數據的邏輯表示
  • 查詢表時查詢結構對應的表
  • 視圖是由基本表或其他視圖表導出的表,是虛表,不對應實際存儲的數據

基本關係的6條性質

  • 列是同質的,即每一列中的分量是同一類型的數據,來自同一個域
  • 不同的列可出自同一個域,稱其中的每一列爲一個屬性,不同的屬性要給予不同的屬性名
  • 列的順序無所謂,即列的次序可以任意交換
  • 任意兩個元組的候選碼不能取相同的值
  • 行的順序無所謂,即行的次序可以任意交換
  • 分量必須取原子值,即每一個分量都必須是不可分的數據項

關係模式

關係的描述稱爲關係模式,它可以形式化地表示爲

R(U,D,DOM,F)
  • R爲關係名
  • U爲組成該關係的屬性名集合
  • D爲U中屬性所來自的域
  • DOM爲屬性向域的映像集合
  • F爲屬性間數據的依賴關係集合

示例

subject(   //研究課題關係
    U{name,major,tutor}  //關係的屬性集{學生姓名,專業,導師}
    D{char}             //關係的屬性所在域的集合{字符串類型}
    DOM{DOM(name)=DOM(major)=DOM(tutor)=char}  //屬性向域的映像集合{分別解釋關係中的屬性來自那個域}   
    F{name->major,(name ,major)->tutor} //屬性間數據的依賴關係集合{學生姓名可以確定屬於那個專業,學生姓名和專業可以確定導師是誰}
)

借鑑

王珊,薩師煊.數據庫系統概論(第五版)[M].北京:高等教育出版社,2014:38-43.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章