数据库系统原理课程设计人事管理系统数据库_第1页
数据库系统原理课程设计人事管理系统数据库_第2页
数据库系统原理课程设计人事管理系统数据库_第3页
数据库系统原理课程设计人事管理系统数据库_第4页
数据库系统原理课程设计人事管理系统数据库_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数学与计算机学院数据库系统概论课程设计设计名称: 人事管理系统数据库 2013-2014学年第2学期目录一、课题概述.2二、需求分析.22.1 系统功能要求设计.22.2 系统模块设计.2三、概念结构设计33.1系统流程图.33.2系统数据字典.53.2.1主要的数据流定义.5由实体画出ER图5(1)实体属性图.6(2)实体联系图.8(3)完整的实体-联系图.9四、数据库逻辑设计.104.1数据表104.2由系统ER图转化而得到的关系模式.124.3 确定关系模型的存取方法.134.4确定数据库的存储结构13五、数据库实施(程序调试)145.1登陆界面145.2操作界面155.2.1添加员工.

2、155.2.2员工和部门编号是自动生成.165.2.3婚姻情况选择时会提示是否为必填信息.165.2.4添加部门信息.175.3根据员工号或者部门号查询信息175.3.1根据员工号搜索员工信息.175.3.2根据员工号直接删除某个员工的信息.185.3.3根据部门号搜索部门信息.205.3.4根据部门号直接删除某个部门的信息.21六、总结.22一、课题概述随着计算机的发展与普及,以及互联网技术的扩展,日常人事管理必将实现无纸化办公,并且加入到公司内部的Intranet或者是Internet上去,实现数据的共享,这样有利于人事信息在单位内部的查询,提高了数据资源的利用,并且能及时的得到更新,不需

3、要象过去那样浪费大量的人力物力去进行抄写,提高了工作的效率。计算机技术、网络技术和信息技术的发展,使办公系统更趋于系统化、科学化和网络化。网络办公自动化系统是计算机技术和网络迅速发展的一个办公应用解决方案,它的主要目的是实现信息交流和信息共性,提供协同工作的手段,提高办公的效率,让人们从繁琐的有纸办公中解脱出来。二、需求分析2.1 系统功能要求设计    通过对现行人事管理系统的调查,明确了人事管理系统由档案管理、职务调动管理、管理组成。 系统功能的主要描述如下:(1)员工档案管理 对公司里所有员工进行统一编号;将每一位员工的信息保存在员工档案记录中。(

4、2)对新聘用的员工,将其信息加入到员工档案记录中;对于解聘的员工,将其信息从员工档案记录中删除。(3)当员工的信息发生变动时,修改员工档案记录中相应的属性。(4)员工职务调动管理对公司里所有员工的职务记录进行统一编号;登记员工调动前后的具体职务,以及调动时间。 (5)部门管理对公司所有的部门进行编号,建立部门记录。2.2 系统模块设计(1) 员工基本信息表的添加、删除、修改、查询。(2) 员工婚姻情况表的添加、删除、修改、查询,反映员工的配偶信息。(3) 员工学历信息表的添加、删除、修改、查询反映员工的学历、专业、毕业时间、学校、外语情况等。(4) 企业工作岗位表的添加、删除、修改、

5、查询。(5)企业部门信息表的添加、删除、修改、查询。三、概念结构设计3.1根据以上模块,可以得到系统流程图。用户登陆验证用户表选择操作成功不成功添加操作删除操作修改操作员工信息婚姻状况学历信息工作岗位部门信息验证录入数据库符合要求不符合要求用户登录用户验证员工信息婚姻状况学历信息工作岗位添加信息修改信息删除信息添加信息修改信息删除信息添加信息修改信息删除信息部门信息添加信息修改信息删除信息添加信息修改信息删除信息验证失败3.2系统数据字典数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。人事管理系统数据流程图中,数据信息和处理过程还需要通过数据字典来描述。在本文的数据字典中

