数据库大作业报告课程设计题目:学生选课系统姓名:单明星学号:3120602045专业:计算机科学与技术系别:计算机学院目录一:摘要二:课程设计任务的需求分析三:概念结构设计四:逻辑结构设计五:物理结构设计六:数据实现七:数据库维护一、摘要本文以一个具体的应用系统-学生选课信息系统的设计与实现来说明如何利用UML和EJB组件来设计和构建分布式软件的系统平台,现在的信息管理系统软件的开采,采用组件技术可以提高效率,信息管理系统的分析设计业可以采用UML来进行,两者的结合可以极大地体改开发效率,保证系统开发的易维护性。随着在校大学生人数的不断增加,教务系统的数据量也不断的上涨,运用计算机辅助选课,开发一套在线选课系统是十分必要的,技能实时的对大量选课数据进行检验和统计,十分方便的输出选课结果,同时也避免了人工处理时容易产生的错误。二、课程设计需求分析作为数据库课程设计题目,鉴于设计时间有限,我们不追求大而全,只是把学生选课所涉及的核心内容作为数据库管理的对象来进行设计。要完成对学生选课的管理,系统必须管理学校的教师信息,学生选修课程的信息,学生开设所有的课程信息,学校的院系信息,专业设置信息,教师开设课程信息等。选课系统主要满足三类用户需求,这三类用户分别是教务处的系统管理员,教师和学生,他们所具备有的操作权限以及操作的内容是不同的。要求选课系统可以满足以下功能:系统管理员能对学生信息,教师信息课程信息等进行有效的管理和维护,包括增加,删除,修改等基本的维护功能和灵活的查询功能,教师和学生能够对个人基本信息,教授,选课所涉及的有关信息进行查询,更新等操作。需求分析如下。(1)系统管理员1)维护学生的个人基本信息,实现对学生个人信息的增加,删除更新等。学生信息包括学生的学号,姓名,性别,院系,专业,年龄,电话,EMAIL,地址等。2)维护教师个人信息,实现对教师个人信息的增加,删除,更新等。教师信息包括教师的工号,姓名,性别,院系,职称,年龄,电话,EMAIL地址等。3)维护课程信息,实现对课程信息的增加,删除,修改等。课程信息包括课程号,课程名,课程性质,学分等。(2)学生用户1)查询和修改个人信息,如电话,EMAIL地址等。2)进行选课操作,包括查看课程设置信息,选课,退选,查看已选课程等。3)学生科查看自己当钱所选课程的信息和以前所选课程的成绩信息(3)教师用户1)查询和修改个人信息,如电话,EMAIL地址等。2)课程结束后,教师对所教授的学生进行成绩登记。3)教师可以查看自己的教学安排,包括讲授课程,学时数,以往所教授课程的学生成绩等信息。教学管理的基本规定是:每门课程可以由多个教师开设不同老师开设的同门课程有不同的代码,每个教师可以开设多门课程,每个学生可以选修多门课程,每门课程有多个学生选修,每个学生选修每门课程都会获得一个成绩。三、概念结构设计(1)抽象出系统的实体学生选课系统只要包含学生、教师、课程3个实体,下图为三个实体的E-R图,其中加下划线的属性为三个实体的主键。图2-1学生实体及属性学生学号姓名性别专业院系年龄电话EMAILL工号职称性别姓名院系年龄电话EMALI教师图2-2教师实体及属性图2-3课程实体及(2)设计分E-R图根据需求分析的结果,在学生选课系统中有以下关系:1)学生与教师:一个教师可以教授多名学生,每个学生可以选择多个教师的课程。所以,学生与教师之间是通过选课进行联系的,并且两者之间的关系是多对多的联系。2)学生与课程:一个学生可以选择多门课程,一门课程可以对多个学生开放。因此,学生与课程之间是多对多的联系。学生选修一门课程会有一个成绩。3)教师与课程:一个教师可以教授多门课程,一门课程同时也可以被多名教师教授。因此教师与课程之间的关系是多对多的联系。根据上述分析,得到各个局部的E-R图如下:图2-4学生和教师之间的E-R图图2-5学生与课程之间的E-R图四:逻辑结构设计逻辑结构设计就是将概念结构设计中的全局E-R图转换为与选用的DBMS选课课程学生成绩课程号课程名学分课程性质课程教授学生教师产品所支持的数据模型相符合的逻辑结构。根据介绍的E-R图向关系数据模型转换的相关规则,将图2-5所示图转换为关系数据模型,得到学生选课系统的关系模式如下:●教师(工号,姓名,性别,院系,年龄,职称)为教师实体对关系模式,其中学号是学生教师的关系主键。●学生(学号,姓名,性别,专业,院系,年龄)为学生实体对应的关系模式,其中学号是学生关系的主键。●课程(课程号,课程名,学分,课程性质)为课程实体对应的关系模式,其中课程号是课程关系的主键。●选课(学号,工号,课程号,成绩)为联系“选课”对应的关系模式。因为选课时学生课程和教师之间的多对多联系,因此学生,教师和课程的主属性,以及选课联系本省的属性“成绩”,共同构成了选课关系模式的属性其中学号,工号课程号的组合是选课关系的主键。五:物理结构设计学院表字段名类型属性学院编号Char(10)主键名称Char(8)notnull学院类型Char(10)notnull院长姓名Char(20)notnull院长地址Char(100)notnull院长电话Char(10)notnull年级表字段名类型属性年级编号Char(10)主键名称Char(10)Notnull备注Char(10)学生表字段名类型属性学号Int(10)主键姓名Char(8)notnull性别Char(2)notnull出生年月Datetime身份证号码Int(18)notnull学院编号Char(6)notnull所在专业Char(20)notnull课程表字段名类型属性课程编号Char(10)主键课程名称Char(8)notnull课程类型Char(10)学分Smallint(1)学时Smallint(2)上课时间Char(10)notnull上课教室Char(10)notnull教师表字段名类型属性教师编号Char(10)主键姓名Char(8)notnull性别Char(2)notnull所教课程Char(10)notnull联系电话Char(10)notnull家庭住址Char(100)notnull六:数据库实现1.数据库的建立用企业管理器,基本表的建立用T-SQL语言:数据库名称为:网上选课系统数据库设计建立数据库的T-SQL代码如下:Createdatabase网上选课系统数据库设计On(name=‘网上选课系统数据库设计dat’,filename=‘D:\马新龙\网上选课系统数据库设计.mdf’),(name=‘网上选课系统数据库设计dat-1’,filename=‘D:\马新龙\网上选课系统数据库设计.ndf’)Logon(name=’网上选课系统数据库设计log’,filename=’D:\马新龙\网上选课系统数据库设计.lmf’)建立基本表的T-SQL代码如下:use网上选课系统数据库设计createtable学院(学院编号char(10)notnullCONSTRAINTPk-学院编号primarykey,名称char(8)notnull,学院类型char(10)notnull,院长编号char(10)notnull,院办地址char(100)notnull,院办电话char(10)notnull)createtable年级(年级编号char(6)notnullCONSTRAINTPk-年级编号primarykey,年级名称char(10)notnull,备注char(10)notnull)createtable学生(学号int(10)notnullCONSTRAINTPk-学号primarykey,姓名char(8)notnull,性别char(2)notnull,出生年月Datetime,身份证号char(18)notnull,学院编号char(6)notnull,所在专业char(20)notnull)createtable课程(课程编号char(6)notnullCONSTRAINTPk-课程编号primarykey,课程名char(40)notnull,课程类型char(12)notnull,学分数smallint,学时数smallint,上课时间char(10)notnull,上课所在教室char(10)notnull)createtable教师(教师编号char(10)notnullCONSTRAINTPk-教师编号primarykey,姓名char(8)notnull,性别char(2)notnull,课程名char(10),notnull,电话char(10),notnull家庭住址char(100),notnull)2.插入功能(下面主要是一些简单的信息插入)Insertinto学生values(‘3007207284’,’马新龙’,男’,’1988.12.30’,’640302198812302915’,’001’,’过程装备与控制工程’)3.创建索引(提高学生查询所需东西的速度,下面只是几个简单的例子)Createindexidx学生On学生(c姓名)CreateCLUSTEREDIndexidx课程On课程(c课程名,c学分数)4.创建视图(下面只是几个简单的例子)Createviewvw信息AsSelect姓名,所在专业,课程From学生join学院On学生.学院编号=学院.学院编号通过视图简化了对一些表中数据的查询,下面通过视图来执行该查询:Select姓名,所在专业Fromvw信息5.创建存储过程(下面主要说明经常要获得学生姓名,学号,所在专业,为了提高执行速度所做的工作以及教师的姓名,电话)Createprocedure学生资料AsBeginPrint名单Select姓名,学号,所在专业From学生endcreateprocedure教师信息asbeginprint名单select姓名,电话from教师end6.查询数据(下面是一个简单的查询)Select姓名,学号,所在专业From学生Where性别=‘男’下面是关于显示所有学生的信息的查询:Select*From学生7.修改数据(下面是通过上面的视图更新学生的选课信息)Updatevw信息Set所选课程=‘’Where姓名=‘七:数据库维护1.备份维护数据库数据维护包括许多内容,包括用户权限的设置,数据库完整性维护,数据库的备份,表的备份,日志备份等。这里重点介绍数据库的备份。SQLserver2005提供了4种不同的备份方式,它们分别为:1)完整备份:备份整个数据库的所有内容,包括事务日志。该备份类型需要比较大的存储空间来存储备份文件,备份时间也比较长,在还原数据时,也只需要一个备份文件。2)差异备份:它是完整备份的补充,差异备份至备份上次完整备份后更改的数据。相对完整备份来说,差异备份的数据量比完整备份小,备份的速度也比完整备份要快。因此数据库管理员经常采用的是一次完整性备份之后,进行多次差异备份。在还原多次差异备份,在还原数据时,要先还原前一次做的完整备份后再还原最后一次所做的差异备份,这样才能让数据库里的数据恢复到与最后一次差异备份时的相同内容。3)事务日志备份:事务日志备份只备份事务日志里的内容。事务日志记录上一次完整备份或事务日志备份后数据库的所有变动情况,因此在做事务日志备份之前,也必须要做一次完整备份。事务日志备份在还原数据时,除了先要还原完整备份之外,还要一次还原每个事务日志备份,而不是只还原最近一个事务日志备份。4)数据库文件和文件组备份:如果在创建数据库时,为数据库创建了多个数据库文件或文件组,可以使用该备份方式。使用文件和文件组备份方式可以只备份数据库中的某些文件,该备份方式在数据库文件非常庞大的时候十分有效,由于每次只备份一个或多个文件和文件组,可以分多次来备份数据库,避免大型数据库备份的时间过长。另外,由于文件和文件组只备份其中一个或多个数据文件,因此当数据库里的某个或某个文件损坏时,可以只还原损坏的文件或文件的形式。