学生选课系统数据库.docx
《学生选课系统数据库.docx》由会员分享,可在线阅读,更多相关《学生选课系统数据库.docx(30页珍藏版)》请在冰豆网上搜索。
学生选课系统数据库
数据库设计报告
数据库名称:
学生选课信息系统
学院:
信息科学与工程学院
班级:
xxxx班
设计人:
xxx
学号:
小行星
目录
第一章前沿
1.1背景……………………………………………......................3
1.2目的………………………………………...………………...3
1.3数据库基本概念…………………………………..................3
第二章设计思想
2.1需求分析……………………………..……………………..4
2.2概要设计……………………………………………...4
第三章详细设计
3.1主窗体的创建…………………………………………………8
3.2信息查询模块………………………………………………...9
3.3信息添加模块………………………………………………..12
3.4信息删除模块………………………………………………..14
3.5信息修改模块……………………………………………...16
3.6本章小结…………………………………………………...21
第四章心得体会
4.1数据库学习心得…………………………………………….21
附录……………………………………………………………….22
前沿
1.1背景
由于电脑时代的到来以及internet的迅速发展,电脑无出不在,当然各种工作效率也大幅提高,那么对于一个学校来说,开发一个好的学生信息管理系统势在必行。
鉴此,特开发此学生信息管理系统,该系统实现了办公无纸化、网络化、信息化、现代化。
随着学校的规模的不断扩大学生数量急剧增长,需要管理的各种信息也就成倍增加。
同时由于计算机和网络技术的普及,建立一个C/S或者B/S结构的教学管理系统之后,学生可以通过网络来选课并管理自己的信息,使得教学管理工作系统化,规范化,自动化,大大提高了教学管理信息的效率.教学信息管理系统是学校信息管理系统的一个重要组成部分。
1.2目的
目的:
通过实验熟练掌握MSSQLserver2000软件的使用,包括基本表的设计及定义,数据的输入和单表多表的查询。
并应用数据库知识设计开发小型学生管理系统。
。
1.3数据库的基本概念
数据库技术与其他学科的内容相结合,是新一代数据库技术的一个显著特征。
在结合中涌现出各种新型的数据库,例如:
数据库技术与分布处理技术相结合,出现了分布式数据库。
数据库技术与并行处理技术相结合,出现了并行数据库。
数据库技术与人工智能相结合,出现了演绎数据库、知识库和主动数据库。
数据库技术与多媒体处理技术相结合,出现了多媒体数据库。
数据库技术与模糊技术相结合,出现了模糊数据库。
近来许多专家学者着力研究所谓的数据仓库(DataWarehouse,简称DW)-技术,可以给出其定义:
数据仓库是面向主题的、集成的、稳定的、不同时间的数据集合,用以支持经营管理中的决策制定过程。
数据库系统的特点:
(一)数据库(简称DB)
可以简单地定义为:
以一定的组织方式存储在计算机外存储器中的、相互关联数据
集合。
数据库不是根据某个用户的需要,而是按照信息的自然联系构造数据联的数;它能
以最佳的方式、最少的冗余,为多个用户或多个应用共享服务。
(二)数据库系统(DBS)
数据库系统是一个具有管理数据库功能的计算机系统,它应当由数据库(DB),数据库管理系统(DBMS),数据库管理人员(DBA)和用户及相应的计算机硬件构成。
数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级组成。
(1)外模式。
外模式也称子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示.一个数据库可以有多个外模式。
(2)模式。
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公用数据视图。
一个数据库只有一个模式。
(3)内模式。
内模式也称存储模式,它是数据物理和存储结构的描述,是数据在数据库内部的表示方式。
一个数据库只有一个内模式。
数据库系统在这三级模式之间提供了两层映像:
外模式式/模式映像和模式/内模式映像。
正是这两层映像保证了数据库系统的数据能够具有较高的逻辑独立性和物理独立性。
设计思想
2.1概要
现在人们越来越认识到软件工程在软件开发中的重要作用。
目前国内软件在开发中还没有对软件开发的过程进行明确规定,文档不完整,也不规范,软件项目的成功往往归功于软件开发组的一些杰出个人或小组的努力。
这种依赖于个别人员上的成功并不能为全组织的软件生产率和质量的提高奠定有效的基础,只有通过建立全过程的改善,采用严格的软件工程方法和管理,并且坚持不懈地付诸实践,才能取得全组织的软件过程能力的不断提高,使软件开发更规范合理。
所以说,项目的需求分析如果做得好,那项目就相当于做完了一半。
对于学生选课信息系统的设计本人通过阅读了大量相关文献,了解了管理信息系统的发展、相关技术和开发方法,以及软件工程学的相关理论。
基于对以上情况的了解和对阅读参考文献的体会。
总结了本系统的相关需求。
包括学生信息的输入,包括学生基本信息、课程基本信息,教师基本信息,选课表信息等。
各种信息的查询,包括学生基本信息、课程基本信息,教师基本信息,选课信息的查询等。
最后设计如下的数据项和数据结构:
学生信息:
学号,姓名,性别,年龄,邮箱,年级
教师信息:
教师编号,姓名,性别,年龄,邮箱,工资
课程信息:
课程编号,课程名称,课时
选课信息:
编号,学号,教师编号,课程编号,分数
界面需求
系统应尽量采用比较浅的颜色,最好用浅蓝色为好。
突出标明部分最好是用红色,界面应友好,操作应简单。
设计思想
设计步骤:
1.需求分析阶段:
分析客户的业务和数据处理需求;
2.概要设计阶段:
设计数据库的E-R模型图,确认需求信息的正确和完整;
3.详细设计阶段:
将E-R图转换为多张表,进行逻辑设计,并应用数据库设计的三大式进行审核;
4.代码编写阶段:
选择具体数据库进行物理实现,并编写代码实现前端应用;
5.软件测试阶段:
系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。
6.安装部署:
首先需要具备的技术和知识,主要包括:
计算机的基础知识;软件工程的原理和方法;程序设计的方法和技巧;数据库的基本知识;应用领域的知识;掌握的编程语言如Delphi、VB等等。
其次本系统是基于E-R模型的数据库的设计方法。
E-R图是用来描述某一组织(单位)的概念模型,提供了表示实体、属性和联系的方法。
构成E-R图的基本要素是实体、属性和关系。
实体是指客观存在并可相互区分的事特;属性指指实体所具有的每一个特性。
再次,本系统同时运用了SQL-Server2000和delphi7.0编程,相连接后使其功能更强大更方便。
功能模块设计:
通过对上述的各项系统功能进行集中、分块,按照程序设计的要求,得到如图所示的系统功能模块图
数据库设计
数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库以及应用系统。
使之能够有效的存储数据,满足各种用户的应用需求。
在数据库领域内,常常把使用数据库的各种系统通称为数据库应用系统。
根据上面的实体规划,我们对各个实体的描述E-R图如下:
实体与实体间的ER图:
学生ER图:
教师ER图:
课程ER图:
选课表ER图:
数据库概念结构设计
根据前面的设计规划出的实体有:
学生实体、课程实体、教师实体、课程实体等
学生信息,包括的数据项有:
学号,姓名,性别,年龄,邮箱,年级;
教师信息包括:
教师编号,姓名,性别,年龄,邮箱,工资;
课程信息包括:
课程编号,课程名称,课时;
选课信息包括:
编号,学号,教师编号,课程编号,分数;
数据库逻辑结构设计
现在需要将上面的数据库概念结构转化为SQLServer2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
在上面的实体以及实体之间关系的基础上,形成数据库的表格以及各个表格之间的关系。
数据库结构的设计实现
采用C/S模式,应用于Intranet,加强数据的安全管理,同时可以设计与学校其他系统的接口程序,就能实现数据的共享传递。
设计数据库结构图
本章小结
通过问题提出、然后进行可行性研究和需求分析,最后确定了系统的逻辑结构和数据库结构,规划出系统的雏形,总体设计了新系统结构、功能模块和数据库,为具体实现系统打下基础。
详细设计方案
3.1学生信息系统主窗体的设计
此页面显示各种操作按钮,供使用者选择,因此设计时要求简单,大方,力求精致。
部分源程序:
usesunit4,unit7,unit8,unit12,unit13;
{$R*.dfm}
procedureTForm1.Button1Click(Sender:
TObject);
begin
form1.Hide;
form4.Show;
end;
procedureTForm1.Button4Click(Sender:
TObject);
begin
close;
end;
procedureTForm1.Button2Click(Sender:
TObject);
begin
form8.Show;
form1.Hide;
end;
procedureTForm1.Button3Click(Sender:
TObject);
begin
form1.Hide;
form12.show;
end;
procedureTForm1.Button5Click(Sender:
TObject);
begin
form13.show;
form1.Hide;
end;
end.
3.2查询信息模块
此页面供使用者选择需要查询的表,设计时应一目了然,可以选择不同的表进行查询;
部分源代码:
usesunit1,unit2,unit3,unit5,unit6;
{$R*.dfm}
procedureTForm4.Button5Click(Sender:
TObject);
begin
form1.Show;
form4.Hide;
end;
procedureTForm4.Button1Click(Sender:
TObject);
begin
if(Combobox1.Itemindex=0)then
begin
form2.Show;
form4.Hide;
end;
if(Combobox1.Itemindex=1)then
begin
form3.Show;
form4.Hide;
end;
if(Combobox1.Itemindex=2)then
begin
form5.Show;
form4.Hide;
end;
if(Combobox1.Itemindex=3)then
begin
form6.Show;
form4.Hide;
end;
end;
end.
学生信息查询操作页面:
部分程序代码:
usesunit4;
{$R*.dfm}
procedureTForm2.Button1Click(Sender:
TObject);
begin
form4.show;
form2.Hide;
end;
procedureTForm2.Button3Click(Sender:
TObject);
begin
withADOQuery1DO
begin
close;
SQL.Clear;
SQL.Add('SELECT*fromstudents');
open;
end;
end;
procedureTForm2.Button2Click(Sender:
TObject);
begin
ifCombobox1.Itemindex=0then
withADOQuery1do
begin
close;
SQL.Clear;
SQL.Add('select*fromstudentswherestudents.sid=:
a');
parameters.parambyname('a').value:
=trim(edit1.text);
open;
end;
ifCombobox1.Itemindex=1then
withADOQuery1do
begin
close;
SQL.Clear;
SQL.Add('select*fromstudentswherestudents.sname=:
a');
parameters.parambyname('a').value:
=trim(edit1.text);
open;
end;
end;
end;
end.
4.3插入模块的建立
此页面供使用者选择需要操作的表,设计时应力求简单:
学生信息插入页面:
此页面供使用者插入学生信息
部分源程序代码:
procedureTForm7.Button2Click(Sender:
TObject);
begin
withADOQuery1DO
begin
close;
SQL.Clear;
SQL.Add('SELECT*fromstudents');
open;
end;
end;
procedureTForm7.Button3Click(Sender:
TObject);
begin
withADOQuery1do
begin
close;
SQL.Clear;
sql.add('insertintostudentsvalues('''+edit1.Text+''','''+edit2.Text+''','''+edit3.Text+''','''+edit4.Text+''','''+edit5.Text+''','''+edit6.Text+''')');
execsql;
showmessage('一条信息已插入!
');
edit1.Text:
='';
edit2.Text:
='';
edit3.Text:
='';
edit4.Text:
='';
edit5.Text:
='';
edit6.Text:
='';
end;
end;
4.4信息删除页面
此页面供使用者删除各个表中需要操作的信息;操作时应按照提示信息进行操作:
部分源程序:
usesunit1;
{$R*.dfm}
procedureTForm12.Button1Click(Sender:
TObject);
begin
form1.Show;
form12.Hide;
end;
procedureTForm12.Button2Click(Sender:
TObject);
begin
ifCombobox1.Itemindex=0then
withADOQuery1DO
begin
close;
SQL.Clear;
SQL.Add('SELECT*fromstudents');
open;
edit1.text:
='请输入学号';
Edit2.visible:
=false;
END;
if(Combobox1.Itemindex=1)then
withADOQuery1DO
begin
close;
SQL.Clear;
SQL.Add('SELECT*fromteachers');
open;
edit1.text:
='请输入教师编码';
Edit2.visible:
=false;
END;
if(Combobox1.Itemindex=2)then
withADOQuery1DO
begin
close;
SQL.Clear;
SQL.Add('SELECT*fromcourses');
open;
edit1.text:
='请输入课程编码';
Edit2.visible:
=false;
END;
if(Combobox1.Itemindex=3)then
withADOQuery1DO
begin
close;
SQL.Clear;
SQL.Add('SELECT*fromchoices');
open;
edit1.text:
='请输入学生学号';
Edit2.text:
='请输入课程号';
END;
end;
procedureTForm12.Button3Click(Sender:
TObject);
begin
ifCombobox1.Itemindex=0then
withadoquery1do
begin
close;
SQL.Clear;
ADOQuery1.sql.text:
='selectsidFromstudentsWHEREsid='+QuotedStr(Edit1.text);
ADOQuery1.Open;
ifADOQuery1.IsEmptythen
beginShowmessage('没有您输入的学号,请重新输入!
');
exit;
end;
withADOQuery1DO
begin
close;
SQL.Clear;
SQL.Add('deletefromstudentswheresid='''+Trim(Edit1.text)+'''');
execsql;
showmessage('一条信息已删除!
');
withADOQuery1DO
begin
close;
SQL.Clear;
SQL.Add('SELECT*fromstudents');
open;
END;
END;
END;
end.
4.5修改页面的设计
此页面供使用者对数据进行修改,操作时应按照提示进行操作;
部分源代码:
usesunit1;
{$R*.dfm}
procedureTForm13.Button1Click(Sender:
TObject);
begin
form1.show;
form13.Hide;
end;
procedureTForm13.Button2Click(Sender:
TObject);
begin
if(Combobox1.Itemindex=0)then
withADOQuery1DO
begin
close;
SQL.Clear;
SQL.Add('SELECT*fromstudents');
open;
label3.Caption:
='请输入要修改的学号';
WiTHComboBox2.Itemsdo
begin
Clear;
Add('姓名');
Add('性别');
Add('年龄');
Add('邮箱');
Add('年级');
end;end;
if(Combobox1.Itemindex=1)then
withADOQuery1DO
begin
close;
SQL.Clear;
SQL.Add('SELECT*fromteachers');
open;
label3.Caption:
='请输入要修改的教师编号';
WiTHComboBox2.Itemsdo
begin
Clear;
Add('教师姓名');
Add('性别');
add('年龄');
Add('邮箱');add('工资');
end;end;
end;********
procedureTForm13.Button4Click(Sender:
TObject);
begin
if(Combobox1.Itemindex=0)and(Combobox2.Itemindex=0)then
withADOQuery1do
begin
close;
SQL.Clear;
SQL.Add('updatestudentssetsname='''+Trim(Edit1.text)+'''wheresid='''+Trim(Edit2.text)+'''');
EXECSQL;
showmessage('修改成功');
withADOQuery1DO
begin
close;
SQL.Clear;
SQL.Add('SELECT*fromstudents');
open;
end;
end;
if(Combobox1.Itemindex=0)and(Combobox2.Itemindex=1)then
withADOQuery1do
begin
close;
SQL.Clear;
SQL.Add('updatestudentssetsex='''+Trim(Edit1.text)+'''wheresid='''+Trim(Edit2.text)+'''');
EXECSQL;
showmessage('修改成功');
withADOQuery1DO
begin
close;
SQL.Clear;
SQL.Add('SELECT*fromstudents');
open;
end;
end;
if(Combobox1.Itemindex=0)and(Combobox2.Itemindex=2)then
withADOQuery1do
begin
close;
SQL.Clear;
SQL.Add('updatestudentssetage='''+Trim(Edit1.text)+'''wheresid='''+Trim(Edit2.text)+'''');
EXECSQL;
showmessage('修改成功');
withADOQuery1DO
begin
close;
SQL.Clear;
SQL.Add('SELECT*fromstudents');
open;
end;
end;
if(Combobox1.Itemindex=0)and(Combobox2.Itemindex=3)then
withADOQuery1do
begin
close;
SQL.Clear;
SQL.Add('updatestudentssetemail='''+Trim(Edit1.text)+'''wheresid='''+Trim(Edit2.text)+'''');
EXECSQL;
showmessage('修改成功');
withADOQuery1DO
begin
close;
SQL.