高校教务管理系统数据库模型.docx

上传人:b****1 文档编号:2164931 上传时间:2023-05-02 格式:DOCX 页数:16 大小:107.89KB
下载 相关 举报
高校教务管理系统数据库模型.docx_第1页
第1页 / 共16页
高校教务管理系统数据库模型.docx_第2页
第2页 / 共16页
高校教务管理系统数据库模型.docx_第3页
第3页 / 共16页
高校教务管理系统数据库模型.docx_第4页
第4页 / 共16页
高校教务管理系统数据库模型.docx_第5页
第5页 / 共16页
高校教务管理系统数据库模型.docx_第6页
第6页 / 共16页
高校教务管理系统数据库模型.docx_第7页
第7页 / 共16页
高校教务管理系统数据库模型.docx_第8页
第8页 / 共16页
高校教务管理系统数据库模型.docx_第9页
第9页 / 共16页
高校教务管理系统数据库模型.docx_第10页
第10页 / 共16页
高校教务管理系统数据库模型.docx_第11页
第11页 / 共16页
高校教务管理系统数据库模型.docx_第12页
第12页 / 共16页
高校教务管理系统数据库模型.docx_第13页
第13页 / 共16页
高校教务管理系统数据库模型.docx_第14页
第14页 / 共16页
高校教务管理系统数据库模型.docx_第15页
第15页 / 共16页
高校教务管理系统数据库模型.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

高校教务管理系统数据库模型.docx

《高校教务管理系统数据库模型.docx》由会员分享,可在线阅读,更多相关《高校教务管理系统数据库模型.docx(16页珍藏版)》请在冰点文库上搜索。

高校教务管理系统数据库模型.docx

高校教务管理系统数据库模型

高校教务管理系统数据库模型

一、需求分析

设计数据库,需求分析是关键;需求分析就是作文的提纲,而文章的正文就是我们接下来要设计的数据库;数据库以需求分析来进行总体布局、设计、建立。

需求分析的质量决定你数据库的价值,所以这是数据库设计的核心,也是最耗时、最复杂的阶段。

对教务管理系统进行模块划分,分步进行设计和管理:

1、学生信息管理

该模块是教务工作人员进行对学生信息的管理,进行学生信息的添加、修改、删除。

在进行信息的添加时,首先在新的窗口进行学生信息的录入,在保存的时候要进行学生学号是否有重复的检查,如果添加的学生编号有重复就要对用户进行提示。

只有在不重复的情况下才能进行信息的添加。

在进行信息的删除时,要首先打开提示窗口让用户确认是否要删除,只有在用户确认的情况下才能进行信息的删除。

在进行信息的修改时,要根据用户选定的学生进行修改,即列出用户选定的学生的所有信息,在这个基础上进行学生信息的修改。

2、教师信息管理

教务工作人员通过此模块来管理教师信息,包括教师信息的添加、修改、删除等。

信息的添加时,需要验证教师的编号是否重复;删除和和修改学生信息,和学生信息管理模块相同。

3、院系管理

此模块是用来管理院系的信息,包括班级院系的添加,修改,删除等。

在进行信息的添加时,需要进行班级的编号是否重复的检查,如院系编号重复则对用户进行提示,不重复则添加成功。

院系管理模块的删除和修改和学生信息管理模块相同。

4、课程信息管理

教务工作人员通过该模块来管理课程的基本信息,包括课程信息的添加,修改,删除和班级课程的设置等,具体做法同前面的模块。

5、成绩管理

教务工作人员通过该模块来进行学生成绩的管理,在进行学生成绩的添加时,可用它来为学生设置所在班级的课程表来直接输入成绩。

6、打印管理

教务工作人员可以通过打印模块来打印学生成绩信息,选课表和班级表。

可以根据班级、学生学号、课程编号来打印学生成绩单,打印前还要可以预览所要打印的报表。

7、综合查询

通过该模块可以查询教务所需要的各种信息。

如学生信息查询提供了包括学生学号、姓名、所在班级、班主任名字和宿舍等信息,学生信息进行查询的各种查询条件,用户可以根据单个的查询条件或者它们的组合来进行查询。

同时,在查询的时候还提供了进行模糊查询的功能,即该模块能够利用读者输入的非完整的查询条件进行查询,这样更加方便了用户的查询管理。