6、,主要对数据流图中的数据流、数据存储和处理过程进行说明。 3.2.1,主要的数据流定义 数据流名称:员工信息;定义:员工基本信息=员工号+姓名+出生年月+民族+性别。数据流量:根据公司的员工具体录用情况来确定。 说明:要对每一位被聘用的新员工进行唯一编号。     数据流名称:婚姻情况;定义: 婚姻情况= 已婚 | 未婚  +配偶 数据流量:根据公司员工的具体情况来确定。 说明:员工婚姻情况确定一个调动情况。数据流名称:员工学历信息;定

7、义:员工学历=员工号+学历+专业+毕业时间+学校+外语水平。数据流量:根据员工学历信息变动情况来确定。说明:更新员工学历信息。数据流名称:员工工作岗位信息;定义:员工工作岗位=员工编号+工作岗位名称+在职时间+薪水说明:每位员工职位情况数据流名称:部门信息;定义:部门信息=部门号+部门经理+部门名称+工作岗位名称说明:部门的详细信息3.2.2,由实体画出ER图由需求分析的结果可知,本系统设计的实体包括:(1)员工基本基本信息:员工号,姓名,性别,年龄,出生年月,民族。(2)婚姻状况:未婚,已婚,再婚,配偶名字,配偶工作,所属单位。 (3)员工学历信息:员工号,学历,专业,毕业时间,学

8、校,外语水平。(4)员工工作岗位信息:员工号,工作岗位名称,在职时间,薪水。(5)部门信息表:部门号,部门经理,部门名称,工作岗位名称。这些实体间的联系包括:每位学生可以学习多门课程,每门课程可供多位学生学习。由上述分析可得到系统的ER图:(1)实体属性图实体属性图:员工信息出生年月性别姓名员工号名族员工实体属性图:婚姻情况配偶工作配偶姓名婚姻情况配偶单位婚姻状况实体属性图:员工学历外语水平毕业学校毕业时间专业学历员工号员工学历实体属性图:工作岗位信息薪水在职时间员工号工作岗位工作岗位信息实体属性图:部门信息工作岗位名称部门名称部门经理部门号部门信息(2)实体联系图:(3)完整的实体-联系图四

9、,数据库逻辑设计4.1数据表表Staff_Information(员工基本信息表)FieldTypeNullKeyCommentSnovarchar(10)-Primary key员工号Snamevarchar(20)NOT-姓名Sbirthdayvarchar(20)NOT-出生年月Snationvarchar(20)NOT-民族Ssexvarchar(4)NOT性别表Marital_StatusFieldTypeNullKeyCommentSnovarchar(10)-Foreign Key员工编号Mconditionvarchar(8)-check婚姻情况Mnamevarchar(20)

10、-配偶名字Mjobvarchar(20)-配偶工作Mcompanyvarchar(50)-所属单位表Education_InformationFieldTypeNullKeyCommentSnovarchar(10)-Foreign Key员工编号Egraduationvarchar(50)-学历Emajorvachar(50)-专业Etimevachar(20)-毕业时间Eschoolvarchar(50)-学校Efor_languagevarchar(20)-外语水平表PostFieldTypeNullKeyCommentSnovarchar(20)-Foreign Key员工号Pname

11、varchar(20)NOT-工作岗位名称Pexperienceint-在职时间Psalaryint-薪水表DepartmentFieldTypeNullKeyCommentDnovarchar(10)-Primary Key部门号Dmanagervarchar(10)NOT-部门经理Dnamevarchar(20)NOT-部门名称4.2由系统ER图转化而得到的关系模式如下:(1) 员工基本信息(员工号,姓名,性别,出生年月,民族),其主关键字为员 工号;(2) 婚姻状况(员工号,未婚,已婚,再婚,配偶名字,配偶工作,所属单位), 其中未婚,已婚,再婚做check约束,员工号为外键;(3) 学

