数据库原理课程设计题目选修课系统系部数理系专业网络工程班级网络N111学号201145209235学生姓名王成同组成员王家兴徐康朱彦霖饶正一指导教师郭步编写日期2013.7.1一概述1.1课题背景21世纪这个信息爆炸时代,其科技亦日新月异,纵观时代发展,计算机已经成了我们生活不可缺少的一部分,而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发。计算机在代替和延伸脑力劳动方面起着越来越重要的作用,在工业方面,日常生活方面无不如此。就我们可以感受到的校园学生管理系统来说,计算机为其带来的便利不言而喻!1.2学生管理系统分析学生管理是学校管理中的一项重要任务,以往的手工操作已经不能适应现在办公的需要.为了摆脱繁琐的劳动,提高工作效率,利用计算机进行信息处理成为必然.开发功能完善及安全可靠的管理系统可以大大提高学校资源的利用率,及时,准确地获取需要的信息,充分发挥人员的工作潜力。正是咨询业的迅速发展使得人们从过去的手工劳动中得以解脱.同时,编写一套完善的学生管理系统的任务就显得尤为重要.本学生管理系统可实现学生基本信息、成绩信息、课程信息、选课信息等的录入、修改、查询、更新和删除。1.3设计环境(1)MicrosoftSQLServer2005(2)MicrosoftVisualBasic(3)windowsxp以上,内存(512M以上)(4)IIS和dreamweave8.0的安装二需求分析2.1系统功能要求设计该系统相关功能情况如下:(1)当用户登录时,根据用户类型不同而权限不同,学生,教室,管理员都有各自的权限。(2)通过用户名和密码登录系统,学生可以进行选课操作也可查询学生基本信息、成绩基本信息、课程基本信息,学生所选课程成绩,修改用户密码等;教师查询学生相关信息也可以进行学生成绩录入,修改,删除等;管理员则可以对学生和教师进行查询,修改,删除等,其权限最大。(3)系统运行在Windows平台上,有一个较好的图形用户界面,操作简单,功能安排合理,并且进一步考虑系统在安全性,完整性,并发控制等方面的功能要求。2.2数据需求通过分析,总结出本系统对数据的需求如下:(1)选课信息包括:学号,课程号,选课日期,实践成绩,考试成绩。(2)学生信息包括:学号、姓名、性别、地址(3)课程信息包括:课程号、课程名称,系编号,教师编号,开课学期。(4)教师信息包括:教师编号、教师姓名、系编号、办公室号。(5)系信息包括:系编号,系名,教师编号,位置(6)用户信息包括:用户名,用户密码。2.3数据流图数据流图是描述系统内部处理流程、用于表达软件系统需求模型的一种图形工具,这种表示法中用矩形表示源点和终点,用椭圆表示数据加工,用箭头表示数据流。本学生管理系统的数据流图如下。2.4数据字典数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。利用SQLServer2005建立“学生选课”数据库,其基本表清单及表结构描述如下:数据库中用到的表:数据库表名关系模式名称备注admin管理员用户登录信息student学生学生基本信息course课程课程基本信息dept系系基本信息teacher教师教师基本信息sc选课选课基本信息admin基本情况数据表,结构如下:字段名字段类型长度说明namesnvarchar10用户登录系统用户学生教师管理员选课课程系别管理系统反馈信息查询选择反馈信息管理课程查增删改查增删改反馈信息管理选课反馈信息反馈信息管理系别反馈信息passwordnvarchar20密码student基本情况数据表,结构如下:字段名字段类型长度说明snonvarchar10学号snamenvarchar10姓名ssexnvarchar2性别saddressnvarchar20地址course基本情况数据表,结构如下:字段名字段类型长度说明cnonvarchar10课程号dnonvarchar10系编号tnonvarchar10教师编号cnamenvarchar10课程名semesternvarchar20开课学期dept基本情况数据表,结构如下:字段名字段类型长度说明dnonvarchar10系编号dnamenvarchar10系名tnonvarchar10教师编号placenvarchar20位置teacher基本情况数据表,结构如下:字段名字段类型长度说明tnonvarchar10教师编号tnamenvarchar10教师姓名dnonvarchar10系编号offnonvarchar10办公室号sc基本情况数据表,结构如下:字段名字段类型长度说明snonvarchar10学号cnonvarchar10课程号ctimenvarchar20选课日期sscoreint实践成绩kscoreint考试成绩三概念模型设计3.1概念模型概念结构设计就是从现实概念中抽象出概念模型,即对信息世界建模,所以概念模型应该能方便、准确的表示信息世界中的常用概念。概念模型的表示方法最著名的是实体—联系方法(Entity-RelationshipApproach),在该方法中实体型用矩形表示,矩形框内写明实体名;属性用椭圆表示,并用无向边将其与相应的实体连接起来;联系用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁表上联系的类型(1:1,1:n或n:m)。3.2E-R图表示概念模型(1)学生实体E-R图(2)教师实体E-R图(3)课程实体E-R图(4)选课实体E-R图课程系编号课程号教师编号#开课学期课程名称教师教师编号教师姓名系编号#办公室号学生学号姓名性别地址(5)系实体E-R图(6)用户实体E-R图3.3合并分E-R图通过分析上述实体间的联系将分E-R图合并为学生管理系统的基本E-R图,每个实体的属性在上面的分E-R图中已经给出,在此不予给出。用户名用户密码用户系系编号系名教师编号#位置选课学号#课程号选课日期考试成绩实践成绩四逻辑结构设计4.1由系统E—R图转化而得到的关系模式如下(1)student(sno,sname,ssex,saddress),其中sno为主键。(2)sc(sno,cno,ctime,sscore,kscore),其中(sno,cno)为主键。(3)teacher(tno,tname,dno,offno),其中tno为主键。(4)course(cno,dno,tno,cname,semester),其中cno为主键。(5)dept(dno,dname,tno,place),其中dno为主键。(6)admin(names,password),其中(names,password)为主键。以上各关系模式之间的联系都是通过键码来建立关联的!4.2逻辑模式的规范化和优化关系模式转化成逻辑模式的相应步骤如下:(1)规范化(2)适应DBMS限制条件的修改(3)对性能、存储空间等的优化(4)用DBMS所提供的DDL定义逻辑模式4.3表和表之间的关系开设属于教师课程学生系教授选择mnn1n1n14.4选择数据库的存取方法在实际设计中最常用的存取方法是索引发,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:在经常需要搜索的列上建立索引;在主关键字上建立索引;在经常用于连接的列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的等规则。才能充分利用索引的作用避免因索引引起的负面作用。4.5设计数据库的存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。因为该成绩管理系统的数据量小,所以我们只用把数据存储在使用的电脑硬盘上,不用作更多的安排。4.6数据库的相关创建(1)创建学生表:createtablestudent(snonvarchar(10)primarykey,snamenvarchar(10)notnull,ssexnvarchar(2)notnull,saddressnvarchar(20)null)(2)创建教师表:createtableteacher(tnonvarchar(10)primarykey,tnamenvarchar(10)notnull,cdnonvarchar(10)notnull,offnonvarchar(10)null,foreignkey(dno)referencesdept(dno))(3)创建课程表:createtablecourse(cnonvarchar(10)primarykey,dnonvarchar(10)notnull,tnonvarchar(10)notnull,cnamenvarchar(10)notnull,semesternvarchar(20)null,foreignkey(dno)referencesdept(dno),foreignkey(tno)referencesteacher(tno))(4)创建选课表:Createtablesc(snonvarchar(10)notnull,cnonvarchar(10)notnull,ctimenvarchar(20)null,sscoreintnull,kscoreintnull,primarykey(sno,cno),foreignkey(sno)referencesstudent(sno),foreignkey(cno)referencescourse(cno))(5)创建用户表:Createtableadmin(namesnvarchar(10)notnull,passwordnvarchar(20)notnull,primarykey(names,password))(6)创建系表:Createtabledept(dnonvarchar(10)primarykey,dnamenvarchar(10)notnull,tnonvarchar(10)notnull,placenvarchar(20)null,foreignkey(tno)referencesteacher(tno))(7)创建数据库:数据名:学生管理表数据库主文件路径全名:C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\DATA日志文件路径全名:C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\DATAcreatedatabase学生管理表onprimary(Name=’学生管理表db’,--文件逻辑名Filename=’C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\DATA\学生管理表.mdf’,--文件磁盘文件路径全称Size=10,--初始化大小Maxsize=20,--最大值Filegrowth=1)Logon(Name=’学生管理表log’,File=’C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\DATA\学生管理表_log.ldf’,Size=10,Maxsize=20,Filegrowth=1)(8)创建触发器createtriggertonstudentfordeleteasdeclare@bhnvarchar(10)select@bh=deleted.snofromdeletedifexists(selectsnofromscwheresc.sno=@bh)deletefromscwheresno=@bh五数据库操作界面的设计5.1数据库的操作界面如下六数据库制作心得体会通过这数周的努力,我自己的作品终于出炉了,内心的激动与喜悦无法言表。想想当初,刚开时动工的时候,那真是毫无头绪,根本不知道从哪入手,首先对数据库的相关知识不是很了解,再者对sqlsever2000和del