E-R 图

E-R 图简介

E-R :Entity Relationship Diagrams(实体关系模型)
E-R图:实体-联系图
E-R图可以认为是关系模型的雏形,每个实体是一张表,实体与实体之间的关系可以合并到其中一个实体中,也可以是另外一张表,关系表和相关的实体表是通过主键或外键来联系的。

E-R图3个要素:实体,属性,关系。

  1. 实体:用矩形表示,矩形框内写明实体名。

  2. 属性:用椭圆形表示,椭圆内写明属性名称,并用连线与实体连接起来。如果属性较多,为使图形更加简明,有时也将实体与其相应的属性另外单独用列表表示。

  3. 联系:用菱形表示,菱形框内写明联系名,并用连线分别与有关实体连接起来,同时在连线旁标上联系的类型。

连线:实体和属性之间、实体与联系之间、联系与属性之间用直线连接,并在直线上标注联系的类型。(注意:对于1:1的联系,要在两个实体连线方向各写1,1:n关系的,要在一的方向写1,多的方向写N;对于N:M关系的,则要在两个实体连线方向各写N,M)

E-R图设计步骤

  1. 确定所有的实体集合
  2. 选择实体集应包含的属性
  3. 确定实体集之间的联系
  4. 确定实体集的关键字,用下划线在属性上表明上表明关键字的属性组合
  5. 确定联系的类型,在用线将表示联系的菱形框联系到实体集时,在线旁注明1或N来表示联系的类型

一个实体转换为一个关系模式

实体的属性就是关系的属性,实体的码就是关系的码。
例如:将学生实体转换为关系模式:
学生(学号,姓名,性别,出生日期)
Student(SID,Sname,Sex,Birthday,Specialty

将联系转换为关系模式的方法

1:1联系

将联系与任意端实体所对应的关系模式合并,加入另一端实体的码和联系的属性。
例如:实体学校(学校编号,名称)与校长(编号,姓名)之间的任职联系是1:1的联系。

这里写图片描述

1:n联系

将联系与n端实体所对应的关系模式合并,加入1端实体的码和联系的属性。
例如:读者和读者类型实体的联系是1:n的。
这里写图片描述

Reader(RID,Rname, TypeID, Lendnum )
ReaderType(TypeID, Typename,LimitNum, LimitDays)

M:N联系

将M:N联系转换成一个关系模式。将该联系相连的各实体的码和联系本身的属性转换为关系的属性。
例如:教务管理中选课的E-R模型如图所示,学生和课程的联系是多对多的。
学生实体的码为SID,课程实体的码为CID,联系本身的属性为Grade。
注意:要将联系的属性(Grade)在图中画出,在下图中即“成绩”属性。
这里写图片描述

Student(SID,Sname,Sex,Birthday,Specialty)
Course(CID, Cname,Credit)
SC(SID, CID,Grade)

实例

1、图书借阅管理系统

1.1数据库要求提供下述服务:

(1)可随时查询书库中现有书籍的品种、数量与存放位置。所有各类书籍均可由书号惟一标识。

(2)可随时查询书籍借还情况,包括借书人单位、姓名、借书证号、借书日期和还书日期。

约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有惟一性。

(3)当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息向相应出版社增购有关书籍。约定,一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有惟一性。

1.2数据建模:

(1)满足上述需求的E-R图如图:

这里写图片描述

(2)转换为等价的关系模式结构如下:

借书人(借书证号,姓名,单位)
图书(书号,书名,数量,位置,出版社名)
出版社(出版社名,电报编号,电话,邮编,地址)
借阅(借书证号,书号,借书日期,还书日期)

2、学生选课管理系统

2.1数据库要求提供下述服务:

(1)数据库需要有以下信息:

学生:学号、单位名称、姓名、性别、年龄、选修课程名
课程:编号、课程名、开课单位、任课教师号
教师:教师号、姓名、性别、职称、讲授课程编号
单位:单位名称、电话、教师号、教师姓名

(2)上述实体中存在如下联系:

1)一个学生可选修多门课程,一门课程可被多个学生选修。
2)一个教师可讲授多门课程,一门课程可由多个教师讲授。
3)一个单位可有多个教师,一个教师只能属于一个单位。

