《数据库原理》综合设计报告学生成绩管理系统文档格式.docx
《《数据库原理》综合设计报告学生成绩管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《《数据库原理》综合设计报告学生成绩管理系统文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
修改选中当前学生的信息。
2、学生信息的添加
增加新学生的信息。
3、学生信息删除
删除选中当前学生信息。
(二)课程查询
1、课程修改
实现对课程名、学时、学分的修改。
2、课程添加
对一门新开设的课程进行录入,并存入数据库。
3、课程删除
对一门不在开设的课程进行删除,并从数据库中删除。
(三)成绩查询
1、成绩修改
先选中要修改的成绩信息,然后进行修改。
2、成绩添加
直接弹出添加对话框,然后进行添加。
3、成绩删除
先选中要删除的成绩信息,然后直接删除。
二、数据库需求分析设计
2.1数据流程图
图2-1系统的数据流图
2.2数据字典
数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。
利用SQLServer2000建立“StudentCourse”数据库,其基本表清单及表结构描述如下:
数据库中用到的表:
数据库表名
关系模式名称
备注
Student
学生
学生学籍信息表
Course
课程
课程基本信息表
Score
成绩
选课成绩信息表
Student基本情况数据表,结构如下:
字段名
字段类型
NotNull
说明
Student_sno
Char
Primarykey
学号
Student_sname
char
学生姓名
Student_sex
‘男’或‘女’
性别
Student_dept
系别
Student_age
年龄
Student_address
地址
Course数据表,结构如下:
约束控制
Course_cno
主键(primarykey)
课程号
Course_cname
notnull
课程名称
Course_hour
int
课时
Course_score
numeric(2,1)
学分
Score情况数据表,结构如下:
外部键
Student_sno
2.3存储过程
(1)在Course中插入一元组
CREATEPROCEDURECourse_prod
AS
Insert
IntoCourse
Values('
1018'
'
微机原理'
36'
3.5'
)
(2)创建一个查询过程
CREATEPROCEDURECourse_prod1
Select*
FromCourse
(3)创建一个删除存储过程
CREATEPROCEDURECourse_prod2
Delete
WhereCourse_cno='
1007'
三、数据库概念结构设计
3.1E-R图
由需求分析的结果可知,本系统设计的实体包括:
(1)学生基本信息:
学号,姓名,性别,地址,年龄,专业。
(2)课程基本信息:
课程名,课程号,学时,学分。
(3)成绩基本信息:
课程号,学号,分数。
这些实体间的联系包括:
每位学生可以学习多门课程,每门课程可供多位学生学习。
由上述分析可得到系统的E—R图:
四、数据库逻辑结构设计
4.1将E-R图转换为关系模型
实体型转换为关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
对于实体间的联系则有以下不同的情况:
一个m:
n联系转换为一个独立的关系模式。
与该联系相联的个实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
一个1:
n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相联的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
3个或3个以上实体间的一个多元联系可以转换为一个关系模式。
与该多元联系相联的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合,具有相同的关系模式可合并。
具体的基本E—R图向关系模式的转化如下:
(1)学生(学号,姓名,性别,年龄,地址,系别),其主关键字为学号;
(2)课程(课程名,课程号,学时,学分),其中主关键字为课程号;
(3)成绩(课程号,学号,分数)其中主关键字为学号和课程号。
可以与学生关系模式合并为:
学生(学号,姓名,性别,年龄,地址,系别,成绩,课程号)。
4.2模型优化
关系模式学生,课程不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF。
五、数据库的物理设计
1.建立数据表
(1)学生信息表的建立。
CREATETABLEStudent
(Student_snochar(10)primarykey,
Student_snamechar(10)notnull,
Student_sexchar
(2),
Student_deptchar(10),
Student_agechar(10),
Student_addresschar(10));
(2)课程信息表的建立
CREATRTABLECourse
(Course_cnochar(10)primarykey,
Course_cnamechar(10)notnull,
Course_hourint,
Course_scorefloat(8));
(3)分数信息表的建立
CREATETABLEScore
(Course_cnochar(10),
Student_snofloat(8),
Scorefloat(8));
2.建立视图
(1)查询学生基本信息的视图定义如下:
CREATEVIEWStudent_view(Student_sno,Student_sname,Student_sex,Student_dept,Student_age,Student_address)
SELECT*
FROMStudent
(2)课程信息查询的视图定义如下:
CREATEVIEWCourse_view(Course_cno,Course_cname,Course_hour,Course_score)
FROMCourse
(3)成绩信息查询视图定义如下:
CREATEVIEWScore_view(Course_no,Student_sno,Scorefloat)
FROMScore
3.建立索引
(1)为学生Student表的学生姓名建立索引。
CreateclusterindexsnameindexonStudent(Student_sname);
(2)为课程Course表的课程名建立索引。
CreateclusterindexcnameindexonCourse(Course_cname);
六、总结
在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。
在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。
学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。
通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主建与外主键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也能过上网查了不少资料,也看了一些别人设计的图书馆管理信息系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。
虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,不管怎么说,对这次做的课程设计自己觉得还算满意。
课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。
参考文献:
[1]陈志泊,李冬梅,王春玲编著.数据库原理及应用教程.人民邮电出版社.2006.7
[2]张海藩编著.软件工程(第二版).人民邮电出版社.2006.7
[3]萨师煊,王珊.数据库系统概论(第三版).高等教育出版社.2001.1
[4](美)PhilipJ.Pratt.JoseJ.Adamski,S.Sudarshan译本.机械工业出版社2000.1
[5]顾巧论等编著.计算机网络安全.北京:
科学出版社.2003.1