具有持久性、用户可访问的位图值的数据库管理系统技术方案

技术编号:2838588 阅读:225 留言:0更新日期:2012-04-11 18:40
一种数据库管理系统,具有位图值,在所述位图值中,在位串表示中的设置位指定其定义被内置于所述数据库管理系统的对象组。所述数据库管理系统还包括对所述位图值的用户可访问的操作。所述位图值借助于映射说明符和位串表示来表示,映射说明符用于指定对象组的范围,位串表示已经被映射到由范围说明符所指定的对象组。所述位串的表示可以被压缩。对所述值的位图操作可以修改范围说明符、位串大小或所述位串中的单个位。由位图值所表示的对象可以是数据库管理系统中的对象或其外部的对象。第一种位图值的例子是用于表示rowid组的位图值。可以使用rowid位图值来为在数据库管理系统的字段中所包含的任何对象组制作属性值的用户定义的索引。第二种位图值的例子是用于表示电子产品代码组的位图值。可以在需要一组ePC代码的紧凑表示的任何应用中使用ePC位图值。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术总体上涉及数据库管理系统并且尤其涉及在数据库管理系统中使用位图值来表示一个对象集的子集(subset)。2.
技术介绍
以下
技术介绍
从描述由现代数据库管理系统所提供的内置索引系统开始继而描述现代数据库管理系统怎样进一步允许用户定义自己类型的索引系统,以供所述数据库管理系统使用。通常的索引借助包括索引使任何很大的信息集合更为有用。例如,如果美国革命战争历史具有索引并且该历史的读者对1776年3月17日HenryKnox将军把英国人赶出波士顿感兴趣,那么所述读者只需要在索引中查找“Knox,Henry”,其中该读者在历史书中会发现提及Knox将军的页面列表。在没有索引的情况下,读者必须扫视书的大部分以便发现他或她所寻找的内容。在用于以下论述的术语中,美国独立战争的历史定义了一个信息集;历史读者常常只对该组信息中的一部分感兴趣;所述部分被称为所述信息的子集。因而,历史索引所做的就是指定信息子集的位置并且由此加速用户对所索引子集的访问。内置索引系统数据库管理系统存在以用来管理并提供对大信息集合的访问,并且如人们往往所期望的那样,数据库管理系统具有索引。在关系数据库管理系统中,信息集合被组织为表。数据库表具有多个列并且可以具有多个行。每个行具有对应于每个列的字段。对应于列的字段值具有该列所要求的类型值。例如,以下简单表Employees(雇员)具有四个列和两个行 每个行表示一个雇员。列Rowid是内置列,其字段包含数据库系统为表中的每个行所分配的行标识符。在数据库管理系统中行标识符唯一地标识行。对应于列Name的字段包含了由行所表示的雇员名字。对应于Gender的字段包含雇员的生物性别;最后对应于Job_Title的字段包含了雇员的职别。为了从表中获得信息,用户向数据库管理系统提供查询,所述查询描述了从中取出信息的行和要从那些行中所取出的信息。例如,查询SELECT Name FROM Employees WHERE Job_Title=Manager从Employees中选择其职别字段具有值Manager的行,即其rowid为1的行,并且从该行中返回Name字段的值,即Smith。就介绍性的论述而言,所述查询指定了在Employees中所包含的信息集的子集并且返回所指定的子集。虽然对于Employees来说制作索引几乎是不值得的,然而人们可以制作一个。实际上,如果Employees是一个10,000行的表,那么作一个索引毫无疑问是值得的。例如,Employees上的Name列值的索引可能会看起来像这样Jones,2;Smith,1。该索引具有按字母顺序的名字并且每个名字后面有出现该名字的行的rowid。诸如由Oracle公司(Redwood City,CA)所出品的Oracle 9i数据库管理系统之类的现代数据库管理系统包含内置索引功能,其允许用户指定像上面例子中的名字索引之类的索引。数据库管理系统中这种索引的指定看来像这样CREATE INDEX employee_name_index ON Employees(Name)响应于所述指定,数据库管理系统创建索引,当其所属的表改变时更新索引,并且使用所述索引来加速对表的查询。例如,给定以上索引和查询SELECT Job Title FROM Employees WHERE Name=Smith数据库管理系统会使用索引来确定Smith的行为行1,而不是向下读取表直到发现其Name字段具有值Smith的行。因而在查询中使用索引完全类似于人类读者使用历史书。由现代数据库管理系统所生成的一种索引是位图索引。位图是已经被映射到一个对象集的位序列。每个位对应于该集的一个对象。位图值是其中位已经被设置为用于指定该对象集的子集的位图。当对象属于所述子集时,设置对应于位图值中的对象的位。在现代数据库管理系统所使用的位图索引中,位图已经被映射到用于表示表中的行的rowid集。例如,在表Employees中存在两个行,因此rowid集具有两个成员并且位图具有两个位。在我们的例子中,位图的第一位被映射到rowid 1并且第二位被映射到rowid 2。因为位图中的每个位被映射到表中的rowid,所以位图值可以被用为表中的索引。例如,可以使用在表Employees中用于表示一个rowid集的位图值来表明表中Gender字段具有值M的所有行。在这种位图值中,当在行的Gender字段中存在M时用于表示表的给定rowid的位具有值1,否则具有值0。用于在Employees的Gender字段中值M的示例性位图值是0、1。值M被称为位图值的键(key)。为了定位具有值M的行,数据库管理系统查阅该键的位图值并且根据1是位图值中第二位的事实来确定具有该值的行是具有rowid 2的行。Oracle 9i数据库管理系统允许用户指定为表的列来创建位图索引。数据库管理系统通过制作对于列字段的每个可能值来说包括位图值的位图索引来对这种指定作出响应。例如,Gender列中的字段可以只具有两个值M和F。因而对于此列来说,数据库管理系统会构建两个位图值,一个用于键M而另一个用于键F。会使Oracle 9i数据库管理系统构建这种索引的指定如下CREATE BITMAP INDEX Gender_index ON Employees(Gender)如上所阐述,用于M键的位图值是0、1;用于F键的位图值是1、0。因而用于M键的位图值指定表Employees的行的子集包含具有rowid 2的行,而用于F键的位图值指定所述子集包含具有rowid 1的行。位图索引的优点在于只占据非常少的空间而且通过对位图值执行逻辑操作可以非常迅速地对具有位图索引的字段执行逻辑操作,诸如查询中的AND(与)、OR(或)和NOT(非)。例如,查询SELECT Name FROM Employees WHERE Gender=‘M’ORGender=’F’会OR其Gender键为M的位图值(即1,0)和Gender键为F的位图值(即0,1),以便生成位图值1,1,所述位图值1,1指定了要选择的Employees中的每个行。在Oracle 9i数据库原理(版本2)的第10-28页的Indexes部分开始详细描述了由Oracle 9i数据库管理系统所提供的内置索引系统,所述Oracle 9i数据库原理由Oracle公司在2002年公布并且可从Oracle公司作为部分号A96524-01获得。通过引用将该描述结合到本专利申请中。用户定义的索引系统在设计内置索引系统的数据库管理系统中,在数据库管理系统表的字段中所包含的值必须属于少量内置数据类型之一。内置数据类型典型情况下包括用于名字和字的字符数据类型、用于十进数的十进制数据类型、用于整数的整型数据类型和用于数据库管理系统元数据的系统值数据类型,所述元数据即用于定义表的数据。在示例性的表Employees中,rowid是这种系统数据。其它字段中的数据具有字符数据类型。近年来,数据库管理系统已经包括了用于允许用户定义他或她自己的数据类型并且在数据库管理系统表的字段中使用具有那些数据类型的值的配置。在用户所感兴趣的领域中使用用户定义的数据类型。例如,对摄影感兴趣的用户可以定义适于该领域本文档来自技高网...

【技术保护点】
一种改进的数据库管理系统,包括:位图值,所述位图值具有位串的表示,其中设置位指定其定义被内置于所述数据库管理系统的对象组,和对所述位图值的用户可访问的操作。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:Y胡T乔尔马S孙达拉EI崇S达斯J斯里尼瓦桑
申请(专利权)人:甲骨文国际有限公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1