收藏 分销(赏)

10-11-01--08数据库课程设计--公司论坛管理系统数据库设计--洪维坤.docx

上传人:二*** 文档编号:4480850 上传时间:2024-09-24 格式:DOCX 页数:45 大小:1.13MB
下载 相关 举报
10-11-01--08数据库课程设计--公司论坛管理系统数据库设计--洪维坤.docx_第1页
第1页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、精品文档就在这里-各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有- 课程设计实验报告题目 公司论坛管理系统数据库设计系 别: 计算机科学与技术系 专业年级: 08计算机软件方向姓 名:洪维坤、洪鹭铭、李 琪、纪白冰 学 号:0807012215、0807012240、0807012239、0807012250指导教师: 柳 玲成 绩: 2010 年 12 月 20 日-2010 年 12 月 24 日评语摘要通过一学期的数据库原理学习,我们初略掌握了数据库设计的方法。理论需要与实践联系在一起,为了进一步巩固数据库的理论知识、增强实际操作能力与设计能力,我们进行了本次课程

2、设计。本课程设计要求设计一个小型公司论坛数据库系统,为公司内部员工提供一个在线交流的网络平台。在设计中,我们把用户、版块、主帖、回帖等实体按照一定的关系关联起来形成一个完整的数据库系统。同时,根据需求我们设计不同的管理模块,对于不同的用户授予不同的权限。在数据库设计中,我们使用PowerDesignersql设计出概念模型设计与物理模型设计,然后与数据库SQLserver2000相连接,并生成初步的表格,最后在数据库中根据要求设计出各个表的触发器,以及系统的一些存储过程。最后,我们完成了整个数据库的实施。通过本次课程设计,我们的本学期学到的有关知识得到有效的复习,同时为我们积累了实战的经验,为

3、今后的学习打下更坚实的基础。关键字:数据库 课程设计 小型公司论坛数据库系统目录 摘要.2目录.31 设计内容与要求511 设计题目512 设计目的与要求513 设计环境52 需求分析621 系统功能要求设计62.1.1系统功能要求设计622 系统模块设计72.2.1前台业务基本模块72.2.2后台业务基本模块823数据流图设计924数据字典102.4.1名词定义102.4.2 数据项102.4.3 数据结构112.4.4数据流122.4.5 数据存储132.4.6 处理过程143 概念结构设计1531 数据抽象与局部视图设计153.1.1 用户实体局部e-r图153.1.2 版块实体局部e-

4、r图153.1.3 主帖实体局部e-r图163.1.4 跟贴实体局部e-r图1632合并局部E-R图生成BBS论坛系统总体E-R 图1733 概念模型设计174 逻辑结构设计1841 将实体转化为关系模型1842 设计用户子模式1943 将概念模型转换为物理模型195 物理结构设计与功能实现2151 系统的物理结构设计215.1.1 确定关系模型的存取方法215.1.2 确定数据库的存储结构2152 数据库的实施与数据载入215.2.1 数据库的实施215.2.2 数据的载入2653 触发器与存储过程设计275.3.1 触发器设计275.3.2 存储过程设计3054 数据库的试运行325.4.

5、1 触发器功能的试运行325.4.2 存储过程的试运行3655 数据库的运行和维护386 设计体会与建议397 参考文献40致谢411 设计内容与要求11 设计题目 小型公司论坛数据库系统(简称bbs)12 设计目的与要求 网络缩小我们的世界,其发展的迅速带动了人与人的交流。于是像公司论坛这种交流平台便应运而生。然而,网络的应用是离不开底层数据库的支持,一个良好的数据库系统是网络高效率运行的坚石。本次课程设计旨在在设计一个优秀的数据库系统来支持公司论坛系统的数据存储、数据管理等功能。同时,希望本次课程设计会让我们对数据库理论知识进一理解以加强我们动手能力与实践能力。 13 设计环境 在Wind

