数据库索引有哪几种,怎样建立索引

数据库索引有哪几种,怎样建立索引,第1张

数据库索引的种类:

1、按照索引列值的唯一性,索引可分为唯一索引和非唯一索引

非唯一索引:B树索引

create index 索引名 on 表名(列名) tablespace 表空间名;

唯一索引:建立主键或者唯一约束时会自动在对应的列上建立唯一索引

2、索引列的个数:单列索引和复合索引

3、按照索引列的物理组织方式

B树索引

create index 索引名 on 表名(列名) tablespace 表空间名;

位图索引

create bitmap index 索引名 on 表名(列名) tablespace 表空间名;

反向键索引

create index 索引名 on 表名(列名) reverse tablespace 表空间名;

函数索引

create index 索引名 on 表名(函数名(列名)) tablespace 表空间名;

删除索引

drop index 索引名

重建索引

alter index 索引名 rebuild

索引的创建格式: 

CREATE UNIUQE | BITMAP INDEX <schema><index_name> 

    ON <schema><table_name> 

    (<column_name> | <expression> ASC | DESC, 

     <column_name> | <expression> ASC | DESC,) 

    TABLESPACE <tablespace_name> 

    STORAGE <storage_settings> 

    LOGGING | NOLOGGING 

    COMPUTE STATISTICS 

    NOCOMPRESS | COMPRESS<nn> 

    NOSORT | REVERSE 

    PARTITION | GLOBAL PARTITION<partition_setting>

UNIQUE | BITMAP:指定UNIQUE为唯一值索引,BITMAP为位图索引,省略为B-Tree索引。 

    <column_name> | <expression> ASC | DESC:可以对多列进行联合索引,当为expression时即“基于函数的索引” 

    TABLESPACE:指定存放索引的表空间(索引和原表不在一个表空间时效率更高) 

    STORAGE:可进一步设置表空间的存储参数 

    LOGGING | NOLOGGING:是否对索引产生重做日志(对大表尽量使用NOLOGGING来减少占用空间并提高效率) 

    COMPUTE STATISTICS:创建新索引时收集统计信息 

    NOCOMPRESS | COMPRESS<nn>:是否使用“键压缩”(使用键压缩可以删除一个键列中出现的重复值) 

    NOSORT | REVERSE:NOSORT表示与表中相同的顺序创建索引,REVERSE表示相反顺序存储索引值 

    PARTITION | NOPARTITION:可以在分区表和未分区表上对创建的索引进行分区

使用USER_IND_COLUMNS查询某个TABLE中的相应字段索引建立情况

使用DBA_INDEXES/USER_INDEXES查询所有索引的具体设置情况。

在Oracle中的索引可以分为:B树索引、位图索引、反向键索引、基于函数的索引、簇索引、全局索引、局部索引等,下面逐一讲解:

一、B树索引:

最常用的索引,各叶子节点中包括的数据有索引列的值和数据表中对应行的ROWID,简单的说,在B树索引中,是通过在索引中保存排过续的索引列值与相对应记录的ROWID来实现快速查询的目的。其逻辑结构如图:

  可以保证无论用户要搜索哪个分支的叶子结点,都需要经过相同的索引层次,即都需要相同的I/O次数。

B树索引的创建示例:

create index ind_t on t1(id) ;

注1:索引的针对字段创建的,相同字段不能创建一个以上的索引;

注2:默认的索引是不唯一的,但是也可以加上unique,表示该索引的字段上没有重复值(定义unique约束时会自动创建);

注3:创建主键时,默认在主键上创建了B树索引,因此不能再在主键上创建索引。

二、位图索引:

有些字段中使用B树索引的效率仍然不高,例如性别的字段中,只有“男、女”两个值,则即便使用了B树索引,在进行检索时也将返回接近一半的记录。

所以当字段的基数很低时,需要使用位图索引。(“低”的标准是取值数量 < 行数1%)

