目录1、开发背景 (1)2、系统描述 (1)3、数据分析 (2)3.1、数据流图 (2)3.2、数据字典 (2)4、概念模型设计 (5)5. 逻辑模型设计及优化 (8)6、应用程序设计(前台) (9)7、课程设计心得体会 (6)参考文献 (16)1.开发背景随着社会和经济不断的发展,数据和信息也随之告诉增长起来,为有效地组织和管理庞大的数据和信息,严密科学合理的数据管理技术也就成为迫切的技术问题之一。
数据库技术是20世纪60年代末在文件系统基础上发展起来的数据管理新技术,它解决了过去对数据管理和组织中存在的数据冗余和独立性问题,实现了数据的共享性、完整性、安全性、有效性目标。
数据库技术的发展和广泛使用,为人类社会进入信息化社会奠定了坚实的基础。
大学生就业管理系统是在实现如今越来越多的大学生提供就业资源,方便大学生,同时也实现企业寻求人才的搜索,该系统最终的目的是方便毕业生进行就业信息检索,可将就业信息在网上进行发布。
2 系统描述针对以上的功能分析,对数据库的设计做了以下分析。
考虑到就业查询的特殊要求,数据库的设计应该包含以下信息:(1)对用人单位的基本信息进行录入、修改、删除等。
(2)实现毕业生专业信息的维护。
(3)定时发布用人单位的毕业生需求信息。
(4)方便的实现对人才需求信息的检索。
(5)对用人单位的级别能够自动进行变更。
(6)能够对历年的毕业需求信息进行统计、分析。
(7)具有数据备份和数据恢复功能。
3数据分析3.1 数据流图数据流图简称DFD图,数据流图有四种成分:源点或终点、处理、数据存储表和数据流。
图中没有任何具体的物理元素,只是描述信息在系统中的流动和处理情况,即使不是专业的计算机技术人员也容易理解,是极好的理解工具。
它能精确的描述系统的逻辑模型,描述数据在MIS中有输入经过存储、加工处理最后输出的全过程,是设计者和用户交流的很好的工具。
图1 学生就业查询流图3.2 数据字典数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有的元素定义的集合。
数据字典的作用是在软件的分析和设计过程中提供关于数据的描述信息。
一般来说,数据字典应该由下列四类元素构成:数据元素,数据流,数据存储和数据处理。
3.2.1数据流的描述数据流是数据结构在系统传输的路径。
对数据流的描述通常包括如下容:{数据流名,说明,编号,数据流来源,数据流去向,组成(数据结构)}。
数据流编号: D001数据流名称:大学生就业查询信息简述:大学生所要就业的单位数据流来源:大学生数据流去向:大学生信息判断数据流组成:大学生号+单位号+专业等数据流量:1000/天高峰流量:3000/天数据流编号: D001数据流名称:用人单位信息简述:用人单位的招聘信息数据流来源:大学生信息判断数据流去向:用人单位信息查询数据流组成:大学生号+专业号+地区号等数据流量:1000/天高峰流量:3000/天3.2.2处理逻辑的描述处理过程的具体处理逻辑通常在详细设计过程中用判定表或判定树来描述。
在数据字典中,只无原则描述处理过程的说明性信息,通常包括以下容:{处理过程名,说明,输入数据流,输出数据流,处理}处理逻辑编号:P001处理逻辑名称:大学生信息判断简述:判断大学生信息的合法性输入的数据流:大学生查询信息处理描述:根据大学生提供的个人信息,判断是否为有效用户输出的数据流: D001用人单位要求处理频率: 10次/天处理逻辑编号:P002处理逻辑名称:用人信息判断简述:判断用人信息的合法性输入的数据流:大学生查询信息处理描述:根据大学生提供的个人信息,判断是否为有效用户输出的数据流: D001用人单位要求处理频率: 10次/天3.2.3 数据存储的描述数据存储是数据结构停留或保存的地方。
也是数据流的来源和去向之一,可以是手工文档或手工凭单,也可以是计算及文档。
一般而言,应包括如下容:{数据存储名,说明,编号,输入的数据流,输出的数据流,组成(数据结构),数据量,存取频度,存取方式}。
数据存储编号:F001数据存储名称:大学生信息简述:大学生的基本信息数据存储组成:学生,性别,年龄,,专业,学号关键字:学号相关联的处理:P001数据存储编号:F002数据存储名称:用人信息简述:用人单位本信息数据存储组成:单位名称,单位关键字:单位相关联的处理:P0013.2.4 外部实体的描述外部实体编号:S001外部实体名称:学生简述:找工作的人输入的数据流:D002,D003输出的数据流:D001......4概念模型设计大学生就业管理系统在我负责的管理员这一模块上一共设计了五表用来存储所有的用人单位信息和招聘信息:company表(包含属性:单位、单位名称、)、major表(包含属性:专业信息、专业)、region表(包含属性:地区、地区名称)、belong表(包含属性:用人单位、地区号)、request表(包含属性:用人单位、专业、年份、人数、专业、学历)。
并为每个表设置了能唯一确定各个表的属性。
其中company表里设置属性(单位)为主关键字,并在major表里设置属性(专业)为主关键字,在region表里设置属性(地区)为主关键字,在belong表里设置属性(用人单位、地区号)为主关键字,在request表里设置属性(用人单位)为主关键字。
表间对应的局部和整体E-R图如下:图2 用人单位属性图图3 地区属性图图4 学生属性图图5 单位要求图图6 专业信息属性图图7 整体E-R图把上面的E-R图转换为关系模型为(关系的码用下横线黑体标出)用人单位(单位,单位名称,);要求(用人单位,专业,年份,人数,专业,学历);专业信息(专业,专业名称);属于(用人单位,地区号);地区(地区,地区名称);学生(学号,,年龄,专业,)5逻辑结构模型设计及其优化(1)下面是将各个实体和联系转化为相应的二维表即关系模式,指定各个关系的主关键字和外部关键字,并对各个关系的约束加以限定:1)company表,如表1所示。
2)belong表,如表2所示。
3)major表,如表3所示。
4)region表,如表4所示。
表4 region表5)request表,如表5所示。
表5 request表年份nrchar(10不允许为空)不允许为空人数nrchar(10)不允许为空专业nrchar(10)学历nrchar(10不允许为空)6)student 表,如表6所示字段名数据类型主关键字外部关键字参照的表取值说明不允许为空nchar(10)学号nchar(10yes 不允许为空)不允许为空年龄nchar(10)不允许为空专业nchar(10)性别nchar(10不允许为空)(2)所有表之间的关系图,如图2所示。
Array图2 表之间的关系图6应用程序设计a)建立存储过程create procedure [dbo].[b]地区名称 nchar(10)asbeginselect 单位名称,,地区名称,专业信息,学历,人数,年份from belong,company,region,major,requestwhere 地区名称=地区名称 and belong.用人单位 =request.用人单位and belong.用人单位 =company.单位and company .单位 =request .用人单位and belong .地区号 =region .地区and major .专业 =request .专业endGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOcreate procedure [dbo].[a]单位名称 nchar(10)asbeginselect 单位名称,,地区名称,专业信息,学历,人数,年份from belong,company,region,major,requestwhere 单位名称=单位名称 and belong.用人单位 =request.用人单位and belong.用人单位 =company.单位and company .单位 =request .用人单位and belong .地区号 =region .地区and major .专业 =request .专业endGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOcreate procedure [dbo].[c]专业信息 nchar(10)asbeginselect 单位名称,,地区名称,专业信息,学历,人数,年份from belong,company,region,major,requestwhere 专业信息=专业信息 and belong.用人单位 =request.用人单位and belong.用人单位 =company.单位and company .单位 =request .用人单位and belong .地区号 =region .地区and major .专业 =request .专业endGOb)建立触发器了实现表间数据的一致性和完整性,创建了触发器,具体代码如下:/*company表触发器*/create trigger danweihaomaon companyafter updateasbeginupdate requestset 单位=(select 单位 from inserted)where 单位 in ( select 单位 from deleted)ENDG图三程序截图7.课程设计总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
通过这次课程设计增加很多认识,在拿到课程设计题目时,没有像以前一样马上开始动手写代码,我先做了整体的分析,把要设计的表,表的属性,表间的关系全部弄清楚,并画了相应的关系图和E-R图,从而也就基本形成了这次设计的整体构架。
在写代码的过程中明显感觉到很轻松,就是照着所设计的思路一步一步地进行。
并得到以下总结:首先,流程是一切的根源,进度控制是项目顺利进行的基础。
没有大局观,面对问题和变更就会不知所措了。
其次,构架是很重要的,整体框架搭好,具体细节实现起来就是顺理成章的事了。
最后,实践比一切空谈和理论更能学到东西。
平时学的那些理论都不过是皮毛罢了,一旦不用很快就忘记,始终要在实践中才会发现问题才会努力去解决才能成长。
看到题目后就一直在思考怎么设计好这个数据库,从理论到实践,在这些日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。