在线问卷调查系统

课 程 设 计 报 告 课程设计名称:
系 部:
学生姓名:
班 级:
学 号:
成 绩:
指导教师:
开课时间:
学年 学期 一、设计题目:在线问卷调查系统 二、主要内容 Ø 组织者负责调查信息输入,包括问题序号、具体问题以及选择项的输入。

Ø 组织者能查看调查情况,能够查看所有的调查信息,能够查看指定问题序号的问题调查统计信息。

Ø 被调查者用给定随机号〔不用实名〕进入系统,能够查看调查问题并进行答。

Ø 假设问题较多〔如需调查150个问题〕,在线参与调查人员较多〔如500个并发用户〕,那么在数据库的选择及设计上应作哪些具体策略保证在线调查能顺利进行。

三、具体要求 1. 课程设计的内容独立自主完成,课程设计报告内容完整、格式标准、排版整洁美观;

2. 后台数据库采用MS SQL SERVER2005,前台界面语言不限,编写的程序代码,须有较详细的注释说明;

四、进度安排 课程设计安排:
16周 星期一 讲解课程设计的内容,安排每一天的具体任务,分配并熟悉题目;

星期二 需求分析:给出系统的功能需求、性能需求,并绘制DFD和DD;

星期三 概念结构设计:绘制实体属性图〔可选〕,局部ER图和全局ER图;

星期四 逻辑结构设计:转换、优化、外模式的设计;

星期五 物理结构设计及数据库实施;

17周 星期一 应用程序编制调试、整理课程设计报告,并检查;

星期二 根据反应结果修改课程设计;

星期三 提交作业 上交的材料:课程设计的电子稿、打印稿、源码〔SQL代码和程序代码〕 五、成绩评定 考核方法:现场验收〔占50%〕,课程设计报告〔占50%〕。

考核内容:学习态度〔出勤情况,平时表现等〕、方案合理性、各阶段的图表与程序编制质量、设计报告质量。

成绩评定:优,良,中,及格,不及格。

特别说明:〔1〕如发现抄袭,按照不及格处理。

〔2〕材料不齐的,考核等级降一级。电子稿件以压缩文件的形式上交,压缩命名为:11位学号+姓名 1、需求分析 1.1本系统的设计的主要功能 创立问卷、修改问卷、查看问卷、查看调查用户信息,查看调查结果等。组织者负责调查信息输入,包括问题序号、具体问题以及选择项的输入,并且能查看调查情况,能够查看所有的调查信息,能够查看指定问题序号的问题调查统计信息。被调查者用给定随机号〔不用实名〕进入系统,能够查看调查问题并进行答复。考虑到调查问题较多,在线参与调查人员较多,那么考虑将问卷分为几份,被调查者随机答复一份问卷。图1.1详细描述了该系统的数据流图。

组织者 输入修改问题 创立 用户 查看 结果 信息库 统计信息信息星 题库 随机号 登入 做题 问卷 被调 查者 图1.1在线问卷调查系统数据流图 1.2数据字典 数据项 数据项名 数据项含义说明 数据类型 数据长度 zzzbh 组织者编号 char 20 zzzxm 组织者姓名 char 8 zzzxb 组织者性别 char 8 zzznl 组织者年龄 int   zzzbz 组织者备注 char 100 tmnr 题目内容 char 100 tmxx 题目选项 char 40 tmth 题目题号 char 8 bdczbh 被调查者编号 char 20 bdczxb 被调查者性别 char 8 bdcznl 被调查者年龄 int   bdczxm 被调查者姓名 char 8 wjxh 问卷序号 char 8 wjbt 问卷标题 char 8 数据结构 数据结构名 含义说明 组成 zzzxx 组织者信息 zzzbh,zzzxm,zzzxb,zzznl,zzzbz tm 题目 tmxh,tmnr,tmxx,tmth wj 问卷 wjxh,wjbt bdczxx 被调查者信息 bdczbh,bdczxb,bdcznl,bdczxm 数据流 数据流名 含义说明 数据流来源 数据流去向 随机号登入 用随机号登入 被调查者 做题 数据存储 数据存储名 输入数据流 组成 统计信息 被调查者所完成问题答案 题号、被调查者编号、答案 题库 所有待调查问题 题目题号、内容、选项 信息库 用户信息 被调查者编号、姓名、性别、年龄 数据处理 数据处理名 输入 输出 处理 输入修改问题 组织者 题库 输入修改所需被调查问题 查看结果 组织者 统计信息 查看调查问题结果 创立用户 组织者 信息库 创立随机号,录入被调查者信息 做题 被调查者 问卷 答复问卷 2、概念结构设计 根据在线问卷调查系统的根本关系,分别找出实体:被调查者,问卷,题目,并且确定他们之间的联系以及他们各自的属性。建出如图2.1所示的E-R图。

