什么是ER模型?
ER或(實(shí)體關(guān)系模型 Entity Relational Model)是一個(gè)高級(jí)概念數(shù)據(jù)模型圖。 實(shí)體 - 關(guān)系模型基于現(xiàn)實(shí)世界實(shí)體的概念以及它們之間的關(guān)系。
ER建??蓭椭到y(tǒng)地分析數(shù)據(jù)需求,以生成設(shè)計(jì)良好的數(shù)據(jù)庫。 因此,在實(shí)現(xiàn)數(shù)據(jù)庫之前完成ER建模被認(rèn)為是最佳實(shí)踐。

ER模型的歷史
ER圖是一種可視化工具,有助于表示ER模型。 1971年P(guān)eter Chen提出建立可用于關(guān)系數(shù)據(jù)庫和網(wǎng)絡(luò)的統(tǒng)一約定。 他的目標(biāo)是使用ER模型作為概念建模方法。
什么是ER圖?
實(shí)體關(guān)系圖顯示存儲(chǔ)在數(shù)據(jù)庫中的實(shí)體集的關(guān)系。 換句話說,我們可以說ER圖可以幫助您解釋數(shù)據(jù)庫的邏輯結(jié)構(gòu)。 初看起來,ER圖看起來與流程圖非常相似。 但是,ER圖包含許多專用符號(hào),其含義使該模型獨(dú)一無二。
- ER模型允許您繪制數(shù)據(jù)庫設(shè)計(jì)
- 易于使用的圖形工具,用于建模數(shù)據(jù)
- 廣泛用于數(shù)據(jù)庫設(shè)計(jì)
- 數(shù)據(jù)庫邏輯結(jié)構(gòu)的GUI表示
- 識(shí)別系統(tǒng)中存在的實(shí)體以及這些實(shí)體之間的關(guān)系
為什么要使用ER圖?
- 定義與實(shí)體關(guān)系建模相關(guān)的術(shù)語
- 預(yù)覽所有表的連接方式,每個(gè)表上的字段
- 幫助描述實(shí)體,屬性,關(guān)系
- ER圖可以轉(zhuǎn)換為關(guān)系表,允許您快速構(gòu)建數(shù)據(jù)庫
- 數(shù)據(jù)庫設(shè)計(jì)人員可以使用ER圖作為在特定軟件應(yīng)用程序中實(shí)現(xiàn)數(shù)據(jù)的藍(lán)圖
- 借助ERP圖,數(shù)據(jù)庫設(shè)計(jì)人員可以更好地理解數(shù)據(jù)庫中包含的信息
- 允許ERD與用戶的數(shù)據(jù)庫邏輯結(jié)構(gòu)進(jìn)行通信
ER圖的組成部分
該模型基于三個(gè)基本概念:
實(shí)體
屬性
關(guān)系
例

例如,在大學(xué)數(shù)據(jù)庫中,我們可能有學(xué)生,課程和講師的實(shí)體。 學(xué)生實(shí)體可以具有Rollno,Name和DeptID等屬性。 他們可能與課程和講師有關(guān)系。
什么是實(shí)體?
它可能是一個(gè)物理的東西,或者僅僅是關(guān)于企業(yè)或現(xiàn)實(shí)世界中發(fā)生的事件的事實(shí)。
實(shí)體可以是地點(diǎn),人物,對(duì)象,事件或概念,它將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中。 實(shí)體的特征必須具有屬性和唯一鍵。 每個(gè)實(shí)體都由一些代表該實(shí)體的“屬性”組成。
實(shí)體示例:
- 人:?jiǎn)T工,學(xué)生,病人
- 地點(diǎn):商店,建筑
- 對(duì)象:機(jī)器,產(chǎn)品和汽車
- 事件:銷售,注冊(cè),續(xù)訂
- 概念:帳戶,課程
實(shí)體的表示法
實(shí)體集:
學(xué)生:實(shí)體集是一組類似的實(shí)體。 它可能包含屬性共享相似值的實(shí)體。 實(shí)體由其屬性表示,也稱為屬性。 所有屬性都有各自的值。 例如,學(xué)生實(shí)體可以具有姓名,年齡,類別作為屬性。
實(shí)體示例:
大學(xué)可能有一些部門。 所有這些部門都聘請(qǐng)了各種講師并提供了幾個(gè)課程。學(xué)生在特定課程中注冊(cè)并注冊(cè)各種課程。 來自特定部門的講師參加每門課程,每位講師都會(huì)教授不同的學(xué)生群體。
關(guān)系
關(guān)系只不過是兩個(gè)或多個(gè)實(shí)體之間的聯(lián)系。 例如,湯姆在化學(xué)系工作。
實(shí)體參與關(guān)系。 我們經(jīng)常可以識(shí)別動(dòng)詞或動(dòng)詞短語的關(guān)系。
例如:
- 你正在參加這個(gè)講座
- 我正在講課
- 只是loke實(shí)體,我們可以根據(jù)關(guān)系類型對(duì)關(guān)系進(jìn)行分類:
- 一名學(xué)生參加講座
- 講師正在講課。
弱實(shí)體
弱實(shí)體是一種沒有鍵屬性的實(shí)體。 可以通過考慮另一個(gè)實(shí)體的主鍵來唯一地識(shí)別它。

