毕业设计管理系统 数据库设计

一、需求分析

1.1 可行性分析

1.1.1经济可行性

该管理系统的设计使用的是 Microsoft SQL Server2016数据库开发平台进行代码编写、运行和调试,该软件都可以免费的获得。 因此,在经济上本系统的开发是可行的。

1.1.2管理可行性

对系统进行管理只需要拥有计算机和互联网即可,互联网已经是生活必不可少的东西。由于本系统是由PC机作为服务器的,系统用户对系统操作都很方便,因此系统在管理上也是可行的。

1.2 功能需求

通过前面的分析已经明确系统用户共有如下3类,不同的用户可以通过系统进行不同的操作。分别如下:

1.2.1管理员功能需求

系统管理员作为系统维护的主体,在系统中的主要任务和操作有以下的方面:
(1)管理员登录:管理员需要登录后可以进入系统进行操作。
(2)管理审核题目:查看、添加、修改、删除。
(3) 管理员可以为没有选题的学生分配题目。
开题报告信息查询。
(4)导师管理。 管理员可以对导师进行管理(查看、添加、修改、删除各个信息)。
(5)学生管理。 管理员可以对学生进行管理(查看、添加、修改、删除各个信息)。
(6)权限管理。 管理员可以对用户进行权限设置。

1.2.2导师用户功能需求

老师作为系统的二级管理员,具有以下功能:
(1)用户登录。
(2)负责毕业论文(设计)参考题目的发布:查看、添加、修改、删除论文题目。
(3)修改个人信息。
(4)论文(设计)撰写过程中的评阅,输入学生成绩:查看,添加,无法修改。

1.2.3学生用户功能需求

学生作为系统普通用户,具有以下功能:
(1)用户登录。
(2)可以参加论文(设计)选题:添加,修改。
(3)修改个人信息。
(4)查看导师的评阅和最终的答辩成绩:仅查看。

1.3构造系统逻辑模型(数据流图)

1.3.1顶层数据流图

1.3.2数据流图

1.4系统实现过程(系统功能结构图)

这是毕业设计管理系统的功能模块图,该图是按照数据流图画出。

二、概念模型设计

2.1概念设计

根据需求分析的数据项和数据结构以及画出的功能模块图,可以规划出本系统的三大类用户:系统管理员、学生(毕业)和导师。由于管理员、学生和导师的权限和操作功能大不相同,因此在本系统中需要分别进行数据记录,首先需要如下3个用户数据实体。

  1. 学生数据实体:学号,姓名,性别,班级编号,专业编号,出生年月,论文编号,成绩。
  2. 导师数据实体: 导师编号,姓名,性别,专业编号,职称,办公地点,联系电话
  3. 管理员数据实体:管理员编号,姓名,性别,专业编号,联系电话。
    由于操作模块的名称对应权限,在程序初始化时这些数据都应该添加,按照各个用户使用论文管理系统的目的进行论文管理,因此还要包括如下的几个数据实体:
  4. 成绩数据实体:学号,平时成绩,答辩成绩,论文分数。
  5. 论文数据实体:论文编号,导师编号,论文名称,论文类型。
  6. 专业数据实体:专业编号,专业名称 ,学院名称,办公地点。

2.2E-R图设计

专业实体、导师实体、学生实体等各实体的E-R图。具体如下图所示。

2.2.1局部E-R图

2.2.1.1学生实体E-R图

2.2.1.2导师实体E-R图

2.2.1.3管理员实体E-R图

2.2.1.4专业实体E-R图

2.2.1.5论文实体E-R图

2.2.1.6成绩实体E-R图

2.2.2整体E-R图

三、逻辑结构设计

注:1.主键是能确定一条记录的唯一标识。
2.外键用于与另一张表的关联,是能确定另一张表记录的字段,用于保持数据的一致性。

3.1关系模式中范式的判断:

