当前位置:文档之家› 新闻发布系统数据库课程设计

新闻发布系统数据库课程设计

湖南人文科技学院计算机系课程设计说明书课程名称:《数据库原理课程设计》课程代码: 408015 题目:在线新闻发布系统年级/专业/班:07计算机科学和技术专业一班学生姓名:、吴念、陈浪、曾平桥、文韬、曾诚学号: 07408150、06、35、44、46、47指导教师:刘刚常开题时间: 2009 年 12 月 21 日完成时间: 2010 年 1 月 3 日目录摘要 (1)一、引言 (2)二、设计目的与任务 (2)三、设计方案 (2)1、需求分析 (2)1.1新闻发布系统数据库的数据需求 (2)1.2数据字典 (3)2、概念设计 (4)2.1新闻发布系统数据库中的实体集 (4)2.2新闻发布系统数据库中的联系集 (4)2.3新闻发布系统数据库中的E-R图 (4)2.4新闻发布系统数据库中数据库联系图(使用VISIO绘制) (5)3、逻辑设计 (6)4、数据库实现 (7)4.1 建立数据库模式、视图及索引 (7)四、结论 (10)五、致谢 (10)六、参考文献 (10)摘要随着计算机的普及,上网浏览新闻成为大多数人获取信息的主要途径。

网上资源丰富,数据量大,利用数据库能方便的对数据进行规划管理。

在线新闻发布系统是一个基于SQL Server 2005的网络数据库系统。

利用该数据库实现包括浏览,搜索、评论新闻,动态发布,删除,修改新闻信息等功能。

该数据库系统与一般的Access数据表和传统的基于文件系统的文件级数据信息,更便于管理和操作,而且也提供了更高的数据安全性,对于一个成熟的系统必须要有一个好的数据库的支持,而基于Sql Server的数据库在数据的筛选用户视图规划管理安全性等方面有相当大的优势。

关键词:SQL Server 2005、数据库、数据库设计AbstractWith the popularization of computer and Internet browsing news for most people to obtain information of the main way. Online resources are rich, large amount of data, using the database of data can be convenient planning management. Online news release system is based on a SQL Server 2005 of network database system. Using the database of realization for browsing, search and comment on the news release, delete, dynamic, modify news information etc. Function. This database systems with general Access tables and traditional file system files, more facilitate level data management and operation, but also provides a higher security of data, for a mature system must have a good database, and based on the support of the Sql Server database data user view in the aspects of safety management are considerable advantages.Key words: SQL 2005、Database、DBD《数据库原理与应用》课程设计--新闻发布系统数据库设计一、引言随着因特网的发展,越来越多的人喜欢网上聊天,网上交友,网上发布新闻信息等,并且被广泛应用于大,中小企业网站中。

网络新闻发布系统,即通过因特网可以让客户速度,方便地查找所要的信息,动态地了解企业最新发展状况,并且可以打印信息。

而一个好的新闻发布系统还应该具有良好的管理界面,即文件或图片的上传,新闻的删除,更新,并且,对网上新闻发布系统的管理也由浏览器页面来实现。

二、设计目的与任务通过该课程设计,学习数据库设计工具的使用,搞清数据库设计的基本方法、步骤和数据库设计各阶段的任务,完成对某一小型数据库设计和相应文档的编写工作。

使学生更加深入地掌握数据库系统分析与设计的基本概念和基本方法,提高从事数据库系统建设和管理工作的基本技能和能力。

三、设计方案1、需求分析1.1新闻发布系统数据库的数据需求用户分为一般用户(游民)、会员。

对用户来说,他们所关心的是新闻的浏览、搜索和评论,同时还要兼顾会员的管理功能。

通过分析,系统有以下功能:对一般用户而言:·用户可以浏览、搜索、评论新闻。