题号 选项 内容 问卷组成 题目 n n 问卷 序号 答复 结果 答案 m 做题 m 问 卷 标题 m n 被调 查者 性别 编号 姓名 年龄 图2.1E-R图 3、逻辑结构设计 3.1将上面的E-R图转换为相应的关系模型 被调查者信息〔编号,姓名,性别,年龄〕 主码:编号 题目〔题号,内容,选项〕 主码:题号 问卷〔问卷序号,标题〕 主码:问卷序号 问卷组成〔问卷序号,题号〕 主码:问卷序号+题号 外码:问卷序号,题号 做题〔被调查者编号,问卷序号〕 主码:被调查者编号+问卷序号 外码:被调查者编号,问卷序号 答复结果〔题号,答案,被调查者编号〕 主码:题号+答案+被调查者编号 外码:题号,被调查者编号 3.2对数据模型进行优化 根据题目要求判断出被调查者信息表为BCNF,问卷表为BCNF,题目表为BCNF,问卷组成表为BCNF,做题表为BCNF,答复结果表为BCNF。

4、物理结构设计 4.1物理结构设计主要是建立索引。通过索引来提高数据查询性能。索引虽然可以提高数据查询性能,但同时也会降低数据修改性能。考虑到问卷序号,题号,被调查者编号经常被作为表的连接条件,考虑在这些属性上建立索引。

4.2根据本系统的要求,该在线问卷调查系统需要建立多个查询过程。在查询被调查者答复结果时,组织者需要输入查询的内容,所以要建立变量将值放入变量中然后建立存储过程进行查询。在被调查者查看问卷时也是建立存储结构进行查看问卷,因此在本系统中要建立多个存储结构才能实现必要的功能实现。被调查者登陆系统的时候,被调查者要输入登入编号。组织者登入时也需输入信息,登陆后可以进行查询所有调查信息,所以需分别授予相应权限给组织者和被调查者。

5、数据库实施及应用程序编制 用MS SQL SERVER2005建立数据库结构,此数据库我取名为:dbs206,加载〔测试/虚拟〕数据,能表达对数据库的保护〔平安性和完整性控制等〕。实现各种查询、链接应用程序并能对数据库做简单的维护操作。

建立数据库 create database dbs206 建立被调查者信息表 create table bdczxx( bdczbh char(20), bdczxm char(8), bdczxb char(8), bdcznl int, primary key(bdczbh)) 建立组织者信息表 create table zzzxx( zzzbh char(20), zzzxm char(8), zzzxb char(8), zzznl int , zzzbz char(100) primary key(zzzbh)) 建立问卷表 create table wj( wjxh char(8) primary key, wjbt char(8)) 建立题目表 create table tm( tmth char(8), tmxx char(40), tmnr char(100), primary key(tmth)) 建立问卷组成表 create table wjzc( wjxh char(8), tmth char(8), primary key(wjxh,tmth)) 建立做题表 create table zt( wjxh char(8), bdczbh char(20), primary key(wjxh,bdczbh)) 建立答复结果表 create table hdjg( bdczbh char(20), tmth char(8), da char(100)) 为wj表中的wjxh建立索引 create index wj_ind on wj(wjxh) 为tm表中的tmth建立索引 create index tm_ind on tm(tmth) 为bdczxx表中的bdczbh建立索引 create index bdczxx_ind on bdczxx(bdczbh) 组织者输入组织者信息 create procedure srzzzxx @zzzbh char(20), @zzzxm char(8), @zzzxb char(8), @zzznl int , @zzzbz char(100) as insert into zzzxx(zzzbh,zzzxm,zzzxb,zzznl,zzzbz) values(@zzzbh,@zzzxm,@zzzxb,@zzznl,@zzzbz) 建立存储过程zzzdenglu,当组织者登陆时,根据组织者登陆编号,进入系统。