(1)学生(学号,姓名,性别,班级编号,专业编号,出生年月,论文编号,总评成绩),其中学号是主键;专业编号,论文编号是外键;这里所有属性都是不可再分的基本数据项,所以属于第一范式。由于存在多个学生可以选择同一论文题,论文编号依赖于学号,但学号不依赖于论文编号,各属性不完全依赖于主键,所以属于第二范式。这里的学号设置上与专业编号,班级编号没有任何关系,因此没有非主属性对于码的传递函数依赖,是第三范式。
也可以将联系中的选题单独设置关系模式(学号,论文编号,总评成绩)。
(2)导师(导师编号,姓名,性别,专业编号,职称,联系电话)导师编号是主键;专业编号是外键;这里所有属性都是不可再分的基本数据项,所以属于第一范式,各属性完全依赖于主键,所以属于第二范式,这里的导师编号设置上与专业编号没有任何关系,没有非主属性对于码的传递函数依赖,是第三范式。
(3)论文(论文编号,导师编号,论文名称,论文类型)论文编号是主键;导师编号是外键;这里所有属性都是不可再分的基本数据项,所以属于第一范式,每个论文题只对应一个导师,一个导师可以对应多个论文题,因此这里的导师编号依赖于论文编号,论文编号不依赖于导师编号,所以各属性完全依赖于主键,所以属于第二范式,这里的学号与专业编号,班级编号没有任何关系,因此没有非主属性对于码的传递函数依赖,是第三范式。
(4)专业(专业编号,专业名称,办公地点)专业编号是主键;这里所有属性都是不可再分的基本数据项,所以属于第一范式,各属性完全依赖于主键,所以属于第二范式,这里没有非主属性对于码的传递函数依赖,是第三范式。
(5)管理员(管理员编号,姓名,性别,专业编号,联系电话)管理员编号是主键,没有外键;这里所有属性都是不可再分的基本数据项,所以属于第一范式,各属性完全依赖于主键,所以属于第二范式,这里的管理员编号设置上与专业编号没有任何关系,没有非主属性对于码的传递函数依赖,是第三范式。
(6)成绩(学号,平时成绩,答辩成绩,论文分数)学号既是主键也是外键;之所以没有在该关系模式设置总评成绩,是因为学号→(平时成绩,答辩成绩,论文分数),而(平时成绩,答辩成绩,论文分数)→总评成绩,如果添加上这里就只能属于第二范式(不过事实上为了提高效率可以保留该数据冗余,不用再对关系模式进行分解),这里使用视图来处理这一关系。这里所有属性都是不可再分的基本数据项,所以属于第一范式,各属性完全依赖于主键,所以属于第二范式,没有非主属性对于码的传递函数依赖,是第三范式。
由此可做数据库的关系模型:

3.2数据库关系模型

3.3 子(外)模式的设计(代码见5.2)

目的:1.使用更符合用户习惯的别名。
2.针对不同级别的用户定义不同的视图,以保证系统的安全性。 3.简化用户对系统的使用:如果某些局部应用中经常要使用某些很复杂的查询,为了方便用户,可以将这些复杂查询定义为视图。
(1)可以将学号,姓名,平时成绩,答辩成绩,论文成绩,总评成绩放在一起成为一个视图,方便查询。
(2)导师表中直接显示专业编号,因为专业编号才是专业表的主键,为了达到第三范式,没有显示专业名称,可以建立这样的视图,直接显示导师的专业名称,也可显示其办公地点。
(3)为了简化使用,查询总评成绩时,将学生表中的学号,论文编号,总评成绩单独作为一个视图,即选题(学号,论文编号,总评成绩)。

3.4 数据字典

为了使该系统的各数据表的含义更加清晰,对其功能做如下描述:

成绩表

论文表

专业表

学生表

导师表

管理员表

四、创建关系图
(注意:关系图中表名上不能有“*”号,这表示没有保存的状态。)

五、物理结构设计

数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,为给定的数据库模型确定合理的存储结构和存取方法。

5.1建立索引

