【技术实现步骤摘要】
一种管理数据表的共享关系的方法和装置
本专利技术涉及数据库以及数据库中的数据表,更具体而言,涉及管理数据表的共享关系的方法和装置。
技术介绍
随着信息技术和互联网的发展,资源共享成为一种趋势。例如,在数据库领域中,多个用户可以共同使用同一数据库,从而以高密度部署来实现最大可能的资源共享,节省硬件和软件成本。此时,每个用户并不独立地拥有共享的数据库,因此这样的用户往往称为“租户”(tenant),其表示使用数据库服务的一个逻辑实体。另一方面,在实现共享的同时,出于安全的需要并满足各个租户独有的需求,需要在各个租户的数据之间进行一定隔离。因此,对于支持多租户的数据库来说,需要在共享和隔离之间达到一种平衡。 更具体而言,数据的隔离通常意味着,不同租户使用不同架构的数据表来存储各自的数据;而数据的共享意味着,多个租户在一定程度上保持表架构的一致性,从而至少部分地共享数据表。在现有技术中,已经提出了若干种方案,这些方案通过使用例如数据透视表(pivot table)、私有表、预分配的字段、定制列、块折叠以及一些表架构映射技术来解决数据表架构的差异,从而实现数据表的共享。然而,这些解决表架构差异的方案仍存在一些不足,例如空闲数据较多,额外而昂贵的连接(join)成本,附加的谓词项,难以使用对定制列的索引等等。一些方案在逻辑上共享表架构,但物理上仍使用隔离的数据表。一些方案虽然支持物理上共享的数据表,但需要附加的操作和开销来实现共享,例如数据词典的查询、表描述符的映射、数据类型的映射、字段指针的关联等。因此,希望提出改进的方案,能够为数据库中的 ...
【技术保护点】
一种管理数据表的共享关系的方法,包括:根据数据库中多个数据表的各个列的数据类型,形成包含所述多个数据表的超级表架构;根据超级表架构中未被任何数据表占据的空穴,评估所述超级表架构的空余存储量;根据所述超级表架构的空余存储量,确定所述多个数据表的共享关系。
【技术特征摘要】
1.一种管理数据表的共享关系的方法,包括: 根据数据库中多个数据表的各个列的数据类型,形成包含所述多个数据表的超级表架构; 根据超级表架构中未被任何数据表占据的空穴,评估所述超级表架构的空余存储量; 根据所述超级表架构的空余存储量,确定所述多个数据表的共享关系。2.根据权利要求1的方法,其中确定所述多个数据表的共享关系包括: 基于所述超级表架构的空余存储量判断与空余存储量有关的预定条件是否得到满足; 在上述预定条件得到满足的情况下,确定所述多个数据表共享使用所述超级表架构。3.根据权利要求2所述的方法,其中确定所述多个数据表的共享关系还包括:在上述预定条件没有得到满足的情况下,拆分上述超级表架构,并用拆分得到的超级表架构替换原超级表架构。4.根据权利要求1的方法,其中形成包含所述多个数据表的超级表架构包括: 对于所述多个数据表中的某个数据表Ti,在超级表架构中创建代表该数据表Ti的新行; 对于该数据表Ti中的某列Cj,在超级表架构中存在与该列Cj具有兼容的数据类型的已有列且该已有列未被占据的情况下,将该列Cj填充在上述新行中与所述已有列对应的位置;否则,在超级表架构中添加新列,将该列Cj填充到上述新行中与所添加的新列对应的位置。5.根据权利要求1的方法,其中评估所述超级表架构的空余存储量包括以下之一:确定所述超级表架构中所有空穴所对应的数据表单元的总数目作为该超级表架构的空余存储量;确定所述超级表架构中所有空穴所对应的总数据存储量作为该数据表架构的空余存储量。6.根据权利要求3的方法,其中所述预定条件包括以下之一: 所述超级表架构的空余存储量小于一预定阈值; 所述超级表架构的空余存储量相对于构成该超级表架构的所述多个数据表的原始存储量的比例小于一预定比例;以及 所述拆分得到的超级表架构的空余存储量之和相对于构成原超级表架构的多个数据表的原始存储量的比例小于一预定比例。7.根据权利要求3的方法,其中所述拆分超级表架构包括:以消除超级表架构中由连续空穴构成的空穴矩阵的方式拆分超级表架构。8.根据权利要求3的方法,其中所述拆分超级表架构包括: 以所述超级表架构中的某个特定行作为标准,在超级表架构中挑选出能够被该特定行所覆盖的缩减行; 将超级表架构拆分为由上述特定行及其缩减行构成的超级表架构,和由剩余行构成的超级表架构。9.根据权利要求1的方法,还包括:响应于创建新数据表的请求,确定用于存储该新数据表的表架构,其包括: 确定所述新数据表的列数η以及各个列的数据类型; 从数据库的已有表架构中获取列数大于或等于上述新数据表的列数η的备选表架构;从备选表架构中获取这样的兼容表架构,所述兼容表架构所包含的η个列的数据类型分别覆盖所述新数据表的η个列的数据类型; 选择一兼容表架构作为用于存储该新数据表的表架构; 在未能获取所述备选表架构,或者未能获取所述兼容表架构的情况下,针对该新数据表创建新的表架构,用于存储该新数据表。10.一种管理数据表的共享关系的装置,包括: 形成单元,配置为,根据数据库中多个数据表的各个列的数据类型,形成包含所述多个数据...
【专利技术属性】
技术研发人员:周祥,李硕,杨新颖,曾脉,
申请(专利权)人:国际商业机器公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。