管理具有灵活模式的数据制造技术

技术编号:14736620 阅读:35 留言:0更新日期:2017-03-01 09:41
本文中描述的主题涉及管理具有灵活模式的数据。提供了一种用于管理具有灵活模式的数据的方法、计算机存储介质和系统。该方法包括:提供针对数据库的逻辑表的逻辑视图;以及根据预定义映射约束来管理在逻辑表与物理表之间的映射,逻辑表中的每个被映射为物理表的一部分。该映射约束至少规定:(i)逻辑表中的逻辑列被映射到物理表中的至少一个物理列,并且(ii)逻辑表中的一个中的不同逻辑列被映射到物理表中的不同物理列。作为结果,模式演变可以利用最小化的数据迁移完成。

【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
数据库的模式是规定义如何构建数据库的数据的组织。例如,在关系数据库中,模式规定如何通过定义表、字段、关系、视图、索引、函数、队列、触发器、类型和其他方面来存储和管理数据。对于半结构化数据、多租户数据库以及许多其他情形期望管理具有灵活模式的数据。目前,具有灵活模式的各种应用遭遇模式常常未被良好定义并且可能随时间演变的问题。诸如结构化查询语言(SQL)数据库的传统数据库具有支持有效模式演变的困难。如已知的,模式演变可以例如当将一对一关系演变为多对一关系时要求重新规范化和表重新分区。由于从旧表到新表的数据迁移,表重新分区是耗时的。额外地,该过程由于在旧表和新表上的互斥锁,常常需要阻断事务。为了避免这些问题,应用通常不允许在线重新规范化和表重新分区,由此在存在模式演变时引入相当多的停机时间。针对灵活模式的传统解决方案常常在键值对的基础上进行工作,以避免在模式演变时的重新规范化和表重新分区。例如,已经提出了用于灵活模式的关联数组。关联数组是表示实体的原子字段以及稍后用于重新构建数据的内部/外部关系的键值对的集合。关联数组可以将数据引擎从重新规范化和表重新分区解除。然而,在没有数据规范化的情况下,将任何两个实体或属性进行连接必须要求连接操作。作为结果,对关联数组的使用将引入过多的连接操作,并且因此降低数据库的查询性能。具体地,已发现当查询超出简单谓词选择时查询性能动态地下降,并且它们的运行计划涉及在键值存储上的大量连接。另外,键值对在数据规范化不能够被省略的情况下不适用于那些应用。
技术实现思路
本文中描述的主题的实施例大体涉及管理具有用于使模式演变中的数据迁移最小化的模式的数据。一个实施例提供至少部分地由计算机实现的方法。该方法包括:提供针对数据库的逻辑表的逻辑视图;以及根据预定义映射约束来管理在逻辑表与物理表之间的映射,逻辑表中的每个被映射为物理表的一部分。映射约束至少规定:(i)逻辑表中的逻辑列被映射到物理表中的至少一个物理列,并且(ii)逻辑表中的一个中的不同逻辑列被映射到物理表中的不同物理列。另一实施例提供一种计算机可读介质。该计算机存储介质具有计算机可执行指令,该计算机可执行指令当运行时执行包括以下各项的动作:提供针对数据库的逻辑表的逻辑视图;以及根据预定义映射约束来管理在逻辑表与物理表之间的映射,逻辑表中的每个被映射为物理表的一部分,映射约束至少规定:(i)逻辑表中的逻辑列被映射到物理表中的至少一个物理列,并且(ii)逻辑表中的一个中的不同逻辑列被映射到物理表中的不同物理列。又一实施例提供一种计算环境中的系统。该系统包括:逻辑视图管理器,其被配置为提供针对数据库的逻辑表的逻辑视图;以及映射管理器,其被配置为根据预定义映射约束来管理在逻辑表与物理表之间的映射,逻辑表中的每个被映射为物理表的一部分,映射约束至少规定:(i)逻辑表中的逻辑列被映射到物理表中的至少一个物理列,并且(ii)逻辑表中的一个中的不同逻辑列被映射到物理表中的不同物理列。根据本文中描述的主题的实施例,针对数据库的逻辑表的逻辑视图被呈现给应用。在内部,这些逻辑表在某些约束下作为子表被映射到物理表中。以这种方式,对逻辑表的查询可以就像表被存储在传统数据库一样以相同数目的物理连接来运行。在本公开的上下文中,术语“查询”包括检索操作和更新操作两者。逻辑表的模式演变可以容易地通过具有最小化的数据迁移的一系列映射更新来实现。作为结果,模式演变的效率与传统物理表重新分区相比较被显著地改进。此外,在没有数据和查询引擎的重大重新设计的情况下,实现具有已知数据库和应用的良好兼容性。要理解,本
技术实现思路
被提供从而以简化的形式介绍构思的选择。下面在具体实施方式中进一步描述这些构思。本
技术实现思路
不旨在标识要求保护的主题的关键特征或必要特征,也不旨在用于限制要求保护的主题的范围。附图说明图1图示了本文中描述的主题的实施例可以被实现在其中的计算环境的框图;图2图示了根据本文中描述的主题的实施例的数据库系统的框图;图3图示了根据本文中描述的主题的实施例的逻辑表和物理表的示例;图4图示了根据本文中描述的主题的实施例的表示映射函数的表的示例;图5图示了根据本文中描述的主题的实施例的垂直分区的示例;图6图示了根据本文中描述的主题的实施例的在具有引用的垂直分区之后的物理表和映射函数的示例;图7图示了根据本文中描述的主题的实施例的两个重叠的事务的示例;图8图示了根据本文中描述的主题的实施例的用于管理具有灵活模式的数据的方法的流程图;以及图9图示了根据本文中描述的主题的实施例的用于管理具有灵活模式的数据的系统的框图。具体实施方式现在将参考几个示例实施例讨论本文中描述的主题。将理解,这些实施例仅仅出于使得本领域技术人员能够更好地理解并且因此实现本文中描述的主题的目的来讨论,而非暗示对本主题的范围的任何限制。如本文中所使用的,术语“包括”及其变型要被理解为意指“包括但不限于”的开放式术语。术语“或者”要被理解为“和/或”,除非上下文另行清楚指示。术语“基于”要被理解为“至少部分地基于”。术语“一个实施例”和“实施例”要被理解为“至少一个实施例”。术语“另一实施例”要被理解为“至少一个其他实施例”。下面可以包含显式的和隐式的其他定义。图1图示了所描述的主题的一个或多个实施例可以被实现在其中的计算环境100的示例。计算环境100不旨在暗示对本文中描述的主题的使用或功能的范围的任何限制,因为各种实施例可以被实现在各种各样的通用或专用计算环境中。参考图1,计算环境100包括至少一个处理单元(或处理器)110和存储器120。处理单元110运行计算机可执行指令并且可以为真实处理器或虚拟处理器。在多处理系统中,多个处理单元运行计算机可执行指令以提高处理功率。存储器120可以为易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存)或这两者的某种组合。存储器120至少存储用于管理具有灵活模式的数据的软件170的部分。计算环境100可以具有额外的组件或特征。在图1中示出的示例中,计算环境100包括存储装置130、一个或多个输入设备140、一个或多个输出设备150以及一个或多个通信连接160。诸如总线、控制器或网络的互连机构(未示出)将计算环境100的组件相互连接。通常,操作系统软件(未示出)提供针对在计算环境100中运行的其他软件的操作环境,并且协同计算环境100的组件的活动。存储装置130可以为可移除的或不可移除的,并且可以包括诸如闪速驱动器、磁盘、磁带或磁带盒、CD-ROM、CD-RW、DVD的计算机可读存储介质、或者能够被用于存储信息并且能够在计算环境100内被访问的任何其他介质。存储装置130可以至少存储针对软件170的指令的部分。(多个)输入设备140可以为各种不同的输入设备中的一个或多个。例如,(多个)输入设备140可以包括用户设备,例如鼠标、键盘、轨迹球、等等。(多个)输入设备140可以实现一种或多种自然用户接口技术,例如语音识别、触摸和触笔识别、与(多个)输入设备140相接触并且与(多个)输入设备140相邻的手势的识别、空中手势的识别、头和眼跟踪、声音和语音识别、感测用户大脑活动以及机器智能。作为其他示例,(多个)输入设备14本文档来自技高网
...
管理具有灵活模式的数据