位图索引的逻辑结构如上图所示:索引中不再记录rowid和键值,而是将每个值作为一列,用0和1表示该行是否等于该键值(0表示否;1表示是)。其中位图索引的行顺序与原表的行顺序一致,可以在查询数据的过程中对应计算出行的原始物理位置。

位图索引的创建示例:

create bitmap index ind_t on t1(type);

注:位图索引不可能是唯一索引,也不能进行键值压缩。

三、反向键索引:

考虑这个情况:某一字段的值是1-1000顺序排列,建立B树索引后依旧递增,到后来该B数索引不断在后面增加分支,会形成如下如的不对称树:

  反向键索引是一种特殊的B树索引,在存储构造中与B树索引完全相同,但是针对数值时,反向键索引会先反向每个键值的字节,然后对反向后的新数据进行索引。例如输入2008则转换为8002,这样当数值一次增加时,其反向键在大小中的分布仍然是比较平均的。

反向键索引的创建示例:

create index ind_t on t1(id) reverse;

注:键的反转由系统自行完成。对于用户是透明的。

四、基于函数的索引:

有的时候,需要进行如下查询:select from t1 where to_char(date,'yyyy')>'2007';

但是即便在date字段上建立了索引,还是不得不进行全表扫描。在这种情况下,可以使用基于函数的索引。其创建语法如下:

create index ind_t on t1(to_char(date,'yyyy'));

注:简单来说,基于函数的索引,就是将查询要用到的表达式作为索引项。

五、全局索引和局部索引:

这个索引貌似很复杂,其实很简单。总得来说一句话,就是无论怎么分区,都是为了方便管理。

具体索引和表的关系有三种:

1、局部分区索引:分区索引和分区表1对1

2、全局分区索引:分区索引和分区表N对N

3、全局非分区索引:非分区索引和分区表1对N

创建示例:

首先创建一个分区表

create table student

(

stuno number(5),

sname vrvhar2(10),

deptno number(5)

)

partition by hash (deptno)

(

partition part_01 tablespace A1,

partition part_02 tablespace A2

);

创建局部分区索引(1v1):

create index ind_t on student(stuno)

local(

partition part_01 tablespace A2,

partition part_02 tablespace A1

); --local后面可以不加

创建全局分区索引(NvN):

create index ind_t on student(stuno)

global partition by range(stuno)

(

partition p1 values less than(1000) tablespace A1,

partition p2 values less than(maxvalue) tablespace A2

); --只可以进行range分区

创建全局非分区索引(1vN)

create index ind_t on student(stuno) GLOBAL;

信息检索不等于搜索引擎

互联网的发展明显地促进了信息检索技术的发展和应用,一大批搜索引擎产品诞生,为网民提供了很好的快速信息获取和网络信息导航工具,但是将信息检索等同于使用搜索引擎就陷入了误区。搜索引擎技术中也普遍采用了全文信息检索技术,但互联网信息搜索和企业信息搜索是不同的。

一是数据量。传统信息检索系统一般索引库规模多在GB级,但互联网网页搜索需要处理几千万上亿的网页,搜索引擎的基本策略都是采用检索服务器群集,对大多数企业应用是不合适和不必要的,并不适用于企业应用。

二是内容相关性。信息太多,查准和排序就特别重要,Google等搜索引擎发展了网页链接分析技术,根据互联网上网页被连接次数作为重要性评判的依据。但企业网站内部的网页链接由网站内容采编发布系统决定,其链接次数存在偶然因素,不能作为判别重要性的依据。真正的企业应用的检索要求基于内容的相关性排序,就是说,和检索要求最相关的信息排在检索结果的前面,链接分析技术此种排序基本不起作用。

三是实时性。搜索引擎的索引生成和检索服务是分开的,周期性更新和同步数据,大的搜索引擎的更新周期需要以周乃至月度量;而企业信息检索需要实时反映内外信息变化,搜索引擎系统机制并不能适应企业中动态性数据增长和修改的要求。

四是安全性。互联网搜索引擎都基于文件系统,但企业应用中内容一般均会安全和集中地存放在数据仓库中以保证数据安全和管理的要求。

