)设计用户子模式――视图设计,完成适合不同用户的子模式设计。
编号
模式
子模式
用户
作用
1
版面
版面视图
所有用户
查看包含的版块
2
帖子
主题列表视图1
所有用户
不同的用户选择不同的版块查看最新主题
主题列表视图2
主题列表视图n
不合格帖子视图
版主
删除不合格的帖子
3
用户
用户视图
各自用户
查看各自资料,并进行修改
在线用户视图
注册用户
查看所有在线用户
黑名单视图
管理员
删除被列出的用户
4
版主
版主视图
管理员
查看版主信息
5
管理员
管理员视图
管理员
查看管理员信息
2.1.3.3数据处理方面
系统的功能模块图如下:
2.1.4物理设计
2.1.4目标与任务
目标:提供存储中数据的合适结构,而且要以合适的方式对性能提供保证。
任务:
一.确定数据库的物理结构
1.确定数据的存储结构
确定数据库存储结构时要综合考虑存取时间、存储空间利用率和维护代价三方面的因素。这三个方面常常是相互矛盾的,例如消除一切冗余数据虽然能够节约存储空间,但往往会导致检索代价的增加,因此必须进行权衡,选择一个折中方案。
2.设计数据的存取路径
在关系数据库中,选择存取路径主要是指确定如何建立索引。例如,应把哪些域作为次码建立次索引,建立单码索引还是组合索引,建立多少个为合适,是否建立聚集索引等。
3.确定数据的存放位置
为了提高系统性能,数据应该根据应用情况将易变部分与稳定部分、经常存取部分和存取频率较低部分分开存放。
4.确定系统配置
DBMS产品一般都提供了一些存储分配参数,供设计人员和DBA对数据库进行物理优化。初始情况下,系统都为这些变量赋予了合理的缺省值。但是这些值不一定适合每一种应用环境,在进行物理设计时,需要重新对这些变量赋值以改善系统的性能。
通常情况下,这些配置变量包括:同时使用数据库的用户数,同时打开的数据库对象数,使用的缓冲区长度、个数,时间片大小、数据库的大小,装填因子,锁的数目等等,这些参数值影响存取时间和存储空间的分配,在物理设计时就要根据应用环境确定这些参数值,以使系统性能最优。
在物理设计时对系统配置变量的调整只是初步的,在系统运行时还要根据系统实际运行情况做进一步的调整,以期切实改进系统性能。
二.评价物理结构
数据库物理设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,其结果可以产生多种方案,数据库设计人员必须对这些方案进行细致的评价,从中选择一个较优的方案作为数据库的物理结构。
评价物理数据库的方法完全依赖于所选用的DBMS,主要是从定量估算各种方案的存储空间、存取时间和维护代价入手,对估算结果进行权衡、比较,选择出一个较优的合理的物理结构。如果该结构不符合用户需求,则需要修改设计。
2.1.4.2数据存取方面
用户表以用户名建立唯一性索引,因为用户名是独一无二的。
帖子表以帖子id号建立唯一性索引
回帖表以帖子id号建聚簇索引,用于检索某个帖子用户的所有回复。
2.1.4.3功能模块
用户注册模块:
inputmessage
checkmembertable
if(u_nameinmembertable)
outuserisinthemember,changeforothername
else
successfulmessageputintomembertable
用户登录模块:
inputnameandpassword
checkmembertalbe
if(name=u_name&password!=u_password)
fault;
else
successful
管理帖子:
checktopictable
if(topicisnotnormal)settopict_step=-1or1or0
updateTopic
管理用户帖子、管理版面帖子类似管理帖子,这里省略
发送帖子:
inputusernamecheckrizhi
if(usrnameinrizhi)
inputtopicmessageandsendouttotopictable
elsefault
回帖类似发帖(省略)
其它模块(省略)
2.1.5数据库实施
目标:完成数据库系统的建立,并使用存储过程完成数据库功能
任务:
(1)建立数据库、数据表、视图、索引等存储过程等DDL定义,并完成完整性、安全性等要求定义;可用DDL语言或SQL脚本任意一种形式表现。(见附录)
(2)数据入库
(3)完成处理过程、系统主要功能(查询、更新、简单统计等),均需要使用存储过程完成。
存储过程
编号
名称
作用
1
ChangeMyInformateion
可以用来更改用户的注册资料
2
Denglu
登录用户信息检测,并把用户名记录在日志里
3
Jinghuatie
用来检索精华帖
4
LookBM
列出所有的版面信息
5
LookBZH
查看版主信息
6
MinisterBanzhu
管理版主
7
MinsterReply
管理回复的帖子
8
Ministerbanmian
管理版面
9
MinisterTopic
管理帖子
10
MinsterUser
管理用户
11
MyInformation
查看用户自己的信息
12
Myteme
查看所有我发的主题
13
OnlineUser
查看在线用户
14
Postreply
回复帖子
15
PostTopic
发送帖子
16
Peply_Content
查看回复的信息
17
Theme
查看所有的主题
18
Theme_Content
查看主题的内容
19
Updatetopic
更新帖子
20
Updateusers
更新用户
21
Updatereply
更新回复的帖子
22
userInformation
所有用户的信息
23
Zhuce
注册用户
(存储过程见附录)
2.1.6数据库调试与试运行
(1)说明系统测试方法
本次测试主要使用黑盒测试的方法,即功能测试,输入测试数据,看输出的结果以意想的对不对
(2)测试内容,主要从功能测试和性能测试两个方面
存储过程的测试:
ChangeMyInformation'jaclieren','565689','jacshan','565689','3710167@qq.com'
DengLu'dede','3232'
executeReply_Content
executeTheme
declare@stringvarchar(1000)
executeTheme_Content@stringoutput
select'theTheme_Contentis:',@string
executeMyInformation'iiley'
postReply15,2,'我觉得Servletandjsp核心编程还可以','jacshan'
postTopic'过年了,散分了,祝大家新年快乐',
'ha,ha!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!',
'jacshan',2
Zhuce'jaclieren','565689','jacshan.163.com'
这是部分存储过程的测试,全部都正常完成,其它不在此一一列出,视图的测试也都正常运行,这里省略
3收获与体会
本次实习主要是完成数据库的设计,对数据库的各阶段写出详细的说明文档。对我来说是一个挑战,因为我很少写过文档,以前写的任何一个程序都是单刀直入,从不写文档,也不画任何程序流程图。本次实习体会最深刻的就是需求分析,通过写需求分析文档,我深刻的体会到了需求分析在整个系统设计中的重要性即:要全面的进行需求分析,了解用户的需求,这样可以减少以后设计的困难,完成需求分析对整个系统的功能和构架就非常的清晰,需求不完善将影响以后的所以设计。也体会到了交流的重要性,通过交流可以发现自己在系统设计方面存在很多缺陷,交流不仅可以找出系统设计的不合理性,还可以减少需求分析的不确定性。在其它阶段的设计中对数据库中的模式有了新的认识,理解了三模式两映像的重要性。整个系统设计使我对数据库和软件工程有了新的认识,特别是对数据流图的概念的理解,对数据库的一些基本概念有了进一步的理解,也对数据库一些容易混淆的概念有了清晰的认识。特别是对SQL语句的使用更加熟练,对SQL2000的操作更加的熟悉。
除了对知识的学习外,也磨练了自己的意志,发现自己的许多不足,写文档是
上一篇:
网上书店(论文和程序)
下一篇:
jQuery产品分类信息导航特效代码