【技术保护点】
一种至少部分地由计算机实现的方法,包括:提供针对数据库的逻辑表的逻辑视图;以及根据预定义映射约束来管理在所述逻辑表与物理表之间的映射,所述逻辑表中的每个逻辑表被映射到所述物理表的一部分,所述映射约束至少规定:(i)所述逻辑表中的逻辑列被映射到所述物理表中的至少一个物理列,并且(ii)所述逻辑表中的一个逻辑表中的不同逻辑列被映射到所述物理表中的不同物理列。

【技术特征摘要】
【国外来华专利技术】1.一种至少部分地由计算机实现的方法,包括:提供针对数据库的逻辑表的逻辑视图;以及根据预定义映射约束来管理在所述逻辑表与物理表之间的映射,所述逻辑表中的每个逻辑表被映射到所述物理表的一部分,所述映射约束至少规定:(i)所述逻辑表中的逻辑列被映射到所述物理表中的至少一个物理列,并且(ii)所述逻辑表中的一个逻辑表中的不同逻辑列被映射到所述物理表中的不同物理列。2.根据权利要求1所述的方法,其中管理所述映射包括:基于所述逻辑表的标识符来管理在所述物理表中的记录与所述逻辑表之间的关联,所述关联允许以下至少一项:逻辑表具有不止一个标识符,以及不止一个逻辑表共享一个标识符。3.根据权利要求1所述的方法,还包括:至少部分地基于所述逻辑表中的逻辑列的数目与所述逻辑列的不同数据类型的数目,来确定所述物理表的宽度。4.根据权利要求1所述的方法,还包括管理所述物理表,包括以下至少一项:响应于确定所述物理表中的物理列的密度在预定义阈值以下,减少用于所述物理列的存储空间;以及当所述逻辑表的逻辑列被映射到所述物理表中时,复用所述物理列。5.根据权利要求1所述的方法,还包括:通过所述逻辑视图来接收对所述逻辑表中的至少一个逻辑表的查询;以及至少部分地基于所述映射来将接收到的所述查询转化为对所述物理表的查询。6.根据权利要求1所述的方法,还包括:通过所述逻辑视图来接收包括针对模式的演变的请求的第一事务,所述模式针对所述逻辑表中的至少一个逻辑表;以及至少部分地基于所述映射来使所述模式演变,使得所述至少一个逻辑表中的数据的迁移在所述演变期间被最小化。7.根据权利要求6所述的方法,其中针对所述演变的所述请求包括针对所述演变的原语,并且其中使所述模式演变包括:将所述原语转化为更新所述映射的至少一个语句。8.根据权利要求6所述的方法,还包括:确定所述至少一个逻辑表是否由第二事务访问,所述第二事务在所述第一事务之前被启动并且与所述第一事务重叠;以及响应于确定所述至少一个逻辑表由所述第二事务访问,取决于所述模式的所述演变是否引起所述至少一个逻辑表中的所述数据的迁移,来控制在所述第一事务与所述第二事务之间的并发性。9.根据权利要求8所述的方法,其中控制在所述第一事务与所述第二事务之间的所述并发性包括:响应于确定所述模式的所述演变引起所述数据的所述迁移,防止所述至少一个逻辑表中的所述数据由所述第二事务在所述数据的所述迁移期间修改或迁移。10.一种在计算环境中的系统,包括:逻辑视图管理器,其被配置为提供针对数据库的逻辑表的逻辑视图;以及映射管理器,其被配置为根据预定义映射约束来管理在所述逻辑表与物理表之间的映射,所述逻辑表中的每个逻辑表被映射为所述物理表的一部分,所述映射约束至少规定:(i)所述逻辑表中的逻辑列被映射到所述物理表中的至少一个物理列,并且(ii)所述逻辑表中的一个逻辑表中的不同逻辑列被映射到所述物...

【专利技术属性】
技术研发人员:陈亮P·A·贝恩斯泰因
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国;US

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

1