1 概述
目前网络服务,特别是局域网搜索引擎在企业网络内得到广泛应用,但是企业内网搜索引擎,搜索到的信息单一,只有标题,没有与标题(关键词)相关的信息,不方便使用者了解是否已经获得自己需要的信息,所以类似百度、谷歌等的局域网搜索引擎在企业网中将有着广泛的应用前景。
因此实现对企业内网中文件的搜索的快速性和准确性,优化搜索结果,返回用户需要的信息,以及对整个搜索引擎的实现。使得企业资源更好的共享、信息的实时性,避免了旧的复杂、层层传递的麻烦,大大提高了资源的有效利用率。然而,要做到高效,准确的搜索到用户所需要的相关信息,就必须从数据库设计开始,因为在现在的应用系统中,衡量应用系统成败的标准之一就是对数据查询及处理的速度。
2 关键词及信息管理
企业内网搜索引擎是对内网中的信息资源进行搜集整理,然后高效率的为内网用户提供查询的系统。企业内网搜索引擎它包括网站信息添加、网站信息修改和网站信息删除几部分。目前企业内网搜索引擎的工作模式是基于关键词的检索,应用这种搜索方式,用户可以用逻辑组合方式在企业内网搜索引擎导航上输入与自己搜索相关的关键词,企业内网搜索引擎则根据用户输入的关键词寻找用户所需内网中资源的地址,然后使用相关的技术将在导航上输入的关键词的所有相关网址及指向相关网址的链接按照一定的顺序返回给用户。例如,百度。用户输入的关键词经过处理后,企业内网搜索引擎程序便开始工作,从索引数据库中找出所有包含关键词的网页信息,并且根据排名算法计算出哪些网页应该排在前面,然后按照一定格式返回到页面。
3 数据结构及数据库设计
企业内网搜索引擎的数据结构为倒排索引(也称倒排文件),倒排索引是指用相关记录的非主属性值(也叫外键)来查找记录而组织形成的文件叫倒排文件。所有外键值都存在于倒排文件中,并列出了与之相关的所有主键值的记录,主要用于比较复杂的查询。与传统的数据库查询不同,在企业内网搜索引擎收集完数据及关键词的预处理阶段,需要一种高效快速的数据结构来对用户提供检索服务。然而目前最有效高速的数据结构就是“倒排文件”。倒排文件可以被简单的定义为“用文档中的关键词作为索引,内网中的文档作为索引目标”的结构。
在现在的应用系统中,衡量应用系统成败的标准之一就是对数据查询及处理的速度。需要设计一个搜索引擎数据库用于存放相关信息,一旦有文章更新则更新文章中的信息及关键词段,企业内网搜索引擎在内存中完成所有的文章关键词段搜索,并且在此期间不允许有其他的操作,比如说文章的更新等等。在对企业内网搜索引擎的功能模块进行分析以后,建立了数据库。
3.1 数据流图
3.2 数据库设计步骤
1) 数据库需求分析:对企业内网搜索引擎的实施与应用的必要性和可行性进行论证,罗列出相关对象及其属性,形成数据字典。
2) 数据库系统分析:在需求分析的结果上进行总体分析,了解数据库整体结构。
3) 数据库功能和对象分析:对总体分析进行细化从对象和功能方面进行详细描述。
4) 数据库设计:选用SQL Server对功能和对象建立表。
3.3 各表之间关系
3.4 数据对象
3.4.1 Web对象
用途:为Web页面提供存储,提取,URL操作,方便对Web页面的增加,删除与修改。
约束:数据系统中包含多个实例持久性:持久对象
属性描述
属性:url 类型:String 描述:本网页的URL。
属性:title 类型:String 描述:记录网页的标题
属性:time 类型:time 描述:记录网页添加时间
属性:content 类型:String 描述:记录与网页相关的内容,并显示出搜索到的网页的相关信息。
3.4.2 Admin对象
用途:为系统提供后台管理,设置管理员登录,并且登录密码采用MD5加密。
约束:数据系统中包含多个实例属性描述属性:username 类型:String 描述:记录管理员登录名属性:password 类型:String 描述:记录管理员登录密码属性:login_ip 类型:String 描述:记录登录的IP地址3.4.3 Keyword对象。
用途:当用户在导航栏上输入关键词后,为系统提供对关键词的管理。
约束:数据系统中包含多个实例属性描述属性:keyword 类型:String 描述:记录用户在内网中导航上输入的关键词。
4 完整性约束
完整性约束条件也称为完整性规则,关系完整性约束是为确保数据库中数据的相容性和正确性,对关系模型提出的某种约束条件或规则,是数据库中数据必须满足的语义约束条件。
4.1 数据库约束
数据库顾名思义就是指一个用户或者管理员定义的表的集合;然而数据库约束是指所建立的数据库必须满足某个特定的条件(本数据库中各表之间的相互联系)。
4.2 表约束
表约束就是指该表的每条记录必须满足某个特定的条件(只涉及该表本身而不涉及数据库中的其他表和其他域)。SQL允许把约束定义在字段和表上,允许对数据施予任意的控制,若用户想在字段里存储违反约束的数据,那么就会出现错误。这种情况同时也适用于数值来自缺省值的情况。表约束有以下几种类型:
1) 检查约束:是最常见的约束类型。允许在某个字段里声明的数值使一个结果为真的布尔表达式。
2) 非空约束:只是简单地声明一个字段必须不能是 NULL ,非空约束在功能上等效于创建一个检查约束。
3) 唯一约束:保证在一个字段或者一组字段里的数据与表中其它行的数据相比是唯一的。
4) 主键:只是唯一约束和非空约束的组合。
5) 外键:声明一个字段的数值必须匹配另外一个表中出现的数值。
以上约束类型的语法参考SQL数据库,例如要强制一个产品的价格的检查约束,可以使用下面语法:
CREATE TABLE products (pdn integer,name text,price numeric CHECK (price > 0));5 数据备份与数据安全。
数据备份分为完全备份和差异备份。完全备份就是将整个数据都做备份;差异备份是从上一次完全备份后所做的数据进行备份。数据安全是一种主动的包含措施,数据本身的安全必须基于可靠的加密算法与安全体系,其中在企业内网搜索引擎的数据库建立中就采用了MD5加密算法,保证内网中的数据库信息的数据安全性。
参考文献:
[1] 袁津生,李群,蔡岳.搜索引擎原理与实践[M].北京邮电大学出版社.
[2] 吴洁明,软件工程应用实践教程[M].清华大学出版社.
[3] 王珊,萨师煊.数据库系统概[M].论高等教育出版社.
[4] 王珊,崔敬东,高庆成.SQL Server 2005数据库技术与应用 [M].清华大学出版社.