家教信息管理系统数据库课程设计Word下载.docx
- 文档编号:22442158
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:18
- 大小:217.41KB
家教信息管理系统数据库课程设计Word下载.docx
《家教信息管理系统数据库课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《家教信息管理系统数据库课程设计Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
家教信息系统是一种为管理家教的基本详细信息而设计的系统,一是使用户能够快速详细的,有针对性的去了解家教的基本信息,教授信息,所授科目信息,以及以往用户对家教的评价信息,二是对家教信息的管理实现现代化,从而方便了对家教信息的查询,更新与删除等,总体提高了管理的效率。
3.2.概念结构设计
3.2.1.数据需求
通过对家教信息系统的分析,得出如下数据特征:
(1)在家教信息系统中,每个教员由教员编号唯一标识,每科科目由科目编号唯一标识,每个学员由学员编号唯一标识。
(2)每个学员可以学习多门科目,每个教员可以教授多门科目,同时,一门课也可以由多位教员讲授,可供多为学员学习学习。
(3)每个学员可以评价多位教员,每个教员可以被多位学员评价。
(4)教员表和科目表为多对多的关系,可以通过设置教授表,确定教员和教授科目之间的明确关系。
(5)学员表和科目表为多对多的关系,可以通过设置学习表,确定学员和选择科目之间的明确关系。
(7)学员表和教员表为多对多的关系,可以通过设置评价表,确定学员和教员之间的明确关系。
3.2.2.E-R图设计
家教信息系统根据上面的设计规划出的实体有:
教员实体、科目实体、学员实体。
E-R图3-1如下。
图3-1家教信息系统E-R图
3.3.逻辑结构设计
数据库逻辑结构设计的任务是将概念结构转换成特定DBMS所支持的数据模型的过程。
3.3.1.关系模型
由E-R图转换成关系模式。
首先,将4个实体转换成关系模式的结果如下:
教员(教员编号,教员姓名,性别,电话,地址,文凭,任职类型)
科目(科目编号,科目名称,科目年级,课时单价)
学员(学员编号,学员姓名,性别,地址,电话,学习程度)
其次,将3个多对多类型的联系转换为关系模式,如下:
教授表(教员编号,科目编号,授课时间)
学习表(学员编号,科目编号,学习成绩,开始时间)
评价表(学员编号,教员编号,评价时间,授课质量,授课态度)
【注:
带下划线的属性为关系的主属性(即关键字)。
对于上述后3个表中都引用了外键,引用的外键“教员编号”都参照“教员表”的主键“教员编号”;
引用的外键“科目编号”都参照“科目表”的主键“教员编号”;
引用的外键“学员编号”都参照“学员表”的主键“学员编号”。
】
3.3.2.数据库完整性设计
(1)规范化设计
1.教员表:
教员编号→教员姓名,教员编号→性别,教员编号→电话,教员编号→地址,教员编号→文凭,教员编号→任职类型。
没有传递依赖,没有部分依赖,则此范式属于第三范式。
2.科目表:
科目编号→科目名称,科目编号→科目年级,科目编号→课时单价。
3.学员表:
学员编号→学员姓名,学员编号→性别,学员编号→地址,学员编号→电话,学员编号→学习程度。
4.教授表:
(教员编号,科目编号)→授课时间。
5.学习表:
(学员编号,科目编号)→学习成绩,(学员编号,科目编号)→开始时间。
6.评教表:
(学员编号,教员编号)→评价时间,(学员编号,教员编号)→授课态度,(学员编号,教员编号)→授课质量。
(2)约束设计
1.在教员、学员表中建立一个检查约束,即“性别”属性不是‘男’就是‘女’,check(sex='
男'
orsex='
女'
)。
2.在学习表中建立一个检查约束,即“成绩”属性在0到100之间,check(score>
=0andscore<
=100)。
3.在评教表中,授课质量和授课态度属性设置检查约束,范围在0到100星之间,check(属性字段>
=0and属性字段<
(3)视图设计
建立视图kemuxinxi_view,可以查看科目编号、科目名和科目年级的视图。
(4)索引设计
1.在jiaoyuan表中的jiaoyuanid列上创建名为jiaoyuanid_index的聚集索引。
2.在xueyuan表中的xueyuanid列上创建名为xueyuanindex的非聚集索引。
(5)存储过程设计
针对教员信息表jiaoyuan,创建一个名称为jiaoyuan_proc1的存储过程,该存储过程的功能是从数据表jiaoyuan中查询所有女教师的信息,并执行。
(6)触发器设计
建立一个update触发器(T2):
在数据库jiajiaoxinxi的worker表中的教员编号是唯一且不可改变的,创建触发器T2实现更新中编号的不可改变性。
3.4.物理结构设计
3.4.1.设计表
按照上述关系数据模型,系统所涉及的部分数据表如下表所示:
表1教员信息表
字段名
含义说明
数据类型
是否为空
约束设计
Jiaoyuanid
教员编号
Char(6)
否
主键
Xingming
教员姓名
Char(8)
Xingbie
性别
Char
(2)
“男”或“女”
Dianhua
电话
Int
Dizhi
地址
Char(20)
Wenping
文凭
Char(4)
rzlx
任职类型
表2科目信息表
Kemuid
科目编号
Mingcheng
科目名称
Char(10)
Nianji
科目年级
Danjia
课时单价
表3学员信息表
Xueyuanid
学员编号
学员姓名
Xxcd
学习程度
表4教授表
主键、外键
Sksj
授课时间
Datetime
表5学习表
Xxcj
学习成绩
0到100
Kssj
开始时间
表6评价表
Pjsj
评价时间
Skzl
授课质量
Sktd
授课态度
3.4.2.数据库与表的创建
1.创建数据库jiajiaoxinxi,如图3-2所示。
图3-2数据库jiajiaoxinxi
2.创建教员信息表并录入表数据
CREATETABLEjiaoyuan
(
jiaoyuanidCHAR(6)PRIMARYKEY,
xingmingCHAR(8)notnull,
xingbieCHAR
(2)CONSTRAINTsex_CheckCHECK(xingbie='
ORxingbie='
)notnull,
dianhuachar(11)notnull,
dizhichar(20),
wenpingchar(4),
rzlxchar(4),
)
图3-3教员信息表
3.创建科目表并录入表数据
CREATETABLEkemu
kemuidCHAR(6)PRIMARYKEY,
mingchengCHAR(10)notnull,
nianjiCHAR(6),
danjiaint,
图3-4科目信息表
4.创建学员信息表并录入表数据
CREATETABLExueyuan
xueyuanidCHAR(6)PRIMARYKEY,
xingbieCHAR
(2)CONSTRAINTsex_ChkCHECK(xingbie='
dianhuaint,
xxcdchar(4),
图3-5学员信息表
5.创建教授表并录入表数据
CREATETABLEjiaoshou
jiaoyuanidCHAR(6)notnull,
kemuidchar(6)notnull,
sksjdatetimenotnull,
primarykey(jiaoyuanid,kemuid),
FOREIGNKEY(kemuid)REFERENCESkemuondeletecascade,
FOREIGNKEY(jiaoyuanid)REFERENCESjiaoyuanondeletecascade,
图3-6教授表
6.创建学习表并录入表数据
createtablexuexi
(xueyuanidCHAR(6)notnull,
xxcjintcheck(xxcj<
=100)notnull,
kssjdatetime,
primarykey(xueyuanid,kemuid),
FOREIGNKEY(xueyuanid)REFERENCESxueyuanondeletecascade,
FOREIGNKEY(kemuid)REFERENCESkemuondeletecascade,)
图3-7学习表
7.创建评价表并录入表数据
CREATETABLEpingjia
xueyuanidCHAR(6)notnull,
jiaoyuanidchar(6)notnull,
pjsjdatetimenotnull,
skzlintcheck(skzl<
=100),
sktdintcheck(sktd<
=100),
primarykey(xueyuanid,jiaoyuanid),
图3-8评价表
3.4.3.建立视图
视图作为一种数据库对象,为用户提供一种检索数据表中数据的方式。
视图被看成是虚拟表,它并不表示任何物理数据,只是用来查看数据的视窗而已。
建立视图kemuxinxi_view,可以查看科目编号、科目名和科目年级的视图,如图3-9、3-10所示
usejiajiaoxinxi
createviewkemuxinxi_view
as
selectkemuid,mingcheng,nianji
from
kemu
图3-9创建视图
图3-10查询视图
3.4.4.建立索引
在数据库中的某些列上建立索引可以加快查询速度,减少服务器的响应时间。
在查询数据的时候先查看一下索引而不是扫描整个数据表,这就相当于先翻翻书籍的目录,从索引里确定了用户要查找的数据在表中的哪些行里面,再去扫面这些行,查询的速度会大大加快。
1.在jiaoyuan表中的jiaoyuanid列上创建名为jiaoyuanid_index的聚集索引,如图3-11所示。
go
createclusteredindexjiaoyuanid_indexonjiaoyuan(jiaoyuanid)
图3-11创建聚集索引
2.在xueyuan表中的xueyuanid列上创建名为xueyuanindex的非聚集索引,如图3-12所示。
createnonclusteredindexxueyuanindexonxueyuan(xueyuanid)
图3-12创建非聚集索引
3.4.5.建立存储过程
为了易于修改和扩充方便,将负责某种独立功能的语句集中起来并按照用途分别独立放置,以便能够反复使用,因此我们要在数据库中建立存储过程。
存储过程预编译并存储在数据库中的特性,不仅能提高应用效率,确保一致性,更能提高系统执行速度。
1.针对教员信息表jiaoyuan,创建一个名称为jiaoyuan_proc1的存储过程,该存储过程的功能是从数据表jiaoyuan中查询所有女教师的信息,如图3-13、3-14所示。
createprocedurejiaoyuan_proc1
as
select*fromjiaoyuanwherexingbie='
图3-13创建存储过程
2.执行存储过程jiaoyuan_proc1.
executejiaoyuan_proc1
图3-14执行触发器
3.4.6.建立触发器
触发器是一种在数据表或视图被修改时自动执行的内嵌存储过程,主要是通过事件进行触发的。
触发器的主要作用是实现由主键和外键所不能保证的复杂的参照完整性和数据一致性。
在数据库jiajiaoxinxi的worker表中的教员编号是唯一且不可改变的,创建触发器T2实现更新中编号的不可改变性,输入如下语句:
createtriggerT2onjiaoyuan
forupdate
ifupdate(jiaoyuanid)
begin
print'
everyjiaoyuanidcannotbechanged'
rollbacktransaction
end
将教员编号为“0004”的教员性别改为“男”,输入如下语句。
updatejiaoyuansetjiaoyuanid='
0004'
wherexingbie='
图3-15更新触发器
分析:
更新数据时违反了触发器T2的约束,操作失败。
4.结论
本次课程设计的任务是设计家教信息系统,在对家教信息系统设计前,首先要对用户的实际需求进行了深入的了解并及时作出必要的需求分析,通过需求分析进而进行概念结构设计部分(即E-R图)、E-R图转换关系模型、数据库的物理结构设计以及数据库的实施与维护。
家教信息系统的课程设计主要针对数据库方向,本次课程设计对数据库进行了全面性的设计与覆盖,数据库设计在以后的网站建设中充当着重要作用,是必不可少的,所以本次课程设计为以后个人整个计算机的设计领域打下了坚实的基础。
5.学习体会
通过这次课程设计的实践,发现自身存在的不足之处,纵看整个设计过程,需求分析设计和概念结构设计是整个数据库课程设计的重中之重,相当于数据库设计的地基,只有把地基夯实才能建成拔地凌空,气势恢宏的大楼。
本次设计虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决,从而对数据库课程设计也有了新的认识。
6.参考文献
[1]麦中凡,何玉洁.数据库原理及应用[M].北京:
人民邮电出版社,2008.
[2]王珊,萨师煊.数据库系统概论[M].北京:
高等教育出版社,2006.
[3]壮志剑.数据库原理与SQLServer[M].北京:
[4]王晟.SQLServer数据库开发经典案例分析(第3版).北京:
清华大学出版社出版,2005.
[5]黄维通.SQLServer数据库的技术与应用[M].北京:
清华大学出版社,2011.
[6]周爱武,汪海威,肖云.数据库课程设计[M].北京:
机械工业出版社,2012.
[7]丁宝康.数据库原理.北京:
经济科学出版社,2008.
[8]黄梯云.管理信息系统.北京:
中国铁道出版,2007.
7.致谢
在课程设计的过程中,首先要感谢的是我的指导老师冯春辉老师,感谢冯老师的悉心解惑和指导,当我碰到不明白的问题时,冯老师总是耐心的讲解,给我的设计以极大的帮助,使我获益匪浅,特别是在概念结构设计时,在冯老师的正确指导下才有了正确E-R图的呈现,为接下来的设计打下了基础,从而才有了整个数据库的呈现。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 家教信息 管理 系统 数据库 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)