




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要关键词: ABSTRACTKeywords: 目 录1 绪论11.1 研究背景及意义11.2 个人家园博客发展现状分析11.3 研发目的和意义21.4 本文主要工作及内容安排22 系统开发相关技术32.1 JSP简介32.2 SQL Server数据库简介42.3 MyEclipse简介42.4 Dreamweaver简介52.5 Apache Tomcat简介52.6 WEB系统层次结构简介62.6.1 客户机/服务器模式62.6.2 三层结构模式63 系统需求分析73.1 系统总体需求73.1.1 系统需求73.1.2 功能需求73.1.3 性能需求83.2 系统设计指导思想83.3 系统模块DFD图94 系统总体设计134.1 系统设计原则134.2 系统结构设计144.2.1 软件体系结构设计144.2.2 系统需求结构设计154.2.3 系统模块设计154.3 数据库设计164.3.1 数据库总体设计164.3.2 数据库详细设计164.3.3 数据库主外键及约束215 系统详细设计与实现225.1 系统功能模块设计225.2 界面设计225.2.1 前台界面设计225.2.2 后台界面设计235.3 主要功能模块设计实现245.3.1 用户管理模块245.3.2 文章管理模块265.3.3 相册管理模块285.3.4 文章类别管理模块295.3.5 留言管理模块305.3.6 好友管理模块316 系统测试336.1 登录验证测试336.2 文章管理测试346.3 相册管理测试356.4 其他模块测试366.5 系统负载测试376.5 系统测试总结397 总结40参考文献41翻译部分42英文原文42中文译文43致 谢44 中国矿业大学2013届本科生毕业设计(论文) 第45页1 绪论1.1 研究背景及意义博客又称Blog,是英语Weblog的缩写。博客是继E-mail、BBS、IM之后出现的第四种全新的网络交流方式。博客系统不仅仅是一种单向的发布系统,它有着极其出色的交流功能。在以往的几种网络交流方式中,BBS过于公共化。而E-mail和即时通信工具IM则有很明显的私人性质,博客系统的出现则将公共性和私人性很好的结合起来。博客是一个正处于快速发展和快速演变中的互联网新应用,它就是一个网页,通常由简短且经常更新的帖子构成,这些帖子一般是按照年份和日期倒序排列的。它并不等同于“网络日志”。作为网络日志是带有很明显的私人性质的,博客则是私人性和公共性的有效结合,它绝不仅仅是纯粹个人思想的表达和日常琐事的记录,它提供的内容可以用来进行交流和为他人提供帮助,是可以包容整个互联网的,具有极高的共享精神和价值。Blog的内容和目的有很大的不同,从对其他网站的超级链接和评论,有关公司、个人、构想的新闻到日记、照片、诗歌、散文,甚至科幻小说的发表或张贴都有。许多Blog是个人心中所想之事情的发表,其他Blog则是一群人基于某个特定主题或共同利益领域的集体创作。简言之,博客就是以网络作为载体,简易迅速便捷地发布自己的心得,即时有效轻松的与他人进行交流,再集丰富多彩的个性化展示于一体的综合性平台。博客系统可以充分展示每个用户的内心世界、工作感受、技术资料等方面的资讯。博客是个独立站点任何人都可以方便的来使用,就像每个人拥有自己的笔记本开始书写一样简单。博客的出现代替了以前的个人网站,任何人不需要懂得网页设计的制作技术,就可以在互联网上表达自己的观点,展示自己的风采,记录自己的生活琐事或是工作经验,让自己得到更多人的关注。随着Blog快速扩张,它的目的与最初的浏览网页心得已相去甚远。目前网络上数以千计的Bloggers发表和张贴Blog的目的有很大的差异。不过,由于沟通方式比电子邮件、讨论群组更简单和容易,Blog已成为家庭、公司、部门和团队之间越来越盛行的沟通工具,因为它也逐渐被应用在企业内部网络(Intranet)中。1.2 个人家园博客发展现状分析博客的概念是1997年12月由美国的Jorn Barger最早提出的,这些年全球博客获得了突飞猛进的发展。2000年博客开始进入中国,并迅速发展,但都业绩平平;2004年木子美事件,才让中国民众了解到了博客,并运用博客;2005年,国内各门户网站,如新浪、搜狐,原先不看好博客业务的,也加入了博客阵营,开始进入博客春秋战国时代。这些BSP提供商的加入促进了我国博客用户的覆盖人数和作品数量,同时也涌现出一大批名人名博。随着Web 2.0时代的来临,原先网络上那种由少数人创作内容和服务,多数人只能被动接受的信息分享模式已经一去不复返。以多数人取代少数人的智慧或贡献的时代已经来临。而Blog作为web2.0时代的先锋,早在上世纪90年代就已出现。2000年以来,很多网站开始提供Blog服务,由此很多人都有了一个属于自己个人博客,从原先的单纯文字,到后来的图片,视频,分享页面等。随着动态网页技术的发展,博客系统中的实时性与交互性增加,博主可以与阅读者进行实时在线的交流讨论。由此,简单的个人博客就成为了个人网上家园的雏形并衍生出了SNS,博主可以在博客中更换主题,背景,布局的等个性化设置,借此进行自我表达。虽然BSP(Blog Service Provider)有着免费,稳定,容易上手等特点,但是很多Blog系统和SNS为了保证稳定和安全,只开放很小的修改权限。虽然有很多模板,但是对于数以万计的博客用户来说模板“撞车”的可能性非常大。另外虽然几乎所有的BSP都可以免费使用,但同时用户也不得不接受界面上插入的广告等信息。正是由于用户的这种个性化以及简洁的需求以及许多志愿者的努力,使得各种开源的建站软件出现,同时服务器空间和域名的费用也低到人们可以接受的程度,所以个人的网上家园博客系统开始大量出现。1.3 研发目的和意义国内的Blog以及个人网上家园大都建于BSP,主流的有新浪,网易,腾讯等,有一些著名的IT技术博客如CSDN博客和月光博客采用的是独立建站的方式。WordPress因为其开源,免费的特点,被用于大部分个人Blog建设。另外的一些SNS家园平台有人人网,QQ空间,基于手机浏览器UCWEB的UC乐园,还有UCenter。它们为用户提供了大量的个性化模板,插件,链接生成,图片相册,网页游戏等功能,同时依靠页面广告和增值服务获取利润。但对网页技术有所了解的人来说无法在系统中放入随心所欲的内容或功能,以至于很多人对技术有一定了解的人投向了自行架站。更重要的一点是很多BSP的数据库安全存在漏洞,导致用户数据泄露,正如前一阵的CSDN用户密码泄露事件,因为用户数据未加密而造成大规模泄露。由此可见,个人的网上家园平台在今后的一段时期内必将获得大发展。基于Jsp动态网页技术,拥有完善用户权限管理功能、安全管理功能的个人家园博客系统将会借助安全性高,自定义程度高等特点而得到较快发展。1.4 本文主要工作及内容安排本文以提升基于Java的个人家园博客系统的研究为切入点,着力于研究适应个人用户使用的家园博客系统。本文详细介绍了基于Java的个人家园博客系统的设计及实现过程,共分为七章:第1章,绪论,介绍系统的开发背景、目的及意义、个人家园博客当前现状分析、存在问题及解决策略,指出了本文的工作。第2章,对系统相关技术进行简单介绍。第3章,对系统进行需求设计。第4章,对系统进行总体设计,并对本系统进行简单分析。第5章,在第三章的基础上,对本系统中各个功能模块行详细的设计和实现。第6章,对系统进行测试。第7章,总结。对本次设计做出总结,指出不足之处及可扩展的空间。最后是参考文献、翻译和致谢。2 系统开发相关技术2.1 JSP简介JSP即(Java Server Pages),它具有平台无关特性,他们都用来帮助Web内容的开发者们使用相对少的代码创建动态的网页。一个JSP页面包含掺杂着Java代码的HTML代码。下面主要介绍下JSP的特点:(1)将内容的生成和显示进行分离使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。(2)JSP技术源于Java语言。Java语言是体系结构中立的。这使JSP技术可以在实现这个JSP平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。(3)JSP系统是可移植的。这种可移植性来源于体系结构中立性。(4)强调可重用的组件。绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者EnterpriseJavaBeans TM组件)来执行应用程序所要求的更为复杂的处理。(5)采用标识简化页面开发Web页面开发人员不会都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。(6)使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。(7)由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性;(8)作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。当客户端请求一个JSP网页时,JSP Engine会检查所请求的JSP网页是否已经处于被载入执行的状态,如果没有,它会先读取JSP程序文件,将它换成Servlet程序代码编译载入,然后才执行请求的服务。也是就说,只有当客户端第一次请求JSP网页时,才需要被转换、编译和载入,做到了一次执行,处处执行。JSP的Servlet Class是JSP Engine自动帮我们编译产生的,不像Servlet需要手动编译,另外,在JSP程序中建立新的对象和Java Bean非常方便容易。Java Servlet是JSP技术的基础,JSP本身就是预先被编译成Servlet,然后再运行的,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成,Servlet这个名称大概源于Applet,现在国内的翻译方式很多,本文为了避免误会,本文直接采用Servlet这个名称而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。Servlet其实和传统的CGI程序和ISAPI、NSAPI等Web程序开发工具的作用是相同的,在使用Java Servlet以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面。许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。得益于Java的跨平台的特性,Servlet也是平台无关的,实际上,只要符合Java Servlet规范,Servlet是完全平台无关且是Web服务器无关的。由于Java Servlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此Java Servlet效率非常高。但Java Servlet也不是没有缺点,和传统的CGI、ISAPI、NSAPI方式相同,Java Servlet是利用输出HTML语句来实现动态网页的,如果用Java Servlet来开发整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。这就是为什么SUN还要推出Java Server Pages的原因。2.2 SQL Server数据库简介SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。最新的版本是SQL Server 2008 R2,已经在2010年4月12日发布。SQL Server数据库的内置语言是由美国标准局(ANSI)和国际标准组织(ISO)所定义的SQL语言,微软公司对它进行了部分扩充而成为作业用SQL(Transact-SQL)。SQL Server几个初始版本适用于中小企业的数据库管理,但是近年来它的应用范围有所扩展,已经触及到大型、跨国企业的数据库管理。 SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL Server作为中型数据库系统,非常适用与WEB开发,本次开发采用的数据库系统是SQL Server2008 R2。SQL Server 2008比起以往版本存在以下优势: (1)保护数据库查询;(2)在服务器的管理操作上花费更少的时间; (3)增加应用程序稳定性; (4)系统执行效能最佳化与预测功能。2.3 MyEclipse简介 MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和Java EE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的Java EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。 在结构上,MyEclipse的特征可以被分为7类:(1) Java EE模型(2) WEB开发工具(3) EJB开发工具(4) 应用程序服务器的连接器(5) Java EE项目部署服务(6) 数据库服务(7) MyEclipse整合帮助对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的Java EE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。MyEclipse6.0以后版本安装时不需安装Eclipse。 本次开发使用的是最新的MyEclipse 10,该版本使用最高级的桌面和Web开发技术,包括 HTML5 和 Java EE 6,支持 JPA 2.0、JSF 2.0、Eclipse link 2.1 以及 Open JPA 2.0。2.4 Dreamweaver简介Dreamweaver是美国MACROMEDIA公司开发(后被Adobe公司收购)的集网页制作和管理网站于一身的所见即所得网页编辑器。在网页领域,Dreamweaver是目前最流行的网页设计与开发工具之一。Dreamweaver目前最新版本CS4(10.0,于2008年9月发布),支持将PSD文件作为智能对象导入网页,并使网页中的图像随智能对象的改变而更新;同时,增强了代码提示引擎的功能,方便用户编写各种脚本程序。在Dreamweaver CS4中,还新增了实时视图工具,通过Presto引擎模拟网页浏览器,执行各种网页脚本,大幅提高了网页脚本开发和调试的效率。另外,Dreamweaver CS4还可以方便地编写各种XML、JavaScript、CSS、Action Script以及XSLT文档,并和Flash、Fireworks等软件一起加入了AIR编写功能。用户可使用Dreamweaver开发富互联网应用程序。Dreamweaver CS4使用了全新的用户界面,大幅改良了工作区布局工具,用户可根据网页开发的需要,选择不同的工作区布局方式,最大限度提高工作效率。2.5 Apache Tomcat简介Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。目前最新版本是7.0。Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。2.6 WEB系统层次结构简介2.6.1 客户机/服务器模式 本系统结构没有一个标准的固定的组成方案,结构上可塑性很强,每个用户都可提出适合自己部门的网路结构方案;有两层和三层结构两种,如图2.1所示。图2.1 两层浏览器/服务器模型在双层结构中,由于现在服务器性能较高,而且有些用户出于成本考虑将WEB服务器与数据库服务器合二为一,直接处理用户终端的请求;这种模式是基于WEB的B/S结构,在提供信息服务时,需要服务器端与客户端保持稳定连接和同步工作。此结构中客户机只需要浏览器即可以完成对服务器端的访问,所有功能大多集中于服务器端,在不稳定的Internet环境或者性能较差的服务器上,B/S结构系统的服务能力和服务质量较低。2.6.2 三层结构模式 在三层结构中(图2.2),解决了浏览器/服务器模式面临的许多问题。通过划分网络应用服务器与数据库服务器之间的功能,将数据与应用分离,实现了数据库服务器的隔离,保证了数据安全。也降低了网络应用服务器的负载,提高了响应速度,同时对敏感信息的访问也可以得到很好的控制。 采用分布式计算有着多方面的技术优势,包括: (1)封装性 (2)性能在分布式计算模式中,由于网络应用服务器与数据库服务器分离,网络管理人员可以在不影响系统运行的情况下运用适当的备份对数据服务器进行维护。这可以大大简化管理员对系统的管理,减轻系统维护的工作量,并确保系统的可靠运行。图2.2 三层客户/服务器模型3 系统需求分析3.1 系统总体需求3.1.1 系统需求博客网站系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的个人博客网站,为网络用户提供进行在线交流的网络平台。通过个人博客网站可以结交更多的朋友,表达更多的想法,它随时可以发布文章。具体的要求如下:(1)博主可以对内容进行全权管理。(2)独立于具体的数据库平台。对于与数据库交互的部分充分考虑兼容性。(3)容易在原先基础上进行二次开发。(4)中间基础平台的无形性。尽量采用开放的标准技术,达到跨平台运行的效果。为了达到以上的开发目的,个人博客网站应遵循一定的设计和开发与原则。(1)模块接口定义清晰。(2)基础类库和接口设计合理,尽量建立叮扩展的接口和抽象类。(3)数据库操作使用标准SQL语句,如果一定要使用有差别的SQL语句,则尽量集中在一起,以减少将来维护和移植的难度。(4)采用开放的标准和工具等。3.1.2 功能需求基于系统需求分析,该系统需要实现以下功能:(1)文章管理功能:文章管理分为博主和游客两部分,其中游客可以浏览博主发表的文章,包括文章的访问量、描述和文章的回复等信息。同时游客也可以为文章添加自己的回复。博主拥有文章的管理权限,包括发表文章,删除文章,修改文章等,同时他可以查看文章的评论和回复。所有数据保存到数据库相应的表中去。(2)相册管理功能:相册管理同样分为博主和游客两部分,其中游客可以浏览博主发布的相册以及照片描述。博主拥有相册的管理权限可以上传和删除照片。照片存放于系统图片文件夹中,图片的链接放入到数据库中。(3)文章类别管理功能:文章类别管理同样分为博主和游客两个部分,其中游客只能按类别浏览相应的文章。博主可以对文章类别进行管理,可以添加,删除,修改相应类别。同时文章类别里的“推荐文章”下的文章将显示到首页“博主推荐”中去。(4)留言管理功能:留言是博主与游客互动的一个主要途径,在本系统中游客可以添加留言,最新的留言会显示到系统首页边栏。博主可以查看游客的留言,同时为了防止有人恶意添加留言或者发布广告等信息,博主保留对留言审核的权限,可以对不合适的留言进行删除。留言相关数据存储在数据库中相应的表中。(5)好友管理功能:好友实际上是博客的友情链接,个人博客之间相互交换友情链接是一种互相提高影响力的方式,也是一种SEO优化方式。游客可以查看博主的好友并通过链接访问好友的博客,博主拥有好友的管理权限,可以对好友进行添加、删除、修改等操作。好友的数据存储在数据库好友表中。(6)用户管理功能:用户管理其实是博主登录注销模块,同时用户管理可以在首页边栏展示博主的个人信息。3.1.3 性能需求(1)硬件环境本系统采用B/S模式,服务器端需要拥有较高的硬件性能以保证客户端的正常访问,同时两者之间要有良好的网络连接,客户端只需要使用浏览器即可浏览,没有硬件要求。服务器端硬件要求如下:处理器:Intel Core 2 Duo或更高内存:2GB硬盘空间:5 GB(2)软件环境操作系统:Windows XP/7/Server 2003/2008数据库:Microsoft SQL Server 2008服务器软件:Apache Tomcat 7.0 3.2 系统设计指导思想系统整体设计基于面向过程思想,根据用户系统需求,定制各个功能模块类,配以数据库表结构,使得最终系统数据实现高效率、快速访问。下面就以发表文章为例,说明个人系统的设计思想:发表文章是浏览文章、项目开票等其他模块的基础,项目录入的完整与否直接影响其他操作的结果,所以在设计上要格外严格,考虑如下:(1)文章发表具体内容的数据来源要保证明确具体博客是个人创作的平台也拥有明确的版权要求,在发表文章时来源一定要明确,原创和转载的要区分开。在数据库中有专门的标记定义原创与转载文章,以免产生版权纠纷造成不良影响。(2)做好初始化的内容文章内容的状态在录入中十分重要,像文章ID,文章类型等等是文章表中的重要内容。在文章输入时要进行文章ID、文章类型的初始化,同时文章和标题长度也要满足相应限度。相关发布信息符合要求才能确保文章正确输入数据库。(3)项目录入界面简明直观、操作方便文章发表主菜单中含有下拉列表,其中包括文章分类,可以通过选择确定文章分类,还有一个下来列表用来选择文章来源,有原创跟转载两项。界面中含有下拉文本框的都可以用鼠标点开,点开后即出现反映其中内容的选项。(4)设计了文章检查功能为了加快系统的相应速度,本系统在数据库中对每个字段都定义了最大字符长度,所以对博主发布的文章有字数要求,但是在发文过程中博主有可能超出规定的字符数,从而造成字符截断以致内容不完整。为了适应博主需要,本系统在文章发布时会对字符长度进行检查,一旦发现博主输入的字符长度超过系统规定,则会停止文章向数据库输入,同时在页面上发出相应提示信息,提示博主注意文章长度以便其将文章进行分割或编辑。3.3 系统模块DFD图顶层数据流图如图3.1所示:图3.1 个人博客系统顶层数据流图第二层数据流图如图3.2所示:图3.2个人博客系统第二层数据流图文章管理子系统数据流图如图3.3所示:图3.3 文章管理子系统数据流图相册管理子系统数据流图如图3.4所示:图3.4 相册管理子系统数据流图文章类别管理子系统数据流图如图3.5所示:图3.5 文章类别管理子系统数据流图留言管理子系统数据流图如图3.6所示:图3.6 留言管理子系统数据流图好友管理子系统数据流图如图3.7所示:图3.7 好友管理子系统数据流图用户管理子系统数据流图如图3.8所示:图3.8 用户管理子系统数据流图4 系统总体设计4.1 系统设计原则 本章从以下各方面分别阐述个人家园博客系统架构的设计原则:实用性原则、可扩展性与可维护性原则、安全可靠性原则、用户界面设计原则、数据库设计原则、构件化设计原则、架构实现策略。(1)实用性原则要力求最大限度地满足实际的需要,充分考虑各个业务层次、各管理环节数据处理的实用性,把满足用户需要和适合用户操作习惯作为第一要素进行考虑。用户接口和操作界面设计尽可能做到界面美观大方,简便实用。同时要考虑到大多数访问用户的操作习惯,使其易于使用。(2)可扩展性与可维护性原则为适应将来的发展需要,该博客系统要具有良好的可扩展性与可维护性。软件设计尽可能模块化、组件化,使应用系统可灵活配置,适应不同的情况。数据库的设计尽可能考虑到未来的需要。(3)安全可靠性原则应用软件与数据库系统的设计要做到安全可靠,防止非法用户的入侵。数据库的备份策略恰当,以防灾难性的事故发生。(4)用户界面设计原则系统的用户界面友好,且对鼠标和键盘都提供支持,界面的设计遵循如下的原则:界面要具有一致性;提供简单的错误处理;提供信息反馈,用多种信息提示用户当前软件的运行状态、软件界面元件的功能;操作可逆,其动作可以是单个的操作,或者是一个相对独立的操作序列。(5)数据库设计原则一致性原则:对信息进行统一、系统的分析与设计,协调好各数据源,做到“数出一门”、“算法统一”、“度量一致”。保证系统数据的一致性和有效性。完整性原则:数据库的完整性是指数据的正确性和相容性。要防止合法用户使用数据库时向数据库加入不规范的数据。对输入到数据库中的数据要有审核和约束机制。安全性原则:数据库的安全性是指保护数据,防止非法用户使用数据库或合法用户非法使用数据库造成数据泄漏、更改或破坏。要有认证和授权机制。可伸缩性原则:数据库结构的设计应充分考虑发展的需要、移植的需要,要有良好的扩展性、伸缩性和适度冗余。规范化数据库的设计:因遵循规范化理论,规范化程度过低,可能会存在插入、删除异常、修改复杂、数据冗余等问题,解决的方法就是对关系模式进行分解或合并(规范化),转换成高级范式。规范化一共有六个级别:1NF、2NF、3NF、BCNF、4NF、5NF。但也应当注意到,并不是规范化程度越高越好。当一个应用的查询中经常涉及到俩个或多个关系模式的属性时,系统就必须经常地进行连接运算,而连接运算的代价是非常高的。所以,在具体应用时到底规范化要进行到什么程度需要权衡利弊。一般而言,做到第三范式就足够了。(6)构件化设计原则:1)构件化应用/执行构架,提高系统的复用性分层的体系构架,分离中间业务逻辑,便于复用;业务逻辑实现结构化。2)采用成熟的行业技术标准建立开放环境基于框架进行开发;遵循以下设计准则:松耦合设计;通用对象建模和应用模板;构件复用;标准的应用接口;独立于产品的编码。(7)架构实现策略 架构构件的实现遵循如下原则:1)复用优先于购买,购买优先于编码实现;2)使用可靠的框架,提高开发效率以及稳定程度。4.2 系统结构设计4.2.1 软件体系结构设计系统设计时,考虑到整个系统的延续性和可扩充性,我们将系统应用体系分为三部分:用户表现层、数据访问层、应用逻辑层。在逻辑层我们可以给系统添加额外的功能组件,在数据层可以对系统进行备份,保证数据安全。同时数据库的一些属性也可以起到完善系统功能的作用。(1)用户表现层:处理用户界面的功能,即用户浏览器;(2)数据访问层:在通常情况下指数据库本系统中采用SQL Server2008;(3)应用逻辑层:指在系统中提供WEB服务的一层,本系统中采用Apache Tomcat。如图 4.1图4.1 系统体系结构4.2.2 系统需求结构设计根据个人家园博客系统需求,拟设定如下方案进行系统需求结构的设计与开发:图4.2 个人家园博客系统三层结构图(1)该系统采用三层分布式结构设计,如图4.2所示。(2)操作系统采用 Windows XP/7/server 2008。选择 windows具有多任务和微内核结构、线程和对称多处理等很好和很强的稳定性。数据库管理系统选用 Microsoft SQL Server 2008。利用 SQL server建立的数据库具有以下特性:1)适合于进行全天候不间断的、方便、可靠和安全的动态维护;2)强壮、安全的网络服务;3)支持组件,便于web应用程序的开发,web服务器采用Apache Tomcat 7在jdk6环境下使用;4)系统采用MyEclipse10进行开发。4.2.3 系统模块设计个人家园博客系统模块层次设计如图4.3所示:图4.3 个人家园博客系统模块层次图4.3 数据库设计数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。4.3.1 数据库设计过程 本系统数据库总体设计严格按照数据库设计规范进行设计,共分为六个阶段,具体实施步骤如下:(1)需求分析阶段这一阶段,开发人员与用户沟通,准确了解用户需求,分析用户需求(包括数据与处理)。这一阶段是整个设计过程的基础,也是重中之重,是最困难、最耗费时间的阶段。(2)概念结构设计阶段这一阶段是整个数据库设计的关键。通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。(3)逻辑结构设计阶段 这一阶段将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化调整。(4)数据库物理设计阶段这一阶段的具体工作是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。(5)数据库实施阶段运用SQL Server数据库软件提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。(6)数据库运行和维护阶段数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中,根据需要不断地对其进行评价、修改与调整。经过对数据库这六个阶段的设计,把数据库的设计和对数据库中数据处理的设计紧密结合起来,将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计。4.3.2 数据库详细设计我们对数据库的设计遵循以下原则:(1)表的设计原则1)规范化和标准化 数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但Third Normal Form ( 3NF)通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来说,遵守3NF标准的数据库的表设计原则是:One Fact in One Place”即某个表只包括其本身基本的属性,当不是它们本身所具有的属性时需进行分解。表之间的关系通过外键相连接。它具有以下特点:有一组表专门存放通过键连接起来的关联数据。根据这一原则,系统设计了一系列的代码表,这些代码表一部分是严格按照相关法律法规和规范性文件形成的,如表4.1所示。表4.1 规范代码表表名表名含义tb_article文章表tb_articleType文章类型表tb_friend好友表tb_master用户信息表tb_photo照片信息表tb_review文章评论表tb_word博客留言表 2)数据驱动 采用数据驱动而非硬编码的方式,许多策略变更和维护都会方便得多,大大增强系统的灵活性和扩展性。3)考虑各种变化在设计数据库的时候考虑到哪些数据字段将来可能会发生变更。(2)字段的设计原则1)使用角色实体定义属于某类别的列在需要对属于特定类别或者具有特定角色的事物做定义时,可以用角色实体来创建特定的时间关联关系,从而可以实现自我文档化。例如:表4.2文章表列名中文名数据类型宽度是否允许空id文章序号int4否article_typeID文章类型号smallint2否article_title文章题目varchar40是article_content文章内容varchar8000是article_sdTime文章发表时间varchar30是article_create文章来源varchar10是article_info文章描述varchar500是article_count文章点击量int4是表4.3文章类型表列名中文名数据类型宽度是否允许空articleType_id文章类型号smallint2否articleType_name文章类型名varchar20是articleType_info文章类型介绍varchar200是表4.4 好友表列名中文名数据类型宽度是否允许空id朋友IDint4否friend_name朋友名称varchar20是friend_sex朋友性别varchar2是friend_OICQ朋友联系方式varchar20是friend_blog朋友博客地址varchar200是表4.5用户信息表列名中文名数据类型宽度是否允许空master_name用户名varchar50否master_password用户密码varchar10是master_sex用户性别varchar2是master_oicq用户联系方式varchar20是表4.6照片信息表列名中文名数据类型宽度是否允许空id照片序号int4否photo_addr照片地址varchar500是photo_sdTime照片发布时间varchar30是photo_desc照片描述varchar100是表4.7文章评论表列名中文名数据类型宽度是否允许空id评论序号int4否review_articleId文章序号int4是review_author评论者varchar50是review_content评论内容varchar2000是review_sdTime评论时间varchar30是表4.8博客留言表列名中文名数据类型宽度是否允许空id留言序号int4否word_title留言题目varchar50是word_content留言内容varchar2000是word_sdTime留言时间varchar30是word_author留言者varchar20是 2)选择数字类型和文本类型尽量充足 3)增加删除标记字段。在表中包含一个“删除标记”字段,这样就可以把行标记为删除。在关系数据库里不要单独删除某一行;最好采用清除数据程序而且要仔细维护索引整体性。这样做法的好处是既维护了整体数据的一致性,也体现了业务处理的连续性。(3)键的选择原则1)键设计的四个原则:为关联字段创建外键;所有的键都必须唯一; 避免使用复合键;外键总是关联唯一的键字段。2)使用系统生成的主键 设计数据库的时候采用系统生成的键作为主键,那么实际控制了数据库的索引完整性。这样,数据库和非人工机制就有效地控制了对存储数据中每一行的访问。采用系统生成键作为主键还有一个优点:当拥有一致的键结构时,找到逻辑缺陷很容易。我们在设计数据库结构时使用NSRDZDAH作为系统的主键,该主键由系统按照一定的规则采取序列号生成器生成。3)不要用用户的键(不让主键具有可更新性) 在确定采用什么字段作为表的键的时候,可一定要小心用户将要编辑的字段。通常的情况下不要选择用户可编辑的字段作为键。我们在设计数据库结构时使用了NSRDZDAH作为系统的主键,而不是使用可能随时被更新的NSRSBH作为系统主键。4)可选键有时可做主键把可选键进一步用做主键,可以拥有建立强大索引的能力。(4)索引使用原则索引是从数据库中获取数据的最高效方式之一。95%的数据库性能问题都可以采用索引技术得到解决。1)逻辑主键使用唯一的成组索引,对系统键(作为存储过程)采用唯一的非成组索引,对任何外键列采用非成组索引。考虑数据库的空间有多大,表如何进行访问,还有这些访问是否主要用作读写。 2)大多数数据库都索引自动创建的主键字段,但是可别忘了索引外键,它们也是经常使用的键,比如运行查询显示主表和所有关联表的某条记录就用得上。3)不要索引memo/note字段,不要索引大型字段(有很多字符),这样作会让索引占用太多的存储空间。4)不要索引常用的小型表不要为小型数据表设置任何键,假如它们经常有插入和删除操作就更不能这样做。对这些插入和删除操作的索引维护可能比扫描表空间消耗更多的时间。(5)数据完整性设计所谓数据库完整性,是衡量数据库数据质量好坏的一种标志,是确保数据库中数据的一致,正确性以及符合企业规则的一种思想,是使无序数据条理化,确保正确的数据被存放在正确位置的一种手段。数据库的完整性是指数据的正确性和相容性。1)完整性实现机制实体完整性:主键。 参照完整性:父表中删除数据:级联删除、受限删除、置空值;父表中插入数据:受限插入、递归插入;父表中更新数据:级联更新、受限更新、置空值。DBMS对参照完整性可以有两种方法实现:外键实现机制(约束规则)和触发器实现机制。用户定义完整性:NOT NULL;CHECK;触发器。2)用约束而非商务规则强制数据完整性采用数据库系统实现数据的完整性。这不但包括通过标准化实现的完整性而且还包括数据的功能性。在写数据的时候还可以增加触发器来保证数据的正确性。不要依赖于商务层保证数据完整性;它不能保证表之间(外键)的完整性所以不能强加于其他完整性规则之上。3)强制指示完整性在有害数据进入数据库之前将其剔除。激活数据库系统的指示完整性特性。这样可以保持数据的清洁而能迫使开发人员投入更多的时间处理错误条件。4)使用查找控制数据完整性控制数据完整性的最佳方式就是限制用户的选择。只要有可能都应该提供给用户一个清晰的价值列表供其选择。这样将减少键入代码的错误和误解同时提供数据一致性。某些公共数据特别适合查找:国家代码、状态代码等。5)采用视图为了在数据库和应用程序代码之间提供另一层抽象,可以为应用程序建立专门的视图而不必非要应用程序直接访问数据表。这样做还等于在处理数据库变更时给你提供了更多的自由。(6)其他设计技巧1)避免使用触发器 触发器的功能通常可以用其他方式实现。在调试程序时触发器可能成为干扰。假如你确实需要采用触发器,你最好集中对它文档化。2)使用常用英语(或者其他任何语言)而不要使用编码在创建下拉菜单、列表、报表时最好按照英语名排序。假如需要编码,可以在编码旁附上用户知道的英语。3)保存常用信息 让一个表专门存放一般数据库信息非常有用。在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 养老护理质量控制方案的制订
- 青岛西海岸新质生产力
- 2025年微生物学实验技巧培训考试答案及解析
- 民族工作相关课件
- 安全检测机构管理规定讲解
- 剪力、弯矩方程与剪力、弯矩图
- 2025年法医学法医病理学案例溯源分析答案及解析
- 民族声乐课件
- 2025年生物信息学基因组数据分析论述题考试答案及解析
- 2025年医学影像技术应用与操作规范答案及解析
- 托管班的转让合同协议书
- 2025年新西师大版数学三年级上册全册教学课件
- 2025年证券从业资格考试金融市场基础知识押题及答案
- 教育机构兼职教师聘用合同
- 湖北省高中名校联盟2026届高三上学期第一次联合测评物理试题(含答案)
- 形势与政策正确认识中国经济热点问题讲稿-2025秋版本
- (正式版)DB1509∕T 0003-2023 《奶绵羊产奶性能测定技术规程》
- 2025年广东省中考化学真题及答案
- 托盘运输知识培训内容课件
- 2025年小学信奥选拔试题及答案
- 2025年不明原因肺炎应急演练预案范文
评论
0/150
提交评论