五是个性化和智能化。由于搜索引擎数据和客户规模的限制,相关反馈、知识检索、知识挖掘等计算密集的智能技术很难应用,而专门针对企业的信息检索应用能在智能化和个性走得更远。

(),通常指文本信息检索,包括信息的存储、组织、表现、查询、存取等各个方面,其核心为文本信息的索引和检索。从历史上看,信息检索经历了手工检索、计算机检索到目前网络化、智能化检索等多个发展阶段。

目前,信息检索已经发展到网络化和智能化的阶段。信息检索的对象从相对封闭、稳定一致、由独立数据库集中管理的信息内容扩展到开放、动态、更新快、分布广泛、管理松散的Web内容;信息检索的用户也由原来的情报专业人员扩展到包括商务人员、管理人员、教师学生、各专业人士等在内的普通大众,他们对信息检索从结果到方式提出了更高、更多样化的要求。适应网络化、智能化以及个性化的需要是目前信息检索技术发展的新趋势。

信息检索技术的热点

◆智能检索或知识检索

传统的全文检索技术基于关键词匹配进行检索,往往存在查不全、查不准、检索质量不高的现象,特别是在网络信息时代,利用关键词匹配很难满足人们检索的要求。智能检索利用分词词典、同义词典,同音词典改善检索效果,比如用户查询“计算机”,与“电脑”相关的信息也能检索出来;进一步还可在知识层面或者说概念层面上辅助查询,通过主题词典、上下位词典、相关同级词典,形成一个知识体系或概念网络,给予用户智能知识提示,最终帮助用户获得最佳的检索效果,比如用户可以进一步缩小查询范围至“微机”、“服务器”或扩大查询至“信息技术”或查询相关的“电子技术”、“软件”、“计算机应用”等范畴。另外,智能检索还包括歧义信息和检索处理,如“苹果”,究竟是指水果还是电脑品牌,“华人”与“中华人民共和国”的区分,将通过歧义知识描述库、全文索引、用户检索上下文分析以及用户相关性反馈等技术结合处理,高效、准确地反馈给用户最需要的信息。

◆知识挖掘

目前主要指文本挖掘技术的发展,目的是帮助人们更好的发现、组织、表示信息,提取知识,满足信息检索的高层次需要。知识挖掘包括摘要、分类(聚类)和相似性检索等方面。

自动摘要就是利用计算机自动地从原始文献中提取文摘。在信息检索中,自动摘要有助于用户快速评价检索结果的相关程度,在信息服务中,自动摘要有助于多种形式的内容分发,如发往PDA、手机等。相似性检索技术基于文档内容特征检索与其相似或相关的文档,是实现用户个性化相关反馈的基础,也可用于去重分析。自动分类可基于统计或规则,经过机器学习形成预定义分类树,再根据文档的内容特征将其归类;自动聚类则是根据文档内容的相关程度进行分组归并。自动分类(聚类)在信息组织、导航方面非常有用。

◆异构信息整合检索和全息检索

在信息检索分布化和网络化的趋势下,信息检索系统的开放性和集成性要求越来越高,需要能够检索和整合不同来源和结构的信息,这是异构信息检索技术发展的基点,包括支持各种格式化文件,如TEXT、HTML、XML、RTF、MSOffice、PDF、PS2/PS、MARC、ISO2709等处理和检索;支持多语种信息的检索;支持结构化数据、半结构化数据及非结构化数据的统一处理;和关系数据库检索的无缝集成以及其他开放检索接口的集成等。所谓“全息检索”的概念就是支持一切格式和方式的检索,从目前实践来讲,发展到异构信息整合检索的层面,基于自然语言理解的人机交互以及多媒体信息检索整合等方面尚有待取得进一步突破。

另外,从工程实践角度,综合采用内存和外部存储的多级缓存、分布式群集和负载均衡技术也是信息检索技术发展的重要方面。

