当前位置: 首页 > 专利查询>微软公司专利>正文

范围化数据库连接制造技术

技术编号:7290561 阅读:187 留言:0更新日期:2012-04-25 23:00
本发明专利技术涉及范围化数据库连接。本发明专利技术扩展到用于范围化用于访问数据库分区的上下文的方法、系统和计算机程序产品。本发明专利技术的实施例在多承租人数据库中使用分区来允许数据隔离,同时减轻客户端应用处理分区的负担。例如,包括分布式数据库系统的计算机系统接收当在该分布式数据库系统中执行数据库访问操作时使用的上下文,所述分布式数据库系统包括在联合中的多个数据库分区。上下文表示了指定修改的联合部分。计算机系统还接收与所述上下文相关联的数据库访问操作。计算机系统根据所关联的上下文对数据库访问操作的语义进行修改以指引将该数据库访问操作应用到指定相关的联合部分。

【技术实现步骤摘要】
范围化数据库连接
本申请涉及范围化数据库连接。
技术介绍
1.背景和相关技术计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已转变了人们生活和工作的方式。计算机系统现在通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排和会计等)。最近,计算机系统彼此耦合并耦合到其他电子设备以形成计算机系统和其他电子设备可以在其上传输电子数据的有线和无线计算机网络。因此,许多计算任务的执行跨多个不同的计算机系统和/或多个不同的计算环境分布。在一些计算环境中,使用数据库来管理一个或多个数据库承租人(例如用户、组织等)的数据集。当管理多个承租人的数据时,可以使用隔离边界来将不同数据库承租人的数据分隔开来并提升安全性。隔离边界通常是通过对每个承租人使用单独数据库来形成的。例如,通过将来自一个用户的数据存储在单独的数据库中,可以将该用户的数据与来自所有其他用户的数据分隔开来。然而,一些应用管理非常大量的承租人。例如,社交网络站点可以具有数亿用户。为每个承租人(用户)维护单独的数据会变得很麻烦并且资源密集的。在一些环境中,通过碎片化(sharding)来形成隔离边界。碎片化是一种通过将不同的行分离到不同的表格中来拆分(分区)一个或多个表格的水平分区形式。水平分区减少了每个表格中的行的总数,减少了跨单个方案的实例(或同一逻辑服务器)的索引大小。通过跨多个服务器(逻辑的或物理的)拆分(分区)一个或多个表格来进一步碎片化。这样,碎片化能够将较大的数据库在多个机器上分布,改进了性能。然而,碎片化难以实现,并且通常需要手动编码和在应用层和数据库之间的复杂的协调。无论使用了什么隔离方案,在数据库是在线或离线时,数据隔离可以改变在数据库或数据库分区中数据的排列。这样,即使底层数据保持相同,但数据集在数据库环境中的位置会改变。因此,即使数据没有被改变,但给定的数据库查询在不同的时间基于当前的数据排列会返回不同的结果。
技术实现思路
本专利技术扩展到用于范围化在联合的数据库中的数据库连接的方法、系统和计算机程序产品。在一些实施例中,计算机系统接收在分布数据库系统中执行数据库访问操作时使用的上下文。所述上下文标识了分布数据库系统中的指定相关的联合部分。计算机系统还接收与所述上下文相关联的数据库访问操作。计算机系统根据所关联的上下文对数据库访问操作的语义进行修改以将该数据库访问操作的应用指引到指定相关的联合部分。提供本概述以便以简化的形式介绍将在以下的详细描述中进一步描述的一些概念。本
技术实现思路
并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。本专利技术的附加特征和优点将在以下描述中叙述,且其一部分根据本说明书将是显而易见的,或可通过对本专利技术的实践来获知。本专利技术的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。本专利技术的这些和其他特征将通过以下描述和所附权利要求书变得更加显而易见,或可通过对下文中所述的本专利技术的实践来领会。附图说明为了描述可获得本专利技术的上述和其它优点和特征的方式,将通过参考附图中示出的本专利技术的具体实施例来呈现以上简要描述的本专利技术的更具体描述。可以理解,这些附图仅描述本专利技术的典型实施例,从而不被认为是对其范围的限制,本专利技术将通过使用附图用附加特征和细节来描述和说明,在附图中:图1A示出了便于范围化数据库连接的示例计算机体系结构。图1B示出了便于范围化数据库连接的示例计算机体系结构。图2示出了用于范围化被用于访问数据库分区的上下文的示例方法的流程图。具体实施方式本专利技术扩展到用于范围化在联合的数据库中的数据库连接的方法、系统和计算机程序产品。在一些实施例中,计算机系统接收在分布数据库系统中执行数据库访问操作时使用的上下文。所述上下文标识了分布数据库系统中的指定相关的联合部分。计算机系统还接收与所述上下文相关联的数据库访问操作。计算机系统根据所关联的上下文对数据库访问操作的语义进行修改以将该数据库访问操作的应用指引到指定相关的联合部分。本专利技术的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本专利技术范围内的各实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理介质和其他计算机可读介质。这些计算机可读介质可以是通用或专用计算机系统能够访问的任何可用介质。存储计算机可执行指令的计算机可读介质是计算机存储介质(设备)。携带计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本专利技术的各实施例可包括至少两种完全不同类型的计算机可读介质:计算机存储介质(设备)和传输介质。计算机存储介质(设备)包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置的且可由通用或专用计算机访问的任何其他介质。“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动传输到计算机存储介质(设备)(或反之亦然)。例如,通过网络或数据链接接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质(设备)。因而,应当理解,计算机存储介质(设备)可被包括在还利用(甚至主要利用)传输介质的计算机系统组件中。计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。本领域的技术人员将理解,本专利技术可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本专利技术也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可位于本地和远程存储器存储设备中。通常,范围化的连接被用于将它们查询上的操作自动向下过滤到指定的数据库承租人,而不需要应用必须完成过滤所述操作的额外工作。这种类型的连接使得在单个联合成员(物理数据库)中本文档来自技高网
...
范围化数据库连接

