吴建胜 谭丹丹
【摘要】数据库设计中E-R图转换关系模式时,实体之间的联系转换为关系的外码,因此关系的外码可以直接刻画实体之间的联系,外码就是数据库表的外键。文章提出了一种基于外键绘制E-R图的方法,用于解决已知数据库表结构后绘制E-R图的问题。
【关键词】E-R图;外键;主键
一、引言
数据库设计是信息系统中一个重要环节,一般来说,结构化系统设计中数据库设计分为需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护六个阶段[1]。在概念结构设计阶段主要是将数据需求抽象成概念模型,并使用E-R图描述,在逻辑结构设计中,根据E-R图向关系模型转换规则可以得出系统关系模型,进而得出系统的数据库表结构设计[2]。
然而,多数计算机相关专业学生在毕业设计过程中不遵循数据库设计步骤进行设计,而是直接设计数据表结构,在撰写论文时才绘制E-R图。导致这种现象的原因主要在于规范意识不强,同时也由于学生对E-R图知识的掌握程度不够,进而出现了学生绘制的E-R图不正确的现象。这种不正确主要表现在E-R图的联系体现的不是系统中存储的实体之间的内在数据联系,而是实体之间的管理关系。例如,在音乐视听系统中管理员具有管理歌曲的功能,但是并不需要存储这种管理关系,很多学生绘制的E-R图中错误地给出了管理员和歌曲之间存在管理联系。
二、E-R图绘制方法
主码是关系的唯一性标识,外码为另一关系的主码[3],外码刻画了两个关系之间的联系,主码和外码就是数据库表中的主键和外键。因此,在数据库表结构已知情况下,我们可以通过外键分析实体之间的联系,进而可以完成E-R图的分析和绘制,分析、绘制E-R图步骤如下。
第一,列出所有表结构并标注主键、外键。
第二,每个没有外键的表对应一个实体,表的每个字段对应一个实体属性。
第三,每个有外键的表,分析外键代表的联系,确定联系名称、联系类型及联系属性。
第四,根据上述分析绘制E-R图。
三、E-R图绘制示例
现有音乐视听系统,其数据库包括用户表、音乐表、歌手表、音乐类别表、收藏表、收听表和评论表。根据上述步骤分析、绘制E-R图过程如下。
第一,列出所有表结构并标注主键、外键。鉴于字段类型对绘制E-R图无意义,我们仅保留了数据表名和字段名,其中直线下划线表示主键,波形下划线表示外键。
用户表(用户编号,用户名,密码,电话,地址,电子邮箱,真实姓名)
音乐表(音乐编号,音乐名,播放量,音乐图片,类别编号,歌手编号,音乐简介,添加时间)
歌手表(歌手编号,歌手名,出生日期,祖籍,歌手图片)
音乐类别表(类别编号,类别名)
收藏表(收藏编号,音乐编号,用户编号,收藏时间)
收听表(收听编号,音乐编号,用户编号,收听时间)
评论表(评论编号,评论内容,评论时间,用户编号,音乐编号)
第二,没有外键的表为用户表、歌手表和音乐类别表,分别对应用户实体、歌手实体和音乐类别实体,每个表的一个字段对应一个实体属性。
第三,每个有外键的表,分析外键代表的联系,确定联系名称、联系类型及联系属性。
音乐表中的外键为类别编号和歌手编号。其中类别编号为音乐类别表的主键,该外键表示音乐实体和音乐类别实体之间的“所属”联系,即一首音乐属于哪个音乐类别,音乐表中音乐编号和类别编号字段的数据关系映射出“所属”联系的类型为1∶n联系,音乐类别实体为1端,此联系无属性。同理,外键歌手编号代表歌手实体与音乐实体之间的“演唱”联系,联系类型为1∶n联系,歌手实体为1端,此联系无属性。除外键类别编号和歌手编号之外,所有属性均为音乐实体属性。
收藏表中的外键音乐编号和用户编号。音乐编号和用户编号分别为音乐表和用户表主键,这组外键表示用户实体和音乐实体之间的“收藏”联系,即用户收藏了哪些音乐,收藏表中音乐编号和用户编号字段的数据关系映射出“收藏”联系的类型为m∶n联系,收藏编号和收藏时间为“收藏”联系的属性。
同理,收听表中的外键音乐编号和用户编号表示用户实体和音乐实体之间的“收听”联系,联系类型为m∶n联系,收听编号和收听时间为“收听”联系的属性。评论表中的外键音乐编号和用户编号表示用户实体和音乐实体之间的“评论”联系,联系类型为m∶n联系,评论编号、评论内容和评论时间为“评论”联系的属性。
第四,根据上述分析绘制的系统E-R图,如图1所示。这里重点体现了實体之间的联系问题,因此E-R图中忽略了实体属性。
四、结论
本文讨论了外键能够反映实体之间的联系,在已知数据库表结构的情况下,提出了基于外键分析、绘制E-R图方法,并以实例说明该方法的具体应用。该方法对学生毕业设计撰写论文绘画E-R图具有指导作用,也对教师检查学生论文中E-R图是否正确具有实践意义。
【参考文献】
[1]王珊,萨师煊.数据库系统概论(第5版)[M].北京:高等教育出版社,2014.
[2]万常选,廖国琼,吴京慧,等.数据库系统原理及应用[M].北京:高等教育出版社,2016.
[3]王世波,王洋,赵文夏.数据库系统及应用(第3版)[M].北京:清华大学出版社,2018.