發(fā)布于:2021-01-27 12:00:19
0
568
0
什么是ER建模?
實體關(guān)系模型(ER建模)是數(shù)據(jù)庫設(shè)計的一種圖形化方法。它是一種高級數(shù)據(jù)模型,用于定義特定軟件系統(tǒng)的數(shù)據(jù)元素及其關(guān)系。ER模型用于表示真實世界的對象。
實體是現(xiàn)實世界中與周圍環(huán)境不同的事物或物體。例如,公司的每個員工都是一個獨立的實體。以下是實體的一些主要特征。
一個實體有一組屬性。
實體屬性可以有值。
讓我們再考慮一下我們的第一個例子。公司的雇員是一個實體。如果張三是微軟的程序員(一名員工),他可以擁有屬性(屬性),比如姓名、年齡、體重、身高等。很明顯,這些屬性確實包含與他相關(guān)的值。
每個屬性都可以有值。在大多數(shù)情況下,單個屬性只有一個值。但是屬性也有可能具有多個值。例如,彼得的年齡只有一個值。但他的“電話號碼”屬性可以有多個值。
實體之間可以有關(guān)系。讓我們考慮一下最簡單的例子。假設(shè)每個微軟程序員都有一臺電腦。很明顯,彼得的電腦也是一個實體。彼得在用那臺電腦,彼得也在用同一臺電腦。換句話說,彼得和他的電腦之間有一種相互的關(guān)系。
在實體關(guān)系建模中,我們對實體及其屬性和實體之間的關(guān)系進行建模。
增強實體關(guān)系模型
增強實體關(guān)系(EER)模型是一種高級數(shù)據(jù)模型,它擴展了原有的實體關(guān)系(ER)模型。EER模型支持更多的細節(jié)設(shè)計。EER建模是一種為高度復(fù)雜的數(shù)據(jù)庫建模的解決方案。
EER使用UML表示法。UML是統(tǒng)一建模語言(Unified Modeling Language)的縮寫,是設(shè)計面向?qū)ο笙到y(tǒng)時使用的通用建模語言。實體表示為類圖。關(guān)系表示為實體之間的關(guān)聯(lián)。下面所示的圖表說明了使用UML表示法的ER圖。
為什么使用ER模型?
現(xiàn)在您可能會想,既然我們可以簡單地創(chuàng)建數(shù)據(jù)庫及其所有對象而不需要ER建模,為什么還要使用ER建模?設(shè)計數(shù)據(jù)庫時面臨的一個挑戰(zhàn)是,設(shè)計者、開發(fā)人員和最終用戶往往以不同的方式查看數(shù)據(jù)及其使用。如果不檢查這種情況,我們最終會生成一個不滿足用戶需求的數(shù)據(jù)庫系統(tǒng)。
所有涉眾(技術(shù)用戶和非技術(shù)用戶)都能理解的通信工具對于生成滿足用戶需求的數(shù)據(jù)庫系統(tǒng)至關(guān)重要。ER模型就是這種工具的例子。
ER圖還提高了用戶的生產(chǎn)效率,因為它們可以很容易地轉(zhuǎn)換為關(guān)系表。
案例研究:“MyFlix”視頻庫的ER圖。
現(xiàn)在讓我們使用MyFlix視頻庫數(shù)據(jù)庫系統(tǒng)來幫助理解ER圖的概念。在本教程的其余部分中,我們將使用此數(shù)據(jù)庫進行所有的實際操作。
MyFlix是一個向會員出租電影的商業(yè)實體。MyFlix一直在手動存儲其記錄。管理層現(xiàn)在想轉(zhuǎn)向DBMS。
讓我們看看為這個數(shù)據(jù)庫開發(fā)EER圖的步驟:
識別實體并確定它們之間存在的關(guān)系。
每個實體、屬性和關(guān)系都應(yīng)具有非技術(shù)人員也容易理解的適當名稱。
關(guān)系不應(yīng)直接相互連接。關(guān)系應(yīng)該連接實體。
給定實體中的每個屬性都應(yīng)該有一個唯一的名稱。
“MyFlix”庫中的實體
ER圖中包含的實體包括:
會員-此實體將保存會員信息。
電影-此實體將保存有關(guān)電影的信息
類別-此實體將保存將電影分為不同類別的信息,如“戲劇”、“動作”和“史詩”等。
電影租賃-此實體將保存有關(guān)出租給會員的電影的信息。
付款-此實體將保存有關(guān)會員付款的信息。
定義實體之間的關(guān)系
會員和電影
關(guān)于這兩個實體之間的相互作用,以下是正確的。
一個會員可以在一段時間內(nèi)租用多部電影。
一部電影可以在一段時間內(nèi)由多個會員租用。
從上面的場景中,我們可以看到這種關(guān)系的本質(zhì)是多對多的。關(guān)系數(shù)據(jù)庫不支持多對多關(guān)系。我們需要引入一個連接實體。這就是動畫片實體所扮演的角色。它與members表有一對多關(guān)系,與movies表有一對多關(guān)系。
電影和分類實體
關(guān)于電影和電影類別,以下是正確的。
一部電影只能屬于一個類別,但一個類別可以有多部電影。
由此可以推斷,類別與電影表之間的關(guān)系本質(zhì)上是一對多的關(guān)系。
會員和支付實體
關(guān)于會員和付款,以下是正確的。
一個會員只能有一個賬戶,但可以進行多次付款。
由此我們可以推斷,會員與支付實體之間的關(guān)系本質(zhì)上是一對多的關(guān)系。
現(xiàn)在讓我們使用MySQL工作臺創(chuàng)建EER模型。
在MySQL工作臺中,單擊-“+”按鈕。
雙擊adddiagram按鈕打開ER圖的工作區(qū)。
出現(xiàn)以下窗口。
讓我們看看我們將要處理的兩個對象。
表對象允許我們創(chuàng)建實體并定義與特定實體關(guān)聯(lián)的屬性。
放置關(guān)系按鈕允許我們定義實體之間的關(guān)系。
會員“實體將具有以下屬性
會員編號
全名
性別
出生日期
實際地址
郵政地址
現(xiàn)在創(chuàng)建members表
1.從“工具”面板中拖動表對象
2.把它放到工作區(qū)。出現(xiàn)一個名為表1的實體
3.雙擊它。將顯示下面顯示的屬性窗口
接下來
將表1更改為會員
編輯默認的idtable1到會員編號
單擊下一行添加下一個字段
對會員實體中標識的所有屬性執(zhí)行相同操作。
您的屬性窗口現(xiàn)在應(yīng)該如下所示。
對所有標識的實體重復(fù)上述步驟。
現(xiàn)在,您的圖表工作區(qū)應(yīng)該如下所示。
讓我們在會員和電影租賃之間建立關(guān)系
也使用現(xiàn)有列選擇位置關(guān)系
單擊會員表中的會員編號
單擊moviententals表中的參考編號
對其他關(guān)系重復(fù)上述步驟。你的ER圖應(yīng)該是這樣的:
摘要
ER的完整形式是實體和關(guān)系圖。它們在數(shù)據(jù)庫設(shè)計過程中起著非常重要的作用。它們是技術(shù)人員和非技術(shù)人員的非技術(shù)交流工具。
實體代表現(xiàn)實世界的事物;它們可以是概念性的銷售訂單,也可以是實體性的,如客戶。
所有實體都必須具有唯一的名稱。
ER模型還允許數(shù)據(jù)庫設(shè)計者識別和定義實體之間存在的關(guān)系。
整個ER模型附在下面。您只需將其導(dǎo)入MySQL工作臺即可。