索引就是表中数据和相应存储位置的列表,使用索引可以大大减少数据的查询时间。

  1. 聚集索引(主键索引):在数据库里面,所有行数都会按照主键索引进行排序。
  2. 非聚集索引:就是给普通字段加上索引。
  3. 联合索引:就是好几个字段组成的索引,称为联合索引。
    对于一个确定的关系,通常在下列情况下可以考虑建立索引:
    (1)在主键属性列和外键属性列上通常都可以分别建立索引,不仅有助于唯一性检查和完整性检查,而且可以加快连接查询的速度。 
    (2) 以查询为主的关系可建立尽可能多的索引。 
    (3) 对等值连接,但满足条件的元组较少的查询可以考虑建立索引。 
    (4) 如果查询可以从索引直接得到结果而不必访问关系,则对此种查询可以建立索引。 
    该毕业论文管理系统数据库可建立以下索引:

聚集索引:

1.每个表的主键(学生学号,导师编号,管理员编号,论文编号,专业编号,学号)就是唯一性索引。
2.为了方便查询成绩,可以在学生表建立成绩降序的索引。

CREATE INDEX Rep_Scno ON 学生(总评成绩 DESC); 

3.为了方便查询学生,可以在学生表建立学号的唯一索引。

CREATE UNIQUE INDEX Stu_Sno ON 学生(学号);

非聚集索引:

4.为了方便查询成绩的具体信息,可以在成绩表建立答辩成绩,论文成绩降序的索引。

CREATE INDEX Re1_Scno ON 成绩(答辩成绩 DESC); CREATE INDEX Re2_Scno ON 成绩(论文成绩 DESC);

5.为了方便查询学生的专业,年龄信息,可以在学生表建立专业编号,出生年月的索引。

CREATE INDEX AGE_Scno ON 学生(专业编号 DESC); CREATE INDEX MAJ_Scno ON 学生(出生年月);

5.2建立视图

(1)将学号,平时成绩,答辩成绩,论文成绩,总评成绩放在一起成为一个视图,方便查询。

CREATEVIEWC_StudentASSELECT学生.学号,姓名,平时成绩,答辩成绩,论文成绩,总评成绩FROM学生,成绩WHERE 学生.学号=成绩.学号WITH CHECK OPTION

(2)建立直接显示导师的专业名称的视图。

CREATEVIEWC_TeacherASSELECT导师.导师编号,姓名,导师.专业编号,专业.专业名称,专业.办公地点,联系电话FROM导师,专业WHERE 导师.导师编号=专业.专业编号WITH CHECK OPTION

(3)选题(学号,论文编号,总评成绩)。

CREATEVIEWC_SELECTASSELECT学号,姓名,论文编号,总评成绩FROM学生WITH CHECK OPTION

六、数据库实施

6.1创建基本表

6.1.1创建数据库和使用

CREATEDATABASE sjkUSE sjk

6.1.2创建数据表

/*创建论文表 */createtable 论文( 导师编号 char(6),论文编号 char(6),   论文名称 char(30),   论文类型 char(10),primarykey(论文编号),)/*创建专业表 */createtable 专业( 专业编号 char(6),    专业名称 char(30),     办公地点 char(30),primarykey(专业编号))/*创建管理员表 */create table 管理员(管理员编号 smallint,姓名 char(8),性别 char(2),专业编号 char(6),联系电话 char(12),primary key (管理员编号),foreign key (专业编号) references 专业(专业编号))/*创建导师表 */create table 导师(导师编号 char(6) ,姓名char(8) not null,/*约束不能为空*/性别 char(2) not null, /*约束不能为空*/专业编号 char(6) not null, /*约束不能为空*/职称 char(10),联系电话 char(12),primary key (导师编号), /*导师编号为主键,必须唯一,不为空*/foreign key (专业编号) references 专业(专业编号))/*创建学生表 */create table 学生(学号char(13),姓名 char(8) not null,/*约束不能为空*/性别 char(2) not null, /*约束不能为空*/班级编号 char(6) not null, /*约束不能为空*/专业编号 char(6) not null, /*约束不能为空*/出生年月 datetime not null, /*约束不能为空*/论文编号 char(6),总评成绩 smallint,primary key (学号), /*学号为主键,必须唯一,不为空*/foreign key (论文编号) references 论文(论文编号),foreign key (专业编号) references 专业(专业编号))/*创建成绩表 */create table 成绩(学号 char(13),平时成绩 smallint,论文成绩 smallint, 答辩成绩 smallint,primary key (学号),foreign key (学号) references 学生(学号),)

