数据库系统设计实验报告

时间:2024.4.21

数据库系统设计实验报告——教务管理系统

数据库系统设计实验报告

――教务管理系统

学院: 计算机科学与技术

专业:软件工程

班级:

学号:

姓名:

指导老师:

1

数据库系统设计实验报告——教务管理系统

一、概述

项目背景:数据库课程设计

系统名称:教务管理系统

开发环境:SQL Server 2008

二、需求分析

1、系统的概述

? 一个学校由很多个学院组成,每个学院有多个专业,每个专业有1个或

者多个班级。一个学生只属于1个班级,学生有姓名、学号、性别、身份证号、入学时间等属性。

? 每个专业的每个年级都有对应的教学计划。教学计划指定了这个专业这

个年级的某门课程在那个学期上,学分、学时是多少。每个学院都设置有1个教务秘书,这些信息都由教务秘书进行输入。每个院系的课程都有自己的唯一编码,比如计算机系上的C语言,和电子系上的C语言,虽然都是同一门课,但是编码是不同的。但是同一个院系中的相同的课程,课程代码是唯一的。比如计算机学院的07计算机软件专业和计算机学院的07计算机科学专业都有C语言课程,这两门课程的课程代码是相同的。

? 教务秘书在每个学期的中间时刻,为下一个学期进行排课,排课的内容

根据教学计划,比如08计算机软件专业的学生,在2009-20xx年第2学期上的课程,可以通过教学计划得知要上什么课程,然后对这些课程安排上课教师(比如陈越)、上课时间(比如星期2,第1-2节)和地点(理工楼234),有的课程是单周上,有的双周,也有是每周都上的。

? 在每个学期期末,学生登录到网站上选择下一个学期需要上的课,选择

的时刻,可以选择是否需要教材,如果某门课程的人数选满了,则不能给任何学生选择了。

? 学生根据选择的课程进行上课,参加考试。每个老师可以用自己的用户

名和密码登陆网站,选择这个学期自己所教的课程(一个老师可以上多个班级的课程),输入这个班级的成绩,成绩分为期末考试成绩、期中考试成绩、平时成绩、实验成绩以及总评成绩。这些成绩都需要进行存储。 ? 为了保证安全性,老师输入的成绩并不是直接放到最终的成绩表中,而

是放在一个临时的表中,只有当教务秘书审核过后,才导入到最终的成绩表中。

? 学生在老师输入完成绩、教务秘书审核后,可以登录到网上查询自己某

2

数据库系统设计实验报告——教务管理系统

个学期的成绩。成绩数据非常重要,为了防止教务秘书随意更改成绩,需要对成绩表的插入、删除、修改做出监控,凡是对成绩表做了上述操作,必须记录下来,放在另外一个表中,可以称为成绩变动记录表,这个表要求记录在什么时候,更新了那个同学那门课的成绩数据,原始值是什么,现在值是什么。如果是插入,则原始值为NULL,如果是删除,则现在值是NULL。

? 为了在数据库层次上保证数据库的安全性,在数据库中,建立两类数据

库用户,一类是教务秘书访问的,称为U_JWMS, 这个用户能对除了成绩变动记录表不能访问外,可以对所有的数据进行修改、选择、删除、插入。另外一类用户成为U_Web, 是为Web用户访问所设计的。这类用户只对学生选课的数据、老师输入成绩的临时的表据有删除、插入、修改权限,其它的表只有只读的权限。

3

数据库系统设计实验报告——教务管理系统

2、教务系统的E-R图

数据库系统设计实验报告

4

数据库系统设计实验报告——教务管理系统

3、数据库表

(1)学生信息表

数据库系统设计实验报告

数据库系统设计实验报告

(2)教师表

数据库系统设计实验报告

(3)班级信息表

5

数据库系统设计实验报告——教务管理系统

(4)学院表

数据库系统设计实验报告

(5)教务秘书信息表

数据库系统设计实验报告

数据库系统设计实验报告

(6)专业信息表

6

数据库系统设计实验报告——教务管理系统

(7)教学计划表

数据库系统设计实验报告

数据库系统设计实验报告

(8)课程表

数据库系统设计实验报告

(9)学生选课表

7

数据库系统设计实验报告——教务管理系统

(10)教师上课表

数据库系统设计实验报告