在一個(gè)例子中,“Trans No”是ATM中一組交易中的鑒別器。
讓我們通過將它與強(qiáng)實(shí)體進(jìn)行比較來了解更多有關(guān)弱實(shí)體的信息
| 強(qiáng)實(shí)體集 | 弱實(shí)體集 |
|---|---|
| 強(qiáng)實(shí)體集始終具有主鍵。 | 它沒有足夠的屬性來構(gòu)建主鍵。 |
| 它由矩形符號(hào)表示。 | 它由雙矩形符號(hào)表示。 |
| 它包含由下劃線符號(hào)表示的主鍵。 | 它包含一個(gè)部分鍵,由虛線下劃線符號(hào)表示。 |
| 強(qiáng)實(shí)體集的成員稱為主實(shí)體集。 | 弱實(shí)體集的成員稱為從實(shí)體集。 |
| 主鍵是其有助于識(shí)別其成員的屬性之一。 | 在弱實(shí)體集中,它是強(qiáng)實(shí)體集的主鍵和部分鍵的組合。 |
| 在ER圖中,使用菱形符號(hào)顯示兩個(gè)強(qiáng)實(shí)體集之間的關(guān)系。 | 通過使用雙菱形符號(hào)顯示的一個(gè)強(qiáng)實(shí)體和弱實(shí)體組之間的關(guān)系。 |
| 設(shè)置關(guān)系的強(qiáng)實(shí)體的連接線是單一的。 | 連接弱實(shí)體集以識(shí)別關(guān)系的線是雙倍的。 |
屬性
它是實(shí)體類型或關(guān)系類型的單值屬性。

例如,講座可能有屬性:時(shí)間,日期,持續(xù)時(shí)間,地點(diǎn)等。
屬性由橢圓表示
| **屬性類型** | **描述** |
|---|---|
| **簡(jiǎn)單的屬性** | 簡(jiǎn)單屬性不能再進(jìn)一步劃分。 例如,學(xué)生的聯(lián)系電話。 它也被稱為原子價(jià)值。 |
| **復(fù)合屬性** | 可以分解復(fù)合屬性。 例如,學(xué)生的全名可以進(jìn)一步分為名字,名字和姓氏。 |
| **派生屬性** | 此類屬性不包括在物理數(shù)據(jù)庫中。 但是,它們的值來自數(shù)據(jù)庫中存在的其他屬性。 例如,不應(yīng)直接存儲(chǔ)年齡。 相反,它應(yīng)該來自該員工的出生日期。 |
| **多值屬性** | 多值屬性可以包含多個(gè)值。 例如,學(xué)生可以擁有多個(gè)手機(jī)號(hào)碼,電子郵件地址等。 |
基數(shù)
定義兩個(gè)實(shí)體或?qū)嶓w集之間關(guān)系的數(shù)字屬性。
不同類型的主要關(guān)系是:
一對(duì)一的關(guān)系
一對(duì)多的關(guān)系
愿與一個(gè)人的關(guān)系
多對(duì)多關(guān)系

- 一對(duì)一的關(guān)系:
來自實(shí)體集合X的一個(gè)實(shí)體可以與實(shí)體集合Y的至多一個(gè)實(shí)體相關(guān)聯(lián),反之亦然。
示例:一名學(xué)生可以注冊(cè)多個(gè)課程。 但是,所有這些課程只有一行回到那個(gè)學(xué)生。
- 一對(duì)多的關(guān)系
來自實(shí)體集合X的一個(gè)實(shí)體可以與實(shí)體集合Y的多個(gè)實(shí)體相關(guān)聯(lián),但是來自實(shí)體集合Y的實(shí)體可以與至少一個(gè)實(shí)體相關(guān)聯(lián)。
例如,一個(gè)班級(jí)由多個(gè)學(xué)生組成。
- 多對(duì)一
來自實(shí)體集合X的多于一個(gè)實(shí)體可以與實(shí)體集合Y的至多一個(gè)實(shí)體相關(guān)聯(lián)。然而,來自實(shí)體集合Y的實(shí)體可以與實(shí)體集合X中的多于一個(gè)實(shí)體相關(guān)聯(lián),也可以不與之相關(guān)聯(lián)。
例如,許多學(xué)生屬于同一個(gè)班級(jí)。
- 多對(duì)多:
來自X的一個(gè)實(shí)體可以與來自Y的多個(gè)實(shí)體相關(guān)聯(lián),反之亦然。
例如,作為一個(gè)群體的學(xué)生與多個(gè)教師相關(guān)聯(lián),并且教師可以與多個(gè)學(xué)生相關(guān)聯(lián)。
ER-圖表符號(hào)
ER-圖表是描述數(shù)據(jù)如何相互關(guān)聯(lián)的數(shù)據(jù)的直觀表示。
- 矩形:此符號(hào)表示實(shí)體類型
- 橢圓:符號(hào) 代表屬性
- 菱形:這個(gè)符號(hào) 代表關(guān)系類型
- 線:它將屬性與實(shí)體類型和實(shí)體類型與其他關(guān)系類型相關(guān)聯(lián)
- 主鍵:屬性帶下劃線
- 雙橢圓:表示多值屬性

