E-R圖轉換成關係模式
我們目前所接觸的資料庫基本上是關係資料庫,關係資料庫中的關係模式是型,而關係是值。關係模式是對關係的描述。
什麼是關係?關係實質上是一張二維表,其中每一行是一個元組,每一列是一個屬性,每個元組是該關係涉及到屬性集合笛卡爾積的一個元素。(笛卡爾積是這樣的一個集合。集合中的元素是有序對,若A={0,1}B={a,b}則:A*B={<0,a>,<0,b>,<1,a>,<1,b>}),關係是元組的集合,所以關係模式要描述元組的集合,其中包括那些屬性,屬性來自域,屬性與域之間的對映關係。
關係模式可以用五元組形式表示:R(U,D,Dom,F),其中R:表示關係名,U:
但是一般情況下,我們通常把關係模式表示為:R(U)或者R(A,B)(其中A、B代表U中的屬性)
那麼E-R圖轉化成關係模式的步驟。
前提:是已經把需求中的實體,以及實體中聯絡確定。
第一:把每個實體都轉化成關係模式R(A、B)形式。(A、B代表屬性)
第二:實體中的屬性即關係模式中的屬性要求是滿足第一正規化(原子性,不可再分)
第三:也是最重要的步驟,實體之間聯絡的轉換。
實體之間的聯絡分為:1:1 ,1:n,m:n 三種形式。
(1)1:1之間的轉換。
將兩個實體轉化成關係模式之後,然後把任意實體的主鍵和聯絡的屬性放到另一個實體的關係模式中。如圖:
結果如下:
R1(教師編號、姓名、性別)
R2(班級號、專業號、學院號、教師編號、任職日期)
或者:
R1(教師編號、姓名、性別、班級號、任職日期)
R2(班級號、專業號、學院號)
(2)1:n的轉換。
將兩個實體各自轉化成關係模式後,然後,把聯絡數量為1的實體的主鍵和聯絡的屬性放到聯絡數量為n的實體關係模式中。
比如:學生和宿舍之間的關係。
轉換之後的結果如下:
R1(學號、姓名、性別、宿舍號)
R2(宿舍號、床位數)
(3)n:n的轉換。
將兩個實體各自轉換成關係模式後,然後,把兩個實體中的主鍵和聯絡的屬性放到另一個關係模式中.(
R1(學號、姓名、性別)
R2(獎勵編號、獎勵名稱、獎勵金額)
R3(學號、獎勵編號、獎勵日期)
注:E-R圖中聯絡沒有聯絡屬性,EE-R圖中含有聯絡屬性。
含有下劃線的屬性代表是主屬性,在表中當做主鍵。紅字型代表的外來鍵。