论坛数据库管理数据库课程设计报告(共22页)_第1页
论坛数据库管理数据库课程设计报告(共22页)_第2页
论坛数据库管理数据库课程设计报告(共22页)_第3页
论坛数据库管理数据库课程设计报告(共22页)_第4页
论坛数据库管理数据库课程设计报告(共22页)_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、份、权限设置等,系统要有两类登陆用户:系统用户、一般用户;4.软件运行正确,提交的软件及课程设计报告思路正确、撰写规范、结构合理;5.按照数据库设计的六个步骤来撰写课程设计报告,即需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行维护,还要包括主要参考文献、课程设计的体会、用户的系统使用说明书、附录(系统的主控源程序代码)等。三、课程设计过程描述3.1系统简易需求描述小型论坛数据库系统(简称BBS)网络缩小我们的世界,其发展的迅速带动了人与人的交流。于是像论坛这种交流平台便应运而生。然而,网络的应用是离不开底层数据库的支持,一个良好的数据库系统是网络高效率运行的坚石。本

4、次课程设计旨在在设计一个优秀的数据库系统来支持公司论坛系统的数据存储、数据管理等功能。 一个基本的BBS论坛,可以大致分为以下流程:用户登录进入论坛(初始为游客,可以注册为会员),就某个话题(帖子的主题)展开讨论。通过发帖功能发布新的话题;通过回帖功能回复已有的话题;通过搜索功能查找已有的话题。管理员通过管理功能创建,编辑,删除论坛的版块;管理注册的用户;管理帖子。这样的流程决定了BBS论坛系统的需求。(1)会员注册:提供新会员注册的功能,包括提供录入信息的界面,检查注册信息的有效性,并将注册会员信息保存在对应数据库的数据表中。(2)发表文章:提供会员发表文章的功能,未注册的用户不允许使用该功

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

6、的统计功能。(6)帖子管理:管理员和版主都可以对会员发表的帖子进行转移、置顶和删除等操作。3.2数据库逻辑设计3.2.1数据字典1 .名词定义数据表描述缩写定义bbs小型论坛DB数据库数据字段类型缩写定义PPrimary,主键UUnique,唯一性约束或唯一性索引FForeign key,外键IIndex,索引CCluster,聚簇索引NNull,空值3.2.2 实体及其属性实体:用户 属性:用户编号、用户名、密码、邮箱、性别、用户级别、备注信息、注册时间、状态、用户积分实体:板块 属性:板块编号、板块名称、版主、版面简介、点击数、发帖数实体:主贴属性:帖子编号、板块编号、发帖人ID、回复数量

7、、发帖表情、标题、正文、发帖时间、点击数、状态、最后回复时间实体:跟帖属性: 帖子编号、主帖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 实体关系模式将用户实体转换为用户关系:(用户编号、用户名、密码、邮箱、性别、用户级别、备注信息、注册时间、状态、用户积分)

8、。 将版块实体转换为板块关系:(板块编号、板块名称、版主、版面简介、点击数、发帖数)。将主贴转换为帖子关系:(帖子编号、板块编号、发帖人ID、回复数量、发帖表情、标题、正文、发帖时间、点击数、状态、最后回复时间)。将跟帖实体转换为帖子回复关系:(帖子编号、主帖ID、板块ID、回复人ID、回帖表情、正文、回帖时间、点击率)。3.2.4 数据库中各表设计结果 基于上述数据库逻辑结构设计的结果,现在可以将其转化为给定数据库管理系统所支持的实际数据模型。1.bbsUsers(bbs用户表)字段名称数据类型说明约束备注UIDInt identity(1,1)用户编号P自动增长列UnameVarchar(

9、50)用户名U唯一值UpasswordVarchar(50)密码默认为,密码要大于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字段外码Spro

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

11、默认值为0TstateInt状态Tstate字段默认值为1TlastReplydatetime最后回复时间字段的默认值为04.bbsReply(bbs回帖表)字段名称数据类型说明约束备注RIDInt identity(1,1)帖子编号P自动增长列RtIDInt主帖IDFbbsTopic表TID字段外码RuIDInt回帖人IDFbbsUsers表UID字段外码RfaceInt回帖表情RcontentsVarchar(50)正文RtimeDatetime回帖时间字段默认值为当前日期RclickCountint点击率3.3数据库物理设计3.3.1.数据库的实施 首先利用Powerdesign软件自动

