高校教师信息管理系统课程设计报告文档格式.docx

上传人:b****6 文档编号:21568002 上传时间:2023-01-31 格式:DOCX 页数:27 大小:22.93KB
下载 相关 举报
高校教师信息管理系统课程设计报告文档格式.docx_第1页
第1页 / 共27页
高校教师信息管理系统课程设计报告文档格式.docx_第2页
第2页 / 共27页
高校教师信息管理系统课程设计报告文档格式.docx_第3页
第3页 / 共27页
高校教师信息管理系统课程设计报告文档格式.docx_第4页
第4页 / 共27页
高校教师信息管理系统课程设计报告文档格式.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

高校教师信息管理系统课程设计报告文档格式.docx

《高校教师信息管理系统课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《高校教师信息管理系统课程设计报告文档格式.docx(27页珍藏版)》请在冰豆网上搜索。

高校教师信息管理系统课程设计报告文档格式.docx

根据概念结构设计的基本原则,确定概念模型,并阐明分

析步骤和理论依据完成数据库的概念设计,画出E-R图。

结构设计:

根据需求分析和概念模型,将实体及实体间的联系按一定的转换规则转换为关系模型,写出转换步骤及相应的理论依据,并确定主码、外码。

按数据库设计方法和规范化理论得出符合3NF的逻辑模型。

(5)利用SQLServer2005建立相应的数据库对象。

(6)利用SQL语句实现相应功能。

(7)编写数据库课程设计报告并提交相应资料与成果。

1.2设计要求

(1)要求独立完成自己题目的课程设计,如有抄袭,成绩按不及格处理。

(2)要求学生利用数据库原理课程所学知识和方法独立完成所布置题目。

(3)要求所设计的系统规模适中,用SQL语句实现基本的增、删、改、查询功能。

(4)数据库中至少要包含三个表,且每个表都要满足3NF,指明主码、外码等。

(5)尽量多的使用SQLServer2005中的对象,如:

视图、触发器、约束、默认、规则、索引等。

(6)简单的系统与功能分析,建立数据结构表。

(7)每天下机时,要及时将自己的开发拷贝带走;

上机期间,学生要服从指导

教师的统一安排,遵守机房制度;

严格遵守纪律,不迟到,不早退,无故缺勤者,成绩按不及格处理。

2、概要设计

2.1概要简述

在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能更

好地、更准确地用某一DBMS实现这些需求。

概念结构的主要特点是:

1.能真实、充分地反应现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个真实模型;

2.易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库设计成功的关键;

3.易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充;

4.易于向关系、网状、层次等各种数据模型转换。

概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,

从而更加稳定。

描述概念模型的有力工具是E-R模型。

下面设计高校教职工管理系统的E-R图:

编奖福备

编姓性职学

实基

计员工编名

发本

时地

备出联婚

注生系姻

编原

2.2逻辑结构设计:

下面将E-R图转换为关系模型:

员工信息(员工编号,员工姓名,年龄,性别,出生年月,婚姻状态,政治

面貌,学历,部门编号,职务,联系方式,备注)主键:

员工编号;

外码:

部门编号;

部门信息(部门编号,部门名称,部门人数)主键:

奖惩信息(奖惩编号,员工编号,奖罚时间,奖罚原因,奖罚地点,备注)

主键:

奖惩编号,外码:

薪资信息(薪资编号,员工编号,基本工资,福利,奖金,计算方法,实发

工资,发放日期),主键:

薪资编号;

员工编号。

2.3物理结构设计:

数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,

为给定的数据库系统确定合理的存储结构和存取方法。

所谓的“合理”主要有两

个含义:

一个是要使设计出的物理数据库占用较少的存储空间,另一个对数据库

的操作具有尽可能高的速度。

主要体现在索引和蔟集的设置。

存储结构

确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定

关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配

置。

将日志文件和数据库对象(表、索引等)分别放在不同的磁盘,可以改进系统

的性能,提高系统的安全性。

所以,系统应将日志文件和数据文件存放在不同磁

盘上。

3、设计过程和代码

3.1视图

视图是一个虚拟表,其内容由查询定义。

同真实的表一样,视图包含一

系列带有名称的列和行数据。

但是,视图并不在数据库中以存储的数据值

集形式存在。

行和列数据来自由定义视图的查询所引用的表,并且在引用

视图时动态生成。

对其中所引用的基础表来说,视图的作用类似于筛选。

定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视

图。

分布式查询也可用于定义使用多个异类源数据的视图。

3.2存储过程

存储过程就是将常用的或很复杂的工作,预先用SQL语句写好并用一个指

定的名称存储起来,那么以后要叫数据库提供与已定义好的存储过程的功能相

同的服务时,只需调用execute,即可自动完成命令。

