主题网络爬虫的设计与实现——界面及数据库模块设计-毕业论文_第1页
主题网络爬虫的设计与实现——界面及数据库模块设计-毕业论文_第2页
主题网络爬虫的设计与实现——界面及数据库模块设计-毕业论文_第3页
主题网络爬虫的设计与实现——界面及数据库模块设计-毕业论文_第4页
主题网络爬虫的设计与实现——界面及数据库模块设计-毕业论文_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主题网络爬虫的设计与实现本科毕业论文(科研训练、毕业设计)题 目: 主题网络爬虫的设计与实现 界面及数据库模块设计姓 名:学 院:软件学院系:软件工程专 业:软件工程年 级:学 号:指导教师: 职称: 年 月摘要随着网络信息的迅速发展,搜索引擎已成为人们获取有用信息必不可少的工具。以何种策略有效地访问网络资源是专业搜索引擎中网络爬虫研究的主要问题。本文对搜索引擎中网络爬虫的搜索策略进行简要分析,总结提高搜索效率的因素,使人们对网络爬虫的搜索算法有个大概了解,以及对新一代搜索引擎的期望, 以便更快捷获取自己需要的信息。搜索引擎作为网络信息搜寻的工具,它以一定的策略在互联网中搜集、发现信息,对信息进行理解、提取、组织和处理,并为用户提供检索服务。爬虫搜索引擎主要由三部分组成:搜索器、数据库和用户界面。搜索器搜索到Internet的Web页面后,将页面信息存入索引数据库,最后通过用户界面提供给用户。文章主要介绍数据库的组织和索引过程的实现。本文简要描述了主题爬虫设计中主题相关度分析以及爬虫具体实现过程,侧重点在于系统的界面设计及数据库设计模块。界面部分通过引入插件来改变原有面板的外观,以达到美化的效果;数据库部分对数据库的设计特点、方法以及步骤等做了简单的介绍,通过对系统的需求分析进行数据库的概念结构设计、逻辑结构设计和物理结构设计。另外本文还介绍了爬虫系统的各模块之间的相互关系,结合图例给于说明分析,通过对爬虫系统的运行流程进行简要分析,测试并验证了系统的可行性和有效性。最后对开发工具以及所用到的插件做了相关说明。关键词:网络爬虫 搜索引擎 插件 索引AbstractIn recent years, search engine turns more and more impo rtant for us to get useful info rmation. How can Web crawler visit the web efficiently in the domain of Topic Specific Search Engine has become the main problem. Th is paper analysizes web craw lers search ing st rategies. This paper wants to make people know the web crawlers strategy and long for the new search ing engine so as to get info rmation quickly which they need. Search engine is a tool of serching information in the internet, it collect, discovers an information in the Internet by certain strategy and carry on comprehension, withdraw to the information, organization and processing, and provide an index service for the customer.Web crawlers search engine of a Internet consists of three parts: searcher, Database and user interface. Searcher searches Web page of a Internet and then saves the page information into index Database and provides them for users by interface in the end. This paper introduces organization of Database and the implement of index process.This paper synopsis introduce the related degree analysis and the process of the web crawler design.The main part is the interface design and the database design. The interface part leads plug-ins to change original external appearance of front-panel so as to change the effect of beautification. And simply introduce the design characteristics, method and step of database part, design the logic structure, the concept structure and the physical structure of the database after the need analysis.Moreover this paper also introduced the correlation of of each mold piece of web craler system and combine a diagram example to give an ordinary explain. After analysing the process of the web craler system, we test and verified the possibility and usefulness of system. Finally we also make a simple introduction to the develop tool and plug-ins.Key words: web crawler search engine plug-in index目录第一章 主题网络爬虫概述71.1主题网络爬虫的目标71.2主题网络爬虫的系统组成81.3主题爬虫的解决方案91.3.1基于关键词的主题爬虫91.3.2基于概念分析的主题爬虫101.3.3基于本体语义分析的主题爬虫111.4主题爬虫界面和数据库设计概述131.4.1界面设计概述131.4.2数据库设计概述13第二章 系统界面设计152.1界面设计目标152.2爬虫界面设计152.2.1界面功能152.2.2界面元素分析162.2.3过程分析172.3用户搜索界面设计172.3.1界面功能172.3.2界面元素分析172.3.3过程分析19第三章 系统数据库设计203.1数据库设计目标213.2系统需求分析213.2.1需求分析的任务213.2.2需求分析的方法223.3概念结构设计223.3.1概念结构223.3.2概念结构设计233.4逻辑结构设计253.4.1逻辑结构253.4.2逻辑结构设计253.5数据库物理结构设计263.5.1物理结构263.5.2物理结构设计26第四章 开发工具简析及实验结果294.1.net平台294.2SQL server 2005304.3AJAX技术314.4实验结果数据32第五章 总结33致谢语34参考文献35附录36ContentsChapter 1 The summarize of the subject web crawler71.1The gole of the subject web crawler71.2The makeup of the subject web crawler81.3The scheme of the subject web crawler91.3.1The subject web crawler based on keywords91.3.2The subject web crawler based on conception analysing101.3.3The subject web crawler based on itself111.4The interface and database of the web crawler131.4.1The introduction of the interface design131.4.2The introduction of the database design13Chapter 2 The interface design of system152.1The gole of the interface design152.2Design of the crawler interface152.2.1The function of the interface152.2.2Elements of the interface162.2.3Process analysing172.3Design of the searching interface172.3.1The function of the interface172.3.2Elements of the interface172.3.3Process analysing19Chapter 1 Design of the system database203.1The gole of the database designing213.2Requirement of the system213.2.1The method of analysing system requirement213.2.2Data dictionary223.3Design of notional structure223.3.1Notional structure223.3.2Design of notional structure233.4Design of logistic structure253.4.1Logistic structure253.4.2Design of logistic structure253.5Design of physical structure263.5.1Physical structure263.5.2Design of physical structure26Chapter 4 Introduction of the tools and the result of the flat294.2SQL server 2005304.3AJAX plug-in314.4The result of the program32Chapter 5 Summarize33Acknowledgement34References35Supplement36第一章 主题网络爬虫概述搜索引擎为用户提供信息检索服务1,大约经历了三代的更新发展:第一代出现于1994年,此类搜索引擎索引网页少,极少重新搜集网页并刷新索引,检索速度非常慢;第二代大约出现在1996年,大多采用分布式方案来提高数据规模、响应速度和用户数量;1998年至今为第三代,索引数据库的规模继续增大,开始出现主题搜索和地域搜索,检索结果相关度评价成为研究的焦点,开始使用自动分类技术。按照信息搜集方法和服务提供方式的不同,搜索引擎系统可以分为三大类2:目录式搜索引擎、机器人搜索引擎和元搜索引擎。不论是从纵向看还是横向看,目前的搜索引擎大多数是面向所有信息,可称之为综合性搜索引擎3。随着信息多元化的增长,适用于所有用户的综合性搜索引擎显然已经不能满足特定用户更深入的查询需求,他们对信息的需求往往是针对受限领域和面向特定主题,综合性搜索引擎的召回率和精确率都很低。针对这种情况,需要一个分类细致精确、数据全面深入、更新及时的面向主题的搜索引擎,有人认为这种主题搜索引擎是第四代搜索引擎的发展方向。主题爬虫是主题搜索引擎的基础和核心4。本文主要研究主题爬虫的相关设计,包括界面设计和数据库方面的设计,其目的是人从网上尽可能多地获取受限领域的针对特定主题的信息,并保证所得到信息的完整性和有效性,从而更好的满足用户的需求。1.1 主题网络爬虫的目标主题爬虫是主题搜索引擎的核心部分。主题爬虫在网络中漫游,从中搜集优等的与主题相关的网络资源,通过索引器的索引再由检索器排序输出给用户,以此完成主题搜索引擎整个过程。因此,对于主题搜索引擎来说,主题爬虫的性能优劣直接影响到整个搜索引擎的性能。主题爬虫中另一个重要方面的设计就是数据库的设计,因为所有经过爬行系统筛选后的主题及其内容等都是整个系统运行的最主要结果,对这些数据信息保存的完整性和安全性相当重要,因此设计一个高效可行的数据库也是爬虫系统设计不容忽略的一个重要部分。主题爬虫的基本工作流程是按照事先给出的主题,分析Web中的超链接和已经下载的网页内容,来预测下一个要爬行的URL,保证尽可能多地下载与主题相关的网页的,尽可能少的下载无关的网页,以此来提高主题爬虫的效率与准确率。主题爬行器的设计主要从以下几个方面来考虑: 下载高质量的网页。前面已经说过,随着Web网页数量的急剧增长,爬虫不可能下载所有的网页,要最大程度的满足用户的需求,就必须提高所下载网页的质量,以保证下载的网页可用价值尽量高 判断已经下载的网页与主题的相关性。对于已经下载的网页,我们可以通过提取网页中的文字信息,包括围绕在链接周围的文字和网页内容,从而充分利用信息,按照一定的方法来计算网页与文本的相关性。 决定爬待爬行URL的访问次序。通过搜索引擎以搜集海量数据为目标,爬虫在爬行的时候只需按照深度优先遍历或者广度优先遍历的方法下载页面,尽量提高爬虫的爬行范围,而主题爬虫因其自身的物点,在爬行的过程中就要考虑优先访问与主题相关页面,即要考虑如何管理待爬行的URL队列,从而使每次爬行都从相关度最高的页面开始。 尽量降低被爬行网站的负担。因为爬虫在爬行的过程中,需要访问别人的服务器,这样就占用了对方的计算机资源,如CPU、磁盘空间等,同时也占用了网络带宽,增加了网络的负担。爬虫的设计应该将这些消耗降到最小,否则网站Web管理员会屏蔽爬虫。1.2 主题网络爬虫的系统组成最初的设计思想是考虑对页面的过滤,不像普通爬虫对所有页面的链接进行处理,先对页面与受限领域的主题相关度进行分析,只有当其主题相关度符合要求时才处理该页面中的链接,因为如果该页面和本领域比较无关,它所包含的链接和领域相关的几率也较大,这样提高了爬行精度,虽然会遗漏少数页面,但综合效果是令人满意的。因此,主题相关度的分析是主题爬虫设计的关键,最简单的可以基于关键词进行分析,更深入的可以上升到语义和概念层次。基于关键词的主题相关度分析的主要思路是:首先在领域专家的参与下,确定一组带有权重的能够代表受限领域的关键词,用它表示确定的主题;然后对页面进行关键词提取,采用向量空间模型算法计算网页的主题相关度决定页面的取舍。主题爬虫的设计是以普通爬虫为基础的,实际上它是对一个普通爬虫进行功能上的扩充。在对网页的整个处理过程中需要增加模块:主题确立模块、优化初始种子模块、主题相关度分析模块、排序模块(数据库模块)。题确立模块用于确立爬虫面向的主题;主题相关度分析模块用来进行网页主题相关度的计算;初始种子模块用于生成面向特定主题的较好的种子站点,使爬行模块能够顺利展开爬行工作;主题相关度分析模块是主题爬虫的核心模块,它决定页面的取舍;排序模块是对页面的最终处理,给与主题相关页面的价值一个较为全面的评价排序。主题爬虫的系统组成图如图1.2所示。系统的工作流程如下2:第一步,爬行模块取回网页;第二步,调用相关度分析模块,对网页进行相关度分析;第三步,爬行模块根据分析的不同结果进行相应的处理;第四步,爬行模块从数据库取出等待处理的URL继续工作,返回到第一步,直至没有新的URL;第五步,对网页的重要程度进行排序。HTML文档爬行模块相关度分析模块主题确立模块初始种子模块排序模块数据库图1.2 系统组成1.3 主题爬虫的解决方案1.3.1 基于关键词的主题爬虫在基于关键词的方案中,把关键词的个数n作为向量空间的维数,每个关键词的权重wi作为每一维分量的大小,则主题用向量表示为:对页面进行分析,统计关键词出现频率,求出频率之比,以出现频率最高的关键词为基准,其频率用xi = 1表示;通过频率比,求出其他关键词的频率xi,则该页面对应向量的每一维分量为xiwi,页面主题用向量表示为:用两个向量夹角的余弦表示页面的主题相关度:指定一个阈值r,当时就可以认为该页面和主题是比较相关的,r的取值根据经验和实际要求确定。如果想获得较多的页面,可以把r设小一点;要获得较少的页面,可以把r设得大一点。1.3.2 基于概念分析的主题爬虫在基于概念的方案中,由于“知网”(英文名称为Hownet)能够为汉语语义处理提供一个比较全面的语义知识库,可以此作为基于概念的主题相关度分析的概念网络。所有的关键词t形成关键词集合,设关键词有个概念义,记:从关键词集合T转化扩充得到关键词概念集合,其元素为每个关键词的每个概念义,令,其中,表示第i个关键词的第j个概念义,则有考虑一词多义,删除其他完全相同的概念,将集合变为概念集合C,设由m 个概念组成,记为。把概念的个数m 为向量的维数,每个概念的权重 (该概念对于主题的贡献度) 作为每一维分量的大小,得到主题的新的向量表示。然后,与基于关键词的方案对应,对页面进行概念提取,在概念集合C上页面d的特征向量为:其中为概念在页面d中的权重5 ,最终得到新的页面主题向量表示。最后,计算, 并将它和指定的阈值r进行比较,来判断页面的主题相关度,决定页面的取舍。1.3.3 基于本体语义分析的主题爬虫要根据语义判定主题相关性,可采用从页面分析入手,将页面中与主题词具有相同概念的其他关键词(主要指其同义词和下义词) 都替换成概念,这样页面与主题特征向量R 就能实现语义层次上的相似性判断,而且不会增加主题特征向量R的维数,也不存在新添加概念的权值确定问题。由于ontology 具有良好的概念层次及概念间、属性间关系定义,因而能很方便地获得一个词语的同义词或上、下义词。Hownet 是一个人工构建的目前已被广泛认可的ontology ,它以词语所代表的概念为描述对象,以揭示概念和概念之间以及概念所具有的属性之间的关系为基本内容6。因此本分析中直接采用Hownet,而不另外构建ontology。一种做法是检查页面中所有名词(因为主题特征项一般都是名词)的同义词和n 代上义词看能否与主题特征集中的特征项匹配,能的话则将该名词替换成该特征项,从而实现将关键词聚集成概念,如算法1。算法1 页面语义化算法 页面中每一个名词;主题特征集k;基于语义的新页面 (初始时与原页面相同); 每个特征项在语义页面中总共出现的频率;在页面中各个位置中出现的频率,n表示特征词出现位置(如标题,链接,加强文本等);对每个将及用Hownet 扩展出的的同义词及n 代上义词,存入集合temp;对k 中的每个特征项 If (在的集合temp中) 将中的替换成;+;/计算出现频率根据在页面中位置n,计算在页面中不同位置出现的频率;由于算法1需对页面中的每个名词都进行扩展,再进行匹配,会浪费许多时间在扩展主题无关名词上,使算法的效率不高,难于适应实时过滤的需求。实际上关键是要计算语义页面的特征向量。由于要实现网页的实时过滤,所以不采用传统的TF-IDF公式计算权值,而采用根据网页中信息的位置改进的权值计算公式。因而只需获得每个特征项在语义页面中出现的频率及在语义页面中不同位置的出现频率。根据这个需求,提出算法2。算法2计算每个特征词的所有扩展词在页面中出现的频率,也就是特征词在语义页面中的出现频率。这样达到了与算法1同样的效果,却大大降低了算法的复杂性,需要的只是简单的求和,适合实时过滤。算法2 页面语义化改进算法对k 中的每个特征项记集合,其中表示用Hownet扩展出的同义词或n 代下义词;将temp中各元素在页面中出现的频率累加得;据temp中各元素在页面中的位置得出在页面中不同位置出现的频率;网页上不同位置的信息具有不同的重要性(如标题文本一般比普通文本重要),我们提出了实时过滤的加权特征项权值计算公式 (1)其中,表示位置加权系数,用特征词出现的位置权值与对应位置的频率的乘积和来计算。可由算法2获得,而位置权值的确定,研究发现网页中的锚文本(anchor text)最能反映页面内容,应赋予最高权值;而标题(title)、大标题(H1、H2)、加强文本( strong)也比较能反映页面内容,赋予次高权值。具体赋值如下:,表示页面中的特征项的标准化频率,即用特征项在页面中出现的频率除以在页面中出现频率最高的特征项的频率。,都可由算法2。表示特征项预先给定的权值。在计算出语义页面的特征向量后,就可以计算与主题特征向量R 的相关性。1.4 主题爬虫界面和数据库设计概述1.4.1 界面设计概述界面设计是开发中一个重要的方面,并将涉及到整个开发队伍。有效的界面设计经常是预见的过程,设计目标是开发者根据自己对用户需求的理解而制定的。优秀的界面简单且用户乐于使用,这意味着设计需适应硬件的局限。成功的界面设计不仅仅依赖于图片或声音,还依赖于比图片和声音更精细的元素。真正丰富多彩的是用户和多媒体本身(即计算机)带到工作台来的期望度。主要期望在于机器在与用户对话时,首先要确定用户在等待计算机反应时能忍耐多长时间;其次是要事先给机器规定的例子是,多媒体产品中选择项的范围宽度,或各种各样分散的选择项应集成的程度7。由于多媒体产品总是为某类用户制作的,在设计用户界面时要考虑的最重要的因素是用户的期望。尽管制作界面的创新外观存在极大的可能性,统一的外观仍很重要,当同这一媒介对话时,用户应能作出智能选择,以便享受体验或发现它的用处。在界面设计中,形式应当符合功能。值得记住的是当设计者为用户建立了某一功能,用户希望这一功能在全部多媒体体验中是一致的。界面设计者,也即多媒体开发组的科学掌舵人主要是要回答类似的问题8。从艺术、技术,有时是商业角度看,界面设计也许是整个项目中最重要的决策。本文主要通过对本系统用户可能需要功能的预测,对爬虫系统窗口以及搜索窗口的布局设计,争取达到视觉和功能的统一,为后期系统应用进程奠定良好的基础。1.4.2 数据库设计概述性能良好的数据库是应用系统成功的基础和保证9。但一个性能良好的数据库的设计和开发却是一项庞大而复杂的工程。从事数据库设计的人员,不仅要具备数据库知识和数据库设计技术,还要有系统开发的实际经验。数据库设计人员必须深入实际环境,密切联系用户,了解需求,学习业务,这样可以少走弯路,提高设计的成效。在本系统设计过程中需要对各种状态下的URL进行分析存储设计,具体描述如下。为了能够方便的处理链接和主题相关度的计算,需要使用5个URL队列,每个队列保存着同一处理状态的URL: 等待队列 在这个队列中,URL等待被爬虫处理,新发现的URL被加入到该队列。 处理队列 爬虫开始处理URL时,被传送到这一队列,为了保证同一个URL不能多次被处理,当一个URL被处理过后,被移送到错误队列或者抛弃队列或者完成队列。 错误队列 如果在下载网页时发生错误,它的URL将被加入到错误队列,一旦移入错误队列,爬虫不会对它作进一步处理。 抛弃队列 如果下载网页没有发生错误,且经过主题相关度的计算小于阈值,则放入该队列,一旦移入抛弃队列,爬虫不会对它作进一步处理。 完成队列 如果下载网页没有发生错误,如果下载网页没有发生错误,且经过主题相关度的计算大于等于阈值,就要把从中发现的URL放入等待队列,处理完毕把它加入到完成队列,到达这一队列将等待排序模块的处理。本系统原则上对每个状态的队列都有一张数据库表与之对应,但由于系统所涉及的数据量比较庞大,对每种状态都进行数据库存取操作,这样对数据的存储机制会造成一定的压力,综合考虑后只保留最终结果,即完成队列,对于其他状态下的队列采取内存缓存存储,这样虽然占用的系统资源比较多,但爬行系统的工作效率会有显著的提高,第二章 系统界面设计界面设计是人与机器之间传递和交换信息的媒介,包括硬件界面和软件界面,是计算机科学与心理学、设计艺术学、认知科学和人机工程学的交叉研究领域。软件用户界面(Software User Interface)是指软件用于和用户交流的外观、部件和程序等等。软件界面的设计,既要从外观上进行创意以到达吸引眼球的目的,还要结合图形和版面设计的相关原理,从而使得软件设计变成了一门独特的艺术。通常的讲,企业软件用户界面的设计应遵循几个基本原则:用户导向(User oriented)原则、KISS(Keep It Simple And Stupid)原则、布局控制、视觉平衡、色彩的搭配和文字的可阅读性、和谐与一致性以及个性化。近年来,随着信息技术与计算机技术的迅速发展,网络技术的突飞猛进,人机界面设计和开发已成为国际计算机界和设计界最为活跃的研究方向。2.1 界面设计目标界面设计主要是为了达到以下目的: 以用户为中心。设计由用户控制的界面,而不是界面控制用户。 清楚一致的设计。所有界面的风格保持一致,所有具有相同含义的术语保持一致,易于理解和使用。 拥有良好的直觉特征。以用户所熟悉的现实世界事务的抽象来给用户暗示和隐喻,来帮助用户能迅速学会软件的使用。 较快的响应速度。 简洁、美观。2.2 爬虫界面设计2.2.1 界面功能本界面是爬虫系统的主要设计部分,使用对象一般为管理员,通过此界面管理员可以为所需要爬行的主题做些前期准备,包括主题的录入和主题相关的关键字权重的设置,以及管理员为当前主题精心筛选的优良种子等信息,待管理员设置完毕后这些信息将被存到对应该的数据库表中以备使用,管理员可以通过添加按钮随时添加所需主题。界面还提供了爬虫运行时的状态显示,以及爬虫数量的设置。在系统执行分布式爬行时此界面还提供了控制中心(服务端)的IP地址指向,以便将爬行结果及时反馈给控制中心并申请新的任务。2.2.2 界面元素分析爬虫系统界面运行结果如下图:图2.2.1 爬虫界面结果图界面中各元素的标签、控件名称、控件类型以及功能介绍如下表所示:表2.2.2 界面元素分析表标签控件名称控件类型作用控制中心txtControlCentreTextBox实现控制多台主机爬行的主机IP地址爬虫数量txtCountTextBox人工设置主题爬虫所需数量主题txtSubjectTextBox添加新主题或者输入已存在的主题准备爬行启动按钮btnStartButton主题相关设置完毕后启动爬行系统添加按钮btnAddsubjectButton添加按钮把新主题添加到数据库中停止按钮btnStopButton停止当前的爬行状态主题设置dgvKeyWordsDataGridView显示已有主题或设置新主题的关键字和权重种子设置dgvSeedsDataGridView显示已有主题或设置新主题的搜索入口URL状态栏statusStripStatusStrip显示当前爬行网页状态和活动爬虫数量2.2.3 过程分析运行过程流程如下图2.2.3所示,首先若采用的是分布式爬虫策略即由一台主机控制多台客户端的模式运行,则需在客户端的控制中心处设置此主机的IP地址,接着设置爬虫的数量,数量没有限制,管理员可以根据实际机器的负载能力调节;其次是在主题框处输入所需爬行的主题,如果存在则可直接启动爬行系统;否则应设置主题的关键字和对应关键字的权重值,接着设置为此主题挑选好的优良种子URL;然后将添加保存上述设置后即可启动爬行系统。图2.2.3 运行流程图2.3 用户搜索界面设计2.3.1 界面功能本界面主要是针对的是用户群,用户可以通过此搜索界面搜索数据库中已存在的相关主题,并将搜索结果,包括主题名称以及主题相关内容简述显示在搜索页面上,用户可以点击搜索结果查看完整信息;如果数据库中不存在用户所需要的主题,系统则将新主题存入新主题数据库表,等待管理员重新爬行后更新数据库。此外,搜索页面输入框还带有自动提示功能,可以将用户所输入的内容作为前缀在数据库主题表中进行检索,把符合条件的主题显示在列表里供用户选择。2.3.2 界面元素分析 搜索界面运行结果如下图:图1 搜索界面图 搜索结果如下图:图2 搜索结果图界面界面中各元素的标签、控件名称、控件类型以及功能介绍如下表所示:表2.3.2 界面元素分析表标签控件名称控件类型作用页面LogoLogoTextBox页面标志主题输入txtKeywordTextBox接收用户所搜索主题的录入搜索按钮btnSearchTextBox启动搜索引擎插件控件autoCompleteExtenderAutoCompleteExtender实现自动提示功能的控件插件控件scriptManagerScriptManager显示自动提示检索结果结果显示rptResultRptResult显示用户搜索结果2.3.3 过程分析运行过程流程如下图2.3.3所示,首先用户将所需搜索的主题输入搜索框,启动搜索引擎,如果主题存在数据库中则页面返回搜索结果;若主题不存在则跳转到出错页面,提示用户没有所搜索的主题,系统自动将新主题录入到后台数据库新主题表中。图2.3.3 运行流程图第三章 系统数据库设计数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。数据库设计有三个特点,首先数据库建设是硬件、软件和干件的结合;其次数据库设计应该与应用系统设计相结合;再次数据库设计是结构和行为分离的设计。从设计过程形式化的程度来看,数据库设计方法可分为三大类:手工试凑法、规范设计法、计算机辅助设计法10。 手工试凑法。与设计人员的经验和技巧有直接关系,可以用于设计一些小型系统。它是一种技艺而不是工程技术。 规范化设计方法。是对手工试凑法的改进,人们运用软件工程的思想和方法,提出了各种设计准则或规程,形成了规范化设计方法。这其中比较著名的有新奥尔良方法、Howe的十二步法和Barker方法。规范化方法都强调设计过程的工程化管理及设计文档的重要性。 计算机辅助设计方法。是利用一些专门的软件工具来支持数据库设计过程。早期的工具只能支持数据库设计的某一阶段。近十年来,市场已出现了一些支持(几乎)整个数据库生命周期的大型商品化工具,其中较著名的如表3.1所示:表3.1数据库辅助设计工具产品功能公司Power Designer支持数据库建模和应用开发且不一定要求Sybase数据库环境。SybaseDesigner分析设计工具,支持数据库设计的各个阶段,常和Developer(应用开发工具)一起使用。需要Oracle数据库环境。OracleERwin支持数据库设计的各个阶段,还支持事务和数据仓库设计。Computer AssociatesVisio、Database DesignerVisio是图形工具集,其中提供了设计ER图的工具。Database Designer是一个嵌入在SQL Server和Access中的图形工具。所建立的图称为Database Diagram这种图不是ER图,它实际上是数据库逻辑模式的图形化。Microsoft3.1 数据库设计目标数据库的设计主要是为了达到以下目的: 数据的存储量和精确度尽可能地满足用户的需求。 良好的数据库性能。 提高存储空间的利用率,减少冗余数据。 良好的处理多线程互斥的能力。3.2 系统需求分析需求分析简单地说就是分析用户的要求。需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。3.2.1 需求分析的任务需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求11: 信息要求是指用户需要从数据库中获得信息的内容与性质。由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据。 处理要求是指用户要求完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理。 新系统的功能必须能够满足用户的信息要求、处理要求、安全性与完整性要求。根据需求分析以上三个重点对主题网络爬虫特别是数据方面的需求分析得到,首先主题爬虫爬行的对象是整个Internet,从中筛选出符合条件的资源,包括URL指向,关键词以及相关的内容等等,由此可见所涉及的信息量是巨大的。通过分析,本系统主要存储的数据为像URL、主题、关键字和相关内容等文本数据;还有就是像主题ID号、关键字权重值等数字数据。本系统的处理方式采用的是联机处理,对处理的响应时间由网络带宽和搜索策略及搜索算法决定,在网络带宽受限的情况下应该尽可能的改进策略和算法,使处理速度得以提升。对数据存储方面应该通过实验计算取得数据库存取速度和存储性能的平衡点,不要因为过度频繁地访问数据库造成数据库存储性能的下降。对数据安全性和完整性方面,数据库表中字段类型,长度应该把握好,能够在爬行系统将爬行到的结果传来时不存入脏数据,不丢失数据,数据存储量尽可能满足用户的需求。3.2.2 需求分析的方法进行需求分析首先是调查清楚用户的实际要求,与用户达成共识,然后分析与表达这些需求。需求分析的一般步骤是:(1) 绘制系统关联图,这种关联图是用于定义系统与系统外部实体间的界限和接口的简单模型。同时它也明确了通过接口的信息流和物质流。(2) 创建用户接口原型,当开发人员或用户不能确定需求时,开发一个用户接口原型,一个可能的局部实现这样使得许多概念和可能发生的事更为直观明了。用户通过评价原型将使项目参与者能更好地相互理解所要解决的问题。注意要找出需求文档与原型之间所有的冲突之处。(3) 分析需求可行性,在允许的成本、性能要求下,分析每项需求实施的可行性,明确与每项需求实现相联系的风险,包括与其它需求的冲突,对外界因素的依赖和技术障碍。(4) 确定需求的优先级别,应用分析方法来确定使用实例、产品特性或单项需求实现的优先级别。以优先级为基础确定产品版本将包括哪些特性或哪类需求。当允许需求变更时,在特定的版本中加入每一项变更,并在那个版本计划中作出需要的变更。(5) 为需求建立模型,需求的图形分析模型是软件需求规格说明极好的补充说明。它们能提供不同的信息与关系以有助于找到不正确的、不一致的、遗漏的和冗余的需求。这样的模型包括数据流图、实体关系图、状态变换图、对话框图、对象类及交互作用图。(6) 创建数据字典,数据字典是对系统用到的所有数据项和结构的定义,以确保开发人员使用统一的数据定义。在需求阶段,数据字典至少应定义客户数据项以确保客户与开发小组是使用一致的定义和术语。分析和设计工具通常包括数据字典组件。3.3 概念结构设计3.3.1 概念结构在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能更好地、更准确地用某一DBMS实现这些需求。概念结构的主要特点是:(1) 能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理需求,是对现实世界的一个真实模型;(2) 易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库设计成功的关键(3) 易于修改,当应用环境和应用要求改变时,容易对概念模型修改和扩充;(4) 易于向关系、网状、层次等各种数据模型转换。描述概念模型的有力工具是E-R模型。下面将用E-R模型来描述概念结构。3.3.2 概念结构设计对什么条件的事物可以作为属性来对待,以下给出现两条准则:(1) 作为“属性”,不能再具有需要描述的性质。“属性”必须是不可分的数据项,不能包含其他的属性。(2) “属性”不能与其他实体具有联系,即E-R图中所表示的联系是实体之间的联系。首先对爬虫系统中用到的实体进行分析: 图1 管理员图2 用户图3 索引主题图4 爬虫系统图5 万维网图6 搜索引擎 图7 数据库图8 主题合并分实体,形成完整的E-R(实体-联系)图如下:图9 系统完整E-R图3.4 逻辑结构设计3.4.1 逻辑结构逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转化为与选用DBMS产品所支持的数据模型相符合的逻辑结构。设计逻辑结构时一般要分3步进行:(1) 将概念结构转换为一般的关系、网状、层次模型;(2) 将转换来的关系、网状、层次模型向特定的DBMS支持下的数据模型转换;(3) 对数据模型进行优化。一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码。3.4.2 逻辑结构设计对于实体间的联系有以下不同的情况:(1) 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并;(2) 一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并;(3) 一个m:n联系转换为一个关系模式;(4) 3个或是3个以上实体间的一个多元联系可以转换为一个关系模式;(5) 具有相同码的关系模式可合并。下面把图9中的系统完整E-R图转化为关系模型,关系的码用下划线标出。 管理员(管理员ID,姓名,);此为管理员实体对应的关系模式。 主题(主题ID,主题名,关键字,权重,种子,);此为主题实体对应的关系模式。 爬虫系统(爬虫数量,爬虫地址,爬虫状态,);此为爬虫系统实体对应关系模式。 万维网(地址URL,内容,权限,);此为万维网实体对应的关系模式。 搜索引擎(目标地址,返回地址,搜索结果,效率,);此为搜索引擎关系模式。 数据库(数据库名,数据库列表,大小,表的数量,);此为数据库对应关系模式。 索引主题(主题ID,主题名称,);此为索引主题实体对应的关系模式。 用户(用户名,用户类型,);此为用户实体对应的关系模式。形成了一般的数据模型后,下一步就是向特定的RDBMS的模型转换。对于目前的大部分RDBMS来说,一般不必转换。3.5 数据库物理结构设计3.5.1 物理结构数据库在物理设备上的存储结构与存取方法称为数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论