(11) 临时成绩表

数据库系统设计实验报告

(12) 最终成绩表

数据库系统设计实验报告

8

数据库系统设计实验报告——教务管理系统

(13) 成绩变动记录表

数据库系统设计实验报告

9

数据库系统设计实验报告——教务管理系统

三、程序清单

/*数据库的建立*/

create database [JWGL] on primary

(name = 'JWGL',

filename = 'd:\我的文件\SQL\JWGL.mdf',

size = 4096kb,

maxsize = unlimited,

filegrowth = 1024kb

)

log on

(name = 'JWGL_log',

filename = 'd:\我的文件\SQL\JWGL_log.ldf', size = 1024kb,

maxsize = 2048gb,

filegrowth = 10%

)

Go

/*基本表的建立*/

/*学生表*/

use JWGL

create table dbo.Student

(student_name nvarchar(8) null,

student_id nvarchar(10) primary key not null, student_tender nvarchar (8) null,

date_birth datetime null,

identity_no nvarchar(10) null,

date_entrance datetime null,

class_id nvarchar(10) not null,

major_id nvarchar(10) not null,

college_id nvarchar(10) not null,

)

10

数据库系统设计实验报告——教务管理系统

/*班级表*/

use JWGL

create table dbo.Class

(class_id nvarchar(10) primary key not null,

class_name nvarchar(20) null,

class_accom int null,

grade int null,

major_id nvarchar(10) not null

)

/*专业表*/

use JWGL

create table dbo.Major

(major_id nvarchar(10) primary key not null,

major_name nvarchar(20) null,

count_class int null,

college_id nvarchar(10) not null

)

/*教务秘书表*/

use JWGL

create table dbo.Secretary

(secretary_id nvarchar(10) primary key not null,

Secretary_name nvarchar(8) null default '教务秘书',

college_id nvarchar(10) not null,

secretary_usename nvarchar(10) null default 'secretary', secretary_password nvarchar(10) null default '0000' )

/*学院表*/

create table dbo.College

(college_id nvarchar(10) primary key not null,

college_name nvarchar(20) null,

count_major int null,

secretary_id nvarchar(10) not null

)

11

数据库系统设计实验报告——教务管理系统

/*教学计划表*/

use JWGL

create table dbo.TeachingPlan

(college_id nvarchar(10) not null,

major_id nvarchar(10) primary key(major_id,course_id) not null ,

grade int not null,

term int not null,

course_id nvarchar(10) not null,

course_name nvarchar(20) null,

course_credit real null,

course_length real null,

accommodate int null default '0'

)

/*课程表*/

use JWGL

create table dbo.Course

(course_id nvarchar(10) primary key(course_id,class_id) not null,

teacher_id nvarchar(10) null,

class_time datetime null,

class_addr nvarchar(20) null,

week nvarchar(10) null default '单双周均上',

term int null,

class_id nvarchar(10) not null,

major_id nvarchar(10) null,

)

/*学生选课表*/

use JWGL

create table dbo.CourseElect

(student_id nvarchar(10) primary key(student_id,course_id) not null,

term int null,

course_id nvarchar(10) not null,

textbook nvarchar(2) null default '是',

student_full nvarchar(2) null default '否')

12

数据库系统设计实验报告——教务管理系统

/* 教师表*/

use JWGL

create table dbo.Teacher

(teacher_name nvarchar(8) null,

teacher_id nvarchar(10) primary key not null,

teacher_usename nvarchar(10) null default 'teacher', teacher_password nvarchar(10) null default '0000'

)

/* 教师上课表*/

use JWGL

create table dbo.Teaching

(teacher_id nvarchar(10)

key(teacher_id,course_id,class_id)not null,

teacher_name nvarchar(8) null,

term int null,

major_id nvarchar(10) null,

class_id nvarchar(10) not null,

course_id nvarchar(10) not null

)

/*成绩临时表*/

use JWGL

create table dbo.TempScore

(class_id nvarchar(10) not null,

student_id nvarchar(10) primary key(student_id,course_id) not null,

course_id nvarchar(10) not null,

term int null,

score_terminal real null default '0',

score_mid real null default '0',

score_ordtime real null default '0',

score_expe real null default '0',

score_final real null default '0',

course_credit real null default '0'

)

13

primary

数据库系统设计实验报告——教务管理系统

