1、教学管理信息系统数据库的构建与设计项目概述教学管理信息系统数据库的构建与设计简介项目名称教学管理信息系统数据库的构建与设计时间安排5天表数量10项目难度项目简介随着高等院校教育体制的改革和发展,高校信息化的提升,其核心是以校园网为载体最大程度地利用网络资源的共享,方便、快捷等优点,压缩工作周期,实现教学管理的信息化、高效化以及自动化。根据学校的教学管理信息工作的基本流程,教学管理信息应用系统由四个功能模块组成:1。学生选课管理模块:实现学生选棵录入、学生选课调整和学生选课审核等功能.2。学生信息管理模块:实现学生学籍注册、学生转学、学生毕业和学生成绩管理。3。教学调度管理模块:实现排课和调度管
2、理、教师管理、等功能.项目目的了解管理信息应用系统的数据库设计的基本方法,掌握数据库设计的基本流程。涉及主要技术数据库的分析与设计Transact-SQL编程环境SQL Server 2000项目特点通过学习本安例,可以了解并掌握数据库设计过程中各个阶段的工作过程和工作内容。技术重点使用标准的数据库设计方法实现数据库的分析与设计。技术难点数据库中各种不同类型信息关系的系统化和规范化的实现.第一章教学管理信息系统数据库设计1.项目介绍教学管理管理信息系统的基本业务需求主要包括以下内容:学生成绩管理包括:各院系的教务人员完成学生学籍注册、毕业、学籍异常处理,各授课教师完成所讲授课程成绩的录入,然后
3、由教务人员进行学生成绩的审核认可。学生选课管理包括:学生根据开设课程和培养计划选择本学期所修课程,教务人员对学生所选课程进行确认处理.教学调度安排包括:教务人员根据本学期所开课程、教师上课情况以及学生选课情况完成安排课、调课、教师管理.1。1 数据需求分析需求分析是整个数据库设计过程的基础,要收集数据库所有用户的信息内容和处理要求,并加以规格化和分析。数据流图和数据字典是描述用户需求的重要工具。数据流图描述了数据的来远和去向,以及所经过的处理;数据字典是对系统所需要处理的数据结构的进一步的描述。教学管理信息系统的数据字典和数据流图包括以下内容.1。1.1系统的基本数据字典教学管理信息系统的基本
4、数据字典的内容如下:学生基本信息:包括的数据项有:学号、班级代码、姓名、性别、政治面貌、职务、籍贯、出生日期、家庭住址等。课程基本信息:包括的数据项有:课程代码、课程名称、讲授课时、课程学分、人数等。教师基本信息:包括的数据项有:教师编码、教师姓名、性别、所学专业、职称、籍贯、出生日期、家庭住址等。教室基本信息:包括的数据项有:教室编码、教室类型、教室容量等。系别基本信息:包括的数据项有:系代码、系名称、系地址、系电话等。专业基本信息:包括的数据项有:专业代码、专业名称、专业性质、专业简介、所授学位等。成绩基本信息:包括的数据项有:科目号、学号、科目名称、科目分数等.选课基本信息:包括的数据项
5、有:课程号、学号、修课审核人、成绩审核人等.授课基本信息:包括的数据项有:课程号、教室编码、教师编码、授课时间、授课周次等.班级基本信息:包括的数据项有:班级代码、班级名称,班级简介等.1。1.2 系统的基本数据流图 数据流图是从数据和对数据的加工处理的角度来描述系统的图形。数据流图的基本组成元素如下图所示:数据存储加工处理加工处理数据来源数据输出图31数据流图的基本组成元素教学信息管理系统的基本数据流图如下所示: 学生选课信息 新增课程学生选课管理教务员 课程信息 选课审核信息 图3-2教学信息管理系统的基本数据流图 学生成绩信息考试成绩任课老师 学生考试信息 学籍及成绩管理 学籍注册管理
6、个人考试信息学生教务员 毕业归档信息新入学的学生信息 成绩确认信息 毕业归档信息 学生学籍信息 图 33教学信息管理系统的基本数据流图 排课信息课表信息学生 个人考试成绩教学调度教务员 排课信息 排课信息任课教师 排课信息 图3-4 教学信息管理系统的基本数据流图1。2概念结构设计概念结构设计是把用户的信息要求统一到一个整体逻辑结构中,此结构能够表达用户的要求,是一个独立与任何DBMS软件和硬件的概念模型。概念结构设计是以需求分析所得到的系统数据字典和系统数据流图为输入,经过加工处理后,输出系统的实体、联系模型(ERM)。实体、联系模型(ERM)图的基本组成元素如下图所示:属性属性属性属性联系
7、属性属性实体实体属性属性属性属性 图 35 实体、联系模型( ERM)图的基本组成元素图实体、联系模型( ERM)是概念设计阶段描述概念结构模型的只要设计工具,教学信息管理系统的ER图包括以下内容。1.2。1学生实体的E-R图学号姓名籍贯性别学生职务政治面貌家庭住址出生日期 图 3-6 学生实体E-R图 1。2.2班级实体的E-R图班级简称班级名称班级班级代码入学时间图 37 班级实体ER图1。2.3教室实体的E-R图教室编号教室容量教室类别教室图 38 教室实体E-R图1.2。4系别实体的E-R图系名系电话系代码系地址系别图 39 系别实体ER图1.2。5课程实体的E-R图计划人数课程代码课
8、程名称课程学分课时课程图 310 课程实体ER图1.2。6任课教师实体ER图职称教师姓名性别教师编码教师所学专业出生日期家庭住址籍贯图 311 教师实体ER图1。2。7专业实体的E-R图专业名称专业编号专业性质专业学位授予专业简介图 3-12 专业实体ER图1.2.8成绩的ER图科目分数科目名称科目号成绩图 3-13成绩实体ER图1。2。9各实体间的ER图图 314 各实体间的E-R图1。3逻辑结构设计逻辑结构设计是将上一步所得到的概念模型转换为SQL Server支持的数据模型,并对其进行优化。逻辑结构设计是以概念结构设计所得到系统的实体、联系模型(ERM)为输入,经过转换处理后,输出系统的
9、关系数据结构(表结构).通过系统的实体、联系模型(ERM)进行系统的关系数据结构(表结构)转换的总体原则如下:1)ER图中的实体和有属性的联系转换成关系2)E-R图中的属性转换成关系的属性数据库的表结构是逻辑设计阶段描述逻辑结构模型的主要设计工具,教学信息管理系统的数据库表包括以下内容:1。3。1 Teacher(教师信息表)教师(教师编码,教师姓名,性别,所学专业,职称,籍贯,出生日期,家庭住址)字段名字段类型长度主键或外键字段值约束对应中文属名Tnumnchar5主键Not null教师编码Tnamenvarchar10Not null教师姓名Tsexnvarchar2(男,女)性别Tsp
10、ecialitynvarchar16Not null所学专业Ttitlenvarchar16Not null职称Tbirthdaynvarchar8出生日期Tnativeplacedatetime12籍贯Taddressnvarchar30家庭住址 表 31 教师信息表1。3.2 Student (学生信息表)学生(学号,班级代码,姓名,性别,政治面貌,职务,籍贯,出生日期,家庭住址)字段名字段类型长度主键或外键字段值约束对应中文属名Snumnchar10主键Not null学号Snamenvarchar10Not null姓名Ssexnvarchar2(男,女)性别Stitlenvarcha
11、r16Not null职称Sfacenvarchar10政治面貌Sbirthdaydatetime8出生日期Saddressnvarchar30家庭住址class_codenvarchar20外键Class.code班级代码Snativeplcenvarchar12籍贯 表 3-2 学生信息表1。3.3 Speciality (专业信息表)专业(专业代码,系代码,专业名称,专业性质,专业简介,所授学位)字段名字段类型长度主键或外键字段值约束对应中文属名SPcodenvarchar20主键Not null专业代码SPnamenvarchar20Not null专业姓名specharnvarcha
12、r30专业性质specshortnvarchar20专业简介degreenvarchar20可授学位depar_codenvarchar20外键Department.code系代码表 33 专业信息表1.3.4Department(系信息表)系别(系代码,系名称,系地址,系电话)字段名字段类型长度主键或外键字段值约束对应中文属名DPcodenvarchar20主键Not null系代码DPnamenvarchar10Not null系名称DPaddressnvarchar30系地址telephonenvarchar12系电话表 34 系信息表1.3.5 Class(班级信息)班级(班级代码,专
13、业代码,班级名称,班级简介)字段名字段类型长度主键或外键字段值约束对应中文属名CLcodenvarchar20主键Not null班级代码CLnamenvarchar10班级名称CLspecshortnvarchar30班级简介intimedatetime8入学时间Specia_codenvarchar20专业代码表 35班级信息表1。3.6 Course(课程信息表)课程(课程代码,课程名称、讲授课时,课程学分,人数)字段名字段类型长度主键或外键字段值约束对应中文属名CRcodenvarchar20主键Not null课程代码CRnamenvarchar20Not null课程名字perio
14、dnvarchar10讲课课时numbernumeric9计划人数credithournumeric9课程学分表 3-6课程信息表1。3。7 Classroom(教室信息表)教室(教室编码,教室类型,教室容量)字段名字段类型长度主键或外键字段值约束对应中文属名CLRcodenvarchar20主键Not null教室编码capacitynumeric9教室容量typenvarchar20教室类型表 37 教室信息表1。3。8 Exam_grade(成绩信息表)成绩(科目号,学号,科目名称,科目分数)字段名字段类型长度主键或外键字段值约束对应中文属名Ecodenvarchar20主键Not nu
15、ll科目号Snumnvarchar20外键学号kmnamenvarchar20科目名称kmgradedatetime8考试时间gradenumreic3科目分数表 3-8 成绩信息表1.3。9 courseplan(授课安排信息表)授课(课程号,教室编码,教师编码,授课时间,授课周次)字段名字段类型长度主键或外键字段值约束对应中文属名Tnumnvarchar20外键teacher.code教师编码CLRcodenvarchar20外键classroom。code 教室编码CRcodenvarchar20外键Course.code课程编码tabletimenvarchar10课表时间weeknv
16、archar2课表周次表 39 授课安排信息表1。3。10 studentcourse(学生修课信息表 )选修(课程号,学号,修课审核人,成绩审核人)字段名字段类型长度主键或外键字段值约束对应中文属名Stu_codenvarchar20外键student。code学号Cours_codenvarchar20外键course。code课程号Cours_auditnvarchar10修课审核人Grade_auditnvarchar10成绩审核人表 3-10 学生修课信息表1.3。11数据表之间的逻辑关系图 图 315 数据表之间的逻辑关系图1。4数据库物理设计物理结构设计是为逻辑数据模型建立一个完
17、整的能实现的数据库结构,包括存储结构和存取方法.物理结构设计是以逻辑结构设计所得到系统的关系数据结构(表结构)为输入,经过转换处理后,输出系统的数据库物理结构.1.5数据库实施数据库实施是根据应用系统数据库的关系结构模型和物理结构设计结果,形成基于SQL Server平台应用系统数据库的脚本和数据库设计报告,并进行数据库的具体构建与管理。数据库实施是以逻辑结构设计和物理设计结构所得到系统关系数据结构和系统数据库物理结构为输入,经过转换处理后,输出系统的数据库设计脚本(包括数据库定义、数据库表定义和数据库索引定义等)。1.5。1数据库表定义语句IF EXISTS (SELECT name FRO
18、M master.dbo.sysdatabases WHERE name = N教学管理信息系统)DROP DATABASE 教学管理信息系统GOCREATE DATABASE 教学管理信息系统 ON (NAME = N教学管理信息系统_Data, FILENAME = NC:Program FilesMicrosoft SQL ServerMSSQLdata教学管理信息系统_Data。MDF , SIZE = 2, FILEGROWTH = 10) LOG ON (NAME = N教学管理信息系统_Log, FILENAME = NC:Program FilesMicrosoft SQL S
19、erverMSSQLdata教学管理信息系统_Log.LDF , SIZE = 1, FILEGROWTH = 10%) COLLATE Chinese_PRC_CI_ASGOexec sp_dboption N教学管理信息系统, Nautoclose, NtrueGOexec sp_dboption N教学管理信息系统, Nbulkcopy, NfalseGOexec sp_dboption N教学管理信息系统, Ntrunc. log, NtrueGOexec sp_dboption N教学管理信息系统, Ntorn page detection, NtrueGOexec sp_dbopt
20、ion N教学管理信息系统, Nread only, NfalseGOexec sp_dboption N教学管理信息系统, Ndbo use, NfalseGOexec sp_dboption N教学管理信息系统, Nsingle, NfalseGOexec sp_dboption N教学管理信息系统, Nautoshrink, NtrueGOexec sp_dboption N教学管理信息系统, NANSI null default, NfalseGOexec sp_dboption N教学管理信息系统, Nrecursive triggers, NfalseGOexec sp_dbopt
21、ion N教学管理信息系统, NANSI nulls, NfalseGOexec sp_dboption N教学管理信息系统, Nconcat null yields null, NfalseGOexec sp_dboption N教学管理信息系统, Ncursor close on commit, NfalseGOexec sp_dboption N教学管理信息系统, Ndefault to local cursor, NfalseGOexec sp_dboption N教学管理信息系统, Nquoted identifier, NfalseGOexec sp_dboption N教学管理信
22、息系统, NANSI warnings, NfalseGOexec sp_dboption N教学管理信息系统, Nauto create statistics, NtrueGOexec sp_dboption N教学管理信息系统, Nauto update statistics, NtrueGOuse 教学管理信息系统GOif exists (select from dbo.sysobjects where id = object_id(Ndbo.FK_student_class) and OBJECTPROPERTY(id, NIsForeignKey) = 1)ALTER TABLE d
23、bo。student DROP CONSTRAINT FK_student_classGOif exists (select from dbo。sysobjects where id = object_id(Ndbo.FK_courseplan_classrooom) and OBJECTPROPERTY(id, NIsForeignKey) = 1)ALTER TABLE dbo。courseplan DROP CONSTRAINT FK_courseplan_classrooomGOif exists (select from dbo。sysobjects where id = objec
24、t_id(Ndbo.FK_courseplan_course) and OBJECTPROPERTY(id, NIsForeignKey) = 1)ALTER TABLE dbo。courseplan DROP CONSTRAINT FK_courseplan_courseGOif exists (select from dbo。sysobjects where id = object_id(Ndbo.FK_xxxx_course) and OBJECTPROPERTY(id, NIsForeignKey) = 1)ALTER TABLE dbo。xxxx DROP CONSTRAINT FK
25、_xxxx_courseGOif exists (select from dbo.sysobjects where id = object_id(Ndbo。FK_speciality_department) and OBJECTPROPERTY(id, NIsForeignKey) = 1)ALTER TABLE dbo.speciality DROP CONSTRAINT FK_speciality_departmentGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo。FK_class_speciality
26、) and OBJECTPROPERTY(id, NIsForeignKey) = 1)ALTER TABLE dbo。class DROP CONSTRAINT FK_class_specialityGOif exists (select * from dbo。sysobjects where id = object_id(Ndbo。FK_exam_grade_student) and OBJECTPROPERTY(id, NIsForeignKey) = 1)ALTER TABLE dbo。exam_grade DROP CONSTRAINT FK_exam_grade_studentGO
27、if exists (select from dbo。sysobjects where id = object_id(Ndbo.FK_xxxx_student) and OBJECTPROPERTY(id, NIsForeignKey) = 1)ALTER TABLE dbo。xxxx DROP CONSTRAINT FK_xxxx_studentGOif exists (select from dbo.sysobjects where id = object_id(Ndbo。FK_courseplan_teacher) and OBJECTPROPERTY(id, NIsForeignKey
28、) = 1)ALTER TABLE dbo。courseplan DROP CONSTRAINT FK_courseplan_teacherGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.view_examgrade) and OBJECTPROPERTY(id, NIsView) = 1)drop view dbo。view_examgradeGOif exists (select * from dbo。sysobjects where id = object_id(Ndbo。class) and OBJ
29、ECTPROPERTY(id, NIsUserTable) = 1)drop table dbo。classGOif exists (select * from dbo。sysobjects where id = object_id(Ndbo。classrooom) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo。classrooomGOif exists (select from dbo.sysobjects where id = object_id(Ndbo。course) and OBJECTPROPERTY(id, NIs
30、UserTable) = 1)drop table dbo。courseGOif exists (select from dbo.sysobjects where id = object_id(Ndbo。courseplan) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.courseplanGOif exists (select * from dbo。sysobjects where id = object_id(Ndbo.department) and OBJECTPROPERTY(id, NIsUserTable) = 1
31、)drop table dbo。departmentGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo。exam_grade) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.exam_gradeGOif exists (select from dbo.sysobjects where id = object_id(Ndbo。speciality) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop tabl
32、e dbo。specialityGOif exists (select * from dbo。sysobjects where id = object_id(Ndbo。student) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo。studentGOif exists (select from dbo。sysobjects where id = object_id(Ndbo。teacher) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo。teacherGOif e
33、xists (select from dbo.sysobjects where id = object_id(Ndbo.xxxx) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo。xxxxGOCREATE TABLE dbo。class (code varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,name varchar (30) COLLATE Chinese_PRC_CI_AS NOT NULL ,classshort varchar (30) COLLATE Chinese_
34、PRC_CI_AS NULL ,intime datetime NULL ,speci_code varchar (20) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARYGOCREATE TABLE dbo.classrooom (code varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,capacity numeric(18, 0) NULL ,type varchar (20) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARYGOCREATE TABLE dbo。
35、course (code varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,name varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,period varchar (20) COLLATE Chinese_PRC_CI_AS NULL ,number numeric(18, 0) NULL ,credithour numeric(18, 0) NULL ) ON PRIMARYGOCREATE TABLE dbo.courseplan (teach_code varchar (20) COLLAT
36、E Chinese_PRC_CI_AS NOT NULL ,couse_code varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,room_code varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,tabletime varchar (10) COLLATE Chinese_PRC_CI_AS NULL ,week varchar (10) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARYGOCREATE TABLE dbo.department (code
37、 varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,name varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,address varchar (30) COLLATE Chinese_PRC_CI_AS NULL ,telephone varchar (12) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARYGOCREATE TABLE dbo。exam_grade (code varchar (20) COLLATE Chinese_PRC_CI_AS NO
38、T NULL ,kmname varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,stude_code varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,kmgrade datetime NULL ,grade numeric(18, 0) NULL ) ON PRIMARYGOCREATE TABLE dbo.speciality (code varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,name varchar (20) COLLATE Chin
39、ese_PRC_CI_AS NOT NULL ,spechar varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,specshort varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,degree varchar (20) COLLATE Chinese_PRC_CI_AS NULL ,depar_code varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ) ON PRIMARYGOCREATE TABLE dbo。student (code varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,name varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,sex varchar (2) COLLATE Chinese_PRC_CI_AS NULL ,title varchar (16) COLLATE Chinese_PRC_CI_AS NULL ,face varchar (10) COLLATE Chinese_PRC_CI_AS NULL ,brithday datetime NULL