《数据库课程设计(新闻发布系统).doc》由会员分享,可在线阅读,更多相关《数据库课程设计(新闻发布系统).doc(23页珍藏版)》请在三一办公上搜索。
1、课程设计设计说明书网站新闻发布与管理系统的数据库设计和数据操作学生姓名鲁泽民学 号1018064030班 级网络101班成 绩 指导教师杨刚数学与计算机科学学院 2013 年 6 月 17日 课程设计任务书20122013学年 第二学期课程设计名称:课程设计 课程设计题目:网站新闻发布与管理系统的数据库设计和数据操作 完 成 期 限:自 2013年6月17日 至 2013年6月28日 共2周设计内容:1.任务说明备忘录管理系统可以为用户提供日常信息管理,主要为使用者提供对个人信息更方便的记录和查询等功能。具体要求实现以下一些基本功能:1)日常记录管理:记录日常生活或者工作事件,以免遗忘,并提供
2、记录的查询、浏览、修改和删除等管理功能。2)通讯薄管理:记录朋友、亲属、同事等联系人的通讯信息,以免遗忘,并提供记录的查询、浏览、修改和删除等管理功能。3)密码备忘管理:记录日常使用的密码信息,比如银行帐号密码、邮箱密码、一些网站登陆密码等,以免遗忘,并提供记录的查询、浏览、修改和删除等管理功能。4)系统维护:操作员管理、权限管理等。2. 要求1) 在调查或了解的基础上,进行系统分析。 2) 根据逻辑设计方案,进行系统设计。 3) 课程设计的重点在系统的分析和数据库设计方面。3. 参考资料1 苗雪兰,刘瑞新,宋会群.数据库系统原理及应用教程(第2版)M.北京:机械工业出版社,2006.2 向阳
3、.信息系统分析与设计(第1版)M.北京:清华大学出版社,2009.3 卫红春.信息系统分析与设计M.西安:西安电子科技大学出版社,2003.指导教师:杨刚 教研室负责人:陈波课程设计评阅评语: 指导教师签名: 年 月 日摘 要设计了一个备忘录管理系统,主要完成了系统分析、数据库设计和实现、数据操作等内容。该系统具体功能有:记录日常生活或者工作事件,记录朋友、亲属、同事等联系人的通讯信息,也可以记录日常使用的密码信息等,数据库实现采用SQL Server 2008数据库管理系统。关键词:备忘;管理系统;系统分析;SQL Server目 录1 课题描述12 需求分析22.1 功能分析22.2数据流
4、程分析22.3 数据字典33 系统总体设计53.1 模块划分53.2 系统功能模块图54 数据库的设计64.1 概念结构设计64.2 逻辑结构设计64.3 数据库物理结构设计75 数据库的数据操作95.1 数据库的创建95.2 数据操作96 总结18参考文献191 课题描述 1)内容本次课程设计是要设计一个网站新闻发布与管理系统,完成对网站新闻发布与管理系统数据库的设计并进行数据操作。网站新闻发布与管理系统可以发布和管理新闻信息,主要实现用户浏览与评论新闻和管理员发布与管理新闻以及管理评论。具体实现一些功能,为用户提供用户管理,为管理员提供新闻管理、权限管理、管理员管理和评论管理。 2)目的本
5、次课程设计重在对学习过的理论知识进行实际应用。在了解相关信息的基础上,进行系统分析。根据逻辑设计方案,进行系统设计,重在系统的分析与数据库设计方面。加强掌握数据库设计流程,为系统实现奠定重要基础。2 需求分析2.1 功能分析设计管理系统对于用户和管理员,应实现以下功能:1)用户管理:提供用户注册,注册后查看和修改个人信息和对新闻发表评论的功能。2)管理员管理:高权限管理员(超级管理员)可新增、查看、修改和删除低权限管理员信息。3)权限管理:给管理员赋权,设定某一权限可操作的模块和是否可管理新闻评论。3)新闻管理:有相关权限的管理员可发布和管理新闻信息。3)评论管理:有相关权限的管理员可审核新闻
6、评论。2.2数据流程分析1)数据流程分析的工具数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理元素,它只是描绘信息在系统中流动和被处理的情况。数据流图的四种基本符号和具体描述如图2.1所示。加工外部实体数据存储数据流图2.1 数据流图的基本符号数据流图在系统分析中的主要作用体现在以下几点:(1)数据流图是系统逻辑功能的图形表示,即使不是专业的计算机人员也容易理解它,所以它是分析员和用户之间极好的通信工具。(2) 数据流图能清楚地描绘数据在系统中的流动和被处理的逻辑过程。(3)数据流图是系统逻辑功能的图形表示,容易理解。2
7、)系统数据流图通过对系统的分析,第0层数据流图如图2.1所示,第1层数据流图如2.1所示,通讯录管理模块第2层数据流图如图2.3所示。网站新闻发布与管理系统 浏览新闻、发表评论 发布与管理新闻管理员用户 展示新闻 图2.1 第0层数据流图用户管理评论管理新闻管理管理员管理权限管理管理员用户 用户数据用户表 用户信息权限_模块表权限_评论表 管理员_权限表管理员表新闻表评论表图2.2 第1层数据流图2.3 数据字典数据字典(DD,Data Dictionary)是以特定格式记录下来的、对系统的数据流程图中各个基本要素(数据流、加工、存储和外部项)的内容和特征所作的完整的定义和说明。数据字典是对数
8、据流程图的重要补充和说明。数据字典中有五种类型的条目:外部实体,数据流,数据存储,数据项和加工。数据字典中包括数据定义,但除了它之外,还包含其它一些信息。一般信息,包括名字,别名和描述。针对以上数据流图,给出部分项的说明。(1)用户信息数据流名:用户信息别名:描述:用户信息组成:用户信息 = 用户编号+用户名称+用户密码+用户Email备注:(2)管理员信息数据流名:管理员信息别名:描述:管理员信息组成:管理员信息 = 管理员编号+管理员名称+管理员密码备注:(3)新闻信息数据流名:新闻信息别名:描述:新闻信息组成:新闻信息 = 新闻编号+新闻标题+新闻内容+发布时间+新闻描述+图片路径+点击
9、率+是否审核通过+是否置顶备注:(4)权限信息数据流名:权限信息别名:描述:权限信息组成:权限信息 = 权限编号+权限名称备注:(5)模块信息数据流名:模块信息别名:描述:模块信息组成:模块信息 = 模块编号+模块名称+模块父编号备注:模块是说明管理员管理新闻的类型,如文章管理,图片管理等。(6)栏目信息数据流名:栏目信息别名:描述:栏目信息组成:栏目信息 = 栏目编号+栏目名称+栏目父编号+栏目描述备注:栏目是说明新闻所属的类别,如国内新闻,国际新闻。父编号表示其嵌套关系,如国内的娱乐新闻。(7)评论信息数据流名:权评论信息别名:描述:评论信息组成:评论信息 = 评论编号+评论标题+评论内容
10、+评论时间备注:3 系统总体设计3.1 模块划分设计一个备忘录管理系统,具体分为四大模块,如下:(1)用户管理模块:实现新增用户,查看和修改用户信息功能;(2)管理员管理模块:实现新增管理员,查看、修改和删除管理员信息功能;(3)权限管理模块:实现对管理员、对管理的模块和管理的评论赋权功能;(4)新闻管理模块:实现有相关权限的管理员对新闻的增加、查看、修改和删除功能;(5)评论管理模块:实现有相关权限的管理员对评论的审核和删除功能;3.2 系统功能模块图备忘录管理系统是利用计算机实现对用户记录信息的管理,严格按照系统总体设计模块划分方案,分为用户管理、管理员管理、权限管理、新闻管理和评论管理五
11、大模块。系统功能框架图如下所示:新增新闻信息管理新闻信息审核评论删除评论注册新管理员评论赋权模块赋权管理员赋权修改用户信息查看用户信息注册新用户网站新闻发表与管理系统评论管理新闻管理权限管理管理员管理用户管理管理管理员信息图3.1 系统功能模块图4 数据库的设计4.1 概念结构设计概念结构设计是将系统需求分析得到的用户需求抽象为反映用户观点的信息结构的过程。概念结构设计的结果是数据库的概念模型,即E-R模型。由于它是从现实世界的角度进行抽象和描述,所以它与计算机硬件、数据库逻辑结构和支持数据库的DBMS无关。在数据库设计中应重视概念结构设计,它是整个数据库设计的关键,是为计算机存储数据做准备工
12、作。根据需求分析结果,主要有用户实体、日常记录本实体、通讯录实体和密码备忘录实体4个实体。各实体属性图如图4.1-4.7所示,系统总体E-R图如图4.8所示。用户 用户Email用户编号用户密码用户名称图4.1 用户信息的实体属性图 管理员 管理员编号管理员密码管理员名称图4.2 管理员信息的实体属性图 权限 权限编号号权限名称码图4.3 权限信息的实体属性图 点击率图片路径新闻描述是否审核是否置顶新闻 发布时间新闻编号新闻内容新闻标题图4.4 新闻信息的实体属性图 模块 模块编号模块父编号模块名称图4.5 模块信息的实体属性图 栏目 栏目父编号栏目编号栏目描述栏目名称图4.6 栏目信息的实体
13、属性图 评论 评论时间评论编号评论内容评论标题图4.7 评论信息的实体属性图 管理员属于用户浏览 发表栏目属于新闻属于评论模块管理属于管理角色管理员_权限编号 权限_模块编号权限_评论编号新闻_评论编号新闻_模块编号用户_评论编号新闻_栏目编号图4.8 系统总体E-R图 4.2 逻辑结构设计E-R图表示的概念模型是用户数据要求的形式化。E-R图是独立于任何一种数据模型的概念信息结构,也不为任何一个DBMS所支持。逻辑结构设计的任务就是把概念结构设计好的基本E-R图转换为与选用的某个具体的DBMS所支持的数据模型相符合的逻辑结构,设计的结果是一组关系模式。将图4.8中系统E-R图转换成关系模型如
14、下:用户(用户编号,用户名称,用户密码,用户Email);管理员(管理员编号,管理员名称,管理员密码);权限(权限编号,权限名称);新闻(新闻编号,新闻标题,新闻内容,发布时间,新闻描述,图片路径,点击率,是否审核,是否置顶);模块(模块编号,模块名称,模块父编号);栏目(栏目编号,栏目名称,栏目父编号,栏目描述);评论(评论编号,评论标题,评论内容,评论时间);管理员_权限(管理员-权限编号,管理员编号,权限编号);权限_模块(权限-模块编号,权限编号,模块编号);权限_评论(权限-评论编号,权限编号);新闻_模块(新闻-模块编号,新闻编号,模块编号);新闻_栏目(新闻-栏目编号,新闻编号,
15、栏目编号);新闻_评论(新闻-评论编号,新闻编号,评论编号);用户_评论(用户-评论编号,用户编号,评论编号);4.3 数据库物理结构设计数据库的物理结构主要指数据库在物理设备上的存储结构与存取方法,它依赖于给定的计算机系统。设计的任务是选择合适的存储结构和存取路径,也就是设计数据库的内模式。内模式和逻辑模式不一样,不直接面向用户,一般的用户不一定、也不需要了解内模式的设计细节。内模式的设计可以不考虑用户理解的方便,其主要的设计目标有两个:其一提高数据库的性能,特别是满足主要应用的性能要求;其二能够有效地利用存储空间。根据数据库物理结构设计理论,将该系统逻辑结构转换为物理结构,如下所示:(1)
16、用户信息表用户信息表(Users)主要用来存放用户账号信息,如表4.1所示。表4.1用户信息表列名数据类型允许NULL值说明UserIDint否用户编号UserNamenvarchar(20)否用户名称UserPasswordnvarchar(20)否用户密码UserEmailnvarchar(20)否用户Email(2)管理员信息表管理员信息表(Admin)主要用来存放用户账号信息,如表4.2所示。表4.2管理员信息表列名数据类型允许NULL值说明AdminIDint否管理员编号AdminNameinvarchar(20)否管理员名称AdminPasswordnvarchar(20)否管理员
17、密码(3)权限信息表权限信息表(Roles)主要用来存放权限信息,如表4.3所示。表4.3权限信息表列名数据类型允许NULL值说明RoleIDint否权限编号RoleNameNvarchar(20)否权限名称(4)新闻信息表新闻信息表(News)主要用来存放新闻信息,如图4.4所示。表4.4新闻信息表列名数据类型允许NULL值说明NewsIDint否新闻编号NewsTitlenvarchar(50)否新闻标题NewsContentntext否新闻内容NewsDatedatetime是发布时间NewsDescnvarchar(50)否新闻描述NewImagePathnvarchar(50)否图片
18、路径NewsRateint否点击率NewsIsCheckbit否是否审核NewsIsTopbit否是否置顶(5)模块信息表模块信息表(Modules)主要用来存放新闻模块信息,如图4.5所示。表4.5模块信息表列名数据类型允许NULL值说明ModuleIDint否模块编号ModuleNamenvarchar(50)否模块名称ModulePIDintt否模块父编号(6)栏目信息表栏目信息表(Categroy)主要用来存放新闻栏目信息,如图4.6所示。表4.6栏目信息表列名数据类型允许NULL值说明CategroyIDint否栏目编号CategroyNamenvarchar(50)否栏目名称Cat
19、egroyPIDint否栏目父编号CategroyDescnvarchar(50)否栏目描述(7)评论信息表评论信息表(Comment)主要用来存放新闻评论信息,如图4.7所示。表4.7评论信息表列名数据类型允许NULL值说明CommentIDint否评论编号CommentTitlenvarchar(50)否评论标题CommentContentntext否评论内容CommentDatedatetime是评论时间(8)管理员_权限表管理员_权限表(Admin_Roles)主要用来存放管理员和权限的关系,如图4.8所示。表4.8管理员_权限表列名数据类型允许NULL值说明ARIDint否管理员_权
20、限编号AdminIDint否管理员编号RoleIDint否权限编号(9)权限_模块表权限_模块表(Roles_Modules)主要用来存权限和模块的关系,如图4.9所示。表4.9权限_模块表列名数据类型允许NULL值说明RMIDint否权限_模块编号RoleIDint否权限编号ModuleIDint否模块编号(10)权限_评论表权限_评论表(Roles_Comment)主要用来存放权限和评论的关系,如图4.10所示。表4.10权限_评论表列名数据类型允许NULL值说明RCIDint否权限_评论编号RoleIDint否权限编号(11)新闻_模块表新闻_模块表(News_Modules)主要用来存
21、放新闻和模块的关系,如图4.11所示。表4.11新闻_模块表列名数据类型允许NULL值说明NMIDint否新闻_模块编号NewsIDint否新闻编号ModuleIDint否模块编号(12)新闻_栏目表新闻_栏目表(News_Categroy)主要用来存放新闻和栏目的关系,如图4.12所示。表4.12新闻_栏目表列名数据类型允许NULL值说明NCategroyIDint否新闻_栏目编号NewsIDint否新闻编号CategroyIDint否栏目编号(13)新闻_评论表新闻_评论表(News_Comment)主要用来存放新闻和评论的关系,如图4.13所示。表4.13新闻_评论表列名数据类型允许NU
22、LL值说明NCommentIDint否新闻_评论编号NewsIDint否新闻编号CommentIDint否评论编号(14)用户_评论表用户_评论表(Users_Comment)主要用来存放用户和评论的关系,如图4.14所示。表4.14用户_评论表列名数据类型允许NULL值说明UCIDint否用户_评论编号UserIDint否用户编号CommentIDint否评论编号5 数据库的数据操作5.1 数据库的创建根据数据库设计结果,利用SQL Server Management 工具,用SQL语句创建数据库。创建数据库语句如下所示:create database NewsManagementSyste
23、muse NewsManagementSystem-管理员表create table Admin(AdminID int primary key identity(1,1),AdminName nvarchar(20) not null,AdminPassword nvarchar(20) not null)-权限表create table Roles(RoleID int primary key identity(1,1),RoleName nvarchar(20) not null)-管理员权限表create table Admin_Roles(ARID int identity(1,1)
24、,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)-模块表create table Modules(ModuleID int primary key identity(1,1),ModuleName nvarchar(50) not null,Module
25、PID int not null)-权限模块表create table Roles_Modules(RMID int identity(1,1),RoleID int,ModuleID int,constraint RMPK primary key(RMID,RoleID,ModuleID),constraint RMFK foreign key(RoleID) references Roles(RoleID),constraint RMFK2 foreign key(ModuleID) references Modules(ModuleID)-评论表create table Comment(
26、CommentID int primary key identity(1,1),CommentTitle nvarchar(50) not null,CommentContent ntext not null,CommentDate datetime default getdate()-权限评论表create table Roles_Comment(RCID int identity(1,1),RoleID int,constraint RCPK primary key(RCID,RoleID),constraint RCFK foreign key(RoleID) references Ro
27、les(RoleID),)-用户表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)-用户评论表create table Users_Comment(UCID int identity(1,1),UserID int,CommentID int,constraint UCPK primary key(UCID,UserID,CommentI
28、D),constraint UCFK foreign key(UserID) references Users(UserID),constraint UCFK2 foreign key(CommentID) references Comment(CommentID)-新闻表create table News(NewsID int primary key identity(1,1),NewsTitle nvarchar(50) not null,NewsContent ntext not null,NewsDate datetime default getdate(),NewsDesc nvar
29、char(50) not null,NewsImagePath nvarchar(50),NewsRate int,NewsIsCheck bit,NewsIsTop bit)-新闻评论表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(NewsI
30、D),constraint NCommentFK2 foreign key(CommentID) references Comment(CommentID)-新闻模块表create table News_Modules(NMID int identity(1,1),NewsID int,ModuleID int,constraint NMPK primary key(NMID,NewsID,ModuleID),constraint NMFK foreign key(NewsID) references News(NewsID),constraint NMFK2 foreign key(Modu
31、leID) references Modules(ModuleID)-栏目表create table Category(CategoryID int primary key identity(1,1),CategoryName nvarchar(50) not null,CategoryPID int not null,CategoryDesc nvarchar(50) not null)-新闻栏目表create table News_Category(NCategroyID int identity(1,1),NewsID int,CategoryID int,constraint NCat
32、egroyPK primary key(NCategroyID,NewsID,CategoryID),constraint NCategroyFK foreign key(NewsID) references News(NewsID),constraint NCategroyFK2 foreign key(CategoryID) references Category(CategoryID)5.2 数据操作1)数据插入操作向用户表中添加一些新用户,SQL语句如下所示:use db_Memoinsert tb_User values(Lee,111,2)insert tb_User values
33、(Chen,222,3)insert tb_User values(Qin,333,4)数据插入结果如图5.1所示图5.1 用户信息表添加信息结果2)简单数据查询向新建表中插入新数据后,查询日常记录信息,SQL语句如下所示:use db_Memoselect Theme,Content,Date,Week,Time,City,WeatherFrom tb_DaiRecord数据查询结果如图5.2所示图5.2 查询所有日常记录信息结果3)嵌套查询根据数据库中已添加的信息,现在查询用户Lee的所有好友通讯录信息,SQL语句如下所示:use db_Memoselect Name,Tel,Email,
34、Groups,MemoFrom tb_AddBook,tb_UserWhere tb_AddBook.UserNum=tb_User.UserNum and UserNum=Lee数据查询结果如图5.3所示图5.3 用户lee的所有好友通讯录信息4)为数据库表中列创建CHECK约束在创建的日常记录信息表,为列Week创建CHECK约束,使其值只能为星期一、星期二、星期三、星期四、星期五、星期六、星期日,SQL语句如下所示:use db_Memoalter table tb_DaiRecord with checkadd constraint CHECK_WEEK check(week=星期一
35、or week=星期二 or week=星期三 or week=星期四 or week=星期五 or week=星期六 or week=星期日) 创建CHECK约束结果如图5.4所示:图5.4 为日常记录表中列Week创建CHECK_WEEK约束结果5)为数据库表中列创建DEFAULT约束新建用户后,为用户创建初始密码,即对用户表中列PassWord创建DEFAULT约束,创建SQL语句如下所示:use db_MemoALTER table tb_User ADD CONSTRAINT PassWord_Default DEFAULT 123 For PASSWORD创建DEAFULT约束结果
36、如图5.5所示图5.5 为用户表列PassWord创建DEFAULT约束结果6)模糊查询根据密码备忘表中已插入信息,利用模糊查询带有关键字QQ的所有信息,SQL语句如下所示:use db_Memoselect TypeName,Type,LoginName,Password,MemoFrom tb_PassRecordWhere TypeName like %QQ%查询结果如图5.6所示图5.6 带有关键字QQ的所有密码备忘信息7)创建触发器在tb_User表中创建触发器,当删除tb_User表中用户信息时,检查该用户名是否为Admin(即超级用户),如果是则不能删除该条用户信息。create
37、 trigger Adminon tb_Userafter deleteasif(select UserName from tb_User where UserName=Admin)=1beginprint 超级管理员不能删除!rollback transactionend6 总结通过本次数据库课程设计,完成对备忘录管理系统的分析和数据库的实现。在过程中,将重点放在系统的分析与数据库设计方面。根据了解备忘录信息,初步分析系统需求,在需求分析基础上,对备忘录管理系统进行总体设计。通过画E-R图,完成对数据库的概念结构设计;将E-R图转化为关系模式,完成数据库的逻辑结构设计;将关系模式转化为数据库
38、中的表,完成数据库的物理结构设计。并利用SQL语句完成数据库中对象的创建、插入数据记录、查询记录、创建数据存储等。备忘录管理系统的设计过程,是对软件工程与数据库课程相关内容的温习。整个完成过程严格按照软件开发流程与数据库设计步骤进行,为后期的系统实现打下了坚实的基础。该系统只满足于用户实现对日常记录、通讯录和密码备忘功能的实现,可扩展功能很多,有待进一步完善。相信通过本次数据库课程设计后,在未来的软件开发过程中,我们将更加规范自己的设计过程,使所开发系统更加稳定可靠,具有更多功能,服务于更多用户。参考文献1 严蔚敏,吴伟民.数据结构(C语言版)M.北京:清华大学出版社,20022 林小玲.数据库原理及应用M. 北京:机械工业出版社,20113 苗雪兰,刘瑞新,宋会群.数据库系统原理及应用教程(第2版)M.北京:机械工业出版社,2006.4 向阳.信息系统分析与设计(第1版)M.北京:清华大学出版社,2009.5 卫红春.信息系统分析与设计M.西安:西安电子科技大学出版社,20036 郑炜,朱怡安.软件工程M.西安:西北工业大学出版社,2010