结果:命令已成功完成。

6.1.3创建约束条件

PS:由于还有部分外键约束没有添加,所以需要再添加外键约束。

ALTER TABLE 论文ADD CONSTRAINT FK__论文__导师FOREIGN KEY(导师编号)REFERENCES 导师(导师编号)ON DELETE CASCADE

结果:命令已成功完成。

6.2创建用户操作

6.2.1创建学生,导师的登录用户、数据库用户,密码默认123456
/*创建学生用户 */EXEC sp_addlogin '学生','123456','sjk'Use sjkExec sp_grantdbaccess '学生'/*创建导师用户 */EXEC sp_addlogin '导师','123456','sjk'Use sjkExec sp_grantdbaccess '导师'

结果:命令已成功完成。

6.2.2创建管理员的登录用户、数据库用户,密码默认123456

EXEC sp_addlogin '管理员','123456','sjk'Use sjkExec sp_grantdbaccess '管理员'

结果:命令已成功完成。

6.3分配权限操作

6.3.1学生用户权限

/*个人信息的管理*/GRANT SELECT,UPDATE ON学生TO 学生;/*导师表的查询*/GRANT SELECT ON 导师TO 学生;/*成绩的查询,*/GRANT SELECT ON 成绩TO 学生;/*专业的查询*/GRANT SELECT ON 专业TO 学生;/*论文表的查询*/GRANT SELECT ON论文TO 学生;

6.3.2导师用户权限

/*学生表的增删查改*/GRANT SELECT ON学生TO 导师;/*个人信息的管理*/GRANT SELECT,UPDATE ON 导师TO 导师;/*成绩的查询,插入*/GRANT SELECT,INSERT ON 成绩TO 导师;/*专业的查询*/GRANT SELECT ON 专业TO 导师;/*论文表的增删查改*/GRANT SELECT,DELETE,INSERT,UPDATE ON论文TO 导师;

6.3.3管理员用户权限

/*学生表的增删查改*/GRANT SELECT,DELETE,INSERT,UPDATE ON学生TO 管理员;/*教师表的增删查改*/GRANT SELECT,DELETE,INSERT,UPDATE ON导师TO 管理员;/*论文表的增删查改*/GRANT SELECT,DELETE,INSERT,UPDATE ON论文TO 管理员;/*个人信息的查询*/GRANT SELECT,UPDATE ON 管理员TO 管理员;/*成绩的查询*/GRANT SELECT,DELETE,INSERT,UPDATE ON 成绩TO 管理员;/*专业的查询*/GRANT SELECT,DELETE,INSERT,UPDATE ON 专业TO 管理员;

结果:命令已成功完成。

6.4插入操作

6.4.1插入基本数据(学生表,导师表,管理员表,专业表)