/*最终成绩表*/

use JWGL

create table dbo.FinalScore

(class_id nvarchar(10) not null,

student_id nvarchar(10) primary key(student_id,course_id) not null,

course_id nvarchar(10) not null,

term int null,

score_terminal real null default '0',

score_mid real null default '0',

score_ordtime real null default '0',

score_expe real null default '0',

score_final real null default '0',

course_credit real null default '0'

)

/*成绩记录变动表*/

use JWGL

create table dbo.ModifyLog

(student_id nvarchar(10) primary key(student_id,course_id) not null,

course_id nvarchar(10) not null,

update_time datetime null,

score_pri_terminal real null,

score_pri_mid real null,

score_pri_ordtime real null,

score_pri_expe real null,

score_pri_final real null,

pri_course_credit real null,

score_cur_terminal real null,

score_cur_mid real null,

score_cur_ordtime real null,

score_cur_expe real null,

score_cur_final real null,

cur_course_credit real null

)

14

数据库系统设计实验报告——教务管理系统

/*检查约束*/

use JWGL

alter table Student

add constraint ck_student_tender

check (student_tender = '男' or student_tender = '女')

alter table Class

add constraint ck_class_accom

check (class_accom >= 0)

go

alter table Major

add constraint ck_count_class

check (count_class >= 0)

go

alter table College

add constraint ck_count_major

check (count_major >= 0)

go

alter table TeachingPlan

add constraint ck_course_credit

check (course_credit >= 0)

alter table TeachingPlan

add constraint ck_course_length

check (course_length >= 0)

alter table TeachingPlan

add constraint ck_accommodate

check (accommodate >= 0)

go

alter table Course

add constraint ck_week

