什么是ER模型湾盒?
ER或(實(shí)體關(guān)系模型 Entity Relational Model)是一個(gè)高級概念數(shù)據(jù)模型圖。 實(shí)體 - 關(guān)系模型基于現(xiàn)實(shí)世界實(shí)體的概念以及它們之間的關(guān)系诅妹。
ER建睦裕可幫助您系統(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圖包含許多專用符號贼急,其含義使該模型獨(dú)一無二茅茂。
- ER模型允許您繪制數(shù)據(jù)庫設(shè)計(jì)
- 易于使用的圖形工具,用于建模數(shù)據(jù)
- 廣泛用于數(shù)據(jù)庫設(shè)計(jì)
- 數(shù)據(jù)庫邏輯結(jié)構(gòu)的GUI表示
- 識別系統(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)驱闷,人物耻台,對象,事件或概念空另,它將數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中盆耽。 實(shí)體的特征必須具有屬性和唯一鍵。 每個(gè)實(shí)體都由一些代表該實(shí)體的“屬性”組成扼菠。
實(shí)體示例:
- 人:員工摄杂,學(xué)生,病人
- 地點(diǎn):商店循榆,建筑
- 對象:機(jī)器析恢,產(chǎn)品和汽車
- 事件:銷售,注冊秧饮,續(xù)訂
- 概念:帳戶映挂,課程
實(shí)體的表示法
實(shí)體集:
學(xué)生:實(shí)體集是一組類似的實(shí)體。 它可能包含屬性共享相似值的實(shí)體盗尸。 實(shí)體由其屬性表示柑船,也稱為屬性。 所有屬性都有各自的值泼各。 例如鞍时,學(xué)生實(shí)體可以具有姓名,年齡历恐,類別作為屬性寸癌。
實(shí)體示例:
大學(xué)可能有一些部門。 所有這些部門都聘請了各種講師并提供了幾個(gè)課程弱贼。學(xué)生在特定課程中注冊并注冊各種課程蒸苇。 來自特定部門的講師參加每門課程,每位講師都會(huì)教授不同的學(xué)生群體吮旅。
關(guān)系
關(guān)系只不過是兩個(gè)或多個(gè)實(shí)體之間的聯(lián)系溪烤。 例如,湯姆在化學(xué)系工作庇勃。
實(shí)體參與關(guān)系檬嘀。 我們經(jīng)常可以識別動(dòng)詞或動(dòng)詞短語的關(guān)系责嚷。
例如:
- 你正在參加這個(gè)講座
- 我正在講課
- 只是loke實(shí)體鸳兽,我們可以根據(jù)關(guān)系類型對關(guān)系進(jìn)行分類:
- 一名學(xué)生參加講座
- 講師正在講課。
弱實(shí)體
弱實(shí)體是一種沒有鍵屬性的實(shí)體罕拂。 可以通過考慮另一個(gè)實(shí)體的主鍵來唯一地識別它揍异。
在一個(gè)例子中全陨,“Trans No”是ATM中一組交易中的鑒別器。
讓我們通過將它與強(qiáng)實(shí)體進(jìn)行比較來了解更多有關(guān)弱實(shí)體的信息
強(qiáng)實(shí)體集 | 弱實(shí)體集 |
---|---|
強(qiáng)實(shí)體集始終具有主鍵衷掷。 | 它沒有足夠的屬性來構(gòu)建主鍵喧兄。 |
它由矩形符號表示浩姥。 | 它由雙矩形符號表示椭员。 |
它包含由下劃線符號表示的主鍵衍菱。 | 它包含一個(gè)部分鍵,由虛線下劃線符號表示懦胞。 |
強(qiáng)實(shí)體集的成員稱為主實(shí)體集替久。 | 弱實(shí)體集的成員稱為從實(shí)體集。 |
主鍵是其有助于識別其成員的屬性之一躏尉。 | 在弱實(shí)體集中侣肄,它是強(qiáng)實(shí)體集的主鍵和部分鍵的組合。 |
在ER圖中醇份,使用菱形符號顯示兩個(gè)強(qiáng)實(shí)體集之間的關(guān)系。 | 通過使用雙菱形符號顯示的一個(gè)強(qiáng)實(shí)體和弱實(shí)體組之間的關(guān)系吼具。 |
設(shè)置關(guān)系的強(qiáng)實(shí)體的連接線是單一的僚纷。 | 連接弱實(shí)體集以識別關(guān)系的線是雙倍的。 |
屬性
它是實(shí)體類型或關(guān)系類型的單值屬性拗盒。
例如怖竭,講座可能有屬性:時(shí)間,日期陡蝇,持續(xù)時(shí)間痊臭,地點(diǎ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ī)號碼鹃觉,電子郵件地址等。 |
基數(shù)
定義兩個(gè)實(shí)體或?qū)嶓w集之間關(guān)系的數(shù)字屬性睹逃。
不同類型的主要關(guān)系是:
一對一的關(guān)系
一對多的關(guān)系
愿與一個(gè)人的關(guān)系
多對多關(guān)系
- 一對一的關(guān)系:
來自實(shí)體集合X的一個(gè)實(shí)體可以與實(shí)體集合Y的至多一個(gè)實(shí)體相關(guān)聯(lián)盗扇,反之亦然。
示例:一名學(xué)生可以注冊多個(gè)課程沉填。 但是疗隶,所有這些課程只有一行回到那個(gè)學(xué)生。
- 一對多的關(guān)系
來自實(shí)體集合X的一個(gè)實(shí)體可以與實(shí)體集合Y的多個(gè)實(shí)體相關(guān)聯(lián)翼闹,但是來自實(shí)體集合Y的實(shí)體可以與至少一個(gè)實(shí)體相關(guān)聯(lián)斑鼻。
例如,一個(gè)班級由多個(gè)學(xué)生組成猎荠。
- 多對一
來自實(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è)班級输虱。
- 多對多:
來自X的一個(gè)實(shí)體可以與來自Y的多個(gè)實(shí)體相關(guān)聯(lián)些楣,反之亦然。
例如宪睹,作為一個(gè)群體的學(xué)生與多個(gè)教師相關(guān)聯(lián)愁茁,并且教師可以與多個(gè)學(xué)生相關(guān)聯(lián)。
ER-圖表符號
ER-圖表是描述數(shù)據(jù)如何相互關(guān)聯(lián)的數(shù)據(jù)的直觀表示亭病。
- 矩形:此符號表示實(shí)體類型
- 橢圓:符號 代表屬性
- 菱形:這個(gè)符號 代表關(guān)系類型
- 線:它將屬性與實(shí)體類型和實(shí)體類型與其他關(guān)系類型相關(guān)聯(lián)
- 主鍵:屬性帶下劃線
- 雙橢圓:表示多值屬性
參考資料
- python測試開發(fā)項(xiàng)目實(shí)戰(zhàn)-目錄
- python工具書籍下載-持續(xù)更新
- python 3.7極速入門教程 - 目錄
- 討論qq群630011153 144081101
- 原文地址
- 本文涉及的python測試開發(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í)體識別
我們有三個(gè)實(shí)體
- 學(xué)生
- 課程
- 教授
關(guān)系識別
我們有以下兩種關(guān)系
- 學(xué)生被分配了一門課程
- 教授開設(shè)了一門課程
基數(shù)識別
對于他們的問題陳述污茵,我們知道,
- 可以為學(xué)生分配多個(gè)課程
- 教授只能提供一門課程
識別屬性
您需要研究組織當(dāng)前維護(hù)的文件葬项,表單泞当,報(bào)告和數(shù)據(jù),以識別屬性民珍。 您還可以與各利益相關(guān)方進(jìn)行面談襟士,以確定實(shí)體盗飒。 最初,識別屬性而不將其映射到特定實(shí)體非常重要陋桂。
一旦有了屬性列表逆趣,就需要將它們映射到已識別的實(shí)體。 確保要將屬性與一個(gè)實(shí)體配對嗜历。 如果您認(rèn)為屬性應(yīng)屬于多個(gè)實(shí)體宣渗,請使用修飾符使其唯一。
映射完成后梨州,識別主鍵痕囱。
對于課程實(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模型是高級數(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)崇败,人物,對象肩祥,事件或概念后室,它將數(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)記。