数据库原理及应用课程毕业设计.docx
《数据库原理及应用课程毕业设计.docx》由会员分享,可在线阅读,更多相关《数据库原理及应用课程毕业设计.docx(14页珍藏版)》请在冰豆网上搜索。
数据库原理及应用课程毕业设计
计算机学院
毕业论文答辩
课程设计报告书
课程名称数据库原理及应用课程设计
设计题目房产管理系统
专业班级信计0901
学号20094058
姓名齐明栩
指导教师刘文正
2013年6月
目录
1设计时间2
2设计目的2
3设计任务2
4设计内容3
4.1需求分析3
4.2概念结构设计3
4.2.1实体3
4.2.2局部视图3
4.3逻辑结构设计6
4.3.1E-R图转化关系模式6
4.3.2数据模型的优化6
4.4物理结构设计8
4.4.1创建数据表8
4.4.2创建视图9
4.4.3建立触发器9
4.4.4建立索引10
4.4.5界面910
5总结与展望1212
参考文献13
成绩评定13
17周(33)
数据库原理及应用课程设计是软件工程专业集中实践性环节之一,是学习完《数据库原理及应用》课程后进行的一次全面的综合练习。
其目的在于加深对数据库基础理论和基本知识的理解,掌握使用数据库进行软件设计的基本方法,提高运用数据库解决实际问题的能力,最终实现对于给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。
同时,此次设计对于同学将来的毕业设计和具体工作实践将有重要的意义。
房产科把用户申请表(按照统一的格式由用户填写)输入系统后,系统首先检查申请表的合法性,对不合法的申请表系统拒绝接受,对合法的申请表根据类型分别进行处理。
如果是分房申请,则根据申请者的情况计算其分数,当分数高于阈值分数时,按分数高低将申请单插到分房队列的适当位置。
每月最后一天进行一次分房活动,从空房文件中读出空房信息,把好房优先分配给排在分房队列前面的符合该登记住房条件的申请者,从空房文件中删除掉这个房号的信息,从分房队列中删除申请单,并把此房号的信息和住户信息一起写到住房文件中,输出住房分配单给住户,同时计算房租并将算出的房租写到房租文件中。
如果是调房申请,则根据申请者的情况确定其住房等级,然后在空房文件中查找属于给等级的空房,退掉原住房,再进行与分房类似的处理。
住户可向系统询问目前分房的阈值分数,居住某类房屋的条件,某房号的单位面积房租等信息。
房产科可以要求系统打印出住房情况的统计表,或更改某类房屋的居住条件、单位面积房租等。
数据要求:
住房标准文件:
住房面积、最低住房分数(按住房面积大小递增排列)。
房产文件:
房号、住房面积、分配标志、每平方米房租(按房号递增排列)。
住房文件:
户主、部门、职称、家庭人口、住房分数、房号、住房面积(按户主名拼音字母顺序排列)。
住房要求:
户主+[分房要求∣调房要求]。
分房要求:
部门、职称、家庭人口、住房分数、要求住房面积。
调房要求:
部门、职称、家庭人口、住房分数、原住房面积、原房号、要求调房面积。
实现用户分房、调房
2
2
房屋
2
实体属性
实体属性
实体属性
实体属性
实体属性
实体属性
房屋
屋实体属性4。
4屋实体属性
(5)视图集成
所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。
全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。
1)确定公共实体类型
为了给多个局部ER模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。
2)局部ER模式的合并
合并的原则是:
首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。
3)消除冲突
冲突分为三类:
属性冲突、结构冲突、命名冲突。
4)全局ER模式的优化
在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。
一个好的全局ER模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:
实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无
冗余。
综上所述,得出综合E-R图如图4-7所示。
图4-7综合E-R图
4.3逻辑结构设计
4.3.1E-R图转化关系模式
1.用户(户主、职称、部门、住房分数、房号、家庭人口)
2.申请表(户主、申请类型、表单号、户主所在单位)
3.房产科(科长、办公室号、联系电话、表单号、户主、所分房号、原房号)
4.分房(户主、所分房号、住房分数、要求面积、部门、职称、家庭人口)
5.调房(户主、原房号、要求面积、住房分数、原面积、部门、职称、家庭人口)
4.3.2数据模型的优化
1.用户(户主、职称、部门、住房分数、房号、家庭人口),3NF;
2.申请表(户主、申请类型、表单号、户主所在单位),3NF;
3.房产科(科长、办公室号、联系电话、表单号、户主、所分房号、原房号),3NF;
4.分房(户主、住房分数、要求面积),3NF;
5.调房(户主、要求面积、住房分数、原面积、原房号),3NF;
用户表如表4-1所示。
表4-1用户表
字段名称
类型(长度)
约束
属性
户主
char(20)
不许为空
主码
职称
char(20)
不许为空
非主属性
部门
char(20)
不许为空
非主属性
房号
char(10)
可以为空
非主属性
住房分数
char(10)
不许为空
非主属性
家庭人口
char(10)
不许为空
非主属性
申请表如表4-2所示。
表4-2申请表
字段名称
类型(长度)
约束
属性
户主
char(20)
不可为空
非主属性
申请类型
char(20)
可以为空
非主属性
表单号
char(20)
可以为空
主码
户主所在单位
char(20)
可以为空
非主属性
房产科表如表4-3所示。
表4-3房产科表
字段名称
类型(长度)
约束
属性
科长
char(20)
不可为空
主码
办公室号
char(10)
不可为空
主码
联系电话
char(10)
不可为空
非主属性
分房表如表4-4所示。
表4-4分房表
字段名称
类型(长度)
约束
属性
户主
char(20)
不可为空
主码
要求面积
char(10)
不可为空
非主属性
住房分数
char(10)
不可为空
非主属性
调房表如表4-5所示。
表4-5调房表
字段名称
类型(长度)
约束
属性
户主
char(20)
不可为空
主码
要求面积
char(10)
不可为空
非主属性
住房分数
char(10)
不可为空
非主属性
原面积
char(10)
不可为空
非主属性
原房号
char(10)
不可为空
主码
4.4物理结构设计
4.4.1创建数据表
1用户表
createtable用户
(户主char(20)primarykey,
职称char(20)notnull,
部门char(20)notnull,
房号char(10),
住房分数char(10)notnull,
家庭人口char(10)notnull);
2申请表
createtable申请表
(户主char(20)primarykey,
分房申请char(20)notnull,
调房申请char(20)notnull,
退房申请char(20)notnull);
3住房表
createtable住房表
(户主char(20)primarykey,
房号char(10)notnull,
住房面积char(10)notnull,);
4分房表
createtable分房表
(户主char(20)primarykey,
要求面积char(10)notnull,
住房分数char(10)notnull,);
5调房表:
createtable调房表
(户主char(20)primarykey,
要求面积char(10)notnull,
住房分数char(10)notnull,
原房号char(10)notnull,
原面积char(10)notnull,);
4.4.2建立视图
建立在人事部工作的户主的视图:
createview户主
as
select*
from用户
where部门='人事部'
4.4.3建立触发器
建立一个如果用户的住房分数不足1000的,自动改为1000的触发器——insert_orupdate_wage
Createtriggerinsert_orupdate_住房分数
Beforeinsertorupdateon用户
Foreachrow
Asbegin
If(用户.户主=‘王强’)and(用户.住房分数<1000)then
用户.住房分数=1000;
Endif;
End
4.4.4建立索引
1在用户信息表职称列上创建一个惟一性的非聚簇索引
createuniquenonclusteredindexix_semailon用户(职称)
2在分房信息表的住房分数列上创建一个非惟一性的非聚簇索引
createnonclusteredindexix_nameon分房表(住房分数)
4.4.5界面
根据上述内容,程序运行截图如下:
用户图如图4-1所示。
图4-1用户图
调房图如图4-3所示。
图4-3调房图
5总结与展望
通过这次课程设计,我认识到了自身的不足。
首先是知识的匮乏,仅仅通过课上学习的东西远远不够,课下应该多阅读相关书籍。
虽然能够勉强读懂程序,但是到了实际应用中就会看到差距。
这次课程设计之前,我只能勉强读懂简单程序甚至不能分析运行结果,通过这次实际应用才明白自身知识的短浅,通过网上搜索、参考文献和老师同学的帮助终于完成课程设计要求。
这次设计,体现出了自己单独设计程序的能力以及综合运用知识的能力,我知道了学以致用,分享自己劳动成果,从而发现自己不足,以后会更加注意了。
在此感谢指导我们的老师。
老师对我们非常严格,他一丝不苟的作风一直是我工作、学习中的榜样;老师的教导和严格的态度让我意识到这门课程是多么重要;这次课程设计的每节实验都有老师亲自指导。
在老师的指导帮助下我顺利的完成了这次的课程设计。
同时感谢帮助我的同学们,谢谢你们对我的帮助和支持,让我知道了同学的友谊的重要性以及集体合作的重要性。
参考文献
[1]王珊,萨师煊,数据库系统概论,高等教育出版社,2006
[2]常永英,ASPNET程序设计教程(C#版),机械工业出版社,2007
[3]章立民,SQLServer2005数据库开发实战,机械工业出版社,2007
[4]李春葆,曾慧,SQLServer2000应用系统开发教程,清华大学出版社,2008
成绩评定
成绩教师签字