在概念设计阶段设计出E-R图后,接下来要将E-R图转换成关系数据库中的二维表以实现数据库设计的第3阶段——实现设计。
实现设计就是将E-R图转换成关系表,其转换步骤如下。
1)实体的转化。每一个实体都必须转化成一张表,表名可以用实体集的名称,将实体集的属性名作为表的列名形成一张二维表。如前面E-R图的3个实体将分别转化成学生表(学号,姓名,性别,系别)、课程表(课程号,课程名)、教师表(教师编号,姓名,系别,教研室)。
2)联系的转化。联系的转化分两种情况:
●原则上每一个m︰n类型的联系需要转化成一张二维表,如前面E-R图的3个联系可以转换成3张表,分别为学习表(学号,课程号,成绩)、课程授课表(课程号,教师编号)、上课表(学号、教师编号),表名可以用联系名,也可以用其他更合适的名字。(www.xing528.com)
●一般1︰1和1︰n类型的联系不必转化成单独的表,而是将联系采用外键约束的方式内置在两个实体集表中,例如,班级实体(班级编号、班级名称、班级人数)和学生实体(学号、姓名、性别、系别)的联系类型是1︰n,则只需要在学生表中添加属性班级编号就可以直接描述出某个学生属于哪个班级的联系。
3)调整上面形成的表。为了使由E-R图转化过来的表比较精简,排除重复的数据联系表,需要对上面的表进行排查,有的表需要进行属性的调整,有的表的联系在其他表中已经实现而需要删除,有的信息在这些表中都没有表达出来,需要新的表来描述等。例如,上面的上课表(学号、教师编号)主要表达学生和教师之间的联系,但这种联系通过学生选修某门课程和教师讲授某门课程已经间接表达出来了,因此上课表(学号、教师编号)是多余的,需要删除,又比如上面的各张表没有表达出某个学生是哪个班级的,因此需要添加一张班级表。在进行这类表的调整时需要分析系统的所有数据和数据之间的内在联系,往往是比较复杂的。
通过以上的转换,形成了学生管理系统的6张表:学生表(学号,姓名,性别,系别,班级编号)、课程表(课程号,课程名)、教师表(教师编号,姓名,系别,教研室)、学习表(学号,课程号,成绩)、课程授课表(课程号,教师编号)、班级表(班级编号、班级名称、班级人数)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。