logo资料库

数据库学籍管理系统课程设计报告.doc

第1页 / 共29页
第2页 / 共29页
第3页 / 共29页
第4页 / 共29页
第5页 / 共29页
第6页 / 共29页
第7页 / 共29页
第8页 / 共29页
资料共29页,剩余部分请下载后查看
1.问题目的
学生学籍管理系统是一个教育单位信息化管理中不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关
2.课程设计任务描述
高校学籍管理系统
功能要求:
实现学生信息、班级、院系、专业等的管理;
实现课程、学生成绩信息管理;
实现学生的奖惩信息管理;
创建规则用于限制性别项只能输入”男"或”女”
创建视图查询各个学生的学号、姓名、班级、专业、院系;
创建触发器当增加、删除学生和修改学生班级信息时自动修改相应班级学生人数;
建立数据库相关表之间的参照完整性约束。
3. 数据库功能分析
3.1 信息输入功能
1)输入学生基本信息,包括(学号,姓名,性别,班级号,班级,民族,政治面貌,身份证号,籍贯,家庭住址
2)输入学院基本信息,包括(学院号,学院名称,院长名)
3)输入教师基本信息,包括(教工号,姓名,性别,学院号,电话)
4)输入课程基本信息,包括(课程号,课程名,专业号,学分,学时)
5)输入专业基本信息,包括(专业号,专业名,学院号)
6)输入选课基本信息,包括(学号,课程号,成绩)
7)输入授课基本信息,包括(课程号,教工号)
8)输入奖惩基本信息,包括(奖励号,学号,奖励,等级,时间)
9)输入班级基本信息,包括(班级号,班级名,专业号,人数)
3.2 数据修改或删除功能
1)修改学生表的学号时同时修改选课表、奖励表中的学号
2)修改学院表中的学院号时,同时修改教师表、专业表中对应的学院号
3)修改教师表中的教工号时,同时修改授课表中的教工号
4)修改课程表中的课程号时,同时修改选课表和授课表中的课程号
5)修改专业表中的专业号时,同时修改学生表、班级表中的专业号
6)修改班级表中的班级号(班级名)时同时修改学生表中的班级号(班级名)
7)删除学生信息时同时删除学生在选课表中的信息
8)删除老师信息时同时删除老师在授课表中的信息
3.3 查询和统计功能
1)能够查询指定学生的基本信息
2)能够查询指定学院的基本信息
3)能够查询指定专业的基本信息
4)能够查询指定教师的基本信息
5)能够查询指定课程的基本信息
6)能够查询指定班级的基本信息
4. 数据概念模型
4.1 实体属性图
4.2 数据逻辑模型(数据库关系模式)
学生表如图4-11所示。
图4-13 教师表
课程表如图4-14所示。
5.系统数据库的建立
5.1 建立表格
1)Student表
create table Student
(
Sno varchar(10) primary key,
Sname varchar(10) not null,
Ssex char(2) check (Ssex='男' or Ssex='女'),
Snation char(10) not null,
Spo varchar(8),
Sid varchar(20) not null,
Bno int not null,
Bname varchar(10),
Zno char(10) not null,
Snativeplace varchar(10),
Shome varchar(30),
Stime varchar(30)
)
2)college表
create table college
(
Collegeno varchar(10) primary key,
Collegename varchar(20),
Collegepname varchar(20)
)
3)teacher表
create table teacher
(
Tno char(10) primary key,
Tname varchar(10),
Tsex char(2) check (Ssex='男' or Ssex='女'),
Ttitle varchar(10),
Collegeno varchar(10) not null,
Tphone int
)
4)Course表
create table Course
(
Cno varchar(5),
Cname varchar(15),
Zno char(10) not null,
Ccredit smallint,
Ctime smallint
)
5)ZY表(专业表)
create table ZY
(
Zno varchar(10) primary key,
Zname varchar(20),
Collegeno varchar(20)
)
6)SC表(选课表)
create table SC
(
Sno varchar(10),
Cno varchar(5),
grade float,
primary key(Sno,Cno)
)
7)SK表(授课表)
create table SK
(
Cno varchar(5),
Tno char(5),
primary key(Cno,Tno)
)
8)Award表(奖惩表)
create table Award
(
ano varchar(10) primary key,
Sno varchar(10) not null,
award varchar(20),
dengji varchar(20),
time varchar(20)
)
9)BJ表(班级表)
create table BJ
(
Bno int primary key,
Bname varchar(10) not null,
Zno char(10) not null,
Bnum smallint
)
5.2 建立触发器
1)插入触发器(拒绝插入)
delimiter |
create trigger stu_1 before insert on student for
begin
if new.Zno not in (select Zno from ZY)
then signal sqlstate '45000'
set message_text='An error defined by wch occured,
end if;
if new.Bno not in (select Bno from BJ)
then signal sqlstate '45001'
set message_text='An error defined by wch occured,
end if;
if new.Bname not in (select Bname from BJ)
then signal sqlstate '45002'
set message_text='An error defined by wch occured,
end if;
end;
|
2)建立触发器更改学生表学号信息时更新SC表学号
delimiter |
create trigger stu_2 after update on student
for each row
begin
update SC
set sno=new.sno
where sno=old.sno;
update award
set sno=new.sno
where sno=old.sno;
end;
|
3)删除触发器,删除学生信息时删除其他表中相关信息
delimiter |
create trigger stu_3 after delete on student
for each row
begin
delete from SC
where sno=old.sno;
end;
|
5.3 创建视图
create view xuesheng as select sno,sname,bno,zno f
6.数据库的测试
7.参考文献
8.附录
Student表
create table Student
(
Sno varchar(10) primary key,
Sname varchar(10) not null,
Ssex char(2) check (Ssex='男' or Ssex='女'),
Snation char(10) not null,
Spo varchar(8),
Sid varchar(20) not null,
Bno int not null,
Bname varchar(10),
Zno char(10) not null,
Snativeplace varchar(10),
Shome varchar(30),
Stime varchar(30)
)
college表
create table college
(
Collegeno varchar(10) primary key,
Collegename varchar(20),
Collegepname varchar(20)
)
teacher表
create table teacher
(
Tno char(10) primary key,
Tname varchar(10),
Tsex char(2) check (Ssex='男' or Ssex='女'),
Ttitle varchar(10),
Collegeno varchar(10) not null,
Tphone int
)
Course表
create table Course
(
Cno varchar(5),
Cname varchar(15),
Zno char(10) not null,
Ccredit smallint,
Ctime smallint
)
ZY表(专业表)
create table ZY
(
Zno varchar(10) primary key,
Zname varchar(20),
Collegeno varchar(20)
)
SC表(选课表)
create table SC
(
Sno varchar(10),
Cno varchar(5),
grade float,
primary key(Sno,Cno)
)
SK表(授课表)
create table SK
(
Cno varchar(5),
Tno char(5),
primary key(Cno,Tno)
)
Award表(奖惩表)
create table Award
(
ano varchar(10) primary key,
Sno varchar(10) not null,
award varchar(20),
dengji varchar(20),
time varchar(20)
)
BJ表(班级表)
create table BJ
(
Bno int primary key,
Bname varchar(10) not null,
Zno char(10) not null,
Bnum smallint
)
insert Student values('1809112139','杨杰莹','女','汉','
insert Student values('1809112147','赵宇','女','汉','团
insert College values('1110','信息技术与工程学院','张华')
insert College values('1111','music学院','彰化')
insert teacher values('6660','杜东升','男','辅导员','1110
insert teacher values('6661','杜小升','男','辅导员','1111
insert Course values('3330','数据库','计算机',2,2)
insert Course values('3331','数据结构','计算机',2,2)
insert Course values('3332','芭蕾','舞蹈',2,2),('3333'
insert ZY values('计算机','计算机专业','1110');
insert ZY values('音乐','音乐专业','1111');
insert SC values('1809112139','3330',99.99);
insert SC values('1809112140','3331',99.98);
insert SC values('1809112147','3332',99.98),('1809
insert SK values('3330','6660');
insert SK values('3331','6661');
insert BJ values('1801','001','计算机',50);
insert BJ values('1802','002','计算机',49);
添加外键约束:
CONSTRAINT 外键名 FOREIGN KEY 字段名 REFERENCES 主表名(主键名)
alter table Student add constraint no_1 foreign ke
alter table Student add constraint no_2 foreign ke
alter table teacher add constraint no_3 foreign ke
alter table Course add constraint no_4 foreign key
alter table ZY add constraint no_5 foreign key (Co
alter table Award add constraint no_6 foreign key
alter table BJ add constraint no_7 foreign key (Zn
更新入学时间:
delimiter |
create trigger stu_1 before insert on student
for each row
begin
set new.stime='2018年9月15日';
end;
|
建立触发器更改学生表学号信息时更新SC表学号
delimiter |
create trigger stu_2 after update on student
for each row
begin
update SC
set sno=new.sno
where sno=old.sno;
update award
set sno=new.sno
where sno=old.sno;
end;
|
update student set sno='100' where sname='赵大狗';
delimiter |
create trigger stu_3 after delete on student
for each row
begin
delete from SC
where sno=old.sno;
end;
|
学院表
delimiter |
create trigger College_1 after update on College
for each row
begin
update teacher
set Collegeno=new.Collegeno
where Collegeno=old.Collegeno;
update ZY
set Collegeno=new.Collegeno
where Collegeno=old.Collegeno;
end;
|
delimiter |
create trigger College_2 after delete on College
for each row
begin
delete from teacher
where Collegeno=old.Collegeno;
delete from ZY
where Collegeno=old.Collegeno;
end;
|
教师表
delimiter |
create trigger teacher_1 after update on teacher
for each row
begin
update SK
set Tno=new.Tno
where Tno=old.Tno;
end;
|
delimiter |
create trigger teacher_2 after delete on teacher
for each row
begin
delete from SK
where Tno=old.Tno;
end;
|
课程表
delimiter |
create trigger course_1 after update on course
for each row
begin
update sc
set cno=new.cno
where cno=old.cno;
update SK
set cno=new.cno
where cno=old.cno;
end;
|
delimiter |
create trigger course_2 after delete on course
for each row
begin
delete from sc
where cno=old.cno;
delete from sk
where cno=old.cno;
end;
|
专业表
delimiter |
create trigger ZY_1 after update on ZY
for each row
begin
update student
set Zno=new.Zno
where Zno=old.Zno;
update course
set Zno=new.Zno
where Zno=old.Zno;
update BJ
set Zno=new.Zno
where Zno=old.Zno;
end;
|
delimiter |
create trigger ZY_2 after delete on ZY
for each row
begin
delete from student
where Zno=old.Zno;
delete from course
where Zno=old.Zno;
delete from BJ
where Zno=old.Zno;
end;
|
班级表
delimiter |
create trigger BJ_1 after update on BJ
for each row
begin
update student
set Bno=new.Bno
where Bno=old.Bno;
update student
set Bname=new.Bname
where Bname=old.Bname;
end;
|
delimiter |
create trigger BJ_2 after delete on BJ
for each row
begin
delete from student
where Bno=old.Bno;
delete from student
where Bname=old.Bname;
end;
|
创建视图:
create view xuesheng as select sno,sname,bno,zno f
select * from xuesheng;
DROP VIEW xuesheng;
插入触发器(拒绝插入)
学生表
delimiter |
create trigger stu_1 before insert on student for
begin
if new.Zno not in (select Zno from ZY)
then signal sqlstate '45000'
set message_text='An error defined by wch occured,
end if;
if new.Bno not in (select Bno from BJ)
then signal sqlstate '45001'
set message_text='An error defined by wch occured,
end if;
if new.Bname not in (select Bname from BJ)
then signal sqlstate '45002'
set message_text='An error defined by wch occured,
end if;
end;
|
教师表
delimiter |
create trigger teacher_3 before insert on teacher
begin
if new.Collegeno not in (select Collegeno from Col
then signal sqlstate '45003'
set message_text='An error defined by wch occured,
end if;
end;
|
课程表
delimiter |
create trigger course_3 before insert on course fo
begin
if new.Zno not in (select Zno from ZY)
then signal sqlstate '45004'
set message_text='An error defined by wch occured,
end if;
end;
|
专业表
delimiter |
create trigger ZY_3 before insert on ZY for each r
begin
if new.Collegeno not in (select Collegeno from Col
then signal sqlstate '45005'
set message_text='An error defined by wch occured,
end if;
end;
|
Award表
delimiter |
create trigger Award_3 before insert on Award for
begin
if new.sno not in (select sno from student)
then signal sqlstate '45006'
set message_text='An error defined by wch occured,
end if;
end;
|
班级表
delimiter |
create trigger BJ_3 before insert on BJ for each r
begin
if new.Zno not in (select Zno from ZY)
then signal sqlstate '45007'
set message_text='An error defined by wch occured,
end if;
end;
|
delete from student where sno='100';
信息技术与工程学院 课 程 设 计 报 告 课程名称 数据库原理与应用 设计题目 学生学籍管理数据库设计 专业班级 计算机科学与技术 201801 学 姓 号______ 1809112139__________ 名_______ 杨杰莹____________ 指导教师 郭玉栋 成绩 2020 年 5 月 22 日 _______________________________________________________________________________________________________
目 录 1. 问题目的.......................................................................................................2 2.课程设计任务描述......................................................................................2 3. 数据库功能分析...........................................................................................2 3.1 信息输入功能................................................................................................2 3.2 数据修改或删除功能....................................................................................3 3.3 查询和统计功能............................................................................................3 4. 数据概念模型...............................................................................................4 4.1 实体属性图....................................................................................................4 4.2 数据逻辑模型................................................................................................7 5. 系统数据库的建立.....................................................................................10 5.1 建立表格......................................................................................................10 5.2 建立触发器..................................................................................................12 5.3 创建视图......................................................................................................13 6. 数据库的测试.............................................................................................13 7.参考文献....................................................................................................16 8.附录........................................................................................错误!未定义书签。 _______________________________________________________________________________________________________1
1. 问题目的 学生学籍管理系统是一个教育单位信息化管理中不可缺少的部分,它的内容对于学校 的决策者和管理者来说都至关重要,所以学生学籍管理系统应该能够为用户即学生和管理 者提供充足的信息和快捷的查询手段。但一直以来,人们使用传统人工的方式来管理文件 文档,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大 量的文件和数据,这对于查找、更新和维护都带来了不少困难。使用数据库对学生学籍信 息进行管理,具有手工管理无法比拟的优点,例如:检索迅速、查找方便、可靠性高、存 储量大、保密性好、寿命长、成本低、数据处理快速等。这些优点极大地提高了学生学籍 管理信息的效率,也是学生学籍管理科学化、正规化、与世界接轨的重要条件。因此,开 发学籍管理系统刻不容缓。 2.课程设计任务描述 高校学籍管理系统 功能要求: 实现学生信息、班级、院系、专业等的管理; 实现课程、学生成绩信息管理; 实现学生的奖惩信息管理; 创建规则用于限制性别项只能输入”男"或”女” 创建视图查询各个学生的学号、姓名、班级、专业、院系; 创建触发器当增加、删除学生和修改学生班级信息时自动修改相应班级学生人数; 建立数据库相关表之间的参照完整性约束。 3. 数据库功能分析 3.1 信息输入功能 1)输入学生基本信息,包括(学号,姓名,性别,班级号,班级,民族,政治面貌,身份 证号,籍贯,家庭住址,入学时间) 2)输入学院基本信息,包括(学院号,学院名称,院长名) 3)输入教师基本信息,包括(教工号,姓名,性别,学院号,电话) 4)输入课程基本信息,包括(课程号,课程名,专业号,学分,学时) _______________________________________________________________________________________________________2
5)输入专业基本信息,包括(专业号,专业名,学院号) 6)输入选课基本信息,包括(学号,课程号,成绩) 7)输入授课基本信息,包括(课程号,教工号) 8)输入奖惩基本信息,包括(奖励号,学号,奖励,等级,时间) 9)输入班级基本信息,包括(班级号,班级名,专业号,人数) 3.2 数据修改或删除功能 1)修改学生表的学号时同时修改选课表、奖励表中的学号 2)修改学院表中的学院号时,同时修改教师表、专业表中对应的学院号 3)修改教师表中的教工号时,同时修改授课表中的教工号 4)修改课程表中的课程号时,同时修改选课表和授课表中的课程号 5)修改专业表中的专业号时,同时修改学生表、班级表中的专业号 6)修改班级表中的班级号(班级名)时同时修改学生表中的班级号(班级名) 7)删除学生信息时同时删除学生在选课表中的信息 8)删除老师信息时同时删除老师在授课表中的信息 3.3 查询和统计功能 1)能够查询指定学生的基本信息 2)能够查询指定学院的基本信息 3)能够查询指定专业的基本信息 4)能够查询指定教师的基本信息 5)能够查询指定课程的基本信息 6)能够查询指定班级的基本信息 _______________________________________________________________________________________________________3
4. 数据概念模型 4.1 实体属性图 下以用 Peter Chen 表示法展现的实体联系(ER)图。 班级实体关系图如图 4-1 所示。 图 4-1 班级实体关系图 学院实体关系图如图 4-2 所示。 图 4-2 学院实体关系图 专业实体关系图如图 4-3 所示。 图 4-3 专业实体关系图 _______________________________________________________________________________________________________4
课程实体关系图如图 4-4 所示。 学生实体关系图如图 4-5 所示。 图 4-4 课程实体关系图 选课实体关系图如图 4-6 所示。 图 4-5 学生实体关系图 _______________________________________________________________________________________________________5 图 4-6 选课实体关系图
授课实体关系图如图 4-7 所示。 奖励实体关系图如图 4-8 所示。 图 4-7 授课实体关系图 教师实体关系图如图 4-9 所示。 图 4-8 奖励实体关系图 图 4-9 教师实体关系图 _______________________________________________________________________________________________________6
整体实体关系图如图 4-10 所示。 图 4-10 整体实体关系图 4.2 数据逻辑模型(数据库关系模式) 学生表如图 4-11 所示。 属性 学号 姓名 性别 班级号 班级 民族 政治面貌 身份证号 专业号 籍贯 列名 Sno Sname Ssex Bno Bname Snation Spo Sid Zno Snativeplace 类型 varchar(10) varchar(10) char(2) int varchar(10) char(10) varchar(8) varchar(20) char(10) varchar(10) 主码 Not null Not null Not null Not null Not null Not null _______________________________________________________________________________________________________7
分享到:
收藏