2.2数据建模

(1)学生选课局部E-R图如图:

这里写图片描述

(2)教师任课局部E-R图如图:

这里写图片描述

(3)合并的全局E-R图如图:

这里写图片描述

(4)该全局E-R图转换为等价的关系模式表示的数据库逻辑结构如下:

单位(单位名称,电话)
教师(教师号,姓名,性别,职称,单位名称)
课程(课程编号,课程名,单位名称)
学生(学号,姓名,性别,年龄,单位名称)
讲授(教师号,课程编号)
选修(学号,课程编号)

3.公司员工销售产品

这里写图片描述

E-R图绘制工具

1.Visio

适用对象: IT 和商务专业人员
适用事务:就复杂信息、系统和流程进行可视化处理、分析和交流。使用具有专业外观的 Office Visio 图表,促进对系统和流程的了解,深入了解复杂信息并利用这些知识做出更好的业务决策。

2.PowerDesigner

适用类型:是Sybase公司的CASE工具集
适用事务:使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设备模型进行控制。

3.Erwin

适用类型:数据建模工具,是关系数据库应用开发的优秀CASE工具。
适用事务:支持各主流数据库系统,其设计图支持MS office的直接拷贝。ERwin也能与CA的Model Mart集成,满足企业建模的需求。

4.SmatDraw

适用类型:商业绘图软件
适用事务:是世界上最流行的。轻松的绘制具有专业水准的商业图。

### E-R中外键的表示方法 外键(Foreign Key)在实体关系(E-R )中的作用是用来建立和加强多个表数据之间的链接。它通常用于描述两个实体之间的一种关联关系,这种关联可以是一对一、一对多或多对多的关系。 在外键的设计过程中,可以通过以下方式来表示其用途: #### 1. **外键的概念** 外键是一个字段或一组字段,它的值必须匹配另一个表中主键列的一个值[^1]。通过这种方式,可以在不同表之间创建参照完整性约束,从而确保数据一致性。 #### 2. **E-R中外键的表现形式** 在E-R中,外键并不直接显示为单独的属性,而是通过**联系线**以及标注的方式体现出来。具体来说: - 实体间的联系会用一条连线表示,并在线条旁边标明该联系的性质(如一对一、一对多或多对多)。如果某个实体的某些属性被定义为外键,则这些属性会在对应的表格中标记为“FK”,并附带说明指向哪个实体的主键。 例如,在学生与课程的关系中,“选课记录”表可能包含学生的学号作为外键,这表明每条选课记录都对应于某位特定的学生。 ```plaintext 【学生】 ---(N:1)---> 【选课记录】 其中, 学生 { 学号(PK), 姓名, 年龄 } 选课记录 { 学号(FK), 课程编号(FK), 成绩 } 这里 PK 表示主键;FK 表示外键。 ``` #### 3. **如何绘制带有外键的E-R** 当构建涉及外键的E-R时,应遵循如下原则: - 明确哪些实体间存在依赖关系; - 将从属方的主键复制到主导方成为后者的一部分——即形成新的外键字段; -形化工具里利用箭头或其他特殊标记指出哪部分代表外部引用的数据源。 以下是简单的例子展示如何画出含外键的ERD: ```mermaid erDiagram STUDENT ||--o{ ENROLLMENT : enrolls_in COURSE }|--o{ ENROLLMENT : has_enrollment STUDENT { int student_id PK string name int age } COURSE { int course_id PK string title } ENROLLMENT { int enrollment_id PK int student_id FK int course_id FK float grade } ``` 此Mermaid表展示了三个主要组件及其相互关系:“STUDENT”、“COURSE” 和 “ENROLLMENT”。注意看最后那个 Enrollment 记录既包含了 Student 的 ID 又有 Course 的 ID ,它们都被设定了成 Foreign Keys (FKs),意味着每一个报名都需要确切地归属给一名学员同某一门科目相联结起来。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值