对管理员来说:·管理员可以对栏目进行增、删、改;·管理员可以对新闻进行增、删、改;·管理员可以对新闻模板进行增、删、改;·管理员可以对用户进行管理;对于新闻实体而言:·每个新闻只能对应一个栏目;·每个新闻对应一个新闻模板;·每个新闻模板对应不同栏目的多个新闻;通过以上分析,针对用户归纳出以下需求信息:·会员信息包括一些常用的数据项:会员编号,会员名,会员密码,真实姓名,会员E-mail,会员地址等;·管理员信息包括: 管理员编号,管理员名,管理员密码,真实姓名,管理员E-mail,管理员地址等;·新闻信息包括:添加人,添加时间,新闻标题,新闻内容,新闻栏目,新闻所属模板等1.2数据字典数据结构:user含义说明:是新闻发布系统的会员用户数据结构,定义了一个会员用户的有关信息组成:user_id , user_name , user_pass , user_realname , user_Email和user_address等数据结构:newsitem含义说明:是新闻发布新闻栏目的数据结构,定义了一个栏目的有关信息组成:newsitem_id , newsitem_name , 等( 其他部分略,将在后面提及)数据项:user_id含义说明:唯一标识每个会员用户别名:类型:int 型长度:8取值范围:0~65535取值含义:注册为会员的顺序编号数据项:user_name含义说明:会员名别名:类型:字符型长度:20取值范围:( 略)取值含义:数据项:user_pass含义说明:用户密码别名:类型:字符型长度:20取值范围:( 略)取值含义:数据项:user_realname含义说明:用户真实姓名别名:类型:字符型长度:20取值范围:( 略)取值含义:( 可以为空)数据项:user_Email含义说明:用户Email别名:类型:字符型长度:20取值范围:( 略)取值含义:数据项:user_address含义说明:用户地址别名:类型:字符型长度:20取值范围:( 略)取值含义:( 可以为空)(admin部分略)2、概念设计2.1新闻发布系统数据库中的实体集·实体集user,具有属性user_id , user_name , user_pass , user_realname , user_Email和user_address·实体集admin,具有属性admin_id , admin_name , admin_pass , admin_realname , admin_Email和admin_address·实体集news,具有的属性有news_id , news_titile , news_writer , news_time , news_contents 和newsitem_id·实体集newsitem,具有的属性有newsitem_id , newsitem_name·实体集template,具有的属性有template_id , template_name , template_content (其它略)2.2新闻发布系统数据库中的联系集·manage是admin和news , template , newsitem , user间的一个多对多联系。

·comment是user和admin对新闻news的一对多的联系2.3新闻发布系统数据库中的E-R图根据2.1节和2.2节的讨论,我们可以给出新闻发布系统数据库的E-R图(见图1)。

图2 新闻发布系统的E-R图2.4新闻发布系统数据库中数据库联系图(使用VISIO绘制)图3 新闻发布系统的数据关系图3、逻辑设计把图1的E-R图转换为关系模式,如下所示(有实下划线的为主码、虚下划线的为外码):·user = ( user_id , user_name , user_pass , user_realname , user_email )·admin = ( admin_id , admin_name , admin_pass , admin_realname , admin_email , admin_address )·news = ( news_id , news_title , news_writer , news_date , news_content , newsitem_id , template_id)·template = ( template_id , template_name , template_content )·newsitem = ( newsitem_id , newsitem_name , newsitem_detail )·manage = (admin_id , user_id , news_id , comment_id , newsitem_id , template_id , manage_content , manage_history )·comment = ( comment_id , user_id , admin_id , comment_datecomment_content , news_id )4、数据库实现至此,我们可以建立本系统所需要的数据库了。

