吳建勝 譚丹丹
【摘要】數(shù)據(jù)庫(kù)設(shè)計(jì)中E-R圖轉(zhuǎn)換關(guān)系模式時(shí),實(shí)體之間的聯(lián)系轉(zhuǎn)換為關(guān)系的外碼,因此關(guān)系的外碼可以直接刻畫實(shí)體之間的聯(lián)系,外碼就是數(shù)據(jù)庫(kù)表的外鍵。文章提出了一種基于外鍵繪制E-R圖的方法,用于解決已知數(shù)據(jù)庫(kù)表結(jié)構(gòu)后繪制E-R圖的問題。
【關(guān)鍵詞】E-R圖;外鍵;主鍵
一、引言
數(shù)據(jù)庫(kù)設(shè)計(jì)是信息系統(tǒng)中一個(gè)重要環(huán)節(jié),一般來(lái)說,結(jié)構(gòu)化系統(tǒng)設(shè)計(jì)中數(shù)據(jù)庫(kù)設(shè)計(jì)分為需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)實(shí)施、數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)六個(gè)階段[1]。在概念結(jié)構(gòu)設(shè)計(jì)階段主要是將數(shù)據(jù)需求抽象成概念模型,并使用E-R圖描述,在邏輯結(jié)構(gòu)設(shè)計(jì)中,根據(jù)E-R圖向關(guān)系模型轉(zhuǎn)換規(guī)則可以得出系統(tǒng)關(guān)系模型,進(jìn)而得出系統(tǒng)的數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)[2]。
然而,多數(shù)計(jì)算機(jī)相關(guān)專業(yè)學(xué)生在畢業(yè)設(shè)計(jì)過程中不遵循數(shù)據(jù)庫(kù)設(shè)計(jì)步驟進(jìn)行設(shè)計(jì),而是直接設(shè)計(jì)數(shù)據(jù)表結(jié)構(gòu),在撰寫論文時(shí)才繪制E-R圖。導(dǎo)致這種現(xiàn)象的原因主要在于規(guī)范意識(shí)不強(qiáng),同時(shí)也由于學(xué)生對(duì)E-R圖知識(shí)的掌握程度不夠,進(jìn)而出現(xiàn)了學(xué)生繪制的E-R圖不正確的現(xiàn)象。這種不正確主要表現(xiàn)在E-R圖的聯(lián)系體現(xiàn)的不是系統(tǒng)中存儲(chǔ)的實(shí)體之間的內(nèi)在數(shù)據(jù)聯(lián)系,而是實(shí)體之間的管理關(guān)系。例如,在音樂視聽系統(tǒng)中管理員具有管理歌曲的功能,但是并不需要存儲(chǔ)這種管理關(guān)系,很多學(xué)生繪制的E-R圖中錯(cuò)誤地給出了管理員和歌曲之間存在管理聯(lián)系。
二、E-R圖繪制方法
主碼是關(guān)系的唯一性標(biāo)識(shí),外碼為另一關(guān)系的主碼[3],外碼刻畫了兩個(gè)關(guān)系之間的聯(lián)系,主碼和外碼就是數(shù)據(jù)庫(kù)表中的主鍵和外鍵。因此,在數(shù)據(jù)庫(kù)表結(jié)構(gòu)已知情況下,我們可以通過外鍵分析實(shí)體之間的聯(lián)系,進(jìn)而可以完成E-R圖的分析和繪制,分析、繪制E-R圖步驟如下。
第一,列出所有表結(jié)構(gòu)并標(biāo)注主鍵、外鍵。
第二,每個(gè)沒有外鍵的表對(duì)應(yīng)一個(gè)實(shí)體,表的每個(gè)字段對(duì)應(yīng)一個(gè)實(shí)體屬性。
第三,每個(gè)有外鍵的表,分析外鍵代表的聯(lián)系,確定聯(lián)系名稱、聯(lián)系類型及聯(lián)系屬性。
第四,根據(jù)上述分析繪制E-R圖。
三、E-R圖繪制示例
現(xiàn)有音樂視聽系統(tǒng),其數(shù)據(jù)庫(kù)包括用戶表、音樂表、歌手表、音樂類別表、收藏表、收聽表和評(píng)論表。根據(jù)上述步驟分析、繪制E-R圖過程如下。
第一,列出所有表結(jié)構(gòu)并標(biāo)注主鍵、外鍵。鑒于字段類型對(duì)繪制E-R圖無(wú)意義,我們僅保留了數(shù)據(jù)表名和字段名,其中直線下劃線表示主鍵,波形下劃線表示外鍵。
用戶表(用戶編號(hào),用戶名,密碼,電話,地址,電子郵箱,真實(shí)姓名)
音樂表(音樂編號(hào),音樂名,播放量,音樂圖片,類別編號(hào),歌手編號(hào),音樂簡(jiǎn)介,添加時(shí)間)
歌手表(歌手編號(hào),歌手名,出生日期,祖籍,歌手圖片)
音樂類別表(類別編號(hào),類別名)
收藏表(收藏編號(hào),音樂編號(hào),用戶編號(hào),收藏時(shí)間)
收聽表(收聽編號(hào),音樂編號(hào),用戶編號(hào),收聽時(shí)間)
評(píng)論表(評(píng)論編號(hào),評(píng)論內(nèi)容,評(píng)論時(shí)間,用戶編號(hào),音樂編號(hào))
第二,沒有外鍵的表為用戶表、歌手表和音樂類別表,分別對(duì)應(yīng)用戶實(shí)體、歌手實(shí)體和音樂類別實(shí)體,每個(gè)表的一個(gè)字段對(duì)應(yīng)一個(gè)實(shí)體屬性。
第三,每個(gè)有外鍵的表,分析外鍵代表的聯(lián)系,確定聯(lián)系名稱、聯(lián)系類型及聯(lián)系屬性。
音樂表中的外鍵為類別編號(hào)和歌手編號(hào)。其中類別編號(hào)為音樂類別表的主鍵,該外鍵表示音樂實(shí)體和音樂類別實(shí)體之間的“所屬”聯(lián)系,即一首音樂屬于哪個(gè)音樂類別,音樂表中音樂編號(hào)和類別編號(hào)字段的數(shù)據(jù)關(guān)系映射出“所屬”聯(lián)系的類型為1∶n聯(lián)系,音樂類別實(shí)體為1端,此聯(lián)系無(wú)屬性。同理,外鍵歌手編號(hào)代表歌手實(shí)體與音樂實(shí)體之間的“演唱”聯(lián)系,聯(lián)系類型為1∶n聯(lián)系,歌手實(shí)體為1端,此聯(lián)系無(wú)屬性。除外鍵類別編號(hào)和歌手編號(hào)之外,所有屬性均為音樂實(shí)體屬性。
收藏表中的外鍵音樂編號(hào)和用戶編號(hào)。音樂編號(hào)和用戶編號(hào)分別為音樂表和用戶表主鍵,這組外鍵表示用戶實(shí)體和音樂實(shí)體之間的“收藏”聯(lián)系,即用戶收藏了哪些音樂,收藏表中音樂編號(hào)和用戶編號(hào)字段的數(shù)據(jù)關(guān)系映射出“收藏”聯(lián)系的類型為m∶n聯(lián)系,收藏編號(hào)和收藏時(shí)間為“收藏”聯(lián)系的屬性。
同理,收聽表中的外鍵音樂編號(hào)和用戶編號(hào)表示用戶實(shí)體和音樂實(shí)體之間的“收聽”聯(lián)系,聯(lián)系類型為m∶n聯(lián)系,收聽編號(hào)和收聽時(shí)間為“收聽”聯(lián)系的屬性。評(píng)論表中的外鍵音樂編號(hào)和用戶編號(hào)表示用戶實(shí)體和音樂實(shí)體之間的“評(píng)論”聯(lián)系,聯(lián)系類型為m∶n聯(lián)系,評(píng)論編號(hào)、評(píng)論內(nèi)容和評(píng)論時(shí)間為“評(píng)論”聯(lián)系的屬性。
第四,根據(jù)上述分析繪制的系統(tǒng)E-R圖,如圖1所示。這里重點(diǎn)體現(xiàn)了實(shí)體之間的聯(lián)系問題,因此E-R圖中忽略了實(shí)體屬性。
四、結(jié)論
本文討論了外鍵能夠反映實(shí)體之間的聯(lián)系,在已知數(shù)據(jù)庫(kù)表結(jié)構(gòu)的情況下,提出了基于外鍵分析、繪制E-R圖方法,并以實(shí)例說明該方法的具體應(yīng)用。該方法對(duì)學(xué)生畢業(yè)設(shè)計(jì)撰寫論文繪畫E-R圖具有指導(dǎo)作用,也對(duì)教師檢查學(xué)生論文中E-R圖是否正確具有實(shí)踐意義。
【參考文獻(xiàn)】
[1]王珊,薩師煊.數(shù)據(jù)庫(kù)系統(tǒng)概論(第5版)[M].北京:高等教育出版社,2014.
[2]萬(wàn)常選,廖國(guó)瓊,吳京慧,等.數(shù)據(jù)庫(kù)系統(tǒng)原理及應(yīng)用[M].北京:高等教育出版社,2016.
[3]王世波,王洋,趙文夏.數(shù)據(jù)庫(kù)系統(tǒng)及應(yīng)用(第3版)[M].北京:清華大學(xué)出版社,2018.