目录
1、实体集合(entity set)&属性(attribute)
一、背景知识。
1、数据库设计流程
- 根据应用场景明确需求与结构
- 用概念设计语言(如ER图)建模
- 转化为关系模式(表的集合)
- 存入磁盘(设计文件组织方式与索引结构)
2、ER图、关系模型与数据库
| ER图 | 关系数据模型 | 数据库 |
| 实体、关系、属性等组成 | 表名+属性名+域的关系 | 所有表的模式的集合 |
| 属性必须为原子类型 | R(A1: int, A2: real) | R1(A1, A2) R2(A3, A4) |
| 图形化界面 | 表格,其实例为元组的集合 | n个表的实例的集合 |
3、ER图转为关系数据模型的情况总结

二、基本处理。
1、实体集合(entity set)&属性(attribute)
为每个矩形即实体集合创建一张表,表中属性即实体集合的属性。

2、关系(relationship)
为每个关系即菱形创建一张表,表中属性即关系的属性与连接的实体集合的主键。

3、案例

三、特殊处理。
1、表的结合
原因:同样的信息存储在一张表中的查找信息比分散于多张表中快。
核心:one to one、many to one关系中,relationship对应的表可以合并到one端实体集合的表中。
但many to many关系不能合并,否则会造成冗余。

2、弱实体集合(双边矩形)的转换
原因:弱实体集合自身的主键无法对其实例进行唯一性标识,需要其他实体集合的主键辅助。因此其主键由自身的主键与其支撑实体集合的主键共同组成。可知其支撑联系不需要单独转换一张表。
核心:不为支撑联系单独构建表。
(PS. 弱实体集合并非所有联系都是支撑联系,只有双边菱形代表的才是支撑联系。)

3、子类层次结构的转换
(1)OO转换法(面向对象的转换方式)
原因:任何一个子类层次结构能够表示的实体只属于一张表,因此需要为子类层次结构中所有实体的层次结构新建一张表。
核心:为子类层次结构中任何一棵包含根结点的子树创建一张表。不同子类之间再创建一张包含所有所有属性的表。

(2)ER转换法
原因:在ER模型中,一个实体可以属于多个实体类型,因此为了表示一个实体,可将实体所属的每一个实体类型集合集合起来。
核心:在子类层次结构中,为每个矩形/实体集合都生成一张表。

(3)空值转换法
核心:仅生成一张表,包含所有所有属性。

四、关系的三类完整性约束。
实体完整性:主键约束(都要有)
参照完整性:外键约束(不能无中生有)
用户定义的完整性:自定义的约束条件
五、总结&思维导图。

该博客围绕数据库设计展开,介绍了数据库设计流程,阐述了ER图、关系模型与数据库的关联及转换情况。还讲解了实体集合、属性、关系的基本处理,表结合、弱实体集合转换等特殊处理方法,以及关系的三类完整性约束。
1万+

被折叠的 条评论
为什么被折叠?



