1、成绩: 指导教师签字: 年 月 日 目 录第1章设计目的与要求11.1设计目的11.2设计环境11.3主要参考资料11.4设计内容及要求1第2章设设计内容22.1数据库设计22.1.1需求分析2212概念设计6213逻辑设计7214物理设计82.1.5 数据库实现922程序设计12221概要设计12222程序实现13第3章设计总结15参考文献16第1章 设计目的与要求1.1设计目的本实践课的主要目的是:(1)、掌握运用管理系统及数据库原理知识进行系统分析和设计的方法;(2)掌握关系数据库的设计方法;(3)掌握SQL Server 2000技术应用;(4)掌握简单的数据库应用程序编写方法;(5)
2、理解C/S模式结构。1.2设计环境在设备CPU:T1400 1.73GHZ ;硬盘:250 G;分辨率:最佳效果1024*768的情况下,运用VB6.0为前台工具,采用VB语言,以SQL Server 2000作为后台数据库,在Windows XP环境下编写并测试运行的。1.3主要参考资料1.管理信息系统黄梯云 高等教育出版社2.数据库系统概论 萨师煊 高等教育出版社 3.SQL Server 2000 数据库应用系统开发技术朱如龙编,机械工业出版社。4.SQL Server 2000 数据库应用系统开发技术实验指导朱如龙编,机械工业出版社1. 4设计内容及要求 一、内容1.要求根据管理信息系
3、统及数据库设计原理,按照数据库系统设计的步骤和规范,完成各阶段的设计内容。2.需求分析具体实际,数据流图、数据字典、关系模型要正确规范3.在sql server2000 上实现设计的数据库模型。4.对应用程序进行概要设计。5.用VB实现简单的应用程序编写。二、要求设计过程中,要严格遵守课程设计的时间安排,听从指导教师的指导。正确地完成上述内容,规范完整地撰写出课程设计报告。第2章 设设计内容2.1数据库设计2.1.1需求分析数据项和数据结构如下:学生信息管理系统包括班级信息管理、学籍信息管理、班级信息管理、成绩信息管理、课程信息管理、查询管理六大快,而年级信息管理又包括了学校年级设置于学校信息
4、设置,学籍信息管理包括了班级信息管理,成绩信息管理包括了成绩信息管理,课程信息管理包括了课程信息管理和年级课程开设两块,查询管理包括了班级信息查询,课程信息查询,成绩信息查询以及血迹信息管理。学校年级设置主要就是对于学校里的年级的设置,学籍性息设置主要是针对于学生们的学籍的管理班级信息管理主要是针对于班级信息的设置成绩信息设置主要是针对于学生们的成绩,课程信息设置主要是针对于课程的一些基本信息管理,年级课程开设主要是针对于一些课程开设的时间,而查询这一块主要就是各种的查询,类如班级信息,课程信息等一些基本信息的查询都是由这一块完成的1.系统工作流程图系统工作流程图主要描述出了系统在工作时候的大
5、致情况,通过这个图我们可以很容易的了解系统工作时的大致情况,具体如图2.1.1所示。图2.1.1系统工作流程图2.系统业务流程图:业务流程图是一种用尽可能少、尽可能简单的方法来描述业务处理过程的方法。由于它的符号简单明了,所以非常易于阅读和理解业务流程。但它的不足是对于一些专业性较强的业务处理细节缺乏足够的表现手段,它比较适用于反映事务处理类型的业务过程图2.1.2系统业务流程图3.系统数据流程图:数据流程图是描述系统数据流程的工具,它将数据独立抽象出来,通过图形方式描述信息的来龙去脉和实际流程。图2.1.3系统数据流程图4.数据字典:2. 数据项:表2.1.1数据项数据项名称数据项含义说明别
6、名数据类型长度取值范围学号为学生设置的代号无整型4a000-x999教师名称字符型100中、外文班级班级名中文专业专业名学费学费多少出生日期入学时间课程课程名成绩2)数据结构的定义:数据结构的名称:班级信息含义说明:数据库中用来说明班级类型的信息数据结构组成:班级编号+类型名称+班级数量+住宿费+人数学校信息数据库中用来说明学校信息的学校名称+班级编号+专业编号+学生信息+教师信息+课程信息3)数据流的定义:数据流名称:班级信息设置简要说明:学校对班级进行设置数据流来源:班级信息管理模块 数据流去向:P1.8数据结构:班机编号+班级名称课程管理对各科目进行管理课程管理模块课程编号+课程名称4)
7、数据存储:数据存储名:课程信息输入数据流:课程基本信息,输出数据流:正确的课程信息更新后的课程信息目前的课程信息,课程具体开课时间等212概念设计学生性息管理系统的实体E-R图:学籍性息表E-R图如图2.1.4所示图2.1.4学生信息表E-R图成绩性息表E-R图如图2.1.5所示。图2.1.5房间E-R图年级信息表E-R图如图2.1.6所示图2.1.6年级信息管理E-R图学生信息管理总体E-R图如图2.1.7所示。图2.1.7整体E-R图213逻辑设计逻辑结构设计就是将概念结构设计出来概念模型转换乘具体DBMS所能支持的数据模型(即逻辑结构),并对其进行优化。逻辑结构设计一般分为三步进行: 1
8、. 从E-R图向关系模式转化 数据库的逻辑设计主要是将概念模型转换成一般的关系模式,也就是将E-R图中的实体、实体的属性和实体之间的联系转化为关系模式。一个实体类型转换为一个关系模型,将每种实体类型转换为一个关系,实体的属性就是关系的属性,实体的关键字就是关系的关键字。将“客房”实体转换为一个关系模型,其中,带下划线的属性为主属性,该主属性为关系模型外键。年级基本信息(年级编号、班级编号、班级名称、班级数量、年级人数)。班级(班级编号、班级数、班级人数、班级名称。)学籍信息(学生姓名、学好、科目、成绩、学分)214物理设计1.存储结构数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,
9、它依赖于给定的计算机系统。物理设计通常分为两步:(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;(2)对物理结构进行评价,评价的重点是时间和空间效率。存储结构是建立一种由逻辑结构到存储空间的映射。存储结构是把一组结点存放在按地址相邻的存储单元里,结点间的逻辑关系用存储单元的自然顺序关系来表达的,即用一块存储区域存储线性数据结构,为使用整数编码访问数据结点提供了便利。2.索引的创建为 表创建一个以student_id为索引的关键字的唯一聚簇索引1)展开数据库中的表右键student_id表,单击所有任务弹出的索引管理。2)在窗体点新建索引名称为student,点击复选框“聚簇
10、索引” 、“惟一值”。3.事务日志文件备份及存放在大型系统中,数据库的数据备份、日志文件备份等数据只在故障恢复时才使用,而且数据量很大,可以考虑放在磁带上。对于拥有多个磁盘驱动器或磁盘阵列的系统,可以考虑将表和索引分别存放在不同的磁盘上,在查询时,由于两个磁盘驱动器分别工作,因而可以保证物理读写速度比较快。将比较大的表分别存放在不同的磁盘上,可以加快存取的速度,特别是在多用户的环境下。将日志文件和数据库对象(表、索引等)分别放在不同的磁盘可以改进系统的性能。由于各个系统所能提供的对数据进行物理安排的手段、方法差异很大,因此设计人员应该在仔细了解给定的DBMS在这方面提供了什么方法、系统的实际应
11、用环境的基础上进行物理安排。4.存取方法:现行的DBMS一般都提供了多种存取方法,其中,最常用的是索引法。索引法是为了加速对表中的数据行的检索而创建的一种分散的存储结构。是针对一个表而建立的,它能够以一列或多列的值为关键字,迅速查找/存取表中行数据加快了数据检索。例如在本数据库中:年级基本信息(年级编号、班级编号、班级名称、班级数量、年级人数。整个系统需要调用年级基本信息表、班级表等,所以年级基本信息表属性“编号”,班级表中的属性“班级编号”,将经常出现在查询条件中,可以考虑在上面建立索引以提高效率。2.1.5 数据库实现1.成绩信息表:学号,姓名,课程编号,课程名称,成绩,学分,班级,专业。
12、表2.1.2成绩信息表列名数据类型大小允许空NumberChar(20)否Name是NamberKecheng nameprefissionChar(8)scordChar(10)gradeChar(50)professional2.年级信息表:年级数,年级编号,班级编号,班级名称,班级数,表2.1.3年级信息表Grade nameberGrade NumbersClass numberClass name3.学籍信息表:姓名,学号,班级,性别,成绩,民族,籍贯,专业表2.1.4学籍信息表Number Name Sex NationalNativeClass Prefessional 以关系型
13、为目标将E-R实体图中概念模型映射为关系模型,具体旅店信息管理模型实现设计,如图所示:图2.1.8系统关系图我选取制作的是年级信息模块所用的数据库为:年级信息。1)存储过程:Create procedure nianji on 学生信息(nan ji char(20)number char(20)ban ji char(20)nian ji shu char(20)ban ji ming char(20)ASInsert into 年级基本信息(年级数,班级数,班级编号,班级名,年级编号)valuse(number,number,name)GO 2)触发器程序:为表建立my触发器以自动更新cl
14、ass表中的学生人数目USE JWGLGOIF EXISTS(SELECT name FROM sysobjectsWHERE type =TRAND name =student_insertDROP TRIGGER student_insertCREATE TRIGGER student_insert ON studentFOR UPDATEIF UPDATE(class_id)BEGIN UPDATE room SET student_num=( SELECT COUNT(r.class_id)FROM student r,inserted i WHERE r.typeld_id=i.ty
15、peld_id)FROM student m,inserted iWHERE m.typeld_id=i.typeld_idUPDATE room SET student_num=( SELECT COUNT(r.student_id)FROM student r,deleted e WHERE r.typeld_id=e.typeld_id)FROM student m,deleted eWHERE m.typeld_id=e.typeld_id END22程序设计221概要设计为了实现无纸化办公,以及规范化,迅捷话等我们开发了这一学生成绩管理系统,系统主要需要完成的功能有:学校信息管理、教
16、师信息管理、学生性息管理、课程性息管理、成绩性息编辑、成绩性息查询、补考重修管理以及帮助说明,通过分工我要完成的是教师性息管理、课程性息管理以及补考重修管理三个模块。整体功能模块图如图2.2.1所示:图2.2.1整体功能模块图年级信息管理包括学校年级设置、学校信息设置。其中学校信息设置时,可以输入学校学院编号实现对学校信息的设置,包括学生住宿等;学校年级设置时,可以输入年级编号实现对学校年级信息的设计,包括年级名称等如图2.2.2 所示图2.2.2课程管理功能模块图222程序实现学校年级设置运新后窗口如图2.2.3所示:图2.2.3学校年级设置窗口图学校年级设置窗口代码如下:Private S
17、ub cmdDel_Click()If txtGradeNo.Text = Then MsgBox 请选择要删除的记录!, vbOKOnly + vbInformation, 删除记录 Exit SubEnd IfIf MsgBox(确认要删除年级编号为 & txtGradeNo.Text & 的记录吗?, vbOKCancel + vbQuestion, ) = vbOK Then myAddGrade.rsDK1 select * from schoolgrade_info where grade_No= myAddGrade.rs1.Deleteselect * from schoolg
18、rade_info If myAddGrade.rs1.EOF Then AddGradeGrid.Clear AddGradeGrid.FormatString = | 年级编号|年级名称 Else Set AddGradeGrid.DataSource = myAddGrade.rs1 End If cmdDel.Enabled = False cmdSave.Enabled = False txtGradeNo.Text = txtGradeName.Text = End IfEnd Sub程序连接代码如下:Public Function rsDK(Table As String) Se
19、t rsSims = New ADODB.Recordset With rsSims.Source = Table .ActiveConnection = cnSIMS .CursorType = adOpenKeyset .LockType = adLockOptimistic .Open , , , , adCmdTableEnd WithEnd Function第3章 设计总结通过这次为期两周时间的课程设计让我对数据库这一学科的很多知识得到了一次更深的理解,当初原本以为自己已经基本掌握了数据库SQL的全部知识,但当我开始着手实际操作时才发现原来过去自己所掌握的知识是那么的贫乏。这次我们所
20、做的课设题目为学生成绩管理系统,我们四个人分工合作,一人一部分,开始做表时还算顺利,但当到了后来设计窗体,报表什么的问题就来了,很多东西都不懂,为此我们去图书馆参阅了很多书籍,也请教过很多次老师同学,但是因为我们的没有经验,所以设计出来的东西总是漏洞百出,不是数据冗余,就是文档组织不合理,而且最后发现帮助文档居然没有编,就一个空空的空文档,点进去什么也没有,更可气的是在点击教师性息管理界面的时候居然有些性息不显示,反复检查也检查不出来是哪里出了问题,最后才发现居然是属性没有设好。还有就是在与vb连接的时候真可谓是困难重重阿,不断地试不断的失败,最后在同学们的帮助下总算是ok了,再者还有存储过程
21、和触发器的部分那代码写起来总是丢三落四,结果就是总是出现语法错误无法完成,经过耐心的检查终于找到了原因总的来说这课程设计真的不是很好过,不仅需要丰富的知识,严谨的思维,还需要充分的耐心,往往一个小小的窗口就能让我们改来改去该半天,不过经过此次的可生设计不仅让我学到了很多过去漏掉的只是,而且也让我更有耐心了参考文献1 黄剀涛 .Visual Basic 6.0中文版高级应用.北京:北京大学出版社,2006:31-352 孙春来.SQL Server中文版编程基础.上海:电子工业出版社,2008:195-2103 知寒工作室.SQL Server 2000案例教程.北京: 机械工业出版社,2007:619-6254 徐建平,赵永.SQL Server 2000基础教程.北京:机械工业出版社出版,2006:51-695SQL Server开发指南熊桂喜 清华大学出版社6SQL Server开发和应用刘玉生 电子工业出版社7SQL Server 2000开发指南张营 电子工业出版社8VB.NET编程实例详解王华杰 中国铁道出版社9VB.NET数据库开发Thomsen 清华大学出版社 10SQL Server应用开发技术指南彭东 清华大学出版社11数据库原理及应用钱雪忠 北京邮电大学出报社12数据库原理概论王珊 高等教育出版社
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1