數(shù)據(jù)庫筆記(補(bǔ)充)——數(shù)據(jù)庫設(shè)計(jì)和E——R模型

實(shí)體—聯(lián)系模型

  • 實(shí)體集

    • 實(shí)體(entity):現(xiàn)實(shí)世界中一個(gè)可以區(qū)別于其他對象的一個(gè)“事物”或?qū)ο?/li>
    • 實(shí)體集(entity set):相同類型(即具有相同性質(zhì)/屬性)的實(shí)體的集合
    • 外延(extension):屬于實(shí)體集的實(shí)體的實(shí)際集合

      ps: 實(shí)體集和外延的關(guān)系類似于之前講的模式和實(shí)例的關(guān)系

    • 屬性(attribute):實(shí)體集中每個(gè)成員所具有的描述性性質(zhì)
    • 值(value):每個(gè)實(shí)體的每個(gè)屬性都有一個(gè)
  • 聯(lián)系集

    • 聯(lián)系(relationship):多個(gè)實(shí)體間的相互關(guān)聯(lián)

    • 聯(lián)系集(relationship set): 相同類型聯(lián)系的集合

    • 實(shí)體集之間的關(guān)聯(lián)稱之為參與:實(shí)體集E1, E2, E3 參與 聯(lián)系集R

    • 聯(lián)系也可以具有 描述性屬性

    • 實(shí)體在聯(lián)系中扮演的功能稱為角色

    • 參與聯(lián)系集的實(shí)體集的數(shù)目稱為聯(lián)系集的度, 二元聯(lián)系集的度為2

  • 屬性

    • 域(domain)/ 值集:每個(gè) 屬性 都有一個(gè) 可取值的集合 ,稱為該屬性的 值集

    • 簡單(simple) 和復(fù)合(composite)屬性

      • 簡單屬性不可以再分成更小的部分,而復(fù)合屬性可以(例如下面的name即為復(fù)合屬性)


        1.png
    • 單值(single-value)和多值(multivalued)屬性

      • 單值:一個(gè)實(shí)體在的單值屬性只對應(yīng)一個(gè)值
      • 多值:一個(gè)實(shí)體的多值屬性可以對應(yīng)多個(gè)值(如,phone_number)
    • 派生(derived)屬性

      • 派生屬性的值可以從別的相關(guān)屬性或?qū)嶓w派生出來

        • eg.:銀行賬戶的余額可以從賬戶的存取款明細(xì)中計(jì)算出來
      • 派生屬性在原則上是不用保存的,但是有時(shí)候保存派生屬性可以節(jié)約計(jì)算時(shí)間(空間換時(shí)間)

  • 約束

    • 映射基數(shù)約束

      • 一對一(one-to-one)
      • 一對多(one-to-many)
      • 多對一(many-to-one)
      • 多對多(many-to-many)
    • 參與約束

      • 全部參與:實(shí)體集E的每一個(gè)實(shí)體都參與到聯(lián)系集R的至少一個(gè)聯(lián)系中

      • 部分參與:實(shí)體集E中只有部分實(shí)體參與到聯(lián)系集R的聯(lián)系中

      • 超碼
      • 候選碼
      • 主碼
    • 從實(shí)體集中刪除冗余屬性

      • 要點(diǎn): 刪除其他實(shí)體的主鍵
      • 其他實(shí)體的主鍵相當(dāng)于外建的存在,一般屬于聯(lián)系集的屬性
      • 舉個(gè)栗子:
        • instructor(ID, name, dept_name, salary),其中ID為主鍵

        • department(dept_name, building, budget),其中dept_name為主鍵

        • 屬性dept_name在兩個(gè)表中都出現(xiàn)了,所以它屬于冗余屬性,他又是department的主鍵,故應(yīng)該將其從instructor表中移除(實(shí)際數(shù)據(jù)庫實(shí)現(xiàn)的時(shí)候instructor表中是有一個(gè)dept_name屬性的,他作為一個(gè)外建存在,實(shí)際上是兩者的聯(lián)系集是簡單的1對多的關(guān)系,便沒有單獨(dú)成表,而是采用外鍵相聯(lián)系)

