1、数据库原理课程设计报告452020年4月19日文档仅供参考课程设计报告数据库原理系 别 信息学院专 业 年 级 计算机科学与技术专业 0708班 学 生 姓 名 付 艳 艳 迟 秀 晶 米 秋 洋 任 课 教 师 李 明 5月5日干部档案数据库系统设计报告一、题目名称干部档案数据库系统二、题目简介干部档案数据库应用系统是通用于各个公关企事业单位干部人员的基本信息的统计,是有关干部系统的登录、干部信息的增加、删除和修改、分类对干部信息进行查询和打印等各种信息的处理及应用。最终简单的实现对该单位干部信息资料的了解和查询,为本单位日常生活和对干部进行考核做了一定的设计,初步实现了干部档案系统的一般功
2、能。三、需求分析(一)当今时代的现状及系统的实现工具当今时代,人类经济高速发展,人们的生活发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域,使原本的旧的管理方法越来越不适应现在社会的发展,许多人还停留在以前的手工操作。这大大地阻碍了人类经济的发展。为了适应现代化社会人们高度强烈的时间观念,干部档案数据库应用系统软件为档案办公室带来了极大地方便,我们所开发的这个系统所采用的是当前较为流行的编程软件Miscrosoft VisualFoxPro 6.0/8.0为后台结合SQL Server 数据库的实现语言,其功能在系统内部命令或直接对数据库进行操作完成。干部档案材料的收集
3、工作是干部档案工作的基础,是为利用工作积累信息的过程,是维护干部档案完整和真实直接关系其作用发挥的重要环节,因此必须下功夫、花大力气认真做好。(二)建立健全收集归档制度,认真组织落实从档案部门来说必须建立健全收集工作制度并严格执行,应该归档的材料认真收集归档。定期收集能够根据本单位的中心工作提出收集工作计划,对应收集的材料做到心中有数,积极主动抓重点、按计划逐项收集,这样能够避免因工作忙漏归、迟归现象。如表彰奖励材料、年终考核材料、工资普调材料等都能够按计划定期收集。不定期收集也就是零星收集采取这种方法时要注意了解各方面情况及时掌握信息,随时收集,如成果获奖、学历培训、政审、鉴定材料等都能够定
4、期收集。从形成档案材料的单位、部门来说也必须建立归档制度,同样要认真贯彻执行,将形成的应归档材料主动送交管档案部门归档。各部门应该将收集归档这项工作列入目标管理工作中,落实归档时间和责任人,也能够将之列入岗位责任制中作为考核内容。干部档案部门要对归档工作进行严格的检查督促。(三)完善档案内容提高档案价值首先,是干部档案收集归档工作的依据性文件。按照这一规定,干部部门应在德、能、勤、绩四方面开展收集工作全面收集材料特别是现阶段要根据干部制度改革和对人才信息的需要完善档案内容,注意收集那些能体现人才能力、水平和业绩的材料。其次,应该在形成档案材料时就是它准确、充实,能真正反映一个人的情况、面貌和特
5、点。例如考核鉴定材料形成时就要注意将被考核人全面情况反映出来,要对人才素质、现实表现客观地作出评价。这样所形成的材料被收集进档案中去才能有利用价值。再次,要定期补充记录登记,如对干部基本信息、工作评价表等登记表定期补充,目的是使档案简单明了地反映人的某一方面情况。另外能够将科技人才的论著论文目录、培训进修登记、年终考核登记等补充进档案,使档案内容更直观便于利用。(四)系统应满足的功能及要求(录入、查询、修改、增加、删除、打印等)干部档案管理系统主要包含职工个人自然情况、工作情况、简历、整治情况等各方面信息,内容比较庞大复杂。同时还综合考虑档案管理工作的性质,总结归纳出所需要实现的功能。主要是为
6、了干部档案进行服务,对干部的变动、干部资料、以及干部资料的查询、统计等功能。总体上说具有编辑、查询、用户管理、干部评价等功能。1、灵活的数据记录编辑功能,能够随时对记录进行增加、修改、更新、删除、浏览等编辑操作。并将查询方式有机溶入编辑界面,能够实现对某项记录定位,再进行编辑、修改、更新。2、多个数据库表的任意组合条件的查询。便于在实际档案管理操作中的各种情况,多种条件下的人员情况,多种情况进行统计查看。3、具备分级用户权限管理设置,以确保档案的保密性和安全性。4、具有分类统计,使用打印、输出显示的功能,该打印材料可根据数据库中记录的变化而变化。5、具有比较有好的人机界面,各种操作能够再直观的
7、界面上经过人机交互进行。6、具有辅助表管理功能,主要是对”干部基本信息”表中的字段”学历”、”部门表”中的字段”部门”、”民族”表中的字段”民族”、”职称”表中的字段”职称”进行添加、修改、删除操作随着企业的规模不断扩大,员工数量急剧增加,有关员工的各种信息量也成倍增长。企业在一般日常工作中需要对企业人员组成、考核情况、工作评估等进行管理。(五)现行干部档案管理实例图如下1-1所示:(六)根据需求分析建立各个表的数据结构及数据字典如下:1、User 表组成:username(管理员名字)、userpasswd(管理员登陆的密码)含义说明:管理员主要是对系统用户进行管理,包括登录、退出、操作记录
8、等。包括的数据项:数 据 项含义说明类 型长 度username管理员的名字字符型12userpasswd管理员登陆时的密码字符型122、Prof表组成:职称编号、职称名称含义说明:给每个职称编号,且每个职称都有各自的名称,职称编号唯一,是Prof表的主索引(zcbh),职称编号与职称名称对应。包括的数据项:数 据 项含义说明类 型长 度与其它数据项的逻辑关系职称编号唯一标识每个职称(是主码)员的名字字符型3不能取空值职称名称 与职称编号对应的职称字符型123、Nation表组成:民族编号、民族名称含义说明:给各民族一个编号,并将其设为Nation表的主索引(mzbh),从而容易Nation表
9、与其它表建立连接。包括的数据项:数 据 项含义说明类 型长 度与其它数据项的逻辑关系取值范围民族编号唯一标识每个民族(是主码)字符型3主码,不能取空值000至999 民族称号 民族编号对应的名族名称字符型34、Dept表组成:部门编号、部门名称含义说明:给各部门一个编号,并将其设为Dept表的主索引(bmbh),从而容易Dept表与其它表建立连接。包括的数据项:数 据 项含义说明类 型长 度与其它数据项的逻辑关系取值范围部门编号唯一标识每个部门(是主码字符型4主码,不能取空值000至999 部门名称 部门编号对应的部门字符型205、Ganbu表组成:干部编号、姓名、部门编号、性别、出生日期、籍
10、贯、专业、学历、民族编号、婚否、身份证号、电话、住址、政治面貌等。含义说明:就是干部的档案记录,即是干部的基本信息,包括编号、姓名、性别、出生日期、学历、政治面貌、电话号码、通讯地址、职务、简历等,将干部编号设为主索引,部门编号、民族编号、职称编号设为普通索引,使其能与其它表建立连接。包括的数据项:数 据 项含义说明类 型长 度与其它数据项的逻辑关系取值范围干部编号唯一标识每个干部职称(是主码)字符型7主码,不能取空值000至999 部门编号 唯一标识每个部门(是主码)字符型4外码,不能取空值0000至9999 民族编号唯一标识每个民族(是主码)字符型3外码,不能取空值000至999姓名是每个
11、干部的名字,标识每个干部字符型10主属性,不能取空值性别描述每个干部的性别,只能取男或女字符型2主属性,不能取空值出生日期表示每个干部的出生日期日期型每个干部都有一个出生日期,能够重复但不能取空值籍贯户口所在地字符型14学历 说明每个干部的学历信息字符型10婚姻描述每个干部的婚姻状况字符型40000至9999身份证号对每个干部身份的描述,每个干部都有唯一的身份证号字符型18 每个人必有身份证号,是每个人的身份的证明,不能取空值住址每个干部的住所地址字符型30外码,不能取空值政治面貌是一个人的政治身份最直接的反映,是指一个人所参加的政党、政治团体类字符型10参加工作时间是每个干部都有参加工作的时
12、间,并把其填写在这个参加工作时间的字段日期型86、Appraise表组成:评价编号、干部编号、部门编号、评价日期、工作业绩、业务水平、考核等级等。含义说明:主要用来表示对干部日常行为及工作的表现的评价。包括的数据项:数 据 项含义说明类 型长 度与其它数据项的逻辑关系评价编号对干部工作表现评价的编号字符型10主码,不能取空值职称编号 唯一标识每个职称,与职称表里的职称编号一样字符型7外码,不能取空值部门编号与Dept表的部门编号一样字符型4外码,不能取空值评价日期对每个干部进行评价的日期日期型8工作业绩对每个干部的工作进行评估,将其业绩的字段字符型40业绩的描述只适用于评估,能够为空值考核等级
13、是每个干部的名字,标识每个干部字符型10主属性,不能取空值备 注是每个干部的名字,标识每个干部字符型40主属性,不能取空值四、概念结构设计(一)目的与任务将需求分析阶段得到的用户需求抽象为信息世界转化为独立于具体DBMS的概念模型。(二)分析方法混合策略法和分布实现的方法。(三)数据库中实体成员结构图如下:1、管理员、民族、部门、职称、干部、评价的分E-R图如下:User表管理员名字管理员登陆密码Nation表民族编号民族名称Prof表职称编号职称名称Dept表部门编号部门名称Ganbu表干部编号姓 名部门编号性 别出生日期籍贯专业学历民族编号婚否身份证号电话住址政治面貌Appraise表评价
14、编号干部编号部门编号评价日期工作业绩业务水平考核等级(2)整合以后的总体E-R图如下:Appraise表评价编号评价日期考核等级工作业绩业务水平部门编号干部编号Ganbu表姓名住址Dept表部门名称电话出生日期籍贯专业政治面貌职称编号Prof表职称名称性 别身份证号民族编号婚否Nation表民族名称(四)干部档案数据库应用系统数据流图所下示:系统登录帐户干部基本信息评价干部工作系统修改更新授权退出系统接收数据收集数据审核数据维护数据利用数据修改更新查询打印汇总数据分析数据统计数据验证用户查询打印表格干部档案数据库应用系统五、逻辑结构设计干部档案系统是在上面的数据库概念结构设计的基础上,把实体与
15、属性之间的关系转化为Visual Fox Pro 6.0数据库系统所支持的实际数据模型,并形成数据库中的表,用于存储干部基本信息。(一)干部表(干部编号,姓名,部门编号,性别,籍贯)。 (二)部门(部门编号,部门名称):(三)登陆(登陆名,密码):(四)职称(职称编号,职称名)(五)民族(民族编号,民族名称)(六)干部评价表(评价编号,干部编号,部门编号,评价日期,工作业绩,)六、物理设计(一)系统各个模块功能的描述1、系统登录界面用于用户登录,我们这里只用了一个默认的用户,即系统的管理员。如果密码或用户名与所给的User表不一致的话,就不能进入系统使用的总界面。2、当进入主界面以后,分为系统
16、、干部信息管理、工作评价管理、统计输出、退出菜单。其中系统菜单又包括密码修改子菜单,用于对管理员密码的修改和新密码的确认;干部信息管理菜单又包括编辑基本信息、编辑干部信息、查询干部信息子菜单;工作评价管理菜单又包括编辑干部工作评价和查询干部工作评价子菜单;统计信息菜单包括输出各职称人数、输出各部门的人数、打印档案报表和打印工作评价表子菜单。3、添加、删除一个数据库中的项目在干部档案管理系统录入界面中,能够实现对于干部档案信息的添加,在此界面中添加的项目都会自动保存在数据库中,经过控件来实现数据库与程序间数据的同步。在录入干部档案信息的过程中要是出现输错的记录时,系统会自动提示你所输入错误的记录
17、,以此消去了使用者在使用过程中的盲目录入错误的记录,从而也提高了录入记录的速度,同时也减轻了录入记录时的复杂操作。主要添加的干部档案信息有:姓名、性别、出生日期、学历、政治面貌、电话号码、通信地址、职务、简要经历等。干部档案信息的删除界面中记录与录入界面完全一样,主要是实现各单位干部毕业或者转学将干部档案都转出的干部的档案进行删除操作。使用前一记录,下一记录能够查找到相应的干部的档案信息,从而进行删除,在删除一条记录后,在数据库中也会相应的删除该干部的档案记录。(二)根据以上概念模型设计和逻辑模型设计整合设计出的干部档案数据库应用系统的各个模块的流程图如下:1、系统信息界面2、干部信息处理界面
18、3、干部工作评价系统界面4、根据部门和职称对干部信息进行输出、打印界面七、数据库实施(一)编辑数据库应用编程软件Miscrosoft Visual FoxPro 8.0和SQL Server 数据库的实现语言。经过以上6张表的建立和表之间的关系的处理,是这些表在整个数据库中联系紧密,应用自如。而且在数据库的程序设计及代码实现上应用了数据库设置、查询、增加、删除、修改等语言,基本实现了干部档案数据库应用系统的功能。(二)导入数据库应用Miscrosoft Visual FoxPro 8.0进行数据库中各个项目的建立,包括表、表单、项目、菜单等的结构和内容的建立,从而应用于干部档案数据库系统中。其
19、中部分如下图所示:(三)编码和调试(四)数据库测试运行(五)数据库的实施和维护八、总结(一)干部档案的现状一直以来,干部档案深藏于库房之中,默默无闻。说起来重要,排起来次要,用起来需要,一个登记本、一个装订机、一个铁皮柜就够了,实际上远非如此。随着干部制度的改革,媒介在用人方式上开始多样化,即正式职工、聘用人员、临时工等多种形式并存,且聘用人员的档案不由单位的干部部门管理,这些都为媒体档案管理提出了新课题。将干部档案工作列入干部工作规划,有专门的分管该项工作的领导和专职工作人员。要制定长远规划和年度计划,明确工作重点。要努力改进保管条件,将档案柜、各种整裆工作工具等必须设备列入专项经费开支,从
20、人、财、物上尽量创造条件。同时还能够考虑和人才交流中心联系,把部门聘用人员的干部档案纳入干部管理规划,以有利于统一管理和使用好聘用人员。在媒体竞争日趋激烈的情况下,如何使用干部管理档案工作更好地为发现人才、选拔人才、加速人才培养、合理配置人力资源服好务。我们认为,应做到强化一个管理体制,处理好两种关系,实现两个转变,开发多种利用方式,干部档案是人才信息的重要载体,是人才的主要信息源准确、齐全、完整的干部管理档案能历史全面地记载一个人的经历、政治思想、品德作风、业务能力、工作表现、工作实绩等信息是知人善任、选贤举能的重要工具,管好用好干部档案对人才资源开发起着重要作用。可是当前的干部档案工作还存
21、在着不少问题,直接妨碍了其作用的发挥。针对上述以往的干部档案的种种弊端和不便,启发了我们开发这个小型的干部档案数据库应用系统。一方面是将现在的干部档案进行具体化、规格化、科学化地应用到需要的公关企事业单位,另一方面也从各个方面锻炼了团队的合作精神和动手动脑能力,并充分利用了数据库和Miscrosoft Visual FoxPro 8.0的知识,巩固了学习过的知识,使我们学习的知识真正应用到了实践当中。(二)我们组包括三个成员(付艳艳、米秋洋、迟秀晶),在这次数据库课程设计的分工如下:1、付艳艳负责:总体分析和需求分析、物理结构、数据库实施及维护。我在数据库设计之前,先对当今社会干部档案的特点和
22、需求进行搜集、调查和总结,在此基础上进行了概念结构的设计及数据字典的建立。初步定为6个实体及各个实体的多种属性。而且,在考虑到应用的需要,用Miscrosoft Visual FoxPro 8.0结合SQL Server 设计出了一个小型的干部档案数据库应用系统。在设计工程中遇到了许多的问题,比如表和表之间的联系,实体和实体之间的联系,属性的设置和主码的确定等机构上的考虑不周全;在系统各个功能的实现上,在前面已经做好的需求分析和概念、逻辑、物理结构的设计的完成以后,初步设计了系统的整体框架,可是还是缺乏某些功能,而且有些功能也不是很完善;最后在具体落实到表的连接和标间关系的调用时,有时还不是很
23、清晰。由于这次时间有限,准备工作没有完全到位,在这次设计中还存在很多不足,有待于进一步完善。另外,在编制过程中,虽然考虑到了界面的友好性,并在界面设计采用烦琐的细节,使界面简单、清晰,可是缺少了一些快捷界面,影响了操作的方便程度。2、米秋洋负责:概念结构的设计各个实体及表的建立和数据的采集。我将需求分析阶段所得到的应用需求抽象为信息世界的结构。此概念模型是针对实际工作中干部档案的建模,能准确方便地表示出干部档案中常见的概念,用最常见的E-R图来描述此模型。经过对现实世界干部档案的分析,并抽取了实体和实体之间的联系来表示实体型、属性和联系的方法。认为重要的是分析清楚两个实体间是一对一联系、一对多
24、联系还是多对多联系。对表的建立要明确各个字段的数据类型、长度,与该表有关的完整性约束条件。对数据的采集要尽量全面,不重复,有可比较性。3、迟秀晶负责:数据字典的建立、逻辑结构、的建立。由于干部档案包括很多内容,于是数据库中包含的表比较多,那么一定要建立好个各个关系之间的联系,确定其联系方式,是一对一、一对多还是多对多,另外要注意主索引和普通索引的建立,主属性和普通属性的确定,是主属性那么就一定不能取空值,还有些必要的信息在填写档案时是不能不写的。这次设计深刻的揭示了建立数据字典要与实际结合起来的重要性,这样才能使这个系统更具有实用性。(三)我们遇到的问题及解决办法和经验如下:1、时钟控制原来想
25、到用时钟控制欢迎界面的,可是有些没有弄清楚时钟是如何控制的,因此这里就只设计了时钟控制闪烁的欢迎界面。2、我们想进一步实现输出各部门人数和打印档案报表功能,可是由于报表绘画起来有些琐碎,还有一些对应关系很难实现,比如输出各部门人数和打印档案报表这两项功能有待于进一步的完善。3、我们在选取各个功能上,只是一些基本的功能,实现简单,应用灵活,可是没有建立快捷方式,在实际的系统应用上有些不方便,这一点也需要改进和完善。4、在评价表增加时,偶然也存在添加上的问题,这点暂时还没有解决。希望在以后的进一步学习和实践中找到解决的办法。附 录一、源代码主要功能模块(一)主函数的实现及进入整个系统的界面主要代码
26、:close allclear allset talk offset century onset safety offon error messagebox(Message(),0,警告) public g_usernamewith _SCREEN.visible =.F.name=干部管理.closable=.F.height= 600.width = 800.windowstate =2.caption = 干部档案应用系统.ICON =047.icoendwithdo form f_welcomeread eventsset sysmenu to default(二)欢迎使用干部档案应用
27、系统界面代码:thisform.releasedo form F_Login时钟函数:R = int(rand()*255)G = int(rand()*255)B = int(rand()*255)thisform.Label1.forecolor = Rgb(R,G,B)(三)系统登录界面登录按钮代码:select userthisform.n =thisform.n + 1locate for alltrim(username) = alltrim(thisform.text1.value)if found() and alltrim(userpasswd) = alltrim(this
28、form.text2.value)g_username = thisform.text1.valuethisform.release_screen.Height=500_screen.Width=700_SCREEN.PICTURE = data1.jpgdo main_menu.mpr_screen.visible =.T.elseif(thisform.n 5)Messagebox(用户名或密码错误,请重新输入,48,警告)thisform.text1.setfocuselseMessagebox(密码连续错误5次,系统无法运行,48,警告)thisform.releasequitendi
29、fendif(四)密码修改界面代码:select userset exact onlocate for username = g_username and userpasswd = thisform.text2.valueif not found()MessageBox(原密码不正确!,警告)thisform.text2.value =thisform.text2.setfocuselseif thisform.text3.value thisform.text4.valueMessageBox(新密码与确认密码不符!,警告)thisform.text3.value=thisform.text
30、4.value=thisform.text3.setfocuselsereplace userpasswd with thisform.text3.valuethisform.releaseendifendif(五)干部信息管理菜单1、编辑干部基本信息功能代码实现(click事件):(1)首记录:go topmand2.enabled =.F.mand3.enabled =.T.n = thisform.pageframe1.activepagen = alltrim(str(n)thisform.pageframe1.page&n.refreshthisform.pageframe1.pag
31、e&n.setfocus(2)上条记录skip -1if bof()go topmand2.enabled = .F.mand3.enabled = .T.elsemand2.enabled = .T.mand3.enabled = .T.endifn = thisform.pageframe1.activepagen = alltrim(str(n)thisform.pageframe1.page&n.refreshthisform.pageframe1.page&n.setfocus(3)下条记录skip 1if Eof()go bottommand2.enabled = .T.mand3
32、.enabled = .F.elsemand2.enabled = .T.mand3.enabled = .T.endifn = thisform.pageframe1.activepagen = alltrim(str(n)thisform.pageframe1.page&n.refreshthisform.pageframe1.page&n.setfocus(4)末记录go bottommand2.enabled =.T.mand3.enabled =.F.n = thisform.pageframe1.activepagen = alltrim(str(n)thisform.pagefr
33、ame1.page&n.refreshthisform.pageframe1.page&n.setfocus(5)增加select appraiseappend blankthisform.Modi_attr(.T.)thisform.pageframe1.page1.refreshthisform.pageframe1.page2.refreshif thisform.pageframe1.activepage =1thisform.pageframe1.page1.txt评价编号 .setfocus()elsethisform.pageframe1.page2.edt其它1 .setfoc
34、us()endifmand2.enabled =.F.mand3.enabled=.F.(6)删除yn = messageBox(真的删除记录?,4+32,确认删除)if yn =6select appraisedelepackthisform.pageframe1.page1.refreshthisform.pageframe1.page2.refreshif thisform.pageframe1.activepage=1thisform.pageframe1.page1.txt民族编号 .setfocus()elsethisform.pageframe1.page2.edt其它1 .se
35、tfocus()endifmand1.enabled =.F.mand3.enabled =.F.endif(7)修改thisform.Modi_attr(.T.)mand1.enabled =.F.mand2.enabled =.F.this.enabled =.F.(8)保存select appraiseflushn= thisform.pageframe1.activepagen = alltrim(str(n)thisform.pageframe1.page1.refreshthisform.pageframe1.page2.refreshthisform.pageframe1.pag
36、e&n.setfocus()mand1.enabled = .T.mand2.enabled = .T.mand3.enabled = .T.thisform.Modi_attr(.F.)(9)退出thisform.release2、编辑干部信息注:代码与1类似3、查询干部信息PUBLIC g_zgbhdo casecase thisform.optiongroup1.value =1select employeelocate for 姓名=alltrim(thisform.text1.value)if found()*bo1.Enabled=.t.g_zgbh = employee.干部编号
37、SELECT appraiseset filter to appraise.干部编号=g_zgbhENDIFcase thisform.optiongroup1.value =2 select appraiseset filter to 部门编号= thisform.Combo1.valueendcasego topthisform.grid1.refresh(3)按姓名和部门查询do casecase this.value =1thisform.text1.enabled =.t.bo1.enabled=.f.thisform.Cmd_query.enabled =.t.thisform.t
38、ext1.setfocuscase this.value =2bo1.enabled =.t.thisform.text1.enabled =.f.thisform.Cmd_query.enabled =.t.bo1.setfocusendcase(4)退出thisform.release(六)工作评价管理界面1、编辑工作评价信息注:代码类似12、查询评价信息界面(1)部门下拉列表框代码:g_bmbh = this.valueselect employeeset filter to 部门编号 =g_bmbhif(thisform.pageframe1.page1.txt评价编号.Enabled
39、 =.T.)thisform.Pageframe1.page1.Txt部门编号.value=g_bmbhthisform.Pageframe1.page1.txt部门编号.refreshendifbo2.refreshselect appraise(2)姓名下拉列表框代码:select appraiseset filter to 干部编号=bo2.valueif(thisform.pageframe1.page1.txt评价编号.Enabled =.T.)thisform.Pageframe1.page1.txt干部编号.Value=bo2.valuethisform.Pageframe1.page1.txt干部编号.refreshendifthisform.refresh*mand1.click(七)统计输出1、打印工作评价表2、输出各职称人数统计表(八)退出干部档案数据库应用系统代码:yn = messagebox(确定退出本系统?,4+32,干部档案应用系统)if yn = 6clearclose allclear allquitendif