综合查询模块包括了学生信息查询、教师信息查询、班级信息查询、院系信息查询、课程信息查询和成绩查询等各种功能查询。

8、系统管理

该模块可以对系统登录的用户进行管理。

在该模块中,教务人员可以添加允许登录的人员名单以及相应的密码,并对已有的用户进行密码修改或删除。

(结构如上图)

二、事务需求

综合分析教务管理系统各模块,我们需要对该系统实现基本的功能,并实现对用户对象的使用做出相应的权限。

1、学生可以查看学生自己的成绩、课程安排、课程表。

2、教师可以可以查看自己的基本信息、考试安排,可以对学生进行成绩的录入,不能添加、修改、删除系统的用户。

3、教务人员可以通过系统管理模块对系统用户进行添加、修改、删除;可以对学生的基本信息、成绩、课程、宿舍等进行添加、修改、删除;可以对教师的基本信息、课程安排进行各种操作;可以对各种模块进行更新和删除操作。

三、概念设计

概念设计是对整个数据库系统的一个抽象的描述和整体的概括,我们可以更加直观的去理解教务管理系统的结构,形成一个独立于具体DBMS(数据库管理系统)的概念模型,概念设计生成E-R图。

四、逻辑设计

1、学生信息管理:

学生的学号、姓名、性别、专业、院系、联系方式(电话)

2、教师信息管理:

教师的编号、姓名、性别、主讲课程、联系方式(电话)

3、院系管理:

系别编号、系别名称、系主任、系主任联系方式(电话)

4、成绩管理:

学生学号、姓名、课程号、分数

5、课程信息表:

课程号、课程名、任课教师、学分

6、系统管理:

管理员姓名、性别、电话

根据这些模块的划分,结合模块的属性,我们需要在数据库中建立以下表:

学生信息表(Student)、教师信息表(Teacher)、院系表(Department)、课程信息表(Course)、成绩表(Achievement)、管理员信息表(Administrator)。

五、物理设计

数据库的物理设计是对前一阶段的逻辑设计进行具体的物理实现,把我们的思想转化为实实在在的物理应用,通过对数据库的实践操作来实现我们的前期设计,良好的物理设计能很好的体现数据库的设计质量。

在这阶段,我们需要确定在物理设备上的存储模式和存取方法,反复的思考,多次的评估,以确保物理路径清晰,各个表之间的相互关系明确;理清内模式以及内模式和模式之间的映像关系。

具体来说,可以分为五步完成,前三步设计物理结构设计,后两步设计到约束和具体程序的设计:

(1)存储记录结构设计:

包括记录的组成,数据项的类型、长度,以及逻辑记录到存储记录的映射。

(2)确定数据存放位置:

可以把经常同时被访问的数据组合在一起,“记录聚簇”技术能满足这个要求(该技术在网上查询到的)。

(3)存取方法的设计:

存取路径可分为主存取路径和辅存取路径,前者用于主键的检索,后者用于辅助键的检索。

(4)完整性和安全性的考虑:

设计者应在完整性、安全性、有效性和效率方面进行分析,作曲权衡。

(5)程序设计:

在逻辑结构确定后,应用程序设计就应当随之开始。

物理数据独立性的目的是消除物理数据结构的改变儿引起应用程序的修改。

当物理独立性未得到保证时,可能会引发对程序的修改。

六、数据库实现

数据库实施阶段,运用DBMS提供的宿主语言,根据逻辑设计和物理设计的结果,建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。

1、创建数据库

(1)打开SQL工具“查询分析器”

(2)在查询窗口中键入下列SQL语句

createdatabaseEdu_System

执行上述SQL语句即可新建一名为Edu_System的数据库

2、创建数据表

数据表是数据库中一个非常重要的对象,是其他对象的基础。

数据库只是一个框架,数据表才是内容的实质,建表的原则:

一个完整的数据库不可缺少的就是数据表,若干个数据表的集合成一个数据库。

数据表主要用来存放一定格式的记录,数据表中的行被称为记录,列被称为字段。

创建数据表的过程其实就是定义字段的过程。

创建数据库后,为Edu_System数据库添加数据表,步骤如下:

(1)新建查询窗口

(2)在查询窗口中键入下列SQL语句创建表,同时建立主键和外键:

(学生信息表)

