数据库系统原理设计论坛系统.docx
《数据库系统原理设计论坛系统.docx》由会员分享,可在线阅读,更多相关《数据库系统原理设计论坛系统.docx(19页珍藏版)》请在冰点文库上搜索。
数据库系统原理设计论坛系统
数据库系统原理
上机课程综合设计报告
院系:
专业班级:
学号:
学生姓名:
指导老师:
2012年6月10号
论坛信息管理系统
摘要:
随着科学技术的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来管理。
现如今网络盛行,BBS论坛已成为人们生活中的一种信息交流渠道,它通过在计算机上运行服务软件,允许用户使用终端程序通过电话调制解调器拨号或者Internet来进行连接,执行下载数据或程序、上传数据、阅读新闻、与其他用户交换消息等功能。
本文主要介绍利用SQLSever2008作为设计工具,理解并运用课程中关于数据库设计的相关理论,按照设计流程要求完成完整的论坛信息管理的数据库设计,包括需求分析、概念结构设计、逻辑结构设计、物理结构设计和数据库实施。
关键词:
SQL语言、数据库设计、论坛信息管理系统
目录
第一部分:
引言1
第二部分:
数据库设计内容1
第一章绪论1
1课题简介1
2设计目的2
3设计内容2
第二章需求分析2
1需求分析的任务2
2需求分析的内容3
3数据字典3
第三章概念结构设计4
1概念结构设计的简介4
2概念结构设计的方法4
2.1概念结构设计的步骤4
2.2数据抽象与局部视图设计5
2.3视图的集成6
第四章逻辑结构设计7
1E-R图向关系模型的转换7
2数据库的结构7
第五章物理设计阶段9
1系统功能模块9
2物理设计阶段结果10
第六章数据库的实施与运行10
1建立数据库(论坛信息管理系统数据库)10
2建立基本表(用户、栏目、主题、回复主题)10
3建立视图11
4建立存储过程并对其功能进行验证12
5建立触发器13
结论13
参考文献14
第一部分:
引言
数据库技术是计算机科学技术发展最快,应用最为广泛的技术之一。
其在计算机设计,人工智能,电子商务,企业管理,科学计算等诸多领域均得到了广泛的应用,已经成为计算机信息系统和应用的核心技术和重要基础。
随着网络的发展,论坛已经成为人们日常进行交流的一个不可或缺的空间。
人们可以再论坛中谈论喜欢的话题,提出或解答疑问,发布通知和公告等。
由于它独特的形式和强大的功能,受到广大网友的欢迎,并成为全世界计算机用户信息交流的园地。
在软件开发的过程中,随着面向对象程序设计和数据库系统的成熟,数据成为软件开发的核心,程序的设计要服从数据,因此论坛信息管理系统的数据库设计尤其重要。
本文主要介绍论坛信息管理系统的数据库方面的设计,从需求分析到数据库的运行与维护都进行详细的叙述。
本文的分为6章:
第1章主要是课程的简介及设计的内容与目的。
第2章是需求分析,此阶段是数据库设计的起点。
第3章是概念设计,它是将需求分析的用户需求抽象为信息结构。
第4章是逻辑结构设计,它将概念模型转换为某个DBMS所支持的数据模型。
第5章物理设计阶段,它包括系统具体功能模板的分析实现。
第6章是数据库的实施与运行,它包括数据的载入及数据库的运行。
第二部分:
数据库内容设计
第一章绪论
1、课题简介
随着现代科技的高速发展,设备和管理的现代化,在实际工作中如何提高工作效率成为一个很重要的问题。
而建立信息管理系统是一个很好的解决办法。
经过一学期的学习,我对数据库方面的知识有了很大的了解,本着理论联系实际的宗旨,通过这次综合设计实验课的机会,在查找资料、反复思考的前提下设计了一个论坛信息管理系统。
在下面的各章中,我将详细介绍这个数据库的设计和实施过程。
2、设计目的
应用对数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践更好的结合起来,巩固所学知识。
数据库应用课程实践:
实践和巩固在课堂教学中学习有关知识,熟练掌握对于给定结构的数据库的创建、基本操作、程序系统的建立和调试以及系统评价。
数据库原理软件设计实践:
实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。
3、设计内容
运用基于E-R模型的数据库设计方法和关系规范化理论做指导完成从系统的分析到设计直至系统的最终实现,开发论坛信息管理系统,完成论坛信息管理系统的全部功能。
首先做好需求分析,并完成系统具体分析和数据字典。
其次做概念结构设计,利用实体联系的方法将需求分析的用户需求抽象为信息结构,得到E-R图。
然后就是逻辑结构设计,将E-R图转换为计算机系统所支持的逻辑模型。
第二章需求分析
1、需求分析的任务
需求分析的任务是调查应用领域,对应用领域中的信息要求和操作要求进行详细分析,形成需求分析说明书。
重点是调查,收集与分析用户在数据管理中的信息要求,处理要求,数据的安全性与完整性要求。
为了完成需求分析的任务,要详细调查待开发的数据库应用部门的情况,了解原系统工作概况,分析用户的各种需求,在此基础上确定新系统的功能。
新系统必须考虑今后的扩充和改变,不能仅仅按当前应用需求来设计数据库。
2、需求分析的内容
开发一个BBS论坛系统,具体应实现如下功能:
(1)用户注册和登录,后台数据库需要存放用户的注册信息和在线状态信息。
(2)用户发帖,后台数据库需要存放帖子相关信息,如帖子内容、标题等。
(3)论坛版块管理,后台数据库需要存放各个版块信息,如版主、版块名称和帖子数等。
(4)确定系统的边界。
确定整个系统中哪些由计算机完成,哪些将来由系统完成,哪些由人工完成。
由计算机完成的功能就是新系统完成的功能。
3、数据字典
表中列名
数据类型
可否为空
说明
UID
char
Notnull(主键)
用户编号
UName
char
Notnull
账号
UPassword
char
notnull
密码
UPoint
Int
notnull
积分
UClass
char
Notnull
级别
表1:
BBSUsers用户信息表
表中列名
数据类型
可否为空
说明
cid
char
Notnull(主键)
栏目编号
fcid
char
Notnull
父栏目编号
cname
char
Notnull
栏目名称
cmasterid
char
Notnull
版主编号
cstatement
varchar
Notnull
栏目描述
表2:
BBSColumn栏目信息
表中列名
数据类型
可否为空
说明
tid
char
Notnull(主键)
主题编号
tuid
char
Notnull
用户编号
ttopic
varchar
Notnull
主题标题
tclickcount
int
Notnull
主题点击次数
tcontents
char
Notnull
主题内容
ttime
datetime
Notnull
主题发布时间
ttype
char
Notnull
类型
tfuj
char
附件
表3:
BBSTopic主题信息表格
表中列名
数据类型
可否为空
说明
rtid
char
Notnull
回复主题编号
rtopic
varchar
Notnull
回复主题标题
tid
char
Notnull
主题编号
rtcontents
char
Notnull
回复主题内容
rttime
datetime
Notnull
发布时间
ruid
char
Notnull
用户编号
rfuj
char
附件
表4:
BBSReply回复主题信息表
第三章概念结构设计
1、概念结构设计的简介
现实世界中的事物及其活动被人们抽象为数据,人们为了更好地利用和处理数据,又必须把针对某一方面应用的相关数据按照一定的数据结构形式组织起来。
这种数据结构形式只考虑数据本身的结构以及相互的自然联系,是人们对现实世界的认识和抽象,不考虑在计算机上的具体实现,也可以说与计算机的具体实现无关,所以被人们称之为概念数据模型。
2、概念结构设计的方法
设计概念结构通常有四类方法:
自顶向下,自底向上,逐渐扩张以及混合策略。
本论坛信息管理系统采用的是自底向上的方法。
即首先定义全局的概念结构的框架,然后逐步细化。
根据自顶向下地进行需求分析然后再自底向上地进行概念设计。
2.1概念结构设计的步骤
概念结构的设计可分为两步:
第一步是抽象数据并设计局部视图。
第二步是
集成局部视图,得到全局的概念结构。
2.2数据抽象与局部视图设计
局部E-R图:
用户实体E-R图
主题实体E-R图
栏目实体E-R图
回复主题实体E-R图
2.3视图的集成
描述进行视图集成的具体过程,最后得到论坛信息管理系统的总体概念结构E-R图,其中各实体的属性同以上各局部E-R图,在此省略。
第四章逻辑结构设计
1、E-R图向关系模型的转换
将总体概念结构的E-R图转化成关系模型:
用户(用户编号,账号,密码,积分,级别)
栏目(栏目编号,父栏目编号(外键),名称,版主,描述)
主题(主题编号,标题,类型,点击率,内容,发布时间,发布时间,用户编号,附件)
回复主题(回复主题编号,标题,主题编号,内容,发布时间,用户编号,附件)
2、数据库的结构
给出数据库基本表总体结构图:
根据总体结构图设计各表的结构:
BBSUsers用户信息表:
BBSColumn栏目信息:
BBSTopic主题信息表格:
BBSReply回复主题信息表:
第五章物理设计阶段
1、系统功能模块
(1)用户表的查询和更新模块
将完成用户基本信息的查询、更新(修改、插入、删除)操作,便于对用户信息的集中管理
(2)栏目表的查询和更新模块
将完成栏目基本信息的查询、更新(修改、插入、删除)操作,便于对栏目信息的集中管理
(3)主题表的查询和更新模块
将完成对所发表主题的基本信息的查询、更新(修改、插入、删除)操作,便于对主题信息的集中管理
(4)回复主题表的查询和更新模块
将完成回复主题基本信息的查询、更新(修改、插入、删除)操作,便于对回复主题信息的集中管理
2、物理设计阶段结果
编号
存储过程
作用
1
用户表_insert
在用户表中插入一元组
2
栏目表_insert
在栏目中插入一元组
3
主题表_insert
在主题中插入一元组
4
回复主题表_insert
在回复主题中插入一元组
存储过程汇总(其他表的查询、修改、删除与上面表的大致相同,这里不再具体列出)
第六章数据库的实施与运行
1、建立数据库
CreatedatabaseBBS
onprimary
(name=BBS_data,
Filename='d:
\BBS_data.mdf',
Size=20MB,
Filegrowth=10%,
Maxsize=200MB)
Logon
(name=bbs_log,
Filename='d:
\bbs_data.ldf',
Size=10mb,
Filegrowth=10%,
Maxsize=100MB)
Go
2、建立基本表
2.1建立用户信息表
createtableu
(uidchar(14)primarykey,
unamechar(16)notnull,
upasswordchar(10)notnull,
upointintnotnull,
uclasschar(8)notnull);
go
2.2建立栏目信息表
createtablec
(cidchar(8)primarykey,
fcidchar(8)notnull,
cnamechar(10)notnull,
cmasteridchar(14)notnullunique,
cstatemeentvarchar(20)notnull,
foreignkey(cmasterid)referencesu(uid),
foreignkey(fcid)referencesc(cid));
go
2.3建立主题信息表
createtablet
(tidchar(8)primarykey,
ttopicchar(10)notnull,
ttypechar(4)notnull,
tclickcountintnotnull,
tcontentschar(16)notnull,
ttimedatetimenotnull,
tuidchar(14)notnull,
tfujchar(10),
foreignkey(tuid)referencesu(uid),
check(ttypein('精华','置顶','普通')));
go
2.4建立回复主题信息表
createtablert
(rtidchar(8)primarykey,
rtopicvarchar(10)notnull,
tidchar(8)notnull,
rcontentchar(16)notnull,
rttimedatetimenotnull,
ruidchar(14)notnull,
rfujchar(10),
foreignkey(tid)referencest(tid),
foreignkey(ruid)referencesu(uid));
go
3、建立视图
3.1建立用户表视图
createviewu_view
as
select*
fromu
withcheckoption;
go
3.2建立栏目表视图
createviewc_view
as
select*
fromc
withcheckoption;
go
3.3建立主题表视图
createviewt_view
as
select*
fromt
withcheckoption;
go
3.4建立回复主题表视图
createviewrt_view
as
select*
fromrt
withcheckoption;
go
4、建立存储过程并对其功能进行验证
4.1建立用户表的存储过程并调用
Createprocedurep_insertu
(@uidchar(14),
@unamechar(16),
@upasswordchar(10),
@upointint,
@uclasschar(8))
as
insertintouvalues(@uid,@uname,@upassword,@upoint,@uclass)
go
execp_insertu'20101104978','雷利','563478','436798','初级用户'
go
4.2建立栏目表的存储过程
Createprocedurep_insertc
(@cidchar(8),
@fcidchar(8),
@cnamechar(10),
@cmasteridchar(14),
@cstatemeentvarchar(20))
as
insertintocvalues(@cid,@fcid,@cname,@cmasterid,@cstatemeent)
go
4.3建立主题表的存储过程
Createprocedurep_insertt
(@tidchar(8),
@ttopicchar(10),
@ttypechar
(2),
@tcontentschar(16),
@tuidchar(14),
@tfujchar(10))
as
insertintotvalues(@tid,@ttopic,@ttype,@tcontents,@tuid,@tfuj)
go
5、建立触发器
5.1实现“当用户开始注册时,积分为100”的功能
createtriggerinu_upoint
onu
afterinsert
as
begin
updateu
setupoint=100
end
go
结论
通过这次综合实验设计,我了解了数据库设计的一般过程。
在接受客户的一个项目的时候,首先是进行系统分析。
即首先分析其以后的销售情况以及技术可行性。
如果二者可行,接下来要做的就是总体设计。
首先必须听取客户的要求,将其提出的功能按某种方式划分
为几种模块,这就是整体设计。
再对每一个模块进行细化形成最为简单的模块。
然后是考虑每一细化模块的算法并将其用语言刻画出来,这就是详细设计,这就迈出了最为关键的一步。
剩下的就是编译测试阶段,这是编程的必经阶段,也是我们劳动结果的验金石。
只有得到我们期望的结果我们才算真正完成了任务。
最后是软件的维护。
在软件的使用过程中不可避免地会出现一些错误,因此维护便是必不可少的。
这便是完成一个项目必经的过程。
在这一学期的学习中,我终于体会到SQLServer2000功能的功能丰富,表达能力强,
使用灵活方便,应用面广。
因此,对于数据库知识的学习是相当重要及有用的。
参考文献
[1]陆慧娟高波涌_《数据库系统原理教程(第二版)》_中国电力出版社,2004年
[2]陆慧娟关伟《数据库系统原理习题集与上机指导》 中国电力出版社,2004年