随着互联网的普及和电子商务的发展,企业和个人可获取、需处理的信息量呈爆发式增长,而且其中绝大部分都是非结构化和半结构化数据。内容管理的重要性日益凸现,而信息检索作为内容管理的核心支撑技术,随着内容管理的发展和普及,亦将应用到各个领域,成为人们日常工作生活的密切伙伴。

信息检索起源于图书馆的参考咨询和文摘索引工作,从19世纪下半叶首先开始发展,至20世纪40年代,索引和检索成已为图书馆独立的工具和用户服务项目。

随着1946年世界上第一台电子计算机问世,计算机技术逐步走进信息检索领域,并与信息检索理论紧密结合起来;脱机批量情报检索系统、联机实时情报检索系统相继研制成功并商业化,20世纪60年代到80年代,在信息处理技术、通讯技术、计算机和数据库技术的推动下,信息检索在教育、军事和商业等各领域高速发展,得到了广泛的应用。Dialog国际联机情报检索系统是这一时期的信息检索领域的代表,至今仍是世界上最著名的系统之一。

搜索引擎工作流程

互联网是一个宝库,搜索引擎是打开宝库的一把钥匙。然而,绝大多数网民在搜索引擎的相关知识及使用技巧上能力不足。国外的一次调查结果显示,约有71%的人对搜索的结果感到不同程度的失望。作为互联网的第二大服务,这种状况应该改变。

互联网的迅速发展,导致了网上信息的爆炸性增长。全球目前的网页超过20亿,每天新增加730万网页。要在如此浩瀚的信息海洋里寻找信息,就像“大海捞针”一样困难。搜索引擎正是为了解决这个“迷航”问题而出现的技术。

搜索引擎的工作包括如下三个过程:

1在互联中发现、搜集网页信息;

2对信息进行提取和组织建立索引库;

3再由检索器根据用户输入的查询关字,在索引库中快速检出文档,进行文档与查询的相关度评价,对将要输出的结果进行排序,并将查询结果返回给用户。

发现、搜集网页信息

需要有高性能的“网络蜘蛛”程序(Spider)去自动地在互联网中搜索信息。一个典型的网络蜘蛛工作的方式,是查看一个页面,并从中找到相关信息,然后它再从该页面的所有链接中出发,继续寻找相关的信息,以此类推,直至穷尽。网络蜘蛛要求能够快速、全面。网络蜘蛛为实现其快速地浏览整个互联网,通常在技术上采用抢先式多线程技术实现在网上聚集信息。通过抢先式多线程的使用,你能索引一个基于URL链接的Web页面,启动一个新的线程跟随每个新的URL链接,索引一个新的URL起点。当然在服务器上所开的线程也不能无限膨胀,需要在服务器的正常运转和快速收集网页之间找一个平衡点。在算法上各个搜索引擎技术公司可能不尽相同,但目的都是快速浏览Web页和后续过程相配合。目前国内的搜索引擎技术公司中,比如百度公司的网络蜘蛛采用了可定制、高扩展性的调度算法使得搜索器能在极短的时间内收集到最大数量的互联网信息,并把所获得的信息保存下来以备建立索引库和用户检索。

索引库的建立

关系到用户能否最迅速地找到最准确、最广泛的信息,同时索引库的建立也必须迅速,对网络蜘蛛抓来的网页信息极快地建立索引,保证信息的及时性。对网页采用基于网页内容分析和基于超链分析相结合的方法进行相关度评价,能够客观地对网页进行排序,从而极大限度地保证搜索出的结果与用户的查询串相一致。新浪搜索引擎对网站数据建立索引的过程中采取了按照关键词在网站标题、网站描述、网站URL等不同位置的出现或网站的质量等级等建立索引库,从而保证搜索出的结果与用户的查询串相一致。

搜索引擎的原理可以分为:数据收集、建立索引数据库、索引数据库中搜索和排序。

1、数据收集:搜索引擎的自动信息收集功能分为两种类型,一种是定期搜索,即每隔一段时间,搜索引擎就会主动发送一个“蜘蛛”程序来搜索特定IP地址范围内的互联网站点,一旦发现一个新网站,它将自动提取该网站的信息和网址,并将其添加到自己的数据库中,另一种是提交网站搜索,即网站所有者主动向搜索引擎提交网站地址。