4.1 建立数据库模式、视图及索引建立数据库:CREATE DATABASE [dbDesign] ON PRIMARY( NAME = 'dbDesign', FILENAME = 'F:\课程设计\数据库课程设计\db\dbDesign.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )LOG ON( NAME = 'dbDesign_log', FILENAME = 'F:\课程设计\数据库课程设计\db\dbDesign_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%) GO建表:(1) admin表CREATE TABLE [dbo].[admin]([admin_id] [int] IDENTITY(1,1) NOT NULL,[admin_name] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,[admin_pass] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,[admin_realname] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,[admin_Email] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,[admin_address] [varchar](30) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_admin] PRIMARY KEY CLUSTERED)(2) news表CREATE TABLE [dbo].[news]([news_id] [int] IDENTITY(1,1) NOT NULL,[news_title] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,[news_writer] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,[news_date] [datetime] NOT NULL,[news_content] [text] COLLATE Chinese_PRC_CI_AS NOT NULL,[newsitem_id] [int] NOT NULL,[template_id] [int] NOT NULL)(3) comment表CREATE TABLE [dbo].[comment]([comment_id] [int] NOT NULL,[news_id] [int] NOT NULL,[user_d] [int] NOT NULL,[admin_id] [int] NULL,[comment_date] [datetime] NOT NULL,[comment_content] [text] COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_comment] PRIMARY KEY CLUSTERED)(4) manage表CREATE TABLE [dbo].[manage]([admin_id] [int] NOT NULL,[manage_content] [text] COLLATE Chinese_PRC_CI_AS NOT NULL,[manage_history] [text] COLLATE Chinese_PRC_CI_AS NULL,[user_id] [int] NULL,[news_id] [int] NULL,[template_id] [int] NULL,[newsitem_id] [int] NULL,[comment_id] [int] NULL)(5) newsitem表CREATE TABLE [dbo].[newsitem]([newsitem_id] [int] IDENTITY(1,1) NOT NULL,[newsitem_name] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [newsitem_detail] [text] COLLATE Chinese_PRC_CI_AS NOT NULL)(6) template表CREATE TABLE [dbo].[template]([template_id] [int] IDENTITY(1,1) NOT NULL,[template_name] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [template_content] [text] COLLATE Chinese_PRC_CI_AS NOT NULL)(7) user表CREATE TABLE [dbo].[user]([user_id] [int] IDENTITY(1,1) NOT NULL,[user_name] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,[user_pass] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,[user_realname] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,[user_Email] [varchar](30) COLLATE Chinese_PRC_CI_AS NULL,[user_address] [varchar](30) COLLATE Chinese_PRC_CI_AS NULL)建立约束和联系(1) 和comment表有关的约束和联系USE [dbDesign]GOALTER TABLE [dbo].[comment] WITH CHECK ADD CONSTRAINT[FK_comment_admin] FOREIGN KEY([comment_adminid])REFERENCES [dbo].[admin] ([admin_id])GOALTER TABLE [dbo].[comment] WITH CHECK ADD CONSTRAINT[FK_comment_news] FOREIGN KEY([comment_newsid])REFERENCES [dbo].[news] ([news_id])GOALTER TABLE [dbo].[comment] WITH CHECK ADD CONSTRAINT[FK_comment_user] FOREIGN KEY([comment_userid])REFERENCES [dbo].[user] ([user_id])(3) 和manage表有关的约束和联系ALTER TABLE [dbo].[manage] WITH CHECK ADD CONSTRAINT[FK_manage_admin] FOREIGN KEY([manage_adminid])REFERENCES [dbo].[admin] ([admin_id])GOALTER TABLE [dbo].[manage] WITH CHECK ADD CONSTRAINT[FK_manage_news] FOREIGN KEY([manage_newsid])REFERENCES [dbo].[news] ([news_id])GOALTER TABLE [dbo].[manage] WITH CHECK ADD CONSTRAINT[FK_manage_newsitem] FOREIGN KEY([manage_newsitemid])REFERENCES [dbo].[newsitem] ([newsitem_id])GOALTER TABLE [dbo].[manage] WITH CHECK ADD CONSTRAINT[FK_manage_template] FOREIGN KEY([manage_templateid])REFERENCES [dbo].[template] ([template_id])GOALTER TABLE [dbo].[manage] WITH CHECK ADD CONSTRAINT [FK_manage_user] FOREIGN KEY([manage_userid])REFERENCES [dbo].[user] ([user_id])(4) 和news表有关的约束和联系ALTER TABLE [dbo].[news] WITH CHECK ADD CONSTRAINT [FK_news_newsitem] FOREIGN KEY([newsitem_id])REFERENCES [dbo].[newsitem] ([newsitem_id])GOALTER TABLE [dbo].[news] WITH CHECK ADD CONSTRAINT [FK_news_template] FOREIGN KEY([template_id])REFERENCES [dbo].[template] ([template_id])……四、结论经过了两个星期的学习和工作,在教师和同学们的鼓励和帮助下,我们终于完成了软件工程的课程设计。

相关主题