数据建模大作业公共任选课管理系统.docx
《数据建模大作业公共任选课管理系统.docx》由会员分享,可在线阅读,更多相关《数据建模大作业公共任选课管理系统.docx(16页珍藏版)》请在冰豆网上搜索。
数据建模大作业公共任选课管理系统
2014-2015学年第一学期《数据建模》考查报告
课题名称:
公共任选课管理系统
班级:
XXXXX
学号:
123456789
姓名:
成绩:
2015年5月29日
1.课题概述
1.1.随着学校学生人数剧增,学生信息呈爆炸性增长的前提下,学校对学生信息管理的自动化与准确化的要求日益强烈的背景下提出的,本软件产品实现学生选课管理功能。
由于学校的规模扩大,作为一个大的学校,学生的选课信息管理非常的重要。
本软件旨在将学生选课信息有效的存储,可以方便的了解和记录每一个用户的选课情况和成绩,更方便老师对学生的了解和学生对课程的安排,更有利于教课的进行。
方便学生,管理者,老师获取信息。
对学生信息将进行安全检测,包括真实性。
学生选课管理系统省去了老师为学生展示为学生提供的选修课程,并作介绍,考试后把分数抄录多次以做备案和公告这些大量繁杂而由单一枯燥的劳动,可以让老师把精力放在教学和组织教学等更重要更具创造性的事情上,这就显著的提高了他们的工作效率。
取消了抄录成绩后,里也不会再出现残破的成绩单一层盖一层的贴在公告栏或黑板上的情景,校园环境也会因此而变得更整洁,而且也为省下了大量的纸张,虽然数量并不是很多,但将来系统扩展到整个也将是很可观的。
况且,在资源日益缺乏的今天,节省纸张已不仅仅是为减少办公费用这一单纯的意义。
众所周知,的的学生多,管理起来非常困难。
相应的也加大了老师的工作量,又因为教学制度的不断变动和改革,因此,总能及时统计出一份内容清晰,条理性强的学籍学分选课分析报表对老师来说真是难于登天。
但如果缺少这份报表,同学们就无法清楚了解自己的学分情况,盲目选课,打乱了学习计划,加重了课业负担,而那些基本顺从课程安排的同学则浪费了许多去学习有用知识的时间,至临毕业时却发现未修够学分而毕不了业。
这个关系到每个人命运的问题绝对马虎不得。
不能再坐以待毙了,我们这套学生选课管理系统将提供一份完整的学分选课报表,并会利用管理系统的易修性及时进行更新,让同学们在选课计算学分中更加游刃有余。
近几年来,我们南阳理工学院一直都在扩招学生,外地生源的比例也比以前大了许多,而且还有日益增多的外国留学生,在管理上更增加了管理人员的劳动量,如此多的档案资料,以原有的工作人员数量要管理好实在不容易,但如果增加工作人员,管理成本必然也会增加,得不偿失,而我们这套系统这时就会发挥出它大大的作用,让实用这领会到它的优越之处,帮助老师轻轻松松管理好学生各方面的资料,无论学生是多是少,一切都会被管理得井井有条。
1.2课题简介
(1)该软件的功能为:
学生选课信息更新、选课查询、成绩查询、密码管理、以及学生选课信息的导入/导出。
学生选课信息更新:
添加选课学生、删除选课学生、修改选课学生信息。
查询功能:
记录浏览和条件查询。
密码管理功能允许合法用户对密码进行修改。
(2)性能方便数据的录入,使查询速度大大提高。
(3)系统的输入选课学生所包含的信息。
(4)系统的输出查询结果和各类报表。
(5)数据安全和保密系统对不同权限的用户提供不同的功能模块,有一定权限的用户可以进行操作,一般的用户只能进行查询的操作。
根据功能的不同可以将本系统划分为四个主模块,五个子模块身份验证:
通过登录才可进入选课系统,登录信息提交后检验登录者的身份是否合法,合法,则转入对应的操作界面。
在本系统中,只有三种身份:
学生、老师、管理员。
选课:
用于学生的网上选课,通过选择被选学期,查看被选专业的课程,完成该学期的选课任务。
信息管理:
信息浏览:
信息浏览包括已选课程浏览、被选课程浏览、公共信息浏览、已发布课程信息浏览。
已选课程浏览是为学生提供的查看自己已经选择的课程信息,根据选择的学期不同而更新页面。
被选课程浏览用于学生修改、补选、重新选择课程。
公共信息浏览适用于教师和学生查看最近发布的信息(内容、时间)。
已发布课程信息浏览用于各代课老师查询自己已经发布的课程信息,主要用于浏览、核对。
信息查询:
信息查询包括教师个人信息查询、课程查询、选课名单查询。
课程查询即通课程编码(唯一)来查询该课程的相关介绍,包括课程内容、开课学期、地点等内容。
教师个人信息是通过教师姓名来查询对应的老师个人信息,包括学历、职称、成果等。
通过选课名单的查询可以查看该学期选择某一门课程的学生情况。
信息修改:
修改:
信息修改包括选课信息的修改,课程发布信息的修改,密码的修改,学生信息的修改,教师信息的修改。
2、需求分析文档(RQM模型BPM模型)
2.1RQM模型:
1.首先用户登陆,输入用户账号密码,用户确认是否合法,进入主界面,然后点击需要进的系统服务,学生选课信息更新、选课查询、成绩查询、密码管理、以及学生选课信息的导入/导出。
学生选课信息更新:
添加选课学生、删除选课学生、修改选课学生信息。
查询功能:
记录浏览和条件查询。
密码管理功能允许合法用户对密码进行修改。
((3)系统的输入选课学生所包含的信息。
(4)系统的输出;查询结果和各类报表。
(5)数据安全和保密,系统对不同权限的用户提供不同的功能模块,有一定权限的用户可以进行操作,一般的用户只能进行查询的操作。
2.管理员:
公共选修系统管理员进行用户管理,成绩管理和课程管理;管理员有权对学生信息、所选课程、科目成绩进行管理、修改;
2.2BPM模型
1.业务流程管理(BusinessProcessManagement,BPM)不是一个新概念,甚至不是一个新名词。
它是从相关的业务流程变革领域,如业务流程改进(BPI)、业务流程重组(BPR)、业务流程革新中发展起来的。
流程管理技术也是从早期的工作流管理、EAI、流程自动化、流程集成、流程建模、流程优化等技术中发展起来的。
BPM的出现,改变了这种IT思维方法。
它希望在现有的IS系统开发中表达商业需求,对根植在应用系统中的流程做出清晰的定义。
为实现BPM,管理系统必须能够提供方便迅速分析业务流程、商业数据的工具,以便企业决定用最适和流程引导商业目的的实现。
也就是BPM必须能用一种通用的语言传达给商业伙伴对于特殊业务流程的清晰明确的描述;
2.思路分析:
理论基础:
BPM的体系、模型、定义语言的研究;
◎ 实现技术:
BPM的仿真和评估;流程的事务特性;WebService、XML、组件技术等在BPM中的应用;
◎ 应用:
BPM的实施技术;在不同领域内的应用方法。
.
3.模型分析:
进行学号,姓名,性别,年龄,系别的输入,进入学生选课系统,进行查询出学分,学生号等
1、概念数据模型(CDM):
简称概念模型,是面向数据库用户的实现世界的模型,主要用来描述世界的概念化结构,它使数据库的设计人员在设计的初始阶段,摆脱计算机系统及DBMS的具体技术问题,集中精力分析数据以及数据之间的联系等,与具体的数据库管理系统(DatabaseManagementSystem,简称DBMS)无关。
概念数据模型必须换成逻辑数据模型,才能在DBMS中实现。
其只描述信息的特征和强调语义,而不涉及信息在计算机中的表示,是现实世界到信息世界的第一层抽象。
最常用的是实体联系模型(EntityRelationshipMode)
2、逻辑数据模型
逻辑数据模型(LogicDataModel,LDM)是一种图形化的展现方式,一般采用面向对象的设计方法,有效组织来源多样的各种业务数据,使用统一的逻辑语言描述业务。
借助相对抽象、逻辑统一且结构稳健的结构,实现数据仓库系统所要求的数据存储目标,支持大量的分析应用,是实现业务智能的重要基础,同时也是数据管理分析的工具和交流的有效手段。
对于企业,逻辑数据模型(简称LDM)就是企业基础数据的一部分,它是企业数据资产的全面的、准确的描述,是数据整合的核心或目的。
数据整合就是将不同来源的数据整合到一个统一定义、统一形式的LDM中.
3、物理数据模型、数据库SQL脚本、数据库相关文件(含测试数据)
此部分主要介绍逻辑数据模型,增加存储过程函数实现系统功能(plsql代码的功能描述),生成的sql脚本。
(重点)
/*==============================================================*/
/*DBMSname:
SybaseSQLAnywhere12*/
/*Createdon:
2015/5/2815:
18:
23*/
/*==============================================================*/
ifexists(select1fromsys.sysforeignkeywhererole='FK_TEACHER_教师-成绩_成绩')then
altertableTeacher
deleteforeignkey"FK_TEACHER_教师-成绩_成绩"
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_TEACHER_教师-课程_课程')then
altertableTeacher
deleteforeignkey"FK_TEACHER_教师-课程_课程"
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_学生_学生-选课情况_选课情况')then
altertable学生
deleteforeignkey"FK_学生_学生-选课情况_选课情况"
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_成绩_学生-成绩_学生')then
altertable成绩
deleteforeignkey"FK_成绩_学生-成绩_学生"
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_成绩_课程-选课成绩_课程')then
altertable成绩
deleteforeignkey"FK_成绩_课程-选课成绩_课程"
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_课程_课程-选课情况_选课情况')then
altertable课程
deleteforeignkey"FK_课程_课程-选课情况_选课情况"
endif;
ifexists(select1fromsys.sysforeignkeywhererole='FK_选课情况_教师-选课情况_TEACHER')then
altertable选课情况
deleteforeignkey"FK_选课情况_教师-选课情况_TEACHER"
endif;
dropindexifexistsTeacher."教师-成绩_FK";
dropindexifexistsTeacher."教师-课程_FK";
dropindexifexistsTeacher.Teacher_PK;
droptableifexistsTeacher;
dropindexifexists学生."学生-选课情况_FK";
dropindexifexists学生.学生_PK;
droptableifexists学生;
dropindexifexists成绩."课程-选课成绩_FK";
dropindexifexists成绩."学生-成绩_FK";
dropindexifexists成绩.成绩_PK;
droptableifexists成绩;
dropindexifexists课程."课程-选课情况_FK";
dropindexifexists课程.课程_PK;
droptableifexists课程;
dropindexifexists选课情况."教师-选课情况_FK";
dropindexifexists选课情况.选课情况_PK;
droptableifexists选课情况;
/*==============================================================*/
/*Table:
Teacher*/
/*==============================================================*/
createtableTeacher
(
教师号numeric(8)notnull,
成绩_课程号numeric(8)notnull,
成绩单号numeric(8)notnull,
课程号numeric(8)notnull,
系别numeric(8)null,
教师名char(10)null,
constraintPK_TEACHERprimarykey(教师号)
);
/*==============================================================*/
/*Index:
Teacher_PK*/
/*==============================================================*/
createuniqueindexTeacher_PKonTeacher(
教师号ASC
);
/*==============================================================*/
/*Index:
"教师-课程_FK"*/
/*==============================================================*/
createindex"教师-课程_FK"onTeacher(
课程号ASC
);
/*==============================================================*/
/*Index:
"教师-成绩_FK"*/
/*==============================================================*/
createindex"教师-成绩_FK"onTeacher(
成绩_课程号ASC,
成绩单号ASC
);
/*==============================================================*/
/*Table:
学生*/
/*==============================================================*/
createtable学生
(
学号numeric(8)notnull,
课程numeric(8)notnull,
姓名char(10)null,
性别char
(1)null
constraintCKC_性别_学生check(性别isnullor(性别in('男','女'))),
年龄numericnulldefault20
constraintCKC_年龄_学生check(年龄isnullor(年龄between10and40)),
所在系别numeric(8)null,
constraintPK_学生primarykey(学号)
);
/*==============================================================*/
/*Index:
学生_PK*/
/*==============================================================*/
createuniqueindex学生_PKon学生(
学号ASC
);
/*==============================================================*/
/*Index:
"学生-选课情况_FK"*/
/*==============================================================*/
createindex"学生-选课情况_FK"on学生(
课程ASC
);
/*==============================================================*/
/*Table:
成绩*/
/*==============================================================*/
createtable成绩
(
课程号numeric(8)notnull,
成绩单号numeric(8)notnull,
学号numeric(8)notnull,
成绩numericnull,
学生名char(10)null,
学生号numeric(8)null,
课程编号numeric(8)null,
constraintPK_成绩primarykey(课程号,成绩单号)
);
/*==============================================================*/
/*Index:
成绩_PK*/
/*==============================================================*/
createuniqueindex成绩_PKon成绩(
课程号ASC,
成绩单号ASC
);
/*==============================================================*/
/*Index:
"学生-成绩_FK"*/
/*==============================================================*/
createindex"学生-成绩_FK"on成绩(
学号ASC
);
/*==============================================================*/
/*Index:
"课程-选课成绩_FK"*/
/*==============================================================*/
createindex"课程-选课成绩_FK"on成绩(
课程号ASC
);
/*==============================================================*/
/*Table:
课程*/
/*==============================================================*/
createtable课程
(
课程号numeric(8)notnull,
课程numeric(8)notnull,
课程名char(10)null,
专业char(10)null,
学分numericnull,
开课时间datenull,
课程表numeric(8)null,
constraintPK_课程primarykey(课程号)
);
/*==============================================================*/
/*Index:
课程_PK*/
/*==============================================================*/
createuniqueindex课程_PKon课程(
课程号ASC
);
/*==============================================================*/
/*Index:
"课程-选课情况_FK"*/
/*==============================================================*/
createindex"课程-选课情况_FK"on课程(
课程ASC
);
/*==============================================================*/
/*Table:
选课情况*/
/*==============================================================*/
createtable选课情况
(
课程numeric(8)notnull,
教师号numeric(8)notnull,
学生姓名char(10)null,
学生编号numeric(8)null,
教师姓名char(10)null,
教师编号numeric(8)null,
constraintPK_选课情况primarykey(课程)
);
/*==============================================================*/
/*Index:
选课情况_PK*/
/*==============================================================*/
createuniqueindex选课情况_PKon选课情况(
课程ASC
);
/*==============================================================*/
/*Index:
"教师-选课情况_FK"*/
/*==============================================================*/
createindex"教师-选课情况_FK"on选课情况(
教师号ASC
);
altertableTeacher
addconstraint"FK_TEACHER_教师-成绩_成绩"foreignkey(成绩_课程号,成绩单号)
references成绩(课程号,成绩单号)
onupdaterestrict
ondeleterestr