数据库设计实验报告教务系统原型设计.docx
- 文档编号:27795118
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:25
- 大小:526.22KB
数据库设计实验报告教务系统原型设计.docx
《数据库设计实验报告教务系统原型设计.docx》由会员分享,可在线阅读,更多相关《数据库设计实验报告教务系统原型设计.docx(25页珍藏版)》请在冰豆网上搜索。
数据库设计实验报告教务系统原型设计
教务系统原型设计
1课程任务:
设计和实现一个教务系统原型。
2、需求描述
1、学校设若干学院,每个学院有若干教师,若干学生
2、学院设若干课程,每个教师可讲授多门课程,一门课程可以由多个教师讲授
3、每门课程有一次考试和若干次作业,成绩按比例合成
4、教务人员可以设置学院信息、教师信息、课程信息
5、学生可以查看教师信息、课程信息并选课,同时可以查看作业信息并提交作业
6、教师可以发布作业信息并在作业完成后进行成绩评定。
教师可以在期末登录考试成绩并设置比例来生成最终成绩。
7、学生可以查询自己的成绩
8、教务人员可以对全校的成绩进行各种统计
3、概念模型设计
将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。
它是
整个数据库设计的关键。
根据需求,有如下实体:
)(
学校名
登录密码
姓名
教务ID
教务人员
登录密码
教师姓名
职称
性别
学生
登录密
姓名
性别
1
系编号
系编号
学号
学校和学院之间是多对多的关系学校和教务人员是1对多的关系学院和系之间是1对多的关系系和教师之间是多对多的关系系和学生之间是多对多的关系教师和课程之间是多对多的关系教师和学生之间是多对多的关系学生和课程之间是多对多的关系
由此画出总的E-R图如下所示
有
教授,选修
属于
开设
设有
学校
学院
课程
学生
教务人员
教师
实体及其关系图
4、模式设计
E-R图向关系模型的转换要解决的问题是如何将实体型和实体间的联系转换为关系模式,如何确定这些关系模式的属性和码。
E-R图是由实体型、实体的属性和实体型之间的联系3个要素组成。
所以将E-R图转换为关系模型实际上就是要将实体型、实体的属性和实体型之间的联系转换为关系模式,这
种转换一般遵循如下原则:
1)、一个实体型转换为一个关系模式。
实体的属性就是关系的属性,实体的码就是
关系的码
2)、对于实体型之间的联系有如下几种不同的情况:
(1)一个1:
1联系可以转换为一个独立的关系模式,也可以与任意一端对应的
关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本
身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。
如果和某一端实体对应
的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
(2)一个1:
n联系可以转换为一个独立的关系模式,也可以与n端对应的关系
模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的
属性均转换为关系的属性,而关系的码为n端实体的码。
(3)—个m:
n联系转换为一个关系模式。
与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
(4)3个或3个以上实体间的一个多元联系可以转换为一个关系模式。
与该多
元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
(5)具有相同码的关系模式可合并。
下面把上述E-R图转换为关系模式,关系的码用下划线标出。
学校表:
School(SchoolName,Headmaster)
学院
College(CollegeName,President,StudentNum);
学校学院关系表:
SchoolCollege(SchoolName,CollegeName)
教务人员:
Acdemic_dean(Acdemic_deanID,AcdemicdeanName,SchoolName,APassword);
系:
Department(DepartmentIDQepartmentName,DepartmentHead,CollegeName);
教师:
Teacher(TeacherlD.TeacherName.Profession,Sex,DepartmentlD,TPassword);
学生表:
Student(StudentlD,StudentName,Sex,DepartmentlD,SPassword);
课程表:
Classlnfo(ClassNo.ClassName):
选课表:
Class(ClassNo,StudentID.CIassName.TestScore.PeacetimeScore.TotalScore):
教师课程联系表:
TeacherClass(ClassNo.TeacherlD);
5、建表脚本。
建表的SQL语句如下所示:
学校表:
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[School]')and
OBJECTPROPERTY(id.N'isUserTable')=1)
droptable[dbo].[School]
GO
CREATETABLE[dbo].[School](
[SchoolName][varchar](8)COLLATEChinese_PRC_CI_ASNOTNULL,
[Headmaster][varchar](8)COLLATEChinese_PRC_CI_ASNULL,)ON[PRIMARY]
GO
ALTERTABLE[dbo].[School]WITHNOCHECKADD
CONSTRAINT[PK_School]PRIMARYKEYCLUSTERED
(
[SchoolName]
)ON[PRIMARY]
GO学院表:
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[College]')andOBJECTPROPERTY(id,N'isUserTable')=1)droptable[dbo].[College]
GO
CREATETABLE[dbo].[College](
[CollegeName][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[President][varchar](8)COLLATEChinese_PRC_CI_ASNULL,[StudentNum][int]NULL,)ON[PRIMARY]
GO
ALTERTABLE[dbo].[College]WITHNOCHECKADD
CONSTRAINT[PK_College]PRIMARYKEYCLUSTERED
(
[CollegeName]
)ON[PRIMARY]
GO
学校学院关系表:
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[School_College]')andOBJECTPROPERTY(id,N'isUserTable')=1)
droptable[dbo].[School_College]GO
CREATETABLE[dbo].[School_College](
[SchoolName][varchar](8)COLLATEChinese_PRC_CI_ASNOTNULL,[CollegeName][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,foreignkey(SchoolName)referencesSchool(SchoolName),/*引用学校的主码SchoolName*/
foreignkey(CollegeName)referencesCollege(CollegeName)/*引用学院表的主码CollegeName*/
)ON[PRIMARY]
GO
ALTERTABLE[dbo].[School_College]WITHNOCHECKADD
CONSTRAINT[PK_School_College]PRIMARYKEYCLUSTERED
(
[SchoolName],[CollegeName]
)ON[PRIMARY]
GO
教务人员:
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[Acdemic_dean]')andOBJECTPROPERTY(id,N'isUserTable')=1)droptable[dbo].[Acdemic_dean]
GO
CREATETABLE[dbo].[Acdemic_dean](
[Acdemic_deanID][varchar](8)COLLATEChinese_PRC_CI_ASNOTNULL,[Acdemic_deanName][varchar](8)COLLATEChinese_PRC_CI_ASNULL,[SchoolName][varchar](8)COLLATEChinese_PRC_CI_ASNULL,[APassword][varchar](8)COLLATEChinese_PRC_CI_ASNULL,foreignkey(SchoolName)referencesSchool(SchoolName),/*引用学校的主码SchoolName*/
)ON[PRIMARY]
GO
ALTERTABLE[dbo].[Acdemic_dean]WITHNOCHECKADD
CONSTRAINT[PK_Acdemic_dean]PRIMARYKEYCLUSTERED
(
[Acdemic_deanID])ON[PRIMARY]
GO
系:
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[Department]')andOBJECTPROPERTY(id,N'isUserTable')=1)droptable[dbo].[Department]
GO
CREATETABLE[dbo].[Department](
[DepartmentID][varchar](8)COLLATEChinese_PRC_CI_ASNOTNULL,[DepartmentName][varchar](20)COLLATEChinese_PRC_CI_ASNULL,[DepartmentHead][varchar](8)COLLATEChinese_PRC_CI_ASNULL,[CollegeName][varchar](20)COLLATEChinese_PRC_CI_ASNULL,foreignkey(CollegeName)referencesCollege(CollegeName),/*引用学校的主码SchoolName*/
)ON[PRIMARY]
GO
ALTERTABLE[dbo].[Department]WITHNOCHECKADD
CONSTRAINT[PK_Department]PRIMARYKEYCLUSTERED(
[DepartmentID])ON[PRIMARY]
GO
教师表:
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[Teacher]')andOBJECTPROPERTY(id,N'isUserTable')=1)droptable[dbo].[Teacher]
GO
CREATETABLE[dbo].[Teacher](
[TeacherID][varchar](8)COLLATEChinese_PRC_CI_ASNOTNULL,[TeacherName][varchar](8)COLLATEChinese_PRC_CI_ASNULL,[Profession][varchar](8)COLLATEChinese_PRC_CI_ASNULL,[Sex][varchar]
(2)COLLATEChinese_PRC_CI_ASNULL,[DepartmentID][varchar](8)COLLATEChinese_PRC_CI_ASNULL,[TPassword][varchar](8)COLLATEChinese_PRC_CI_ASNULL,foreignkey(DepartmentID)referencesDepartment(DepartmentID),主码DepartmentID*/
)ON[PRIMARY]GO
ALTERTABLE[dbo].[Teacher]WITHNOCHECKADD
CONSTRAINT[PK_Teacher]PRIMARYKEYCLUSTERED
(
[TeacherID]
)ON[PRIMARY]GO学生表:
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[Student]')andOBJECTPROPERTY(id,N'isUserTable')=1)droptable[dbo].[Student]
GOCREATETABLE[dbo].[Student](
[StudentID][varchar](8)COLLATEChinese_PRC_CI_ASNOTNULL,[StudentName][varchar](8)COLLATEChinese_PRC_CI_ASNULL,[Sex][varchar]
(2)COLLATEChinese_PRC_CI_ASNULL,[DepartmentID][varchar](8)COLLATEChinese_PRC_CI_ASNULL,[SPassword][varchar](8)COLLATEChinese_PRC_CI_ASNULL,foreignkey(DepartmentID)referencesDepartment(DepartmentID),主码DepartmentID*/)ON[PRIMARY]GOALTERTABLE[dbo].[Student]WITHNOCHECKADD
CONSTRAINT[PK_Student]PRIMARYKEYCLUSTERED
(
[StudentID]
)ON[PRIMARY]GO
课程表:
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[ClassInfo]')andOBJECTPROPERTY(id,N'isUserTable')=1)droptable[dbo].[ClassInfo]
/*引用系的
/*引用系的
GO
CREATETABLE[dbo].[ClassInfo](
[ClassNo][varchar](8)COLLATEChinese_PRC_CI_ASNOTNULL,[ClassName][varchar](20)COLLATEChinese_PRC_CI_ASNULL,)ON[PRIMARY]
GO
ALTERTABLE[dbo].[ClassInfo]WITHNOCHECKADD
CONSTRAINT[PK_ClassInfo]PRIMARYKEYCLUSTERED
(
[ClassNo]
)ON[PRIMARY]
GO选课表:
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[Class]')andOBJECTPROPERTY(id,N'isUserTable')=1)droptable[dbo].[Class]
GO
CREATETABLE[dbo].[Class](
[ClassNo][varchar](8)COLLATEChinese_PRC_CI_ASNOTNULL,[StudentID][varchar](8)COLLATEChinese_PRC_CI_ASNOTNULL,[ClassName][varchar](40)COLLATEChinese_PRC_CI_ASNULL,[TestScore][int]NULL,
[PeacetimeScore][int]NULL,
[TotalScore][int]NULL,
foreignkey(ClassNo)referencesClassInfo(ClassNo),/*引用课程表的主码ClassNo*/foreignkey(StudentID)referencesStudent(StudentID),/*引用学生表的主码
StudentID*/)ON[PRIMARY]
GO
ALTERTABLE[dbo].[Class]WITHNOCHECKADDCONSTRAINT[PK_Class]PRIMARYKEYCLUSTERED(
[ClassNo],[StudentID])ON[PRIMARY]
GO教师课程联系表:
ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[Teacher_Class]')andOBJECTPROPERTY(id,N'isUserTable')=1)droptable[dbo].[Teacher_Class]
GO
CREATETABLE[dbo].[Teacher_Class](
[TeacherID][varchar](8)COLLATEChinese_PRC_CI_ASNOTNULL,[ClassNo][varchar](8)COLLATEChinese_PRC_CI_ASNOTNULL,)ON[PRIMARY]
GO
ALTERTABLE[dbo].[Teacher_Class]WITHNOCHECKADD
CONSTRAINT[PK_Teacher_Class]PRIMARYKEYCLUSTERED
(
[TeacherlD],[ClassNo]
)ON[PRIMARY]
GO
6、设计环境
本设计我采用SQLServer2000和MicrosoftVisualC++6.0实现。
7、编程实现。
7.1、环境搭建。
在点脑上安装SQLServer2000和MicrosoftVisualC++6.0软件。
7.2、建表
利用SQLServer2000创建数据源mydb。
利用上述建表的SQL语句建表。
7.3、配置数据源
1、打开电脑的控制面板,选择管理工具->数据源,出现如下界面:
选择用户DSN,添加。
出现如下界面,输入数据源名称为sql.
点击下一步
点击下一步,将默认的数据库为mydb.点击下一步。
点击完成。
点击测试数据源,出现如下所示界面。
则表明配置数据源成功。
7.4、程序流程图:
教师
录入成绩
修改密码
显示该课程成绩
7.5、运行效果
运行首界面:
首先确保教务人员(Acdemicdean)表中用一条记录
Acdeniicd.eariTD
AcdemicdeanHajm?
Schoo13Jane
APassifiord
11Joi
张三
砌南大学
S&8383J
点击教务人员:
输入账号:
01,密码:
888888
进入如下教务人员主对话框:
点击设置学院信息,可进行相关的设置,包括:
新建、修改、删除
点击设置教师信息,可进行相关的设置,包括:
新建、修改、删除
点击设置课程信息,可进行相关的设置,包括:
新建、修改、删除
点击设置学生信息,可进行相关的操作
退出对话框当主对话框,选择教师登录类型:
输入教师号:
201密码:
888888,进入教师主对话框,可以设置该老师所教授课的学生的成绩。
进入如下学生主对话框:
查看教师信息:
查看课程信息:
$号
用户箫科U6SS8S席改窘齐
盘首it駅常息嗷加1
甘询恰人臨皱
111
statsh
选中一门课程点击"选课"按钮可以进行选课。
查看学生信息:
查询个人成绩:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 设计 实验 报告 教务 系统 原型