当前位置:文档之家› 论坛数据库管理数据库课程设计报告

论坛数据库管理数据库课程设计报告

课程设计报告题 目 小型论坛数据库系统课 程 名 称 数据库应用程序设计课程设计 院 部 名 称 专 业 班 级 学 生 姓 名 学 号 课程设计地点 课程设计学时 指 导 教 师金陵科技学院教务处制【注:根据课程设计大纲第四项具体要求撰写课程设计报告】一、课程设计目的数据库应用程序课程设计旨在使学生对数据库应用系统的开发过程有一个全面的认识和了解,在程序设计语言课程基本编程训练的基础上,对数据库应用系统的流程和特点有较深入的了解,能够自觉运用数据库原理的理论知识指导软件设计,学会数据库的设计,并能对设计结果的优劣进行正确评价,能够使用已学过的程序设计语言编制具有可读性和可维护性的良好风格的程序。

培养快速学习新知识,并在项目中使用的能力。

二、课程设计要求1.采取分组并分工合作的方式进行课程设计,独立编制文档,态度认真、工作量饱满、完成设计所有要求;2.利用某种程序设计语言(以学生学过的C++、ASP、C#或JAVA为佳),用SQL SERVER 2005进行后台数据库管理,编写出某个小型的管理信息系统,该系统应具备对数据进行录入、查询、删除、修改、统计、报表,还包括各用户界面的屏幕设计等功能;3.按照数据库设计的基本步骤完成数据库设计过程,要求数据库结构合理,符合实际,设计过程和文档的编写遵循软件工程规范。

要求注重数据库系统的安全管理,包括数据备份、权限设置等,系统要有两类登陆用户:系统用户、一般用户;4.软件运行正确,提交的软件及课程设计报告思路正确、撰写规范、结构合理;5.按照数据库设计的六个步骤来撰写课程设计报告,即需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行维护,还要包括主要参考文献、课程设计的体会、用户的系统使用说明书、附录(系统的主控源程序代码)等。

三、课程设计过程描述3.1系统简易需求描述小型论坛数据库系统(简称BBS)网络缩小我们的世界,其发展的迅速带动了人与人的交流。

于是像论坛这种交流平台便应运而生。

然而,网络的应用是离不开底层数据库的支持,一个良好的数据库系统是网络高效率运行的坚石。

本次课程设计旨在在设计一个优秀的数据库系统来支持公司论坛系统的数据存储、数据管理等功能。

一个基本的BBS论坛,可以大致分为以下流程:用户登录进入论坛(初始为游客,可以注册为会员),就某个话题(帖子的主题)展开讨论。

通过发帖功能发布新的话题;通过回帖功能回复已有的话题;通过搜索功能查找已有的话题。

管理员通过管理功能创建,编辑,删除论坛的版块;管理注册的用户;管理帖子。

这样的流程决定了BBS论坛系统的需求。

(1)会员注册:提供新会员注册的功能,包括提供录入信息的界面,检查注册信息的有效性,并将注册会员信息保存在对应数据库的数据表中。

(2)发表文章:提供会员发表文章的功能,未注册的用户不允许使用该功能。

(3)文章查询:对注册会员和未注册会员提供文章查询以及阅读的功能,即提供对应文章标题信息,以及查看详细内容及回复文章的超链接(4)会员管理:当网上论坛的会员完成注册后,系统会在数据库中加入会员的资料。

包括会员名称会员密码会员E-mail等相关信息资料。

同时,按照会员的不同身份,将特殊会员设置为版主,使他具备删除本讨论区中对应文章等特殊操作的权利。

管理者可以依据数据库中注册的特殊身份登录到论坛后台对会员信息进行管理。

(5)论坛分类管理:根据不同的讨论内容,管理员将整个讨论区划分成不同的区域,会员可以选择进入不同的讨论区,允许管理者对分类的版块进行调整,同时提供不同的讨论区中包括文章数量等的统计功能。

(6)帖子管理:管理员和版主都可以对会员发表的帖子进行转移、置顶和删除等操作。

3.2数据库逻辑设计3.2.1数据字典1 .名词定义3.2.2 实体及其属性实体:用户属性:用户编号、用户名、密码、邮箱、性别、用户级别、备注信息、注册时间、状态、用户积分实体:板块属性:板块编号、板块名称、版主、版面简介、点击数、发帖数实体:主贴属性:帖子编号、板块编号、发帖人ID、回复数量、发帖表情、标题、正文、发帖时间、点击数、状态、最后回复时间实体:跟帖属性: 帖子编号、主帖ID、板块ID、回复人ID、回帖表情、正文、回帖时间、点击率3.2.3 E-R图1.用户实体局部E-R图图1.用户实体局部E-R图2.版块实体局部E-R图图2.版块实体局部E-R图3.主帖实体局部E-R图图3.主帖实体局部E-R图4.跟帖实体局部E-R图图4.跟帖实体局部E-R图5.合并局部E-R图并生成BBS论坛系统总体E-R 图图5.BBS论坛系统总体E-R 图3.2.3 实体关系模式将用户实体转换为用户关系:(用户编号、用户名、密码、邮箱、性别、用户级别、备注信息、注册时间、状态、用户积分)。

将版块实体转换为板块关系:(板块编号、板块名称、版主、版面简介、点击数、发帖数)。

将主贴转换为帖子关系:(帖子编号、板块编号、发帖人ID、回复数量、发帖表情、标题、正文、发帖时间、点击数、状态、最后回复时间)。

将跟帖实体转换为帖子回复关系:(帖子编号、主帖ID、板块ID、回复人ID、回帖表情、正文、回帖时间、点击率)。

3.2.4 数据库中各表设计结果基于上述数据库逻辑结构设计的结果,现在可以将其转化为给定数据库管理系统所支持的实际数据模型。

1.bbsUsers(bbs用户表)2.bbsSection(bbs版块表)3.bbsTopic(bbs主帖表)4.bbsReply(bbs回帖表)3.3数据库物理设计3.3.1.数据库的实施首先利用Powerdesign软件自动生成源代码,然后参照代码,完善。

实施的步骤如下:使用SQL server 2000查询分析器创建数据库bbsDB,代码如下:use master-----------------------------------------------新建数据bbsDB的库------------------------------------goif exists(select * from sysdatabases where name = 'bbsDB')drop database bbsDBcreate database bbsDBon( name = 'bbsDB_MDF',filename = 'C:\kcsj\bbsDB_MDF.mdf',size = 10mb,filegrowth = 10%)log on( name = 'bbsDB_LDF',filename = 'F:\kcsj\bbsDB_LDF.ldf',size = 1mb,maxsize = 20mb,filegrowth = 10%go---------------------------------------以上信息为新建的数据库--------------------------------------- 创建各个表及其约束,代码如下:use bbsDBgo----------------------------------新建bbsUsers表(用户表)-------------------- ---------------------if exists(select * from sysobjects where name='bbsUsers')drop table bbsUsecreate table bbsUsers ( UID int identity(1,1) not null,Uname varchar(50) not null,Upassword varchar(50) not null,Uemail varchar(50),Usex char(2) not null,Uclass int,Uremark varchar(50),UregDate datetime not null,Ustate int,Upoint int,)go----------------------------------------为bbsUsers表添加各种约束--------------------------------alter table bbsUsers add constraint 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 Upasswordalter table bbsUsers add constraint CK_Uemail check(Uemail like '%@%')alter table bbsUsers add constraint DF_Usex default('男') for Usex alter table bbsUsers add constraint CK_Usex check(Usex='男' or Usex='女')alter table bbsUsers add constraint DF_Uclass default(1) for Uclassalter table bbsUsers add constraint DF_UregDate default(getDate()) for UregDatealter table bbsUsers add constraint DF_Ustate default(0) for Ustatealter table bbsUsers add constraint DF_Upoint default(20) for Upoint-------------------------以上信息为以建立的bbsUser(用户表)及各种约束-----------------go-----------------------------------新建bbsSection表(版块表)---------------------------------if exists(select * from sysobjects where name = 'bbsSection')drop table bbsSectioncreate table bbsSection(SID int identity(1,1) not null,Sname varchar(50) not null,SmasterID 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 constraint DF_SclickCount default(0) for SclickCountalter table bbsSection add constraint DF_StopicCount default(0) for StopicCount-------------------------------以上为表bbsSection(版块表)建立及添加相应约束----------------------- go------------------------------新建bbsTopic表(主贴表)--------------------------------------------------- if exists(select * from sysobjects where name = 'bbsTopic')drop table bbsTopiccreate 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 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)alter table bbsTopic add constraint DF_TreplyCount default(0) for TreplyCountalter table bbsTopic add constraint CK_Tcontents check(len(Tcontents) >= 6)alter table bbsTopic add constraint DF_Ttime default(getDate()) for Ttimealter table bbsTopic add constraint DF_TclickCount default(0) for TclickCountalter table bbsTopic add constraint DF_Tstate default(1) for Tstatealter table bbsTopic add constraint CK_TlastReply check(TlastReply > Ttime)----------------------------以上为bbsTopic(主贴表)表建立及各字段的约束---------------------go---------------------------------新建表bbsReply(回帖表)-------------------------------------------------- if exists(select * from sysobjects where name = 'bbsReply')drop table bbsReplycreate table bbsReply(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)go-----------------为bbsReply(回帖)表各个字段添加约束----------------------------------------alter table 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)alter table bbsReply add constraint DF_Rtime default(getDate()) for Rtime-------------以上为创建bbsReply(回帖)表的内容及各字段的约束---------------------------------3.3.2触发器与存储过程设计触发器设计1.bbsUsers表上的出发器触发器设计a.名称:Tri_udelete描述:当一个用户被管理员删除,其发表的主帖和跟帖也要被删除代码:Use bbsDBGoCreate trigger Tri_udeleteOn bbsUsersAfter deleteAsDelete from bbsTopic where TuID in (select UID from deleted)Delete from bbsReply where RuID in (select UID from deleted)b.名称:Tri_uupdate描述:当用户的积分增加的一定值后,对应的用户等级会发生变化。

相关主题