12、历信息(员工号,学历,专业,毕业时间,学校,外语水平),其中外键 为员工号。(4) 工作岗位信息(员工号,工作岗位名称,在职时间,薪水),其中外键为员 工号。 (5)部门信息(部门号,部门经理,部门名称,工作岗位名称),其中部门号为 主键,工作岗位名称为外键。4.3 确定关系模型的存取方法在将概念模型转换成物理模型之后,我们可以对物理模型进行设计,双击物理模型的关系,可以对该关系的名称、注释等信息进行查询。可对该关系的属性列进行设计,可分别设置其名称、码、数据类型以及主码、是否为空等。在实际设计中最常用的存取方法是索引发,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:在经常需要搜索的

13、列上建立索引;  在主关键字上建立索引;在经常用于连接的列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的等规则。才能充分利用索引的作用避免因索引引起的负面作用。4.4确定数据库的存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。(1) 创建数据库create database HR(2)创建员工信息表createtableStaff_Information(Snovarchar(10)primarykey,Snamevarc

14、har(20)notnull,Ssexvarchar(4)check(Ssexin('男','女'),Sbirthdayvarchar(20)notnull,Snationvarchar(20)notnull);(3)创建婚姻情况表createtableMarital_Status(Snovarchar(10),Mconditionvarchar(8)check(Mcondition='未婚'orMcondition='已婚'orMcondition='离异'orMcondition='再婚'),M

15、namevarchar(20),Mjobvarchar(20),Mcompanyvarchar(50),foreignkey (Sno)referencesStaff_Information(Sno);(4)创建学历信息表createtableEducation_Information(Snovarchar(10),Egraduationvarchar(50),Emajorvarchar(50),Etimevarchar(20),Eschoolvarchar(50),Efor_languagevarchar(20),foreignkey (Sno)referencesStaff_Informa

16、tion(Sno)(5)创建工作岗位信息表createtablePost(Snovarchar(10),Pnamevarchar(20)notnull,Pexperienceint,Psalaryint,foreignkey (Sno)referencesStaff_Information(Sno);(6)创建部门信息表createtableDepartment(Dnovarchar(10)primarykey,Dmanagervarchar(10)notnull,Dnamevarchar(20)notnull);五、 数据库实施(程序的调试,代码详见附件)5.1登陆界面5.2操作界面5.2添

17、加员工和部门5.2.1添加员工5.2.2员工和部门编号是自动生成5.2.3婚姻情况选择时会提示是否为必填信息5.2.4添加部门信息5.3根据员工号或者部门号查询信息5.3.1根据员工号搜索员工信息5.3.2根据员工号直接删除某个员工的信息5.3.3根据部门号搜索部门信息5.3.4根据部门号直接删除某个部门的信息六、 总结 经过三周的课程设计,我们不仅收获了知识,更锻炼了团队合作的能力。这是我们第一次分组合作完成一个项目。从选题到最后完成课程设计,我们三个配合特别默契。在第一节课确定题目,然后一起完成需求分析,需求分析是整个设计的基础,对于最耗时最困难的一步,我们选择一起完成,效率很高。然后分配

18、工作,在课后独自完成应该完成的那部分任务,各自做自己擅长的那部分。在这个过程中我们也协作着完成任务,三个人的节奏是一样的。在知识上我们更多的是学以致用。我们才学习了范式,在制表的时候,我们有尝试去把表做成最优范式。但是由于练习得太少,对于我们所做的表,也不肯定达到了最优范式。在理论上我们能理解,运用在实际中还是存在问题。我们的课程设计功能还不完整,有很多地方还需要完善,也有还存在问题的地方。附件(程序代码):5.1登陆界面PrivateSub Button1_Click(sender AsObject, e AsEventArgs) Handles Button1.ClickIf Trim(T

19、extBox3.Text) = Trim(con) ThenDim strconn AsString = "data source=localhost;initial catalog=hr; integrated security=true"Dim sqlcon AsNewSqlConnection(strconn)Dim strsql AsString = "select RTRIM(密码) from ad_load where 登录名='" & TextBox1.Text & "' "Dim ds

20、AsNewDataSetDim tb AsDataTableDim drcon AsDataRowCollectionDim drow AsDataRow sqlcon.Open()Dim adp AsNewSqlDataAdapter(strsql, sqlcon) sqlcon.Close() adp.Fill(ds, "mima") tb = ds.Tables("mima")If tb.Rows.Count = 0 Then MsgBox("你的密码或登录名错误!?")Else drcon = tb.Rows drow = d

21、rcon(0)If TextBox2.Text = drow(0) Then员工信息管理.Show()Me.Hide()Else MsgBox("密码或者登录名错误!")EndIfEndIfElse MsgBox("请输入正确的验证码")EndIf yzm() TextBox3.Text = ""EndSub5.2操作界面PublicClass员工信息管理PrivateSub Button1_Click(sender AsObject, e AsEventArgs) Handles Button1.ClickMe.Hide()添加.S

22、how()EndSubPrivateSub Button2_Click(sender AsObject, e AsEventArgs) Handles Button2.ClickMe.Hide()查看或更改.Show()EndSubPrivateSub Button3_Click(sender AsObject, e AsEventArgs) Handles Button3.ClickDim 登录 AsNew登录 登录.Show()Me.Close()EndSubEndClass5.2.1添加员工PrivateSub Button1_Click(sender AsObject, e AsEve

23、ntArgs) Handles Button1.ClickDim ds AsNewDataSetDim bc AsBindingManagerBaseDim RadioButton_checked AsString = ""Dim RadioButton_checked2 AsString = ""Dim strEI AsString = "insert into Education_Information(sno,egraduation,emajor,etime,eschool,efor_language)values('"

24、 & TextBox1.Text & "','" & TextBox5.Text & "','" & TextBox6.Text & "','" & MaskedTextBox2.Text & "','" & TextBox8.Text & "','" & TextBox9.Text & "')"

25、;Dim sqlcomEI AsNewSqlCommand(strEI, sqlcon)Dim strP AsString = "insert into Post(sno,pname,pexperience,psalary)values('" & TextBox1.Text & "','" & TextBox13.Text & "','" & MaskedTextBox3.Text & "','" & I

26、nt(Val(TextBox15.Text) & "')"Dim sqlcomP AsNewSqlCommand(strP, sqlcon)If Button1.Text = "确定"Then yanz()If a = 0 Then sqlcon.Open()If RadioButton5.Checked Then RadioButton_checked2 = "男"Else RadioButton_checked2 = "女"EndIfDim strST AsString = "inse

27、rt into Staff_Information(sno,sname,ssex,sbirthday,snation) values('" & TextBox1.Text & "','" & TextBox2.Text & "','" & RadioButton_checked2 & "','" & MaskedTextBox1.Text & "','" & Te

28、xtBox.Text & "')"Dim sqlcomST AsNewSqlCommand(strST, sqlcon) sqlcomST.ExecuteNonQuery() sqlcon.Close() sqlcon.Open() sqlcomEI.ExecuteNonQuery() sqlcon.Close() sqlcon.Open()If RadioButton1.Checked Then RadioButton_checked = "已婚"ElseIf RadioButton2.Checked Then RadioButton_

29、checked = "未婚"ElseIf RadioButton3.Checked Then RadioButton_checked = "再婚"ElseIf RadioButton4.Checked Then RadioButton_checked = "离异"EndIfDim strMS AsString = "insert into Marital_Status(sno,Mcondition,mname,mjob,mcompany)values('" & TextBox1.Text &

30、 "','" & RadioButton_checked & "','" & TextBox10.Text & "','" & TextBox11.Text & "','" & TextBox12.Text & "')"Dim sqlcomMS AsNewSqlCommand(strMS, sqlcon) sqlcomMS.ExecuteNonQuery() s

31、qlcon.Close() sqlcon.Open() sqlcomP.ExecuteNonQuery() sqlcon.Close() MsgBox("信息添加成功!") Button2.Enabled = True Button1.Text = "添加员工信息" Rload()Else MsgBox("信息尚未完善,可以点击*号获取帮助!") TX.Text = "请完善*号的" + a.ToString + "条信息" a = 0EndIfElse sqlcon.Close()Dim st

32、rS AsString = "select * from Staff_Information" sqlcon.Open()Dim adp AsNewSqlDataAdapter(strS, sqlcon) sqlcon.Close() adp.Fill(ds, "info") bc = Me.BindingContext(ds, "info")Dim a3 AsInteger a3 = ds.Tables("info").Rows.Count - 1If ds.Tables("info").Ro

33、ws.Count = 0 Then TextBox1.Text = "1"Else TextBox1.Text = ds.Tables("info").Rows(a3)(0) + 1EndIf TextBox2.Text = "" MaskedTextBox1.Text = "" : TextBox.Text = "" TextBox5.Text = "" : TextBox6.Text = "" MaskedTextBox2.Text = "&

34、quot; : TextBox8.Text = "" TextBox9.Text = "" : TextBox10.Text = "" TextBox11.Text = "" : TextBox12.Text = "" TextBox13.Text = "" : MaskedTextBox3.Text = "" TextBox15.Text = "" Button1.Text = "确定" Button2.Enabl

35、ed = False enabletextbox() disabletextbox2() TextBox1.Enabled = FalseEndIfEndSub5.2.4添加部门信息PrivateSub Button2_Click(sender AsObject, e AsEventArgs) Handles Button2.ClickDim strD AsString = "insert into Department(dno,dmanager,dname)values('" & TextBox16.Text & "','

36、" & TextBox17.Text & "','" & TextBox18.Text & "')"Dim sqlcomD AsNewSqlCommand(strD, sqlcon)If Button2.Text = "确定"Then yanz2()If a = 0 Then sqlcon.Open() sqlcomD.ExecuteNonQuery() sqlcon.Close() MsgBox("添加成功!") Button2.Text = &q

37、uot;添加部门信息" Button1.Enabled = True disabletextbox2() Rload1()Else MsgBox("信息尚未完善,可以点击*号获取帮助!") TX.Text = "请完善*号的" + a.ToString + "条信息" a = 0EndIfElse Rload1() jisuan() TextBox17.Text = "" : TextBox18.Text = "" disabletextbox() enabletextbox2() T

38、extBox16.Enabled = False Button1.Enabled = False Button2.Text = "确定"EndIfEndSub5.3.1根据员工号搜索员工信息PrivateSub Button1_Click(sender AsObject, e AsEventArgs) Handles Button1.Click clear()If ComboBox1.Text = "员工号"ThenDim bc AsBindingManagerBaseDim strsql AsString = "select * from S

39、taff_Information where sno='" & TextBox1.Text & "' "Dim ds AsNewDataSet sqlcon.Open()Dim adp AsNewSqlDataAdapter(strsql, sqlcon) sqlcon.Close() adp.Fill(ds, "info") bc = Me.BindingContext(ds, "info")If bc.Count > 0 Then TextBox2.Text = ds.Tables(

40、"info").Rows(0)(1)Dim sex1 AsString sex1 = ds.Tables("info").Rows(0)(2)If sex1 = "男"Then RadioButton5.Checked = TrueElse RadioButton6.Checked = TrueEndIf MaskedTextBox1.Text = ds.Tables("info").Rows(0)(3) TextBox.Text = ds.Tables("info").Rows(0)(4)Di

41、m strsql1 AsString = "select * from Education_Information where sno='" & TextBox1.Text & "' "Dim ds1 AsNewDataSet sqlcon.Open()Dim adp1 AsNewSqlDataAdapter(strsql1, sqlcon) sqlcon.Close() adp1.Fill(ds1, "info1") TextBox5.Text = ds1.Tables("info1&quo

42、t;).Rows(0)(1) TextBox6.Text = ds1.Tables("info1").Rows(0)(2) MaskedTextBox2.Text = ds1.Tables("info1").Rows(0)(3) TextBox8.Text = ds1.Tables("info1").Rows(0)(4) TextBox9.Text = ds1.Tables("info1").Rows(0)(5)Dim strsql2 AsString = "select * from Marital_S

43、tatus where sno='" & TextBox1.Text & "' "Dim ds2 AsNewDataSet sqlcon.Open()Dim adp2 AsNewSqlDataAdapter(strsql2, sqlcon) sqlcon.Close() adp2.Fill(ds2, "info")Dim sex2 AsString sex2 = ds2.Tables("info").Rows(0)(1)If sex2 = "已婚"Then RadioBut

44、ton1.Checked = TrueElseIf sex2 = "再婚"Then RadioButton3.Checked = TrueElseIf sex2 = "未婚"Then RadioButton2.Checked = TrueElseIf sex2 = "离异"Then RadioButton4.Checked = TrueEndIf TextBox10.Text = ds2.Tables("info").Rows(0)(2) TextBox11.Text = ds2.Tables("info

45、").Rows(0)(3) TextBox12.Text = ds2.Tables("info").Rows(0)(4)Dim strsql3 AsString = "select * from Post where sno='" & TextBox1.Text & "' "Dim ds3 AsNewDataSet sqlcon.Open()Dim adp3 AsNewSqlDataAdapter(strsql3, sqlcon) sqlcon.Close() adp3.Fill(ds3, &

46、quot;info1") TextBox13.Text = ds3.Tables("info1").Rows(0)(1) MaskedTextBox3.Text = ds3.Tables("info1").Rows(0)(2) TextBox15.Text = ds3.Tables("info1").Rows(0)(3) Button2.Enabled = True Button3.Enabled = True MsgBox("已找到该记录")Else MsgBox("你查找的数据不存在,!可能

47、已经删除")EndIfElseDim strsql4 AsString = "select * from Department where dno='" & TextBox1.Text & "' "Dim bc AsBindingManagerBaseDim ds4 AsNewDataSet sqlcon.Open()Dim adp4 AsNewSqlDataAdapter(strsql4, sqlcon) sqlcon.Close() adp4.Fill(ds4, "info1") bc =

48、 Me.BindingContext(ds4, "info1")If bc.Count > 0 Then TextBox17.Text = ds4.Tables("info1").Rows(0)(1) TextBox18.Text = ds4.Tables("info1").Rows(0)(2) Button2.Enabled = True Button3.Enabled = True MsgBox("已找到该记录")Else MsgBox("你查找的数据不存在,!可能已经删除")EndI

49、fEndIfEndSubPrivateSub Button2_Click(sender AsObject, e AsEventArgs) Handles Button2.ClickIf ComboBox1.Text = "员工号"ThenIf Button2.Text = "确定"Then sqlcon.Open()Dim RadioButton_checked2 AsString = ""If RadioButton5.Checked Then RadioButton_checked2 = "男"Else Rad

50、ioButton_checked2 = "女"EndIfDim strsql1 AsString = "update Staff_Information set sname='" & TextBox2.Text & "',ssex='" & RadioButton_checked2 & "',sbirthday='" & MaskedTextBox1.Text & "',snation='"

51、& TextBox.Text & "'where sno='" & TextBox1.Text & "' "Dim sqlcom1 AsNewSqlCommand(strsql1, sqlcon) sqlcom1.ExecuteNonQuery() sqlcon.Close() sqlcon.Open()Dim strsql2 AsString = "update Education_Information set egraduation='" & TextBox

52、5.Text & "',emajor='" & TextBox6.Text & "' ,etime='" & MaskedTextBox2.Text & "',eschool='" & TextBox8.Text & "',efor_language='" & TextBox9.Text & "'where sno='" & TextBox1.Text & "'"Dim sqlcom2 AsNewSqlCommand(strsql2, sqlcon) sqlcom2.ExecuteNonQuery() sqlcon.Close() sqlcon.Open()Dim RadioButton_checked AsString = ""If RadioButton1.Checked Then RadioButton_check

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论