存储过程的优点:

(1)存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新

编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库

执行速度。

(2)当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete

时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。

(3)存储过程可以重复使用,可减少数据库开发人员的工作量

(4)安全性高,可设定只有某此用户才具有对指定存储过程的使用权。

3.3触发器

触发器是一种特殊类型的存储过程,它不同于我们前面介绍过的存储过程。

触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字

而被直接调用。

当对某一表进行诸如Update、Insert、Delete这些操作时,SQL

Server就会自动执行触发器所定义的SQL语句,从而确保对数据的处理必须符

合由这些SQL语句所定义的规则。

触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照

完整性和数据的一致性。

除此之外,触发器还有其它许多不同的功能:

(1)强化约束(Enforcerestriction)

触发器能够实现比CHECK语句更为复杂的约束。

(2)跟踪变化Auditingchanges

触发器可以侦测数据库内的操作,从而不允许数据库中未经许可的指定

更新和变化。

(3)级联运行(Cascadedoperation)。

触发器可以侦测数据库内的操作,并自动地级联影响整个数据库的各项

内容。

例如,某个表上的触发器中包含有对另外一个表的数据操作(如删除,更

新,插入)而该操作又导致该表上触发器被触发。

(4)存储过程的调用(Storedprocedureinvocation)。

在物理结构中,数据的基本存取单位是存储记录。

有了逻辑结构以后,就可

以设计存储记录结构,一个存储记录可以与多个逻辑记录相对应。

存储记录就包

括记录的组成,数据项的类型和长度等。

下面是各个信息表:

员工信息表

列名数据类型大小允许空备注

员工编号intNOTNULL主码

员工姓名varchar20NOTNULL

年龄intNOTNULL

性别varchar2NOTNULL

出生年月DatetimeNOTNULL

婚姻状态varchar4NOTNULL

政治面貌

varchar

20

NOT

NULL

学历

部门编号

int

外码

职务

联系方式

11

备注

500

部门信息表

列名

数据类型

大小

允许空

主码

部门名称

部门人数intNOTNULL

薪资信息表

薪资编号intNOTNULL主码

员工编号intNOTNULL外码

基本工资intNOTNULL

福利intNOTNULL

奖金intNOTNULL

计算方法intNOTNULL

实发工资intNOTNULL

发放日期intNOTNULL

奖惩信息表

奖惩编号IntNOTNULL主码

员工编号IntNOTNULL外码

奖罚原因Varchar100NOTNULL

奖罚地点Varchar20NOTNULL

奖罚时间DatetimeNOTNULL

备注varchar500

数据库在SQLSever2005中显示如下:

(1)数据库:

(2)员工信息表:

(3)部门信息表:

(4)薪资信息表:

(5)奖惩信息表:

(6)视图1:

部门部长信息

(7)视图2:

员工基本信息

3.4主要代码:

1、创建高校教职工管理数据库:

CREATEDATABASE高校教职工管理

ON

