1. 程式人生 > >轉:什麼是關係模型資料庫??

轉:什麼是關係模型資料庫??

層次、網狀資料庫是面向專業人員的,使用很不方便,程式設計師必須經過良好的培訓,多所使用的系統有深入的瞭解才能用好系統。

       關係資料庫就是要解決這一問題,使它成為面向使用者的系統。

       關係資料庫是應用數學方法來解決資料的,它具有結構簡單、理論基礎堅實、資料獨立性高以及提供非過程性語言等優點。

1.關係的數學定義

1. 域(Domain):值的集合,它們具有相同的資料型別,語義上通常指某一物件的取值範圍。

       例如:全體整數

                     0到100之間的整數

                     長度不超過10的字串集合

2. 笛卡爾積(CartesianProduct):設D1、D2、… 、Dn是n個域,則它們的笛卡爾積為:

       D1x D2 x … x Dn = {(d1, d2, …, dn)| di∈Di, i = 1,2,…,n}

其中每一個元素稱為一個n元組(n-tuple),簡稱元組;元組中的每個值di稱為一個分量(component)。

笛卡爾積可以寫成一個二維表

例如:

設D1 = {張三,李四}

D2 = {數學,語文}

D3 = {優,良}

則D1 x D2 x D3 可用二維表表示為:

張三

數學

張三

數學

張三

語文

張三

語文

李四

數學

李四

數學

李四

語文

李四

語文

 

3. 關係(Relation)

笛卡爾積D1 x D2 x … Dn的子集合,記作R(D1, D2, … , Dn)

R稱為關係名,n為關係的目或度

 

4. 說明

a)       關係是一個二維表

b)       每行對應一個元組

c)       每列可起一個名字,稱為屬性。屬性的取值範圍為一個域,元組中的一個屬性值是一個分量。

 

5. 關係的性質

a)       列是同質的,即每列中的資料必須來自同一個域

b)       每一列必須是不可再分的資料項(不允許表中套表,即滿足第一正規化)

c)       不能有相同的行

d)       行、列次序無關

 

2.關係模型

三部分:關係資料結構、關係操作集合、關係的完整性

2.1 資料結構

2.1.1單一的資料結構:關係(二維表)

不論是實體還是實體間的聯絡都用關係表示。

實體值 -> 關係的元組,在關係資料庫中通常稱為記錄

屬性值 -> 元組的分量,在關係資料庫中通常稱為欄位

關鍵字(碼):唯一標識一個元組的屬性組

 

關鍵字可以有多個,統稱為候選關鍵字,在使用時,通常選定一個作為主關鍵字。主關鍵字的諸屬性稱為主屬性,其它為非主屬性。

 

2.1.2關係模式:關係的描述

包括關係名、諸屬性名、屬性向域的映像、屬性間的依賴。

注:一個元祖為關係的一個值。

表示:R(U, D, dom , F)

 

關係資料庫模式(型):對關係資料庫的描述,包括域的定義及在域上定義的所有關係模式。

關係資料庫(值):所有實體及實體間聯絡的關係的集合。是某時刻所有關係模式對應的關係的集合。

2.1.3 關係的三種類型

基本關係:客觀存在的基本表

查詢表:由基本表按一定條件檢索得到的結果

檢視:從一個或多個基本關係上匯出的關係。它不對應實際的儲存資料,是一個虛關係,然而可永久存在。相當於關係模型的外模式。

 

注:由於二維表的儲存策略非常簡單,關於資料庫的物理儲存完全由DBMS自動完成。因此,在關係模型中不需要與內模式相應的概念。

 

2.2關係操作

2.2.1種類

選擇、投影、連線、除、並、交、差                                  -----查詢操作

增加、刪除、修改                                                                  -----維護操作

2.2.2特點

集合操作,一次操作可存取多個元組

非過程化語言:使用者只需告訴做什麼,而不需要告訴怎麼做

資料定義(DDL)、資料操縱(DML)、資料控制語言(DCL)整合在一起

2.3關係模型的三類完整性

2.3.1實體完整性

基本關係的所有主屬性不能取空值

原因:基本關係(主關鍵字是唯一性標識,故不能為空)

         <->   實體集(實體必可區分:識別符號)

2.3.2參照完整性

也叫引用完整性。若基本關係R含有與另一個基本關係S的主關鍵字相對應的屬性組F(F稱為R的外來鍵或外部碼),則R中的每個元組在F上的值或為空值,或等於S中某個元組的主關鍵字值

例:職工關係 EMP(ENO, ENAME, DNO)

       部門關係 DEPT(DNO,DNAME)

 

2.3.3使用者定義的完整性

       使用者定義的某一屬性值必須滿足的語義要求。一經定義,DBMS會自動檢查,從而不必在應用程式中作檢查。