数据库系统概论----设计ER图

Posted Afololer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库系统概论----设计ER图相关的知识,希望对你有一定的参考价值。

设计ER图

需要避免的两个主要的缺陷
  • 冗余

    体现为信息的重复出现,比如一个学生表中,含有班别,班主任,那么同一个班的学生都含有含有班别、班主任的信息,造成了信息的冗余,这是因为只要知道班别,就确定了班主任,反之亦然

    信息的冗余可能会造成的问题是,当班别发生更新,而班主任没随之更新发生的错误

  • 不完整

实体集

实体是一个特定事物,例如,每一片树叶都是一个实体。实体具有一组性质,而性质中某些特定的值特定地标识一个实体,例如大学的学号。

实体集是共享相同属性的集合,大学中的所有教师的集合可以定义为instructor集。

联系集

是多个实体间的相互关联的集合。

例如教师有指导学生的关系,两个实体之间就可以画一个名为指导的菱形作为联系集

单个实体集也可以与自身构成联系,例如课程实体集,有拓扑排序那种先修和后修的关系,可以构成先修联系

联系集还可以具有描述符属性,学生和课程的实体集,课程本身可以具有成绩属性,但是没有学生选课程时,成绩往往为空,所以我们希望在学生与课程的联系集中加入成绩属性,表示学生选课之后会产生成绩,这个成绩是有选课联系才产生的。

大多数联系集是二元的,少数联系集是三元的,三元的联系集中的实体有时也可转换成联系。

属性
简单属性

集合中的常见属性,不能再被划分

复杂属性

可以再被划分的属性,例如地址划分为街道,城市,区域等

多值属性

含有多个值的属性,例如一个人可能有多个手机号

派生属性

不存储的属性,需要时可以计算出来,如老师指导了多少名学生

弱实体集

考虑有一个课程段实体,属性有课程编号、学年、学期、课程段编号属性,与课程实体创建一个联系集

由于课程实体也有课程编号属性,所以课程段实体出现了冗余

消除冗余的一个方式时去除这种联系,然而此时课程段实体出现了课程实体的主码,这不是我们想要的

另一个方式是去除课程编号属性,此时课程段的信息就变成不完整的,虽然是每个实体都是可区分的,但是不能再表明具体课程开设时间的信息

当一个实体的存在依赖于另一个实体,就像本例中的课程段实体中有课程编号,这个实体就是弱实体集,弱实体集依赖的另一个实体集称为标识性实体集,标识性实体集的主码和分辨符属性唯一地标识弱实体,弱实体集和标识性实体集的联系称为标识性联系

以上是关于数据库系统概论----设计ER图的主要内容,如果未能解决你的问题,请参考以下文章

数据库系统概论----设计ER图

数据库系统概论数据库设计--数据字典E-R图

例6.1:学生选课系统设计(界面设计类图数据库ER图)

系统数据结构设计(ER模式图实体图)

推荐系统架构图——我的软件工程概论课设

数据库设计系列之四--ER图