数据库系统设计实验报告

  • 格式:doc
  • 大小:345.00 KB
  • 文档页数:22

下载文档原格式

  / 22
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库系统设计实验报告

――教务管理系统

学院:计算机科学与技术

专业:软件工程

班级:

学号:

姓名:

指导老师:

一、概述

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

系统名称:教务管理系统

开发环境:SQL Server 2008

二、需求分析

1、系统的概述

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

者多个班级。一个学生只属于1个班级,学生有姓名、学号、性别、身

份证号、入学时间等属性。

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

个年级的某门课程在那个学期上,学分、学时是多少。每个学院都设置

有1个教务秘书,这些信息都由教务秘书进行输入。每个院系的课程都

有自己的唯一编码,比如计算机系上的C语言,和电子系上的C语言,

虽然都是同一门课,但是编码是不同的。但是同一个院系中的相同的课

程,课程代码是唯一的。比如计算机学院的07计算机软件专业和计算机

学院的07计算机科学专业都有C语言课程,这两门课程的课程代码是相

同的。

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

根据教学计划,比如08计算机软件专业的学生,在2009-2010年第2

学期上的课程,可以通过教学计划得知要上什么课程,然后对这些课程

安排上课教师(比如陈越)、上课时间(比如星期2,第1-2节)和地点

(理工楼234),有的课程是单周上,有的双周,也有是每周都上的。

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

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

给任何学生选择了。

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

名和密码登陆网站,选择这个学期自己所教的课程(一个老师可以上多

个班级的课程),输入这个班级的成绩,成绩分为期末考试成绩、期中考

试成绩、平时成绩、实验成绩以及总评成绩。这些成绩都需要进行存储。

⏹为了保证安全性,老师输入的成绩并不是直接放到最终的成绩表中,而

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

绩表中。

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

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

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

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

2、教务系统的E-R图

3、数据库表(1)学生信息表

(2)教师表

(3)班级信息表

(4)学院表

(5)教务秘书信息表

(6)专业信息表

(7)教学计划表

(8)课程表

(9)学生选课表

(10)教师上课表

(11) 临时成绩表

(12) 最终成绩表

(13) 成绩变动记录表

三、程序清单

/*数据库的建立*/

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,

)

/*班级表*/

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

)

/*教学计划表*/

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,