数据库设计 ER图

三个基本概念

Entity

Entity Set表示一类事物,类似于面向对象中类的概念,而Entity Instance表示一个具体的事物,类似于对象的概念。
Entity中可以有属性(Attribute),也可以与其他Entity之间存在关系(Relationship)。在设计数据库时,一个Entity Set通常就是一个数据表,而Entity Instance就是表中的具体数据。

Strong & Weak

Entity可以分为Strong Entity(强实体)和Weak Entity(弱实体)。如果一个Entity可以独立存在,则称为Strong Entity,反之,如果一个Entity必须依赖于其他Entity,则称为Weak Entity。Weak Entity必须与若干个Strong Entity之间存在依赖关系。

ER图

在ER图中,Strong Entity用实线绘制的矩形表示,其中的主键属性用下划线标识。Weak Entity则用双层实线绘制的矩形表示,并且其中的主键用虚下划线标识。依赖关系则用双层实线绘制的菱形表示,并且由于每个Weak Entity Instance都需要依赖至少一个Strong Entity Instance,因此二者之间为强制参与关系。

Relationship

Relationship(关系)表示Entity之间的交互,Relationship同样可以分为Relationship Set和Relationship Instance。例如在teacher和student两个Entity之间存在teach关系,这是一个Relationship Set,而具体哪个老师教哪个学生则是一个Relationship Instance。由此可以看出,在设计数据库时,一个Relationship Set也可以用一个数据表来表示。但在大多数情况下没有这种必要。
当Relationship单独成表时,表中需要包含数数据有相互交互的两个Entity的主键,以及Relationship自身的属性。
在实际数据库的设计中,对于一对一关系,直接将任意Entity Set的主键以及关系自身的属性作为属性添加到另一个Entity Set中即可。对于一对多关系,需要将“一”的Entity主键以及关系属性作为属性添加到“多”的Entity中。对于多对多关系,则需要专门创建一个新表保存双方的主键的关系自身的属性。
Role表示Entity中参与Relationship的属性,对于二元和多元属性来说,role通常都是Entity各自的主键,因此通常不用标识。而对于一元关系来说,role通常为Entity自身的主键以及有主键生成的另一属性,通常需要标识。

分类

根据关系涉及的Entity种类,可以分为Unary Relationship(一元关系),Binary Relationship(二元关系)以及Ternary Relationship(多元关系),其中二元关系(即有两种Entity参与的关系)最为常见。
按照映射关系,关系可以分为一对一关系,一对多关系和多对多关系。
根据参与限制,可以分为Mandatory Participate Relationship(强制参与关系)以及Optional Participate Relationship(可选参与关系)。

ER图

在ER图中,关系使用实线绘制的菱形表示。除了Weak Entity与Strong Entity之间的依赖关系用双层菱形表示。关系的属性写在单层实线绘制的矩形中,并通过虚线与关系连接。
关系通过实线与相关的Entity连接,在连接线上可以标识关系对应的role。连接线的箭头表示映射关系,对于一对一关系,双方的连接线均有箭头,对于一对多关系,只有“一”的一方有箭头,对于多对多关系,双方均无箭头。
可选参与关系用单实线表示,强制参与关系用双实线表示。在实线上除了可以标识role,还可以添加一些简单的映射限制,用m…n表示。其中m和n分别表示对应侧Entity Instance参数数量的最小值和最大值。当n为*时表示无限制。

Attribute

属性(Attribute)隶属于实体或关系,某些特定的属性可以被称为Key(键)。

分类

按照结构类型,属性可以分为Simple Attribute(简单属性)和Composite Attribute(复杂属性)。简单属性就是普通的属性,例如生日、性别等。复杂属性由多个简单属性组成,例如地址属性可以由国家、省份、城市、街道等简单属性组成。
按照值类型,属性可以分为Single-valued Attribute(单值属性)、Multivalued Attribute(多值属性)、Derived Attributes(派生属性)以及Null Attribute(空属性)。其中单值属性就是基本的属性,只能有一个值。多值属性可以有多个值,例如一个人可以有多个电话号码,因此电话号码就是人的多值属性。如果一个属性可以通过其他属性推导得出,那就称为派生属性,例如可以通过一个人的生日推导出他的年龄,年龄就是一个派生属性。而如果一个属性可以为Null,则称为空属性。

ER图

在ER图中,Primary Key(主键)用下划线表示。
Entity中的属性标注在矩形内部的Entity Name之下,简单属性占据一行,用属性名表示。复杂属性占据多行,首行为复杂属性名,后续每一行用每个隶属于复杂属性的属性名表示,除首行外都要添加一个缩进。多值属性用花括号{}包裹的属性名表示。派生属性则在属性名之后添加一个小括号。

ER图示例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

EER Model

EER(Extend Entity Relationship)Model是ER Model的补充版本。主要添加了Entity的继承和聚合的概念。
与OOP中的Class类似,被继承的Entity称为Super Entity,继承之后的称为Sub Entity。
在ER图中,继承关系用带空心箭头的实现表示,箭头指向Super Entity。Sub Entity有着Super Entity的所有属性。
Aggregation(聚合)指的是将一个关系和与其相关的所有Entity视作一个整体,当做一个新的Entity并可以参与其他关系的概念。

Relation Schema

