当前位置:文档之家› 数据库-学生学籍管理系统讲解学习

数据库-学生学籍管理系统讲解学习

目录一、系统定义 (1)二、需求分析 (1)1、系统综合需求 (1)2、系统逻辑模型 (2)三、系统设计 (4)1、概念结构设计 (4)2、逻辑结构设计 (5)3、系统功能设计 (7)四、详细设计 (8)1、开发平台及工具 (8)2、数据库的创建和链接 (8)3、编码设计 (9)4、界面设计 (11)五、课程设计总结 (13)六、参考文献 (13)七、评分表 (14)一、系统定义在学籍管理中,需要从大量的日常教学活动中提取相关信息,以反映教学情况。

传统的手工操作方式,易发生数据丢失,统计错误,劳动强度高,且速度慢。

使用计算机可以高速,快捷地完成以上工作。

在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范教学管理行为,从而提高了管理效率和水平,此外,现今学籍管理的繁索给具有强烈时间观念的行政人员带来了诸多不便,教学办公室缺少一种完善的学籍管理软件,为了对学生档案,学生信息的管理方便,因此开发了本软件。

二、需求分析1、系统综合需求⒈系统需求分析需求分析是数据库系统设计的一个重要的环节。

本阶段应该对整个应用情况作全面的、详细的调查,确定特定数据库应用环境下的设计目标,收集该应用环境下针对系统设计所需要的基础数据以及对这些数据的具体存储要求,从而确定用户的需求。

用户对数据库的需求包括:⑴处理需求1、实现学生基本情况的录入,修改,删除等基本操作。

2、对学生基本信息提供灵活的查询方式。

3、完成一个班级的学期选课功能。

4、实现学生成绩的录入,修改,删除等基本操作。

5、能方便的对学生的个人学期成绩进行查询。

6、具有成绩统计,排名等功能。

7、具有留级,休学等特殊情况的处理功能。

8、能输出常用的各种报表。

9、具有数据备份和数据恢复功能。

⑵信息需求需要存储学生基本信息、课程、专业信息、课程设置信息、学生选课信息、管理人员的密码信息。

⑶安全性和完整性功能设置身份密码验证登陆,进行数据维护,数据备份。

2、系统逻辑模型1.数据流图:第一层第二层第三层统计成绩第五层学生信息升留级名单 学生记录2.数据字典主要涉及到以下几个表,分别为:学生基本信息表,课程表,专业信息表,课程设置表,学生选课表,学生与专业之间的属于表以及管理人员的密码表。

以下是数据字典:更新记录4.2学生基本信息表 专业信息表课程表 课程设置表学生与专业的属于表管理人员密码表三、系统设计 1、概念结构设计局部ER 图整体的ER图2、逻辑结构设计ER图转换为关系模型由ER图可见:图中有三个实体:学生,课程,和专业;三个关系:学生选课关系,学生与专业之间的属于关系,专业的课程设置。

由于每个实体必须构造表,所以可以先得到三个实体的信息表,实体的码就是关系的码,实体的属性即关系模型的属性:学生基本信息表:S (sno, sname, ssex, sbirth, spasw)课程基本信息表: C (cno, cname, cperiord)专业基本信息表:P (pno, pname, pnum, psdept)对应的属性分别为:学号,姓名,性别,出生日期,登陆密码课程编号,课程名,学期专业编号,专业名,专业人数,所在院系对于多对多的关系来说,与该联系相连的实体的码以及本身的属性均转换为关系的属性,各实体之间的码组成关系的码或者关系的码的一部分。

以上ER图的三个联系为多对多,所以转换为关系模式为:课程设置表:pc ( pno, psenior, cno) 与设置相连的实体有专业和课程,根据多对多的转换原则:专业的码pno,课程的码cno以及设置本身的属性共同构成该关系模式的码,所以该关系模式的码为全码。

学生选课表:SC (sno, psenior, cno, grade)与选课相连的实体有学生和课程,同上由学生的码sno,课程的码cno以及选课本身的码psenior构成该关系模式的码,即(sno,cno,psenior)。

此外,选课表还有一个非主属性grade。

学生与专业的属于表:SP(sno,pno)与属于关系相联的实体是学生和专业。

同上由学生的码sno,专业的码pno构成该关系模式的码,由于此关系没有其他的码也就没有非主属性。

关系模式的优化:学生表s (sno,sname,ssex,sbirth,spasw)该关系模式的码为sno,由于只有一个码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。

另外,该关系模式的函数依赖为: sno -> sname, sno -> ssex, sno -> ssex,sno -> sbirth, sno -> spasw,其间不存在传递依赖,故学生表可达到3NCF.课程表 C ( cno ,cname , cperiod)该关系模式的码为cno, cname,设主码为cno,因为该关系模式中的码都是单一的,即不存在有两个或者两个以上的属性组成的码,所以不存在非主属性对码的部分函数依赖,可以达到2NCF。

