西电数据库大作业学籍管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学籍管理系统
一、需求分析:
(1)、功能:
a 使得学生的学籍管理工作更加清晰、条理化、自动化。
b 容易地完成学生信息的查询、更新、修改等操作。
c 对于学生成绩管理模块,能更加容易的求得学生的平均成绩、补考次数,所修的学
分,最高分、最低分等,可以按照学生的成绩进行排序处理等,同时方便学生管理。(2)、系统数据:
下表分别列出了数据的名称(即码)、注释、数据类型、长度、取值范围和是否是主码。
(3)、数据结构:
分别如下表所示:
二、概念结构设计
(1)、学生基本信息与课程信息视图:
学生基本信息视图 课程信息视图
根据学生与课程的关系
可设计如下关系图:
(2)、专业 院系与教师视图:
院系 教师及专业关系图
(3)、E-R 图:
合并数据抽象与局部视图设计中的各个局部视图以及各个实体之间的关系
生成E-R图如下:
三、逻辑结构设计关系模型如下:
四、应用程序设计:
(1)、触发器设计:
1.StudentInfo 表上的出发器触发器:对于学生基本信息表,当学生信息修改时,其它表中若有对应的该信息时,应该对其进行修改;当学生信息删除时,对应的如SC表中的对应学生成绩信息也应该自动修改:
① Supdata:
CREATE TRIGGER Supdate ON [dbo].[StudentsInfo]
FOR UPDATE
AS
update SC
set 学号 = ( select 学号 from inserted) where SC.学号=(select 学号from deleted) ;
② Sdelete:
CREATE TRIGGER Sdelete ON [dbo].[StudentsInfo]
FOR DELETE
AS DELETE
FROM SC
WHERE SC.学号=(select 学号from deleted) ;
2. Course表上的触发器:其功能是当一个课程的信息改变时,或当一个课程的信息被删除时,相应的在SC和TC表中的相应信息修改或删除。
① Cupdata:
CREATE TRIGGER Cupdate ON [dbo].[Course]
FOR UPDATE
AS
update SC
set 课程号 = ( select 课程号 from inserted)
where SC.课程号=(select 课程号 from deleted)
update TC
set TC.课程号 = ( select 课程号 from inserted)
where TC.课程号=(select 课程号 from deleted) ;
② Cdelete:
CREATE TRIGGER Cdelete ON [dbo].[Course]
FOR DELETE
AS
DELETE
FROM SC
WHERE SC.课程号=(select 课程号 from deleted)
DELETE
FROM TC
WHERE TC.课程号=(select 课程号 from deleted) ;
;
3.Department表上的触发器:当院系的代号改变时,对应的学生所在院系、专业所属院系以及教师所在院系都应当做相应的更改。
① Dupdata:
CREATE TRIGGER Dupdate ON [dbo].[Department]
FOR UPDATE
AS
update StudentsInfo
set StudentsInfo.专业号 = ( select专业号from inserted)
where StudentsInfo.专业号=(select 专业号 from deleted)
update Major
set Major.专业号 = ( select专业号from inserted)
where Major.专业号=(select 专业号 from deleted)
update Teacher
set Teacher.专业号 = ( select专业号from inserted)
where Teacher.专业号=(select 专业号 from deleted);
4.Teacher 表上的触发器:当教师号改变或教师离任时,TC表上的信息应相应的得到改变。
① Tupdata:
CREATE TRIGGER Tupdate ON [dbo].[Teacher]
FOR UPDATE
AS
update TC
set TC.教师号 = ( select 教师号 from inserted)
where TC.教师号=(select 教师号 from deleted) ;
② Sdelete:
CREATE TRIGGER Tdelete ON [dbo].[Teacher]
FOR DELETE
AS
DELETE
FROM TC
WHERE TC.教师号=(select 教师号 from deleted) ;
5.Major表上的触发器:当专业编号发生改变或专业取消,对应的学生表的专业号应该发生改变或置为空值。