我们使用ER图的目的就是为了设计关系型数据库,而Relation Schema(关系模式)就是关系型数据库表的直接体现。当我们得到了一组Relation Schema,也就得到了一组关系型数据库的基本结构。
简单来说,Relation Schema的结构就是 table_name(item_name1, item_name2, item_name3…)
ER图与Relation Schema之间的映射关系:

  1. 对于Strong Entity,一个Entity Set就是一个表,每个Attribute为一列,主键同样用下划线表示。
  2. 对于Weak Entity,一个Entity Set同样是一个表,每个Attribute一列,同时还要将依赖的Entity的主键作为Weak Entity主键中的一列。
  3. 对于Composite Attribute,直接将其展开,每个子属性作为一列。
  4. 对于Multivalued Attribute,需要将其视作一个Entity和Multivalued Attribute之间的一对多关系。因此需要为Multivalued Attribute成立一个新的数据表,并将原Entity的主键作为一列添加到数据表中。
  5. 对于One-to-One Relationship,需要将任意一方Entity的主键作为一列添加到另一Entity表中。
  6. 对于One-to-Many Relationship,需要将One侧的主键作为一列添加到Many侧Entity的表中。
  7. 对于Many-to-Many Relationship, 需要以Relationship的名字创建一个新表,表中的字段为两侧Entity的主键,以及Relationship自身的属性。
  8. 对于Sub Entity,需要为其建立一个新表,表中包含所有Sub Entity引入的新属性,并将Super Entity中的主键作为一列。
  9. 对于Aggregation,由于其涉及的Entity已经超过两个,需要为其设立新表,其中包含所有涉及的Entity的主键。

总的来说,在转换过程中,每个Entity会被转换成一个数据表,一对一关系和一对多关系会被转换为数据表中的一列或几列,而多对多关系则会用额外的数据表表示。复杂属性会被展开,多值属性会被转换为一对多关系,并为属性创建一个新表。

数据库设计

在设计完Relation Schema之后,数据库的基本结构就已经定下来了,接下来只需要按照每个字段的实际数据为其设计数据类型以及NULL或NOTNULL属性,并根据后续使用需求为其添加合适的索引,即可完成数据库的设计。

学生管理系统数据库er设计全文共5页,当前为第1页。学生管理系统数据库er设计全文共5页,当前为第1页。学生管理系统数据库 学生管理系统数据库er设计全文共5页,当前为第1页。 学生管理系统数据库er设计全文共5页,当前为第1页。 ER设计 一、概述 学生信息管理系统是学校管理的重要工具,是学校不可或缺的一部分。随着在校人数的不断增加,教务系统的数量也不断的上涨。学校工作繁杂,资料众多,人工管理信息的难度也越来越大,显然是不能满足实际的需要,效率也是很低的。并且这种传统的方式存在着众多的弊端,如:保密性差.查询不便.效率低,很难维护和更新等,然而,本系统针对以上的缺点能够极大的提高学生信息管理的效率,也是科学化.正规化的管理,与世界接轨的重要条件。所以如何自动高效地管理信息是这些年来许多人所研究的。 随着这些年电脑计算机的速度质的提高,成本的下降,IT互联网大众趋势的发展。我们使用电脑的高效率才处理数据信息成为可能。学生学籍管理系统的出现,正是管理人员与信息数据,计算机的进入互动时代的体现。友好的人机交互模式,清晰简明的形界面,高效安全的操作使得我们对成千上万的的信息的管理得心入手。通过这个系统,可以做到信息的规范处理,科学统计和快速的查询,从而减少管理方面的工作量。毋庸置疑,切实有效的把计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有着显著意义。 二、需求与功能分析 学生信息管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强。该系统实现的大致功能;用户登陆。提供了学生学籍信息的查询,添加,修改,删除;学生成绩的录入,修改,删除,查询班级排名,修改密码等功能。管理员管理拥有最高的权限。允许添加教师信息和课程信息等。其提供了简单.方便的操作。 学生管理系统数据库er设计全文共5页,当前为第2页。学生管理系统数据库er设计全文共5页,当前为第2页。三、概要设计 学生管理系统数据库er设计全文共5页,当前为第2页。 学生管理系统数据库er设计全文共5页,当前为第2页。 3.1功能模块 3-1.功能模块 3.2数据流 数据流,如3-2所示 3-2.数据流 学生管理系统数据库er设计全文共5页,当前为第3页。学生管理系统数据库er设计全文共5页,当前为第3页。四、数据库设计 学生管理系统数据库er设计全文共5页,当前为第3页。 学生管理系统数据库er设计全文共5页,当前为第3页。 4.1实体及其属性 (1)学生实体及其属性,如下4-1所示 4-1.学生实体及属性 (2)教师实体及其属性 4-2.老师实体及属性 (3)管理员实体及其属性 4-3.管理员实体及属性 (4)课程设计及其属性 4-4.课程设计及属性 学生管理系统数据库er设计全文共5页,当前为第4页。学生管理系统数据库er设计全文共5页,当前为第4页。(5)班级实体及其属性 学生管理系统数据库er设计全文共5页,当前为第4页。 学生管理系统数据库er设计全文共5页,当前为第4页。 4-5.班级实体及属性 (6)成绩属性及其属性 4-6.成绩属性及属性 学生管理系统数据库er设计全文共5页,当前为第5页。学生管理系统数据库er设计全文共5页,当前为第5页。4.2全局E-R 学生管理系统数据库er设计全文共5页,当前为第5页。 学生管理系统数据库er设计全文共5页,当前为第5页。 4-7.全局E-R 学生管理系统数据库er设计
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值