资源描述
课程设计报告
( 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,SQL Server 2005/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图
管理员
1
1
工龄
1
出生日期
管理
管理
管理
基本工资
员工号
部门号
津贴·
n
n
部门名
性别
n
三金扣款
1
n
属于
电话
工资
部门
职员
姓名
应发工资
手机号码
查询
1 n
实发工资
部门号
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(object sender, EventArgs e)
{
if (textBox1.Text.Trim() == ”qq” && textBox2。Text.Trim() == "123456”)
{
//作为管理员登录
MessageBox.Show(”用户权限为管理员权限","提示");
this.Hide();
Form1 form1 = 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)一般用户查询
依照职工号进行工资查询,代码如下
展开阅读全文