一种嵌入式环境下数据字典的实现方法.pdf

上传人:zhu****_FC 文档编号:6193513 上传时间:2019-05-19 格式:PDF 页数:11 大小:535.75KB
返回 下载 相关 举报
摘要
申请专利号:

CN200510018318.3

申请日:

2005.03.02

公开号:

CN1652112A

公开日:

2005.08.10

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回|||实质审查的生效|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

北京北方烽火科技有限公司;

发明人:

涂小明; 陈勇; 叶磊

地址:

100085北京市海淀区上地东路5-3号烽火科技大厦

优先权:

专利代理机构:

湖北武汉永嘉专利代理有限公司

代理人:

朱必武

PDF下载: PDF下载
内容摘要

一种嵌入式环境下数据字典的实现方法,按照层次结构将数据库、表和列对象及其属性存储在系统缓冲池中,分为数据库、表或索引和列3层,采用开链式哈希法对数据库对象进行索引,一级哈希表以数据库名称为散列关键字,二级哈希表以表名称为散列关键字,三级哈希表以列名称为散列关键字;采用数据模式函数库,描述各种数据实体、属性及简单的实体联系,支持对数据字典的插入、删除和修改操作。本发明使用简单数据结构和较小的系统代价描述了前台业务的数据结构及数据联系,实现对数据对象的快速访问;有助于简化数据库应用的开发流程。

权利要求书

1: 一种嵌入式环境下数据字典的实现方法,将数据库、表或索引和列对象的数据字典信 息存放在计算机系统缓冲池中,其特征在于计算机内存中按照层次关系组织数据字典的结构, 具体包括数据字典总体信息、数据库、表或索引和列,分为数据库、表或索引和列3层,采 用开链式哈希法对数据库对象进行索引,一级哈希表以数据库名称为散列关键字,二级哈希 表以表名称为散列关键字,三级哈希表以列名称为散列关键字;数据库属性主要包括数据库 名称、数据库的缓存大小、数据库工作路径;表单或索引属性主要包括表的名称、基表名称、 关键字名称、类型、数据字段长度;列属性主要包括名称、长度、序号、类型、偏移量; 提供一种数据模式函数库,具体包括数据库、表或索引和列及其属性的操纵函数,模式 函数库对数据字典中数据库、表或索引和列及其属性的操纵步骤如下: 步骤1,定义数据库,检查数据库名称的唯一性,定位数据库信息的存储位置,并设定数 据库缓存的大小、数据库的工作目录; 步骤2,定义表,检查表名称的唯一性,定位表信息的存储位置,并设定表的关键字名称、 类型和数据字段长度,基表名称置为空; 步骤3,如果表中存在索引,则定义索引,检查索引名称的唯一性,并设定基表的名称、 关键字的名称、类型; 步骤4,定义列,检查列名称的唯一性,定位列信息的存储位置,并设定列长度、序号、 类型和偏移量; 如果存在多个数据库,则重复执行步骤1至4;如果存在多个表,则重复执行步骤2至4; 如果存在多个索引,则重复执行步骤3至4;如果存在多列,则重复执行步骤4。
2: 根据权利要求1所述的嵌入式环境下数据字典的实现方法,,其特征在于将数据库、表或 索引和列对象的数据字典信息从系统缓冲池备份到外存设备上的XML文件中。

说明书


