数据库课程设计报告--个人博客后台管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
琼州学院电子信息工程学院
《数据库系统原理》课程设计报告
项目名称:个人博客后台管理系统数据库设计
专业:计算机科学与技术
年级: 2013级(专升本)
姓名: ***** 学号:
指导老师:
2014年9月
摘要
随着Internet的广泛应用和计算机的日益普及,动手写日志的人越来越少,而为了更快更便捷地记录人们的所想所思,博客Blog(Web log的混合词)也应运而生,Blog是继Email、BBS、QQ之后出现的第四种网络交流方式,作为一种新的生活方式、新的工作方式和新的学习方式正在改变着我们的生活,同时也作为一种新兴的网络媒体与互联网的第四块里程碑,其影响力在一定程度上已经超越了传统媒体,作为专业领域知识与传播模式,它将作为该领域具有影响力的事物之一。
对于个人博客而言,作为个人博客后台管理、不定期发布新的文章的网站,实现了用户之间的信息交流,提供发布文章、管理文章、评论管理等功能,博客不仅能够让用户通过博客充分展现自我,还可以加强人与人之间的交流。
本个人博客后台管理系统采用B/S模式,后台数据库选用MySql,阐述了个人博客后台管理中所应具有的基本功能、设计、实现。
通过集中式的信息数据库,将各方面的工作有机地结合为一个整体,大大提高了信息管理的质量和水平,信息处理的及时性、有效性、高效性和方便性。
关键词:博客;客管理;PHP;MySql
目录
1.引言 (1)
2.可行性分析 (2)
2.1可行性研究 (2)
2.2技术可行性 (2)
2.3经济可行性 (2)
2.4操作可行性 (2)
3.个人博客后台管理系统设计开发各阶段 (3)
3.1需求分析阶段 (3)
3.1.1概述 (3)
3.1.2处理对象 (3)
3.1.3处理功能及要求 (4)
3.1.4安全性和完整性要求 (4)
3.2概念设计阶段 (5)
3.2.1 概述 (5)
3.2.2 任务与目标 (5)
3.2.3 阶段结果 (6)
3.3逻辑设计阶段 (7)
3.3.1 逻辑设计的任务和目标 (7)
3.3.2 将E-R图转换为关系模型 (7)
3.3.3模型优化 (8)
3.3.4数据库模式定义 (8)
3.3.5数据处理 (9)
3.4物理设计阶段 (10)
3.4.1物理设计阶段的目标与任务 (10)
3.4.2数据存储方面 (10)
3.4.3系统功能模块 (10)
4.数据库实施阶段 (11)
4.1建立数据库、数据表 (11)
4.1.1 建立数据库 (11)
4.1.2 建立数据表 (11)
4.2数据入库 (12)
5.系统调试和测试 (13)
6.设计反思 (14)
6.1总结 (14)
6.2存在的问题及建议 (14)
致谢 (16)
参考文献 (17)
附录1 数据(基本表)查看 (18)
附录2 所有的SQL运行语句 (21)
附录3 系统的运行界面 (22)
1.引言
随着社会信息量的爆炸性增长,人们的工作、学习、生活的压力越来越大,生活节奏越来越快,时间变得越来越宝贵,越来越多的人更关注时间的使用效率、情感传递的及时性。
日记等手写的倾注情感的东西,随着网络和社会媒体技术的发展,博客应运而生,能让人们更快更及时的表达自己的所想所思所悟,既减少了买笔记本和笔的费用,又大大地减少了写字的时间,而且还可以让日志“有声有画”,博客成为了人们简便又贴心的伴侣,用来存放自己心底话“垃圾桶”,可以容纳我们所有想说的,所想的或者分享学习宝贵经验,还可以加强了人们之间的信息交流,而且可以跨时空进行无缝交流,通过文字进行共享资源、相互学习、相互扶持。
个人博客后台管理让每个人使用方便而有效的方式来管理自己的“心情瓶子”。
在计算机网络不断深化改进和信息爆炸的今天,对忙碌生活的个人而言,如果用个人博客后台管理系统来管理自己的心情,不仅大大降低了买本子等支付费用,而且还提高了时间利用的有效性和发布的及时性,为此博客给人们带来很大的便利。
这既方便了使用者对它的操作,提高信息管理的质量和水平,做到高效、智能化管理,从而达到个人博客信息管理效率的目的,采用数据库技术生成的个人博客后台管理系统,将会使人们喜欢上发布和浏览博客的及时性和有效性,特别是对于那些忙碌又生活压力大,或者是乐于分享学习经验、新技术的人们,博客真是他们的贴心小助手。
本文以人们的实际生活需求为基础,开发高效便民的个人博客后台管理系统。
全文分为目录、需求分析、概要设计、逻辑设计、物理设计,以及系统的实现等全过程。
在程序设计与调试上采用了自上而下,逐步细化,逐步完善的原则。
采用结构化的功能模块设计系统功能,可读性好,易于扩充。
基本功能全面,系统可读性好,易于维护、更新,安全性好。
2.可行性分析
2.1可行性研究
与个人主页相比较,博客的使用更方便、交互性更强。
与传统的电子邮件、BBS和ICQ这三种互联网沟通方式相比,博客是一种较严肃的沟通平台。
BBS公共匿名性很强,而个人性很弱,因此缺乏约束。
电子邮件和ICQ则是多用于个人间的通讯,而博客是个人性和公共性的结合。
博客是个人在网上展示自己、与别人沟通交流的综合平台,它的管理比BBS简单的多。
2.2技术可行性
本系统使用eclipse PHP工具开发,数据库使用Mysql数据库,服务器是wamp集成环境。
本人通过在校的学习,已经熟练掌握了这几种软件的开发技术,再加上指导老师的悉心帮助,因此技术上是可行的。
2.3经济可行性
本系统的开发需要资金甚少,系统开发运行后,管理员对日志发表、日志浏览和评论进行管理。
因此在经济上是绝对可行的。
2.4操作可行性
本系统直观易懂,使用方便,用户可以直接上手。
对于管理员,只要经过简单的培训,也可轻松管理本系统。
3.个人博客后台管理系统设计开发各阶段
3.1需求分析阶段
3.1.1概述
进行系统设计,首先要对系统的现状进行分析。
根据系统的目标、需求和功能,制定和选择一个较好的系统方案,从而达到一个合理的优化系统。
随着社会的竞争日益残酷,人们的时间显得越来越宝贵,但是正由于这些来自各方面的压力,人们所承受的心理压力也逐渐变大,所以需要那么一个地方去宣泄或者交流,但是又要满足时间短,及时表达,操作简单和便利,所以就孕育了博客的萌芽,通过博客,使想要传达的信息可以高效地发布,给人们交流搭建了一个桥梁,实现跨时空对话,增强了信息交流的实时性,给使用管理者带来了极大的方便。
需求分析是在于根据用户的特点,和用户进行详细地洽谈,弄清用户对开发的数据库应用系统的确切要求。
数据库设计的第一步是明确数据库的目的和如何使用,也就是说需要从数据库中得到哪些信息。
明确目的之后,就可以确定您需要保存哪些主题的信息(表),以及每个主题需要保存哪些信息(表中字段)。
在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。
这样,就把一个大的系统分解成了几个小系统。
这里把系统的层次划分为了三个部分:1、日志发布 2、日志浏览 3、评论管理。
能够实现以下功能:
① 能够进行日志发布的功能;
②能够进行日志浏览的功能;
③能够进行评论管理的功能;
3.1.2处理对象
个人资料:编号,用户名,密码,昵称,电子邮箱,个人描述。
日志信息:日志编号,日志标题,日志分类,日志内容,发表时间。
评论管理信息:评论编号,日志编号,日志日期,评论内容。
3.1.3处理功能及要求
1.能够存储一定数量的博文信息,并方便有效的进行相应的文字信息数据操作和管理,这主要包括:
1) 博文信息的录入、删除及修改。
2) 博文的发表信息。
2.能够对管理员进行相应的信息存储与管理,这其中包括:管理员个人信息的修改。
3.能够对日志的评论进行管理,这其中包括:对日志的评论进行删除、回复。
4.能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询。
5.对查询、统计的结果能够列表显示。
3.1.4安全性和完整性要求
1)安全性要求
系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。
安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。
2)完整性要求
系统完整性要求系统中数据的正确性以及相容性。
可通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。
3.2概念设计阶段
3.2.1 概述
系统开发的总体目标是实现个人博客后台管理的系统化和自动化,极大地实现了博主的发博文及时性,减少了需要购买本子和笔的成本,给博主提供简单的操作,大大地让广大人民对之喜爱有加,这不仅提高管理的质量和水平,而且做到高效、智能化管理,从而达到提高个人博客管理效率的目的。
主要任务是对日志信息、评论管理信息、管理员个人信息等基本信息的操作及外理。
概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键。
3.2.2 任务与目标
(1)设计分E-R图,即各子模块的E-R图;
(2)生成初步E-R图,通过合并方法,消除属性冲突、命名冲突、结构冲突等三类冲突,做到各子系统实体、属性、联系统一;
(3)生成全局E-R图,通过消除冲突、消除不必要的冗余等方面。
3.2.3 阶段结果
(1)全局E-R图:
图4-3 个人博客后台管理系统的全局E-R图
(2)E-R图各实体的属性如下所示:
管理员:emlog_user(uid, username, password, nickname, photo, email, description)
日志:emlog_blog(gid, title, date, content, author, type)
评论:emlog_blog (cid,comment,date)
3.3逻辑设计阶段
3.3.1 逻辑设计的任务和目标
以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。
具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。
3.3.2 将E-R图转换为关系模型
实体型转换为关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
对于实体间的联系则有以下不同的情况:
一个m:n联系转换为一个关系模式。
与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
三个或三个以上实体间的一个多元联系可以转换为一个关系模式。
与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
具有相同码的关系模式可合并。
由于日志与评论的联系方式是1:n(一对多),可以将其之间的联系与n端实体合并,将其联系也转化成独立的关系模式,具体的基本E-R图向关系模型的转化如下:
管理员:emlog_user(uid, username, password, nickname, photo, email, description)
日志:emlog_blog(gid, title, date, content, author, type)
评论:emlog_comment (gid,cid,comment,date)
(注:标有直线下划线的为主属性,标有波浪线下划线的是外键属性,主属性与外键属性一起构成主码)
3.3.3模型优化
关系模式emlog_user, emlog_blog, emlog_comment 不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF。
3.3.4数据库模式定义
表5.1 日志列表
列名数据类型可否为空说明gid mediumint(8) not null 日志编号
title varchar(255) not null 日志标题
date bigint(20) not null 日志日期
content longtext not null 日志内容
author int(10) not null 作者
type varchar(20) not null 日志类型
表5.2 评论管理表
列名数据类型可否为空说明
gid mediumint(8) not null 日志编号
cid mediumint(8) not null 评论编号comment text not null 评论内容
date bigint(20) not null 评论日期
表5.3 管理员信息表
列名数据类型可否为空说明uid tinyint(3) not null 管理员编号
username varchar(32) not null 管理员姓名
password varchar(64) not null 管理员密码
nickname varchar(20) not null 管理员昵称
photo varchar(255) not null 管理员图片
email varchar(60) not null 管理员邮箱
description varchar(255) not null 管理员描述
3.3.5数据处理
系统功能模块图:
图5-3 系统功能模块图
3.4物理设计阶段
3.4.1物理设计阶段的目标与任务
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。
3.4.2数据存储方面
为数据库中各基本表建立的索引如下:由于基本表emlog_blog,emlog_comment和emlog_user的主码gid,cid和uid经常在查询条件和连接操作的连接条件中出现,且它们的值唯一,在两个属性上建立唯一性索引。
图6-3 系统功能模块4.数据库实施阶段
4.1建立数据库、数据表
4.1.1 建立数据库
create database bk;
4.1.2 建立数据表
(1)日志列表的建立:
create table emlog_blog
(
gid mediumint(8) primary key,
title varchar(255) not null,
date bigint(20) not null,
content longtext not null,
author int(10) not null,
type varchar(20) not null,
)
(2)评论管理表的建立:
create table emlog_comment
(
cid mediumint(8) primary key,
gid mediumint(8) not null,
comment text not null,
date bigint(20) not null,
foreign key(gid) references emlog_blog(gid),
)
(3)管理员基本信息表的建立:
create table emlog_user
(
uid tinyint(3) primary key,
username varchar(32) not null,
password varchar(64) not null,
nickname varchar(20) not null,
photo varchar(255) not null,
email varchar(60) not null,
description varchar(255) not null,
)
4.2数据入库
系统包括日志基本信息管理、评论基本信息管理、管理员信息管理等三大功能模块,共有3张基本表,使用MySql建表,录用数据。
5.系统调试和测试
对该个人博客后台管理系统进行测试,验证每个功能是否符合要求,具体的测试如下:
(1)数据(基本表)的查看(见附录1)
(2)所有SQL运行语句:(见附录2)
(3)系统的运行界面检测(见附录3)
6.设计反思
6.1总结
(1)通过这次课程设计,让我知道了学习的每一门知识,绝不是孤立的,要学会综合应用知识,还有或许在学习的过程中,我们或多或少是将学科单独来学的,而且会觉得不知道学那门课是用来干什么的,动手能力也不强,然而经过这次数据库的课程设计,让我熟悉了系统设计的整体步骤,学会了学习知识是一个渐进的过程,或许刚开始我们不知道它的作用,但是知识是个需要沉淀的过程,当你需要的时候,你就发现你所学的知识都用得上,更可能的是你觉得当初学得远远不够。
(2)这次课程设计让我深入理解了系统设计大体可分为需求分析、概念设计、逻辑设计、物理设计、数据库的实施及调试测试六大步骤。
其中,在需求分析前,最重要的是要先进行可行性分析,花最少的时间和金钱,完成高效率的软件,要不然往下才发现不可行,那就徒劳无功了,还有让我感触最深的是需求分析阶段,在这个阶段,和用户的沟通显得特别重要,还有自己也要对所要设计的系统有总体的构思和了解,知道自己要做什么,要实现什么,并且要实际的进行相关的调查,不能凭想象或自己的了解,这样会在后续的工作中遇到很多的问题。
(3)这次课程设计进一步加深了我对数据库系统概论相关知识和MySql相关功能的理解,相关的SQL语句方面的知识。
以及让我在边实践中边学习,边反思中边进步,还有让我心怀感恩,在校学习的日子是幸福的,接下来,要更好地珍惜在校学习的每一天,提高动手能力,好好增强自身的软实力。
6.2存在的问题及建议
我觉得在这次课程设计中,自己所做的系统仍然存在着各种不足,还需要不断去完善,革命尚未成功,仍需更好地努力。
然而在学习的过程中,需要多些沉淀,少些浮躁。
在实操的过程中,会遇到各种各样的问题,可以有老师耐心的指导和小伙伴们热心的帮助,那的确很好,但是我们并不能一直依赖这些资源,更多我们需要学会自己去思考,自己先想办法解决,还有遇到问题的时候,需要的是冷静分析,要不然各种慌,然而除了慌,还是慌,结果心也乱了,
就什么事情都解决不了了。
所以年轻的我们,需要沉下心来,好好思考与反思,说不定我们会获得更多意外的收获。
致谢
在这次数据库课程设计的整个过程中,一直都受到了指导教师陈晶老师细心的指导和关怀,同时耐心地也给予了我很大的帮助。
对此,表示忠心的感谢!没有老师的耐心指导,我根本不可能顺利完成此次课程设计的任务。
在这里,我尤其要真诚的感谢陈晶老师,老师丰富的知识和编程经验帮我解决了不少的难题,同时也给我传授了不少新的知识和技巧。
同时也感谢给过我帮助和鼓励的同学,是他们的帮助与鼓励,在我遇到困难时,为我点亮了希望的灯塔;在我灰心丧气时,带给我力量和信心。
参考文献
[1]萨师煊,王珊.数据库系统概论(第四版)[M].北京:高教出版社,2011
[2]钱乐秋,赵文耘,牛军钰.软件工程[M].北京:清华大学出版社,2012
[3]明日科技,许登旺,邹天思.PHP程序开发范例宝典[M].北京:人民邮电出版社,2012
[4]杜兆将.SQL Server数据库管理与开发教程与实训[M].北京:北京大学出版社,2011
[5]王涌.PHP与相关数据库技术高级指南[M].北京:电子工业出版社,2013
[6]徐峰.基于MySQL的PHP数据库访问技术[J].计算机时代,2011年02期
[7]陈军.PHP+MySQL经典案例剖析[M].北京:清华大学出版社,2011年8月
[8]屈喜龙,朱杰等.PHP开发动态网站实例荟萃[M].北京:机械工业出版社,2011年3月
[9]张志远.JavaScript与客户端安全[J].东莞理工学院学报,2011,(02)
[10]陶宏才.数据库原理及设计[M].北京:清华大学出版社,2012年3月
附录1 数据(基本表)查看
1)查看emlog_user(管理员信息表)表中的数据
附录图1-1 查询emlog_user(管理员信息表)表的SQL语句附录图1-2 emlog_user(管理员信息表)表中的数据
2)查看emlog_blog(日志列表)表中的数据:
附录图1-3 emlog_blog(日志列表)表的SQL语句
附录图1-4 emlog_blog(日志列表)表中的数据
3)查看emlog_comment(评论管理)表中的数据:
附录图1-5 emlog_comment(评论管理)表的SQL语句附录图1-6 emlog_comment(评论管理)表的数据
附录2 所有的SQL运行语句create database bk;
(1)日志列表的建立:
create table emlog_blog(
gid mediumint(8) primary key,
title varchar(255) not null,
date bigint(20) not null,
content longtext not null,
author int(10) not null,
type varchar(20) not null,
)
(2)评论管理表的建立:
create table emlog_comment(
cid mediumint(8) primary key,
gid mediumint(8) not null,
comment text not null,
date bigint(20) not null,
foreign key(gid) references emlog_blog(gid),
)
(3)管理员基本信息表的建立:
create table emlog_user(
uid tinyint(3) primary key,
username varchar(32) not null,
password varchar(64) not null,
nickname varchar(20) not null,
photo varchar(255) not null,
email varchar(60) not null,
description varchar(255) not null,
)
附录3 系统的运行界面(1)管理员登录页面。
附录图3-1 管理员登录页面
注:IP地址:http://localhost/zcx/admin
用户名:zcx
密码:123456
(2)登录个人博客后台管理界面
附录图3-2 登录个人博客后台管理界面
(3)测试“发布日志”:
附录图3-3 测试“发表日志”界面(4)查看“日志列表”:
附录图3-4 查看“日志列表”界面
(5)测试“评论管理”:
附录图3-5 查看“评论管理”界面
(6)测试评论管理的“回复”功能:以“很好很好很好”的评论为例,设置回复内容“呵呵,谢谢啦!”
附录图3-6 测试评论管理中的“回复”功能界面
附录图3-7 查看评论管理中的“回复”功能界面
(7)测试个人资料设置:
①设置个人资料:
附录图3-8 设置“个人资料”界面
②保存成功:
附录图3-9 查看设置“个人资料”界面。