SQLSERVER实训报告范文Word文档下载推荐.docx
- 文档编号:4511678
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:21
- 大小:251.31KB
SQLSERVER实训报告范文Word文档下载推荐.docx
《SQLSERVER实训报告范文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《SQLSERVER实训报告范文Word文档下载推荐.docx(21页珍藏版)》请在冰点文库上搜索。
于是乎根据企业的需求,策化企业人事管理系统,以援救企业抵达人事管理办公主动化。
此次的企业人事管理系统是采用SqlServer2008作为开发数据库的工具,企业人事管理系统的具体功能可以根据用户的需要来分配,但主要还是包括企业人事的信息添加,删除,修改,查找,同时也包括权限的分配,职务的调动等。
在企业人事管理系统中,用户能够方便的企业人事进行信息的检索与处理。
1.2开发工具介绍
SQLServer2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQLServer版本。
对于现在非常流行的业务连续性领域,SQLServer2008的数据库镜像功能也得到了加强,转换的操作速度更快,而且创建和驱动也都更容易了。
当然,数据库镜像的实现要求日志文件在两个服务器之间能够顺利流动交换,所以新的日志流压缩功能非常有用,能够加速数据库镜像的执行速度。
SQLServer2008出现在微软数据平台愿景上是因为它使得公司可以运行他们最关键任务的应用程序,同时降低了管理数据基础设施和发送观察与信息给所有用户的成本。
这个平台有以下特点:
·
可信任的——使得公司可以以很高的安全性、可靠性和可扩展性来运行他们最关键任务的应用程序。
高效的——使得公司可以降低开发和管理他们的数据基础设施的时间和成本。
智能的——提供了一个全面的平台,可以在你的用户需要的时候给他发送观察和信息。
二、数据库需求分析及建模
2.1需求分析
图2-1系统功能结构图
企业员工资料管理系统主要需要实现对企业各部门和全部员工的资料管理。
具体要实现的功能包括:
(1)系统用户管理功能。
在本系统中有两种用户:
一种是普通用户,这种用户根据用户名和密码进入系统后,可查询所有员工的资料信息,但是只能修改自身的密码;
另一种是管理员用户,这种这种用户根据用户名和密码进入系统后,可查询所有员工的资料信息,同时可以添加、修改和删除员工资料,还能添加、修改和删除普通用户和管理员用户的用户名和密码。
(2)员工资料管理功能。
录入企业员工的编号、姓名、性别所属部门、职务等信息,同时支持对企业员工资料的添加、修改和删除功能。
(3)职务/部门变动信息管理功能。
录入企业员工的职务/部门变动信息,包括曾任职务/部门,现任职务/部门、变动时间、变动原因等,同时支持对企业员工职务变动信息的添加、修改和删除功能。
(4)员工工资资料管理功能。
录入企业员工的工资资料,同时支持对企业员工工资资料的添加、修改和删除功能。
2.2概念设计
根据系统需求分析的结果,本系统中包含以下实体信息。
员工实体包括用户名和密码;
企业人事实体包括员工编号、姓名、照片、。
。
以下是各个实体的E-R图。
(1)用户实体的E-R图,如图2-2所示:
图2-2用户信息E-R图
(2)员工实体的E-R图,如图2-3所示:
图2-3员工信息E-R图
(3)变动实体的E-R图,如图2-4所示:
图2-4变动信息E-R图
(4)部门实体E-R图,如图2-5所示:
图2-5部门信息E-R图
(5)部门实体E-R图,如图2-6所示:
图2-6工资信息E-R图
(6)
完整信息E-R图,如图2-7所示:
M
1
MN
M1
1MM
图2-7系统信息E-R图
2.3逻辑设计
E-R图中的每个矩形框都要转换成一张表格,比如企业人事是一张表格,它包含的属性就是画E-R图时给出的椭圆形的部分。
对于菱形框,分三种情况:
1:
1的菱形框不用转换成表格,只要把任意一边的主键加到另一边的表格中。
n的菱形框也不用转换成表格,只要把1所在的表格的主键加到n所在的表格中。
N:
m的菱形框需要转换成表格,这个表格包含的属性是两边的表格的主键。
按照这个规则,把e-r图转换成表格,用关系模式表述。
以下是实例,不完整。
(1)实体“员工”与“部门”之间存在M对1的关系,转化为关系模式如下:
部门关系模式(编号,部门名称)
职务关系模式(编号,职务名称)
(2)实体“员工”与“企业人事”之间存在N对M的关系,转化为关系模式如下:
员工关系模式(编号,密码)
企业人事关系模式(员工编号,姓名,照片,性别,出生日期,民族,政治面貌,籍贯,身份证号,员工ID,家庭电话,居住地址,邮政编码,工作日期,所在部门编号,职务,备注,填表时间)
(3)实体“员工”与“工资”之间存在M对1的关系,转化为关系模式如下:
员工关系模式(员工编号,密码)
工资关系模式(员工编号,基本工资,奖金
2.4物理模型设计
(1)Users表,如表2-1所示:
表2-1员工表
表中列名
数据类型
可否为空
说明
用户名
CHAR
NOTNULL(主键)
用户的编号
密码
NOTNULL
用户的登录密码
(2)企业人事表,如表2-2所示:
表2-2企业人事表
员工编号
INT
员工的个人编号
姓名
VARCHAR
NOTNULLunique
员工的姓名
照片
员工的照片
家庭住址
NULL
员工的家庭住址
2.5关系图
建立完表格,以及表格的外键后,在SQL中,把表格的关系图截取进来。
三、数据库及库中各种对象的实现
3.1创建和配置数据库
usemaster
go
createdatabasedbon/*使用createdatabase创建名称为db的数据库*/
(name=db_data,filename='
F:
\Rita\db.mdf'
size=10,filegrowth=5)
logon
(name=db_log,filename='
\Rita\db.ldf'
size=5MB,filegrowth=1MB)/**/
3.2创建数据表
(1)员工表
Createtable员工表
(用户名char(50)primarykey,
密码char(50)notnull
)
员工表运行截图如图3-1所示:
图3-1员工表运行截图
3.3查询
(1)查询VC部门和VS部门的名称以及部门编号
usedb
selectdepart_name,depart_id
fromdeparts
wheredepart_namein('
VC部门'
'
VS部门'
)
查询结果如图3-2所示:
图3-2查询VC部门和VS部门的名称以及部门编号
(2)查询员工的基本工资,小于等于5000,则显示“工资较低”;
小于等于7000,则显示“工资适中”;
否则,则显示“工资较高”
usedb
selectstaff_id,base_sal=
case
whenbase_sal<
=5000then'
工资较低'
=7000then'
工资适中'
else'
工资较高'
end
fromsalary
查询结果如图3-3所示:
图3-3查询员工的基本工资
(3)用betweenand查询出生日期在1980-01-01和1990-01-01之间的员工姓名
selectstaff_name,birthfromstaff
wherebirthbetween'
1980-01-01'
and'
1990-01-01'
查询结果如图3-4所示:
图3-4查询员工姓名
(4)查询所有员工的编号、电话,查询所有员工的编号、工资,合并两次查询的结果集
selectstaff_id,depart_idfromstaff
union
selectstaff_id,base_salfromsalary
查询结果如图3-5所示:
图3-5。
(5)查询姓林的读者姓名及员工号
selectstaff_name,staff_idfromstaffwherestaff_namelike'
林%'
查询结果如图3-6所示:
图3-6。
(6)将查询结果生成新表
selectusername,pwdintonewusersfromusers
selectstaff_id,staff_name,sexintonewstafffromstaff
selectchange_id,staff_id,now_string,pre_stringintonewchangefromchange
selectdepart_id,depart_nameintonewdepartsfromdeparts
selectstaff_id,base_salintonewsalaryfromsalary
(7)查询所有男员工的姓名及电话
selectstaff_name,phonefromstaffwheresex='
男'
查询结果如图3-7所示:
图3-7。
3.4存储过程和函数的实现
(1)利用if…else语句查看工资表中员工的平均工资,并且判断平均工资是偏高还是偏低。
认为平均工资大于是偏高,这时显示最高工资;
否则再判断是否小于,若是显示偏低,这是显示最低工资;
否则显示中等。
CreateprocedureAVG_SALARY
AS
declare@pjgzmoney
selectavg(base_sal)平均工资fromsalary
set@pjgz=(selectavg(base_sal)平均工资fromsalary)
if@pjgz>
7000
print('
最高工资'
else
if(@pjgz<
4000)
print('
中等'
else
最低工资'
查询结果如图3-8所示:
图3-8存储过程AVG_SALARY运行截图
(2)使用declare语句定义一个名为@chazhao的局部变量,在db数据库中的staff表中检索所有姓"
刘"
的职员信息
declare@chazhaovarchar(30)
set@chazhao='
刘%'
select*fromstaffwherestaff_namelike@chazhao
查询结果如图3-9所示:
图3-9。
(3)创建一个名为sex的局部变量,用于保存学生的性别值,根据变量值查找学生表中给定女同学的学号、姓名和性别值
declare@sexchar
(2)
set@sex='
女'
selectstaff_name,staff_id,sexfromstaff
wheresexlike@sex
查询结果如图3-10所示:
图3-10。
(4)在declare语句中创建两个变量@xb和@sr,并利用这两个变量在staff表中查询性别是“男”并且出生日期在“-01-01”之后的职员的信息
declare@xbchar
(2),@srvarchar(20)
set@xb='
set@sr='
01/01/80'
select*fromstaffwheresex=@xbandbirth>
=@sr
查询结果如图3-11所示:
图3-11。
(5)创建存储过程staffdb
createprocedurestaffdb
as
begin
select*fromstaffwherestaff_name='
武艺'
End
查询结果如图3-12所示:
图3-12。
进行调用
execstaffdb
3.5触发器的实现
(1)创建触发器
createtriggeraa
onchange
forinsert
select*fromchange
(2)工资必须在2000到10000之间
createtriggerb
onsalary
forinsert,update
declare@salarymoney
select@salary=base_salfrominserted
if@salary<
2000or@salary>
10000
begin
rollback
raiserror('
工资必须在到之间'
16,1)
End
3.6视图
(1)创建视图viewstaff,只显示员工表中的员工编号、员工姓名、性别
createviewviewstaff
selectstaff_id,staff_name,sexfromstaff
运行结果图贴图
(2)通过视图viewstaff向数据库中插入记录
insertintoviewstaff(staff_id,staff_name,sex)values('
007'
陈学东'
008'
杨幂'
009'
柯震东'
(3)通过视图viewstaff更新一条员工记录,将员工编号为的员工的姓名改为"
陈学冬"
updateviewstaffsetstaff_name='
陈学冬'
wherestaff_id='
查询结果如图3-13所示:
图3-13。
3.7索引
(1)在departs表的depart_id字段上创建升序的聚集索引pk_departs,在departs表的depart_name字段上创建降序的唯一非聚集索引ix_departs
createclusteredindexpk_departs
ondeparts(depart_idasc)
createuniquenonclusteredindexix_departs
ondeparts(depart_namedesc)
(2)在departs表中禁用索引ix_departs
alterindexix_departs
ondepartsdisable
(3)在departs表中重新生成索引ix_departs
ondepartsrebuild
(4)在departs表中重新组织索引ix_departs
ondepartsreorganize
(5)修改departs表的索引ix_departs不自动重新计算过时的统计信息
ondeparts
set(statistics_norecompute=on)
(6)使用dropindex,从departs表上删除索引pk_departs
dropindexpk_departs
3.8数据库的用户与权限管理
(1)在SQLServer服务器级别,创建登陆帐户(createlogin)
createlogindbawithpassword='
sqlstudy'
default_database=db
(2)创建数据库用户(createuser):
createuserdbaforlogindbawithdefault_schema=dbo
(3)通过加入数据库角色,赋予数据库用户“dba”权限:
execsp_addrolemember'
db_owner'
'
dba'
4、遇到的主要问题及解决方法
在实训过程中,有些语法不会,不知道如何用T-SQL语句插入数据,写检查和约束用户输入的信息,自己及时查书了解以及向室友请教;
对于企业人事管理相关知识不是很了解,去图书馆查书以及上网了解相关企业人事管理的知识;
建查询语句时,不断出现错误,通过不断的调试、修改,才取得一丁点成果。
当我回顾这过去的几天时,我发现自己收获了很多,也成长了很多,懂得了如何去学习以前未曾学过的新思维新方法,懂得了如何去多方位地查找资料,完善和创新一些旧的思维方式,懂得了如何同老师和同学交流和协作……相信这次课程设计的体验将成为今后我们更多更广学习中的奠基石。
五、实训总结
此课程设计是关于企业人事管理系统,经过三天的努力,我终于初步建成了“企业人事管理管理系统”,并且将《企业人事管理系统》的课程设计写完。
然而,由于时间仓促,加之小组知识水平和技术能力有限,这一管理系统还存在着很多不完善之处,因此在今后学习的过程中需要不断加强实践的结合,通过实践来完善数据库软件方面的不足之处。
通过这次数据库课程设计,我通过网上查找资料和进图书馆借阅有关数据库方面的书籍,查看了相关的例子,不断增加自己各方面的知识,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识。
在实验中建表,关系模式和关系代数的建立及理解,再到写SQL语句,如:
删除,插入,查询,视图的建立,触发器的建立,增强了自己对SQL语句的运用。
通过这次课程设计,加深了我们对SQLServer2008数据库建设的了解,使我掌握了软件设计的基本方法。
以企业人事管理管理系统为目标,我掌握了数据库需求分析、数据库概念结构设计、数据库结构实现、各个功能模块的创建等各个过程的详细地讲述,透彻掌握了在SQLServer2008中如何创建表,建立表索引,表之间的关系等,并且了解数据字典、数据项等概念以及业务流程图的画法。
这次课程设计,不仅丰富了我的理论知识,也使我的实践能力得到了提高,同时也发现了自己所掌握的知识并不像自己所想象那么多,但我们并不会气馁,在今后的学习和工作中,我们会加倍努力,不断丰富知识,掌握本领,争取取得更大的成绩。
至此,企业人事管理系统的课程设计初步完成了,在设计中的不周到之处,敬请老师批评指正。
六、参考文献
[1]李昆SQLServer2000课程设计案例精编,2006
[2]丁宝康,董健全.数据库实用教程.北京:
清华大学出版社,2001.
[3]龙马工作室.ASP+SQLServer组建动态网站案例精讲.北京:
人民邮电出版社.2005.8
[4]张哲.ASP数据库项目案例导航.北京:
清华大学出版社.2007.10
[5]丁宝康,董健全.数据库实用教程.北京:
[6]
杨芙清.青鸟工程现状与发展——兼论我国软件产业发展途径.见:
杨芙清,何新贵,主编.第6次全国软件工程学术会议论文集,软件工程进展——技术、方法和实践.北京:
清华大学出版社,1996.
[7]
杨芙清,梅宏,李克勤,袁望洪,吴穹.支持构件复用的青鸟III型系统概述.计算机科学,1999,26(5):
50−55
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQLSERVER 报告 范文