參考資料
- python測(cè)試開發(fā)項(xiàng)目實(shí)戰(zhàn)-目錄
- python工具書籍下載-持續(xù)更新
- python 3.7極速入門教程 - 目錄
- 討論qq群630011153 144081101
- 原文地址
- 本文涉及的python測(cè)試開發(fā)庫 謝謝點(diǎn)贊!
- 本文相關(guān)海量書籍下載
- https://www.tutorialspoint.com/sqoop/sqoop_installation.htm
- https://sqoop.apache.org/docs/1.4.7/SqoopUserGuide.html
- https://www.softwaretestinghelp.com/top-4-etl-testing-tools/
創(chuàng)建ERD的步驟

讓我們用一個(gè)例子來研究它們:
在大學(xué)里,學(xué)生就讀于課程。 必須將學(xué)生分配到至少一門或多門課程。 每門課程由一位教授授課。 為了保持教學(xué)質(zhì)量,教授只能提供一門課程
實(shí)體識(shí)別
我們有三個(gè)實(shí)體
- 學(xué)生
- 課程
- 教授
關(guān)系識(shí)別
我們有以下兩種關(guān)系
- 學(xué)生被分配了一門課程
- 教授開設(shè)了一門課程
基數(shù)識(shí)別
對(duì)于他們的問題陳述,我們知道,
- 可以為學(xué)生分配多個(gè)課程
- 教授只能提供一門課程
識(shí)別屬性
您需要研究組織當(dāng)前維護(hù)的文件,表單,報(bào)告和數(shù)據(jù),以識(shí)別屬性。 您還可以與各利益相關(guān)方進(jìn)行面談,以確定實(shí)體。 最初,識(shí)別屬性而不將其映射到特定實(shí)體非常重要。
一旦有了屬性列表,就需要將它們映射到已識(shí)別的實(shí)體。 確保要將屬性與一個(gè)實(shí)體配對(duì)。 如果您認(rèn)為屬性應(yīng)屬于多個(gè)實(shí)體,請(qǐng)使用修飾符使其唯一。
映射完成后,識(shí)別主鍵。
對(duì)于課程實(shí)體,屬性可以是持續(xù)時(shí)間,學(xué)分,作業(yè)等。為了方便起見,我們只考慮了一個(gè)屬性。
創(chuàng)建ERD
ERD圖的更現(xiàn)代的表示

制定有效的ER圖的最佳實(shí)踐
- 消除任何冗余實(shí)體或關(guān)系
- 確保所有實(shí)體和關(guān)系都已正確標(biāo)記
- ER圖可能有各種有效的方法。 您需要確保ER圖支持您需要存儲(chǔ)的所有數(shù)據(jù)
- 確保每個(gè)實(shí)體僅在ER圖中出現(xiàn)一次
- 命名每個(gè)關(guān)系,實(shí)體和屬性都在圖表中表示
- 永遠(yuǎn)不要將關(guān)系彼此聯(lián)系起來
- 使用顏色突出顯示ER圖的重要部分
小結(jié)
- ER模型是高級(jí)數(shù)據(jù)模型圖
- ER圖是一種可視化工具,有助于表示ER模型
- 實(shí)體關(guān)系圖顯示存儲(chǔ)在數(shù)據(jù)庫中的實(shí)體集的關(guān)系
- ER圖可幫助您定義與實(shí)體關(guān)系建模相關(guān)的術(shù)語
- ER模型基于三個(gè)基本概念:實(shí)體,屬性和關(guān)系
- 實(shí)體可以是地點(diǎn),人物,對(duì)象,事件或概念,它將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中
- 關(guān)系只不過是兩個(gè)或多個(gè)實(shí)體之間的聯(lián)系
- 弱實(shí)體是一種沒有其關(guān)鍵屬性的實(shí)體,實(shí)體類型或關(guān)系類型的單值屬性,可以幫助您定義兩個(gè)實(shí)體或?qū)嶓w集之間關(guān)系的數(shù)字屬性
- ER-圖表是描述數(shù)據(jù)如何相互關(guān)聯(lián)的數(shù)據(jù)的直觀表示
- 在繪制ER圖時(shí),您需要確保所有實(shí)體和關(guān)系都已正確標(biāo)記。