网站新闻发布系统数据库课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计Ⅳ
设计说明书
网站新闻发布与管理系统的数据库设计和数据操作
学生姓名周朝
学号**********
班级网络1101班
成绩
指导教师杨刚
数学与计算机科学学院
2014年 6 月 27 日
课程设计任务书
2013—2014学年第二学期
课程设计名称:课程设计IV
课程设计题目:网站新闻发布与管理系统的数据库设计和数据操作
完成期限:自2014年6月16日至2014年6月28日共2周
设计内容:
1. 任务说明
本系统的主要功能如下:
1) 具有用户注册及个人信息管理功能。
2) 管理员可以发布新闻、删除新闻。
3) 用户注册后可以对新闻进行评论、发表留言。
4) 管理员可以管理留言和对用户进行管理。
2. 要求
1) 在调查或了解的基础上,进行系统分析。
2) 根据逻辑设计方案,进行系统设计。
3) 课程设计的重点:系统的分析、数据库设计、用SQL语句进行数据操作。
3. 参考资料
[1] 苗雪兰,刘瑞新,宋会群.数据库系统原理及应用教程(第2版)[M].北京:机械工业出版社,2006.
[2] 向阳.信息系统分析与设计(第1版)[M].北京:清华大学出版社,2009.
[3] 卫红春.信息系统分析与设计[M].西安:西安电子科技大学出版社,2003.
指导教师:杨刚教研室负责人:陈波
课程设计评阅
摘要
设计了一个新闻发布和管理系统,主要完成了系统分析、数据库设计和实现、数据操作等内容。
该系统具体功能有:添加并删除用户,管理员发表新闻删除新闻,注册用户对新闻进行评论发表留言,管理员对用户进行管理。
数据库实现采用SQL Server 2008数据库管理系统。
关键词:新闻发布;管理系统;系统分析;SQL Server
目录
1 课题描述 (1)
1.1课程设计的内容 (1)
1.2课程设计的目的 (1)
2需求分析 (2)
2.1功能分析 (2)
2.2数据流程分析 (2)
2.2.3系统数据字典 (3)
3 系统总体设计 (5)
3.1模块划分 (5)
3.2系统功能模块图 (5)
4 数据库的设计 (6)
4.1概念结构设计 (6)
4.2数据库逻辑结构设计 (8)
4.3数据库物理结构设计 (8)
5 数据库的数据操作 (11)
5.1数据库的创建 (11)
5.2数据操作 (12)
6总结 (15)
参考文献 (16)
1课题描述
1.1课程设计的内容
本次课程设计是要设计一个网站新闻发布与管理系统,完成对网站新闻发布与管理系统数据库的设计并进行数据操作。
网站新闻发布与管理系统可以发布和管理新闻信息,主要实现用户浏览与评论新闻和管理员发布与管理新闻以及管理评论。
具体实现一些功能,为用户提供用户管理,为管理员提供新闻管理、权限管理、管理员管理和评论管理。
1.2 课程设计的目的
本次课程设计重在对学习过的理论知识进行实际应用。
在了解相关信息的基础上,进行系统分析。
根据逻辑设计方案,进行系统设计,重在系统的分析与数据库设计方面。
加强掌握数据库设计流程,为系统实现奠定重要基础。
2需求分析
2.1 功能分析
设计管理系统对于用户和管理员,应实现以下功能:
1)用户管理:提供用户注册,注册后查看和修改个人信息和对新闻发表评论的功能。
2)管理员管理:高权限管理员(超级管理员)可新增、查看、修改和删除低权限管理员信息。
3)权限管理:给管理员赋权,设定某一权限可操作的模块和是否可管理新闻评论。
3)新闻管理:有相关权限的管理员可发布和管理新闻信息。
3)评论管理:有相关权限的管理员可审核新闻评论。
2.2数据流程分析
2.2.1数据流程分析的工具
数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。
在数据流图中没有任何具体的物理元素,它只是描绘信息在系统中流动和被处理的情况。
数据流图的四种基本符号和具体描述如图2.1所示
加工外部实体
数据存储数据流
图2.1 数据流图的基本符号
数据流图在系统分析中的主要作用体现在以下几点:
(1)数据流图是系统逻辑功能的图形表示,即使不是专业的计算机人员也容易理解它,所以它是分析员和用户之间极好的通信工具。
(2) 数据流图能清楚地描绘数据在系统中的流动和被处理的逻辑过程。
(3)数据流图是系统逻辑功能的图形表示,容易理解。
2.2.2系统数据流图
通过对系统的分析,顶层数据流图如图2.2所示,系统数据流图如2.3所示
图2.2 顶层数据流图
图2.3 系统数据流图
2.2.3 系统数据字典
数据字典(DD,Data Dictionary)是以特定格式记录下来的、对系统的数据流程图中各个基本要素(数据流、加工、存储和外部项)的内容和特征所作的完整的定义和说明。
数据字典是对数据流程图的重要补充和说明。
数据字典中有五种类型的条目:外部实体,数据流,数据存储,数据项和加工。
数据字典中包括数据定义,但除了它之外,还包含其它一些信息。
一般信息,包括名字,别名和描述。
针对以上数据流图,给出部分项的说明。
(1)管理员信息
数据流名:管理员信息
别名:
描述:管理员信息
组成:管理员信息 = 管理员编号+管理员名称+管理员密码
备注:
(2)权限信息
数据流名:权限信息
别名:
描述:权限信息
组成:权限信息 = 权限编号+权限名称
备注:
(3)评论信息
数据流名:权评论信息
别名:
描述:评论信息
组成:评论信息 = 评论编号+评论标题+评论内容+评论时间
备注:
(4)栏目信息
数据流名:栏目信息
别名:
描述:栏目信息
组成:栏目信息 = 栏目编号+栏目名称+栏目描述
备注:栏目是说明新闻所属的类别,如国内新闻,国际新闻。
(5)处理过程
处理过程名:新闻信息管理
别名:
描述:对新闻信息进行管理
处理说明:建立新闻表,对新闻进行编号;实现对新闻的增删和维护功能
备注:新闻编号唯一不可空
(6)用户数据存储
数据存储名:用户数据
别名:
描述:新用户存储
数据结构:用户信息 = 用户编号+用户名称+用户密码+用户性别+用户Email 备注:
3 系统总体设计
3.1 模块划分
设计一个备忘录管理系统,具体分为四大模块,如下:
(1)用户管理模块:实现新增用户,查看和修改用户信息功能;
(2)管理员管理模块:实现新增管理员,查看、修改和删除管理员信息功能; (3)权限管理模块:实现对管理员、对管理的模块和管理的评论赋权功能;
(4)新闻管理模块:实现有相关权限的管理员对新闻的增加、查看、修改和删除功能; (5)评论管理模块:实现有相关权限的管理员对评论的审核和删除功能; 3.2 系统功能模块图
系统结构图是用树形结构的一系列多层次的矩形框来描绘系统的层次结构。
树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表各个模块的子集,最底层的各个框代表组成这个系统的独立功能模块。
本系统的总体结构图如图3.1所示。
图3.1 系统功能模块图
网站新闻发布与管理系统 用户管理
管
理
员
管
理 权限管理 新闻管理 评论管理
注册新用户
查看用户信息 修改用户信息 注册新管理员
管理管理员信
息
管理新闻信息 新增新闻信息 审核评论 删除评论
评论赋权
栏目赋权 管理员赋权
4数据库的设计
4.1 概念结构设计
概念结构设计是将系统需求分析得到的用户需求抽象为反映用户观点的信息结构的过程。
概念结构设计的结果是数据库的概念模型,即E-R模型。
由于它是从现实世界的角度进行抽象和描述,所以它与计算机硬件、数据库逻辑结构和支持数据库的DBMS无关。
在数据库设计中应重视概念结构设计,它是整个数据库设计的关键,是为计算机存储数据做准备工作。
根据需求分析结果,主要有用户实体、管理员实体、新闻实体和评论实体4个实体。
各实体属性图如图4.1-4.6所示,系统总体E-R图如图4.7所示。
图4.1 用户信息的实体属性图
管理员名称密码
编号
图4.2 管理员信息的实体属性图
权限名称编号
图4.3 权限信息的实体属性图
新闻编号
标题内容
描述
图4.4 新闻信息的实体属性图
栏目
编号名称
描述
图4.5 栏目信息的实体属性图
评论编号
标题内容
时间
图4.6 评论信息的实体属性图
图4.7 系统总体E-R图
4.2数据库逻辑结构设计
E-R图表示的概念模型是用户数据要求的形式化。
E-R图是独立于任何一种数据模型的概念信息结构,也不为任何一个DBMS所支持。
逻辑结构设计的任务就是把概念结构设计好的基本E-R图转换为与选用的某个具体的DBMS所支持的数据模型相符合的逻辑结构,设计的结果是一组关系模式。
将图4.7中系统E-R图转换成关系模型如下:
用户(编号,名称,密码,性别,Email);
管理员(编号,名称,密码);
权限(编号,名称);
新闻(编号,标题,内容,发布时间,新闻描述);
栏目(编号,名称,描述);
评论(评论编号,评论标题,评论内容,评论时间);
4.3 数据库物理结构设计
数据库的物理结构主要指数据库在物理设备上的存储结构与存取方法,它依赖于给定的计算机系统。
设计的任务是选择合适的存储结构和存取路径,也就是设计数据库的内模式。
内模式和逻辑模式不一样,不直接面向用户,一般的用户不一定、也不需要了解内模式的设计细节。
内模式的设计可以不考虑用户理解的方便,其主要的设计目标有两个:其一提高数据库的性能,特别是满足主要应用的性能要求;其二能够有效地利用存储空间。
根据数据库物理结构设计理论,将该系统逻辑结构转换为物理结构,如下所示:
(1)用户信息表
用户信息表(Users)主要用来存放用户账号信息,如表4.1所示。
表4.1用户信息表
列名数据类型允许NULL值说明
UserID int 否用户编号UserName nvarchar(20) 否用户名称UserPassword nvarchar(20) 否用户密码Sex nvarchar(10) 否用户性别UserEmail nvarchar(20) 否用户Email (2)管理员信息表
管理员信息表(Admin)主要用来存放用户账号信息,如表4.2所示。
表4.2管理员信息表
列名数据类型允许NULL值说明
AdminID int 否管理员编号AdminName invarchar(20) 否管理员名称AdminPassword nvarchar(20) 否管理员密码(3)权限信息表
权限信息表(Roles)主要用来存放权限信息,如表4.3所示。
表4.3权限信息表
列名数据类型允许NULL值说明
RoleID int 否权限编号RoleName Nvarchar(20) 否权限名称(4)新闻信息表
新闻信息表(News)主要用来存放新闻信息,如图4.4所示。
表4.4新闻信息表
列名数据类型允许NULL值说明
NewsID int 否新闻编号NewsTitle nvarchar(50) 否新闻标题NewsContent ntext 否新闻内容NewsDate datetime 是发布时间NewsDesc nvarchar(50) 否新闻描述(5)栏目信息表
栏目信息表(Categroy)主要用来存放新闻栏目信息,如图4.5所示。
表4.5栏目信息表
列名数据类型允许NULL值说明CategroyID int 否栏目编号CategroyName nvarchar(50) 否栏目名称CategroyDesc nvarchar(50) 否栏目描述(6)评论信息表
评论信息表(Comment)主要用来存放新闻评论信息,如图4.6所示。
表4.6评论信息表
列名数据类型允许NULL值说明CommentID int 否评论编号CommentTitle nvarchar(50) 否评论标题
CommentContent ntext 否评论内容
CommentDate datetime 是评论时间(7)管理员_权限表
管理员_权限表(Admin_Roles)主要用来存放管理员和权限的关系,如图4.7所示。
表4.7管理员_权限表
列名数据类型允许NULL值说明
ARID int 否管理员_权限编号AdminID int 否管理员编号
RoleID int 否权限编号(8)新闻_评论表
新闻_评论表(News_Comment)主要用来存放新闻和评论的关系,如图4.8所示。
表4.8新闻_评论表
列名数据类型允许NULL值说明NCommentID int 否新闻_评论编号NewsID int 否新闻编号
CommentID int 否评论编号
5 数据库的数据操作
5.1 数据库的创建
根据数据库设计结果,利用SQL Server Management 工具,用SQL语句创建数据库。
创建数据库
语句如下所示:
create database 新闻管理系统
use 新闻管理系统
1)管理员表
create table Admin(
AdminID int primary key identity(1,1),
AdminName nvarchar(20) not null,
AdminPassword nvarchar(20) not null
)
2)权限表
create table Roles(
RoleID int primary key identity(1,1),
RoleName nvarchar(20) not null
)
3)管理员权限表
create table Admin_Roles(
ARID int identity(1,1),
AdminID int,
RoleID int,
constraint ARPK primary key(ARID,AdminID,RoleID),
constraint ARFK foreign key(AdminID) references Admin(AdminID),
constraint ARFK2 foreign key(RoleID) references Roles(RoleID)
)
4)评论表
create table Comment(
CommentID int primary key identity(1,1),
CommentTitle nvarchar(50) not null,
CommentContent ntext not null,
Commentsex ntext not null,
CommentDate datetime default getdate()
)
5)用户表
create table Users(
UserID int primary key identity(1,1),
UserName nvarchar(20) not null,
UserPassword nvarchar(20) not null,
UserEmail nvarchar(20) not null
)
6)用户评论表
create table Users_Comment(
UCID int identity(1,1),
UserID int,
CommentID int,
constraint UCPK primary key(UCID,UserID,CommentID),
constraint UCFK foreign key(UserID) references Users(UserID),
constraint UCFK2 foreign key(CommentID) references Comment(CommentID)
)
7)新闻表
create table News(
NewsID int primary key identity(1,1),
NewsTitle nvarchar(50) not null,
NewsContent ntext not null,
NewsDate datetime default getdate(),
NewsDesc nvarchar(50) not null,
NewsImagePath nvarchar(50),
NewsRate int,
NewsIsCheck bit,
NewsIsTop bit
)
8)新闻评论表
create table News_Comment(
NCommentID int identity(1,1),
NewsID int,
CommentID int,
constraint NCommentPK primary key(NCommentID,NewsID,CommentID),
constraint NCommentFK foreign key(NewsID) references News(NewsID),
constraint NCommentFK2 foreign key(CommentID) references Comment(CommentID) )
9)栏目表
create table Category(
CategoryID int primary key identity(1,1),
CategoryName nvarchar(50) not null,
CategoryPID int not null,
CategoryDesc nvarchar(50) not null
)
5.2 数据操作
1)数据插入操作
向用户表中添加一些新用户,SQL语句如下所示:
use 新闻发布系统
insert into 前台用户表(Uid,Username,Pass,Email) values(1,'sd','sd','d')
insert into 前台用户表(Uid,Username,Pass,Email) values(2,'lele','222','q')
insert into 前台用户表(Uid,Username,Pass,Email) values(3,'lala','333','y')
插入结果如图5.1所示
图5.1 用户信息表添加信息结果
向新闻内容表中插入一条新闻,SQL语句如下:
use 新闻发布系统
insert into 新闻内容表(Nid,Keyword,Content) values('1','qeq','12345678')
插入结果如图5.2所示
5.2新闻内容表添加新闻结果
2)简单数据查询
向新建表中插入新数据后,查询新用户信息,SQL语句如下所示:
use 新闻发布系统
select Uid,Username,Pass,Email
From 前台用户表
数据查询结果如图5.3所示
图5.3 查询新用户信息结果
3)为数据库表中列创建CHECK约束
在创建的用户表,为列sex创建CHECK约束,使其值只能为男、女,SQL语句如下所示:
use 新闻发布系统
alter table 用户表with check
add constraint s check(sex in('男','女'))
创建CHECK约束结果如图5.4所示:
图5.4 为sex创建s约束结果
4)为数据库表中列创建DEFAULT约束
新建用户后,为用户创建初始密码,即对用户表中列PassWord创建DEFAULT约束,创建SQL语
句如下所示:
use 新闻发布系统
ALTER table tb_User
ADD CONSTRAINT PassWord_Default DEFAULT '123' For PASSWORD
创建DEAFULT约束结果如图5.5所示
图5.5 为用户表列PassWord创建DEFAULT约束结果
5)模糊查询
根据密码备忘表中已插入信息,利用模糊查询带有关键字2的所有信息,SQL语句如下所示:use 新闻发布系统
select Nid,Keyword,Content
From 新闻内容表
Where Nid like '%2%'
查询结果如图5.6所示
图5.6 带有关键字2的所有新闻信息
6)创建触发器
在tb_User表中创建触发器,当删除tb_User表中用户信息时,检查该用户名是否为Admin(即超
级用户),如果是则不能删除该条用户信息。
create trigger Admin
on tb_User
after delete
as
if(select UserName from tb_User where UserName='Admin')=1
begin
print '超级管理员不能删除!'
rollback transaction
end
6总结
经过了两个星期的学习,完成对网站新闻发布系统的分析和数据库的实现。
在此过程中,我们重点分析系统并设计数据库。
根据对网站新闻发布系统地了解,初步分析系统需求,在需求分析基础上,对网站新闻发布系统进行总体设计。
通过画E-R图,完成对数据库的概念结构设计;将E-R图转化为关系模式,完成数据库的逻辑结构设计;将关系模式转化为数据库中的表,完成数据库的物理结构设计。
并利用SQL语句完成数据库中对象的创建、插入数据记录、查询记录、创建数据存储等。
新闻发布与管理系统的设计过程,是对软件工程与数据库课程相关内容的温习。
整个完成过程严格按照软件开发流程与数据库设计步骤进行,为后期的系统实现打下了坚实的基础。
由于我们缺乏对项目的开发经验,我们走了许多的弯路,不过在指导老师的辅导下,我们还是克服了重重困难,在预定的时间内完成了老师所分配的任务。
我们虽然遇到了很多的困难,但是只有自己真正的在实践中得到的才是你所需要的。
本次数据库课程设计我们都收获很大!
参考文献
[1] 严蔚敏,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,2002
[2] 林小玲.数据库原理及应用[M]. 北京:机械工业出版社,2011
[3] 苗雪兰,刘瑞新,宋会群.数据库系统原理及应用教程(第2版)[M].北京:机械工业出版社,2006
[4] 向阳.信息系统分析与设计(第1版)[M].北京:清华大学出版社,2009
[5] 卫红春.信息系统分析与设计[M].西安:西安电子科技大学出版社,2003
[6] 郑炜.朱怡安.软件工程[M].西安:西北工业大学出版社,2010。