6、ows 环境下利用Sybase PowerDesigner作为概念模型设计与物理模型设计的工具,使用SqlServer2005作为数据库管理系统对数据进行管理与维护。2 需求分析21 系统功能要求设计2.1.1论坛系统的需求分析一个基本的bbs论坛,可以大致分为以下流程:用户登录进入论坛(一般为游客,有时还要注册为会员),就某个话题(帖子的主题)展开讨论。通过发帖功能发布新的话题;通过回帖功能回复已有的话题;通过搜索功能查找已有的话题。管理员通过管理功能创建 编辑 删除论坛的版块;管理注册的用户;管理帖子。这样的流程决定了bbs论坛系统的需求。(1)会员注册:提供新会员注册的功能,包括提供录入

7、信息的界面,检查注册信息的有效性,并将注册会员信息保存在对应数据库的数据表中。(2)发表文章:提供会员发表文章的功能,未注册的用户不允许使用该功能。(3)文章查询:对注册会员和未注册会员提供文章查询以及阅读的功能,即提供对应文章标题信息,以及查看详细内容及回复文章的超链接(4)会员管理:当网上论坛的会员完成注册后,系统会在数据库中加入会员的资料。包括会员名称 会员密码 会员E-mail等相关信息资料。同时,按照会员的不同身份,将特殊会员设置为版主,使他具备删除本讨论区中对应文章等特殊操作的权利。管理者可以依据数据库中注册的特殊身份登录到论坛后台对会员信息进行管理。(5)论坛分类管理:根据不同的

8、讨论内容,管理员将整个讨论区划分成不同的区域,会员可以选择进入不同的讨论区,允许管理者对分类的版块进行调整,同时提供不同的讨论区中包括文章数量等的统计功能。(6)帖子管理:管理员和版主都可以对会员发表的帖子进行转移、置顶和删除等操作。 22 系统模块设计 bbs论坛系统可以分成前台和后台两大业务模块。系统总体功能需求框架图2.2.1前台基本业务模块(1)注册会员提供新会员注册的功能,包括提供录入信息的界面,检查注册信息的有效性,并将注册会员信息保存在对应数据库的数据表中。(2)登录系统 提供会员登录论坛功能,要想针对某篇帖子发言,或发表帖子,必须是登录用户才可以操作。由于论坛中某些操作只有会员

9、才可以执行,所以必须先登录系统.(3)浏览帖子 对注册会员和未注册会员提供文章查询以及阅读的功能,即提供对应文章标题信息,以及查看详细内容及回复文章的超链接(4)会员发表帖子 会员可以针对某个感兴趣的话题发表自己的独到的见解。未注册的用户此此项功能。(5)回复帖子注册会员和未注册会员都可以针对某一个话题展开讨论,发表意见,并给出回复。前台基本业务模块图2.2.2后台管理模块(1)版块管理 根据不同的话题,管理员可以将每个话题分成不同的种类版块,然后对其进行管理。管理员还可以删除认为不必要的版块话题;管理员可以修改版块的主题名 类型和数量;管理员还可以添加新的版块。(2)帖子管理 管理员可以对会

10、员发表的帖子进行管理。管理员可以删除内容反动或者不健康的帖子,可以置顶帖子。还可以设置精华帖,控制帖子的点击率等操。(3)会员管理 管理员可以对会员进行管理。可以删除会员,收回他的会员号,;修改会员的基本信息,修改会员的积分,排行等。后台基本业务模块图23 数据流图设计 根据系统的需求分析与模块设计,我们细化出bbs论坛系统的数据流图。其图如下:数据流图 说明:(1)-访问信息 (2)(3)(10)(11)-用户信息(4)-帖子信息(5)-更新帖子信息(6)-搜索信息(7)-获取帖子信息(8)-回复信息(9)-搜索用户(12)-更新用户信息(13)-获取用户信息24 数据字典2.4.1 名词定

