1. 程式人生 > >E-R圖轉換成關係模式

E-R圖轉換成關係模式

我們目前所接觸的資料庫基本上是關係資料庫,關係資料庫中的關係模式是型,而關係是值。關係模式是對關係的描述。

什麼是關係?關係實質上是一張二維表,其中每一行是一個元組,每一列是一個屬性,每個元組是該關係涉及到屬性集合笛卡爾積的一個元素。(笛卡爾積是這樣的一個集合。集合中的元素是有序對,若A=0,1B=ab}則:A*B={<0,a><0,b>,<1,a>,<1,b>},關係是元組的集合,所以關係模式要描述元組的集合,其中包括那些屬性,屬性來自域,屬性與域之間的對映關係。

關係模式可以用五元組形式表示:RUDDomF),其中R:表示關係名,U:

表示屬性集合,Dom,表示屬性域(來自那個域),F:表示函式依賴。

但是一般情況下,我們通常把關係模式表示為:RU)或者RAB)(其中AB代表U中的屬性)

那麼E-R圖轉化成關係模式的步驟。

前提:是已經把需求中的實體,以及實體中聯絡確定。

第一:把每個實體都轉化成關係模式RAB)形式。(AB代表屬性)

第二:實體中的屬性即關係模式中的屬性要求是滿足第一正規化(原子性,不可再分)

第三:也是最重要的步驟,實體之間聯絡的轉換。

實體之間的聯絡分為:11 1nmn 三種形式。

11:1之間的轉換。

將兩個實體轉化成關係模式之後,然後把任意實體的主鍵和聯絡的屬性放到另一個實體的關係模式中。如圖:

    

結果如下:

   R1教師編號、姓名、性別)

   R2班級號、專業號、學院號、教師編號、任職日期)

或者:

   R1教師編號、姓名、性別、班級號、任職日期)

   R2班級號、專業號、學院號)

21n的轉換。

將兩個實體各自轉化成關係模式後,然後,把聯絡數量為1的實體的主鍵和聯絡的屬性放到聯絡數量為n的實體關係模式中。

比如:學生和宿舍之間的關係。

    

轉換之後的結果如下:

        R1學號、姓名、性別、宿舍號

        R2宿舍號、床位數)

3nn的轉換。

將兩個實體各自轉換成關係模式後,然後,把兩個實體中的主鍵和聯絡的屬性放到另一個關係模式中.(

注意多生成一個關係模式)

轉換後的結果如下:

 R1學號、姓名、性別)

 R2獎勵編號、獎勵名稱、獎勵金額)

 R3學號獎勵編號、獎勵日期)

注:E-R圖中聯絡沒有聯絡屬性,EE-R圖中含有聯絡屬性。

含有下劃線的屬性代表是主屬性,在表中當做主鍵。紅字型代表的外來鍵。