實(shí)體——聯(lián)系圖

  • 基本結(jié)構(gòu)

    • 分成兩部分的矩形 代表 實(shí)體集

      2.png
    • 菱形 代表 聯(lián)系集

      3.png
    • 未分割的矩形 代表 聯(lián)系集的屬性

      4.png
    • 線段 將實(shí)體集連接到聯(lián)系集

      5.png
    • 虛線 將聯(lián)系集屬性連接到聯(lián)系集

      6.png
    • 雙線 顯示實(shí)體在聯(lián)系集中的參與度(用雙線與聯(lián)系集相連表示全部參與)

    • 雙菱形 代表連接到弱實(shí)體集的 標(biāo)志性實(shí)體集

    7.png
  • 映射基數(shù)

    • 一對一
    • 一對多
    • 多對一
    • 多對多
  • balabala,圖畫起來太麻煩了,其他的直接看書,下面聊一聊弱實(shí)體集

  • 弱實(shí)體集

    • 定義:沒有足夠的屬性以形成主碼的實(shí)體集稱之為 弱實(shí)體集(weak entity set)

    • 先舉個(gè)栗子:(由于簡書不支持下劃線的寫法,所以下面表中所有的主碼都用斜體表示)

      • course (course_id, titles, credits)

      • section (sec_id, semester, year)

      • 對于上面的兩個(gè)實(shí)體集,參與如下聯(lián)系集

        • sec_course(course_id, sec_id, semester, year)
      • 上面的section實(shí)體集實(shí)際上就是一個(gè)弱聯(lián)系集

        • 一個(gè)section實(shí)體如果不與一個(gè)course對相關(guān)聯(lián)是毫無意義的,并且只有sec_id, semester, year三個(gè)屬性也是決定不了一個(gè)section的
    • 弱實(shí)體集必須于另一個(gè)稱作標(biāo)識(shí)(identifying)或?qū)僦骱蛯?shí)體集(owner entity set)的實(shí)體集相關(guān)聯(lián)才有意義

    • 雖然弱實(shí)體集沒有主碼,但是本身仍要有在依賴于強(qiáng)實(shí)體集的基礎(chǔ)上的進(jìn)一步區(qū)分的方法,弱實(shí)體集的分辨符/部分碼(discriminator)便可以用來做進(jìn)一步的區(qū)分

      • 上述例子中的sec_id, semester, year便組成了section的分辨符
      • 在畫ER圖的時(shí)候,組成分辨符的屬性底下畫虛線(可參見教材 圖7-5)
    • 弱實(shí)體集的主碼由 標(biāo)識(shí)實(shí)體集的主碼 加上 該弱實(shí)體集的分辨符 構(gòu)成

    • ER圖中的表示

      • 組成分辨符的屬性底下畫虛線,而不是實(shí)線
      • 關(guān)聯(lián)弱實(shí)體集和標(biāo)識(shí)性強(qiáng)實(shí)體集的聯(lián)系集以雙菱形表示
  • 接著,只需要把教材圖7-15的圖看懂理解,ER圖的繪制基本上就沒有毛病了

ER圖轉(zhuǎn)換為關(guān)系模式

這個(gè)不難下面簡單列幾點(diǎn)注意事項(xiàng)

  • 復(fù)合屬性
    • 將每個(gè)子屬性單獨(dú)作為一個(gè)屬性來處理
  • 派生屬性
    • 不顯示表示出來
  • 多值屬性
    • 單獨(dú)成表
  • 弱實(shí)體集轉(zhuǎn)換
    • 對于從弱實(shí)體集轉(zhuǎn)換而來的模式,該模式的主碼由其所依賴的強(qiáng)實(shí)體集的主碼與弱實(shí)體集的分辨符組成
  • 聯(lián)系集
    • 多對多的情況一定單獨(dú)成表
    • 聯(lián)系集擁有描述性屬性的情況單獨(dú)成表
    • 其它情況下均可不單獨(dú)成表
      • 一對一情況下講任意實(shí)體集的主鍵作為另一個(gè)實(shí)體集的外建均可
      • 一對多和多對一的情況下,將“一”端的主鍵作為"多"端的外建
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容