日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Mysql_3 ER 和 EER 模型

發布時間:2024/1/18 数据库 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql_3 ER 和 EER 模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文思路主要來源于駱昊jackfrued 老師的網課
僅供本人學習參考,未做其他用途!

在此也建議讀者通過老師的課程學習。

介紹

為什么要有 ER 圖和 EER 圖的存在?

**真正做項目、設計數據庫時,**實際并沒有這么簡單,比如還有很多用戶看不到、但為了方便 DBA 使用而創建的字段。如 id,一般還會有兩條 Date 字段(一表示這條記錄被創建的時間,二表示這條記錄最后更新的時間),以及預留一個 VARCHAR / json 字段;還有一些其他注意事項(比如 auto-increment 約束其實開發中不常用,更多使用算法比如分布式 ID 生成算法(如 SnowFlake……)當然對課程來說這并不重要)是不可能一上來就寫 SQL 語句的,需要先設計表的結構和表之間的關系。

ER 模型

ER 圖(Entity Relationship, 實體關系)因此出現。下圖是一個 ER 圖的示例,其中矩形框代表:表(也就是實體),橢圓框代表:表中的字段(實體的屬性),菱形框代表:關系,在連接線上表明了關系的重數。

相較于大段的 SQL 建表語句,只要能看懂 ER 圖,表的結構、關系一目了然。

EER 模型

以下部分內容有參考自文章:為了徹底搞清楚數據庫 E-R 模型設計,我肝了這篇萬字長文 - 知乎 (zhihu.com)

關于兩者的具體區分我還有去問b站up主 駱昊jackfrued 老師,老師表示:不用太糾結這個問題,ER圖更抽象,可以理解為概念模型圖(PowerDesigner)。

相較 ER 模型多了泛化層次、匯集層次、弱實體等概念。

泛化層次

包括 generalization 和 specialization (泛化和特化)、父類(superclass)和子類(subclass)的概念。

子類父類就是類似 Java 的繼承,如動物是父類,貓、狗是其子類。子類父類是一對一的關系!

泛化又叫歸納,就是將幾個類的共同屬性提取出來作為父類;

特化又叫演繹,就是在父類的基礎上添加各自特殊的屬性作為子類。

其中,子類和超類又有兩個關系屬性:mandatory 和 optional、disjoint 和 overlapping。

mandatory / optional:父類中的所有屬性都必須包含在每一個子類中 / 不用全部繼承,選擇部分繼承即可(完全性限制)

disjoint / overlapping:繼承同一個父類的幾個子類之間是否可以有相交的屬性(相交性限制)

圖中 運輸工具是父類,飛機、火車、汽車是子類。圓圈中寫 D / O,表示 disjoint / overlapping。父類和圓圈之間是雙實線,表示是 mandatory 完全性繼承。

匯集層次

Aggregation, 匯集層次不再有父類子類的區別,而是由……組成的區別。

如圖,房間、門窗、電腦、投影儀等是教室的組成部分,不是繼承關系。

弱實體

一種實體只有另一種實體存在的時候才有意義。如父母和子女,少了一方另一方就沒有意義了。

Workbench 等工具支持畫 ER 圖,甚至畫好后可以自動生成 SQL 語句建表。 Workbench 中的圖是 EER 圖(擴展的ER 圖)

在 EER 圖下,點擊 DATABASE - FORWARD ENGINEER 正向工程,可以選擇要生成的表、字段,生成 SQL 語句建立表。

自動生成的 SQL 語句中,外鍵下方有兩句話ON DELETE NO ACTION ON UPDATE NO ACTION,意為:當外鍵參考的主鍵修改/刪除時,外鍵所在的表會受到什么樣的影響?——不采取任何行動。建議去掉這兩句話。如果去掉,就不能隨便修改/刪除外鍵在使用的主鍵。

同樣地,在 SQL 語句頁面,點擊DATABASE - REVERSE ENGINEER 反向工程,可以根據表的結構生成 EER 圖。

Power Designer 建模工具,也支持正 / 反向工程,可以生成 SQL 方言。完整版付費。

總結

以上是生活随笔為你收集整理的Mysql_3 ER 和 EER 模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。