教学管理信息系统教师数据库设计.docx

上传人:b****6 文档编号:4361589 上传时间:2022-11-30 格式:DOCX 页数:15 大小:341.97KB
下载 相关 举报
教学管理信息系统教师数据库设计.docx_第1页
第1页 / 共15页
教学管理信息系统教师数据库设计.docx_第2页
第2页 / 共15页
教学管理信息系统教师数据库设计.docx_第3页
第3页 / 共15页
教学管理信息系统教师数据库设计.docx_第4页
第4页 / 共15页
教学管理信息系统教师数据库设计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

教学管理信息系统教师数据库设计.docx

《教学管理信息系统教师数据库设计.docx》由会员分享,可在线阅读,更多相关《教学管理信息系统教师数据库设计.docx(15页珍藏版)》请在冰豆网上搜索。

教学管理信息系统教师数据库设计.docx

教学管理信息系统教师数据库设计

 

教学管理信息系统——教师数据库设计

1需求设计

1.1需求描述

教师信息包括教工号、姓名、出生日期、性别、所属院校、职称等,还包括与课程关联的授课资格和授课经历等。

并且,该应用还可以显示出本学院课程信息列表。

类似教师信息列表,该列表可按课程名、课程修读次序(每门课可能有先修课程)等字段排序、分组与查找。

课程信息包括课程编号、课程名、描述、先修课、学分等,还包括拥有该课程授课资格和授课经历的教师信息。

教务人员可以按教师和课程两条主线浏览与查询所有与教师相关的信息,学院、职称、课程名、授课年份、证件信息等字段均存在超链,以供快速检索同类的信息。

教务人员还可以对教师、课程、主讲资格、授课经历等信息进行简单的新建、修改及删除操作。

1.2需求分析

1.2.1目标用户

教务管理人员:

快速查询教师信息。

1.2.2平台的选择

选择windows平台,用MicrosoftSQLServer2008进行数据库开发。

1.2.3逻辑要求

假设一个层级为一个窗口,用户对应用提出的业务逻辑(处理过程)要求如下:

教师列表>教师基本信息、教师授课资格和授课经历>相关链接

课程列表>课程基本信息、课程授课资格和授课经历>相关链接

1.2.4定义用例

用例图如图1。

图1用例图

2实现设计

2.1数据库设计

2.1.1概念设计

题目要求:

“大学有多个学院,每个学院有多名教师(教授,讲师,等)。

每一门课的主讲教师都应提前获得该课的主讲资格证,一个教师能具有多门课程的主讲资格证;一门课程的主讲资格证也可能颁发给多名教师。

一个教师可能已主讲过多门课,或多次主讲同一门课。

按照题目要求,结合实际应用,设计应用所涉及的实体及实体间关系的模型,用ER图表示的概念模型如下:

如图所示,所识别出的实体包括教师,课程,授课资质,授课经历等4个实体。

以教师实体为例,在本应用域中,一个教师包含教师编号,姓名,出生日期,性别,所属学院,职称等属性;实体课程有课程号、课程名、先修课、学分、描述等5个属性;实体讲课经历与实体教师和实体课程相关联,其有属性教师编号、课程号、授课年份等;实体主讲资格证夜雨实体教师和实体课程相关联,其有属性证件编号、教师编号、课程编号、有效截止日期等。

其中一个教师可以教授多门课程,一个课程也可以由多个教师教授,一个教师有零到多个主讲资格证,有零到多个授课经历,而每种授课资质和每种授课经历又与一门课程和一个教师相关联。

此外,特别地,一门课程有零到多门前导课程,反过来,一门前导课程有一到多门后继课程。

设计数据库使用ER图这一概念不是必须的;然而使用概念和工具,能使大脑中的构思清晰、无误地展现,并被自动处理。

作为达到数据库设计的最终目的——设计出高效、高质量的数据库模式——所采用的手段,ER图这一概念模型中的实体最后就成为了一张张的表,实体属性成了表属性,对属性的约束成了表属性中的字段类型及非空唯一等约束,实体中的非空唯一标识属性(组)则成了表的主码;实体之间的联系,成为表与表之间的外码参照;一对多还是零对多,对应到物理设计中被参照的字段可否为空;最后,为了提高海量数据的检索效率,可以在主码和外码上等处建立索引。

2.1.2逻辑设计

根据概念设计阶段对数据库概念模型的设计,构造合适的关系数据路模式。

由ER图可知,此次设计共建了4张表:

教师表、课程表、讲课经历表、主讲资格证表。

对于教师表,其属性有教师编号,姓名,出生日期,性别,所属学院,职称等;其主要的约束有:

教师编号设置为主码,姓名非空,其余的属性值均为基本信息。

对于课程表,其属性有课程号、课程名、先修课、学分、描述等;其主要约束有:

课程号设置为主码,课程名、学分设置为非空,先修课可有可无。

对于讲课经历表,其属性有教师编号、课程号、授课年份等;其主要约束有:

教师编号为引用教师表主码教师编号的外码,课程号为引用课程表主码课程号的外码,教师编号和课程号一起组成讲课经历表的主码,授课年份非空。

对于主讲资格证表,其主要的属性有属性证件编号、教师编号、课程编号、有效截止日期等,其中证件编号设置为主码,其中教师编号为引用教师表主码教师编号的外码,课程编号为引用课程表主码课程编号的外码,有效截止日期非空。

根据应用情况,查表需求,设计了多表连接的视图,方便更快的查找信息。

2.1.3物理实现

实现后各表间的联系如下图,并给出了部分视图的图表显示。

2.1.3.1生成建库脚本

在MicrosoftSQLServer2008中构建数据库的的相关信息后,生成的脚本如下:

1USE[test]

2GO

3/******Object:

Table[dbo].[课程]ScriptDate:

07/03/201202:

02:

30******/

4SETANSI_NULLSON

5GO

6SETQUOTED_IDENTIFIERON

7GO

8SETANSI_PADDINGON

9GO

10CREATETABLE[dbo].[课程](

11[课程号][char](4)NOTNULL,

12[课程名][char](20)NOTNULL,

13[先修课][char](4)NULL,

14[学分][smallint]NULL,

15[描述][char](30)NULL,

16PRIMARYKEYCLUSTERED

17(

18[课程号]ASC

19)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

20)ON[PRIMARY]

21GO

22SETANSI_PADDINGOFF

23GO

24/******Object:

Table[dbo].[教师]ScriptDate:

07/03/201202:

02:

30******/

25SETANSI_NULLSON

26GO

27SETQUOTED_IDENTIFIERON

28GO

29SETANSI_PADDINGON

30GO

31CREATETABLE[dbo].[教师](

32[编号][char](4)NOTNULL,

33[姓名][char](10)NOTNULL,

34[性别][char]

(2)NULL,

35[出生日期][date]NULL,

36[所属学院][char](10)NULL,

37[职称][char](8)NULL,

38PRIMARYKEYCLUSTERED

39(

40[编号]ASC

41)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

42)ON[PRIMARY]

43GO

44SETANSI_PADDINGOFF

45GO

46/******Object:

Table[dbo].[主讲资格证]ScriptDate:

07/03/201202:

02:

30******/

47SETANSI_NULLSON

48GO

49SETQUOTED_IDENTIFIERON

50GO

51SETANSI_PADDINGON

52GO

53CREATETABLE[dbo].[主讲资格证](

54[证件编号][char](10)NOTNULL,

55[教师编号][char](4)NULL,

56[课程编号][char](4)NULL,

57[有效截止日期][date]NULL,

58PRIMARYKEYCLUSTERED

59(

60[证件编号]ASC

61)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

62)ON[PRIMARY]

63GO

64SETANSI_PADDINGOFF

65GO

66/******Object:

Table[dbo].[讲课经历]ScriptDate:

07/03/201202:

02:

30******/

67SETANSI_NULLSON

68GO

69SETQUOTED_IDENTIFIERON

70GO

71SETANSI_PADDINGON

72GO

73CREATETABLE[dbo].[讲课经历](

74[教师编号][char](4)NOTNULL,

75[课程号][char](4)NOTNULL,

76[授课年份][char](4)NOTNULL,

77PRIMARYKEYCLUSTERED

78(

79[教师编号]ASC,

80[课程号]ASC

81)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

82)ON[PRIMARY]

83GO

84SETANSI_PADDINGOFF

85GO

86/******Object:

View[dbo].[C2]ScriptDate:

07/03/201202:

02:

31******/

87SETANSI_NULLSON

88GO

89SETQUOTED_IDENTIFIERON

90GO

91createview[dbo].[C2]

92as

93select编号,姓名,课程.课程号,课程名,授课年份

94from教师,课程,讲课经历

95where教师.编号=讲课经历.教师编号and课程.课程号=讲课经历.课程号;

96GO

97/******Object:

View[dbo].[C1]ScriptDate:

07/03/201202:

02:

31******/

98SETANSI_NULLSON

99GO

100SETQUOTED_IDENTIFIERON

101GO

102createview[dbo].[C1]

103as

104select编号,姓名,性别,出生日期,所属学院,职称,课程编号,课程名,证件编号,有效截止日期

105from教师,课程,主讲资格证

106where教师.编号=主讲资格证.教师编号and课程.课程号=主讲资格证.课程编号

107GO

108/******Object:

Check[CK__讲课经历__授课年份__1CF15040]ScriptDate:

07/03/201202:

02:

30******/

109ALTERTABLE[dbo].[讲课经历]WITHCHECKADDCHECK(([授课年份]like'[0-9][0-9][0-9][0-9]'))

110GO

111/******Object:

Check[CK__教师__编号__014935CB]ScriptDate:

07/03/201202:

02:

30******/

112ALTERTABLE[dbo].[教师]WITHCHECKADDCHECK(([编号]like'[0-9][0-9][0-9][0-9]'))