一种嵌入式环境下数据字典的实现方法

    【技术领域】

    本发明涉及嵌入式环境下数据库领域,提供了一种嵌入式环境下数据字典的实现方法。按照层次关系和哈希索引组织数据字典结构,实现定义和操纵数据字典的模式函数库,确定数据库的启动、运行和关闭方式,以及相关数据实体的基本存取方法,并提供数据保护功能。

    背景技术

    数据字典是数据库管理系统的基础,它存储和维护了数据库的模式信息。不仅可以用于数据分析、数据统计,更主要的是为了对数据库进行控制,是实现数据资源管理的工具。数据字典属于系统模式,只能由系统管理员进行更改。对系统模式的修改可危及数据库,因此必须保证管理员帐号的安全性。

    数据字典包含了三种类型数据实体的信息,用户数据实体、系统数据实体和物理数据实体。数据字典除了包含字典本身的信息,还包括其管理系统,主要包括元数据定义、维护、保护、统计和查询功能,可能还需要提供一定的软件接口。

    数据库模型包括层次模型、网状模型、关系模型、面向对象模型以及对象关系的混合模型。目前主流的关系数据库商业产品如ORACLE,都支持对象关系模型,SQL98标准也提供对象关系概念的支持。对象关系型数据库继承了关系数据地优点,有坚实的理论基础,通过规范化关系模式,能够设计出合理的表结构,是当前得到广泛应用的领域。

    以ORACLE为例,数据字典的基本配置是一组只读的、难以阅读和标准化的表,因此需要另外创建用户可以访问的视图以使数据易于阅读。例如用户可使用数据字典视图的公共同义词和结构化查询语句(Structure Query Language),列出用户拥有的表、视图和序列等。

    但是在嵌入式环境下,使用关系数据库系统的数据字典及其SQL语言存在障碍,因为传统的数据库系统通常难以在嵌入式环境下部署,即使可以应用在嵌入式环境下,它们的存取效率也难以达到前台的业务数据访问要求。嵌入式环境下的前台业务数据组织相对简单,没有复杂的依赖关系,不需要使用基于范式的模式定义语言,其许多不需要的特性会引起额外开销,例如在设计数据库的时候,尽量避免使用外键,因为集合运算、笛卡儿积运算和联接运算的代价都非常高。

    除了传统的关系型数据库,还存在一种嵌入式数据库系统,这些系统直接链接到使用它们的应用上,提供简单的语言级的API,而不是用SQL来管理数据。它们的优点主要在于更快的执行效率,由于数据库操作运行在单独的服务器上,不需要板间通信,省去了SQL语句解析、查询优化和执行查询计划等步骤。还具有高可靠性,由于在嵌入式系统上需要更少的运行组件。但这类库产品也有严重的不足:要求开发者掌握不标准的程序设计接口。此外如RDM DB、gdbm都没有关于数据模式的管理,业务处理和数据库存取代码耦合度高,不利于软件开发和维护。嵌入式数据库系统和关系数据库两者互有优劣,因此必须扬长避短。

    专利00801814.6仅只用简单的表结构和小型软件支持就可将所有的事件或者事物作为登记对象。以及通过行单位形式,将登记对象的分类标识信息、涉及表示该属性及/或者是功能的各项目的项目名和表示该项目名的实体内容时的数据所具有的属性(项目数据属性)登记在数据属性表格中的各数据单元。同样以行单位形式将分类标识信息、标题名和涉及各项目的实体内容登记在主数据表格中的各数据单元。通过借助于数据单元号码,使表格中的项目名和表格中的实体内容相对应。数据库系统在执行数据输入、存储、检索和输出时,把表格中的行方向数据作为信息来生成各方法。

    该发明中的简单的表结构,实现了数据字典的部分功能,并使用文件方式存储。数据字典是数据操纵经常访问的对象,必然引起大量的磁盘I/O,影响系统存取效率。该表单结构使用行单位形式登记在数据属性表格中的各数据单元,没有明确说明使用索引的方法,如果登记对象的数量或结构比较复杂,也会降低对象访问速度。

    在通信领域的前台应用程序,通常在嵌入式环境下运行,并存在数据库存取和管理需求。数据结构和数据联系相对简单。如何实现以较小的系统代价描述数据实体及其关系和存取速度高的数据字典,是解决上述问题的关键。

    【发明内容】

    本发明是为了克服传统关系数据库的数据字典复杂的实现,供了一种嵌入式环境下数据字典的实现方法,使用简单数据结构和较小的系统代价描述了前台业务的数据结构及数据联系,提高了数据的存取速度,有助于简化数据库应用的开发流程。

    为实现以上目标,本发明的技术解决方案如下所述:

    一种嵌入式环境下数据字典的实现方法,将数据库、表或索引和列对象的数据字典信息存放在计算机系统缓冲池中,其特征在于计算机内存中按照层次关系组织数据字典的结构,具体包括数据字典总体信息、数据库、表或索引和列,分为数据库、表或索引和列3层,采用开链式哈希法对数据库对象进行索引,一级哈希表以数据库名称为散列关键字,二级哈希表以表名称为散列关键字,三级哈希表以列名称为散列关键字;数据库属性主要包括数据库名称、数据库的缓存大小、数据库工作路径;表单或索引属性主要包括表的名称、基表名称、关键字名称、类型、数据字段长度;列属性主要包括名称、长度、序号、类型、偏移量;

    提供一种数据模式函数库,具体包括数据库、表或索引和列及其属性的操纵函数,模式函数库对数据字典中数据库、表或索引和列及其属性的操纵步骤如下:

    步骤1,定义数据库,检查数据库名称的唯一性,定位数据库信息的存储位置,并设定数据库缓存的大小、数据库的工作目录;

    步骤2,定义表,检查表名称的唯一性,定位表信息的存储位置,并设定表的关键字名称、类型和数据字段长度,基表名称置为空;

    步骤3,如果表中存在索引,则定义索引,检查索引名称的唯一性,并设定基表的名称、关键字的名称、类型;

    步骤4,定义列,检查列名称的唯一性,定位列信息的存储位置,并设定列长度、序号、类型和偏移量;

    如果存在多个数据库,则重复执行步骤1至4;如果存在多个表,则重复执行步骤2至4;如果存在多个索引,则重复执行步骤3至4;如果存在多列,则重复执行步骤4。

    2、根据权利要求1所述的嵌入式环境下数据字典的实现方法,,其特征在于将数据库、表或索引和列对象的数据字典信息从系统缓冲池备份到外存设备上的XML文件中。

    数据字典结构的定义,具体实现方法为:

    数据字典结构按分层次组织,包括数据字典总体信息、数据库、表或索引和列等层次。首先定义数据字典的总体信息,如数据库个数、版本;其次定义各数据库的属性,包括数据库名称、缓存大小、工作路径、环境标志、封锁粒度等信息;再次在数据库上定义表的属性,包括表名称、关键字及其数据类型、长度,数据项长度、配置属性(如是否允许有重复关键字等)、索引数据页面大小和字节序等信息,如果是索引表,还要指定基表名称和索引字段的信息,索引表定义必须在基表定义之后;最后定义每张表的列属性,列属性主要包括名称、数据最大长度、序号、数据类型、偏移量和约束信息。对于索引表,其索引字段的信息可以从基表获取,无需进一步定义索引属性。

    数据字典将数据库名称、表单或索引名称或列名称作为散列关键字,使用开链式哈希法对数据库对象进行索引以提高存取速度。具体实施时需要根据业务数据结构、数据联系、数据量和数据备份等信息,使用模式函数库定义数据字典的实际内容。数据字典除了描述了前台业务的数据结构及数据的简单联系,还确定了数据库的启动、运行和关闭方式,以及相关数据实体的基本存取方法。可以通过组合基本的数据存取方法,实现体现更多业务规则的数据库业务处理函数,建立和维护更为复杂的数据联系,做到灵活性和高效性的统一。总之,使用上述数据字典能更好的控制数据库系统,有助于实现数据资源的自管理和简化数据库应用的开发流程。

    模式函数库具体实现方法如下:

    1,声明模式函数库。将数据字典结构放在函数实现体内,实现数据隐藏,优化程序结构,并只允许模式函数操纵数据字典,保证数据字典的安全性。

    2,实现不同的函数体,包括数据字典的插入、删除和修改操作,描述各种数据实体、属性及数据实体联系。操作中涉及到访问链表、数组等数据结构。

    3,数据字典操作如果包含写操作,则将数据字典同步到外存储的XML文件上。数据字典更新操作相对较少,因此这种方法既保证数据字典的一致性,也不会影响数据存取效率。

    数据模式函数库用于描述各种数据实体、属性及数据实体联系,以及支持对数据字典的插入、删除和修改操作,能实现数据字典直观、灵活的定义以及快速的访问。

    数据字典的备份步骤如下:

    步骤1,访问数据字典,将层次、哈希表的混合性结构转换为一个树形结构。

    步骤2,将该树结构转化为XML文件格式。

    步骤3,释放树结构。

    数据字典的导入是备份的逆过程,可以用于数据字典的恢复。

    综上所述,本发明的优点如下几点:

    ①使用简单数据结构和较小的系统代价描述了前台业务的数据结构及数据联系。

    ②提高了数据字典的存取效率,实现数据字典直观、灵活的定义以及快速的访问。

    ③优化数据库系统的控制,有助于实现数据资源的自管理和简化数据库应用的开发流程。

    ④提供了数据保护功能,实现数据字典的备份和恢复。

    说明书附图

    图1典型的嵌入式数据库系统示意图。

    图2本发明的数据字典结构示意图。

    图3本发明的数据字典的索引表的定义过程示意图。

    【具体实施方式】

    下面结合附图,对本发明的实施例做详细描述。

    图1是嵌入式数据库系统的示意图。从该图可以看到数据库系统一个完整的轮廓以及数据字典所处的位置。该系统有三个层面,包括数据库应用层、数据库核心层和文件系统层。

    数据应用通常以用户线程或任务的形式存在,但任何时刻只允许一个线程/任务访问数据库。虽然按数据库的粒度进行封锁,但由于单个事务的执行时间通常非常小,在几纳秒到几十纳秒之间,因此不会使单个数据库操作产生明显的时间延迟。

    数据库核心层:数据库核心层放置在系统内存中,包括模式函数库、数据字典、数据库执行引擎、数据存取方法、缓冲区管理等模块。数据库采用简单的并发控制策略,实现对数据库的存取和管理。数据字典是数据库的关键数据,以XML文件进行配置或者固化在应用程序中。模式函数库是操纵数据字典的接口,以函数库的形式提供给应用,定制各种数据需求。

    文件系统的支持是提高数据库可靠性的可选项。将数据字典信息和数据库数据导出到外部的磁盘文件上,即使系统意外崩溃,也能恢复最近一次的数据备份。

    数据库管理员负责建立数据库的结构和模式。数据库管理员可以修改数据字典的信息,类似于使用关系数据库系统中的数据定义语言命令,通过使用模式函数库,改变数据库的模式信息。数据字典描述了数据库结构和数据约束的数据库模式信息。

    数据字典可导出到外存的XML文件上。XML文件的每个元素的基本格式包括数据标识,数据类型和数据值,并按照一定的逻辑关系组织。数据字典备份到外存储数据文件上,可以防止系统崩溃后数据字典信息的丢失。还可整合到应用程序中,提高数据库的自管理性。

    图2是本发明的数据字典结构示意图。该图显示了数据字典在内存中的组织方式和逻辑结构。它采用开链式哈希法加快数据查找速度。一级哈希表对数据库名称散列,二级哈希表对表名称散列,三级哈希表对列名称散列。散列函数简单的从字符串计算一个16位的整数,然后根据数组的长度取模。只要给出数据库名称、表名称或列名称的组合,就可定位数据库对象存储位置。

    图3本发明的数据字典的索引表的定义过程示意图。具体步骤为:步骤301,给出新增索引所在的数据库名称、基表名称、索引表名称和索引字段的名称。步骤302,使用散列函数查找哈希数组的入口。步骤303,比较首个元素的数据库名称是否等于查找的数据库名称。如果不等,则转到步骤304,按顺序遍历链表,直到找到满足要求的成员。如果没有满足的节点,那么查找失败,函数进入结束状态306。否则继续执行步骤307,根据索引表名称散列。步骤309,比较首个元素的数据库名称是否等于查找的索引表名称。如果查找成功,则表明定义重复,违反了表/索引名称唯一性,因此进入结束状态311。否则执行步骤309,按顺序遍历链表,查找满足要求的成员。执行步骤310,如果查找成功,进入结束状态311。否则执行步骤312,在二级索引中增加索引项。执行步骤313,设置索引表属性,包括索引字段名称,是否允许索引字段可重复、索引的基表名称等信息。最后进入结束状态311。

    本发明已经在嵌入式环境下进行了应用实施,达到了预期的发明目的。嵌入式数据库使用本发明,在50万记录数据量、多线程并发情况下,平均每秒钟可以完成10,000次以上数据库操作。满足前台数据存取性能要求的同时,也能够灵活的定制数据库的应用服务。

    虽然通过参考实施例已经详细的公开和说明了本发明,但是本领域的技术人员会理解:无需脱离本发明的精神和保护范围,就可以做出过各种形式上和细节上的改变。

一种嵌入式环境下数据字典的实现方法.pdf_第1页
第1页 / 共11页
一种嵌入式环境下数据字典的实现方法.pdf_第2页
第2页 / 共11页
一种嵌入式环境下数据字典的实现方法.pdf_第3页
第3页 / 共11页
点击查看更多>>
资源描述

《一种嵌入式环境下数据字典的实现方法.pdf》由会员分享,可在线阅读,更多相关《一种嵌入式环境下数据字典的实现方法.pdf(11页珍藏版)》请在专利查询网上搜索。

一种嵌入式环境下数据字典的实现方法,按照层次结构将数据库、表和列对象及其属性存储在系统缓冲池中,分为数据库、表或索引和列3层,采用开链式哈希法对数据库对象进行索引,一级哈希表以数据库名称为散列关键字,二级哈希表以表名称为散列关键字,三级哈希表以列名称为散列关键字;采用数据模式函数库,描述各种数据实体、属性及简单的实体联系,支持对数据字典的插入、删除和修改操作。本发明使用简单数据结构和较小的系统代价。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1