家教信息管理系统数据库课程设计_第1页
家教信息管理系统数据库课程设计_第2页
家教信息管理系统数据库课程设计_第3页
家教信息管理系统数据库课程设计_第4页
家教信息管理系统数据库课程设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目目 录录 1.1. 绪论绪论.- - 1 1 - - 2.2. 总体设计总体设计.- - 1 1 - - 2.1.2.1. 数据流程分析图数据流程分析图.- 1 - 2.2.2.2. 系统功能模块设计系统功能模块设计.- 1 - 2.3.2.3. 安全性设计安全性设计.- 2 - 3.3. 数据库设计数据库设计.- - 2 2 - - 3.1.3.1. 需求分析需求分析.- 2 - 3.1.1.3.1.1. 任务概述任务概述.- 2 - 3.1.2.3.1.2. 系统功能需求系统功能需求.- 2 - 3.2.3.2. 概念结构设计概念结构设计.- 2 - 3.2.1.3.2.1. 数据需求数据需求.- 2 - 3.2.2.3.2.2. E-RE-R 图设计图设计 .- 3 - 3.3.3.3. 逻辑结构设计逻辑结构设计.- 3 - 3.3.1.3.3.1. 关系模型关系模型.- 3 - 3.3.2.3.3.2. 数据库完整性设计数据库完整性设计.- 3 - 3.4.3.4. 物理结构设计物理结构设计.- 4 - 3.4.1.3.4.1. 设计表设计表.- 4 - 3.4.2.3.4.2. 数据库与表的创建数据库与表的创建.- 6 - 3.4.3.3.4.3. 建立视图建立视图.- 9 - 3.4.4.3.4.4. 建立索引建立索引.- 9 - 3.4.5.3.4.5. 建立存储过程建立存储过程.- 10 - 3.4.6.3.4.6. 建立触发器建立触发器.- 11 - 4.4. 结结论论.- - 1111 - - 5.5. 学习体会学习体会.- - 1111 - - 6.6. 参考文献参考文献.- - 1212 - - 7.7. 致谢致谢.- - 1212 - - 家教信息系统 - 1 - 1.1. 绪论绪论 随着家教行业竞争的加剧、国内教育制度的不断深化改革,各类家教机构将更加注 重学生的素质教育,不再单一为提高孩子学习成绩而努力,所以课外选择适合学员自己 的家教是至关重要的,家教信息系统是管理教员主要及其详细的信息系统,利用计算机 的数据库系统管理家教信息,达到管理功能完备,操作方便,有效快捷管理家教的信息, 同时能够使用户和学员快速并详细的了解家教信息。 2.2. 总体设计总体设计 2.1.2.1.数据流程分析图数据流程分析图 数据流程图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种 符号综合地反映出信息在系统中的流动、处理和存储情况。 数据流程图的特点:具有抽象性和概括性。抽象性表现在它完全舍去了具体的物质, 只剩下数据的流动、加工处理和存储;概括性表现在它可以把信息中的各种不同业务处 理过程联系起来,形成一个整体。 结构化分析方法绘制数据流程图的基本思想:自顶向下,由外向里,逐步分解。 家教信息系统顶层的功能:教员利用家教信息系统录入自己的基本信息;管理员利 用家教信息系统查看教员基本信息,教授科目信及评价信息,如图2-1所示。 教员家教信息系统系统管理员已录入信息 管理教员信息 教授科目信息管理 评价信息管理 图2-1 顶层数据流图 2.2.2.2.系统功能模块设计系统功能模块设计 家教信息系统 用户 登录 模块 教员 信息 模块 用户 留言 模块 系统 管理 模块 修改 密码 模块 更 改 密 码 删 除 信 息 发 表 评 论 回 复 评 论 信 息 管 理 留 言 管 理 更 新 信 息 教 员 登 录 管 理 员 登 录 修 改 信 息 删 除 评 论 图2-2 家教信息系统模块图 家教信息系统 - 2 - 2.3.2.3.安全性设计安全性设计 数据库的安全性就是指数据库中数据的保护措施,一般包括的登陆的身份验证管理、 数据库的使用权限管理和数据库中对象的使用权限管理三种安全性保护措施。 家教信息系统是采用管理员鉴定的方法实现数据库的安全,此安全管理措施在数据 库中实现。登录数据库时,系统让管理员表示自己身份,不同管理员权限不同,系统进 行鉴别此管理员是否为合法用户。若是,系统进一步对用户口令进行核实。只有完全符 合的用户才能对系统内容进行相关更改、查询操作。 3.3. 数据库设计数据库设计 3.1.3.1.需求分析需求分析 3.1.1.3.1.1. 任务概述任务概述 随着科技的发展和信息技术的日益普及,很多家长抱着望子成龙的心态不遗余力的 为孩子找合适的家教,所以要设计一个家教信息系统,使用户利用网络的方便和快捷来 具体了解家教的详细信息并快速找到适合学员的教员,而不用在跑去“家教服务中心” 去了解,充分提高了快速了解教员信息的效率,减少了劳力及时间的浪费,对管理员来 说,对家教信息的添加,修改,查询,更新和删除是必不可少的,所以开发设计一个全 面的家教信息系统是必不可少的。 3.1.2.3.1.2. 系统功能需求系统功能需求 家教信息系统是一种为管理家教的基本详细信息而设计的系统,一是使用户能够快 速详细的,有针对性的去了解家教的基本信息,教授信息,所授科目信息,以及以往用 户对家教的评价信息,二是对家教信息的管理实现现代化,从而方便了对家教信息的查 询,更新与删除等,总体提高了管理的效率。 3.2.3.2.概念结构设计概念结构设计 3.2.1.3.2.1. 数据需求数据需求 通过对家教信息系统的分析,得出如下数据特征: (1)在家教信息系统中,每个教员由教员编号唯一标识,每科科目由科目编号唯一标 识,每个学员由学员编号唯一标识。 (2)每个学员可以学习多门科目,每个教员可以教授多门科目,同时,一门课也可以 由多位教员讲授,可供多为学员学习学习。 (3)每个学员可以评价多位教员,每个教员可以被多位学员评价。 (4)教员表和科目表为多对多的关系,可以通过设置教授表,确定教员和教授科目之 间的明确关系。 (5)学员表和科目表为多对多的关系,可以通过设置学习表,确定学员和选择科目之 间的明确关系。 (7)学员表和教员表为多对多的关系,可以通过设置评价表,确定学员和教员之间的 明确关系。 家教信息系统 - 3 - 3.2.2.3.2.2. E-RE-R 图设计图设计 家教信息系统根据上面的设计规划出的实体有:教员实体、科目实体、学员实体。 E-R 图 3-1 如下。 学员 教员 L M N M L 学习 N N 任职类型 地址 地址 性别 姓名 性别 姓名 电话 教员编号 电话 学员编号 学习程度 科目 科目名称 科目编号 开始时间 科目年级 课时单价 教授 评价 学习成绩 授课时间 评价时间 授课质量 授课态度 文凭 图3-1 家教信息系统 E-R 图 3.3.3.3.逻辑结构设计逻辑结构设计 数据库逻辑结构设计的任务是将概念结构转换成特定 DBMS 所支持的数据模型的过程。 3.3.1.3.3.1. 关系模型关系模型 由 E-R 图转换成关系模式。首先,将 4 个实体转换成关系模式的结果如下: 教员(教员编号,教员姓名,性别,电话,地址,文凭,任职类型) 科目(科目编号,科目名称,科目年级,课时单价) 学员(学员编号,学员姓名,性别,地址,电话,学习程度) 其次,将 3 个多对多类型的联系转换为关系模式,如下: 教授表(教员编号,科目编号,授课时间) 学习表(学员编号,科目编号,学习成绩,开始时间) 评价表(学员编号,教员编号,评价时间,授课质量,授课态度) 【注:带下划线的属性为关系的主属性(即关键字)。对于上述后 3 个表中都引用了 外键,引用的外键“教员编号”都参照“教员表”的主键“教员编号” ;引用的外键“科 目编号”都参照“科目表”的主键“教员编号” ;引用的外键“学员编号”都参照“学员 表”的主键“学员编号” 。 】 3.3.2.3.3.2. 数据库完整性设计数据库完整性设计 家教信息系统 - 4 - (1)(1) 规范化设计规范化设计 1.1.教员表:教员编号教员姓名,教员编号性别,教员编号电话,教员编号 地址,教员编号文凭,教员编号任职类型。没有传递依赖,没有部分依赖,则此范 式属于第三范式。 2.2.科目表:科目编号科目名称,科目编号科目年级,科目编号课时单价。没 有传递依赖,没有部分依赖,则此范式属于第三范式。 3.3.学员表:学员编号学员姓名,学员编号性别,学员编号地址,学员编号 电话,学员编号学习程度。没有传递依赖,没有部分依赖,则此范式属于第三范式。 4.4.教授表:(教员编号,科目编号)授课时间。没有传递依赖,没有部分依赖,则 此范式属于第三范式。 5.5.学习表:(学员编号,科目编号)学习成绩,(学员编号,科目编号)开始时间。 没有传递依赖,没有部分依赖,则此范式属于第三范式。 6.6.评教表:(学员编号,教员编号)评价时间,(学员编号,教员编号)授课态度, (学员编号,教员编号)授课质量。没有传递依赖,没有部分依赖,则此范式属于第三 范式。 (2)(2)约束设计约束设计 1.1.在教员、学员表中建立一个检查约束,即“性别”属性不是男就是女 , check(sex=男or sex=女)。 2.2.在学习表中建立一个检查约束,即“成绩” 属性在 0 到 100 之间,check(score =0 and score=0 and 属性字段=100)。 (3)(3)视图设计视图设计 建立视图kemuxinxi_view,可以查看科目编号、科目名和科目年级的视图。 (4)(4)索引设计索引设计 1.1. 在 jiaoyuan 表中的 jiaoyuanid 列上创建名为 jiaoyuanid_index 的聚集索引。 2.2. 在 xueyuan 表中的 xueyuanid 列上创建名为 xueyuanindex 的非聚集索引。 (5)(5)存储过程设计存储过程设计 针对教员信息表 jiaoyuan,创建一个名称为 jiaoyuan_proc1 的存储过程,该存储过 程的功能是从数据表 jiaoyuan 中查询所有女教师的信息,并执行。 (6)(6)触发器设计触发器设计 建立一个 update 触发器(T2):在数据库 jiajiaoxinxi 的 worker 表中的教员编号是 唯一且不可改变的,创建触发器 T2 实现更新中编号的不可改变性。 3.4.3.4.物理结构设计物理结构设计 3.4.1.3.4.1. 设计表设计表 按照上述关系数据模型,系统所涉及的部分数据表如下表所示: 表表 1 1 教员信息表教员信息表 家教信息系统 - 5 - 字段名含义说明数据类型是否为空约束设计 Jiaoyuanid 教员编号 Char(6) 否主键 Xingming 教员姓名 Char(8) 否 Xingbie 性别 Char(2) 否“男”或“女” Dianhua 电话 Int 否 Dizhi 地址 Char(20) Wenping 文凭 Char(4) rzlx 任职类型 Char(4) 表表 2 2 科目信息表科目信息表 字段名含义说明数据类型是否为空约束设计 Kemuid 科目编号 Char(6) 否主键 Mingcheng 科目名称 Char(10) 否 Nianji 科目年级 Char(6) 否 Danjia 课时单价 Int 表表 3 3 学员信息表学员信息表 字段名含义说明数据类型是否为空约束设计 Xueyuanid 学员编号 Char(6) 否主键 Xingming 学员姓名 Char(8) 否 Xingbie 性别 Char(2) 否“男”或“女” Dizhi 地址 Char(20) Dianhua 电话 Int Xxcd 学习程度 Char(4) 表表 4 4 教授表教授表 字段名含义说明数据类型是否为空约束设计 Jiaoyuanid 教员编号 Char(6) 否主键、外键 Kemuid 科目编号 Char(6) 否主键、外键 Sksj 授课时间 Datetime 否 表表 5 5 学习表学习表 字段名含义说明数据类型是否为空约束设计 Xueyuanid 学员编号 Char(6) 否主键、外键 Kemuid 科目编号 Char(6) 否主键、外键 家教信息系统 - 6 - Xxcj 学习成绩 Int 否0 到 100 Kssj 开始时间 Datetime 表表 6 6 评价表评价表 字段名含义说明数据类型是否为空约束设计 Xueyuanid 学员编号 Char(6) 否主键、外键 Jiaoyuanid 教员编号 Char(6) 否主键、外键 Pjsj 评价时间 Datetime Skzl 授课质量 Int 否0 到 100 Sktd 授课态度 Int 0 到 100 3.4.2.3.4.2. 数据库与表的创建数据库与表的创建 1. 创建数据库 jiajiaoxinxi,如图 3-2 所示。 图 3-2 数据库 jiajiaoxinxi 2. 创建教员信息表并录入表数据 CREATE TABLE jiaoyuan ( jiaoyuanid CHAR(6) PRIMARY KEY, xingming CHAR(8) not null, xingbie CHAR(2) CONSTRAINT sex_Check CHECK(xingbie=男OR xingbie=女) not null, dianhua char(11) not null, dizhi char(20), wenping char(4), rzlx char(4), ) 家教信息系统 - 7 - 图3-3 教员信息表 3. 创建科目表并录入表数据 CREATE TABLE kemu ( kemuid CHAR(6) PRIMARY KEY, mingcheng CHAR(10) not null, nianji CHAR(6), danjia int, ) 图3-4 科目信息表 4. 创建学员信息表并录入表数据 CREATE TABLE xueyuan ( xueyuanid CHAR(6) PRIMARY KEY, xingming CHAR(8) not null, xingbie CHAR(2) CONSTRAINT sex_Chk CHECK(xingbie=男OR xingbie=女) not null, dizhi char(20), dianhua int, xxcd char(4), ) 家教信息系统 - 8 - 图3-5 学员信息表 5. 创建教授表并录入表数据 CREATE TABLE jiaoshou ( jiaoyuanid CHAR(6) not null, kemuid char(6) not null, sksj datetime not null, primary key(jiaoyuanid,kemuid), FOREIGN KEY (kemuid) REFERENCES kemu on delete cascade, FOREIGN KEY (jiaoyuanid) REFERENCES jiaoyuan on delete cascade, ) 图3-6 教授表 6. 创建学习表并录入表数据 create table xuexi ( xueyuanid CHAR(6) not null, kemuid char(6) not null, xxcj int check(xxcj=100)not null, kssj datetime, primary key(xueyuanid,kemuid), FOREIGN KEY (xueyuanid) REFERENCES xueyuan on delete cascade, FOREIGN KEY (kemuid) REFERENCES kemu on delete cascade,) 家教信息系统 - 9 - 图3-7 学习表 7. 创建评价表并录入表数据 CREATE TABLE pingjia ( xueyuanid CHAR(6) not null, jiaoyuanid char(6) not null, pjsj datetime not null, skzl int check(skzl=100), sktd int check(sktd=100), primary key(xueyuanid,jiaoyuanid), FOREIGN KEY (xueyuanid) REFERENCES xueyuan on delete cascade, FOREIGN KEY (jiaoyuanid) REFERENCES jiaoyuan on delete cascade, ) 图3-8 评价表 3.4.3.3.4.3. 建立视图建立视图 视图作为一种数据库对象,为用户提供一种检索数据表中数据的方式。视图被看成 是虚拟表,它并不表示任何物理数据,只是用来查看数据的视窗而已。 建立视图kemuxinxi_view,可以查看科目编号、科目名和科目年级的视图,如图3- 9、3-10所示 use jiajiaoxinxi create view kemuxinxi_view as select kemuid,mingcheng,nianji from kemu 图3-9 创建视图 家教信息系统 - 10 - 图3-10 查询视图 3.4.4.3.4.4. 建立索引建立索引 在数据库中的某些列上建立索引可以加快查询速度,减少服务器的响应时间。在查 询数据的时候先查看一下索引而不是扫描整个数据表,这就相当于先翻翻书籍的目录, 从索引里确定了用户要查找的数据在表中的哪些行里面,再去扫面这些行,查询的速度 会大大加快。 1. 在 jiaoyuan 表中的 jiaoyuanid 列上创建名为 jiaoyuanid_index 的聚集索引, 如图 3-11 所示。 use jiajiaoxinxi go create clustered index jiaoyuanid_index on jiaoyuan(jiaoyuanid) go 图3-11 创建聚集索引 2. 在 xueyuan 表中的 xueyuanid 列上创建名为 xueyuanindex 的非聚集索引,如图 3-12 所示。 use jiajiaoxinxi go create nonclustered index xueyuanindex on xueyuan(xueyuanid) go 家教信息系统 - 11 - 图3-12 创建非聚集索引 3.4.5.3.4.5. 建立存储过程建立存储过程 为了易于修改和扩充方便,将负责某种独立功能的语句集中起来并按照用途分别独 立放置,以便能够反复使用,因此我们要在数据库中建立存储过程。存储过程预编译并 存储在数据库中的特性,不仅能提高应用效率,确保一致性,更能提高系统执行速度。 1. 针对教员信息表 jiaoyuan,创建一个名称为 jiaoyuan_proc1 的存储过程,该存 储过程的功能是从数据表 jiaoyuan 中查询所有女教师的信息,如图 3-13、3-14 所示。 use jiajiaoxinxi go create procedure jiaoyuan_proc1 as select * from jiaoyuan where xingbie=女 go 图3-13 创建存储过程 2. 执行存储过程 jiaoyuan_proc1. use jiajiaoxinxi execute jiaoyuan_proc1 go 图3-14 执行触发器 3.4.6.3.4.6. 建立触发器建立触发器 触发器是一种在数据表或视图被修改时自动执行的内嵌存储过程,主要是通过事件 进行触发的。触发器的主要作用是实现由主键和外键所不能保证的复杂的参照完整性和 数据一致性。 建立一个 update 触发器(T2):在数据库 jiajiaoxinxi 的 worker 表中的教员编号是 家教信息系统 - 12 - 唯一且不可改变的,创建触发器 T2 实现更新中编号的不可改变性,输入如下语句: use jiajiaoxinxi go create trigger T2 on jiaoyuan for update as if update(jiaoyuanid) begin print every jiaoyuanid cannot be changed rollback transaction end 将教员编号为“0004”的教员性别改为“男” ,输入如下语句。 use jiajiaoxinxi update jiaoyuan set jiaoyuanid=0004 where xingbie=男 图3-15 更新触发器 分析:更新数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论