E-R模型向关系模型转换

E-R模型向关系模型转换

1.为E-R图中的每个实体建立一张表。
2.为每张表定义一个主键(如果需要,可以向表添加一个没有实际意义的字段作为该表的主键)
3.增加外键表示一对多关系。
4.建立新表表示多对多关系。
5.为字段选择合适的数据类型。
6.定义约束条件(如果需要)。
7.评价关系的质量,并进行必要的改进。

使用规范化减少数据冗余

冗余的数据需要额外的维护,并且容易导致“数据不一致”、“插入异常”以及“删除异常”等问题的发生。
在这里插入图片描述
场景一:插入异常。添加一学生信息(学号2012006,姓名张三丰,居住地北京,邮编10000)
场景二:修改复杂。将课程号为5的课程名修改为“高等数学”
场景三:删除异常。将学号为2012005的学生信息删除,但“居住地”与“邮编”的对应关系保留

规范化是通过最小化数据冗余来提升数据库设计质量的过程,规范化是基于函数依赖以及一系列范式定义的,最为常用的是第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。
函数依赖:对应于属性组合X的不同值, Y属性必有不同的取值,则称X决定Y,或称Y函数依赖于X。记为:X→Y。

完全函数依赖和部分函数依赖:如果X→Y成立,但对X的任意真子集X1,都有X1→Y不成立,称Y完全函数依赖于X,否则,称Y部分函数依赖于X。

传递函数依赖:设X,Y,Z是关系表R的不同属性集,若X→Y(并且Y→X不成立),Y→Z,称X传递决定Z,或称Z传递函数依赖于X。

第一范式
如果一张表内同类字段不重复出现,该表就满足第一范式的要求。

第二范式
一张表在满足第一范式的基础上,如果每个“非关键字”字段都完全函数依赖于主键,那么该表满足第二范式的要求。

第三范式
如果一张表满足第二范式的要求,并且不存在“非关键字”字段函数依赖于任何其他“非关键字”字段,即不满足传递函数依赖,那么该表满足第三范式的要求。

避免数据经常发生变化

统计学生的个人资料时,如果读者是一名数据库开发人员,应该让学生上报年龄信息,还是让学生上报出生日期?一个人年龄每隔一年就要执行“加1”操作,但是出生日期不会随着时间的推移而变化。

对于“选课系统”中如何确保每一门课程选报学生的人数,不超过人数上限?

方案一:在“课程表 ”中增加一个字段用于标记每一门课程剩余的学位,其初始值设置为课程的人数上限,每选进来一个学生就减1,当值为0时,表示已满。

course(course_no, course_no,course_name,
up_limit,description,status,teacher_no, available)

方案二:数据库表无需进行任何更改,而是通过“课程人数上限”减去“选课choose”表中统计得出的“已选学生人数”字段的值 。

方案一是增加了冗余字段“available”,但能方便几百名学生同时查询哪些课程已满;但是如果几百学生同时选课、调课、退课的话,“available”字段值会时刻发生变化,这不利于数据维护也容易出现数据不一致。反过来,方案二无需维护冗余数据,也不用担心数据不一致,但却不利于数据查询。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 将E-R模型转换关系模型转换原则包括以下几点: 1. 实体转换关系模型中的表格(即关系),每个实体对应一个表格,表格中的每一行代表一个实体,每一列代表实体的一个属性。 2. 实体属性转换为表格中的列,每个实体属性对应一个列。 3. 实体之间的关系转换为表格之间的关系,即外键。如果一个实体与另一个实体存在一对多的关系,就将多的一方的主键作为少的一方的外键。 4. 将实体之间的多对多关系转换为新的表格,该表格包含这两个实体的主键作为外键。 5. 实体的主键成为表格的主键。如果实体没有主键,就需要创建一个唯一的标识符作为主键。 6. 对于弱实体,它的主键由强实体和一个标识符组成,标识符可以是一个计数器、间戳或随机数。 7. 对于继承关系,将所有实体属性放在一个表格中,并将子实体的主键作为父实体的外键。 ### 回答2: 将E-R模型转换关系模型转换原则有以下几点: 1. 实体转换:E-R模型中的实体集对应关系模型中的表,每个实体的属性对应表的列。关系模型中的每一行代表E-R模型中的一个实体。 2. 属性转换:E-R模型中的属性对应关系模型中表的列,属性的值对应表中每个实体的属性值。 3. 主键转换:E-R模型中实体的主键对应关系模型中表的主键,用于唯一标识每条数据。通常关系模型的主键是关系模型中一个或多个列的组合。 4. 关系转换:E-R模型中的关系对应关系模型中的表,关系中的外键对应关系模型中表的外键。外键用于建立不同表之间的联系,保证数据的一致性和完整性。 5. 多对多关系转换:E-R模型中的多对多关系需要通过引入新的关系模型将其转换关系模型。这个新的关系模型中的主键由原关系模型中的两个实体模型的主键组成,用于建立两个实体模型之间的联系。 通过以上原则,可以将E-R模型转换关系模型,从而实现数据的逻辑建模和数据库的设计。这样的设计有助于实现数据的组织、存储和查询,提高数据库的性能和效率。同关系模型还可以使用关系代数和关系演算进行数据的操作和处理。 ### 回答3: 将E-R模型转换关系模型转换原则主要有以下几个步骤: 1. 实体转换:E-R模型中的实体集转换关系模型中的表,实体集的每一个属性对应为关系模型中的表的列。如果有实体集之间的联系,需要考虑如何存储这些联系。 2. 属性转换:E-R模型中的属性转换关系模型中的表的列。属性分为简单属性和复合属性,对应的关系模型中也是将其转换为相应的列。对于多值属性,需要考虑如何处理,可以转换为一个新的表来存储。 3. 关系转换:E-R模型中的关系集可以转换关系模型中的外键约束。每一个关系集对应为一个表,其中包含关系的主键和外键。外键引用的另一个表的主键。 4. 主键和外键转换关系模型中的主键和外键是表示实体之间的联系的重要标志。将E-R模型中的实体集和关系集分别转换关系模型的表,然后根据实体集和关系集之间的联系,确定主键和外键之间的对应关系。 5. 范围转换:E-R模型中的关系集的范围可以转换关系模型中的数据类型。例如,数值型、字符型、日期型等。 以上是将E-R模型转换关系模型的基本原则。转换原则的具体操作可以根据具体的需求和数据库管理系统的要求进行调整。转换过程需要考虑的因素很多,例如数据完整性、范式要求等,确保转换后的关系模型能够满足数据的存储和查询需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿珊和她的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值