[发明专利]在多版本数据库系统中的万圣夜保护有效
申请号: | 201110358461.2 | 申请日: | 2011-10-31 |
公开(公告)号: | CN102567453A | 公开(公告)日: | 2012-07-11 |
发明(设计)人: | C·S·弗里德曼;C·J·坎宁安 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 杨洁 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 版本 数据库 系统 中的 万圣夜 保护 | ||
技术领域
本发明涉及数据库,尤其涉及在多版本数据库系统中的万圣夜保护(Halloween protection)。
背景技术
背景和相关技术
计算机和计算系统已经影响到了现代生活的几乎每个方面。计算机通常在工作、消遣、保健、运输、娱乐、家政管理等中都有涉猎。
计算系统中的数据通常存储在一个或多个数据库中。数据库是相关数据的集合。数据库中的数据通常以二维的行和列的形式(称为表格)来组织的。数据库通常包括多个表格和多个关联结构。表格是数据库中的对象,包括零个或更多记录以及在每个记录中的至少一个字段。记录可被实现为表格中的行,所述记录被称为记录标识符的唯一数字所标识。字段是记录的细分,在这个意义上而言,表格中的一列数据代表表格中的每个记录的相同字段。数据库中的关联结构的示例是索引,通常,但不是必须的,B树或散列索引的形式。关联结构对数据库的用户透明,但是对高效操作和控制数据库管理系统是重要的。数据库管理系统是支持数据库特征的控制系统,数据库特征包括但不限于,将数据存储在存储介质上,从存储介质检索数据,以及更新存储介质上的数据。
查询用于访问或更新数据库中的数据。查询通常以结构化查询语言(SQL)的变体来构造,该变体可以或可以不符合美国国家标准协会(ANSI)标准SQL定义。SQL查询是非程序性的,因为它以对用户有意义的语言来指定目标或期望的查询结果,但不定义查询应该被实现的步骤或过程。当SQL查询被用于数据库时,数据库管理系统的查询优化器处理该非程序性查询以创建执行计划。执行计划是程序性的,因为它确定为实现SQL查询的目标所要执行的运算和算子的次序和类型。非程序性更新请求(SQL查询)和程序性执行计划的组合创建了查询优化器对执行计划的自动计划的机会和需求。查询优化器可为任何给定的SQL查询生成多个不同的查询计划,并且通常配置为按照高效目标生成查询计划。
更新是对数据库中的数据执行的通用类型的查询。更新是修改数据库中的现存记录及插入和删除数据库中的记录的任何操作。如此处所使用的,更新包括任何数据库修改,包括值的修改(狭义更新)、插入、删除、更新插入(upsert)(更新和插入的组合,如果数据库中存在就更新或者如果不存在就插入)、合并等。执行计划的语义可用SLQ语言的ANSI/ISO标准来规定。根据该标准,任何更新语句的语义与执行的三个独立阶段相同,各阶段之间没有重叠。首先,数据库的只读搜索确定要更新、插入,或删除的记录以及新列值。其次,更新记录和列。第三,验证为数据库定义的一致性约束。
对表格中的记录的更新还包括对索引中的索引条目及与所更新表格相关联的其他关联结构的更新。对关联结构的改变,实际上关联结构它们本身,通常对用户不可见,因为它们因执行计划的程序性执行而引起。
每当定位了满足查询表述的记录时,使用每次一记录(record-at-a-time)流水线操作(pipelining)的算子完全处理(即产生)输出。使用每次一组(set-at-a-time)流水线操作的算子消耗它的全部输入,并仅在那时从该算子中产生输出。每次一记录的处理在小的表间关系(cardinality)改变的传统系统中可能更高效。大的表间关系的改变可能用每次一组的方法更高效,因为它可利用顺序IO而非针对传统盘驱动器的随机IO来排序记录并执行改变。
在数据库更新领域存在被称为万圣夜问题(Halloween problem)的具体问题。自从IBM的San Jose研究实验室的研究人员在1975年的万圣节前夜首次注意到它,万圣夜问题已经是公知的了。数据库系统中的万圣夜问题在产生了不正确结果的数据修改语句(插入、更新,和删除)中可能是明显的,因为修改数据库状态的过程改变了执行语句的行为,并促使其修改了错误的一组记录(归因于跳过记录或归因于多次修改相同记录)。
万圣夜问题的典型示例是对“给薪水超过$30,000的所有员工5%的提高”的请求(SQL查询)。如果(i)使用对薪水的索引来发现这些员工,以及(ii)以薪水递增次序扫描索引条目,以及(iii)扫描不能区分该请求已经更新的索引条目以及那些还未更新的条目,以及(iv)当找到索引条目时立刻更新索引(每次一记录流水线),那么每个有资格的员工将获得无限数量的提高。因此,处理该请求将不会终止。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110358461.2/2.html,转载请声明来源钻瓜专利网。