check (week = '单周' or week = '双周' or week =

go

alter table CourseElect

add constraint ck_textbook

check (textbook = '是' or textbook = '否')

单双周') 15 '

数据库系统设计实验报告——教务管理系统

alter table CourseElect

add constraint ck_student_full

check (student_full = '是' or student_full ='否') go

alter table TempScore

add constraint ck_score_ordtime_temp

check (score_ordtime >= 0)

alter table TempScore

add constraint ck_score_mid_temp

check (score_mid >= 0)

alter table TempScore

add constraint ck_score_terminal_temp

check (score_terminal >= 0)

alter table TempScore

add constraint ck_score_expe_temp

check (score_expe >= 0)

alter table TempScore

add constraint ck_score_final_temp

check (score_final >= 0)

alter table TempScore

add constraint ck_course_credit_temp

check (course_credit >= 0)

go

alter table FinalScore

add constraint ck_score_ordtime_final

check (score_ordtime >= 0)

alter table FinalScore

add constraint ck_score_mid_final

check (score_mid >= 0)

alter table FinalScore

add constraint ck_score_expe_final

check (score_expe >= 0)

alter table FinalScore

add constraint ck_score_terminal_final

check (score_terminal >= 0)

alter table FinalScore

add constraint ck_score_final_final

check (score_final >= 0)

alter table FinalScore

add constraint ck_course_credit_final

check (course_credit >= 0)

16

数据库系统设计实验报告——教务管理系统

go

/*外键约束*/

alter table Student

add constraint fk_class_id_student_class

foreign key (class_id)

references Class(class_id)

alter table Student

add constraint fk_major_id_student_major

foreign key (major_id)

references Major(major_id)

alter table Student

add constraint fk_college_id_student_college foreign key (college_id)

references College(college_id)

go

alter table Class

add constraint fk_major_id_class_major

foreign key (major_id)

references Major(major_id)

go

alter table Major

add constraint fk_college_id_major_college

foreign key (college_id)

references College(college_id)

go

alter table College

add constraint fk_secretary_id_college_secrectary foreign key (secretary_id)

references Secretary(secretary_id)

go

alter table Secretary

add constraint fk_college_id_secrectary_college foreign key (college_id)

references College(college_id)

go

17

数据库系统设计实验报告——教务管理系统

alter table TeachingPlan

add constraint fk_college_id_plan_college foreign key (college_id)

references College(college_id)

go

alter table Course

add constraint fk_teacher_id_course_teacher foreign key (teacher_id)

references Teacher(teacher_id)

go

alter table Course

add constraint fk_major_id_course_major foreign key (major_id)

references Major(major_id)

go

alter table TempScore

add constraint fk_class_id_temp_class foreign key (class_id)

references Class(class_id)

go

alter table FinalScore

add constraint fk_class_id_score_class foreign key (class_id)

references Class(class_id)

go

18

数据库系统设计实验报告——教务管理系统

/*建立用户,分配权限*/

/*U_JWMS, 能对除了成绩变动记录表不能访问外,

可以对所有的数据进行修改、选择、删除、插入。*/

USE [JWGL]

GO

CREATE LOGIN [JINGQI-PC\Administrator] FROM WINDOWS WITH DEFAULT_DATABASE=[JWGL]

GO

USE [JWGL]

GO

CREATE USER [U_JWMS] FOR LOGIN [JINGQI-PC\Administrator] GO

/*把class等表的SELECT,INSERT,DELETE,UPDATE权限授予用户

U_JWMS*/

GRANT SELECT,INSERT,DELETE,UPDATE

ON Class TO U_JWMS WITH GRANT OPTION

GRANT SELECT,INSERT,DELETE,UPDATE

ON College TO U_JWMS WITH GRANT OPTION

GRANT SELECT,INSERT,DELETE,UPDATE

ON Course TO U_JWMS WITH GRANT OPTION

GRANT SELECT,INSERT,DELETE,UPDATE

ON TeachingPlan TO U_JWMS WITH GRANT OPTION

GRANT SELECT,INSERT,DELETE,UPDATE

ON Major TO U_JWMS WITH GRANT OPTION

GRANT SELECT,INSERT,DELETE,UPDATE

ON FinalScore TO U_JWMS WITH GRANT OPTION

GRANT SELECT,INSERT,DELETE,UPDATE

ON CourseElect TO U_JWMS WITH GRANT OPTION

GRANT SELECT,INSERT,DELETE,UPDATE

ON Secretary TO U_JWMS WITH GRANT OPTION

GRANT SELECT,INSERT,DELETE,UPDATE

ON Student TO U_JWMS WITH GRANT OPTION

GRANT SELECT,INSERT,DELETE,UPDATE

ON Teacher TO U_JWMS WITH GRANT OPTION

GRANT SELECT,INSERT,DELETE,UPDATE

ON Teaching TO U_JWMS WITH GRANT OPTION

GRANT SELECT,INSERT,DELETE,UPDATE

ON TempScore TO U_JWMS WITH GRANT OPTION

19

数据库系统设计实验报告——教务管理系统

DENY View Definition ON ModifyLog TO U_JWMS go

/*U_Web, 是为Web用户访问所设计的。

只对学生选课的数据、老师输入成绩的临时的表据有删除、插入、修改权限,其它的表只有只读的权限。*/

USE [JWGL]

GO

CREATE LOGIN [JINGQI-PC\guest] FROM WINDOWS WITH

DEFAULT_DATABASE=[JWGL]

GO

use JWGL

CREATE USER [U_Web] FOR LOGIN [JINGQI-PC\guest]

GRANT INSERT,DELETE,UPDATE ON TempScore TO U_Web GRANT INSERT,DELETE,UPDATE ON CourseElect TO U_Webgo

20

数据库系统设计实验报告——教务管理系统

--触发器的设计―――完成记录对成绩表进行进行修改时所更改的内容 use JWGL

create trigger tri_score_update

on dbo.FinalScore

after update

as

if (

update(score_terminal) or

update(score_mid) or

update(score_ordtime) or

update(score_expe) or

update(score_final) or

update(course_credit)

)

begin

insert into dbo.ModifyLog

(

student_id,

course_id,

update_time,

score_pri_terminal,

score_pri_mid,

score_pri_ordtime,

score_pri_expe,

score_pri_final,

pri_course_credit,

score_cur_terminal,

score_cur_mid,

score_cur_ordtime,

score_cur_expe,

score_cur_final,

cur_course_credit

)

Select

Deleted.student_id,

Deleted.course_id,

getdate(),

Deleted.score_terminal,

Deleted.score_mid,

Deleted.score_ordtime,

Deleted.score_expe,

Deleted.score_final,

Deleted.course_credit,

21

数据库系统设计实验报告——教务管理系统

Inserted.score_terminal,

Inserted.score_mid,

Inserted.score_ordtime,

Inserted.score_expe,

Inserted.score_final,

Inserted.course_credit,

from Deleted,Inserted

end

go

--计算平均成绩的函数―――完成计算学生平均成绩的功能

use JWGL

create function avg_score(@student_id nvarchar(10)) returns table

as

return (

select

avg(score_terminal) as avg_score_terminal,

avg(score_mid) as avg_score_mid,

avg(score_ordtime) as avg_score_ordtime,

avg(score_expe) as avg_score_expe,

avg(score_final) as avg_score_final

from score where student_id = @student_id)

go

四、心得体会

数据库在软件以及网络应用中被广泛采用,学好数据库非常重要;通过这次试验,我加深了对数据库的理解,熟悉了SQL Server的应用;但是要达到熟练应用的程度,还需继续努力!

22

更多相关推荐:
数据库设计实验报告

HEFEIUNIVERSITY数据库设计报告题目产品销售系统系别电子信息与电气工程系班级09级电气信息类5班学号0905075034姓名黄张祥指导老师方小红完成时间20xx510目录1问题描述311背景312数...

数据库设计 实验报告

武夷学院实验报告课程名称管理信息系统项目名称数据库设计姓名苏松仑专业12级物流管理班级2班学号20xx42120xx同组成员20xx42120xx20xx42120xx1注1实验准备部分包括实验环境准备和实验所...

数据库实验报告

西安科技大学数据库原理及应用课程设计报告题目寄宿学校管理信息系统的设计与实现学院计算机科学与技术学院专业及班级软件工程1202及1203班学号120xx10206120xx10207120xx10303姓名李倩...

数据库应用系统设计实验报告

计算机与信息工程系数据库应用系统设计实验报告专业计算机科学与技术班级计科072班学号姓名指导老师实验一数据库应用系统设计入门一实验目的与要求通过一个简单程序示例熟悉ADONET编程入门二实验环境1Windows...

数据库项目设计实验报告

数据库项目设计实验报告项目名称人力资源管理系统项目需求为了处理公司人事资料可以完成对人事资料进行查询修改增加删除及存储并能快速准确的完成档案资料的统计和汇总工作并可输出报表人力资源管理系统主要用于员工个人资料的...

数据库课程设计实验报告1

数据库课程设计学生成绩管理系统一系统定义二需求分析一系统综合需求二功能需求三数据需求1数据流图2数据字典三系统设计一逻辑结构设计二概念结构设计ER图四详细设计一开发平台及工具二数据库分析五源程序清单六设计心得一...

数据库系统设计实验报告

数据库系统设计实验报告课程数据库系统原理与应用姓名沈凯丽专业测绘工程121班学号20xx18080109指导老师张茂震实验一数据库系统设计一实验目的掌握数据库设计的基本技术熟悉数据库设计的每个步骤中的任务和实施...

数据库课程设计实验报告

11课题意义21世纪是信息化的时代信息化以更快捷更方便为目标来融入各行各业学校也不能例外当前我国的学校正在加紧实施信息化建设其中学生管理是相当重要的一部分12课题开发的目的本课题为了适应信息时代发展提高学院工作...

高级数据库设计实验总结

高级数据库设计实验总结学号姓名班级指导老师实验软件SQLSEVER20xxR2ERWin70ERWinr9等实验目的在原有的学习了结构化查询语言SQL语言基础上了解了数据库的简要发展史加深理解数据库的查询优化分...

数据库实验报告

华北电力大学实验报告实验名称课程名称数据库系统概论专业班级计科0801学生姓名牛雪朋号20xx09010117成绩指导教师王保义实验日期20xx427学华北电力大学实验报告221华北电力大学实验报告321华北电...

数据库课程设计实验报告

西安郵電學院数据库课程设计报告书系部名称学生姓名专业名称班级时间计算机20xx年12月20日至20xx年12月30日一本课程设计的目的熟悉数据库的语句语法将数据库运用到实际的项目中体会前台与后台的联系二选定的题...

数据库课程设计实验报告

数据库课程课程设计实验报告题目学生基本信息管理系统院系计算机学院班级软件1002班学号04103064姓名张芳莉指导老师乔平安一需求分析1基本功能要求1学生基本信息管理学生对自己的基本信息进行查询管理员对学生的...

数据库设计实验报告(25篇)