2、建立索引数据库:搜索引擎对收集的信息资源进行索引,编辑摘要以形成标准页面索引,并通过数据库管理系统建立相应的索引数据库,数据库中的每条记录基本上对应于一个网页,包括关键字、网页摘要、URL地址和其他信息。

3、索引数据库中搜索和排序:根据用户提出的查询要求,使用查询软件将其转换为计算机执行的命令,并在索引数据库中搜索符合条件的web记录,并根据相关度对搜索结果进行排序,相关度越高,排名越高,运行后,查询结果将返回给用户。

下面以网络搜索机器人为例来说明搜索引擎技术。

1.网络机器人技术

网络机器人(Robot)又被称作Spider、Worm或Random,核心目的是为获取Intemet上的信息。一般定义为“一个在网络上检索文件且自动跟踪该文件的超文本结构并循环检索被参照的所有文件的软件”。机器人利用主页中的超文本链接遍历>

机器人安在网上爬行,因此需要建立一个URL列表来记录访问的轨迹。它使用超文本,指向其他文档的URL是隐藏在文档中,需要从中分析提取URL,机器人一般都用于生成索引数据库。所有>

(1)机器人从起始URL列表中取出URL并从网上读取其指向的内容;

(2)从每一个文档中提取某些信息(如关键字)并放入索引数据库中;

(3)从文档中提取指向其他文档的URL,并加入到URL列表中;

(4)重复上述3个步骤,直到再没有新的URL出现或超出了某些限制(时间或磁盘空间);

(5)给索引数据库加上检索接口,向网上用户发布或提供给用户检索。

搜索算法一般有深度优先和广度优先两种基本的搜索策略。机器人以URL列表存取的方式决定搜索策略:先进先出,则形成广度优先搜索,当起始列表包含有大量的>

搜索引擎是一个技术含量很高的网络应用系统。它包括网络技术、数据库技术动标引技术、检索技术、自动分类技术,机器学习等人工智能技术。

2.索引技术

索引技术是搜索引擎的核心技术之一。搜索引擎要对所收集到的信息进行整理、分类、索引以产生索引库,而中文搜索引擎的核心是分词技术。分词技术是利用一定的规则和词库,切分出一个句子中的词,为自动索引做好准备。目前的索引多采用Non—clustered方法,该技术和语言文字的学问有很大的关系,具体有如下几点:

(1)存储语法库,和词汇库配合分出句子中的词汇;

(2)存储词汇库,要同时存储词汇的使用频率和常见搭配方式;

(3)词汇宽,应可划分为不同的专业库,以便于处理专业文献;

(4)对无法分词的句子,把每个字当作词来处理。

索引器生成从关键词到URL的关系索引表。索引表一般使用某种形式的倒排表(),即由索引项查找相应的URL。索引表也要记录索引项在文档中出现的位置,以便检索器计算索引项之间的相邻关系或接近关系,并以特定的数据结构存储在硬盘上。

不同的搜索引擎系统可能采用不尽相同的标引方法。例如Webcrawler利用全文检索技术,对网页中每一个单词进行索引;Lycos只对页名、标题以及最重要的100个注释词等选择性词语进行索引;Infoseek则提供概念检索和词组检索,支持and、or、near、not等布尔运算。检索引擎的索引方法大致可分为自动索引、手工索引和用户登录三类。

3检索器与结果处理技术

检索器的主要功能是根据用户输入的关键词在索引器形成的倒排表中进行检索,同时完成页面与检索之间的相关度评价,对将要输出的结果进行排序,并实现某种用户相关性反馈机制。