create procedure zzzdenglu @zzzbh char(20), @zzzxm char(8) as select @zzzbh=zzzbh from zzzxx where zzzxm=@zzzxm 组织者输入题目 create procedure srtm @tmth char(8), @tmxx char(40), @tmnr char(100) as insert into tm(tmth,tmxx,tmnr) values(@tmth,@tmxx,@tmnr) 组织者输入问卷信息 create procedure srwj @wjxh char(8), @wjbt char(8) as insert into wj(wjxh,wjbt) values(@wjxh,@wjbt) 组织者创立用户信息 create procedure cjyhxx @bdczbh char(20), @bdczxm char(8), @bdczxb char(8), @bdcznl int as insert into bdczxx(bdczbh,bdczxm,bdczxb,bdcznl) values(@bdczbh,@bdczxm,@bdczxb,@bdcznl) 建立存储过程bdczdenglu,当被调查者登陆时,根据编号,年龄,性别在被调查者信息表中查找该用户,如果该用户存在,进入系统。

create procedure bdczdenglu @bdczbh char(20), @bdczxm char(8), @bdcznl int, @bdczxb char(8) as select @bdczbh=bdczbh from bdczxx where bdczxm=@bdczxm and bdczxb=@bdczxb and bdcznl=@bdcznl 被调查者查看问卷 create view ckwj as select tm.tmth,tmnr,tmxx from wjzc join tm on wjzc.tmth=tm.tmth join wj on wjzc.wjxh=wj.wjxh where wj.wjxh='wjxh' 被调查者答卷结果 create procedure djjg @bdczbh char(20), @tmth char(8), @da char(100) as insert into hdjg(bdczbh,tmth,da) values(@bdczbh,@da,@tmth) 组织者查看被调查者信息 create procedure ckbdczxx @bdczbh char(20) as select bdczxm,bdczxb,bdcznl from bdczxx where bdczbh='@bdczbh' 组织者查看题目信息 create procedure cktmxx @tmth char(8) as select tmxx,tmnr from tm where tmth=@tmth 组织者查看调查问题结果 create procedure ckdcwtjg @tmth char(8) as select bdczbh,da from hdjg where tmth=@tmth 授予权限 create login zzzxm with password='password' create user zzzxm for login zzzxm grant select,insert,update on tm to zzzxm grant select,insert,update on wj to zzzxm grant select,insert,update on zzzxx to zzzxm grant select,insert,update on wjzc to zzzxm grant select,insert,update on bdczxx to zzzxm grant select on zt to zzzxm grant select on hdjg to zzzxm create login bdczbh with password='password' create user bdczbh for login bdczbh grant select,insert,update on hdjg to bdczbh grant select on zt to bdczbh grant select on tm to bdczbh grant select on wj to bdczbh 6、心得体会 通过这次课程设计,我独立地进行了一个完整的具有一定规模的数据库管理系统的设计和实践,是对于本学期理论知识学习的一次很好的运用和检验。不仅拓宽了自己的知识面,还在实践中稳固和加深了自己所学的理论知识,使自己的技术素质和实践能力有了进一步的提高,同时我的专业水平有了一定的进步。

在此次课程设计中,我设计的题目是在线问卷调查系统,这对我来说是一次尝试和创新的过程。但由于我缺乏实践的练习与经验,刚开始着手有些困难,不知道设计的方向。通过查阅资料,并且向指导老师与同学请教后,渐渐有了设计的方向、思路和方法。

在SQL语言的实现方面,由于之前实验课的练习,上手相比照拟方便,但在此过程中,需要更多细心、耐心,并与此前所做的概念设计,逻辑、物理结构设计相一致,保证程序的使用价值。在具体的设计与实施中,我感受到了一个管理系统从无到有的过程,对具体的设计步骤、思路、方法、技巧都有了进一步的了解,并感受深刻。

总体而言,本次课程设计是对本学期学习过程的一次检验,是学习收获的运用实践,是学习成果的展示,是一次珍贵的实践经历,对未来的职业生涯有了很大的帮助。

7、参考资料 [1] ?数据库系统概论?王珊 萨师煊 高等教育出版社 [2] ?数据库原理与应用?何玉洁 梁琦 机械工业出版社