




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库系统概论课程设计数学与计算机学院数据库系统概论课程设计设计名称: 人事管理系统数据库 2013-2014学年第2学期目录一、课题概述.2二、需求分析.22.1 系统功能要求设计.22.2 系统模块设计.2三、概念结构设计33.1系统流程图.33.2系统数据字典.53.2.1主要的数据流定义.53.2.2由实体画出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添加员工.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第2页共33页一、课题概述随着计算机的发展与普及,以及互联网技术的扩展,日常人事管理必将实现无纸化办公,并且加入到公司内部的Intranet或者是Internet上去,实现数据的共享,这样有利于人事信息在单位内部的查询,提高了数据资源的利用,并且能及时的得到更新,不需要象过去那样浪费大量的人力物力去进行抄写,提高了工作的效率。计算机技术、网络技术和信息技术的发展,使办公系统更趋于系统化、科学化和网络化。网络办公自动化系统是计算机技术和网络迅速发展的一个办公应用解决方案,它的主要目的是实现信息交流和信息共性,提供协同工作的手段,提高办公的效率,让人们从繁琐的有纸办公中解脱出来。二、需求分析2.1 系统功能要求设计 通过对现行人事管理系统的调查,明确了人事管理系统由档案管理、职务调动管理、管理组成。系统功能的主要描述如下:(1)员工档案管理 对公司里所有员工进行统一编号;将每一位员工的信息保存在员工档案记录中。(2)对新聘用的员工,将其信息加入到员工档案记录中;对于解聘的员工,将其信息从员工档案记录中删除。(3)当员工的信息发生变动时,修改员工档案记录中相应的属性。(4)员工职务调动管理对公司里所有员工的职务记录进行统一编号;登记员工调动前后的具体职务,以及调动时间。(5)部门管理对公司所有的部门进行编号,建立部门记录。2.2 系统模块设计(1) 员工基本信息表的添加、删除、修改、查询。(2) 员工婚姻情况表的添加、删除、修改、查询,反映员工的配偶信息。(3) 员工学历信息表的添加、删除、修改、查询反映员工的学历、专业、毕业时间、学校、外语情况等。(4) 企业工作岗位表的添加、删除、修改、查询。(5)企业部门信息表的添加、删除、修改、查询。三、概念结构设计3.1根据以上模块,可以得到系统流程图。用户登陆验证用户表选择操作成功不成功添加操作删除操作修改操作员工信息婚姻状况学历信息工作岗位部门信息验证录入数据库符合要求不符合要求用户登录用户验证员工信息婚姻状况学历信息工作岗位添加信息修改信息删除信息添加信息修改信息删除信息添加信息修改信息删除信息部门信息添加信息修改信息删除信息添加信息修改信息删除信息验证失败3.2系统数据字典数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。人事管理系统数据流程图中,数据信息和处理过程还需要通过数据字典来描述。在本文的数据字典中,主要对数据流图中的数据流、数据存储和处理过程进行说明。3.2.1,主要的数据流定义数据流名称:员工信息;定义:员工基本信息=员工号+姓名+出生年月+民族+性别。数据流量:根据公司的员工具体录用情况来确定。说明:要对每一位被聘用的新员工进行唯一编号。数据流名称:婚姻情况;定义:婚姻情况=已婚|未婚+配偶数据流量:根据公司员工的具体情况来确定。说明:员工婚姻情况确定一个调动情况。数据流名称:员工学历信息;定义:员工学历=员工号+学历+专业+毕业时间+学校+外语水平。数据流量:根据员工学历信息变动情况来确定。说明:更新员工学历信息。数据流名称:员工工作岗位信息;定义:员工工作岗位=员工编号+工作岗位名称+在职时间+薪水说明:每位员工职位情况数据流名称:部门信息;定义:部门信息=部门号+部门经理+部门名称+工作岗位名称说明:部门的详细信息3.2.2,由实体画出ER图由需求分析的结果可知,本系统设计的实体包括:(1)员工基本基本信息:员工号,姓名,性别,年龄,出生年月,民族。(2)婚姻状况:未婚,已婚,再婚,配偶名字,配偶工作,所属单位。(3)员工学历信息:员工号,学历,专业,毕业时间,学校,外语水平。(4)员工工作岗位信息:员工号,工作岗位名称,在职时间,薪水。(5)部门信息表:部门号,部门经理,部门名称,工作岗位名称。这些实体间的联系包括:每位学生可以学习多门课程,每门课程可供多位学生学习。由上述分析可得到系统的ER图:(1)实体属性图实体属性图:员工信息出生年月性别姓名员工号名族员工实体属性图:婚姻情况配偶工作配偶姓名婚姻情况配偶单位婚姻状况实体属性图:员工学历外语水平毕业学校毕业时间专业学历员工号员工学历实体属性图:工作岗位信息薪水在职时间员工号工作岗位工作岗位信息实体属性图:部门信息工作岗位名称部门名称部门经理部门号部门信息(2)实体联系图:(3)完整的实体-联系图四,数据库逻辑设计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)-配偶名字Mjobvarchar(20)-配偶工作Mcompanyvarchar(50)-所属单位表Education_InformationFieldTypeNullKeyCommentSnovarchar(10)-Foreign Key员工编号Egraduationvarchar(50)-学历Emajorvachar(50)-专业Etimevachar(20)-毕业时间Eschoolvarchar(50)-学校Efor_languagevarchar(20)-外语水平表PostFieldTypeNullKeyCommentSnovarchar(20)-Foreign Key员工号Pnamevarchar(20)NOT-工作岗位名称Pexperienceint-在职时间Psalaryint-薪水表DepartmentFieldTypeNullKeyCommentDnovarchar(10)-Primary Key部门号Dmanagervarchar(10)NOT-部门经理Dnamevarchar(20)NOT-部门名称4.2由系统ER图转化而得到的关系模式如下:(1) 员工基本信息(员工号,姓名,性别,出生年月,民族),其主关键字为员 工号;(2) 婚姻状况(员工号,未婚,已婚,再婚,配偶名字,配偶工作,所属单位), 其中未婚,已婚,再婚做check约束,员工号为外键;(3) 学历信息(员工号,学历,专业,毕业时间,学校,外语水平),其中外键 为员工号。(4) 工作岗位信息(员工号,工作岗位名称,在职时间,薪水),其中外键为员 工号。 (5)部门信息(部门号,部门经理,部门名称,工作岗位名称),其中部门号为 主键,工作岗位名称为外键。4.3 确定关系模型的存取方法在将概念模型转换成物理模型之后,我们可以对物理模型进行设计,双击物理模型的关系,可以对该关系的名称、注释等信息进行查询。可对该关系的属性列进行设计,可分别设置其名称、码、数据类型以及主码、是否为空等。在实际设计中最常用的存取方法是索引发,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:在经常需要搜索的列上建立索引; 在主关键字上建立索引;在经常用于连接的列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的等规则。才能充分利用索引的作用避免因索引引起的负面作用。4.4确定数据库的存储结构 确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。(1) 创建数据库create database HR(2)创建员工信息表 create table Staff_Information (Sno varchar(10) primary key, Sname varchar(20) not null, Ssex varchar(4) check(Ssex in (男,女), Sbirthday varchar(20) not null, Snation varchar(20) not null);(3)创建婚姻情况表 create table Marital_Status ( Sno varchar(10), Mcondition varchar(8) check( Mcondition =未婚 or Mcondition =已婚 or Mcondition =离异 or Mcondition =再婚 ), Mname varchar(20) , Mjob varchar(20) , Mcompany varchar(50), foreign key (Sno) references Staff_Information(Sno); (4)创建学历信息表 create table Education_Information ( Sno varchar(10), Egraduation varchar(50), Emajor varchar(50) , Etime varchar(20) , Eschool varchar(50) , Efor_language varchar(20) , foreign key (Sno) references Staff_Information(Sno)(5)创建工作岗位信息表 create table Post ( Sno varchar(10), Pname varchar(20) not null, Pexperience int , Psalary int , foreign key (Sno) references Staff_Information(Sno); (6)创建部门信息表 create table Department ( Dno varchar(10) primary key, Dmanager varchar(10) not null, Dname varchar(20) not null);五、 数据库实施(程序的调试,代码详见附件) 5.1登陆界面 5.2操作界面5.2添加员工和部门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根据部门号直接删除某个部门的信息六、 总结 经过三周的课程设计,我们不仅收获了知识,更锻炼了团队合作的能力。这是我们第一次分组合作完成一个项目。从选题到最后完成课程设计,我们三个配合特别默契。在第一节课确定题目,然后一起完成需求分析,需求分析是整个设计的基础,对于最耗时最困难的一步,我们选择一起完成,效率很高。然后分配工作,在课后独自完成应该完成的那部分任务,各自做自己擅长的那部分。在这个过程中我们也协作着完成任务,三个人的节奏是一样的。在知识上我们更多的是学以致用。我们才学习了范式,在制表的时候,我们有尝试去把表做成最优范式。但是由于练习得太少,对于我们所做的表,也不肯定达到了最优范式。在理论上我们能理解,运用在实际中还是存在问题。我们的课程设计功能还不完整,有很多地方还需要完善,也有还存在问题的地方。附件(程序代码):5.1登陆界面 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If Trim(TextBox3.Text) = Trim(con) Then Dim strconn As String = data source=localhost;initial catalog=hr; integrated security=true Dim sqlcon As New SqlConnection(strconn) Dim strsql As String = select RTRIM(密码) from ad_load where 登录名= & TextBox1.Text & Dim ds As New DataSet Dim tb As DataTable Dim drcon As DataRowCollection Dim drow As DataRow sqlcon.Open() Dim adp As New SqlDataAdapter(strsql, sqlcon) sqlcon.Close() adp.Fill(ds, mima) tb = ds.Tables(mima) If tb.Rows.Count = 0 Then MsgBox(你的密码或登录名错误!?) Else drcon = tb.Rows drow = drcon(0) If TextBox2.Text = drow(0) Then 员工信息管理.Show() Me.Hide() Else MsgBox(密码或者登录名错误!) End If End If Else MsgBox(请输入正确的验证码) End If yzm() TextBox3.Text = End Sub5.2操作界面Public Class 员工信息管理 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Me.Hide() 添加.Show() End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Me.Hide() 查看或更改.Show() End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click Dim 登录 As New 登录 登录.Show() Me.Close() End SubEnd Class5.2.1添加员工 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim ds As New DataSet Dim bc As BindingManagerBase Dim RadioButton_checked As String = Dim RadioButton_checked2 As String = Dim strEI As String = insert into Education_Information(sno,egraduation,emajor,etime,eschool,efor_language)values( & TextBox1.Text & , & TextBox5.Text & , & TextBox6.Text & , & MaskedTextBox2.Text & , & TextBox8.Text & , & TextBox9.Text & ) Dim sqlcomEI As New SqlCommand(strEI, sqlcon) Dim strP As String = insert into Post(sno,pname,pexperience,psalary)values( & TextBox1.Text & , & TextBox13.Text & , & MaskedTextBox3.Text & , & Int(Val(TextBox15.Text) & ) Dim sqlcomP As New SqlCommand(strP, sqlcon) If Button1.Text = 确定 Then yanz() If a = 0 Then sqlcon.Open() If RadioButton5.Checked Then RadioButton_checked2 = 男 Else RadioButton_checked2 = 女 End If Dim strST As String = insert into Staff_Information(sno,sname,ssex,sbirthday,snation) values( & TextBox1.Text & , & TextBox2.Text & , & RadioButton_checked2 & , & MaskedTextBox1.Text & , & TextBox.Text & ) Dim sqlcomST As New SqlCommand(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_checked = 未婚 ElseIf RadioButton3.Checked Then RadioButton_checked = 再婚 ElseIf RadioButton4.Checked Then RadioButton_checked = 离异 End If Dim strMS As String = insert into Marital_Status(sno,Mcondition,mname,mjob,mcompany)values( & TextBox1.Text & , & RadioButton_checked & , & TextBox10.Text & , & TextBox11.Text & , & TextBox12.Text & ) Dim sqlcomMS As New SqlCommand(strMS, sqlcon) sqlcomMS.ExecuteNonQuery() sqlcon.Close() sqlcon.Open() sqlcomP.ExecuteNonQuery() sqlcon.Close() MsgBox(信息添加成功!) Button2.Enabled = True Button1.Text = 添加员工信息 Rload() Else MsgBox(信息尚未完善,可以点击*号获取帮助!) TX.Text = 请完善*号的 + a.ToString + 条信息 a = 0 End If Else sqlcon.Close() Dim strS As String = select * from Staff_Information sqlcon.Open() Dim adp As New SqlDataAdapter(strS, sqlcon) sqlcon.Close() adp.Fill(ds, info) bc = Me.BindingContext(ds, info) Dim a3 As Integer a3 = ds.Tables(info).Rows.Count - 1 If ds.Tables(info).Rows.Count = 0 Then TextBox1.Text = 1 Else TextBox1.Text = ds.Tables(info).Rows(a3)(0) + 1 End If TextBox2.Text = MaskedTextBox1.Text = : TextBox.Text = TextBox5.Text = : TextBox6.Text = MaskedTextBox2.Text = : TextBox8.Text = TextBox9.Text = : TextBox10.Text = TextBox11.Text = : TextBox12.Text = TextBox13.Text = : MaskedTextBox3.Text = TextBox15.Text = Button1.Text = 确定 Button2.Enabled = False enabletextbox() disabletextbox2() TextBox1.Enabled = False End If End Sub5.2.4添加部门信息 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Dim strD As String = insert into Department(dno,dmanager,dname)values( & TextBox16.Text & , & TextBox17.Text & , & TextBox18.Text & ) Dim sqlcomD As New SqlCommand(strD, sqlcon) If Button2.Text = 确定 Then yanz2() If a = 0 Then sqlcon.Open() sqlcomD.ExecuteNonQuery() sqlcon.Close() MsgBox(添加成功!) Button2.Text = 添加部门信息 Button1.Enabled = True disabletextbox2() Rload1() Else MsgBox(信息尚未完善,可以点击*号获取帮助!) TX.Text = 请完善*号的 + a.ToString + 条信息 a = 0 End If Else Rload1() jisuan() TextBox17.Text = : TextBox18.Text = disabletextbox() enabletextbox2() TextBox16.Enabled = False Button1.Enabled = False Button2.Text = 确定 End If End Sub5.3.1根据员工号搜索员工信息 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click clear() If ComboBox1.Text = 员工号 Then Dim bc As BindingManagerBase Dim strsql As String = select * from Staff_Information where sno= & TextBox1.Text & Dim ds As New DataSet sqlcon.Open() Dim adp As New SqlDataAdapter(strsql, sqlcon) sqlcon.Close() adp.Fill(ds, info) bc = Me.BindingContext(ds, info) If bc.Count 0 Then TextBox2.Text = ds.Tables(info).Rows(0)(1) Dim sex1 As String sex1 = ds.Tables(info).Rows(0)(2) If sex1 = 男 Then RadioButton5.Checked = True Else RadioButton6.Checked = True End If MaskedTextBox1.Text = ds.Tables(info).Rows(0)(3) TextBox.Text = ds.Tables(info).Rows(0)(4) Dim strsql1 As String = select * from Education_Information where sno= & TextBox1.Text & Dim ds1 As New DataSet sqlcon.Open() Dim adp1 As New SqlDataAdapter(strsql1, sqlcon) sqlcon.Close() adp1.Fill(ds1, info1) TextBox5.Text = ds1.Tables(info1).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 As String = select * from Marital_Status where sno= & TextBox1.Text & Dim ds2 As New DataSet sqlcon.Open() Dim adp2 As New SqlDataAdapter(strsql2, sqlcon) sqlcon.Close() adp2.Fill(ds2, info) Dim sex2 As String sex2 = ds2.Tables(info).Rows(0)(1) If sex2 = 已婚 Then RadioButton1.Checked = True ElseIf sex2 = 再婚 Then RadioButton3.Checked = True ElseIf sex2 = 未婚 Then RadioButton2.Checked = True ElseIf sex2 = 离异 Then RadioButton4.Checked = True End If TextBox10.Text = ds2.Tables(info).Rows(0)(2) TextBox11.Text = ds2.Tables(info).Rows(0)(3) TextBox12.Text = ds2.Tables(info).Rows(0)(4) Dim strsql3 As String = select * from Post where sno= & TextBox1.Text & Dim ds3 As New DataSet sqlcon.Open() Dim adp3 As New SqlDataAdapter(strsql3, sqlcon) sqlcon.Close() adp3.Fill(ds3, 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(你查找的数据不存在,!可能已经删除) End If Else Dim strsql4 As String = select * from Department where dno= & TextBox1.Text & Dim bc As BindingManagerBase Dim ds4 As New DataSet s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 读我要做个好孩子有感350字13篇
- 老师谢谢您250字10篇
- 纪念白求恩余映潮课件
- 小说人物塑造手法探究教学教案
- 2025年审计师考试审计职业道德与法律责任试卷
- 2025年期货从业资格考试衍生品市场与交易试卷
- 公司股权转让详细协议签署事项
- 清丰县期中卷子数学试卷
- 全国一卷江西数学试卷
- 内蒙古三模数学试卷
- 学堂在线 积极心理学(上)厚德载物篇 章节测试答案
- 地面工程基础知识概要课件
- 胖东来运营经理培训课件
- 村两委内部管理制度
- 供电公司信访管理制度
- 木工入场安全教育试卷(含答案)
- 工业管道的定期检查与维护措施
- 林业发展“十五五”发展规划
- 工厂厂规厂纪管理制度
- 2025全球翻译行业发展报告
- T/CCS 025-2023煤矿防爆锂电池车辆动力电源充电安全技术要求
评论
0/150
提交评论