数据库实验报告工资管理.docx
《数据库实验报告工资管理.docx》由会员分享,可在线阅读,更多相关《数据库实验报告工资管理.docx(20页珍藏版)》请在冰豆网上搜索。
数据库实验报告工资管理
课程设计报告
(2014--2015年度第2学期)
名称:
数据库原理课程设计
题目:
工资管理信息系统
院系:
计算机系
班级:
学号:
学生姓名:
指导教师:
设计周数:
1
成绩:
日期:
2015年7月10日
《数据库原理课程设计》课程设计
任务书
一、目的与要求
1.本实验是为计算机系学生在学习数据库原理后,为培养更好的解决问题和实际动手能力而设置的实践环节。
通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。
为后继课程和毕业设计打下良好基础。
2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。
3.通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界面设计和软件调试等各方面的能力。
是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。
二、主要内容
针对一个具有实际应用场景的中小型系统(见题目附录)进行数据库设计,重点分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。
大致分为如下步骤:
1.理解系统的数据库需求,分析实体及实体间联系,画出E-R图:
1.分析确定实体的属性和码,完成对该实体的实体完整性、用户自定义完整性的定义。
2.设计实体之间的联系,包括联系类型和联系的属性。
最后画出完整的E-R图。
2.根据设计好的E-R图及关系数据库理论知识设计数据库模式:
1)把E-R图转换为逻辑模式;
2)规范化设计。
使用关系范式理论证明所设计的关系至少属于3NF并写出证明过程;如果不属于3NF则进行模式分解,直到该关系满足3NF为止,要求写出分解过程。
3)设计关系模式间的参照完整性,要求实现级联删除和级联更新。
4)用SQL语言完成数据库内模式的设计。
3.数据库权限的设计:
1)根据系统分析,完成授权操作;
2)了解学习收回权限的操作。
4.完成用户界面的设计,对重要数据进行加密。
5.连接数据库,用宿主语言实现系统所需的各种操作:
1)实现数据记录的录入、删除、查询和修改。
2)以视图的形式完成复杂查询,比如多表、多条件等。
三、进度计划
序号
设计(实验)内容
完成时间
备注
1
根据任务书完成信息模型(概念模型、逻辑模型、完整性、规范化)的设计,并基于选用的DBMS实现该信息模型,然后录入初始数据
周一
2
根据任务书完成各种数据定义和数据操作,并保留所有SQL语句。
周二
3
数据库权限设计,用户界面设计
周三
4
用可视化开发工具环境开发学生选定的信息系统(C/S或者B/S模式)
周四
5
系统的完善与验收
周五
四、设计(实验)成果要求
1.在DBMS(如oracle,SQLServer2005/2008,DB2等)上完成完整的数据库的设计;
2.使用可视化开发平台完成信息系统,要求可以正确运行;
3.完成实验报告。
五、考核方式
1.在微机上检查数据库模式的设计、三大完整性的设计、关系属于几范式等;
2.在微机上检查系统的运行结果,要求学生阐述使用的相关技术;
3.实验报告的检查。
六、题目附录
1.学生信息管理信息系统
2.图书管理信息系统
3.物资管理信息系统
4.汽车销售管理信息系统
5.超市管理信息系统
6.通讯录管理信息系统
7.工资管理信息系统
8.酒店管理信息系统
9.小区物业管理信息系统
学生姓名:
任清清
指导教师:
2015年7月10日
一、课程设计的目的与要求
1.本实验是为计算机科学与技术等专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力而设置的实践环节。
通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。
为后继课程和毕业设计打下良好基础。
2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。
3.通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界面设计和软件调试等各方面的能力。
是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。
二、设计正文
1.E-R图设计
1.1分析确定实体的属性和码,定义该实体的实体完整性、用户自定义完整性
描述
属性
事件
职员表
✧员工号
✧姓名
✧出生日期
✧手机号码
✧工龄
✧部门号
✧备注
✧修改职员表信息
✧查询职员表信息
✧添加职员表信息
✧删除职员表信息
部门表
✧部门名
✧部门号
✧电话
✧修改部门表信息
✧查询部门表信息
✧添加部门表信息
✧删除部门表信息
工资表
✧员工号
✧基本工资
✧津贴
✧三金扣款
✧应发工资
✧实发工资
✧修改工资表信息
✧查询工资表信息
✧添加工资表信息
✧删除工资表信息
管理员
✧登录名
✧密码
✧增删改查三个表的信息
✧查询所有表的信息
✧按姓名,员工号,部门号删除表
一般用户
✧登录名
✧密码
✧按员工号查询工资表信息
1.2设计实体之间的联系,包括联系类型和联系的属性
一个职员对应一个工资记录,一个工资记录对应一个职员。
一个部门有多个职员,一个职员制属于一个部门。
通过设置管理员和一般用户不同权限使管理员对职员表、工资表、部门表信息具有增删改查的权限,一般用户可以查询工资情况。
1.3
完整E-R图
n
1n
1.4系统结构图
2.数据库模式设计
2.1把E-R图转换为逻辑模式
职员(员工号,姓名,性别,出生日期,手机号码,工龄,部门号,备注)
管理员(管理员名,管理员密码)
工资(员工号,基本工资,津贴,三金扣款,应发工资,实发工资)
部门(部门号,部门名,电话)
(说明:
以上关系中,下划线部分为对应关系的主码,加黑部分为外码,且所有属性均非空)
2.2规范化设计
关系名
依赖关系
证明
工资关系
员工号->基本工资
基本工资,津贴->应发工资
基本工资,津贴,三金扣款->实发工资
不存在传递函数依赖,也不存在不完全函数依赖,属于3NF。
部门关系
部门号->部门名
部门号->电话
从关系的函数依赖集可以看出,关系中不存在传递函数依赖,也不存在不完全函数依赖,因此属于3NF。
管理员关系
管理员名->管理员密码
从以上函数依赖集可以看出,该关系不含传递函数依赖,也不含不完全函数依赖,属于3NF。
职员关系
职工号->性别,姓名
职工号->出生日期,工龄
职工号->手机号码,备注
职工号->部门号
从以上函数依赖集可以看出,该关系不含传递函数依赖,也不含不完全函数依赖,属于3NF。
2.3设计关系模式间的参照完整性
2.4用SQL语言完成数据库内模式的设计
(1)职员表
CREATETABLE职员表
(
员工号char(3)primarykey,
姓名char(8)notnull,
性别char
(2)notnull,
出生日期smalldatetime(4),
手机号码char(11),
工龄tinyint
(1),
部门号char
(2),
备注text(16),
foreignkey(部门号)references部门表(部门号)
);
(2)部门表
CREATETABLE部门表
(
部门号char
(2)primarykey,
部门名char(10)notnull,
电话char(4),
);
(3)工资表
CREATETABLE工资表
(
员工号char(3)primarykey,
基本工资decimal(7,2),
津贴decimal(5,2),
三金扣款decimal(6,2),
应发工资decimal(7,2),
实发工资decimal(7,2),
foreignkey(员工号)references职员表(员工号)
);
2.5建表结果
(1)职员表表
(2)部门表
(3)工资表
3.数据库权限设计
创建
查找
修改
删除
管理员
一般用户
4.用户界面设计
4.1登录主界面
4.2管理员主界面
4.3管理员操作界面
(1)查询
(2)添加
(3)修改
(4)删除
4.4一般用户操作界面
(1)登录
privatevoid登陆_Click(objectsender,EventArgse)
{
if(textBox1.Text.Trim()=="qq"&&textBox2.Text.Trim()=="123456")
{
//作为管理员登录
MessageBox.Show("用户权限为管理员权限","提示");
this.Hide();
Form1form1=newForm1();
form1.Show();
}
elseif(textBox1.Text.Trim()=="ls"&&textBox2.Text.Trim()=="567890")
{
//作为一般用户登录
MessageBox.Show("用户登录权限为一般用户","提示");
this.Hide();
用户查询窗口用户查询=new用户查询窗口();
用户查询.Show();
}
else
{
MessageBox.Show("用户或密码错误");
}
}
(2)管理员添加
以添加部门表的实现为例,涉及数据库的连接以及添加的SQL语句代码如下:
(3)管理员删除
三、课程设计总结或结论
通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据表的创建,学会了不少有关数据库开发过程中的知识。
同时增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,约束项的设置,使逻辑更严密。
在实验过程中,遇到的问题很多,比如插入操作在前台页面获取的值为空,数据库拒绝了此插入操作,我的解决方法是将所有表的所有属性都改成了不能为空,避免了数据在页面和数据库之前传输操作时的错误.
在整个过程中,我上网和从书中查了不少资料,学以致用,自我创新,从学到用,从用又到学,不断修改,完善系统。
虽然不能达到老师要求那样的约束完善的工资管理系统。
但在这短短的一周,也实现了较为完善的基本功能,体会到加强理论学习对完善系统会有很多帮助。
另外,在发现问题、分析问题和解决问题的过程中,学到了很多东西,对这次做的课程设计自己觉得比较满意。
四、参考文献
[1]王珊,萨师煊.《数据库系统概论》第五版高等教育出版社.
[2]宋雨.《软件工程》清华大学出版社
[3]软件开发技术联盟 《Java开发实战》清华大学出版社
[3]袁和金《数据结构》第二版中国电力出版社
五、附录(设计流程图、程序、表格、数据等)
5.1数据库表格及数据
(1)职员表
(2)部门表
(3)工资表
以删除的实现为例,涉及SQL语句的C#代码如下:
(4)管理员查询
(5)管理员修改
以修改职员表的实现为例,涉及SQL语句的C#代码如下:
(6)一般用户查询
依照职工号进行工资查询,代码如下