另外,该关系模式的函数依赖为:cno->cname, cno->cperiod, cname ->cno ,cname -> cperiod. 因为cno -> cname,cname -> cperiod cno -> cperiod, 不能达到3NCF。

故优化该表为:C1(cno,period),C2().从而两表都达到了3NCF。

专业表P (pno,pname,pnum,pdept)该关系模式的码为pno,pname,其中设定pno为主码。

同课程表,该表不存在有两个或者两个以上属性组成的码,即不存在非主属性对码的部分函数依赖,故可达到2NCF。

另外,此关系模式的函数依赖为:pno->pname, pno-> pnum, pno -> pdept , pname -> pno, pname->pnum, pname -> pdept; 由于存在传递依赖:pno -> pnum., 所以未能达到3NCF。

优化分解为:P1 (pno,pnum,pdept), P2(pname,pnum,pdept)明显,两表都达到了3NCF.课程设置表PC(pno,psenior,cno),该关系模式的码为:(pno,psenior,cno)为全码,所以可直接达到3NCF学生选课表SC(sno,psenior,cno,grade)该关系模式的码为:(sno,psenior,cno),因为不存在非主性grade对码的部分函数依赖,所以可达到2NCF,由于不存在函数依赖(表中的函数依赖只有(sno,psenior,cno)-> grade)故也达到了3NCF属于表SP(sno,pno)该关系模式的码(sno,pno)也是全码,所以也达到了3NCF用户表U(uname,upasw)该表的码为uname,明显upasw对码uname是完全函数依赖的,从而达到2NCF。

另外因为只有两个属性,所以不存在传递函数依赖,该表达到了3NCF 3、系统功能设计四、详细设计 1、开发平台及工具● 开发工具 Microsoft Visual C++ 6.0 ● DBMS :Microsoft SQL Server 2000● 建模工具: Microsoft Visio, Sybase PowerDesigner2、数据库的创建和链接本系统的前台开发工具为Microsoft visual basic 6.0 ,除了一些常用的控件Commandbutton,Combobox,Textbox 和Label 外,这里还使用了控件ADO 和DataGrid 。

ADO 用来链接数据库与前台开发程序,指定链接的数据源和要访问的数据,并通过绑定要使用的数据来显示所获得的数据。

DataGrid 控件的作用是以表格的形式显示结果中的全部数据,但允许在表格中增加,删除和修改纪录。

具体的链接过程如下:ADO (步骤)(1)选择“工程”菜单中的部件命令,打开部件对话框,在控件选项中选择Microsoft ADO Data Control 6.0(OLEDB)复选框,单击确定,工具栏中会出现ADO 数据控件的图标,其微帮助名称为:Adodc 。

(2)在当前窗体上添加一个ADO 控件。

(3)打开ADO 的属性页,设置使用的ODBC 数据资源的名称,(如果没有则新建一个)即我所使用的数据库wangjiaDSN ;设置身份验证,包括用户名称和密码;设置纪录源,命令类型选择adCmdTable.(因为我所用到的记录源都是表,所以设置为该属性。

adCmdTable.表示的是数据源的属性是一个表名,表示其结果级是对该表执行无条件查询后得到的结果),表名或存储过程名则选择自己所要用到的表。

到此,便链接成功。

DataGrid(步骤)(1)同ADO控件一样,选择选择“工程”菜单中的部件命令,打开部件对话框,在控件选项中选择Microsoft DataGrid Control 6.0(OLEDB)复选框,单击确定,工具栏中会出现DataGrid数据控件的图标。

(2)在当前窗体上添加一个DataGrid控件。

(3)打开DataGrid的属性页,设置标题名,列,列标题与其对应的数据段。

颜色,字体等可根据需要设定。

将DataGrid的Recordsource设置为该窗体对应的Adodc;另外可检索字段和删除字段,这样可以显示自己想要的字段,而不是将adodc所对应的内容全部显示出来。

到此,链接成功。

3、编码设计1 用SQL语言完成以下功能:( 1 ) 每个表建表的主外码系信息表代码如下:use XJGLgocreate table DEPT( deptid char ( 10 ) not null,deptname nvarchar (10 ) primary key ,) ;班级信息表代码如下:use XJGLgocreate table CLASS( classid char ( 8 ) primary key,proname nvarchar ( 20 ) not null,deptname nvarchar ( 10 ) not null,smalldatetime not null) ;学生信息表代码如下:create table STUDENT( sno char ( 5 ) primary keysname nvarchar ( 10 ) not null,sage int not null,classid char ( 8 ) not null,) ;各表外码声明如下:use XJGLgoalter table STUDENTadd foreign key ( classid ) references CLASS ( classid )alter table CLASSadd foreign key ( deptname ) references DEPT ( deptname )( 2 ) 每个班级的人数不能超过30人。

相关主题