(NAME=高校教职工管理DAT,

FILENAME=高校教职工管理DAT.MDF'

SIZE=5,

MAXSIZE=20,

FILEGROWTH=2

LOGON

(NAME=高校教职工管理LOG,

FILENAME=高校教职工管理LOG.LDF'

--------------------------------------------------------

2、创建备份文件

sp_addumpdevice'

disk'

'

BACKUP1'

高校教职工管理backup1.dat'

go

BACKUPDATABASE高校教职工管理TOBACKUP1

--------------------------------------------------------------------

3、创建表

CREATETABLE部门信息表

部门编号INTPRIMARYKEY,

部门名称VARCHAR(20)UNIQUENOTNULL,

部门人数INTCHECK(部门人数>

=0)NOTNULL,

-------------------------------------------

CREATETABLE员工信息表

员工编号INTNOTNULLPRIMARYKEY,

员工姓名VARCHAR(20)NOTNULL,

年龄INTCHECK(年龄>

=1)NOTNULL,

性别VARCHAR

(2)CHECK(性别IN('

男'

女'

))NOTNULL,

出生年月DatetimeNOTNULL,

婚姻状态VARCHAR(4)CHECK(婚姻状态IN('

已婚'

未婚'

政治面貌VARCHAR(20)CHECK(政治面貌IN('

清白'

团员'

党员'

学历VARCHAR(20)NOTNULL,

部门编号INTNOTNULL,

职务VARCHAR(20)NOTNULL,

联系方式VARCHAR(11)UNIQUENOTNULL,

备注VARCHAR(500),

FOREIGNKEY(部门编号)REFERENCES部门信息表(部门编号)

---------------------------------------------------------

CREATETABLE薪资信息表

薪资编号INTPRIMARYKEY,

员工编号INTNOTNULL,

基本工资INTCHECK(基本工资>

福利INTCHECK(福利>

奖金INTCHECK(奖金>

计算方法VARCHAR(50)NOTNULL,

实发工资INTCHECK(实发工资>

=0),

发放日期DatetimeNOTNULL,

FOREIGNKEY(员工编号)REFERENCES员工信息表(员工编号)

----------------------------------------------------------

CREATETABLE奖惩信息表

奖惩编号INTPRIMARYKEY,

奖罚时间DatetimeNOTNULL,

奖罚原因VARCHAR(100)NOTNULL,

奖罚地点VARCHAR(20)NOTNULL,

---------------------------------------------------------------

4、创建视图:

--视图员工基本信息:

CREATEVIEW员工基本信息(员工姓名,部门名称,职务,联系方式,薪资)

ASSELECT员工姓名,部门名称,职务,联系方式,实发工资

FROM员工信息表,部门信息表,薪资信息表

WHERE员工信息表.部门编号=部门信息表.部门编号

AND员工信息表.员工编号=薪资信息表.员工编号

-----------------------------------------------------

--视图:

各部门部长信息

CREATEVIEW部门部长信息(部门编号,部门名称,员工编号,员工名字)

ASSELECT部门信息表.部门编号,部门名称,员工编号,员工姓名

FROM员工信息表,部门信息表

AND员工信息表.职务='

部长'

--------------------------------------------------------------

5、创建存储过程

--存储过程LOOKWAGE:

根据员工提交的员工编号和工资发放时间,查看该员工

的薪资信息,

--包括员工编号,姓名,实发薪资,和发放日期。

CREATEPROCEDURELOOKWAGE

@IDINT,@TIMEDatetime

AS

SELECT员工信息表.员工编号,员工姓名,实发工资,发放日期

FROM员工信息表,薪资信息表

WHERE员工信息表.员工编号=薪资信息表.员工编号

AND员工信息表.员工编号=@IDAND发放日期=@TIME

--存储过程LOOKREWARDS:

根据员工提交的员工编号和奖罚时间,查看该员工

的奖罚信息,

--包括员工编号,姓名,奖罚原因,奖罚时间。

CREATEPROCEDURELOOKREWARDS

SELECT员工信息表.员工编号,员工姓名,奖罚原因,奖罚时间

FROM员工信息表,奖罚信息表

WHERE员工信息表.员工编号=奖罚信息表.员工编号

AND员工信息表.员工编号=@IDAND发放日期=@TIME

---------------------------------------------------------------------

--存储过程Find_Minister:

根据提交的部门编号,查看该部门的部长

CREATEPROCEDUREFind_Minister

@IDINT

SELECT部门信息表.部门编号,部门信息表.部门名称,员工信息表.员工编号,员工

姓名

-------------------------------------------------------------------

--6、创建触发器

--触发器workerid:

要求员工信息表中的员工编号被修改时,薪资信息表

--奖惩信息表中的员工编号也被修改。

CREATETRIGGERWORKERIDON员工信息表

FORUPDATE

BEGIN

IF(UPDATE(员工编号))

UPDATE薪资信息表

SET薪资信息表.员工编号=(SELECT员工编号FROMinserted)

WHERE薪资信息表.员工编号=(SELECT员工编号FROMdeleted)

UPDATE奖惩信息表

SET奖惩信息表.员工编号=(SELECT员工编号FROMinserted)

WHERE奖惩信息表.员工编号=(SELECT员工编号FROMdeleted)

END

------------------------------------------------------------------

--触发器CHECK_EXIST:

--向员工信息表插入一条记录时,检查该记录的部门信息在部门信息表

--是否存在,若不存在则不允许插入。

CREATETRIGGERCHECK_EXIST

ON员工信息表

FORINSERT

IFEXISTS(SELECT*FROMinserteda

WHEREa.部门编号NOTIN(SELECT部门信息表.部门编号FROM

部门信息表))

RAISERROR('

该部门不存在!

'

16,1)

ROLLBACKTRANSACTION--撤销刚才的操作,恢复到原来的状态

--触发器COUNT_STAFF

--向员工信息表插入一条记录时,该员工所在的部门人数加.

CREATETRIGGERCOUNT_STAFFON员工信息表

AFTERINSERT

UPDATE部门信息表

SET部门人数=部门人数+1

WHERE部门编号IN(SELECT部门编号FROMinserted)

------------------------------------------------------------

--触发器departid:

要求部门信息中的部门编号被修改时,员工信息表中员工

--所属部门编号也被修改。

CREATETRIGGERdepartidON部门信息表

IF(UPDATE(部门编号))

UPDATE员工信息表

SET员工信息表.部门编号=(SELECT部门编号FROMinserted)

WHERE员工信息表.部门编号=(SELECT部门编号FROMi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1