毕业设计高校成绩管理系统大数据库设计与实现Word格式.docx
- 文档编号:20816377
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:51
- 大小:1.99MB
毕业设计高校成绩管理系统大数据库设计与实现Word格式.docx
《毕业设计高校成绩管理系统大数据库设计与实现Word格式.docx》由会员分享,可在线阅读,更多相关《毕业设计高校成绩管理系统大数据库设计与实现Word格式.docx(51页珍藏版)》请在冰豆网上搜索。
(2)用户输入出错时,有错误提示。
(3)安全性高。
(4)存储需求描述。
2、概念结构设计
局部E-R图:
全局E-R图:
3、逻辑结构设计
3.1关系模式设计
教师lh(教师编号lh、教师某某lh、教师性别lh、教师年龄lh、职称lh、联系lh)
上课lh(教师编号lh,班级编号lh)
授课lh(教师编号lh,课程编号lh)
课程lh(课程编号lh、课程名称lh、教师某某lh、开课学期lh、学时lh、考试或考查lh、学分lh)
学习lh(学号lh,课程编号lh,学期lh,课程名称lh,成绩lh,教师某某lh)
学生lh(学号lh、学生某某lh、学生性别lh、学生年龄lh、生源所在地lh、已修学分总数lh,班级编号lh)地区信息,用于统计某一地区的学生数
开设lh(课程编号lh,班级编号lh)
班级lh(班级编号lh,班级名称lh,专业编号lh)
专业lh(专业编号lh,专业名称lh)
3.2数据类型定义
(1)教师Teacherslh
数据项名
数据类型
长度
完整性约束
教师编号
char
20
主键,唯一,非空
教师某某
10
教师性别
2
教师年龄
职称
联系
(2)上课Teachlh
班级编号
外键
(3)授课Instructlh
课程编号
(4)课程Courseslh
主键,唯一,非空
课程名
开课时间
学时
int
>
考试或考查
4
学分
(5)学习Studylh
学号
学期
课程名称
成绩
(6)学生Studentslh
学生学号
12
学生某某
学生性别
学生年龄
生源所在地
Char
已修学分总数
(7)开设Setuplh
(8)班级Classeslh
班级名称
专业编号
(9)专业Majorlh
专业名称
3.3关系模式的优化
对关系模式进行规X化处理,对关系模式进行评价与修正。
4、物理结构设计
4.1聚簇设计
该高校成绩管理系统数据库可建立一下聚簇:
Teacherslh(教师编号lh)
Courseslh(课程编号lh)
Studentslh(学生学号lh,班级编号lh)
Classeslh(班级编号lh)
这几个聚簇设计是因为这几X表都是实体表,,且聚簇中的属性都是主键或是外键,被访问的概率很高,而其他表或者这些表上的其他属性被访问的概率就相对较低。
4.2索引设计
索引就是表中数据和相应存储位置的列表,使用索引可以大大减少数据的查询时间。
对于一个确定的关系,通常在下列情况下可以考虑建立索引。
(1)在主键属性列和外键属性列上通常都可以分别建立索引,不仅有助于唯一性检查和完整性检查,而且可以加快连接查询的速度。
(2)以查询为主的关系可建立尽可能多的索引。
(3)对等值连接,但满足条件的元组较少的查询可以考虑建立索引。
(4)如果查询可以从索引直接得到结果而不必访问关系,则对此种查询可以建立索引。
该高校成绩管理系统数据库可建立以下索引:
Teachers(教师编号)
Courses(课程编号)
Students(学生学号,班级编号)
Classes(班级编号)
Study(学号,课程编号)
4.3分区设计
涉及到数据库文件和日志文件的分区问题。
磁盘分区设计的一般原则:
(1)减少访问冲突,提高I/O并发性。
多个事物并发访问同一磁盘时,会产生磁盘访问冲突而导致效率低下,如果事务访问数据均能分布于不同磁盘上,则I/O可并发执行,从而提高数据库访问速度。
(2)分散热点数据,均衡I/O负担。
在数据库中数据访问的频率是不均匀的,那些经常被访问的数据成为热点数据,此类数据宜分散存在于不同的磁盘上,以均衡各个磁盘的负荷,充分发挥多磁盘的并行操作的优势。
(3)保证关键数据快速访问,缓解系统瓶颈。
在数据库中有些数据如数据字典等的访问频率很高,为保证对它的访问不直接影响整个系统的效率,可以将其存放在某一固定磁盘上,以保证其快速访问。
该成绩管理系统由于程序较小,所以不进行分区设计。
5、数据库实施
5.1基本表建立
(1)教师表Teacherslh
教师编号lh
教师某某lh
教师性别lh
教师年龄lh
职称lh
联系lh
SQL语句为:
CREATETABLETeacherslh
(
教师编号lhCHAR(20)PRIMARYKEY,
教师某某lhCHAR(10),
教师性别lhCHAR
(2),
教师年龄lhINT,
职称lhCHAR(20),
联系lhCHAR(10),
);
SQL执行结果截图:
(2)专业表Majorslh
专业编号lh
专业名称lh
CREATETABLEMajorslh
专业编号lhCHAR(20)PRIMARYKEY,
专业名称lhCHAR(20),
(3)班级表Classeslh
班级编号lh
班级名称lh
CREATETABLEClasseslh
班级编号lhCHAR(20)PRIMARYKEY,
班级名称lhCHAR(20),
专业编号lhCHAR(20)
constraintMajor_Classforeignkey(专业编号lh)referencesMajorslh
(4)课程表Courseslh
CREATETABLECourseslh
课程编号lhCHAR(20)PRIMARYKEY,
课程名lhCHAR(20),
学时lhINT,
考试或考查lhCHAR(4),
学分lhCHAR(4)
)
(5)学生表Studentslh
CREATETABLEStudentslh
学生学号lhCHAR(20)PRIMARYKEY,
学生某某lhCHAR(10),
学生性别lhCHAR
(2),
学生年龄lhint,
生源所在地lhchar(20),
已修学分总数lhint,
班级编号lhCHAR(20)
constraintClass_Studentforeignkey(班级编号lh)referencesClasseslh
(6)上课表Teachlh
CREATETABLETeachlh
班级编号lhCHAR(20),
CONSTRAINTClass_TeachFOREIGNKEY(班级编号lh)REFERENCESClasseslh,
(7)授课表Instructlh
CREATETABLEInstructlh
课程编号lhCHAR(20),
CONSTRAINTCourse_InstructFOREIGNKEY(课程编号lh)REFERENCESCourseslh
(8)学习表Studylh
CREATETABLEStudylh
学期lhchar(10),
课程名称lhchar(20),
成绩lhint,
教师某某lhchar(10),
CONSTRAINTCourse_StudyFOREIGNKEY(课程编号lh)REFERENCESCourseslh
(9)开设Setuplh
CREATETABLESetuplh
班级编号lhchar(20),
CONSTRAINTClass_SetupFOREIGNKEY(班级编号lh)REFERENCESClasseslh
5.2数据输入
专业表Majorslh:
班级表Classeslh:
课程表Courseslh:
教师表Teacherslh:
学生表Studentslh:
学习表Studylh:
上课表Teachlh:
授课表Instructlh:
开设表Setuplh:
5.3视图的建立
(1)学生成绩统计
createview学生成绩统计lh
as
selectStudylh.学生学号lh,学生某某lh,Studylh.课程名称lh,
班级名称lh,Studylh.教师某某lh,学分lh,学期lh,成绩lh
fromStudentslh,Courseslh,Classeslh,Studylh
whereStudentslh.学生学号lh=Studylh.学生学号lh
ANDStudylh.课程编号lh=Courseslh.课程编号lh
ANDClasseslh.班级编号lh=Studentslh.班级编号lh
(2)每门课程平均成绩统计
createview每门课程平均成绩lh
selectavg(成绩lh)平均成绩lh,课程编号lh
fromStudylh
groupby课程编号lh
(3)学生所学课程及学分统计
createview学生所学课程及学分统计lh
select学生成绩统计lh.学生学号lh,学生成绩统计lh.课程名称lh,学生成绩统计lh.学分lh
from学生成绩统计lh
(4)教师任课查询
createview教师任课查询lh
select教师编号lh,Teacherslh.教师某某lh,课程编号lh,课程名lh,学时lh,学分lh
fromTeacherslh,Courseslh
whereTeacherslh.教师某某lh=Courseslh.教师某某lh
(5)班级课程开设查询
createview班级课程开设查询lh
selectClasseslh.班级编号lh,班级名称lh,Courseslh.课程编号lh,课程名lh,学时lh,学分lh
fromClasseslh,Courseslh,Setuplh
whereClasseslh.班级编号lh=Setuplh.班级编号lhANDSetuplh.课程编号lh=Courseslh.课程编号lh
5.4索引的建立
因为每一个表建立,SSMS会自动生成一个聚集索引,所以不需要再手动建立聚集索引。
下面根据4.2来建立索引:
(1)教师编号lh:
createuniqueindexSY_教师编号lhonTeacherslh(教师编号lh)
(2)专业编号lh:
createuniqueindexSY_专业编号lhonMajorslh(专业编号lh)
(3)班级编号lh,专业编号lh:
createuniqueindexSY_班专lhonClasseslh(班级编号lh,专业编号lh)
(4)课程编号lh:
createuniqueindexSY_课程编号lhonCourseslh(课程编号lh)
(5)学生学号lh,班级编号lh:
createuniqueindexSY_学班lhonStudentslh(学生学号lh,班级编号lh)
(6)学生学号lh,课程编号lh:
createuniqueindexSY_学课lhonStudylh(学生学号lh,课程编号lh)
5.5触发器建立
(1)当删除教师表Teacherslh中的教师编号lh记录时,需要相应地删除授课表Instructlh和上课表Teachlh里的教师编号lh,所以在教师表Teacherslh上建立触发器
sql语句:
createtriggertr_del_教师编号lh
ONTeacherslh
fordelete
delete教师编号lh
whereInstructlh.教师编号lh=(select教师编号lhfromdeleted)
ANDTeachlh.教师编号lh=(select教师编号lhfromdeleted)
sql执行结果:
(2)当更新教师表Teacherslh中的教师编号lh记录时,需要相应地更新授课表Instructlh和上课表Teachlh里的教师编号lh,所以在教师表Teacherslh上建立触发器
sql语句为:
createtriggertr_upd_教师编号lh
forupdate
ifupdate(教师编号lh)
begin
updateInstructlh
set教师编号lh=i.教师编号lh
fromdeletedd,insertedi,Instructlhk
wherek.教师编号lh=d.教师编号lh
end
updateTeachlh
fromdeletedd,insertedi,Teachlhs
wheres.教师编号lh=d.教师编号lh
sql语句执行结果:
5.6存储过程建立
(1)建立一个对学生表插入信息的存储过程
sql语句如下:
createprocedurepro_学生表插入信息lh
snochar(20),
snamechar(12),
ssexchar
(2),
sageint,
ssourceadchar(20),
screditint,
sclasschar(12)
insertStudentslh(学生学号lh,学生某某lh,学生性别lh,学生年龄lh,生源所在地lh,已修学分总数lh,班级编号lh)
Values(sno,sname,ssex,sage,ssourcead,scredit,sclass)
SELECT*
FROMStudentslh
Go
Sql执行结果如下:
(2)建立一个输入成绩,自动生成其总学分的存储过程
createprocedurepro_输入成绩自动生成学分lh
学生学号lhchar(20),
课程编号lhchar(12),
课程名lhchar(20),
学分lhint
insertintopro选修lh
values(学生学号lh,课程编号lh,成绩lh)
updateStudentslh
setStudentslh.已修学分总数lh=Studentslh.已修学分总数lh+学分lh
whereStudentslh.学生学号lh=学生学号lh
6、应用系统开发与试运行
6.1开发平台和开发环境介绍
开发平台:
MicrosoftVisualStudio2010
开发环境:
VisualStudio是微软公司推出的开发环境。
是目前最流行的Windows平台应用程序开发环境。
VisualStudio2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。
VisualStudio2010同时带来了NETFramework4.0、MicrosoftVisualStudio2010CTP(munityTechnologyPreview--CTP),并且支持开发面向Windows7的应用程序。
除了MicrosoftSQLServer,它还支持IBMDB2和Oracle数据库。
与此同时,微软还引入了一门新的语言C#,C#是一门建立在C++和Java基础上的编写.NET框架的现代语言。
我的数据库是在MicrosoftVisualStudio2010平台上以C#语言开发的。
6.2系统功能图
(1)创建功能窗体
(2)数据库
C#代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Windows.Forms;
namespaceC01luhai
{
classsqlConnect
{
publicSqlConnectioncoon=null;
publicsqlConnect()
if(coon==null)
coon=newSqlConnection("
Datasource=(local);
IntegratedSecurity=SSPI;
"
+"
InitialCatalog=C01luhai"
if(coon.State==ConnectionState.Closed)coon.Open();
}
publicvoidcloseConnect()
if(coon.St
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 高校 成绩管理系统 数据库 设计 实现