113GO

114/******Object:

Check[CK__教师__性别__023D5A04]ScriptDate:

07/03/201202:

02:

30******/

115ALTERTABLE[dbo].[教师]WITHCHECKADDCHECK(([性别]='女'OR[性别]='男'))

116GO

117/******Object:

Check[CK__教师__职称__03317E3D]ScriptDate:

07/03/201202:

02:

30******/

118ALTERTABLE[dbo].[教师]WITHCHECKADDCHECK(([职称]='讲师'OR[职称]='教授'))

119GO

120/******Object:

Check[CK__课程__课程号__0BC6C43E]ScriptDate:

07/03/201202:

02:

30******/

121ALTERTABLE[dbo].[课程]WITHCHECKADDCHECK(([课程号]like'[0-9][0-9][0-9][0-9]'))

122GO

123/******Object:

ForeignKey[FK__讲课经历__教师编号__1B0907CE]ScriptDate:

07/03/201202:

02:

30******/

124ALTERTABLE[dbo].[讲课经历]WITHCHECKADDFOREIGNKEY([教师编号])

125REFERENCES[dbo].[教师]([编号])

126GO

127/******Object:

ForeignKey[FK__讲课经历__课程号__1BFD2C07]ScriptDate:

07/03/201202:

02:

30******/

128ALTERTABLE[dbo].[讲课经历]WITHCHECKADDFOREIGNKEY([课程号])

129REFERENCES[dbo].[课程]([课程号])

130GO

131/******Object:

ForeignKey[FK__课程__先修课__0CBAE877]ScriptDate:

07/03/201202:

02:

30******/

132ALTERTABLE[dbo].[课程]WITHCHECKADDFOREIGNKEY([先修课])

133REFERENCES[dbo].[课程]([课程号])

134GO

135/******Object:

ForeignKey[FK__主讲资格证__教师编号__117F9D94]ScriptDate:

07/03/201202:

02:

30******/

136ALTERTABLE[dbo].[主讲资格证]WITHCHECKADDFOREIGNKEY([教师编号])

137REFERENCES[dbo].[教师]([编号])

138GO

139/******Object:

ForeignKey[FK__主讲资格证__课程编号__1273C1CD]ScriptDate:

07/03/201202:

02:

30******/

140ALTERTABLE[dbo].[主讲资格证]WITHCHECKADDFOREIGNKEY([课程编号])

141REFERENCES[dbo].[课程]([课程号])

142GO

3代码实现

本次应用程序是采用C#语言编写,其主要实现代码如下:

staticstringconStr="DataSource=wys-pc;InitialCatalog=test;UserID=sa;Password=123456";

//其中wys-pc是主机名,test是要连接的数据库名,采用SQLServer身份验证方式登入数据库,sa为登入账户,password为登入密码。

SqlConnectioncon=newSqlConnection(conStr);//con为连接对象

con.Open();//打开连接

SqlCommandcommand=newSqlCommand(sql,con);//commandSQL命令的执行对象,其中sql为SQL语句,con为上面建立的连接。

command.ExecuteNonQuery();//执行基本插入、删除、更新等SQL语句。

con.Close();//关闭连接

将查询多表连接的视图的容输出到dataGridView组件中时用到的代码与上面用区别:

SqlConnectioncon=newSqlConnection(conStr);

SqlDataAdapterdtp=newSqlDataAdapter(sql,con);//建立数据库的适配器

DataTableds=newDataTable();//建立显示数据表

dtp.Fill(ds);

dataGridView1.DataSource=ds;

con.Close();

将单表内容输出到dataGridView组件时代码为:

SqlConnectioncon=newSqlConnection(conStr);

con.Open();

SqlDataAdapterdtp=newSqlDataAdapter(sql,con);//sql为select语句。

DataSetds=newDataSet();//建立数据集

dtp.Fill(ds);

dataGridView1.DataSource=ds.Tables[0].DefaultView;

con.Close();

4程序截图

管理员登入界面:

登入后的界面:

查看表中的数据:

查找教师相关信息:

添加信息界面:

删除信息界面:

修改信息界面:

5总结与体会

从传统的面向过程分析与设计,到基于UML和诸多工具的面向对象建模与编码,再加上需求的分析,概念设计,逻辑设计,物理实现等,用户界面的设计,整个过程还是比较顺利的。

当然,课设过程中出现的问题是不少的。

在逻辑设计阶段,就出现了很多设计失误。

譬如关于表的属性以及表之间的联系的设计。

教师表的属性设置存在缺漏,还可以添加联系方式、邮箱、身份证号、学位等属性信息。

授课经历也可以增加授课年级、学期等属性信息。

教师表和课程表之间的联系是通过讲课资格证表联系在一起的,这样给查询信息带来了一些麻烦。

整体来说,这是又一次意义深远的课程设计。

 

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

当前位置:首页 > 高中教育 > 数学

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

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