数据库 ER图

本文详细介绍了数据库ER图的概念,包括实体、属性、关系等核心组成部分,并解析了不同类型的联系及其实例,帮助读者理解如何使用ER图进行数据库设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库ER图

ER图分为实体属性关系三个核心部分。实体是长方形体现,而属性则是椭圆形,关系为菱形。

ER图的实体(entity)即数据模型中的数据对象,例如人、学生、音乐都可以作为一个数据对象,用长方体来表示,每个实体都有自己的实体成员(entity member)或者说实体对象(entity instance),例如学生实体里包括张三、李四等,实体成员(entity member)/实体实例(entity instance) 不需要出现在ER图中。

ER图的属性(attribute)即数据对象所具有的属性,例如学生具有姓名、学号、年级等属性,用椭圆形表示,属性分为唯一属性( unique attribute)和非唯一属性,唯一属性指的是唯一可用来标识该实体实例或者成员的属性,用下划线表示,一般来讲实体都至少有一个唯一属性。

ER图的关系(relationship)用来表现数据对象与数据对象之间的联系,例如学生的实体和成绩表的实体之间有一定的联系,每个学生都有自己的成绩表,这就是一种关系,关系用菱形来表示。

ER图中关联关系有种:
1对1(1:1) :1对1关系是指对于实体集A与实体集B,A中的每一个实体至多与B中一个实体有关系;反之,在实体集B中的每个实体至多与实体集A中一个实体有关系。

1对多(1:N) :1对多关系是指实体集A与实体集B中至少有N(N>0)个实体有关系;并且实体集B中每一个实体至多与实体集A中一个实体有关系。

多对多(M:N) :多对多关系是指实体集A中的每一个实体与实体集B中至少有M(M>0)个实体有关系,并且实体集B中的每一个实体与实体集A中的至少N(N>0)个实体有关系。

下面是个简单的例子:

这里写图片描述

ER实体补充讲解:

ER的实体还会细分为弱实体和复合实体:

弱实体:一个实体必须依赖于另一个实体存在,那么前者是弱实体,后者是强实体,弱实体必须依赖强实体存在,例如上图的学生实体和成绩单实体,成绩单依赖于学生实体而存在,因此学生是强实体,而成绩单是弱实体。

弱实体和强实体的联系必然只有1:N或者1:1,这是由于弱实体完全依赖于强实体,强实体不存在,那么弱实体就不存在,所以弱实体是完全参与联系的,因此弱实体与联系之间的联系也是用的双线菱形。

上面实例根据弱实体的情况更改如下图:

这里写图片描述

复合实体:复合实体也称联合实体或桥接实体,常常用于实现两个或多个实体间的M:N联系,它由每个关联实体的主玛组成,用长方体内加一个菱形来表示。

下图就是一个典型的复合实体,因为只是举例,相对粗糙,用户和商品两个实体是M:N的关系,中间又订单这个实体联系,因此订单这个实体是一个复合实体,同时如果用户 实体不存在,就没有订单实体的存在,因此对于用户实体来讲订单是弱实体,同理商品实体如果不存在,同样不存在订单实体,因此对商品实体而言订单是弱实体,具体如图:

这里写图片描述

ER属性补充讲解:

er图的属性还细分为复合属性、多值属性和派生属性、可选属性,同时还有用来表示联系的属性,称为联系属性。
复合属性(composite attribute):复合属性是指具有多个属性的组合,例如名字属性,它可以包含姓氏属性和名字属性,如下图:

这里写图片描述

复合属性也有唯一属性,例如学生的所在班级属性,由于多个年级都有班级,所以单单班级属性是不唯一的,但是和年级组成的复合属性后则可以匹配成唯一属性。

多值属性(multivalued attribute):一个实体的某个属性可以有多个不同的取值,例如一本书的分类属性,这本书有多个分类,例如科学、医学等,这个分类就是多值属性, 用双线椭圆表示。

这里写图片描述

派生属性(derivers attribute):是非永久性存于数据库的属性。派生属性的值可以从别的属性值或其他数据(如当前日期)派生出来,用虚线椭圆表示,如下图。
下面的小组人数就是典型的派生属性,随着学生实例的参加的兴趣小组变化,小组人数属性也会变化,一般来讲派生属性不存在于数据库中,而是通过相应的公式进行计算得到,如果要放到数据库中,那么隔一段时间就要进行更新,否则会出现数据错误。

这里写图片描述

可选属性(optional attribute):并不是所有的属性都必须有值,有些属性的可以没有值,这就是可选属性,在椭圆的文字后用(O)来表示,如下图的地址就是一个可选属性。

这里写图片描述

联系属性:联系属于用户表示多个实体之间联系所具有的属性,一般来讲M:N的两个实体的联系具有联系属性,在1:1和1:M的实体联系中联系属性并不必要。

这里写图片描述

### 数据库 ER 绘制工具与教程 数据库 ER (实体关系)是数据库设计中的重要工具,用于描述系统中的对象或概念及其相互作用。以下是关于 ER 绘制工具和学习资源的详细介绍。 #### 1. 常用的 ER 绘制工具 以下是一些常用的 ER 绘制工具,能够满足不同场景下的需求: - **SI Object Browser** SI Object Browser 是一种功能强大的 ER 设计工具,支持形绘制、自动布局、关系建模以及正向和反向工程等功能[^1]。此外,它还提供了版本控制功能,方便团队协作和历史记录管理。 - **DbSchema** DbSchema 是一款专业的数据库设计工具,允许用户在不连接数据库的情况下编辑架构,并能同步本地项目与数据库之间的差异[^3]。它支持多种数据库类型,适合复杂项目的开发需求。 - **AI 工具辅助生成 ER ** 现代 AI 工具可以快速从需求文档中提取信息并生成 ER 。例如,通过自然语言处理技术分析文本内容后生成 SQL 语句,再利用 SQL 绘网站将这些语句转换为 ERD 关系[^2]。 - **在线工具推荐** - **Lucidchart**:提供直观的界面,支持实时协作。 - **Draw.io (diagrams.net)**:免费开源,支持导出多种格式。 - **Mermaid Live Editor**:基于 Markdown 的轻量级工具,适合嵌入到文档中使用。 #### 2. 学习资源推荐 为了更好地掌握 ER 绘制技能,以下是几类优质的学习资源: - **官方文档与教程** 各种 ER 工具通常都配有详细的官方文档和视频教程。例如,DbSchema 和 Lucidchart 的官方网站上都有专门的教学材料。 - **书籍推荐** - 《Database Systems: The Complete Book》 这本书详细介绍了数据库系统的设计原理,包括 ER 的理论基础和实际应用。 - 《Database Design for Mere Mortals》 针对初学者,重点讲解了如何清晰地表达数据模型的概念。 - **在线课程** 平台如 Coursera、Udemy 提供了许多关于数据库设计的课程,涵盖 ER 的基础知识和高级技巧[^4]。 - **实践案例** 通过具体案例练习是提高技能的有效方式。例如,尝试根据给定的业务场景(如学生选课系统)绘制 ER ,并逐步完善其属性和关系。 #### 3. 示例代码:使用 Mermaid 绘制 ER 以下是使用 Mermaid 代码绘制一个简单的 ER 示例: ```mermaid erDiagram COURSE ||--o{ LAB : has LAB { string labID string time string location string weeks } COURSE { string courseID string name } ``` 此代码定义了一个课程(COURSE)与实验课(LAB)之间的关系,符合引用中提到的需求[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值