资源描述
学生信息管理数据库设计报告
———————————————————————————————— 作者:
———————————————————————————————— 日期:
31
个人收集整理 勿做商业用途
《数据库》期末课程设计报告
学生信息管理系统
1课程设计题目:学生信息管理系统
随着学校规模的不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增加。面对庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率.通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量.现在的时代是网络普及是时代,学生有条件通过网络方便快捷的查询自己的个人信息.所以,学生信息管理系统既能方便学校管理部门的管理,又能方便学生及时查询个人信息。
2需求分析
需求分析阶段的目标和任务
2。1。1处理对象
学生个人信息:学号,姓名,性别,年龄,院系
学生课程信息:学号,选修课程号,课程成绩
课程信息:课程号,课程名称,课程信息
教师信息:教师名字,教师编号,教师年龄,教师工资,教师所属院系
任课教师信息:教师编号,课程号
院系信息:院系编号,院系名称
2。1。2处理功能及要求
开发学生信息管理系统,主要为减轻教师人员的负担,使学生信息的存入记录与取出记录相对方便,便于学生个人信息的增加与减少,降低出错率,使管理更加合理、科学,也为老师节省开支。在系统中的新生信息的录入、教师信息的查询,由于在学生信息管理的过程中会涉及到大量的数据操作,如数据的添加、删除、修改和保存等。这主要包括:
1.能够对学生个人信息进行一定的操作处理:
1) 学生个人信息的增加、删除以及修改。
2) 学生个人信息的多关键字检索查询。
2.能够对学生个人信息,教师信息的查询相关资料,这其中包括:
1) 学生个人信息的增加、删除及修改。
2) 教师个人信息的增加,删除及修改
3.对查询、统计的结果能够列表显示。
2。1.3安全性和完整性要求
1) 安全性要求
系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。安全性先通过视图机制,教务员可以设置密码来限制别人访问系统的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。
2) 完整性要求
系统完整性要求系统中数据的正确性以及相容性。可通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。
2。2 需求分析阶段成果
2。2.1 体会与收获
系统需求分析主要是通过对网上一些资源以及《SQL SEERVER 2000 案例教程》这本书的相关资料的查看,以及联系一些现实学校的班主任记录学生信息的基本情况,总结学生信息管理系统至少应该具备对重要相关信息的哪些管理功能,以及在管理中的一些问题。因为是第一次做这样的需求调查,有些东西到现在可能还不是做的很好,但是这些我以后都会慢慢把他完善的。希望本系统能在使用中不断地发现漏洞,改善漏洞,不断完善本系统。
2。2。2 学生信息管理系统数据流程图
顶层数据流图:
教师
学生信息管理系统
学生信息信息
查询信息
录入
学生个人信息
查询
第2层数据流图:(学生信息录入,教师信息录入,学生课程信息录入,学生成绩录入,学生信息查询和修改等)
学生个人信息表
查询信息
修
改
教务员
学生选课表
课程信息表
查询
教师信息表
学生
学生成绩表
任课教师表
教师
院系信息表
查询结果
2。2。3学生信息管理系统数据字典
(a)数据项:系统涉及的数据项有15项
表1。1 数据项列表
数据项编号
数据项名
数据项含义
数据类型
长度
别名
DI—1
sno
学生编号
Char
15
DI-2
sname
学生姓名
char
15
DI—3
sage
学生年龄
int
4
DI—4
ssex
学生性别
char
15
DI—5
sdno
学生所在院系编号
char
15
DI-6
tno
教师编号
Char
15
DI-7
cno
课程号
char
15
DI—8
tname
教师名称
char
15
DI-9
tage
教师年龄
int
4
DI—10
tsalary
教师工资
int
4
DI-11
dno
院系编号
char
15
DI-12
dname
院系名称
char
15
DI—13
cname
课程名称
char
100
DI-14
credit
课程学分
int
4
DI—15
Grade
课程成绩
int
4
(b)数据结构:
表1.2 数据结构列表
数据结
构编号
数据结构名
组成
DS—1
STUDENT
Sno,Sname,Ssex,Sage,Sdno
DS—2
SC
Dno,Cname,Grade
DS—3
COURSE
Dno,Cname,Credit
DS—4
DEPART
Dno,Dname
DS—5
TEACHER
Tno,Tname,Tsage,Tsalary,Dno
DS-6
TC
Tno,Cno
3 概念设计阶段
3.1 任务与目标
任务:开发学生信息管理系统,主要为减轻教师工作的负担,使老师对学生信息的记录与查询相对方便,便于学生信息的增加与减少,降低出错率,使管理更加合理、科学,也为老师节省开支。在系统中实现了学生信息的录入、修改、查询等操作,所以在学生信息管理的过程中会涉及到大量的数据操作,如数据的添加、删除、修改等
目标: 开发本系统的目的在于代替手工管理、修改、查询等工作,具体要求包括:
数据录入:录入学生个人信息、学生成绩;
数据修改:修改学生个人信息,修改教师个人信息;
数据查询:查询学生个人信息,查询学生选课信息,查询任课教师信息等。
3.2阶段结果
(1)根据不同的对象,分别画出各分E-R图:
(a)院系的E-R图:
院系
院系编号
院系名称
(c)课程的E-R图:
课程
课程名称
课程号
课程学分
(d)学生信息的E-R图:
学生
学号
性别
姓名
所在院系
年龄
(e)教师实体E-R图:
教师
编号
工资
院系
姓名
年龄
(2)合并各分E-R图,消除属性冲突、命名冲突、结构冲突等三类冲突,得到初步E-R图,再消除不必要冗余,得到的学生信息管理E-R图如下所示:
课程名
姓名
工资
学分
课程号
性别
编号
教课
课程
n 1
教师
选课
成绩
m n
工作
院系
学习
学生
姓名
n m 1
院系号
院系名称
性别
年龄
学号
数据库中关系图
4.逻辑设计阶段
4.1逻辑设计的任务和目标
概念设计阶段是独立于任何一种数据模型的。系统逻辑设计的任务就是将概念设计阶段设计好的基本E—R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)以及数据处理(画出系统功能模块图)两大任务。
4。2关系模型设计
1)DEPART(院系信息表)
NO。
字段名
类型
说明
1
Dno
Char
主键
2
Dname
Char
Null
2) COURSE(课程表)
NO.
字段名
类型
说明
1
Cno
Char
主键
2
Cname
Char
Null
3
Credit
Int
Null
3)STUDENT(学生个人信息表)
NO。
字段名
类型
说明
1
Sno
Char
主键
2
Sname
Char
Null
3
Ssex
Char
Null
4
Sage
Int
Null
5
Sdno
Char
Null
4)SC(选课表)
NO.
字段名
类型
约束
1
Sno
char
主键
2
Cno
char
Null
3
Grade
Int
Null
5)TEACHER(教师个人信息表)
NO。
字段名
类型
约束
1
Tno
char
主键
2
Tname
char
Nnull
3
Tage
int
Null
4
Tsalary
int
Null
5
Dno
char
Null
6)TC(任课教师表)
NO。
字段名
类型
约束
1
Tno
Char
主键
2
Cno
Char
Null
4。 3 用户子模式举例
学生个人信息查询视图
列名
数据类型
可否为空
说明
Sno
Char
not Null
主键
Sname
Char
Nulll
Cno
Char
Null
Cname
Char
Null
Tno
Char
Null
课程信息查询视图
列名
数据类型
可否为空
说明
Cno
Char
notNull
主键
Sname
Char
Nulll
Grade
Int
Null
教师个人信息查询视图
列名
数据类型
可否为空
说明
Tname
Char
notNull
主键
Cname
Char
Nulll
Sname
Char
Null
4.4数据处理
系统功能模块图:
学生信息管理系统
课程信息 息
学生信息管理
教师信息管理
院系信息
课程信息添加
课程信息查询
新生个人信息输入
学生信息修改
教师信息查询
教师信息输入
院系信息查询
学生信息查询
院系信息输入
5.物理设计阶段
5.1物理设计阶段的目标与任务
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。
5。2数据存储方面
为数据库中各基本表建立的索引如下:
1. 由于学生个人信息表中的属性姓名经常在查询条件中出现,且它们的值一般都是唯一,在两个属性上建立索引;
2. 由于学生个人信息表中的主码学号经常在查询条件和连接条件中出现,且它们的值是唯一的,在两个属性上建立唯一性索引;
5。3系统功能模块
依据需求分析阶段看,学生信息管理系统主要分为学生个人信息管理,课程信息管理,教师信息管理等主要方面。
学生信息管理系统
课程信息管理
院系信息管理
教师信息管理
学生个人信息管理
6 数据库部分
1)基本表
STUDNET 学生信息表
TEACHER 教师个人信息表
COURSE课程表
SC学生选课表
TC任课教师表
DEPART院系表
2)视图
CREATE VIEW dbo。VIEW1
WITH SCHEMABINDING
AS
SELECT dbo.SC。Sno, dbo。COURSE。Cno, dbo.COURSE.Credit
FROM dbo。COURSE INNER JOIN
dbo.SC ON dbo.COURSE。Cno = dbo.SC。Cno
CREATE VIEW dbo.VIEW2
WITH SCHEMABINDING
AS
SELECT dbo.TEACHER.Tname, dbo.TEACHER。Dno, dbo.DEPART。Dname
FROM dbo。DEPART INNER JOIN
dbo.TEACHER ON dbo.DEPART。Dno = dbo。TEACHER.Dno
CREATE VIEW dbo。VIEW3
AS
SELECT dbo.STUDENT.Sname, dbo.SC。Cno, dbo.SC。Grade
FROM dbo.SC INNER JOIN
dbo.STUDENT ON dbo.SC。Sno = dbo。STUDENT。Sno
CREATE VIEW dbo。VIEW4
AS
SELECT dbo。STUDENT。Sname, dbo。SC。Cno, dbo。COURSE.Cname, dbo。TC。Tno
FROM dbo.TC INNER JOIN
dbo。COURSE ON dbo.TC。Cno = dbo。COURSE.Cno INNER JOIN
dbo。SC ON dbo。COURSE.Cno = dbo。SC.Cno INNER JOIN
dbo.STUDENT ON dbo。SC。Sno = dbo.STUDENT.Sno
CREATE VIEW dbo。VIEW5
WITH SCHEMABINDING
AS
SELECT dbo。STUDENT.Sname, dbo。SC。Cno, dbo。COURSE。Cname, dbo。COURSE。Credit,
dbo。SC.Grade
FROM dbo.COURSE INNER JOIN
dbo.SC ON dbo。COURSE。Cno = dbo。SC。Cno INNER JOIN
dbo。STUDENT ON dbo.SC.Sno = dbo。STUDENT.Sno
CREATE VIEW dbo.VIEW6
WITH SCHEMABINDING
AS
SELECT dbo.STUDENT。Sno, dbo.STUDENT.Sname, dbo。DEPART。Dname,
dbo.COURSE.Cname
FROM dbo.STUDENT INNER JOIN
dbo.DEPART ON dbo。STUDENT。Sdno = dbo。DEPART.Dno INNER JOIN
dbo.SC ON dbo。STUDENT。Sno = dbo。SC.Sno INNER JOIN
dbo.COURSE ON dbo。SC.Cno = dbo.COURSE.Cno
CREATE VIEW dbo.VIEW7
WITH SCHEMABINDING
AS
SELECT dbo.TEACHER.Tname, dbo.COURSE。Cname
FROM dbo.TEACHER INNER JOIN
dbo.TC ON dbo.TEACHER。Tno = dbo。TC。Tno INNER JOIN
dbo.COURSE ON dbo。TC。Cno = dbo。COURSE。Cno
CREATE VIEW dbo。VIEW8
WITH SCHEMABINDING
AS
SELECT dbo。TEACHER。Tname, dbo.COURSE。Cname, dbo.STUDENT。Sname
FROM dbo.TEACHER INNER JOIN
dbo.TC ON dbo.TEACHER.Tno = dbo。TC.Tno INNER JOIN
dbo。COURSE ON dbo。TC.Cno = dbo。COURSE。Cno INNER JOIN
dbo。SC ON dbo。COURSE。Cno = dbo.SC。Cno INNER JOIN
dbo。STUDENT ON dbo。SC.Sno = dbo。STUDENT。Sno
3) 存储过程
CREATE PROCEDURE [user1].[PROCEDURE NAME] AS
select distinct s.sname from student s join sc on s。sno=sc。sno where grade 〈80
CREATE PROCEDURE [user1]。[PROCEDURE NAME] AS
select sname ,sage from student where sdno in (10001,10005,10007)
CREATE PROCEDURE [user1].[PROCEDURE NAME] AS
select Sname,Sage from STUDENT WHERE Sage <22
CREATE PROCEDURE [user2]。[sum] AS
select count(distinct sno) from sc
CREATE PROCEDURE [user3]。[tac] AS
select sname ,tname,t。dno from student s join sc on s。sno=sc。sno join tc on tc。cno=sc。cno
join teacher t on t。tno=tc.tno
CREATE PROCEDURE [user2].[teacher] AS
select tname,tsalary from teacher order by tsalary
CREATE PROCEDURE [user3].[teacherc] AS
select tname,cname from teacher t join tc on t.tno =tc.tno join course c on c。cno=tc。cno
CREATE PROCEDURE [user4].[yuanxi] AS
select * from student s join depart d on s。sdno=d.dno
CREATE PROCEDURE [user4]。[yuanxi2] AS
select dno,sname,sage from student s join depart d on s.sdno=d。dno
CREATE PROCEDURE [user1]。[zhang] AS
select * from student where sname like' 张__’
4) 触发器
create trigger tr_stud on student
for update
as
declare @msg varchar(100)
select @msg=str(@@rowcount)+' students has been updated'
print @msg
return
create trigger truteacher on teacher
for update as
if update(tno)
begin
update tc
set tno=i。tno from tc,inserted i,delected d where tc。tno=d.tno
end
create trigger [delete] on [dbo]。[tc]
for delete
as
delete sc
from sc,deleted d
where sc。cno=o
5) 用户
6) 角色
7)索引
ALTER TABLE [dbo]。[COURSE] WITH NOCHECK ADD
CONSTRAINT [PK__COURSE__014935CB] PRIMARY KEY CLUSTERED
(
[Cno]
) ON [PRIMARY]
GO
ALTER TABLE [dbo]。[DEPART] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[Dno]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[SC] WITH NOCHECK ADD
CONSTRAINT [PK__SC__0425A276] PRIMARY KEY CLUSTERED
(
[Sno],
[Cno]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[STUDENT] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[Sno]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TEACHER] WITH NOCHECK ADD
CONSTRAINT [PK_TEACHER] PRIMARY KEY CLUSTERED
(
[Tno]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[COURSE] WITH NOCHECK ADD
CONSTRAINT [UQ__COURSE__023D5A04] UNIQUE NONCLUSTERED
(
[Cno]
) ON [PRIMARY]
GO
ALTER TABLE [dbo]。[DEPART] WITH NOCHECK ADD
UNIQUE NONCLUSTERED
(
[Dno]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[SC] WITH NOCHECK ADD
CONSTRAINT [CK_SC] CHECK ([GRADE] 〈= 100)
GO
ALTER TABLE [dbo].[STUDENT] WITH NOCHECK ADD
UNIQUE NONCLUSTERED
(
[Sno]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TEACHER] WITH NOCHECK ADD
UNIQUE NONCLUSTERED
(
[Tno]
) ON [PRIMARY]
GO
CREATE UNIQUE INDEX [COURSE_Index_1] ON [dbo]。[COURSE]([Cname]) ON [PRIMARY]
GO
8)完整性约束
ALTER TABLE [dbo]。[SC] ADD
CONSTRAINT [FK__SC__Cno__060DEAE8] FOREIGN KEY
(
[Cno]
) REFERENCES [dbo]。[COURSE] (
[Cno]
),
CONSTRAINT [FK__SC__Sno__0519C6AF] FOREIGN KEY
(
[Sno]
) REFERENCES [dbo].[STUDENT] (
[Sno]
) ON DELETE CASCADE
GO
ALTER TABLE [dbo]。[STUDENT] ADD
FOREIGN KEY
(
[Sdno]
) REFERENCES [dbo]。[DEPART] (
[Dno]
)
GO
ALTER TABLE [dbo].[TC] ADD
CONSTRAINT [FK__TC__Cno__09DE7BCC] FOREIGN KEY
(
[Cno]
) REFERENCES [dbo].[COURSE] (
[Cno]
),
CONSTRAINT [FK__TC__Tno__08EA5793] FOREIGN KEY
(
[Tno]
) REFERENCES [dbo]。[TEACHER] (
[Tno]
)
GO
ALTER TABLE [dbo].[TEACHER] ADD
FOREIGN KEY
(
[Dno]
) REFERENCES [dbo]。[DEPART] (
[Dno]
)
GO
7 VB部分
登陆界面
登陆后界面
学生基本信息
修改学生信息
学生课程信息查询
课程信息
、
课程查询
教师信息查询
教师信息增添
展开阅读全文