/*插入基本数据*//*插入专业表*/insert into 专业 values ('1000','计算机科学与技术','工科楼')insert into 专业values ('1001','软件工程','理科楼')insert into 专业values ('1002','水利大类','文科楼')insert into 专业values ('1003','给排水科学与技术','综教楼')insert into 专业values ('1004','给排水科学','综实楼')/*用于删除操作*//*插入导师表*/insert into 导师 values ('002201','李琦','男' ,'1000','讲师','19923419234')insert into 导师 values ('002202','李奇微','男','1001','副教授','19923452345')insert into 导师 values ('002203','刘益斌','女','1002','教授','16678766345')insert into 导师 values ('002204','刘益','男','1003','讲师','14590008888')insert into 导师 values ('002205','王学','男','1000','副教授','15834568888')insert into 导师 values ('002206','李平','男','1002','讲师', '15123453421')insert into 导师 values ('002207','王强','男','1003','副教授', '18834523454')insert into 导师 values ('002208','刘君','女','1001','教授','15530201231')insert into 导师 values ('002209','刘平','女','1004','教授','15530201881')/*用于删除操作*//*插入管理员表*/insert into 管理员 values (001301,'田新','男','1000','19968419234')insert into 管理员 values (001302,'魏新','男','1001','18834545254')insert into 管理员 values (001303,'周新','男','1002','16530201931')insert into 管理员 values (001304,'李新','男','1003','15577771881')/*插入学生表*/insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180001','田新民','男', '03/30/2000', '0001', '1000')insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180002','王新','男', '09/04/2000','0001','1000')insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180003','田新民','男', '03/04/2000','0001','1000') /*同名检测*/insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180004','王新','男', '09/04/2000','0002','1000')/*生日相同检测*/insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180005','田新民','男', '03/09/2000','0002','1000') /*同名检测*/insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180006','王新','男', '09/04/2001','0003','1001')insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180007','郭黎明','男', '08/24/2000','0003','1001')insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180008','郭黎','女', '09/04/2001','0004','1001')insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180009','何明慧','女', '01/04/2002','0004','1001')insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180010','何明','男', '02/22/2001','0004','1001')insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180011','姜明明','男', '03/23/2002','0005','1002')insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180012','姜明明','女', '10/02/2001','0005','1002')/*同名检测*/insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180013','何漓江','男', '09/03/2000','0005','1002')insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180014','何漓','女', '08/22/2001','0006','1002')insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180015','康嘉家','男', '05/23/2000','0006','1002')insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180016','康纪平','女', '04/22/2001','0007','1003')insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180017','包立琪','女', '09/12/2001','0007','1003')insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180018','王海洋','男', '02/03/2000','0008','1003')insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180019','王立平','女', '12/12/2001','0008','1003')insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180020','王立','男', '04/22/2001','0008','1003')insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180021','假学生','男','04/22/2001','0008','1003')/*用于删除操作*/insert into 学生(学号,姓名,性别,出生年月,班级编号,专业编号)values ('20180022','空空','男', '04/22/2002','0008','1003')/*用于查询操作*/

6.4.2导师用户插入成绩表

/*插入成绩表*/insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180001',90,78,78)insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180002',95,90,68)insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180003',99,89,90)insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180004',95,78,90)insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180005',60,60,60)insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180006',80,75,70)insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180007',78,90,45)insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180008',85,90,80)insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180009',95,67,80)insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180010',89,79,90)insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180011',78,90,67)insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180012',67,54,24)insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180013',89,67,34)insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180014',100,90,90)insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180015',95,89,80)insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180016',96,99,93)insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180017',90,90,90)insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180018',80,80,80)insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180019',90,88,88)insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180020',97,78,90)insert into 成绩(学号,平时成绩,论文成绩,答辩成绩)values ('20180021',88,78,90)/*用于删除操作*/

结果:(1 行受影响)….

6.4.3管理员用户插入论文表

/*插入论文表*/insert into 论文 values('002201','003601','论文1','论证型')insert into 论文 values('002201','003602','论文2','应用型')insert into 论文 values('002201','003603','论文3','研究型')insert into 论文 values('002201','003604','论文4','论证型')insert into 论文 values('002202','003605','论文5','研究型')insert into 论文 values('002202','003606','论文6','应用型')insert into 论文 values('002202','003607','论文7','论证型')insert into 论文 values('002202','003608','论文8','研究型')insert into 论文 values('002203','003609','论文9','理论型')insert into 论文 values('002203','003610','论文10','研究型')insert into 论文 values('002203','003611','论文11','应用型')insert into 论文 values('002203','003612','论文12','研究型')insert into 论文 values('002204','003613','论文13','论证型')insert into 论文 values('002204','003614','论文14','研究型')insert into 论文 values('002204','003615','论文15','应用型')insert into 论文 values('002204','003616','论文16','研究型')insert into 论文 values('002204','003617','论文17','论证型')insert into 论文 values('002205','003618','论文18','理论型')insert into 论文 values('002205','003619','论文19','研究型')insert into 论文 values('002205','003620','论文20','论证型')