12、生成源代码,然后参照代码,完善。实施的步骤如下:使用SQL server 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

13、% ) log on ( name = 'bbsDB_LDF', filename = 'F:kcsjbbsDB_LDF.ldf', size = 1mb, maxsize = 20mb, filegrowth = 10% go -以上信息为新建的数据库-创建各个表及其约束,代码如下:use bbsDB go -新建bbsUsers表(用户表)- - if exists(select * from sysobjects where name='bbsUsers') drop table bbsUsecreate table bbsUsers (

14、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)

15、alter table bbsUsers add constraint CK_Upassword check(len(Upassword) >= 6) alter table bbsUsers add constraint DF_Upassword default('') for Upassword alter table bbsUsers add constraint CK_Uemail check(Uemail like '%') alter table bbsUsers add constraint DF_Usex default('男

16、9;) 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 defaul

17、t(0) for Ustate 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

18、(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 bbsS

19、ection add constraint DF_SclickCount default(0) for SclickCount alter table bbsSection add constraint DF_StopicCount default(0) for StopicCount -以上为表bbsSection(版块表)建立及添加相应约束- go-新建bbsTopic表(主贴表)- if exists(select * from sysobjects where name = 'bbsTopic') drop table bbsTopic create table bbs

20、Topic ( 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 constrain

21、t 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 TreplyCount alter table bbsTop

22、ic 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 TclickCountalter table bbsTopic add constraint DF_Tstate default(1) for Tstate alter table bbsTopic

23、add constraint CK_TlastReply check(TlastReply > Ttime) -以上为bbsTopic(主贴表)表建立及各字段的约束- go -新建表bbsReply(回帖表)- if exists(select * from sysobjects where name = 'bbsReply') drop table bbsReply create table bbsReply ( RID int identity(1,1) not null, RtID int not null,RuID int not null, Rface int,

24、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)

25、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触发器与存储过程设计触发器设计1bbsUsers表上的出发器触发器设计 a.名称:Tri_udelete 描述:当一个用户被管理员删除,其发表的主帖和跟帖也要被删除 代码:Us

26、e bbsDBGoCreate trigger Tri_udeleteOn bbsUsers After deleteAs Delete from bbsTopic where TuID in (select UID from deleted) Delete from bbsReply where RuID in (select UID from deleted)b.名称:Tri_uupdate 描述:当用户的积分增加的一定值后,对应的用户等级会发生变化。 代码:Create trigger Tri_uupdateOn bbsUsers After updateAsUpdate bbsUser

27、s set Uclass=(1+(updated.Upiont)/100) where Upoint in (select Upoint from updated)2. bbsSection表上的触发器设计 a.名称:Tri_sdelete 描述:当一个版块被删除时,属于版块的主帖也被删除。 代码:Create trigger Tri_sdeleteOn bbsSection After deleteAsDelete from bbsTopic where TsID in(select SID from deleted)存储过程设计 下面是部分存储过程的描述,包括插入数据、更新数据与查询数据。

28、这里我们设计了发表帖子,查看帖子,回复帖子,搜索帖子,搜索用户,资料修改(用户)6个存储过程。1.发表帖子的存储过程Create procedure Pro_Tpush TsID int,TuID int,Tface int, Ttopic varchar(50) , Tcontents varchar(50) , TlastReply datetime AsInsert Into bbsTopic(TsID,TuID,Tface,Ttopic,Tcontents,TlastReply) values(TsID,TuID,Tface,Ttopic,Tcontents,TlastReply)Go

29、2查看帖子的存储过程:Create procedure Pro_TscanAs Select * from bbsTopicgo3.回复帖子的存储过程Create procedure Pro_TreplyRtID int,RuID int,Rface int,Rcontents varchar(50)As Insert into bbsReply(RtID,RuID,Rface,Rcontents) Values(RtID, RuID, Rface, Rcontents)Go 4. 搜索帖子的存储过程Create procedure Pro_TserchTID intAs Select * f

30、rom bbsTopic where TID=TIDgo5. 搜索用户的存储过程Create procedure Pro_UserchUID intAs Select *from bbsUsers where UID=UIDGo 6. 资料修改(用户)的存储过程Create procedure Pro_UupdateUID 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=UIDGo3.3.3关系图3.3.4确定关系模型的存取方法在实际设计中最常用的存取方法是索引法,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:在经常需要搜索的列上建立索引; 在主关键

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论