数据库课程设计报告课程名称:学校家教服务管理系统专业班级:信管102班学生姓名:学号:指导老师:2013年1月2一绪论1.1问题描述1.2开发的目的二家教服务管理系统分析2.1需求分析2.2系统功能结构2.3系统概要设计2.4数据流图2.5业务流程图2.6数据流程图2.7数据字典三数据库设计3.1数据库概念结构设计3.2全局E-R图四逻辑设计4.1转换关系模式4.2分析范式级别五数据库的实现六总结3一、绪论题目:学校家教服务管理系统学校家教服务管理系统实现教师信息、职业类型管理;实现职业登记(职业号、名称、地址、电话等);实现职业作息登记(职业号、日期、开始时间、结束时间、教师);实现工资管理和收费管理;创建存储过程统计指定日期范围内各的时刻时间总和;创建存储过程统计各种职业的需求次数;创建check约束限制教师性别必须输入‘男’或‘女’;建立表间关系。(1)实现教师信息、职业类型管理;(2)实现职业登记(职业号、名称、地址、电话等);(3)实现职业作息登记(职业号、日期、开始时间、结束时间、教师);(4)实现工资管理和收费管理;(5)创建存储过程统计指定日期范围内各的时刻时间总和;(6)创建存储过程统计各种职业的需求次数;(7)创建check约束限制教师性别必须输入‘男’或‘女’;(8)建立表间关系。1.1问题描述这是一个学校家教服务管理系统,要通过这个系统实现对学校家教服务管理,明确学校中每个家教教师的基本信息,包括姓名、性别、电话所教科目的具体信息的简介。在这个系统中,可以查询每个教师的作息时间、工资、教师的家教收费情况等信息,有利于更好地了解这些家教的基本情况,选择适合自己的老师,也有利于学校对这些教师的统一管理。1.2开发的目的只需很少的管理人员就可以完成很多的人家教需求任务,使得家教管理更加规范化、科学化,人性化,同时还能够动态掌握教员和学员的信息,及时统计相关数据,为家教管理单位提供决策依据,既减少了人员的组织与花费,又提高了家教的服务水平和质量。二家教服务管理系统分析42.1需求分析随着科技的发展和信息技术的日益普及,很多家长抱着望子成龙的心态,不遗余力的为孩子找合适的家教,而很多在校大学教师也希望通过当家教增加一点经济收入,基于这一点家教服务系统将给学校提供更好的管理系统,使学生更加了解教师,也通过这个系统使学校对于教师方便管理,满足几方面的要求.实现家教学校管理者对家教个人信息、职业情况、工作时间,工资结算地方便有效地管理。2.2系统功能结构本系统为家教服务提供了一个平台,是学校能在本系统中更好地管理家教教师,也使要做家教的老师能够更好的把自己展现给大家,供大家选择。系统的功能主要包括:(1)家教可以在系统中详尽的介绍自己,使自己以被选择。(2)学校可以对家教老师的工资实行统一的管理。(3)学校可以对家教老师的收费情况进行管理调整,尽量满足大家的需求。(4)学校可以通过老师提供的作息时间更好的安排老师并有利于学生做出选择。2.3系统概要设计52.4数据流图学校家教服务管理系统家教情况简介模块家教职业登记模块家教作息情况概述家教收费情况模块家教工资情况模块62.5业务流程图家教情况简介家教收费情况家教工资情况家教职业登记家教作息登记职业号名称地址电话开始时间结束时间教师日期职工号工资开始时间结束时间收费职业号姓名科目年龄电话性别家教服务管理系统教师登记信息教师信息授课安排作息表工资核算工资表管理员72.6数据流程图2.7数据字典(1)数据结构及数据项的描述数据结构编号:S001数据结构名称:教师数据结构含义:做家教的员工数据结构组成编号名称含义类型长度取值范围取值含义S00101姓名nvarchar8————教师真实姓名S00102性别nchar2(男、女)教师性别S00103科目nvarchar30————教师所教课程S00104地址nvarchar50————住址S00105电话varchar15————教员的联系电话数据结构编号:S002教师P001职业登记D1教师职业表P003授课安排P002教师信息表D22信息登记作息表D22P004收费统计D4收费表P005工资核算D5工资表管理员8数据结构名称:职业信息数据结构含义:教师所教课程数据结构组成编号名称含义类型长度取值范围取值含义S00201职业号nvarchar8————S00202名称nvarchar8————教师真实姓名S00203地址nvarchar50————住址S00204电话varchar15————教员的联系电话数据结构编号:S003数据结构名称:职工作息数据结构含义:教师的授课安排数据结构组成编号名称含义类型长度取值范围取值含义S00301职业号nvarchar8————S00302开始时间datetime15————教师开始教课时间S00303结束时间datetime15————教师结束教课时间S00304工作时间datetime15————教师工作时间S00305日期datetime15————上课日期数据结构编号:S004数据结构名称:收费数据结构含义:收费管理数据结构组成编号名称含义类型长度取值范围取值含义S00401开始时间datetime15————教师开始教课时间S00402结束时间datetime15————教师结束教课时间S00403费用nvarchar10————数据结构编号:S005数据结构名称:工资数据结构含义:教师所挣的工资数据结构组成编号名称含义类型长度取值范围取值含义S00501职业号nvarchar8————S00502工资nvarchar10————教师所挣的工资(2)数据流描述1.数据编号:D0019数据流名:职业登记简述:登记家教所必需的信息组成:职业号、名称、地址、电话2.数据编号:D002数据流名:教师信息简述:登记家教所必需的信息组成:姓名、性别、电话、科目、地址3.数据编号:D003数据流名:职工作息简述:登记家教所必需的信息组成:开始时间、结束时间、日期、职工号、工作时间4.数据编号:D004数据流名:收费简述:登记家教所必需的信息组成:开始时间、结束时间、费用5.数据编号:D005数据流名:工资简述:登记家教所必需的信息组成:职工号、工资(3)数据存储描述数据存储编号:D1数据存储名称:教师职业表简述:管理人员登记的教师职业信息数据存储组成:职业号、名称、地址、电话数据存储编号D2数据存储名称:教师信息表简述:管理员登记的教师基本信息数据存储组成:姓名、性别、电话、科目、地址数据存储编号:D3数据存储名称:作息表简述:教师主要信息和资料数据存储组成:开始时间、结束时间、日期、职工号、工作时间数据存储编号:D4数据存储名称:收费表简述:管理员向用户收取的各项费用数据存储组成:开始时间、结束时间、费用10数据存储编号:D5数据存储名称:工资表简述:根据教师的授课安排进行工资核算数据存储组成:职工号、工资(4)处理过程的描述处理逻辑编号:P001处理逻辑名称:职业登记简述:对教师所教课程进行登记处理描述:教师所教职业进行登记,登记职工号、名称、地址和电话等处理逻辑编号:P002处理逻辑名称:信息登记简述:对教师基本信息进行登记处理逻辑编号:P003处理逻辑名称:授课安排简述:根据教师信息表和教师职业表对教师的授课进行安排处理逻辑编号:P004处理逻辑名称:收费统计简述:根据教师和其授课时间进行收费管理处理逻辑编号:P005处理逻辑名称:工资核算简述:根据收费表对教师的工资进行核算三、数据库设计3.1数据库概念结构设计根据需求分析,该家教服务系统中实体包括:教师职业登记工资收费职工作息;局部E-R图设计如下:11收费开始结束费用工资教师职工号工资教师姓名性别电话科目地址职业登记职业号号号名称电话地址123.2全局E-R图教师姓名性别电话科目地址职业作息工作职业登记职业号名称地址电话职工作息职业收费关系开始结束费用工资反映附属职工号工资职工作息工作时间日期开始结束职工号13四、逻辑设计4.1转换关系模型第一步:把五个实体类型转换成五个模式:教师(姓名、性别、电话、科目、地址)职业登记(职业号、名称、地址、电话)职工作息(开始时间、结束时间、日期、职工号、工作时间)收费(开始时间、结束时间、费用)工资(职工号、工资)第二步:对于1:1联系“反映”,可在“收费”模式中加入教师职工号(职工号为外键)。对于1:N联系“关系”,可以在“职工作息”模式中加入职业号属性(职业号外键)。对于1:1联系“附属”,可以在“工资”模式中加入姓名属性(姓名为外键)。对于1:N联系“工作”,可以在“收费”模式中加入职工号属性(职工号为外键)。这样第一步得到的三个模式的形式如下:教师(职工号,姓名,性别,学校、科目)工资(职工号、工资、姓名·)收费(开始时间、结束时间、费用、职工号)职业登记(职业号、电话、名称、地址)职工作息(开始时间、结束时间、日期、职工号、工作时间、职业)第三步:对于M:N联系“职业”则生成一个新的关系模式:职业(职工号、名称)这样形成以下六个模式:教师(姓名、性别、电话、科目、地址、职工号)工资(职工号、工资、姓名)收费(开始时间、结束时间、费用)职业登记(职业、电话、名称、地址、职工号)职工作息(开始时间、结束时间、日期、职工、工作时间)职业(职工号、名称)4.2分析范式级别分析,关系模式的每个关系都是不可再分的原子值,即为第一范式,又因为每非主属性都不传递依赖于模式的候选键,因此该模式集为第三范式。14五、数据库的实现学校家教服务管理系统createdatabase家教管理createtable教师信息表(职工号intnotnullprimarykey,姓名char(10),性别charcheck(性别='男'or性别='女'),电话char(15),科目char(15),地址char(20))createtable职业登记表(职业char(20)primarykey,电话char(20),名称char(10),地址char(20))createtable职工作息表(职工号int,开始时间char(15),结束时间char(15),工作时间intprimarykey日期char(15))createtable收费表(职工号int,开始时间char(15),结束时间char(15),收费intprimarykey)createtable工资表(职工号intnotnullprimarykey,工资decimalchar(10))创建存储过程统计各种职业的需求次数;createprocp_管理系统1(@职业char(20))15asselect职业,count(*)as需求次数from职业登记表where职业=@职业groupby职业go创建存储过程统计指定日期范围内各的时刻时间总和;createprocp_管理系统2(@日期char(15))asselect工作时间,count(*)as时刻总和from职工作息表where日期=@日期groupby工作时间go1617建立表间关系六、总结三周的课程设计很快就过去了,通过这次的课程设计,我们有很多的心得体会,数据库课程设计主要的目标是利用课程中学到的数据库知识和技术较好的开发设计出数据库应用系统,去解决各行各业信息化处理的要求。通过这次的课程设计,加深了我们对数据库基本原理和基础理论的理解,巩固了对系统分析与设计的应用,掌握数据库应用系统设计开发的基本方法,进一步提高我们综合运用所学知识的能力。首先是做这个系统概述、系统目标、系统需求、业务流程分析、数据流程分析和数据词典。接下来是画Er图,写程序,实现数据库的建设等。但我们发现这其中需要的很多知识我们没有接触过,上网查找资料的时候发现我们以前所学到的仅仅是皮毛,还有很多需要我们掌握的东西我们根本不知道。同时也发现有很多已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要自己不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。在这