第四章 逻辑结构设计
1 E-R 图向关系模型的转换
将图3.4 总体概念结构E-R 图转化成关系模型。 系表(系号,系名,系主任)主键:系号
班级表(班号,班名,班主任,系号)主键:班号 外键:系号
学生表(学生号,姓名,性别,年龄,班级号)主键:学生号 外键:班号 课程表(课程号,课程名,学分,教师号)主键:可称号 外键:教师号 选课表(学号,课程号,成绩)主键:学号 可称号 外键:学号 课程号 教室表(教室号,教室名, 教室位置)主键:教室号
占用表(班级号,教室号,上课时间,占用学时)主键:班级号 教室号 教师表(教师号,姓名,职称,性别,年龄,工资)主键:教室号 教授表(教师号,班级号,课程号,教授时间)主键:教室号 班级号
2 数据模型的优化
数据库德逻辑结构设计的结果不是唯一的。为了提高数据库应用系统的性能, 还应该根据应用需要适当的修改,调整关系模式,这就是数据模型的优化。规范 化理论为数据库设计人员判断关系模式的优劣提供了理论标准,可用来预测模式 可能出现的问题,使数据库设计工作有了严格的理论基础。关系数据模型的优化 通常以规范化理论为指导,方法为:
(1)确定数据依赖。分别写出每个关系内部属性的以及不同关系模式属性间 的数据依赖。根据需求分析可知:
a) 系表的数据依赖 :{系号->系名,系号->系主任}
b) 班级表的数据依赖:{班号->班名,班号->班主任,班号->系号} c) 学生表的数据依赖:{学生号->姓名,学生号->性别,学生号->省份, 学 生号->年龄,学生号->班级号,学生号->专业}
d) 课程表的数据依赖:{课程号->课程名,课程号->学分,课程号->任 课教师号}
e) 选课表的数据依赖:{(学生号,课程号)->姓名} f) 教室表的数据依赖:{教室号->教室名,教室号->教室位置} g) 占用表的数据依赖:{(班级号,教室号)->上课时间,(班级号,教 室号)->占用学时}
h) 教师表的数据依赖:{教师号->姓名名,教师号->职称,教师号->性 别,教师号->年龄,教师号->工资}
i) 教授表的数据依赖:{(教师,班级号)->授课时间,(班级号,教室 号)->课程}
(2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。 (3)按照数据依赖的理论对关系模式逐一分析,考察是否存在部分函数依赖, 传递函数依赖,根据各个函数依赖的依赖集可知各个关系模式没有部分函数依赖 和传递函数依赖所以所有的关系模式都是属于3NF。不需要进一步,进行模式分
3 数据库的结构
给出数据库基本表总体结构图。 根据总体结构图设计各表的结构。
表4-1 系表的结构
字段名 系号 系名 系主任 数据类型 char char char 长度 10 10 10 约束 主键 不为空 外键 表4-2 班级表的结构
字段名 班级号 班级名称 系号 班主任 数据类型 char char char char 长度 10 10 10 10 约束 主键 不为空 外键 外键
表4-3 学生表的结构 字段名 学号 姓名 性别 省份 年龄 专业 班级号 数据类型 char char char char Smallint char char 长度 10 10 2 10 5 10 10 约束 主键 不为空 不为空 不为空 不为空 不为空 外键 表4-4 课程表的结构
字段名 课程名 课程名称 学分 教师号 数据类型 char char smallint char 长度 10 10 5 8 约束 主键 不为空 不为空 外键 表4-5 选课表的结构 字段名 学号 课程名 成绩 数据类型 char char char 长度 10 10 10 约束 外键 外键 不为空
表4-6 教室表的结构
字段名 教室号 教室名 教室位置 数据类型 char char char
长度 10 10 10 约束 主键 不为空 不为空
表4-7 占用表的结构
字段名 班级号 教室号 上课时间 占用学时 数据类型 char char datetime char 长度 10 10 10 约束 外键 外键
表4-8 教师表的结构 字段名 教师号 姓名 数据类型 char char char char smallint smallint 长度 10 10 10 10 约束 主键 不为空 不为空 不为空 不为空 不为空 性别 职称 年龄 工资
表4-9 教授表的结构
字段名 教师号 班级号 数据类型 char char char datetime
长度 10 10 10 约束 外键 外键 外键 不为空 课程号 教授时间
第五章物理设计阶段
1 数据存储方面
2 系统功能模块
(1)系表信息查询和更新模块
将实现对系部信息的查询和更新(修改、插入、删除)操作,方便于对系部基本信息的 管理
(2)班级表的查询和更新模块
将完成班级基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理
(3)学生表的查询和更新模块
将完成学生基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理
(4)课程表的查询和更新模块
将完成课程基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理
(5)选课表的查询和更新模块
将完成对所选课程基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理
(6)教室表的查询和更新模块
将完成教室基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理
(7)占用表的查询和更新模块
将完成占用基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理
(8)教师表的查询和更新模块
将完成教师基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理
(9)教授表的查询和更新模块
将完成教授基本信息的查询、更新(修改、插入、删除)操作,便于对学生信息的集中管理
3物理设计阶段结果 编号 1 存储过程 系表_insert 作用 在系表中插入一元组