createtableStudent(/*创建学生信息表*/

Sidintidentityprimarykey,/*学号*/

Snamevarchar(20)notnull,/*姓名*/

Ssexchar

(2)check(Ssexin('男','女')),/*性别*/

Sprevarchar(20),/*专业*/

Sdepvarchar(20),/*院系*/

Stelchar(13),/*联系电话*/

(教师信息表)

createtableTeacher(/*创建教师信息表*/

Tidintidentityprimarykey,/*编号*/

Tnamevarchar(20)notnull,/*姓名*/

Tsexchar

(2)check(Tsexin('男','女')),/*性别*/

Tcouvarchar(20),/*主讲课程*/

Ttelchar(13),/*电话*/

(院系表)

createtableDepartment(/*创建院系表*/

Didintidentityprimarykey,/*编号*/

Dmcvarchar(20)notnull,/*系别名称*/

Dnamevarchar(20)notnull,/*系主任*/

Dtelchar(13),/*电话*/

(课程信息表)

createtableCourse(/*创建课程信息表*/

Cidintidentityprimarykey,/*课程号*/

Cnamevarchar(20)notnull,/*课程名*/

Stcvarchar(10),/*任课教师*/

Cxfvarchar(5),/*学分*/

(成绩信息表)

createtableAchievement(/*创建成绩信息表*/

SidintnotnullforeignkeyreferencesStudent(Sid),/*学号*/

Snamevarchar(20),/*姓名*/

CidintnotnullforeignkeyreferencesCourse(Cid),/*课程号*/

Cnamevarchar(20),/*课程名*/

Afsvarchar(5),/*分数*/

(系统管理表)

createtableAdministrator(/*创建系统管理表*/

Anamevarchar(20)notnull,/*姓名*/

Asexchar

(2)check(Asexin('男','女')),/*性别*/

Atelchar(13)notnull,/*联系电话*/

(3)运用sql语句向表格中插入数据:

(学生信息表)

setidentity_insertStudenton

INSERTINTOStudent(Sid,Sname,Ssex,Spre,Sdep,Stel)

VALUES('0811090101','熬霞','女','信息管理与信息系统','工商管理学院','');

INSERTINTOStudent(Sid,Sname,Ssex,Spre,Sdep,Stel)

VALUES('0811090102','陈健','男','信息管理与信息系统','工商管理学院','');

INSERTINTOStudent(Sid,Sname,Ssex,Spre,Sdep,Stel)

VALUES('0811090103','陈勤','男','信息管理与信息系统','工商管理学院','');

INSERTINTOStudent(Sid,Sname,Ssex,Spre,Sdep,Stel)

VALUES('0811090104','陈欣欣','女','信息管理与信息系统','工商管理学','');

INSERTINTOStudent(Sid,Sname,Ssex,Spre,Sdep,Stel)

VALUES('0811090105','戴柯柯','男','信息管理与信息系统','工商管理学','');

(教师信息表)

setidentity_insertStudentoff

setidentity_insertTeacheron

INSERTINTOTeacher(Tid,Tname,Tsex,Tcou,Ttel)

VALUES('101','王刚','男','数据结构','');

INSERTINTOTeacher(Tid,Tname,Tsex,Tcou,Ttel)

VALUES('102','高星','男','计算机网络','');

INSERTINTOTeacher(Tid,Tname,Tsex,Tcou,Ttel)

VALUES('103','肖娟','女','java程序设计','');

INSERTINTOTeacher(Tid,Tname,Tsex,Tcou,Ttel)

VALUES('104','许伟丽','女','项目管理','');

INSERTINTOTeacher(Tid,Tname,Tsex,Tcou,Ttel)

VALUES('105','刘书霞','男','jsp程序设计','');

(院系表)

setidentity_insertTeacheroff

setidentity_insertDepartmenton

INSERTINTODepartment(Did,Dmc,Dname,Dtel)

VALUES('201','工商管理学院','秦波','');

INSERTINTODepartment(Did,Dmc,Dname,Dtel)

VALUES('202','数信学院','韩旭','');

INSERTINTODepartment(Did,Dmc,Dname,Dtel)

VALUES('203','文法学院','陈其','');

INSERTINTODepartment(Did,Dmc,Dname,Dtel)

VALUES('204','财经学院','魏芳','');

INSERTINTODepartment(Did,Dmc,Dname,Dtel)

VALUES('205','体育系','李元','');

(课程信息表)

setidentity_insertDepartmentoff

setidentity_insertCourseon

INSERTINTOCourse(Cid,Cname,Stc,Cxf)

VALUES('301','数据结构','王刚','4');

INSERTINTOCourse(Cid,Cname,Stc,Cxf)

VALUES('302','计算机网络','高星','3');

INSERTINTOCourse(Cid,Cname,Stc,Cxf)

VALUES('303','java程序设计','肖娟','4');

INSERTINTOCourse(Cid,Cname,Stc,Cxf)

VALUES('304','项目管理','许伟丽','2');

INSERTINTOCourse(Cid,Cname,Stc,Cxf)

VALUES('305','jsp程序设计','刘书霞','3');

(系统管理表)

INSERTINTOAdministrator(Aname,Asex,Atel)

VALUES('张操','男','');

INSERTINTOAdministrator(Aname,Asex,Atel)

VALUES('许杰','男','');

INSERTINTOAdministrator(Aname,Asex,Atel)

VALUES('吴旭','男','');

INSERTINTOAdministrator(Aname,Asex,Atel)

VALUES('安鹏','男','');

INSERTINTOAdministrator(Aname,Asex,Atel)

VALUES('冉静','男','');

(成绩信息表)

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090101','熬霞','301','数据结构','98');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090101','熬霞','302','计算机网络','92');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090101','熬霞','303','java程序设计','97');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090101','熬霞','304','项目管理','93');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090101','熬霞','305','jsp程序设计','94');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090102','陈健','301','数据结构','98');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090102','陈健','302','计算机网络','97');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090102','陈健','303','java程序设计','97');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090102','陈健','304','项目管理','97');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090102','陈健','305','jsp程序设计','94');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090103','陈勤','301','数据结构','88');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090103','陈勤','302','计算机网络','93');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090103','陈勤','303','java程序设计','95');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090103','陈勤','304','项目管理','96');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090103','陈勤','305','jsp程序设计','92');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090104','陈欣欣','301','数据结构','87');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090104','陈欣欣','302','计算机网络','94');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090104','陈欣欣','303','java程序设计','95');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090104','陈欣欣','304','项目管理','96');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090104','陈欣欣','305','jsp程序设计','96');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090105','戴柯柯','301','数据结构','97');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090105','戴柯柯','302','计算机网络','97');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090105','戴柯柯','303','java程序设计','96');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090105','戴柯柯','304','项目管理','98');

