人员信息管理系统数据库课程设计.数据库课程设计姓名:学号:班级:系院:指导老师:时间:2013.12.31..前言:随着信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。
为了适应现代社会人们高度强烈的时间观念,同时计算机网络的发展,人员信息方面管理越来越趋向于电子化和智能化,因此对人员信息管理系统的开发意义十分重大。
它主要用于企业的管理工作,一般应用于企业局域网,分布在公司各个部门由专人负责管理。
人员信息管理系统为管理人员带来了极大的方便。
人们可以将大量的繁琐的工作交给计算机去完成,从而大大提高了工作效率,此外,管理人员只需输入一些简单的汉字、数字,即可达到自己的目标。
建立人员管理系统,采用计算机对人员的信息进行管理,可以进一步提高企业的经济效益和现代化水平,帮助企业管理人员和工作人员提高工作管理效率。
在一个学期的数据库学习以后,我们对数据库有了一个初步的认识,了解到了数据库在实际操作中的重要作用。
所以决定要做一个具有实现功能的小系统,来锻炼一下自己的能力,并且进一步的了解数据库,为以后的实际操作打一下基础。
..目录前言一、任务书……………………………………………………………………………………1 二、相关技术介绍……………………………………………………………………………1 三、需求分析…………………………………………………………………………………2 四、概念结构设计……………………………………………………………………………4 五、逻辑结构设计……………………………………………………………………………5 六、数据库物理设计…………………………………………………………………………5 七、数据库实施………………………………………………………………………………6 八、系统测试………………………………………………………………………………19 九、系统的主要功能和使用说明…………………………………………………………19 十、课程设计心得…………………………………………………………………………24..一、任务书在本次课程设计中,我们所开发的是人员信息管理系统。
人员信息管理系统主要包含职工的个人情况,工资情况等各方面信息。
主要是为管理者能够很方便快捷的对员工进行管理。
该系统本着操作简洁、信息输入读取方便、安全性高的思想原则。
该系统使得管理员的操作权限更加明确、合理化。
其中管理者能够对人员信息进行查询、添加、删除、修改等功能,操作简单快捷。
本次课程设计起合作完成。
系统人员信息的删除、修改、查看,以及整个界面和逻辑结构。
二、相关技术介绍作为新一代的数据平台产品,SQL Server 2012 不仅延续现有数据平台的强大能力,全面支持云技术与平台,并且能够快速构建相应的解决方案实现私有云与公有云之间数据的扩展与应用的迁移。
SQL Server 2012 提供对企业基础架构最高级别的支持—专门针对关键业务应用的多种功能与解决方案可以提供最高级别的可用性及性能。
在业界领先的商业智能领领域,SQL Server 2012 提供了更多更全面的功能以满足不同人群对数据以及信息的需求,包括支持来自于不同网络环境的数据的交互,全面的自助分析等创新功能。
针对大数据以及数据仓库,SQL Server 2012 提供从数 TB 到数百 TB 全面端到端的解决方案。
做为微软的信息平台解决方案,SQL Server 2012 的发布,可以帮助数以千计的企业用户突破性地快速实现各种数据体验,完全释放对企业的洞察力。
NetBeans IDE是一个屡获殊荣的集成开发环境,可以方便的在Windows,Mac,Linux和Solaris中运行。
NetBeans包括开源的开发环境和应用平台,NetBeans IDE可以使开发人员利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序,NetBeans IDE目前支持PHP、Ruby、JavaScript、Ajax、Groovy、Grails 和C/C++等开发语言。
而NetBeans项目由一个活跃的开发社区提供支持, NetBean开发环境提供了丰富的产品文档和培训资源以及大量的第三方插件。
NetBeans是开源软件开发集成环境,是一个开放框架,可扩展的开发平台,可以用于Java、C/C++,PHP等语言的开发,本身是一个开发平台,可以通过扩..展插件来扩展功能。
在 NetBeans Platform 平台中,应用软体是用一系列的软体模组(Modular Software Components)建构出来。
而这些模组是一个jar档(Java Archive File) 它包含了一组Java程式的类别而它们实作全依据依 NetBeans 定义了的公开介面以及一系列用来区分不同模组的定义描述档(Manifest File)。
有赖於模组化带来的好处,用模组来建构的应用程式可只要加上新的模组就能进一步扩充。
由於模组可以独立地进行开发,所以由 NetBeans 平台开发出来的应用程式就能利用着第三方软件,非常容易及有效率地进行扩充。
由于对于java语言的学习不是很到位,而NetBeans的友好的可视化编程给我提供了很大的帮助,节省了很多不必要的操作。
三、需求分析3.1 数据字典(1)数据项:编号含义说明:唯一标示一个员工别名:num类型:int长度:4取值范围:从1000开始(2)数据项:员工姓名含义说明:是人类为区别个体,给每个个体给定的特定名称符号,是通过语言文字信息区别人群个体差异的标志。
别名:name类型:字符型长度:10(3)数据项:年龄含义说明:标示一个员工的年龄别名:age..类型:字符型长度:4(4)数据项:性别含义说明:员工男女性别的区别别名:sex类型:字符型长度:4(5)数据项:工资含义说明:标示一个员工的工资别名:salary类型:字符型长度:103.2数据结构:员工含义说明:定义了一个表述人工的信息结构组成:编号、人工姓名、性别、年龄、工资 3.3数据流:人员信息管理数据流来源:人员信息数据流去向:人员信息表组成:人员编号3.4数据存储:人员信息表说明:记录人员的基本情况流出数据:人员管理信息组成:人员编号、姓名、年龄、性别、工资 3.4数据处理过程:添加、删除、修改、查询人员的姓名、年龄、工资、性别信息说明:完成人员信息的各种操作输入:人员编号输出:人员编号、姓名、年龄、性别、工资的添加、修改、删除和查询..的结果处理:如果有新员工进入企业,就要进行人员各种信息的添加;如果有员工离职,就要对员工各种信息进行删除;如果某个员工信息需要修改,则对相应信息进行修改3.5数据流图登陆添加删除修改查询退出四、概念结构设计根据实际需要分析,可以画出得到系统E-R图,其结果代表了用户的数据需求,决定了数据库的总体逻辑结构,是建立成功数据库的关键。
人员信息管理系统E-R图如下所示:(1)员工信息E-R图编号姓名年龄员工性别工资..(2)管理者E-R图密码用户账号(3)总的E-R图:用户删除查询修改添加五、逻辑结构设计逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS 产品所支持的数据模型相符合的逻辑结构。
设计逻辑结构一般分为3步进行:(1)将概念结构转换为一般的关系、网状、层次模型;2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换; ((3)对数据模型进行优化。
六、数据库物理设计6.1数据库物理设计的概念(1)数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统(2)为一个给定的逻辑数据模型选取一个最合适应用环境的物理结构的过程,就是数据库的物理设计数据库..6.2设计物理数据库结构的准备工作(1)要对运行的事物进行详细分析,获得选择物理数据库设计所需参数(2)充分了解所用RDBMS的内部特征,特别是系统提供的存取方法和存取结构6.3关系数据库物理设计的内容主要包括(1) 为关系模式选择存取方法;(2) 设计关系、索引等数据库文件的物理存储结构。
6.4 物理设计方法(1)首先对要运行的事物进行详细分析,获得选择物理结构设计所需要的参数。
(2) 其次,要充分了解所用RDBMS的内容特征,特别是系统提供的存取方法和存取结构。
6.5 建立索引的原则(1) 如果一个一组属性经常在查询条件中出现,则考虑在这个属性上建立索引;(2) 如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索引;(3) 属性经常在连接操作的连接条件中出现,则考虑在这个属性上建立索引;七、数据库实施7.1 数据库及数据库对象建立首先要打开SQL Sever Management Stdio 如下图:..然后右键菜单创建一个数据库,再里面创建表即可。
在这个程序中,我总共添加了两个表,即information和login 一个是用来管理员工的信息,并进行修改删除等操作,password则是用来管理管理员登录的密码,还有忘记密码时候的操作。
7.2用户界面的设计和实现及应用程序编码界面的设计使用了NetBeans的可视化编程,使得操作变得简化,实际上来说,如果对代码没有足够的理解是无法在此基础上进行编写的。
首先我使用Eclipse对java中的Swing语言进行了解,并逐个实验,最后终于有了一些头绪,知道了在哪里写代码才可以执行,费了整个程序设计的绝大多数时间。
然后再使用NetBeans的便捷性,使得很快的完成了整个程序。
一开始有了一个初步的模型,设计添加,删除,修改,查询的方法,最后为了安全起见,又编写了登录的界面,并将登陆用户加入到我们的数据库中。
(1)添加部分调用了一个窗体,并且将数字写入,用过变量将文本框里面的内容保存起来并进一步加入到数据库中进行保存,自动生成其id,并且使ID不重复,这也保证了在以后的查询步骤里面只有一个输出结果而不会有错误。
如下图: ..代码如下:private void okActionPerformed(java.awt.event.ActionEvent evt) {// TODO add your handling code here:if(evt.getActionCommand().equals("确定")){try {try {course.id1=course.getID();} catch (ClassNotFoundException ex) {Logger.getLogger(Insert.class.getName()).log(Level.SEVERE, null, ex); }1=nameText.getText();course.sex1=sexText.getText();course.age1=ageText.getText();course.salary1=salaryText.getText();course.sql = "insert into informationvalues("+course.id1+",'"+1+"','"+course.sex1+"','"+course.age1+"','"+course.salary1+"')";try {course.loadDriver();..} catch (ClassNotFoundException ex) {Logger.getLogger(Insert.class.getName()).log(Level.SEVERE, null, ex);}course.dbConn = course.getConnection();course.stmt =course.dbConn.createStatement();try {course.stmt.executeUpdate(course.sql);JOptionPane.showOptionDialog(null, "添加成功~~", "ql实验", JOptionPane.DEFAULT_OPTION,RMATION_MESSAGE,null, null, "请输入");} catch (SQLException sQLException) {JOptionPane.showOptionDialog(null, "添加失败~~~", "ql实验", JOptionPane.DEFAULT_OPTION,RMATION_MESSAGE,null, null, "请输入");}this.dispose();JOptionPane.showOptionDialog(null, "你的id是"+course.id1,"Sql实验",JOptionPane.DEFAULT_OPTION,RMATION_MESSAGE,null, null, "请输入");} catch (SQLException ex) {Logger.getLogger(Insert.class.getName()).log(Level.SEVERE, null, ex);}..}}(2)别的几个功能都在主窗口中运行。