数据库设计实例学校教学管理系统.docx
《数据库设计实例学校教学管理系统.docx》由会员分享,可在线阅读,更多相关《数据库设计实例学校教学管理系统.docx(18页珍藏版)》请在冰豆网上搜索。
数据库设计实例学校教学管理系统
《数据库系统概论》课程设计论文
教学管理系统数据库
1.引言...........................................3
本系统研究的意义.................................3
本系统的目的......................................3
2.数据库设计.....................................3
需求分析阶段......................................3
引言.........................................3
需求分析的目的和任务.........................4
需求分析阶段心得.............................5
概念结构设计阶段...............................6
引言......................................6
目的......................................6
具体任务..................................6
阶段成果..................................7
概念结构设计阶段心得........................11
逻辑结构设计阶段...............................12
引言.......................................12
逻辑结构设计阶段的目标、任务和步骤..........12
数据组织....................................13
逻辑结构设计阶段心得........................18
物理结构设计阶段...............................19
物理结构设计阶段的目的和步骤.............19
创建数据库及创建表........................19
物理结构设计阶段心得......................22
3.存在的问题与建议..............................23
·1引言
·本系统研究的意义
在当今的大学校园中,随着各大高校扩招,课程种类的增多,系部的分类更加细化,教师需求相应提高,学校教务处面临着一系列庞大的数据,就不再是人工可以解决的事情了。
由此可见,建立一个教务管理系统数据库是一项很有意义的事情。
建立该系统,无论是对系部、课程还是教师的安排都会变得容易得多。
·本系统的目的
本系统重点对学生、教材、班级、教师、课程、系部、教学计划、学生成绩、教师成绩实现统一管理。
这样,就可以为有需求的人们提供相应的查询服务。
·2数据库设计
·需求分析阶段
·引言
需求分析就是根据系统的目标、需求和功能,制定和选择一个较好的系统方案,不仅有助于教室管理者的管理,而且方便用户的查询及其它操作。
本系统针对教务管理这一学校日常事务,所设计的系统应当实现教师成绩管理,学生成绩管理,教学计划管理等基本功能。
因此确定本系统的功能如下:
(1)学生管理
(2)教材管理
(3)班级管理
(4)教师管理
(5)课程管理
(6)系部管理
(7)教学计划管理
(8)学生成绩管理
(9)教师成绩管理
·需求分析的目的和任务
(1)目标
通过充分与用户接触,充分了解用户的需求,熟悉系统设计的业务流程与信息处理要求及系统所涉及的数据流。
(2)任务
本系统设计的处理对象有学生信息、课程信息、班级信息、教师信息、系部信息、教学计划信息以及教师成绩信息,学生成绩信息,教材管理信息等。
处理对象信息要求:
A.存储,查询每个学生的姓名,性别,出生年月,学号,入学时间等;
B.存储,查询每个教师的姓名,性别,出生年月,职位,系号,教师编号等;
C.存储,查询每门课程的课程名,课程号,书号,周学时,总学时,学分等;
D.存储,查询每个班级的班级号,班长,教师地点,学生人数;
E.存储,查询每个系部的系别号,系主任,系教师人数等;
F.存储,查询每个教学计划的课程号和班级号等;
G.存储,查询每名学生成绩的课程号,学分,成绩,学期,学年等;
H.存储,查询每位教师成绩的教师号,课程号,成绩,学期,学年,教科时间,教科地点等;
I.存储,查询每本教材的作者,书号,出版社等;
(3)安全性和完整性要求
在这个系统中存在一个实体参与多个事务的情况,因此一个实体在不同事务中可能出现属性取值不一致,以及在事务中引用了实体表中不存在的实体,因此采用外键约束来避免这种不一致情况的发生。
另一方面,在事务处理中,修改了一个实体的属性,可能要修改其它实体,这种事务的完整性约束采用触发器来实现。
·需求分析阶段心得
需求分析阶段主要涉及的系统所要实现的功能,根据调查和访问确定了基本功能和操作,是数据库的设计有个基本目标。
完成了数据库信息要求、处理要求、安全性与完整性要求,使我们对数据库的设计阶段有了深入的认识和了解,为今后的学习工打下坚实的基础。
这次对数据库的设计,让我认识到自己学习中的不足。
对数据库这门课的热情和兴趣不够,学习中喜欢偷懒,这些都给我以后的学习带来阻力。
我觉得数据库这门课对于生活帮助还是很大的,在不经意的时候,我们所用的,运用它获得的。
所以,我觉得无论怎样还是要好好学习一下。
·.概念结构设计阶段
·引言
概念设计是数据库设计的关键。
概念结构是对现实世界的一种抽象,包括三种抽象,分别是分类、聚集、概括。
能不能将数据流中的实体及联系抽象成合适的概念模型,具体说就是E-R模型,关系到后续数据库的逻辑设计。
·目的
在需求分析的基础上,抽象出实体,实体的属性,以及实体之间的联系。
从一层数据流开始,先绘制局部的ER图,在此基础上通过消除冗余,命名冲突、属性冲突和结构冲突,得到全局E-R图。
·具体任务
1.选择中层数据流为切入点,通常选择实际系统中的子系统;
2.设计分E-R图,即各子模块的E-R图;
3.生成初步E-R图,通过合并方法,做到各子系统实体、属性、联系统一;
4.消除冲突,生成全局E-R图。
·阶段成果
通过对数据流的抽象,得到了系统的E-R图。
E-R图是直观表示概念模型的有力工具,在图中有四个基本成分:
1)矩形框:
表示实体类型(考虑问题的对象);
2)菱形框:
表示联系类型(实体间的联系);
3)椭圆形框:
表示实体类型和联系类型的属性;
4)直 线:
联系类型与涉及的实体类型之间以直线连接,并在直线部标上联系的种类(1:
1,1:
n,m:
n)。
具体图示如下:
通过分析,学生,教师,课程,教材,班级,系部,教学计划,成绩,分别具备以下属性。
其实体联系模型如图所示:
得到局部E-R图后,经过合并,消除冗余和命名冲突,结构冲突和属性冲突,得到的全局E-R图如下所示:
·概念结构设计阶段心得
在这次练习中,通过概念设计阶段的分析,我更是加深了对这一阶段的理解,并且按照需求分析的结果,设计了ER图。
通过这次训练,我加深了对数据库理论的理解,通过自己的分析和与同伴们之间的合作交流,熟练了对数据库的各种操作。
与此同时,通过课程论文的撰写及排版,熟悉了科技论文的书写格式和排版要求。
在标准化训练的过程中,强化了我对数据库设计的理解。
在本次练习中,我发现自己理论知识还并不是很扎实,这就要求在以后要加强数据库理论的学习,并且争取机会,多做类似的学习训练。
·.逻辑结构设计
·引言
逻辑结构设计就是把独立于任何一种数据模型的信息结构(也就是概念结构)转化为与选用DBMS所支持的数据模型相符合的设计。
·逻辑结构设计阶段的目标、任务和步骤
目标:
根据概念设计的E-R图,转化为优化的关系模型。
任务:
将E-R图转化为关系模式,并利用范式理论对模式进行优化,设计数据处理的,功能模块图,用户子模式与存储过程和触发器,完成事务处理的功能。
具体步骤:
(1)将概念结构转换为一般的关系模型;
(2)将转换来的关系模型向特定的DBMS支持下的数据模型转换;
(3)对数据模型进行优化。
·数据组织
实体型转换为关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
对于实体间的联系则有以下不同的情况:
一个m:
n联系转换为一个关系模式。
与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
一个1:
n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
一个1:
1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
三个或三个以上实体间的一个多元联系可以转换为一个关系模式。
与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合,具有相同码的关系模式可合并。
由E-R图可以转化出以下的关系模式:
(1)学生(StudentID,Studentname,Studentsex,Studentbirth,Studententerdate,Studentaddress)
(2)教材(Bookisbn,Bookname,Bookpublish,Bookauthor,Bookprice)
(3)班级(ClassID,Classmonitor,Classroom,Studentnum)(4)教室(TeacherID,Teachername,Teachersex,Teacherbirth,TeacherdepartID,Teacheraddress,Teacherposition,Teacherposcode,Teacherphone)
(5)课程(CourseID,Coursename,CourseBookisbn,Courseweektime,Coursealltime,Coursescore)
(6)系部(DepartmentID,Departmentname,Departmentmanger,Departmentnum)
(7)教学计划(Teachplanclassname,Teachplancousenum)
(8)学生成绩(Studentgradecn,Studentgradesn,Studentgradegrade,Studentgradeprog,Studentgradeyear,Studentgradeterm)
(9)教师成绩(Teachergradetn,Teachergradecn,Teachergradecln,Teachergradeyear,Teachergradeterm,Teachergradectime,Teachergradecadd)
根据以上分析可以具体列出二维表:
Student(学生表)
列名
数据类型
字段大小
可否为空
说明
StudentID
Char
10
N(KEY)
学号
Studentname
Char
10
N
姓名
Studentsex
Char
2
N
性别
Studentbirth
Datetime
固定长度
N
出生年月
Studententerdate
Datetime
固定长度
N
入学时间
Studentaddress
Char
50
Y
家庭地址
Book(教材表)
列名
数据类型
字段大小
可否为空
说明
Bookisbn
Char
13
N(KEY)
书号
Bookname
Char
30
N
书名
Bookpublish
Char
30
N
出版社
Bookauthor
Char
10
Y
作者
Bookprice
Char
固定长度
Y
价格
Class(班级表)
列名
数据类型
字段大小
可否为空
说明
ClassID
Char
5
N(KEY)
班级编号
Classmonitor
Char
10
Y
班长
Classroom
Char
20
Y
教室
Studentnum
int
固定长度
Y
班级人数
Teacher(教师表)
列名
数据类型
字段大小
可否为空
说明
TeacherID
Char
5
N(KEY)
教师编号
Teachername
Char
16
N
名字
Teachersex
Char
4
N
性别
Teacherbirth
Datetime
固定长度
N
出生日期
TeacherdepartID
Char
6
Y
系号
Teacheraddress
Char
32
Y
家庭住址
Teacherposition
Char
8
N
职位
Teacherposcode
Int
----
N
邮政编号
Teacherphone
Int
----
N
联系电话
Course(课程表)
列名
数据类型
字段大小
可否为空
说明
CourseID
Char
11
N(KEY)
课程号
Coursename
Char
12
N
课程名
CourseBookisbn
Char
13
N
书号
Courseweektime
Int
----
N
周学时
Coursealltime
Int
----
N
总学时
Coursescore
Decimal
6
N
学分
Department(系部表)
列名
数据类型
字段大小
可否为空
说明
DepartmentID
Char
8
N(KEY)
系号
Departmentname
Char
8
N
系名
Departmentmanger
Char
8
N
系主任名
Departmentnum
Int
----
N
系人数
Teachingplan(教学计划表)
列名
数据类型
字段大小
可否为空
说明
Teachplanclassname
Char
5
N(KEY)
班级号
Teachplancousenum
Char
11
N
课程号
Studentgrade(学生成绩表)
列名
数据类型
字段大小
可否为空
说明
Studentgradecn
Char
11
N(KEY)
课号
Studentgradesn
Char
5
N
学号
Studentgradegrade
Decimal
4
N
分数
Studentgradeprog
Decimal
4
N
学分
Studentgradeyear
Datetime
固定取值
N
学年
Studentgradeterm
Int
固定取值
N
学期
Teachergrade(教师成绩表)
列名
数据类型
字段大小
可否为空
说明
Teachergradetn
Char
5
N(KEY)
教师编号
Teachergradecn
Char
11
N
课程号
Teachergradecln
Char
5
N
班级编号
Teachergradeyear
Datetime
固定取值
N
学年
Teachergradeterm
Int
固定取值
N
学期
Teachergradectime
Datetime
固定取值
N
上课时间
Teachergradecadd
Char
8
N
上课地点
·逻辑结构设计心得
在对数据库系统概论的初步学习之后,我参与了教务管理系统论文中的逻辑结构设计。
这是我第一次进行自主设计,逻辑结构设计并没有刚开始想象的复杂,而是有着本身固定的模式和流程。
只要按照这个模式和流程,就可以比较规范的完成这部分的设计。
但是仅仅有固定的模式和流程是不够的,个人的思维和对相关知识点的熟练掌握也是很重要的。
数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。
数据库设计时需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照DBMS提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。
通过这次设计,增加了许多数据库书本上没有的重要知识;同时在小组讨论中也体会到,同学合作所带来的好处和成绩……
•物理结构设计
•物理结构设计阶段的目的和步骤
物理设计阶段为逻辑数据模型选取得一个最合适应有
环境的物理结构的过程,也就是数据库的物理设计。
物理设计阶段的目标是根据SQLServer2000具体的功能,设计优化的物理数据库结构,使得在数据库上运行的各种事务响应时间最小,存储空间利用率高,事务吞吐量大。
数据库的物理设计通常分为两个步骤:
(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。
·创建数据库及创建表
创建数据库
Createdatabasejwgl
On(name=jwgl,
Filename=’D:
/’,
Size=5,
Maxsize=20,
Filegrowth=1,
)
1.createschema“教务管理系统”authorizationGroup1;
创建表
2.createtableStudent
(StudentIDchar(5)notnull
primarykey,
Studentnamechar(10)notnull,
Studentsexchar
(2)notnull,
Studentbirthdatetimenotnull,
Studententerdatedatetimenotnull,
Studentaddresschar(50),
)
Go
3.createtableBook
(Bookisbhchar(13)notnull
primarykey,
Booknamechar(30)notnull,
Bookpublishchar(30)notnull,
Bookauthorchar(10),
Bookpricechar,
)
go
4.createtableClass
(ClassIDchar(5)notnull
primarykey,
Classmonitorchar(10),
Classroomchar(20),
Studentnumint,
)
go
5.createtableTeacher
(TeacherIDchar(5)notnull
primarykey,
Teachernamechar(16)notnull,
Teachersexchar(4)notnull,
Teacherbirthdatetimenotnull,
TeacherdepartIDchar(6),
Teacheraddresschar(32),
Teacherpositionchar(8)notnull,
Teacherposcodeintnotnull,
Teacherphoneintnotnull,
)
Go
6.createtableCourse
(CourseIDchar(11)notnull
primarykey,
Coursenamechar(12)notnull,
CourseBookisbhchar(13)notnull,
Courseweektimeintnotnull,
Coursealltimeintnotnull,
Coursescoredecimal(6)notnull,
)
go
7.createtableDepartment
(DepartmentIDchar(8)notnull
Departmentnamechar(8)notnull,
Departmentmangerchar(8)notnull,
Departmentnumintnotnull,
)
Go
8.createtableTeachingplan
(TeachingplanClassnamechar(5)notnull,
Teachingplancoursenumchar(11)notnull,
)
Go
9.createtableStudentgrade
(Studentgradecnchar(11)notnull
primarykey,
Studentgradesnchar(5)notnull,
Studentgradegradedecimal(4)notnull,
Studentgradeprogdecimal(4)notnull,
Studentgradeyeardatetimenotnull,
Studentgradetermintnotnull,
)
go
10.createtableTeachergrade
(Teachergradetnchar(5)notnull
primarykey,
Teachergradecnchar(11)notnull,
Teachergradeclnchar(5)notnull,
Teachergradeyeardatetimenotnull,
Teachergradetermintnotnull,
Teachergradectimedatetimenotnull,
Teachergradecaddchar(8)notnull,
)
Go
•物理结构设计阶段心得
在本次练习中,我通过实际设计数据库的物理设计训
练,掌握了数据库设计的步骤与方法,加深了对数据库设计每一步骤的理解。
例如对每一条语句的目的、格式和所对应的数据字典。
在训练过程中,我感受到了参考以前实例的重要性。
同时对实现语句的功能也有了大致的了解。
通过这次综合训练,我加深了对数据库理论的理解,熟练了对数据库的各种操作,尤其是存储过程和创建表格的使用。
与此同时,通过课程论文的撰写及排版,熟悉了科技论文的书写格式和排版要求。
在标准化训练的过程中,强化了我对数据库设计的理解。
在作业中,我发现自己理论知识还并不是很扎实,这就要求在以后要加强数据库理论的学习,并且多看课本,巩固知识。
•3.存在的问题和建议
本次实习旨在对数据库设计过程的培训和熟悉,进而养成数据库