INSERTINTOAchievement(Sid,Sname,Cid,Cname,Afs)

VALUES('0811090105','戴柯柯','305','jsp程序设计','93');

(该图只是部分数据)

(4)运用sql语句进行查询

>>对学生的各科成绩进行查询:

SelectStudent.Sid,Student.Sname,Achievement.Cname,

Achievement.Cid,Achievement.Afs

fromStudent,Achievement

whereStudent.Sid=Achievement.Sid

>>查询所有学生的课程编号为304(即项目管理),且成绩大于95的学生:

select*fromAchievementwhere(Cid=304andAfs>95)

查询结果如下图:

>>对学生的某一门课程进行查询,并按降序显示结果:

(5)创建视图,视图可以将不同表中的数据通过关联实现多表数据输出

createviewnewView

as

selectSid,Sname,Cname,Afs

fromAchievement

whereSid=0811090104

视图如下:

七、问题总结

(1)需求分析阶段,考虑问题不全面,以致于需求分析迟迟做不出来。

(2)在绘制ER图时,总是设计不出满意的图形,经过本人多次修改才完成以上这张感觉不错的ER图。

(3)创建数据表时,为主键和外键费了很大的精力,总是不能得到满意的结果。

经多次查询各种资料,完成这种关系的确立。

(4)向表中插入数据时,遇到“当IDENTITY_INSERT设置为OFF时,不能向表中的标识列插入显式值”的问题,解决方法:

在Student中添加这行代码:

“setidentity_insertStudenton”,在Teacher表进行插入数据时,又发现新的问题:

表“'Edu_System.dbo.Student'的IDENTITY_INSERT已经为ON。

无法为表'Teacher'执行SET操作”,解决方法:

setidentity_insertStudentoff

setidentity_insertTeacheron

后面的表出入数据的时候,也是按照该方法:

先设置前一次插入表的identity_insert为off,在设置插入表的ident

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2