11、义数据表描述缩写定义bbs小型公司论坛DB数据库数据字段类型缩写定义PPrimary,主键UUnique,唯一性约束或唯一性索引FForeign key,外键IIndex,索引CCluster,聚簇索引NNull,空值2.4.2 数据项 数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称(即码)、注释、数据类型、长度、取值范围和是否是主码。1.bbsUsers(bbs用户表)字段名称数据类型说明约束备注UIDInt identity(1,1)用户编号P自动增长列UnameVarchar(50)用户名U唯一值UpasswordVarchar(50)密码默认为000000,密码要大

12、于6位UemailVarchar(50)邮箱形如%.%UsexChar(2)性别男,女UclassInt用户等级默认为1 UremarkVachar(50)备注信息UregDatedatetime注册时间当前值UstateInt状态默认为0(未登入UpointInt用户积分默认为202.bbsSection(bbs版块表)字段名称数据类型说明约束备注SIDInt identity(1,1)版块编号P自动增长列SnameVarchar(50)版块名称USmasterInt版主FbbsUsers表UID字段外码SprofileVarchar(50)版面简介SclickCountInt点击数字段默认

13、值为0StopicCountInt发帖数字段默认值为03.bbsTopic(bbs主帖表)字段名称数据类型说明约束备注TIDInt identity(1,1)帖子编号P自动增长列TsIDInt版块编号FbbsSection表SID字段外码TuIDInt发帖人IDFbbsUsers表UID字段外码treplyCountInt回复数量TfaceInt发帖表情TtopicVarchar(50)标题TcontentsVarchar(50)正文TtimeDatetime发帖时间为当前日期TclickCountInt点击数字段默认值为0TstateInt状态Tstate字段默认值为1TlastReplyd

14、atetime最后回复时间字段的默认值为04.bbsReply(bbs跟帖表)字段名称数据类型说明约束备注RIDInt identity(1,1)帖子编号P自动增长列RtIDInt主帖IDFbbsTopic表TID字段外码RuIDInt回帖人IDFbbsUsers表UID字段外码RfaceInt回帖表情RcontentsVarchar(50)正文RtimeDatetime回帖时间字段默认值为当前日期RclickCountint点击率2.4.3 数据结构数据结构是为反映数据之间的组合关系,即 一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构组成。本bbs

15、论坛系统的数据结构组成可根据系统模块图和数据流图及数据库表设计。具体如下表所示:数据结构表数据结构名含义说明组成用户信息用户基本信息的描述用户编号、用户名、密码、邮箱、性别、用户等级、备注信息、注册时间、状态、用户积分版块信息版块基本信息的描述版块编号、版块名称、版主、版面简介、点击数、发帖数主帖信息主帖基本信息的描述帖子编号、版块编号、发帖人ID、回复数量、发帖表情、标题、正文、发帖时间、点击数、状态、最后回复时间跟帖信息跟帖基本信息的描述帖子编号、主帖ID、版块ID、回帖人ID、回帖表情、正文、回帖时间、点击率2.4.4数据流数据流是数据结构在系统内传输的路径。根据数据流图,bbs论坛系统

16、主要包括数据流表数据流名说明来源去向组成流量备注用户信息用户部分信息用户发表帖子(搜索帖子、搜索用户、资料修改)用户编号、用户名、密码、用户等级、状态访问信息用户查看帖子用户编号、用户名、密码、用户等级、状态发表帖子信息主帖基本信息发表帖子帖子资料帖子编号、版块编号、发帖人ID、回复数量、发帖表情、标题、正文、发帖时间 更新帖子信息主帖基本信息帖子资料搜索帖子(回复帖子)帖子编号、版块编号、发帖人ID、回复数量、发帖表情、标题、正文、发帖时间搜索帖子信息主帖部分信息搜索帖子查看帖子帖子编号、版块编号、发帖人ID、回复数量、发帖表情、标题、正文、发帖时间、点击数、状态、最后回获取帖子信息主帖基本

17、信息帖子资料查看帖子帖子编号、版块编号、发帖人ID、回复数量、发帖表情、标题、正文、发帖时间、点击数、状态、最后回回复信息跟帖基本资料查看帖子回复帖子帖子编号、主帖ID、版块ID、回帖人ID、回帖表情、正文、回帖时间、点击率更新用户信息用户基本资料用户资料(资料修改)资料修改(用户资料)用户编号、用户名、密码、邮箱、性别、用户等级、备注信息、注册时间、状态、用户积分获取用户信息用户基本资料用户资料搜索用户用户编号、用户名、密码、邮箱、性别、用户等级、备注信息、注册时间、状态、用户积分2.4.5 数据存储数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。其主要包括数据存储名、说明、

18、编号、输入的数据流与输出的数据流、组成、数据量,存取频度、存取方式。下表表示了该bbs论坛系统中的数据存储描述。数据存储描述数据存储名组成输入数据流输出数据流存取频度存取方式用户资料用户基本信息结构更新的用户信息获取数据流大顺序检索、更新帖子资料主帖相关信息数据结构发表帖子信息、更新帖子信息获取帖子信息大顺序检索、更新2.4.6 处理过程 该bbs论坛系统的处理过程比较少,主要包含了发表帖子、查看帖子、回复帖子、搜索帖子、搜索用户、资料修改。下图显示了这些最基本的处理以及其对应的数据流与说明。处理过程表处理名简要说明输入数据输出数据备注发表帖子用户信息发表帖子信息查看帖子访问信息搜索用户信息、

19、回复信息回复帖子回复信息更新帖子信息搜索帖子用户信息、搜索信息搜索信息搜索用户用户信息、搜索用户、获取用户资料无资料修改用户资料修改用户信息、获取用户资料获取用户资料3 概念结构设计31 数据抽象与局部视图设计3.1.1 用户实体局部e-r图 3.1.2版块实体局部e-r图3.1.3主帖实体局部e-r图3.1.4跟帖实体局部e-r图32 合并局部e-r图生成bbs论坛系统总体E-R 图 33 概念模型设计在生成了系统E-R图后,可根据E-R图中实体的各个属性组成以及实体与实体之间的关系用PowerDesigner设计概念模型。最后生成概念模型如下图所示:4 逻辑结构与物理结构设计41 将实体转

20、化为关系模型根据以上概念结构设计的bbs论坛系统总E-R图,将其中的实体转化为如下关系,关系的码用下划线标出。*将用户实体转换为用户关系:(用户编号、用户名、密码、邮箱、性别、用户级别、备注信息、注册时间、状态、用户积分)。*将版块实体转换为板块关系:(板块编号、板块名称、版主、版面简介、点击数、发帖数)。*将帖子实体转换为帖子关系:(帖子编号、板块编号、发帖人ID、回复数量、发帖表情、标题、正文、发帖时间、点击数、状态、最后回复时间)。*将帖子回复实体转换为帖子回复关系:(帖子编号、主帖ID、板块ID、回复人ID、回帖表情、正文、回帖时间、点击率)。42 设计用户子模式为了方便不同用户使用,

21、需要使用更符合用户习惯的别名,并且针对不同的用户定义不同的视图,以满足系统对安全性的要求。*为普通用户设计的子模式:发表跟帖信息(帖子编号、主帖ID、板块ID、回复人ID、回帖表情、正文、回帖时间、点击率,排名)*为版主用户设计的子模式:发表主帖帖信息(帖子编号、板块编号、发帖人ID、回复数量、发帖表情、标题、正文、发帖时间、点击数、状态、最后回复时间,排名)*为管理用户设计的子模式:用户基本信息(用户编号、用户名、密码、邮箱、性别、用户级别、备注信息、注册时间、状态、用户积分,排名)版块信息(板块编号、板块名称、版主、版面简介、点击数、发帖数,排名)43 将概念模型转换为物理模型 在概念模型

22、设计好了之后,可直接在powerdesigner 中将设计好了的概念模型转换成物理模型。其具体操作过程为 点击主菜单的 ToolsGenerate Physical Data Model 便可以将当前的概念模型转换为物理模型,转换后的物理模型如下图所示:5 物理结构设计与功能实现51 系统的物理结构设计5.1.1 确定关系模型的存取方法在实际设计中最常用的存取方法是索引发,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:在经常需要搜索的列上建立索引;在主关键字上建立索引;在经常用于连接的列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定

23、的范围是连续的等规则。才能充分利用索引的作用避免因索引引起的负面作用。5.1.2 确定数据库的存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。因为本次bbs论坛系统的数据量小,而且只作实验之用,所以我们只用把数据存储在使用的电脑硬盘上,不用作更多的安排。52 数据库的实施与数据载入5.2.1 数据库的实施首先利用Powerdesign软件自动生成源代码,然后参照代码,完善。实施的步骤如下:1.使用SQL server 2000查询分析器创建数据库bbsDB,代码如下:use master-新建数据

24、bbsDB的库- go -判断数据库是否存在使用exists关键字,在用sysdatabases关键字查询-if exists(select * from sysdatabases where name = bbsDB) -如果数据库存在就删除此数据库 drop(删除)database(数据库对象)bbsDB(数据库名)- drop database bbsDB -删除后在添加一个数据create(添加)database(数据库对象)bbsDB(数据库名)on-create database bbsDB on ( name = bbsDB_MDF, -数据库主文件名-filename = C:

25、kcsjbbsDB_MDF.mdf, -数据库存储的路径-size = 10mb, -数据库初使大小-filegrowth = 10% -增长变化-) -设置日志文件-log on ( name = bbsDB_LDF, -日志文件名-filename = F:kcsjbbsDB_LDF.ldf, -日志文件存储路径-size = 1mb, -日志文件初使大小-maxsize = 20mb, -日志文件最大的可储存-filegrowth = 10% -增长变化- ) go -以上信息为新建的数据库-2.创建各个表及其约束,代码如下:use bbsDB go -新建bbsUsers表(用户表)-

26、 -判断bbsDB库是否有表bbsUser的存在exists关键字+sysobjects判断当前数据库表-if exists(select * from sysobjects where name=bbsUsers) -如果表存在就删除此表-drop table bbsUse-新建bbsUser表-create table bbsUsers ( UID int identity(1,1) not null, -用户编号,自动增长列,不允许空-Uname varchar(50) not null, -用户名,不允许空-Upassword varchar(50) not null, -密码,不允许

27、空-Uemail varchar(50), -邮箱-Usex char(2) not null, -性别,不允许空-Uclass int, -用户等级-Uremark varchar(50), -备注信息-UregDate datetime not null, -注册日期,不允许空-Ustate int, -状态,是否在线等-Upoint int, -用户的积分-) go -为bbsUsers表添加各种约束-为bbsUser表添加约束,add constraint关键字PK_UID约束名,primary key(主键)设置UID字段为主键-alter table bbsUsers add co

28、nstraint PK_UID primary key(UID) -为Upassword添加约束,check(Upassword length=6)字段长度大于等于6位,default设置默认值为000000-alter table bbsUsers add constraint CK_Upassword check(len(Upassword) = 6) alter table bbsUsers add constraint DF_Upassword default(000000) for Upassword -为Uemail字段添加约束,必须包含号- alter table bbsUser

29、s add constraint CK_Uemail check(Uemail like %) -为User字段添加约束,设置默认值为男,并且值只能是男或女-alter table bbsUsers add constraint DF_Usex default(男) for Usex alter table bbsUsers add constraint CK_Usex check(Usex=男 or Usex=女) -为Uclass字段添加约束,默认值为1-alter table bbsUsers add constraint DF_Uclass default(1) for Uclass

30、-为UregDate字段添加约束,默认值为当前日期-alter table bbsUsers add constraint DF_UregDate default(getDate() for UregDate -为Ustate添加约束,默认值为0-alter table bbsUsers add constraint DF_Ustate default(0) for Ustate -为Upoint字段添加约束,默认值为20-alter table bbsUsers add constraint DF_Upoint default(20) for Upoint -以上信息为以建立的bbsUser

31、(用户表)及各种约束- go -新建bbsSection表(版块表)- -判断数据库内是否有表bbsSection的存在-if exists(select * from sysobjects where name = bbsSection) -如果有此表执行删除-drop table bbsSection -新建bbsSection表,及个字段-create table bbsSection ( SID int identity(1,1) not null, -版块编号,自动增长列-Sname varchar(50) not null, -版块名称,不允许空-SmasterID int not

32、 null, -版主ID-Sprofile varchar(50), -版面简介-SclickCount int, -点击数-StopicCount int -发贴数-) go -为表bbsSection(版块表)添加约束- -将SID字段设置为主键-alter table bbsSection add constraint PK_SID primary key(SID) -为SmasterID设置外键,他的主键是bbsUsers表的UID字段foreign key(外键) references 主键表(主键表字段)-alter table bbsSection add constraint

33、FK_SmasterID foreign key(SmasterID) references bbsUsers (UID) -为SclickCount字段添加默认值为0-alter table bbsSection add constraint DF_SclickCount default(0) for SclickCount -为字段StopicCount设置默认值为0-alter table bbsSection add constraint DF_StopicCount default(0) for StopicCount -以上为表bbsSection(版块表)建立及添加相应约束- g

34、o-新建bbsTopic表(主贴表)- -判断数据库中是否有bbsTopic表的存在-if exists(select * from sysobjects where name = bbsTopic) -删除此表-drop table bbsTopic -新建bbaTopic表及个字段-create table bbsTopic ( TID int identity(1,1) not null, -帖子编号-TsID int not null, -版块编号-TuID int not null, -发贴人ID-TreplyCount int, -回复数量-Tface int, -发贴表情-Tto

35、pic varchar(50) not null, -标题-Tcontents varchar(50) not null, -正文-Ttime datetime, -发贴时间-TclickCount int, -点击数-Tstate int not null, -状态-TlastReply datetime -最后回复时间-) go-为bbsTopic(主贴表)表个字段添加约束- -将TID字段设置为主键-alter table bbsTopic add constraint PK_TID primary key(TID) -将TsID设置为外键,引用bbsSection表的主键SID字段-a

36、lter table bbsTopic add constraint FK_TsID foreign key(TsID) references bbsSection (SID) -将TuID字段设置为外键盘,引用bbsUsers表的主键UID字段-alter table bbsTopic add constraint FK_TuID foreign key(TuID) references bbsUsers (UID) -设置TreplyCount字段的默认值为0-alter table bbsTopic add constraint DF_TreplyCount default(0) for

37、 TreplyCount -为Tcontents字段添加约束,他的值必须大于等于6位-alter table bbsTopic add constraint CK_Tcontents check(len(Tcontents) = 6) -为Ttime字段添加默认值,为当前日期-alter table bbsTopic add constraint DF_Ttime default(getDate() for Ttime -设置TclickCount字段默认值为0-alter table bbsTopic add constraint DF_TclickCount default(0) for

38、TclickCount -设置Tstate字段默认值为1-alter table bbsTopic add constraint DF_Tstate default(1) for Tstate -为TlastReply字段添加约束,最后回复时间必须要晚于发贴时间-alter table bbsTopic add constraint CK_TlastReply check(TlastReply Ttime) -以上为bbsTopic(主贴表)表建立及各字段的约束- go -新建表bbsReply(回帖表)- -判断数据库中是否有bbsReply(回帖表)的存在-if exists(select

39、 * from sysobjects where name = bbsReply) -删除bbsReply表-drop table bbsReply -创建bbsReply(回帖)表及个字段-create table bbsReply ( RID int identity(1,1) not null, -帖子编号-RtID int not null, -主贴ID-RuID int not null, -回帖人ID-Rface int, -回帖表情-Rcontents varchar(50) not null, -正文-Rtime datetime, -回帖时间-RclickCount int -点击数-) go-

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 通信科技 > 数据库/数据算法

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服