通过搜索引擎获得的检索结果往往成百上千,为了得到有用的信息,常用的方法是按网页的重要性或相关性给网页评级,进行相关性排序。这里的相关度是指搜索关键字在文档中出现的额度。当额度越高时,则认为该文档的相关程度越高。能见度也是常用的衡量标准之一。一个网页的能见度是指该网页入口超级链接的数目。能见度方法是基于这样的观点:一个网页被其他网页引用得越多,则该网页就越有价值。特别地,一个网页被越重要的网页所引用,则该网页的重要程度也就越高。结果处理技术可归纳为:

(1)按频次排定次序通常,如果一个页面包含了越多的关键词,其搜索目标的相关性应该越好,这是非常合平常理的解决方案。

(2)按页面被访问度排序在这种方法中,搜索引擎会记录它所搜索到的页面被访问的频率。人们访问较多的页面通常应该包含比较多的信息,或者有其他吸引入的长处。这种解决方案适合一般的搜索用户,而因为大部分的搜索引擎都不是专业性用户,所以这种方案也比较适合一般搜索引擎使用。

(3)二次检索进一步净化(比flne)结果,按照一定的条件对搜索结果进行优化,可以再选择类别、相关词进行二次搜索等。

由于目前的搜索引擎还不具备智能,除非知道要查找的文档的标题,否则排列第一的结果未必是“最好”的结果。所以有些文档尽管相关程度高,但并不一定是用户最需要的文档。

搜索引擎的工作原理总共有四步:

第一步:爬行,搜索引擎是通过一种特定规律的软件跟踪网页的链接,从一个链接爬到另外一个链

接,所以称为爬行。

第二步:抓取存储,搜索引擎是通过蜘蛛跟踪链接爬行到网页,并将爬行的数据存入原始页面数据库。

第三步:预处理,搜索引擎将蜘蛛抓取回来的页面,进行各种步骤的预处理。

第四步:排名,用户在搜索框输入关键词后,排名程序调用索引库数据,计算排名显示给用户,排名过程与用户直接互动的。

不同的搜索引擎查出来的结果是根据引擎内部资料所决定的。比如:某一种搜索引擎没有这种资料,您就查询不到结果。

扩展资料:

定义

一个搜索引擎由搜索器、索引器、检索器和用户接四个部分组成。搜索器的功能是在互联网中漫游,发现和搜集信息。索引器的功能是理解搜索器所搜索的信息,从中抽取出索引项,用于表示文档以及生成文档库的索引表。

检索器的功能是根据用户的查询在索引库中快速检出文档,进行文档与查询的相关度评价,对将要输出的结果进行排序,并实现某种用户相关性反馈机制。用户接口的作用是输入用户查询、显示查询结果、提供用户相关性反馈机制。

起源

所有搜索引擎的祖先,是1990年由Montreal的McGillUniversity三名学生(AlanEmtage、Peter

Deutsch、BillWheelan)发明的Archie(ArchieFAQ)。AlanEmtage等想到了开发一个可以用文件名查找文件的系统,于是便有了Archie。

Archie是第一个自动索引互联网上匿名FTP网站文件的程序,但它还不是真正的搜索引擎。Archie是一个可搜索的FTP文件名列表,用户必须输入精确的文件名搜索,然后Archie会告诉用户哪一个FTP地址可以下载该文件。

由于Archie深受欢迎,受其启发,NevadaSystemComputingServices大学于1993年开发了一个Gopher(GopherFAQ)搜索工具Veronica(VeronicaFAQ)。Jughead是后来另一个Gopher搜索工具。

参考资料来源:百度百科-搜索引擎

搜索引擎的工作包括如下过程:搜索器在因特网中发现、搜集网页信息;搜索引擎对所搜集的信息进行提取和组织,并建立索引库;由检索器根据用户输入的查询关键词,在索引库中快速检出相关文档,进行文档与查询内容的相关度比较,对检出的结果进行排序,并将查询结果返回给用户。

以上就是关于数据库索引有哪几种,怎样建立索引全部的内容,包括:数据库索引有哪几种,怎样建立索引、搜索引擎在网络信息检索的地位及作用_搜索引擎与信息检索的关系、搜索引擎的原理是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9876121.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存