2. 逻辑结构设计
(1)ER图转换为关系模型
由ER图可见:图中有五个实体:专业,课程,班级,教师和学生;五个关系:专业和班级的1:n二元关系、专业和课程的1:n二元关系,学生和班级的1:n二元关系、 教师、课程和班级的三元关系、学生和课程的1:n二元关系。
由于每个实体必须构造表,所以可以先得到五个实体的信息表,实体的码就是关系的码,实体的属性即关系模型的属性:(有下划线的属性为主码,斜体的属性为外码)
学生信息表: S (sno, sname, ssex, sbirth)
课程信息表: C (cno, cname, cnature, cterm, ccredit) 专业信息表: M (mno, mname) 教师信息表: T (tno, tname)
班级信息表: L (lno)
对应的属性分别为:学号,姓名,性别,出生日期
课程编号,课程名,课程性质, 课程学期, 课程学分 专业编号,专业名
教师编号, 教师名
班级编号
对于一个1:n联系,可以转换为一个独立的关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。以上ER图中学生和班级的关系、学生和课程的关系、专业和班级的关系、专业和课程的关系为1:n关系,所以转换的关系模式为:
学生分班表: SL (sno, lno) 专业分班表: LM (lno, mno) 专业教学表: MC(mno, cno) 学生选课表: SC (sno, cno, score)
对于3个或3个以上实体间的一个多元关系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。以上ER图中专业、班级和课程的关系以及教师、课程与班级的关系均为多元关系,所以转换的关系模式为:
教师授课表: TL (tno,lno,cno)
(2)关系模式的优化:
学生信息表 S (sno,sname,ssex,sbirth)
该关系模式的码为sno,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖为: sno -> sname, sno -> ssex,sno -> sbirth,其间不存在传递依赖,故学生信息表可达到3NCF.
课程信息表 C (cno, cname, cnature, cterm, ccredit)
该关系模式的码为cno,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可
以达到2NCF。另外,该关系模式的函数依赖为: cno -> cname, cno -> cnature, cno -> cterm, cno -> ccredit,其间不存在传递依赖,故课程信息表可达到3NCF.
专业信息表 M (mno, mname)
该关系模式的码为mno,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖为: mno -> mname,其间不存在传递依赖,故课程信息表可达到3NCF.
教师信息表 M (tno, tname)
该关系模式的码为tno,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖为: tno -> tname,其间不存在传递依赖,故课程信息表可达到3NCF.
班级信息表 M (lno) 显然课程信息表可达到3NCF. 学生分班表: SL (sno, lno)
该关系模式的码为sno,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖为: sno -> lno,其间不存在传递依赖,故课程信息表可达到3NCF.
专业分班表: LM (lno, mno)
该关系模式的码为lno,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖为: lno -> mno,其间不存在传递依赖,故课程信息表可达到3NCF.
专业教学表: MC(mno, cno)
该关系模式的码为mno,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖为: mno -> cno,其间不存在传递依赖,故课程信息表可达到3NCF.
学生选课表: SC (sno, cno, score)
该关系模式的码为sno,cno且(so,cno) -> score,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖不存在传递依赖,故课程信息表可达到
3NCF.
教师授课表: TL (tno,lno,cno)
该关系模式的码为tno,lno且(tno,lno) -> cno,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。另外,该关系模式的函数依赖不存在传递依赖,故课程信息表可达到3NCF.
3. 物理结构设计
(1)基本表 学生信息表S 列名 sno sname ssex sbirth 课程信息表 C 列名 cno cname cnature cterm ccredit
专业信息表M
主码 是 否 否 否 否 候选码 否 否 否 否 否 外码 否 否 否 否 否 被参照表 允许空 无 无 五 五 五 否 否 否 否 否 数据类型 Char(10) Char(20) Char(10) Char(10) Int 约束条件 ccredit>0 主码 是 否 否 否 候选码 否 否 否 否 外码 否 否 否 否 被参照表 允许空 无 无 无 无 否 否 是 是 数据类型 Char(10) Char(20) Char(2) Char(20) 约束条件 只可取男或女 列名 mno mname 主码 是 否 候选码 否 否 外码 否 否 被参照表 允许空 无 无 否 否 数据类型 Char(10) Char(20) 约束条件 教师信息表T 列名 tno tname
班级信息表L 列名 lno 学生分班表 SL 列名 sno lno
专业分班表LM 列名 lno mno
专业教学表MC 列名 mno cno
学生选课表SC
主码 是 否 候选码 否 否 外码 是 是 被参照表 允许空 M C 否 否 数据类型 Char(10) Char(10) 约束条件 主码 是 否 候选码 否 否 外码 是 是 被参照表 允许空 L M 否 否 数据类型 Char(10) Char(10) 约束条件 主码 是 否 候选码 否 否 外码 是 是 被参照表 允许空 S L 否 否 数据类型 Char(10) Char(10) 约束条件 主码 是 候选码 否 外码 否 被参照表 允许空 无 否 数据类型 Char(10) 约束条件 主码 是 否 候选码 否 否 外码 否 否 被参照表 允许空 无 无 否 否 数据类型 Char(10) Char(20) 约束条件