结果:(1 行受影响)….

6.5修改操作

6.5.1学生用户修改个人信息,选论文

/*个人信息管理*/update 学生 set 姓名='田一' where 学号='20180003'update 学生 set 姓名='田中军' where 学号='20180005'/*选论文题*/update 学生 set 论文编号='003601' where 学号='20180001'update 学生 set 论文编号='003602' where 学号='20180002'update 学生 set 论文编号='003601' where 学号='20180003'update 学生 set 论文编号='003602' where 学号='20180004'update 学生 set 论文编号='003603' where 学号='20180005'update 学生 set 论文编号='003604' where 学号='20180006'update 学生 set 论文编号='003605' where 学号='20180007'update 学生 set 论文编号='003606' where 学号='20180008'update 学生 set 论文编号='003607' where 学号='20180009'update 学生 set 论文编号='003607' where 学号='20180010'update 学生 set 论文编号='003608' where 学号='20180011'update 学生 set 论文编号='003608' where 学号='20180012'update 学生 set 论文编号='003609' where 学号='20180013'update 学生 set 论文编号='003610' where 学号='20180014'update 学生 set 论文编号='003611' where 学号='20180015'update 学生 set 论文编号='003612' where 学号='20180016'update 学生 set 论文编号='003613' where 学号='20180017'update 学生 set 论文编号='003614' where 学号='20180018'update 学生 set 论文编号='003614' where 学号='20180019'update 学生 set 论文编号='003615' where 学号='20180020'

6.5.2导师用户修改个人信息与论文表,无法修改成绩

update 导师 set 姓名='李奇' where 姓名='李奇微'update 论文 set 论文类型='应用型' where 论文编号='003606'

(结果:(1 行受影响)…)

update 成绩 set 平时成绩=100 where 学号='20180001'

(结果:消息 229,级别 14,状态 5,第 3 行
拒绝了对对象 ‘成绩’ (数据库 ‘’,架构 ‘dbo’)的 UPDATE 权限。)

6.5.3管理用户修改个人信息,学生、导师、成绩、论文表

/计算总成绩/

update 学生 set 总评成绩=平时成绩*0.2+论文成绩*0.4+答辩成绩*0.4FROM 成绩WHERE 学生.学号=成绩.学号

(结果:(21 行受影响)…)
/* 修改个人信息,学生、导师、成绩、论文表*/

update 成绩 set 平时成绩=95 where 学号='20180001'update 管理员 set 姓名='田田' where 姓名='田新民'update 学生 set 姓名='田中' where 姓名='田新民'update 导师 set 姓名='李奇' where 姓名='李奇微'update 论文 set 论文类型='研究型' where 论文编号='003606'

(结果:(1 行受影响)…)

6.6删除操作

PS:学生用户没有任何删除权限。

6.6.1导师用户删除论文表

deletefrom 论文 where 论文编号 = '003616'deletefrom 论文 where 论文编号 = '003617'

6.6.2管理员用户删除论文,学生,导师,成绩表

/由于存在外键约束,需要注意删除的顺序/

/*删除论文表*/deletefrom 论文 where 论文编号 = '003618'deletefrom 论文 where 论文编号 = '003619'deletefrom 论文 where 论文编号 = '003620'/*删除成绩表*/deletefrom 成绩 where 学号 = '20180021'/*删除学生表*/deletefrom 学生 where 学号 = '20180021'/*删除导师表*/deletefrom 导师 where 导师编号 = '002209'/*删除专业表*/deletefrom 专业 where 专业编号 = '1004'