学生宿舍管理系统的结构设计:
1.E-R图向关系模型的转换
学生表:学号、姓名、性别、专业班级、联系方式主码:学号
宿舍表:楼号、宿舍号、宿舍电话、可住人数、已住人数主码:楼号、宿舍号
报修表:物品名称、报修原因、报修日期、报修人、报修费用主码:报修日期、报修人
水电费表:月份、用电量、电费、用水量、水费主码:月份
宿管表:姓名、性别、年龄、职位、职工号、联系方式主码:职工号
入住表:入住时间、离校时间、毕业时间主码:入住时间、离校时间、毕业时间
学生报修表:宿舍号、楼号主码:宿舍号、楼号
管理表:楼号、宿舍号、职工号主码:宿舍号、楼号
交费表:楼号、宿舍号、已交费用、未交费用主码:楼号、宿舍号
2.数据模型的优化
数据库的逻辑结构设计的结果不是唯一的。为了提高数据库应用系统的性能,还应该根据应用需要适当的修改,调整关系模式,这就是数据模型的优化。规范化理论为数据库设计人员判断关系模式的优劣提供了理论标准,可用来预测模式可能出现的问题,使数据库设计工作有了严格的理论基础。关系数据模型的优化通常以规范化理论为指导,方法为:
(1)确定数据依赖。分别写出每个关系内部属性的以及不同关系模式属性间的数据依赖。根据需求分析可知:
a)学生表的数据依赖:{学号->姓名,学号->性别,学号->专业班级,学号->联系方式}
b)宿舍表的数据依赖:{楼号、宿舍号->宿舍电话,楼号、宿舍号->已住人数,楼号、宿舍号->可住人数}
c)报修表的数据依赖:{报修日期、报修人->物品名称,报修日期、报修人号->报修原因,报修日期、报修人->保修费用}
d)水电费表的数据依赖:{月份->用水量、月份->水费、月份->用电量、月份->电费}
e)宿管表的数据依赖:{职工号->姓名、职工号->性别、职工号->年龄、职工号->职位、职工号->联系方式}
f)入住表的数据依赖:{入住时间、离校时间、毕业时间}
g)学生报修表的数据依赖:{宿舍号、楼号}
h)管理表的数据依赖:{宿舍号、楼号->职工号}
i)交费表的数据依赖:{楼号、宿舍号->已交费用、楼号、宿舍号->未交费用}
(2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。
(3)按照数据依赖的理论对关系模式逐一分析,考察是否存在部分函数依赖,传递函数依赖,根据各个函数依赖的依赖集可知各个关系模式没有部分函数依赖和传递函数依赖所以所有的关系模式都是属于3NF。不需要进一步进行模式分解。
学校人力资源管理系统结构设计:
E-R图向关系模型的转换:
第一步:把六个实体类型转化成五个模式
教职工(职工编号,姓名,性别,出生年份,学历,民族,婚姻状态,政治面貌,住址,联系方式)
部门(部门编号,部门名称,部门主任职工编号,部门人数,电话,部门地址)
职务(职务编号,职务名称)
职称(职称编号,职称名称)
学籍经历(学籍编号,姓名,性别,小学,初中,高中,大专,本科,研究生,博士)
奖惩情况(奖惩编号,奖励缘由,惩罚缘由,奖惩金额)
第二步:联系间的转化
(1)对于1:N联系“担任”,可在“教职工”模式中加入职务编号(职务编号为外码)。
(2)对于1:N联系“职称评定”,可把“教职工”中加入职称编号(职称编号作为外码)。
(3)对于1:N联系“附属”,可在“教职工”中加入部门编号(部门编号作为外码)。
(4)对于M:N联系“获得”,可在“奖惩情况”模式中加入职工编号(职工编号作为外码)。
(5)对于1:1联系“经历”,可在“学籍经历”模式中加入职工编号(职工编号作为外码)
完整的关系模式
教职工(职工编号,姓名,性别,出生年份,学历,民族,婚姻状态,政治面貌,住址,联系方式,职务编号,职称编号,部门编号)【主码:职工编号;外码:职务编号,职称编号,部门编号】
部门(部门编号,部门名称,部门主任职工编号,部门人数,电话,部门地址)【主码:部门编号】
职务(职务编号,职务名称)【主码:职务编号】
职称(职称编号,职称名)【主码:职称编号】
学籍经历(学籍编号,职工编号,姓名,性别,小学,初中,高中,大专,本科,研究生,博士)【主码:学籍编号;外码:职工编号】
奖惩情况(奖惩编号,职工编号,奖励缘由,惩罚缘由,奖惩金额)【主码:奖惩编号,职工编号;外码:职工编号】