数据库设计实验报告教务系统原型设计.docx

上传人:b****8 文档编号:27795118 上传时间:2023-07-05 格式:DOCX 页数:25 大小:526.22KB
下载 相关 举报
数据库设计实验报告教务系统原型设计.docx_第1页
第1页 / 共25页
数据库设计实验报告教务系统原型设计.docx_第2页
第2页 / 共25页
数据库设计实验报告教务系统原型设计.docx_第3页
第3页 / 共25页
数据库设计实验报告教务系统原型设计.docx_第4页
第4页 / 共25页
数据库设计实验报告教务系统原型设计.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

数据库设计实验报告教务系统原型设计.docx

《数据库设计实验报告教务系统原型设计.docx》由会员分享,可在线阅读,更多相关《数据库设计实验报告教务系统原型设计.docx(25页珍藏版)》请在冰豆网上搜索。

数据库设计实验报告教务系统原型设计.docx

数据库设计实验报告教务系统原型设计

教务系统原型设计

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

选中一门课程点击"选课"按钮可以进行选课。

查看学生信息:

查询个人成绩:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电力水利

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1