在数据库系统原理的学习过程中,关于概念模型设计的先后顺序一直存在不同的看法。早先的教材,首先会简要介绍如何通过ER图来设计概念模型,随后再引入SQL语言的学习;之后,又会对ER图进行了更深入的介绍。而新版教材调整了学习的顺序,首先教授SQL语言的使用,然后再对利用ER图进行概念模型设计进行系统性讲解。这体现了教学团队在教学实践中的经验总结,他们认为先让学生熟悉数据库的用法,再教授数据库设计更为符合初学者的学习习惯。
对于个人而言,倾向于先掌握ER图的基本概念。对ER模型有了初步的认识,并了解如何在关系数据库中应用后,认为这对后续SQL语言的学习会有所帮助。在此过程中,无需过于深入,只需理解核心概念即可。
那么,对于初学者来说,该如何学习ER图呢?首先要理解ER图的核心概念——实体与联系。
对于初学者来说,不必过于追求模型和知识的完整性。只要能识别目标系统中的实体和联系,并能够以图形方式表达出来即可。个人认为,达到以下目标就足够了:
- 能够找出目标系统中的实体及属性,并识别出码;
- 理解联系也是数据的一部分,能够找出实体之间的联系,并准确表示出联系的类别;
- 能够绘制基础的ER图。
例如,如果要开发一个选课系统,应能够识别出学生、课程、教师等实体。在理解“码”的概念的基础上,识别出这些实体的码(如学生的学号)。码的存在是为了通过少量属性代表整个实体。
要能够识别出实体间的联系,如“任教”和“选课”。这两种联系在系统中有着不同的意义。“任教”表示哪个老师可以教哪门课,而“选课”则表示学生在某个学期选修了某门课程的事实。需要明确的是,联系也是需要存储的数据,代表了实体与实体之间的关联关系。
接下来,初学者在利用ER图建立概念模型时可能会遇到一些问题。根据多年的教学经验,这里列举几个初学者容易犯的错误。
- 概念混淆:初学者有时会将概念模型和物理模型中的一些概念混淆。比如误将某个外码视为实体属性。
- 业务操作与联系的混淆:有些初学者在面对业务操作如“创建”、“审核”时,不清楚它们是否应被视为联系来处理。
- 过度复杂化:有时候为了追求模型的完整性而引入过多的特性或实体。
为了更好地设计ER模型,需要注意以下几点:
- 合理设计虚拟实体:对于复杂的关系可以引入虚拟的实体来简化联系。
- 明确语义:在定义属性和联系时,要确保语义的清晰明确。
- 去繁就简:初学者在学习ER模型时不必一开始就学习所有高级特性。
在学习过程中,建议先掌握最基础的概念,然后通过实践来加深理解。只有在有了足够的设计心得后,再学习更高级的概念。