1数据库原理及应用课程设计报告题目班级学号姓名指导老师二零年月一、引言1.设计目的2课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际数据库开发有机的结合起来,锻炼学生的分析、解决实际问题的能力。课程设计的目的:(1)加深对数据库系统、软件工程、程序设计语言的理论知识的理解和应用水平;(2)在实践化和项目化教学基础上进一步巩固已学基本知识及应用知识并加以综合提高;(3)学会将知识应用于实际的方法,提高分析和解决问题的能力,增强动手能力;(4)为计算机科学与技术专业毕业设计和毕业后工作打下必要基础。2.设计要求运用数据库基本理论与应用知识,在RDBMS(SQLServer2005或SQLServer2008)的环境上建立一个数据库应用系统。要求把现实世界的事物及事物之间的复杂关系抽象为信息世界的实体及实体之间联系的信息模型,再转换为机器世界的数据模型和数据文件,并对数据文件实施检索、更新和控制等操作。1.用功能模型完成对题目的需求分析;2.用E-R图设计选定题目的信息模型;3.设计相应的关系模型,确定数据库结构;4.设计应用系统的系统结构图,确定系统功能;5.通过设计关系的主码约束、外码约束和使用CHECK实现完整性控制;6.定义必要的视图,能够保证数据库的安全性;7.自我评价3.软件环境:Windows7二、需求分析1.系统功能结构3图1人才招聘系统功能图2.需求分析描述通过分析,人才招聘系统应该具有求职者模块、简历模块、公司模块、岗位模块、应聘模块、招聘模块等功能。求职者首先要注册自己的个人信息,并填写简历信息,可根据需求更改自己的信息,一个人可有多份简历。公司注册自己的公司信息,可根据需求更改公司的信息。系统根据公司需要招聘的岗位,设立了岗位模块。一个公司可以招聘多个岗位,一个求职者可以应聘多个岗位。我们设计人才招聘系统的目的是为了帮助毕业的大学生们尽快的找到工作,网上招聘求职方式已经成为了招聘求职的重要手段,应聘者和招聘公司可以通过网络突破时间和空间的限制来实现工作求职和公司的人才招聘,网上招聘具有招聘范围广,信息量大,费用低等优势,同时它对应聘者具有检索方便,地域限制人才招聘系统简历模块应聘模块公司模块岗位模块注册求职者信息增加求职者信息修改求职者信息删除求职者信息求职者模块注册公司信息增加公司信息修改公司信息查询求职者信息查询求职岗位信息查询求职公司信息删除公司信息增加简历信息修改简历信息删除公司信息增加岗位信息修改岗位信息删除岗位信息招聘模块查询招聘要求信息查询招聘岗位信息查询招聘公司信息4小,供选择的工作多的特点,对招聘单位来说,招聘网站也为他们提供了查询,检索应聘者信息库的条件,使从事招聘工作人员的初选工作变得轻松易行。三、概念设计1.实体、属性和联系根据分析,人才招聘系统应该具有求职者实体,该实体具有求职者ID、姓名、性别、简历数等属性;简历实体,具有简历ID、求职者ID、姓名、性别、年龄、学历、联系方式、期望职业等属性;岗位实体,具有岗位ID、岗位名称、岗位类型等属性;公司实体,具有公司ID、公司名称、公司所在地等属性。求职者实体与简历实体具有多对一的联系。求职者实体与岗位实体具有多对多的联系,中间联系为应聘。岗位实体与公司实体是多对多的联系,中间联系为招聘。2.概念模型设计E-R图图2人才招聘系统E-R图简历求职者ID简历ID性别年龄姓名学历联系方式期望职业拥有求职者求职者ID姓名性别简历数应聘求职者ID岗位ID求职者姓名求职岗位求职公司期望工资岗位岗位ID岗位名称岗位类型招聘公司公司所在地公司名称公司ID岗位ID岗位名称公司名称招聘人数学历要求支付薪资公司IDM1MMMM5四、逻辑设计1.E-R图转换为关系模式求职者(求职者ID、姓名、性别、简历数)简历(简历ID、求职者ID、姓名、性别、年龄、学历、联系方式、期望职业)岗位(岗位ID、岗位名称、岗位类型)公司(公司ID、公司名称、公司所在地)应聘(求职者ID、岗位ID、求职者姓名、求职岗位、求职公司、期望工资)招聘(岗位ID、公司ID、岗位名称、公司名称、招聘人数、学历要求、支付薪资)2.SQLServer关系图图3人才招聘系统关系图6五、数据库实现1.表的设计(1)应聘表(Recruitment表)(2)公司表(Company表)2.视图的设计(1)请查询公司所在地为上海的公司名称、招聘岗位名称和招聘人数。7(2)“沈阳机床”的招聘岗位信息六、数据库操作1.关系代数查询“沈阳机床”提供的岗位信息?πJobID,Jobname,Jobtype(σCompanyname=’沈阳机床’(Job⋈Recruitment))2.查询(1)查询“沈阳机床”提供的岗位信息?SELECTJobID,Jobname,JobtypeFROMJob,RecruitmentWHERERecruitment.Companyname='沈阳机床'andJob.JobID=Recruitment.JobID;8(2)查询“沈阳机床”计划招聘员工的总数?SELECTSUM(Recruitingnumbers)AS招聘总数FROMRecruitmentWHERECompanyname='沈阳机床';3.插入插入一条公司信息('316','京东商城','北京')。INSERTINTOCompanyVALUES('316','京东商城','北京');4.修改将公司号为301的公司所在地改为沈阳。UPDATECompanySETCompanylocation='沈阳'WHERECompanyID='301'95.删除删除岗位号为408的所有岗位信息。DELETEFROMRecruitmentWHEREJobID='408'6.答辩提问(1)做视图:岗位类型各有多少个。10(2)设约束:简历表的学历只能为“硕士”与“本科”。七、小结通过本次课程设计实训,我学会了很多数据库方面的知识,学会了怎么用SQL做数据库,学会了建视图,学会了如何查询数据,对数据库的应用有了更深的了解。之前我对数据库了解不深,实训使我学到了很多东西。明白了主键外键的定义和如何设立主键外键,怎么对数据库结构模型进行设计与实体之间的关系的建立,也学会了怎么画E-R图。我明白了设计系统时,一定要充分思考到每一个地方。只有正确详尽的对系统进行分析,才能更高效的完成系统的开发。在设计数据库之前,一定要充分的分析到系统中应该有哪些实体和哪些属性,更好地建立数据库。这次实训,使我掌握了数据库的使用及设计方法,使我对数据库的理解更深刻,学会了怎样建立一个完整,简洁并没有冗余的数据库。11这次实训对我的帮助很大,从不会到会,虽然设计数据库的过程很艰辛,但是收获了很多有关数据库的知识,我还会继续努力学习数据库的设计。八、参考文献[1]《数据库系统概论》王珊编著,高等教育出版社2006.5[2]《数据库设计与关系理论》(英)戴特著卢涛译,机械工业出版社2013.8[3]《MicrosoftSQLServer2005中文版设计实务》施威铭研究室,机械工业出版社2008.4[4]《SQLServer2005基础教程与实验指导》郝安林等编著,清华大学出版社2008.11[5]《数据库系统开发基础与项目实训》文东主编,中国人民大学出版社2009.4[6]《SQL必知必会》BenForta著,钟鸣译,人民邮电出版社2013.5[7]