教务管理系统大数据库设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
第一章:项目计划 (2)
1.1项目背景: (2)
1.2系统开发目的: (2)
1.3定义: (3)
第二章:详细分析 (3)
2.1、系统功能 (3)
2.2、系统结构 (4)
2.3、数据流图 (4)
2.4、户类型与职能 (5)
2.5、系统环境需求 (6)
第三章:系统概念设计 (6)
第四章:逻辑设计 (7)
4.1系统关系模型 (7)
4.2系统数据库表结构 (8)
第五章:源码 (13)
第六章:小结 (25)
第一章:项目计划
1.1项目背景:
教务系统管理平台充分利用互联网络B/S管理系统模式,以网络为平台,为各个学校教务系统的管理提供一个平台,帮助学校管理教务系统,用一个账号解决学校教务教学管理,并且学校可以自由选择学校需要的教务管理系统,灵活地定制符合学校自己实际情况的教务系统.
1.2系统开发目的:
提高学生,老师管理和操作事务的运作效率。
1.3定义:
学生选课和老师评分必须在管理员的设置条件下进行。
第二章:详细分析
2.1、系统功能
设置学期时间:管理员登录系统后设置学期的时间,只有当时间为某个状态时,其他角色例如老师,才能做某些事情。
学期时间只能由角色管理员操作:包括对学期时间表的增加,删除,对某个学期时间状态的改变。
学生选课:当管理员设置为学期开始时,学生可以选课,学生选课受学分影响,只能选择总学分为多少的课程。
老师评分:当管理员设置为学期评分时,老师才可以评分。
个人信息管理:对自己个人信息进行添加和修改。
成绩查询:学生可以对自己成绩进行查询。
个人课表查询:按时间的不同,每个角色都有自己不同的课表。
2.2、系统结构
功能描述:学生选课和老师评分必须在管理员设置学期的条件下进行。
2.3、数据流图
顶层图
0层图
2.4、户类型与职能(1)管理员:
对学期设置的管理每个阶段有不同的功能。
(2)老师:
对选修了自己课程的学生评分。
(3)学生:
选修科目。
2.5、系统环境需求
系统模式
本系统采用B/S模式作为开发模式
硬件环境
服务器端:
高性能的计算机一台,
普通的双绞线作为连接。
客户端:普通的计算机或者工作站,
普通的双绞线作为连接。
软件环境
服务器端:安装SQLSERVER2000的服务器版本
第三章:系统概念设计系统ER图
系统ER图说明:
(1)同一的老师可以教多个科目,同一科目可以由多个老师教。
(2)同一学生可以选修多老师的科目,同一个老师的科目可以让多个学生选修。
第四章:逻辑设计
4.1系统关系模型
a)选课成绩表(选课编号,平时成绩,期末成绩,综合成绩)
b)用户表(用户编号,用户名称,用户密码,性别,住址,)
c)班别表(班别编号,班别名称,班别描述)
d)系别(系别编号,系别名称,系别)
e)学期时间(学期编号,学期名称,学期开始时间,学期结束时间,学期状态)
f)课室表(课室编号,课室名称,课室面积,课室最大人数)
g)课程表(课程编号,课程名称,课程学分,课程类型,课程学时)
h)角色表(角色编号,角色名称,角色权限)
i)老师授课表(授课编号,授课时间)
j)上课地点表(地点编号)
4.2系统数据库表结构
数据库表索引
用户表(Sysuser)
选课成绩表(Score)
班别表(Classes)
系别表(Dept)
学期时间表(Items)
课程表(Major)
课室表(Classroom)
角色表(Userstyle)
教师授课表(Mdteacher)
上课地点表(Majorroom)
第五章:源码
/*==================================================== ==========*/
/* 触发器:删除已存在表*/
/*==================================================== ==========*/
if exists (select * from sysobjects where id = object_id('Classes'))
drop table Classes
GO
if exists (select * from sysobjects where id = object_id('Classroom'))
drop table Classroom
GO
if exists (select * from sysobjects where id = object_id('Dept'))
drop table Dept
GO
if exists (select * from sysobjects where id = object_id('Items'))
drop table Items
GO
if exists (select * from sysobjects where id = object_id('Major')) drop table Major
GO
if exists (select * from sysobjects where id = object_id('Majorroom')) drop table Majorroom
GO
if exists (select * from sysobjects where id = object_id('Mdteacher')) drop table Mdteacher
GO
if exists (select * from sysobjects where id = object_id('Score')) drop table Score
GO
if exists (select * from sysobjects where id = object_id('Sysuser')) drop table Sysuser
GO
if exists (select * from sysobjects where id = object_id('Userstyle'))
drop table Userstyle
GO
/*==================================================== ==========*/
/* Table: Classes */
/*==================================================== ==========*/
create table Classes
(
classesid varchar(20) not null,
deptid varchar(20),
classname varchar(20) unique,
clacontext varchar(50),
primary key (classesid)
)
go
/*==================================================== ==========*/
/* Table: Classroom */
/*==================================================== ==========*/
create table Classroom
(
roomid varchar(20) not null,
roomname varchar(20) unique,
area int check(area>0),
maxnum int check(maxnum>0),
primary key (roomid)
)
go
/*==================================================== ==========*/
/* Table: Dept */
/*==================================================== ==========*/
create table Dept
(
deptid varchar(20) not null,
deptname varchar(20) unique,
depphone varchar(10) ,
primary key (deptid)
)
go
/*==================================================== ==========*/
/* Table: Items */
/*==================================================== ==========*/
create table Items
(
itemsid int not null IDENTITY,
itname varchar(20),
starttime datetime,
endtime datetime,
itstate varchar(10) check(itstate in (‘0’,’1’,’2’)),
primary key (itemsid)
)
go
/*==================================================== ==========*/
/* Table: Major */
/*==================================================== ==========*/
create table Major
(
MDid varchar(20) not null,
MDname varchar(10) unique,
MDcredit int ,
MDstyle varchar(10) check(MDstyle in (‘公选课’,’选修课’)), MDstudytime int check(MDstudytime >0),
primary key (MDid)
)
go
/*==================================================== ==========*/
/* Table: Majorroom */
/*==================================================== ==========*/
create table Majorroom
(
MRid int not null IDENTITY,
roomid varchar(20),
MDid varchar(20),
primary key (MRid)
)
go
/*==================================================== ==========*/
/* Table: Mdteacher */
/*==================================================== ==========*/
create table Mdteacher
(
muid int not null IDENTITY,
id varchar(20),
MDid varchar(20),
Mtime datetime,
primary key (muid)
)
go
/*====================================================
==========*/
/* Table: Score */
/*==================================================== ==========*/
create table Score
(
scid int not null IDENTITY,
id varchar(20),
muid int,
itemsid int,
pacgrade int ,
endgrade int,
syngrade int,
primary key (scid)
)
go
/*==================================================== ==========*/
/* Table: Sysuser */
/*==================================================== ==========*/
create table Sysuser
(
id varchar(20) not null,
classesid varchar(20),
userstyleid varchar(10),
username varchar(20) unique,
password varchar(10),
sex varchar(10) check(sex in (‘男’,’女’)),
address varchar(50),
phone varchar(20),
primary key (id)
)
go
/*==================================================== ==========*/
/* Table: Userstyle */
/*==================================================== ==========*/
create table Userstyle
(
userstyleid varchar(10) not null,
userstylename varchar(20) unique,
permission varchar(50),
primary key (userstyleid)
)
go
alter table Classes add constraint FK_Reference_11 foreign key (deptid) references Dept (deptid) on delete cascade on update cascade;
alter table Majorroom add constraint FK_Reference_15 foreign key (MDid) references Major (MDid) on delete cascade on update cascade;
alter table Majorroom add constraint FK_Reference_18 foreign key (roomid) references Classroom (roomid) on delete cascade on update cascade;
alter table Mdteacher add constraint FK_Reference_10 foreign key (id) references Sysuser (id) on delete cascade on update cascade;
alter table Mdteacher add constraint FK_Reference_16 foreign key (MDid) references Major (MDid) on delete cascade on update cascade;
alter table Score add constraint FK_Reference_13 foreign key (muid)
references Mdteacher (muid);
alter table Score add constraint FK_Reference_19 foreign key (itemsid) references Items (itemsid);
alter table Score add constraint FK_Reference_4 foreign key (id)
references Sysuser (id);
alter table Sysuser add constraint FK_Reference_12 foreign key (userstyleid) references Userstyle (userstyleid) on delete cascade on update cascade;
alter table Sysuser add constraint FK_Reference_14 foreign key (classesid) references Classes (classesid) on delete cascade on update cascade;
/*==================================================== ==========*/
/*存储过程:查询选修某个老师课程的学生*/
/*==================================================== ==========*/
create procedure stu (@tr char(20))
as
select Sysuser.id,ername from Sysuser,Score where Score.id=Sysuser.id and Score.muid in
(select muid from Mdteacher,Sysuser where Mdteacher.id=Sysuser.id and ername=@tr);
/*==================================================== ==========*/
/*授权*/
/*==================================================== ==========*/
grant select,update,insert,delete on Sysuser to stu2
grant select,update,insert,delete on Score to stu2
/*==================================================== ==========*/
/*部分插入,更新和删除*/
/*==================================================== ==========*/
insert into Userstyle values('10054','老师','');
insert into Userstyle values('10052','学生','');
insert into Userstyle values('10051','管理员','');
insert into Sysuser(id,userstyleid,username,password) values('11111','10051','小天','123');
delete from Userstyle where userstyleid='10054';
update Sysuser set password='234' where id='11111';
第六章:小结
和传统管理模式相比较,使用本系统,毫无疑问会大大提高老师评分的运作效率,辅助提高学校的管理水平,为降低拥挤,提高效益,减少差错,节省人力,减少多登陆的时间,提供有效的技术保障。
由于开发者能力有限,加上时间仓促,本系统难免会出现一些不足之处,例如:(1)由于分数和学期,老师,学生都有关,造成查询时发生缓慢的现象。
(2)主键类型设置有问题。
对于以上出现的问题,深表歉意,如发现还有其它问题,希望老师批评指正。