《大学生心理健康监测与辅导网络平台数据库课程设计.doc》由会员分享,可在线阅读,更多相关《大学生心理健康监测与辅导网络平台数据库课程设计.doc(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流大学生心理健康监测与辅导网络平台数据库课程设计.精品文档.数据库课程设计目 录1 引言11.1课题来源1本课程设计题目为,通过数据库系统课程设计,熟悉了关系型数据库管理系统的结构与组成;掌握了数据库管理系统的应用技术和的使用;进行数据库系统的管理与维护。最终达到掌握数据库管理系统的使用和开发,提高分析问题、解决问题和实践应用能力。11.2课题研究主要内容11.3主要工作11.4术语定义12 命名约定22.1物理命名约定22.2数据实体命名约定23 需求分析23.1信息要求分析23.2处理要求分析3用例图:3角色:心理工作者6数据流图:143.
2、3数据字典及安全性、完整性要求分析144 概念结构设计174.1数据实体描述及分ER图174.2整体ER图195 系统概要设计195.1数据库逻辑结构设计195.2数据库物理设计20数据库的结构、系统的大小、索引的设定、使用与管理、数据分布、数据存储方面的考虑、数据设备的设计,与用途的说明等20数据库表设计215.3系统总体框架226 系统详细设计236.1数据库实施236.2数据库的数据完整性设计266.3数据的安全设计276.4系统功能模块的设计与实现286.5系统功能测试366.6数据库性能检测与备份设计436.7系统安装使用说明437 回顾与展望43参考文献441 引言1.1课题来源本
3、课程设计题目为,通过数据库系统课程设计,熟悉了关系型数据库管理系统的结构与组成;掌握了数据库管理系统的应用技术和的使用;进行数据库系统的管理与维护。最终达到掌握数据库管理系统的使用和开发,提高分析问题、解决问题和实践应用能力。1.2课题研究主要内容主要研究大学生心理健康监测与辅导网络平台的构建和管理,方便学校对学生心理状况的了解,帮助对学生的心理健康状况进行观察,有利于及早发现学生的心理问题,及早预防学生心理疾病的发生。随着计算机技术的发展和互联网时代的到来,人们已经进入了信息时代,亦或是数字化时代。在此环境下,研究开发一款,适合学生使用的网络应用软件,同时满足心理健康教育和辅导工作者对同学们
4、的心理状况进行总体上的认识,方便心理健康教育的开展,提高心理健康教育的针对性。1.3主要工作研究大学生心理健康监测与辅导的一般工作过程,并将其具体到该平台上研究大学生心理健康监测与辅导设计的数据及其关系数据库设计网络后台开发Android客户端开发1.4术语定义说明本文档使用的术语的定义Spring:一个轻量级的Java Web开发框架2 命名约定2.1物理命名约定心理问卷:一份含多个心理问题和答案选择的问卷心理教育工作者:从事学生的心理状况的分析和对学生进行心理方面的教育,以改善学生的心理状态的人。心理辅导工作者:从事心理疾病的预防和治疗的人心理工作者:包含心理教育工作者和心理辅导工作者平台
5、管理者:管理该平台的心理工作者的账号数据的人大学生:正在大学接受教育的人学生:代指大学生2.2数据实体命名约定说明概念模型和逻辑设计中数据实体的命名约定。如:表名、索引名等问卷(Paper):代表心理问卷问题(Question):心理问卷中的问题,一个心理问卷有不限数量个问题选项(Option):问题中的选项、一个问题有不限数量的选项3 需求分析3.1信息要求分析指出用户需要从数据库中获得的信息内容与性质。由此到处数据库中需要存储哪些数据由于大学生心理健康监测与辅导网络平台主要为监测大学生的心理健康状况和分析大学生的心理状况,所以必须保存大学生的基本数据,如学号、姓名等,由于需要对大学生心理状
6、况有一个数据化,或指标化的表现,所以,需要心理工作者设计出心理问卷,及选项和选项对应的分数。因此,需要存储问卷的基本信息。由于大学生需要填写心理问卷,并应该记录该信息,供心理工作者进行使用 ,所以需要对大学生填写的心理问卷内容进行保存。由于心理教育工作者和心理辅导工作者对大学生心理问卷数据进行分析观测,并且使用大学生的基本信息,但大学生的基本信息及填写的心理问卷内容不可公开,必须受到保护,所以心理教育工作者和心理辅导工作者必须得到验证,为此需要保存心理教育工作者和心理辅导工作者的基本信息。由于需要对学生的账号和心理工作者的账号进行管理,所以需要有一些特殊的账号用于管理学生和心理工作者的账号。所
7、以需要保存这些管理者的账号信息。3.2处理要求分析说明用户要完成什么处理功能,对响应时间有什么要求,给出用例图、数据流图等分析图表用例图:角色:大学生用户注册功能用户注册简要说明大学生注册自己在该平台上的账号前置条件无事件流基本流1、 用户点击注册2、 用户填写基本信息3、 用户点击提交信息4、 显示提示信息备选流3a用户点击退出,返回前界面后置条件生成学生账号申请表备注无用户登录功能用户登录简要说明大学生登录自己在该平台上的账号前置条件账号审核通过事件流基本流1、 用户点击登录2、 用户填写账号和密码3、 用户选择学生登录4、 点击登录5、 显示提示信息备选流无后置条件登录成功后,学生可点击
8、填写问卷按钮,进行问卷填写备注无填写问卷功能填写问卷简要说明大学生填写心理问卷前置条件已登录事件流基本流1、 用户点击填写问卷2、 用户填写问卷答案3、 用户点击提交4、 显示提示信息备选流无后置条件生成问卷信息表,并保存备注无用户退出功能用户退出简要说明大学生退出登录的账号前置条件账号已登录事件流基本流1、 用户点击退出2、 显示提示信息备选流无后置条件无备注无角色:心理工作者用户注册功能用户注册简要说明心理工作者注册自己在该平台上的账号前置条件无事件流基本流1、 用户点击注册2、 用户填写基本信息3、 用户点击提交信息4、 显示提示信息备选流3a用户点击退出,返回前界面后置条件生成心理工作
9、者账号申请表备注无用户登录功能用户登录简要说明心理工作者登录自己在该平台上的账号前置条件账号审核通过事件流基本流1、 用户点击登录2、 用户填写账号和密码3、 用户选择心理工作者登录4、 用户点击确定5、 显示提示信息备选流无后置条件登录成功后,可进行其他心理工作备注无用户退出功能用户退出简要说明大学生退出登录的账号前置条件账号已登录事件流基本流3、 用户点击退出4、 显示提示信息备选流无后置条件无备注无设计问卷功能设计问卷简要说明心理工作者设计心理问卷前置条件已登录事件流基本流1、 用户点击设计问卷2、 用户填写心理问卷问题及选项、选项分数3、 用户点击提交4、 显示提示信息备选流无后置条件
10、生成心理问卷备注无查看学生信息功能查看学生信息简要说明查看学生基本信息,以及学生填写的问卷的概括信息前置条件心理工作者已登录事件流基本流1、 查看学生信息2、 输入学生学号,并点击确定3、 显示该学生的信息备选流2a点击查看所管理的所有学生信息3a显示所管理的所有学生的信息后置条件无备注无查看学生心理功能查看学生心理简要说明查看学生填写的心理问卷信息,以及其他相关的信息前置条件心理工作者已登录事件流基本流1、 查看学生心理2、 选择某一问卷3、 输入分数上限和分数下限,点击查询4、 显示该问卷分数在该区间的学生信息和分数备选流3a点击查看所管理的所有学生心理4a显示所管理的所有学生学生信息和分
11、数后置条件无备注无管理学生功能管理学生简要说明添加、删除、查看所管理的学生前置条件心理工作者已登录事件流基本流1、 点击管理学生2、 进入学生列表查看界面3、 选择部分学生4、 点击删除5、 显示操作结果备选流4a点击查看5a进入查看界面3b点击增加4b进入增加界面,输入学生学号,点击添加后置条件所管理的学生变更备注无心理状况统计功能心理状况统计简要说明查看所管理的所有学生的心理状况的各项统计数据,如心理优、良、中、差分别对应的学生人数前置条件心理工作者已登录事件流基本流1、 点击心理状况统计2、 选择某一问卷3、 点击统计4、 显示该心理工作者负责的所有学生的问卷分数的统计结果备选流无后置条
12、件无备注无角色:平台管理员用户登录功能用户登录简要说明平台登录自己在该平台上的账号前置条件预先已插入了平台管理员账号事件流基本流1、 用户点击登录2、 用户填写账号和密码3、 用户选择平台管理员登录4、 点击登录5、 显示提示信息备选流无后置条件登录成功后,可进行该平台用户的管理工作备注无审核用户功能审核用户简要说明审核该平台上的心理工作者前置条件平台管理者已登录事件流基本流1、 用户点击审核用户2、 显示某一未审核过的心理工作者申请表3、 点击审核通过4、 显示提示信息5、 点击继续审核,跳转到2,选择返回,回到前一页面,结束备选流2a如果无未审核的心理工作者,跳转到4后置条件审核通过的心理
13、工作者账号,可以登录,并开展工作备注无用户退出功能用户退出简要说明平台管理者退出登录的账号前置条件账号已登录事件流基本流1、 用户点击退出2、 显示提示信息备选流无后置条件无备注无管理用户功能管理用户简要说明管理心理工作者的账号,包括增、删、查、改前置条件账号已登录事件流基本流1、 用户点击管理用户2、 显示所有心理工作者的概述信息3、 点击其中一个心理工作者4、 系统显示该心理工作者信息5、 在此界面上修改信息,点击保存6、 保存并退出当前界面备选流3a、点击增加按钮4a、显示增加心理工作者界面5a、填写信息6a、点击保存,保存并返回前界面5b、点击删除6b删除该用户并退出后置条件无备注无数
14、据流图:3.3数据字典及安全性、完整性要求分析确定大致的模块分类与人机界面之后,给出数据字典,以及对应的安全性的完整性要求。1、 数据流的描述序号数据流名来源流向组成说明1填写问卷学生填写问卷学号2查看学生心理心理工作者查看某学生的心理问卷信息操作学号3管理学生心理工作者查看、修改所管理的学生信息操作心理工作者编号+学号4设计问卷心理工作者设计问卷操作心理工作者编号5查看学生信息心理工作者查看某学生的信息心理工作者编号+学号6管理学生心理工作者查看自己管理的学生信息操作心理工作者编号7心理状况统计心理工作者心理状况统计心理工作者编号+问卷编号+分数范围8管理用户平台管理者查看心理工作者信息操作
15、序号数据文件文件组成关键标识组织1学生信息学号+学生姓名+出生年月+性别学号降序排序2心理工作者信息心理工作者编号+姓名+出生+性别心理工作者编号3问卷信息问卷编号+心理工作者编号+问卷问题+加选项+选项分数问卷编号4学生问卷学号+问卷编号+选择选项学号+问卷编号2、 加工定义表序号处理过程输入输出处理逻辑1填写问卷学号所有该学生未填写的教师的问卷信息根据学号得到对应的教师,该教师的问卷-该学生已填写的问卷2设计问卷操作心理工作者编号+问卷信息无自动生成问卷编号,并根据此编号插入问题,对应选项,对应分数3心理状况统计心理工作者编号+问卷编号所有管理的学生的学号+问卷分数+分数范围获取该心理工作
16、者的学生,在获取这些学生的分数在分数范围内的学生信息和分数3、 数据项序号数据项数据类型长度取值范围1学号字符102姓名字符43出生日期日期4性别字符1男/女5密码字符6心理工作者编号字符107问卷编号整型8问卷说明字符509问题编号整型10问题内容字符5011问题选项编号整型12问题选项内容字符3013问题选项分数整型14平台管理员账号字符1015电话字符114 概念结构设计4.1数据实体描述及分ER图数据实体中文名、数据实体描述,详细的各个分部ER图,包括属性实体1、 大学生实体属性有:学号、姓名、出生年月、性别。2、 心理工作者实体属性有:心理工作者编号、姓名、性别、出生年月、电话。3、
17、 平台管理者的实体属性有:平台管理者账号、密码。4、 心理问卷的实体属性:问卷编号、问卷说明5、 问卷问题的实体属性:问题编号、问题内容6、 问题选项的实体属性:问题选项编号、问题选项内容、问题选项分数图1 “心理问卷-问卷问题”实体间的关系图2 “问卷问题-问题选项”实体间的关系图3 “大学生-心理问卷”实体间的关系图4 “心理工作者-心理问卷”实体间的关系图5 “平台管理者-心理工作者”实体间的关系图6 “心理工作者-大学生”实体间的关系4.2整体ER图分ER图向整体ER图合并,说明合并过程中是否消除了冲突5 系统概要设计5.1数据库逻辑结构设计ER图向逻辑结构转化后形成的逻辑表结构,说明
18、表结构、索引结构、约束包括主外码约束,自定义完整性约束以及表与表之间的联系将数据库的概念模型转换为关系模型:问题选项(问题选项编号,问题选项内容、问题选项分数、问题编号)问卷问题(问题编号、问题内容、问卷编号)心理问卷(问卷编号、问卷说明、心理工作者编号)填写问卷(学号、问卷编号、分数)大学生(学号、姓名、出生年月、性别)管理学生(心理工作者编号、学号)心理工作者(心理工作者编号、姓名、性别、出生年月、电话)平台管理者(平台管理者账号、密码)带下划线的属性为各关系模式的外码,字体为粗体的属性为各关系模式的主码。关系规范式 :大学生心理健康监测与辅导网络平台1NF 每个属性均不可再分5.2数据库
19、物理设计数据库的结构、系统的大小、索引的设定、使用与管理、数据分布、数据存储方面的考虑、数据设备的设计,与用途的说明等序号数据项列名数据类型允许空备注1学号student_numvarchar(10)否2姓名namevarchar(10)否3出生日期birthdaydate否4性别sexvarchar(1)否m(男)/f(女)5密码passwordvarchar(50)否加密后的密码6心理工作者编号work_numvarchar(10)否7问卷编号paper_numint否8问卷说明paper_instructionsvarchar(50)否9问题编号question_numint否10问题内
20、容question_contentvarchar(50)否11问题选项编号option_numint否12问题选项内容option_contentvarchar(50)否13问题选项分数option_gradeint否14平台管理员账号manager_numvarchar(10)否15电话phonevarchar(11)否数据库表设计序号关系名表名包含列1问题选项optionoption_numoption_contentoption_gradequestion_num2问卷问题questionquestion_numquestion_contentpaper_num3心理问卷paperpap
21、er_numpaper_instructionswork_num4填写问卷write_paperstudent_numpaper_numgrade5大学生studentstudent_numnamebirthdaysexpasswordstate6管理学生manage_studentwork_numstudent_num7心理工作者workwork_numnamebirthdaysexpasswordphonestate8平台管理者managermanager_numpassword5.3系统总体框架模块结构、功能的说明,给出系统结构图手机客户端:是安装在android平台上的一个与本平台交互
22、的应用服务器:是接收手机客户端的请求并返回特定格式数据的个体数据库:保存了该平台的相关数据6 系统详细设计6.1数据库实施DDL语句编写数据库逻辑对象,装载数据过程,视图设计,存储过程设计,触发器设计创建表:创建选项表:CREATE TABLE pmh.option ( option_num INT NOT NULL AUTO_INCREMENT, option_content VARCHAR(50) NOT NULL, option_grade INT NULL DEFAULT 0, question_num INT NOT NULL, PRIMARY KEY (option_num);创建
23、问题表:CREATE TABLE pmh.question ( question_num INT NOT NULL AUTO_INCREMENT, question_content VARCHAR(50) NOT NULL, paper_num INT NOT NULL, PRIMARY KEY (question_num);创建问卷表:CREATE TABLE pmh.paper ( paper_num INT NOT NULL AUTO_INCREMENT, paper_instructions VARCHAR(50) NOT NULL, work_num INT NOT NULL, PR
24、IMARY KEY (paper_num);创建填写问卷表:CREATE TABLE pmh.write_paper ( student_num INT NOT NULL, paper_num INT NOT NULL, grade INT NULL DEFAULT 0, PRIMARY KEY (student_num, paper_num);创建大学生管理表:CREATE TABLE pmh.manage_student ( work_num VARCHAR(10) NOT NULL, student_num VARCHAR(10) NOT NULL, PRIMARY KEY (work_
25、num, student_num);创建大学生基本信息表:CREATE TABLE pmh.student ( student_num VARCHAR(10) NOT NULL, name VARCHAR(10) NULL, birthday DATE NULL, sex VARCHAR(1) NULL, password VARCHAR(50) NULL, PRIMARY KEY (student_num);添加一些非空约束:ALTER TABLE pmh.student CHANGE COLUMN name name VARCHAR(10) NOT NULL ,CHANGE COLUMN
26、birthday birthday DATE NOT NULL ,CHANGE COLUMN sex sex VARCHAR(1) NOT NULL ,CHANGE COLUMN password password VARCHAR(50) NOT NULL ;添加表示大学生状态的state列:ALTER TABLE pmh.student ADD COLUMN state INT NOT NULL DEFAULT 0 AFTER password;创建心理工作者基本信息表:CREATE TABLE pmh.work ( work_num VARCHAR(10) NOT NULL, name V
27、ARCHAR(10) NOT NULL, birthday DATE NOT NULL, sex VARCHAR(1) NOT NULL, password VARCHAR(50) NOT NULL,phone VARCHAR(11) NOT NULL , PRIMARY KEY (work_num);创建平台管理者账户表:CREATE TABLE pmh.manager ( manager_num VARCHAR(10) NOT NULL, password VARCHAR(50) NULL, PRIMARY KEY (manager_num);6.2数据库的数据完整性设计实体完整性、参照完
28、整性、自定义完整性设计与实现。违反完整性约束时的解决办法,比如触发器、存储过程等创建好表后,需要在增加一些完整性约束为需要添加外键的表添加外键,因为选项并不能单独存在,所以设置级联删除,如果包含选项的问题被删除了,则选项也将会被删除,同理,问题表,问卷表,填写问卷表,管理学生表均需要设置外键,并且设置为级联删除。设置选项表外键alter table pmh.option add constraint fk_option foreign key(question_num) REFERENCES pmh.question(question_num) on update cascade设置问题表外键
29、alter table pmh.question add constraint fk_question foreign key(paper_num) REFERENCES pmh.paper(paper_num) on delete cascade设置问卷外键:alter table pmh.paper add constraint fk_paper foreign key(work_num) REFERENCES pmh.work(work_num) on delete cascade;设置填写问卷表外键:alter table pmh.write_paper add constraint
30、fk_write_paper_student_num foreign key(student_num) REFERENCES pmh.student(student_num) on delete cascadealter table pmh.write_paper add constraint fk_write_paper_paper_num foreign key(student_num) REFERENCES pmh.student(student_num) on delete cascade设置管理学生表:alter table pmh.write_paper add constrain
31、t fk_write_paper_student_num foreign key(student_num) REFERENCES pmh.student(student_num) on delete cascadealter table pmh.write_paper add constraint fk_write_paper_paper_num foreign key(student_num) REFERENCES pmh.student(student_num) on delete cascade6.3数据的安全设计用户角色划分,角色的权限设定,在数据库或者应用程序中的实施办法该平台分三种
32、角色:大学生、心理工作者、平台管理员。平台管理员账号为事先插入到数据库里的。心理工作者和学生均有一个表示状态的列state,用来标识用户的状态,心理工作者和学生注册后,并不能登录进行对应角色的功能,而必须先得到审核先,审核通过则激活该用户账号,可以登录,并且进行操作,心理工作者由平台管理者审核,而学生则通过心理工作者添加管理学生后,才可激活。登录时,只有激活的账号才可以登录。平台管理者,默认已激活,无状态位。并且角色登录后,会将登录用户保存在客户端,以后的每次操作请求,后台都先分析该用户的登录角色,相同的请求,不同用户可以有不同的处理,部分操作只能由特定角色处理的,则非该角色的用户请求该操作则
33、,不会进行处理。比如:设计问卷只有心理工作者才可以进行,那么学生和平台管理员请求该操作都无法进行。6.4系统功能模块的设计与实现各个功能模块的关键性功能的流程图,每个模块给出关键性的程序编码与说明问卷的数据插入是本平台中比较复杂的模块,因为一个问卷可以有不限数量的问题,一个问题可以有不限数量的选项,并且每个问卷、问题、选项的主码均是自增的主键,这么设计可以充分使用主码所能容纳的标识数量。所以在每次插入问卷数据时都不知道问卷的主码是多少,但问题又必须和问卷联系,所以必须获得问卷的主码,插入问题后,则需要获得问题的主码,来供问题选项的使用。关键代码:插入问卷Override public int
34、createPaper(Paper paper, String workNum) / TODO Auto-generated method stubint paperId = paperDao.createPaper(paper, workNum);/ 插入数据库一条问卷基本信息,并获得问卷编号if (paperId = 0) / 如果插入成功 for (int i = 0; i = 0) / 如果插入成功 for (int k = 0; k question.options.size(); k+) if (paperDao.createOption(question.options.get(
35、k),String.valueOf(questionId) 0) /调用插入一条选项进数据库 return FinalValue.FAIL; else / 插入失败需记录问卷信息,以后可将之前插入的问题删除 return FinalValue.FAIL; else return FinalValue.FAIL;/ 全部插入成功return FinalValue.SUCCESS;获取学生未填写的所有问卷内容:Override public List getStudentNotWritePaper(String studentNum) / TODO Auto-generated method st
36、ub/获取学生已填写的表的主键后返回String sql = select paper_num,paper_instructions from pmh.paper where(paper_num not in (+ select paper_num from pmh.write_paper where(student_num = ?);ListMap result = getJdbcTemplate().queryForList(sql,new String studentNum );List resultList = new ArrayList();for (int i = 0; i res
37、ult.size(); i+) /从数据库返回数据中填充问卷基本信息 Paper paper = new Paper(); paper.paperNum = Integer.parseInt(result.get(i).get(paper_num) .toString(); paper.instructions = result.get(i).get(paper_instructions) .toString(); resultList.add(paper);return resultList;Override public List getStudentNotWritePaper(Strin
38、g studentNum) / TODO Auto-generated method stubList papers = paperDao.getStudentNotWritePaper(studentNum);/获取学生未填写的问卷for (int i = 0; i papers.size(); i+) Paper paper = papers.get(i); paper.questions = paperDao.getQuestion(String .valueOf(paper.paperNum);/添加问卷的问题 for (int k = 0; k paper.questions.siz
39、e(); k+) paper.questions.get(k).options = paperDao.getOption(String.valueOf(paper.questions.get(k).questionNum);/添加问题的选项return papers;/返回所有未填写的问卷/与网络相关的Activity基类public abstract class HttpActivity extends BaseActivity private List requestList = new ArrayList();protected Map paramsList=new HashMap();
40、Overrideprotected void onCreate(Bundle savedInstanceState) / TODO Auto-generated method stubsuper.onCreate(savedInstanceState);/发送请求关键函数public synchronized void sendPostRequest() if (requestList.size() = 0) return;new Thread() Overridepublic void run() / TODO Auto-generated method stubfinal PostPacket pp = requestList.get(0);requestList.remove(0);try final String result = HttpUtil.doPost(ShareUtil.BASE_URL+pp.url+ShareUtil.TAIL, pp.paramsList);runOnUiThread(new Runnable() Overridepublic void run() / TODO Auto-generated