《论坛数据库管理数据库课程设计报告 .pdf》由会员分享,可在线阅读,更多相关《论坛数据库管理数据库课程设计报告 .pdf(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课程设计报告题目小型论坛数据库系统课 程 名 称数据库应用程序设计课程设计院 部 名 称专业班级学 生 姓 名学号课程设计地点课程设计学时指 导 教 师金陵科技学院教务处制【注:根据课程设计大纲第四项具体要求撰写课程设计报告】成绩名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 21 页 - - - - - - - - - 一、课程设计目的数据库应用程序课程设计旨在使学生对数据库应用系统的开发过程有一个全面的认识和了解, 在程序设计语言课程基本编程训练的基础上,对数据库应用
2、系统的流程和特点有较深入的了解,能够自觉运用数据库原理的理论知识指导软件设计,学会数据库的设计, 并能对设计结果的优劣进行正确评价,能够使用已学过的程序设计语言编制具有可读性和可维护性的良好风格的程序。培养快速学习新知识,并在项目中使用的能力。二、课程设计要求1. 采取分组并分工合作的方式进行课程设计,独立编制文档,态度认真、工作量饱满、完成设计所有要求;2. 利用某种程序设计语言 ( 以学生学过的 C+ 、 ASP 、 C# 或 JAVA为佳) , 用 SQL SERVER 2005 进行后台数据库管理,编写出某个小型的管理信息系统,该系统应具备对数据进行录入、查询、删除、修改、统计、报表,
3、还包括各用户界面的屏幕设计等功能;3. 按照数据库设计的基本步骤完成数据库设计过程,要求数据库结构合理,符合实际, 设计过程和文档的编写遵循软件工程规范。要求注重数据库系统的安全管理,包括数据备份、权限设置等,系统要有两类登陆用户:系统用户、一般用户;4. 软件运行正确, 提交的软件及课程设计报告思路正确、撰写规范、结构合理;5. 按照数据库设计的六个步骤来撰写课程设计报告,即需求分析、 概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行维护,还要包括主要参考文献、课程设计的体会、用户的系统使用说明书、附录( 系统的主控源程序代码 ) 等。名师资料总结 - - -精品资料欢迎下载
4、 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 21 页 - - - - - - - - - 三、课程设计过程描述3.1 系统简易需求描述小型论坛数据库系统(简称BBS )网络缩小我们的世界, 其发展的迅速带动了人与人的交流。于是像论坛这种交流平台便应运而生。然而, 网络的应用是离不开底层数据库的支持,一个良好的数据库系统是网络高效率运行的坚石。本次课程设计旨在在设计一个优秀的数据库系统来支持公司论坛系统的数据存储、数据管理等功能。一个基本的 BBS论坛,可以大致分为以下流程:用户登录进入论坛(初始为游客,可以
5、注册为会员) ,就某个话题(帖子的主题)展开讨论。通过发帖功能发布新的话题;通过回帖功能回复已有的话题;通过搜索功能查找已有的话题。管理员通过管理功能创建, 编辑,删除论坛的版块; 管理注册的用户; 管理帖子。这样的流程决定了BBS论坛系统的需求。(1) 会员注册:提供新会员注册的功能,包括提供录入信息的界面,检查注册信息的有效性,并将注册会员信息保存在对应数据库的数据表中。(2) 发表文章:提供会员发表文章的功能,未注册的用户不允许使用该功能。(3) 文章查询:对注册会员和未注册会员提供文章查询以及阅读的功能,即提供对应文章标题信息,以及查看详细内容及回复文章的超链接(4) 会员管理:当网上
6、论坛的会员完成注册后,系统会在数据库中加入会员的资料。包括会员名称会员密码会员 E-mail 等相关信息资料。同时,按照会员的不同身份, 将特殊会员设置为版主, 使他具备删除本讨论区中对应文章等特殊操作的权利。管理者可以依据数据库中注册的特殊身份登录到论坛后台对会员信息进行管理。(5) 论坛分类管理:根据不同的讨论内容,管理员将整个讨论区划分成不同的区域,会员可以选择进入不同的讨论区,允许管理者对分类的版块进行调整,同时提供不同的讨论区中包括文章数量等的统计功能。(6) 帖子管理:管理员和版主都可以对会员发表的帖子进行转移、置顶和删除等操作。名师资料总结 - - -精品资料欢迎下载 - - -
7、 - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 21 页 - - - - - - - - - 3.2 数据库逻辑设计3.2.1数据字典1 . 名词定义数据表描述缩写定义bbs小型论坛DB 数据库数据字段类型缩写定义P Primary ,主键U Unique,唯一性约束或唯一性索引F Foreign key ,外键I Index ,索引C Cluster ,聚簇索引N Null ,空值3.2.2 实体及其属性实体:用户属性:用户编号、用户名、密码、邮箱、性别、用户级别、备注信息、注册时间、状态、用户积分实体:板块属性:板块编
8、号、板块名称、版主、版面简介、点击数、发帖数实体:主贴属性:帖子编号、板块编号、发帖人ID、回复数量、发帖表情、标题、正文、发帖时间、点击数、状态、最后回复时间实体:跟帖属性: 帖子编号、主帖ID、板块 ID、回复人 ID、回帖表情、正文、回帖时间、点击率名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 21 页 - - - - - - - - - 3.2.3 E-R图1. 用户实体局部 E-R图图 1. 用户实体局部 E-R 图2. 版块实体局部 E-R图图 2. 版块实
9、体局部 E-R图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 21 页 - - - - - - - - - 3. 主帖实体局部 E-R图图 3. 主帖实体局部 E-R 图4. 跟帖实体局部 E-R图图 4. 跟帖实体局部 E-R图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 21 页 - - - - - - - - - 5. 合并局部 E-R图并
10、生成 BBS论坛系统总体 E-R 图图 5. BBS论坛系统总体 E-R 图3.2.3 实体关系模式将用户实体转换为用户关系: (用户编号、用户名、密码、邮箱、性别、用户级别、备注信息、注册时间、状态、用户积分)。将版块实体转换为板块关系: (板块编号、板块名称、版主、版面简介、点击数、发帖数)。将主贴转换为帖子关系: (帖子编号、板块编号、发帖人ID、回复数量、发帖表情、标题、正文、发帖时间、点击数、状态、最后回复时间)。将跟帖实体转换为帖子回复关系: (帖子编号、主帖ID、板块 ID、回复人ID、回帖表情、正文、回帖时间、点击率) 。名师资料总结 - - -精品资料欢迎下载 - - - -
11、 - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 21 页 - - - - - - - - - 3.2.4 数据库中各表设计结果基于上述数据库逻辑结构设计的结果,现在可以将其转化为给定数据库管理系统所支持的实际数据模型。1.bbsUsers(bbs用户表 ) 字段名称数据类型说明约束备注UID Int identity(1,1) 用户编号P 自动增长列Uname Varchar(50) 用户名U 唯一值Upassword Varchar(50) 密码默认为 000000,密码要大于 6 位Uemail Varchar(50) 邮
12、箱形如%.% Usex Char(2) 性别男,女Uclass Int 用户等级默认为 1 Uremark Vachar(50) 备注信息UregDate datetime 注册时间当前值Ustate Int 状态默认为 0(未登入Upoint Int 用户积分默认为 20 2.bbsSection(bbs版块表 ) 字段名称数据类型说明约束备注SID Int identity(1,1) 版块编号P 自动增长列Sname Varchar(50) 版块名称U Smaster Int 版主F bbsUsers 表 UID字段外码Sprofile Varchar(50) 版面简介SclickCoun
13、t Int 点击数字段默认值为 0 StopicCount Int 发帖数字段默认值为 0 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 21 页 - - - - - - - - - 3.bbsTopic(bbs主帖表 ) 字段名称数据类型说明约束备注TID Int identity(1,1) 帖子编号P 自动增长列TsID Int 版块编号F bbsSection 表 SID字段外码TuID Int 发帖人 ID F bbsUsers 表 UID字段外码treplyC
14、ount Int 回复数量Tface Int 发帖表情Ttopic Varchar(50) 标题Tcontents Varchar(50) 正文Ttime Datetime 发帖时间为当前日期TclickCount Int 点击数字段默认值为 0 Tstate Int 状态Tstate 字段默认值为 1 TlastReply datetime 最后回复时间字段的默认值为 0 4.bbsReply(bbs回帖表 ) 字段名称数据类型说明约束备注RID Int identity(1,1) 帖子编号P 自动增长列RtID Int 主帖 ID F bbsTopic 表 TID 字段外码RuID Int
15、 回帖人 ID F bbsUsers 表 UID 字段外码Rface Int 回帖表情Rcontents Varchar(50) 正文Rtime Datetime 回帖时间字段默认值为当前日期RclickCount int 点击率名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 21 页 - - - - - - - - - 3.3 数据库物理设计3.3.1.数据库的实施首先利用 Powerdesign软件自动生成源代码,然后参照代码,完善。实施的步骤如下:使用 SQL se
16、rver 2000 查询分析器创建数据库bbsDB,代码如下:use master -新建数据bbsDB 的库 - go if exists(select * from sysdatabases where name = bbsDB) drop database bbsDB create database bbsDB on ( name = bbsDB_MDF, filename = C:kcsjbbsDB_MDF.mdf, size = 10mb, filegrowth = 10% ) log on ( name = bbsDB_LDF, filename = F:kcsjbbsDB_LDF
17、.ldf, size = 1mb, maxsize = 20mb, filegrowth = 10% go -以上信息为新建的数据库- 创建各个表及其约束,代码如下:use bbsDB go -新建 bbsUsers表 (用户表 )- - if exists(select * from sysobjects where name=bbsUsers) drop table bbsUse create table bbsUsers ( UID int identity(1,1) not null, Uname varchar(50) not null, Upassword varchar(50)
18、not null, Uemail varchar(50), Usex char(2) not null, 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 21 页 - - - - - - - - - Uclass int, Uremark varchar(50), UregDate datetime not null, Ustate int, Upoint int, ) go -为 bbsUsers 表添加各种约束- alter table bbsUsers add c
19、onstraint PK_UID primary key(UID) alter table bbsUsers add constraint CK_Upassword check(len(Upassword) = 6) alter table bbsUsers add constraint DF_Upassword default(000000) for Upassword alter table bbsUsers add constraint CK_Uemail check(Uemail like %) alter table bbsUsers add constraint DF_Usex d
20、efault( 男) for Usex alter table bbsUsers add constraint CK_Usex check(Usex= 男 or Usex=女) alter table bbsUsers add constraint DF_Uclass default(1) for Uclass alter table bbsUsers add constraint DF_UregDate default(getDate() for UregDate alter table bbsUsers add constraint DF_Ustate default(0) for Ust
21、ate alter table bbsUsers add constraint DF_Upoint default(20) for Upoint -以上信息为以建立的bbsUser(用户表)及各种约束- go -新建 bbsSection 表(版块表) - if exists(select * from sysobjects where name = bbsSection) drop table bbsSection create table bbsSection ( SID int identity(1,1) not null, Sname varchar(50) not null, Sma
22、sterID int not null, Sprofile varchar(50), SclickCount int, StopicCount int ) go -为表 bbsSection(版块表)添加约束- alter table bbsSection add constraint PK_SID primary key(SID) alter table bbsSection add constraint FK_SmasterID foreign key(SmasterID) references bbsUsers (UID) alter table bbsSection add const
23、raint DF_SclickCount default(0) for SclickCount alter table bbsSection add constraint DF_StopicCount default(0) for StopicCount -以上为表bbsSection (版块表)建立及添加相应约束- go 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 21 页 - - - - - - - - - -新建 bbsTopic 表(主贴表) - if ex
24、ists(select * from sysobjects where name = bbsTopic) drop table bbsTopic create table bbsTopic ( TID int identity(1,1) not null, TsID int not null, TuID int not null, TreplyCount int, Tface int, Ttopic varchar(50) not null, Tcontents varchar(50) not null, Ttime datetime, TclickCount int, Tstate int
25、not null, TlastReply datetime ) go-为 bbsTopic(主贴表 )表个字段添加约束- alter table bbsTopic add constraint PK_TID primary key(TID) alter table bbsTopic add constraint FK_TsID foreign key(TsID) references bbsSection (SID) alter table bbsTopic add constraint FK_TuID foreign key(TuID) references bbsUsers (UID) a
26、lter table bbsTopic add constraint DF_TreplyCount default(0) for TreplyCount alter table bbsTopic add constraint CK_Tcontents check(len(Tcontents) = 6) alter table bbsTopic add constraint DF_Ttime default(getDate() for Ttime alter table bbsTopic add constraint DF_TclickCount default(0) for TclickCou
27、nt alter table bbsTopic add constraint DF_Tstate default(1) for Tstate alter table bbsTopic add constraint CK_TlastReply check(TlastReply Ttime) -以上为 bbsTopic(主贴表)表建立及各字段的约束- go -新建表 bbsReply(回帖表) - if exists(select * from sysobjects where name = bbsReply) drop table bbsReply create table bbsReply (
28、 RID int identity(1,1) not null, RtID int not null, RuID int not null, Rface int, Rcontents varchar(50) not null, Rtime datetime, RclickCount int ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 21 页 - - - - - - - - - go - 为 bbsReply(回帖)表各个字段添加约束- alter table
29、bbsReply add constraint PK_RID primary key(RID) alter table bbsReply add constraint FK_RtID foreign key(RtID) references bbsTopic(TID) alter table bbsReply add constraint FK_RuID foreign key(RuID) references bbsUsers(UID) alter table bbsReply add constraint DF_Rcontents check(len(Rcontents) = 6) alt
30、er table bbsReply add constraint DF_Rtime default(getDate() for Rtime - 以上为创建bbsReply(回帖)表的内容及各字段的约束-3.3.2触发器与存储过程设计触发器设计1bbsUsers表上的出发器触发器设计 a.名称:Tri_udelete 描述:当一个用户被管理员删除,其发表的主帖和跟帖也要被删除代码:Use bbsDB Go Create trigger Tri_udelete On bbsUsers After delete As Delete from bbsTopic where TuID in (selec
31、t UID from deleted) Delete from bbsReply where RuID in (select UID from deleted) b. 名称:Tri_uupdate 描述:当用户的积分增加的一定值后,对应的用户等级会发生变化。代码:Create trigger Tri_uupdate On bbsUsers After update As Update bbsUsers set Uclass=(1+(updated.Upiont)/100) where Upoint in (select Upoint from updated)2. bbsSection表上的触
32、发器设计a. 名称: Tri_sdelete 描述:当一个版块被删除时,属于版块的主帖也被删除。代码:Create trigger Tri_sdelete On bbsSection After delete As Delete from bbsTopic where TsID in(select SID from deleted) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 21 页 - - - - - - - - - 存储过程设计下面是部分存储过程的描述,包括插
33、入数据、更新数据与查询数据。这里我们设计了发表帖子,查看帖子,回复帖子,搜索帖子,搜索用户,资料修改(用户)6 个存储过程。1. 发表帖子的存储过程Create procedure Pro_Tpush TsID int, TuID int, Tface int, Ttopic varchar(50) , Tcontents varchar(50) , TlastReply datetime As Insert Into bbsTopic(TsID,TuID,Tface,Ttopic, Tcontents,TlastReply) values(TsID,TuID,Tface,Ttopic,Tco
34、ntents,TlastReply) Go 2查看帖子的存储过程:Create procedure Pro_Tscan As Select * from bbsTopic go 3. 回复帖子的存储过程Create procedure Pro_Treply RtID int, RuID int, Rface int, Rcontents varchar(50) As Insert into bbsReply(RtID,RuID,Rface,Rcontents) Values(RtID, RuID, Rface, Rcontents) Go 4. 搜索帖子的存储过程Create procedur
35、e Pro_Tserch TID int As Select * from bbsTopic where TID=TID go 5. 搜索用户的存储过程Create procedure Pro_Userch UID int As Select *from bbsUsers where UID=UID Go 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 21 页 - - - - - - - - - 6. 资料修改(用户)的存储过程Create procedure Pro
36、_Uupdate UID int, Uname varchar(50), Upassword varchar(50), Uemail varchar(50), Usex char(2), Uremark varchar(50) As Update bbsUsers set Uname=Uname, Upassword=Upassword, UemailUemail, Usex=Usex, Uremark=Uremark Where UID=UID Go3.3.3关系图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理
37、- - - - - - - 第 15 页,共 21 页 - - - - - - - - - 3.3.4确定关系模型的存取方法在实际设计中最常用的存取方法是索引法,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:在经常需要搜索的列上建立索引;在主关键字上建立索引;在经常用于连接的列上建立索引,即在外键上建立索引; 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序, 其指定的范围是连续的等规则。才能充分利用索引的作用避免因索引引起的负面作用。3.3.5 确定数据库的存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构
38、,以及确定系统存储参数的配置。因为本次 bbs 论坛系统的数据量小, 而且只作实验之用, 所以我们只用把数据存储在使用的电脑硬盘上,不用作更多的安排。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 21 页 - - - - - - - - - 3.4 系统实现3.4.1系统的界面1. 用户注册界面输入用户名确认是否可以正常使用,输入自己预想的用户名, 继续输入邮箱。连续两次输入密码进行密码设定,并设置密码提示问题及其答案。2. 用户登录界面输入用户名,密码以及验证码进行
39、登录。3. 发表贴子名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 21 页 - - - - - - - - - 在标题框输入贴子标题,在内容框输入贴子内容,最后发表。4. 查看贴子此界面可以查看贴子主题及其发帖人,进而进入主贴。3.4.2数据库的试运行1bbsUsers表上的触发器试运行a. 名称:Tri_udelete 描述:当一个用户被管理员删除,其发表的主帖和跟帖也要被删除试运行结果:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
40、- - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 21 页 - - - - - - - - - b. 名称:Tri_uupdate 描述:当用户的积分增加的一定值后,对应的用户等级会发生变化。试运行结果:2. bbsSection表上的触发器试运行a. 名称: Tri_sdelete 描述:当一个版块被删除时,属于版块的主帖也被删除。试运行结果:3. 发表帖子的存储过程试运行名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 2
41、1 页 - - - - - - - - - 4. 查看帖子的存储过程试运行5. 回复帖子的存储过程试运行名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 21 页 - - - - - - - - - 四、课程设计结果与分析在课程设计中, 我设计了 BBS论坛管理系统, 其中包含了对论坛的成员的管理,各个主题版块的管理,版块的各个帖子的管理,论坛的信息安全管理等。基本上包含了论坛管理所要求的信息,能够完成一定的数据管理功能。在设计当中我学习到了许多东西, 用到了很多的数据库
42、的理论知识, 增强了一定的实践能力。至于我在这过程中遇到的问题就很多了,比如说怎么限制主键约束, 设置默认值,各个实体之间的联系怎么用SQL语言来建立等等。 后面在插入数据的过程中出现无法插入的情况,检查发现,然来定义属性变量的时候给的内存空间不够,修改后正常插入。自身也存在一定的问题: 数据完整性的约束还得进一步完善,用户的权限判断过于简单,用户对帖子进行的删除等操作不够方便等等这些都需要在以后进行改进和完善。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 21 页 - - - - - - - - -