【技术保护点】

【技术特征摘要】
2010.10.28 US 61/407,796;2011.06.21 US 13/165,5111.在包括一个或多个处理器和系统存储器的分布式数据库系统处,所述分布式数据库还包括联合分区,所述联合分区指在联合(102)中的多个数据库分区(103A、103B、103C),所述联合(102)配置为存储多个数据行(115A-115E),每个数据行由联合键值(116A-116E)标识,使得所述联合存储了联合键值集的数据,所述多个数据库分区(103A、103B、103C)中的每一个被配置为物理地存储具有在集中的联合键值的指定部分中的一个联合键值的数据的任意行,一种用于对用于访问数据库分区的上下文进行范围化的方法,所述方法包括:接收当在所述分布式数据库系统中执行数据库访问操作时要使用的上下文(108)的动作,所述上下文标识了所指定的相关的联合部分,所述上下文已由命令提供,所述命令包括对应于所述分布式数据库系统的被请求的数据库联合的联合名字、包括联合键值的范围、和过滤选项的每一个,所述过滤选项指示:当所述过滤选项是开启时是否将连接范围限制到仅为对应于所述联合键值的所述联合分区中的特定行,或者当所述过滤选项是关闭时是否将连接范围限制到通常为所述联合分区中的所有行;基于所接收到的上下文,建立到所述分布式数据库系统的范围化连接;接收与所述上下文(108)相关联的数据库访问操作(113)的动作;根据所关联的上下文(108)对所述数据库访问操作(113)的语义进行修改以将所述数据库访问操作的应用指引到所述所指定的相关的联合部分的动作;以及将经修改的数据库访问操作通过所述范围化连接发送到所述分布式数据库系统。2.如权利要求1所述的方法,其特征在于,所述接收当执行数据库访问操作时要使用的上下文的动作包括接收标识所述联合中的相关数据库分区的上下文的动作。3.如权利要求2所述的方法,其特征在于,所述根据上下文对所述数据库访问操作的语义进行修改的动作包括修改所述数据库访问操作的语义以将所述数据库访问操作的应用指引到所述相关的数据库分区的动作。4.如权利要求2所述的方法,其特征在于,所述接收当执行数据库访问操作时要使用的上下文的动作包括接收一上下文的动作,所述上下文包括包含在所述相关的数据库分区中的指定值。5.如权利要求4所述的方法,其特征在于,所述根据上下文对所述数据库访问操作的语义进行修改的动作包括修改所述数据库访问操作的语义以将所述数据库访问操作的应用指引到具有所述指定值的行的动作。6.如权利要求1所述的方法,其特征在于,所述接收数据库访问操作的动作包括接收SQL命令的动作。7.如权利要求1所述的方法,其特征在于,所述接收数据库访问操作的动作包括接收对所述联合中所存储的数据的一个或多个行的查询的动作。8.如权利要求1所述的方法,其特征在于,进一步包括接收过滤选项的动作。9.如权利要求8所述的方法,其特征在于,所述过滤选项包括开启过滤,所述修改数据库访问操作的语义的动作包括修改数据库访问操作的语义以仅允许访问所述所指定的相关的联合部分中对应于特定联合键值的行的动作。10.如权利要求8所述的方法,其特征在于,所述过滤选项包括关闭过滤,所述修改数据库访问操作的语义的动作包括修改数据库访问操作的语义以允许访问整个所述所指定的相关的联合部分的动作,所述整个所指定的相关的联合部分包括所述所指定的相关的联合部分中对应于特定联合键值的行以及所述所指定的相关的联合部分中的其他行。11.一种包括分布式数据库系统的计算机系统,所述分布式数据库包括联合分区,所述联合分区指联合(102)中的多个数据库分区(103A、103B、103C),所述联合(102)配置为存储多个数据行(115A-115E),每个数据行由联合键值(116A-116E)标识,使得所述联合存储了联合键值集的数据,所述多个数据库分区(103A、103B、103C)中的每一个被配置为物理地存储具有在集中的联合键值的指定部分中的一个联合键值的数据的任意行,在所述计算机系统处实现并执行一种...

【专利技术属性】
技术研发人员:L·诺维克J·D·克拉克M·T·弗里德曼A·金博尔C·比伊扣格鲁J·哈默T·J·B·特恩斯特伦A·卡尔汉
申请(专利权)人:微软公司
类型:发明
国别省市:

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

1
相关领域技术