Access教学管理数据库应用系统设计方案.docx
- 文档编号:8105866
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:20
- 大小:921.02KB
Access教学管理数据库应用系统设计方案.docx
《Access教学管理数据库应用系统设计方案.docx》由会员分享,可在线阅读,更多相关《Access教学管理数据库应用系统设计方案.docx(20页珍藏版)》请在冰豆网上搜索。
Access教学管理数据库应用系统设计方案
函数。
Access教学管理数据库应用系统设计方案
第一章课题背景
1.1数据库
数据库管理系统(databasemanagementsystem)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。
它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。
它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。
DBMS提供数据定义语言DDL(DataDefinitionLanguage)与数据操作语言DML(DataManipulationLanguage),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。
MicrosoftOfficeAccess是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理
1.2Access数据库简介
MicrosoftOfficeAccess系统。
它是微软OFFICE的一个成员,在包括专业版和更高版本的office版本里面被单独出售。
2012年12月4日,最新的微软OfficeAccess2013在微软Office2013里发布,微软OfficeAccess2010是前一个版本。
MSACCESS以它自己的格式将数据存储在基于AccessJet的数据库引擎里。
它还可以直接导入或者数据(这些数据存储在其他应用程序和数据库)。
软件开发人员和数据架构师可以使用MicrosoftAccess开发应用软件,“高级用户”可以使用它来构建软件应用程序。
和其他办公应用程序一样,ACCESS支持VisualBasic宏语言,它是一个面向对象的编程语言,可以引用各种对象,包括DAO(数据访问对象),ActiveX数据对象,以及许多其他的ActiveX组件。
可视对象用于显示表和报表,他们的方法和属性是在VBA编程环境下,VBA代码模块可以声明和调用Windows操作系统函数。
Access是一款数据库应用的开发工具软件,其开发对象主要是MicrosoftJET数据库和MicrosoftSQLServer数据库。
由于在Office97及以前的版本中,MicrosoftJET3.51及以前版本的数据库引擎是随Access一起安装和发布的,JET数据库与Access就有了天生的血缘关系,并且Access对JET数据库做了很多地扩充,如,在Access的环境中,可以在查询中使用自己编写的VBA函数,Access的窗体、报表、宏和模块是作为一种特殊数据存储在JET数据库文件(.mdb)中,只有在Access环境中才能使用这些对象。
随着,MicrosoftWindows操作系统版本的不断升级和改良,在WindowsXP以后版本中,Microsoft将JET数据库引擎集成在Windwos操作系统中作为系统组件的一部分一起发布(主要原因是Windows中还有很多组件需要使用JET引擎,活动目录等)。
从此JET数据库引擎从Access中分离出来,而Access也就成为了一个专门的数据库应用开发工具。
1.3教学管理系统
高校的教学管理工作中,需要存储和管理大量数据。
只有借助计算机对这些数据进行存储和管理,才能保证教学工作顺畅、有序地进行,才能提高教学管理的质量和效率,减少错误发生。
为此设计开发“教学管理系统”这一Access数据库应用系统。
在数据库应用系统开发分析阶段确立的总体目标的基础上,就可以进行数据库应用系统开发的逻辑模型或规划模型的设计。
数据库应用系统开发设计的首要任务,就是对数据库应用系统在全局基础上进行全面的总体规划,就是要确立该系统的逻辑模型总体设计方案,具体确定数据库应用系统所具有的功能,指明各个系统功能模块所承担的任务,特别是要指明数据的输入、输出的要求等。
本数据库的设计主要基于以下实际需求做出设计:
某大学是一所综合性大学,学校设有经济学院、艺术学院、信息工程学院、外语学院、会计学院等11个学院。
学校现有教职工近1400人,学生18000多人。
学校的主要教学管理工作有:
制定全校本专科教学工作计划、各课程教学大纲、教材建设和各种教学文件;编制每学年(期)教学任务安排,包括教师排课、学生选课、教室安排等。
随着信息量的增加、教学管理工作越来越烦杂,手工管理的弊端日益显露,为了提高教学管理的质量和工作效率,及时提高信息,实现教学管理的信息化,特开发“教学管理系统”。
第二章设计简介及设计方案论述
2.1数据库概念设计
2.1.1确定实体
为了利用计算机完成上述复杂的教学管理任务,必须存储教师、班级、学生、课程、授课、成绩等大量信息,因此教学管理系统中的实体应该包括:
班级、课程、学生,由于教师与课程没有联系,因此将教师设计为授课的一个复合属性。
图2-1功能模块图
2.1.2确定实体的属性
实体的属性用如图2-1所示
M
N
I
P
N
N
2.1.3确定实体的联系类型
(1)每个班级可以开设多门课程,而每门课程可以在多个班级开设。
班级与课程是多对多的联系。
(2)每个班级可以有多名学生,而每个学生只能属于一个班级。
班级与学生只能属于一个班级。
班级与学生是一对多的联系。
(3)每个学生可以选修多门课程,而没门课程可以由多名学生选修。
学生与课程是多对多的联系。
2.1.4转换为关系模式
将E-R图中的实体和联系转换为关系模式。
由于“授课”联系的教师属性是复合属性,因此将教师单独转换成一个关系模式。
班级单独转换成一个关系模式。
学生实体单独转换成一个关系模式,班级和学生之间的“属于”关系是一对多的联系,因此将班级的主键“班级编号”加入学生关系模式中。
课程单独转换成一个关系模式。
班级和课程之间的“授课”联系是多对多的联系,因此单独转换成一个关系模式,并且加入两端的键,作为“授课”关系的主键。
学生和课程之间的“成绩”联系是单独的联系,因此单独转换成一个关系模式,并且加入两端的键,作为成绩关系的主键。
2.2数据库的物理实现
2.2.1建立表
根据第三式的建表原则,将系统所需要的数据划分到六个表中,分别是“班级”表、“成绩”表、“教师”表、“课程”表、“教授”表、和“学生”表。
(1)“班级”表。
班级表记载了班级的详细信息,如表2-1所示
表2-1“班级”表
列名
数据类型
宽度
小数
不允许空
主键
外键
班级编号
文本
20
√
√
班级名称
文本
50
入学时间
文本
50
专业
文本
50
培养层次
文本
50
人数
整数
4
0
班主任
文本
50
(2)“成绩”表。
“成绩”表记载了所有学生的成绩信息,如表2-2所示。
表2-2“成绩”表
列名
数据类型
宽度
小数
不允许空
主键
外键
学号
文本
20
√
√
√
课程编号
文本
20
√
√
√
分数
整数
4
0
(3)“教师”表。
“教师”表记载了教师的详细信息,如表2-3所示。
表2-3“教师”表
列名
数据类型
宽度
小数
不允许空
主键
外键
教师编号
文本
20
√
√
文本
50
√
性别
文本
2
参加工作时间
日期/时间
8
3
政治面貌
文本
50
学历
文本
50
职称
文本
50
系别
文本
50
联系
文本
50
婚否
是/否
(4)“课程”表。
“课程”表记载了左右课程的详细信息,如表2-4所示。
表2-4“课程”表
列名
数据类型
宽度
小数
不允许空
主键
外键
课程编号
文本
20
√
√
课程名称
文本
50
√
课程类别
文本
50
学分
整数
4
0
(5)“授课”表。
“授课”表记载了每个班级每学期的授课信息,如表2-5所示。
表2-5“授课”表
列名
数据类型
宽度
小数
不允许空
主键
外键
课程编号
文本
20
√
√
√
教师编号
文本
20
√
√
班级编号
文本
20
√
√
√
学年
文本
50
学期
文本
50
学时
文本
50
授课地点
文本
50
授课时间
文本
50
(6)“学生”表。
“学生”表记载了每个学生的授课信息,如表2-6所示。
表2-6“学生”表
列名
数据类型
宽度
小数
不允许空
主键
外键
学号
文本
20
√
√
文本
50
√
性别
文本
2
出生日期
日期/时间
8
3
政治面貌
文本
50
班级编号
文本
20
√
照片
OLE对象
2.2.2建立表间关系
图2-1表间“关系”窗体
“学生”表和“成绩”表按照“学号”字段建立一对多联系,“课程”表和“成绩”表按照“课程编号”建立一对多联系,“班级”表和“教授”表按照“班级编号”建立一对多联系,“课程”表和“授课”表按照“课程编号”建立一对多联系,“教师”表和“授课”表按照“教师编号”建立一对多联系,表间关系如图2-1所示。
其中“班级”表和“学生”表按照“班级编号”字段建立一对多联系,如图2-2所示。
图2-2关系编辑表
第三章“教学管理系统”的系统实现
3.1查询的设计与实现
学生查询设计,通过运用“Like”语句实现查询,如下图3-1,3-2所示
图3-1 学生查询
图3-2 查询参数
查询结果如下图3-3所示
图3-3查询结果
同时在系统中依次增加成绩查询、班级查询、开课情况查询、开课门数查询和学生成绩查询等查询操作。
图3-4成绩查询
3.2报表设计与实现
报表设计,通过设计实用的报表增强数据库的可用灵活性,这样用户可快速查询大量数据并且数据可通过打印到处。
学生报表、成绩报表分别如下图3-4、图3-5所示
图3-5学生查询
图3-6学生成绩查询
3.3宏操作设计与实现
Access系统提供了大量的宏操作,可以把各种宏操作依次定义在宏中,其中每个操作实现特定的功能。
运行软件时,Access就会按照所定义的顺序依次执行各个宏操作,通过宏可以轻松实现许多在其他软件中必须大量编写程序代码才能实现的功能。
这里我们通过宏操作增加系统菜单,在设计并保存数据录入、数据查询、报表打印和退出系统的宏组之后添加系统菜单宏,从而添加系统菜单。
如下图3-6、图3-7所示。
图3-6系统菜单宏
图3-7系统菜单
3.4窗体设计与实现
窗体是Access数据库对象设计中最具灵活性的一种对象,是用户与Access应用程序之间的主要接口。
利用窗体可以将数据库中的对象组织起来,形成一个完整、风格统一的数据库应用系统。
窗体中包含了各种控件,通过这些控件可以打开报表或其他窗体、执行宏或者VBA编写的代码。
通过窗体,用户可以轻松地完成数据的输入、编辑、显示和查询等多项事务。
窗体本身并没有数据存储功能,窗体的数据源主要是表或查询。
除此之外,窗体的信息来源还包括附加信息,如设计窗体时,为了美化窗体或显示提示信息,可以在窗体中添加一些说明性文字或图形元素。
我们可以利用查询数据设计窗体,比如可以查询特定的表或者引用特定查询,这里在数据库设计过程中对各表(学生表、教师表、班级表和授课表)的查询数据显示采用此种窗体设计显示。
学生窗体如下图3-8所示,其他窗体这里就不再一一列举。
图3-8学生窗体
利用查询实现窗体,通过添加子窗体实现窗体设计,如图3-9所示。
在成绩录入父窗体中通过设置查询来选择需要录入的课程名称,然后更新下面的班级、学期、学年和课程信息。
子窗体与父窗体的数据交互部分通过SQL语句来实现,在转到代码生成器中时添加相应代码实现数据传递。
代码详见附录1。
图3-9成绩录入窗体
利用查询结果进行再筛选,通过列表框显示数据,如图3-10所示。
成绩浏览窗体中通过开课情况查询在成绩浏览窗口中选择要浏览的班级。
然后通过代码设计器设计将班级信息应用到下面的列表框查询中,从而显示要查询的班级学生成绩。
代码详见附录2。
图3-10成绩浏览窗体
退出系统按钮设计时需要弹出一个消息提示窗口,如图3-11所示。
这里我们通过添加一个SQL代码实现此操作。
如果点击是会直接退出数据库系统,若点击否会取消此操作。
代码详见附录3。
图3-11消息提示窗口
最后的主窗体设计如下图3-12所示。
设计过程中需要通过按钮将各个主窗体与子窗体联系起来,这样便实现了数据库的灵活控制。
点击各个按钮就会调用相应的窗口,这样教学管理数据库系统的开发设计基本完成了设计。
图3-12主窗体
总结
数据库设计过程中难免会遇到很多问题,而这次同样我也是费了很大的周折才把这次数据库设计做的还算令人满意吧。
在实际操作过程中我发现数据库容越丰富越’[能体现数据库设计之初数据库规划的重要性,因为当数据当量堆积在一起的时候就会面临一些数据完整性的问题,如果设计不当还会产生数据冗余。
还有包括对脏数据的处理、报表设计、宏的应用、窗体设计、用户权限控制等等这些最好在数据库设计之初都要有一份很好的规划,不然设计过程中就会面临很大的随意性,使数据库的设计趋于没有条理的状态,当然这并不是我们希望的。
数据库的设计目标就是为真实地反应现实世界中的数据及其关系,减少有害数据冗余,提高共享程序,消除数据异常插入、异常删除,保存数据的独立性,可修改,可扩充,使访问数据库的时间最短、存储空间最小。
在数据库设计过程中我参考了大量的关于access的书籍,虽然基本讲义相同但也各有差别,但这些书籍还都是在讲一些比较小型的数据库设计。
设计过程中会涉及到许多报表以及查询的设计,这就需要我们切身的去考虑用户需求了,比如说用户需要查询哪些信息,哪些是必须信息哪些是附加信息;还有报表设计的一般格式怎样,是否符合实际需求;窗体设计过程中是否需要添加导航界面以及用宏的添加应用等等。
所以说在设计一个数据库之前首先要深入的了解用户需求,做好总体设计之后再具体设计数据库系统。
对给定的现实世界应用环境构造数据模型,为建立数据库及信息系统做好准备,使数据库能够更有效地存储数据,满足各种用户的应用需求
数据库综合设计就这么愉快的结束了,但是我们的学习还没有结束。
比如学习数据库与网页有关的开发设计,数据库远程访问等问题,我想这应该叫学无止境吧。
致谢
首先应该是要感谢我在图书馆借的那么多参考书,你们给了我动力与灵感,让我在数据库开发过程中辛苦并快乐着。
然后感谢彤洲、辉老师在整个课程过程中的帮助与悉心指导,没有他们的帮助,我也不能这么顺利地完成了课程设计。
感谢自己,学无止境的心我们都值得拥有,因为世界并不缺少美而是缺少发现美的眼睛。
我们要拥有的就是发现数据库美的眼睛。
参考文献
[1]绍丽萍,后,王馨迪.Access数据库技术与应用案例汇编[M].:
清华大学,2011.
[2]绍丽萍.信息系统开发实践实验教程[M].:
电子工业.2007.
[3]绍丽萍,王伟岭,朱红岩.Access数据库技术与应用[M]:
清华大学.2007.
[4]米红娟,海燕.Access2007数据库应用教程[M].:
科学,2012
附录1
OptionCompareDatabase
PrivateSubCombo4_BeforeUpdate(CancelAsInteger)
EndSub
PrivateSubCombo4_Change()
'生成学生的成绩
DimrsAsRecordset
Setrs=Me.Form.Recordset
DimsCourseCodeAsString
DimsClassCodeAsString
DimsYearAsString
DimsTermAsString
sCourseCode=Combo4.Column
(2)'rs.Fields("课程编号")
sClassCode=Combo4.Column(3)'rs.Fields("班级编号")
sYear=Combo4.Column(4)
sTerm=Combo4.Column(5)
lYear.Caption="学年:
"+sYear
lTerm.Caption="学期:
"+sTerm
lClass.Caption="班级:
"+Combo4.Column(6)
lCourse.Caption="课程:
"+Combo4.Column(7)
IfsCourseCode=""OrsClassCode=""Then
ExitSub
EndIf
DimsSQLAsString
sSQL="INSERTINTO成绩(学号,课程编号)SELECT学号,'"+sCourseCode+"'FROM学生WHERE班级编号='"+sClassCode+"'"
sSQL=sSQL+"AND学号NOTIN(SELECT学号FROM成绩WHERE课程编号='"+sCourseCode+"')"
'屏蔽警告
DoCmd.SetWarningsFalse
DoCmd.RunSQLsSQL
'允许警告
DoCmd.SetWarningsTrue
'过滤数据
成绩.Form.Filter="班级编号='"+Combo4.Column(3)+"'AND课程编号='"+Combo4.Column
(2)+"'"
成绩.Form.FilterOn=True
EndSub
PrivateSubForm_Load()
'窗体刚刚打开时不显示数据
成绩.Form.Filter="1=2"
成绩.Form.FilterOn=True
EndSub
附录2
OptionCompareDatabase
PrivateSubcboClass_AfterUpdate()
EndSub
PrivateSubcboClass_BeforeUpdate(CancelAsInteger)
EndSub
PrivateSubcboClass_Change()
DimsSQLAsString
sSQL="TRANSFORMSum(成绩.分数)AS分数之总计"
sSQL=sSQL+"SELECT学生.学号,学生."
sSQL=sSQL+"FROM课程INNERJOIN(学生INNERJOIN成绩ON学生.学号=成绩.学号)ON课程.课程编号=成绩.课程编号"
sSQL=sSQL+"WHERE((学生.班级编号)='"+Trim(cboClass.Column(0))+"')"
sSQL=sSQL+"GROUPBY学生.学号,学生.,学生.班级编号"
sSQL=sSQL+"PIVOT课程.课程名称"
ListScore.RowSourceType="Table/Query"
ListScore.RowSource=sSQL
'计算列表的列数
ListScore.ColumnCount=Val(cboClass.Column(7))+2
EndSub
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Access 教学管理 数据库 应用 系统 设计方案