XU SHULAN (CN)
XU GUOQING KING (CN)
CN103116498A | 2013-05-22 | |||
CN101571810A | 2009-11-04 | |||
CN101916261A | 2010-12-15 | |||
US20060253421A1 | 2006-11-09 |
CAI, JIANYU ET AL.: "Parallel Database Middleware Based on CORBA", COMPUTER ENGINEERING, NO. 22, vol. 32, 30 November 2006 (2006-11-30)
权 利 要 求 书 并行数据库管理系统及设计方案 1 本发明提供了一种并行数据库管理系统及方案, 其特征是: 并行数据库拓展和兼容多种对分支数据库 表的操作方式, 总表操作 MultiDao可以并行地操作子表。 2 根据权利要求 1 所述的并行数据库管理系统及方案, 其特征在于: 并行数据库通过变量映射的方式 查找和生成不同的分支, 有别于传统的通过条件判断语句或条件触发语句査找和生成分支的方式, 因此使 得系统分支可以在任何时间有任意个, 而不是只有有限个; 映射规则如下, 设有 i个变量, {Xi}为这些变 量的集合, 分支 (子表) 名称为 { Y }, 那么找出一个 { Y } =F({Xi})的映射, 通过计算映射将 {Xi}映射到 F({Xi})。 3 根据权利要求 1 所述的并行数据库管理系统及方案, 其特征在于: 总表操作方式包括读取和写入两 种类型, 通过声明同时、 联合、 竞争、 选择等选择方式, 从而适应不同应用情景下并行操作需求。 4 根据权利要求 1 所述的并行数据库管理系统及方案, 其特征在于: MultiDao和 VirtualDao可以生成 或运行时获得, 因此系统容易开发简单, 效率高。 5. 根据权利要求 1 所述的并行数据库管理系统及方案, 其特征在于: VirtualDao屏蔽了 PhysicalDao的 差异, 使得系统可以在运行时自动增加分支 (子表) 及对分支的操作。 |
技术领域
[0001] 本发明涉及计算机软件开发领域,应用于系统 集成、分布式数据库和高性能计算等方面。具 体地, 设计方案通过 VirtualDao封装具体的 Dao, 形成对单表操作的一致化; 通过 Mult iDao并行地操纵多个 VirtualDao, 实现对多表多库的灵活操作; 在 Mul t iDao中声明对分支的选择方式, 及 ID和虚表名的生成 和査找方式, 以提供对并行计算的有效支持。 背景技术
[0002] 并行数据库是数据库技术和并行计算结合的产 物, 是具有并行计算能力的数据库系统。
[0003] 并行数据库通过多个节点并行处理数据库任务 , 从而提高数据库系统运行性能和可用性。
[0004] 现有的并行数据库技术缺乏对业务需求的多样 性的理解, 缺乏对业务配置支撑的灵活性, 尤其无 法突破对数据库分支 (子表) 的个数限制, 因而使得并行数据库难以使用和推广。
[0005] 为了填补了并行数据库在灵活配置和对多种业 务兼容等方面的空白, 本发明实现了总表操作单元 对子表操作单元的操作方式的设置, 以及总表根据条件向子表进行映射, 从而使得总表下可以有任意多个 子表。 发明内容
[0006] 发明人使用 MultiDao 表示对总表的执行, VirtualDao 表示对子表 (分支) 的执行, VirtualTable 表示子表, PhysicalDao表示物理上的对子表的执行单元。
[0007] 并行数据库管理系统使用了三层体系结构: 第一层是多表并行层, 通过 MultiDao 通过多个 VirtualDao操作子表, 实现多表并行计算; 第二层是单表集成层, 通过将异构的各类数据库 Dao封装在相 同的 VirtualDao, 从而实现对 VirtualTable虚拟表的计算, 达到对数据源和数据类型的统一透明处理; 第 三层通过统一的 PhysicalDao, 实现对物理的表的计算, 具体的表可能分布在不同的数据库介质里面。
[0008] 发明者认为: 对并行数据库的操作方式有两种: 读取和写入(包括增删改)。 数据读取包括联合、 选择、竞争等分支选择方式: 联合读取就是从一系列子表中读取数据, 最后拼装成结果 (结果是个集合, 比 如 100个学生信息); 选择就是假设各个子表数据是一样的, MultiDao从子表中 (随机) 选择一个子表读 取结果; 竞争就是假设各个子表数据是一样的, MultiDao从各个子表读取, 但是只取最快的那份, 其余的 丢弃。 数据 (集合) 写入包括联合、 同时等分支选择方式: 联合就是将数据按照规则拆散放到各个分支 中, 每个分支得到的是不完整的数据, 但是所有分支数据的总和是完整数据; 同时就是将数据集不拆散, 完整的保存到各个分支中。
[0009] 特定的 VirtualDao可以对相应的某些特定 VirtualTabl e进行操作, VirtualTable就是一个虚拟 的子表, 表名由 MultiDao传入的参数映射获得。 映射规则是, 设有 i个变量, {Xi}为这些变量的集合, VirtualTable的名称为 F({Xi}), 那么找出一个 F(pii}), 通过 F({ })可以通过逆映射获得 {Χί}中的所需 要部分或全部。 本并行数据库设计方案是通过变量映射规则而 不是通过条件判断选择分支, 从而获得对多 种数据读写方式的支持, 这是本发明的特征。
[0010] 本发明中, MultiDao是通过模板配置的, 它可以以 "标准"方式调用 VirtualDao, 而 VirtualDao 将虚拟表 VirtualTable解释为不同的物理的表, 然后调用 PhysicalDao执行对物理的表的操作。 附图说明
[0011] 图 1是对并行数据库管理系统层次结构的解释。 Mult iDao可以将操作分配到相应的 VirtualDao, 分配的依据是, MultiDao所操作的记录根据存取条件按规则映射 VirtualDao所对应的 VirtualTable。我们 注意到, 第二层有 VirtualDaol和 VirtualDaol的副本, 这样写只是为了表示 VirtualTablel和 VirtualTable2 结构一样, 而 VirtualDao2对应的 VirtualTable3结构则与前两个表不一样, 可能是同一个类的子类; 所有 物理的操作都放到第三层。 VirtualDao调用 PhysicalDao, VirtualTable解释为 PhysicalTable。 具体实施方式
本发明使用但不限于以下技术手段-
[0012] 该并行数据库管理系统的实现有以下步骤:
1. 通过模板生成或通过元模式运行时获得 MultiDao, 系统将 VirtualDao注册到 MultiDao上, 任意 的 VirtualTable都对应且只对应一个 VirtuaiDao。 VirtualDao也可以通过模板或元模式自动生 成。
2. 系统通过使用但不限于数据库或配置文件等方 式,配置 VirtualTable和 PhysicalTable之间的一一 对应关系。
3. 应用程序调用 MultiDao并使用一种选择方式映射到子表及对子 的操作 VirtualDao。
4. 系统通过步骤 2 配置的对应关系将 VirtualDao 操作转化成实际的对物理数据库的操作 PhysicalDao。
5. 如果是更新操作, 则失败后由 MultiDao回退操作。
6. MultiDao获得各个子操作的结果, 汇总处理并返回给应用程序。
[0013] 下面结合具体的应用场景, 进一步阐明本发明, 本发明可以应用于但不限于以下情形:
[0014] 假设应用系统需要访问两个数据库, 这两个数据库数据完全一样, 一个用来备份, 一个用来做正 常业务访问; 两个数据库只有地址不一样。
对于任何一个总表, 开发者可按照如下步骤开发和配置:
1. 系统根据子表结构生成或配置各个子表的虚表 ;
2. 编写系统子表的 PhysicalDao;
3. 编写系统子表的 VirtualDao, 并将 PhysicalDao注册到 VirtualDao;
4. 配置对总表的并行结构的执行单元 MultiDao, MultiDao读取方式为选择, 用于对两个数据库中的 子表进行选择性的读取操作 (读其中一个子表);
5. 配置 MultiDao写入方式为同时, 用于对两个数据库中的子表进行选择性的写入 操作(同时将数据 两个库的子表)
6. 配置 MultiDao的映射方式, 以获得相应的 VirtualTable和 WrtualDao。
[0020] 用户管理系统, 拥有不同类型的用户, 每种用户一个表, 用户系统可以根据需要访问其中的一个 表, 也可以访问所有表。
开发者可按照如下步骤开发和配置:
1. 系统根据子表结构生成或配置各个用户子表的 虚表;
2. 编写系统子表的 PhysicalDao, 系统可以通过不同的 PhysicalDao访问单个的子表;
3. 编写系统子表的 VirtualDao, 并将 PhysicalDao注册到 VirtualDao;
4. 配置对总表的并行结构的执行单元 MultiDao, MultiDao读取方式为联合, 用于对各个子表 (可能 为不同数据库) 进行同时读取操作; 配置 MultiDao写入方式为联合, 用于将对数据的修改映射到相应的子表进行写 入操作, 比如客户 和管理员的数据类型和存储的表是不同的, 对客户类型的数据的修改操作应该映射到对客 户表的 修改操作, 对管理员类型的数据的修改操作应该映射到对 管理员表的修改操作;
配置 MultiDao的映射方式, 以获得相应的 VirtualTable和 VirtualDao。