在关系数据库中索引存储分层相关信息的方法和数据结构的制作方法

文档序号:6559560阅读:189来源:国知局

专利名称::在关系数据库中索引存储分层相关信息的方法和数据结构的制作方法
技术领域
:本发明涉及关系数据库中的信息存储,并且特别涉及用于在关系数据库中存储具有较深分层关系的信息的方法和数据结构。
背景技术
:用于将信息存储在关系数据库中的关系数据库和装置,被用来存储相关信息并提供用于指定关系的装置。例子包括服务供给,其中用户记录是保持相关的关系,包括“服务地址”、“内容预订给”、“服务级协议参数”、“访问窗口收费方案”、“连通性记录”等等。尽管所有这种信息确实可以被存储在每个用户的单个超记录(super-record)中,然而当服务隶属于不同的供给时,当大部分用户不服从于内容限制、不服从于服务级协议或者具有到服务的固定费用(flatfee)接入时,所有用户的超记录的存储是低效的。关系数据库技术提供用于编组被跟踪信息并用于指定其间的相互关系的装置。服务记录的地址、内容预定记录、服务级协议参数记录、访问窗口收费方案记录和连通性记录在对应表格中的存储,采用了主记录键(primaryrecordkey)和外记录键(foreignrecordkey)。主记录键用于将各个表格内的记录分类,并用于从所述表格检索记录。外键用来表达不同表格中的记录之间的关系。例如在对服务产生帐单时,还为每个用户查询服务表格的地址,以获得用户标识符。典型地,用户标识符是用于存储服务记录自己的地址的主键。其次,访问窗口收费方案表格是基于用户标识符而被搜索的,以确定用户是否具有无限制的固定费用接入、基于固定费用时间的接入或以时间段(atimeofday)为索引的费用表。根据连通性记录不针对无限制的固定费用用户存储访问记录这一事实,关系数据库存储技术的示例性优点是显而易见的。如以上示例性描述的,关系数据库使用是普遍的,存储了当今在万维网上发现的许多信息。在上述例子中,显而易见地,一个对多个关系存在于服务地址表格中的数据库记录和其它表格中的数据库记录之间。在服务地址表格中首先进行查找以获得用户标识符(所有其它表格中指定的外键),在现有技术中称为“表格联结(tablejoining)”,在这个服务供给的例子中,执行单个表格联结操作。然而不是所有信息都可以被编组以使单级别的一个对多个关系存在于所采用的表格之间。图1是示出实现示例性通信网络基础设施的示例性可管理实体的示意图。可管理实体包括通信网络节点106,例如数据交换节点112。数据网络设备厂商可以选择实现整体的数据网络节点设备122X,该设备具有可用于在一组端口102之间交换数据的数据交换处理器,而另一个数据网络设备厂商可以选择数据交换节点112Y的定制实现,该节点包括交换结构、分成多个架子122的设备架,每个架子122具有用于和接口卡124连接的插槽连接器,每个接口卡124具有至少一个端口102。物理数据传输链路108互连数据网络节点的端口102。尽管概念上两个数据交换节点112X和112Y提供类似的数据交换功能性,然而每个设备实现适合不同的环境前一个数据交换节点112X更适合如专用数据网节点的企业解决方案,或许还适于连接到电信网络(carriernetwork)100;而后一个数据交换节点112Y更好地适合于公用数据传输网络100的核心中的高数据吞吐量。典型地,前一个112X实现少量的数据传输协议,而对于后一个112Y,在接口卡124和/或端口102上实现了数据传输协议-规定其灵活的/可配置的部署。在不限制本发明的情况下,每个接口卡124和端口102代表可管理实体。在采用当前已知的关系数据库存储技术中,“包含(containment)”关系可用于存储高分层的信息,例如关于被管理通信网络的可管理实体的部署信息。针对被管理通信网络来跟踪部署信息,是由维护关系数据库250的网络管理系统240来执行的。网络管理系统240需要对大量的这种高分层信息的有效存储与检索。上面提到的方法在应用于将高分层信息存储在关系数据库250中时,教导使用主键来将相关数据库记录存储在各个记录表格中,并且使用外键来唯一地标识另一记录表格内对应的父数据库记录,即“包含”所述相关记录的数据库记录。假设数据库记录唯一性(见下文),存储在关系数据库250中的信息之间的多级别分层关系,需要如上所述执行大量的表格联结操作,以及特别是随被搜索数据库记录的深度而增长的若干表格联结操作。显而易见地,当前在将信息存储在关系数据库250中所采用的技术没有很好地对于高分层信息来进行扩展。不可避免地,较差的可扩展性(scalability)对关系数据库250部署成本、操作成本和维护成本具有负面的影响。而且,较差的可扩展性导致较慢的关系数据库访问时间,其退一步说是不受欢迎的,这是由于被管理通信网络正在经历故障,并且在网络故障恢复期间特别不受欢迎。当复制的被建模实体标识不可避免时,采用当前的信息建模技术来将高分层信息存储在关系数据库250中是存在问题的,例如,当接口卡上的每个端口具有唯一的媒体访问控制地址(MACADDR)且接口卡具有唯一的序列号时,其中是在制造期间将媒体访问控制地址和序列号分别关联于所述端口和接口卡,架子122的插槽和架子122本身不具有固有的唯一标识符。根据当前信息建模技术,架子插槽具有对应的非唯一的全局可标识的数据库记录,这是因为每个架子122具有第一插槽。类似地,当是物理构造时,架子122也不具有固有的唯一标识符,数据交换节点112Y的每个设备架具有第一架子122。考虑架子插槽数据库记录,由于表示为“第一架子122的第一架子插槽”的关系不充分地唯一,因此这由于外键不唯一而产生了问题。除上述的表格联结开销以外,尝试采用具有改进的部署、操作和维护效率的关系数据库,来存储关于不能被固有地唯一标识的实体的高分层信息。这需要对目前已知的关系数据库技术的扩展,以针对固有地非唯一可标识数据库记录提供唯一的主键。用于将高分层信息存储在关系数据库中的当前建模技术的扩展,导致对每个数据库记录的多个键的使用,其中,对分层的每个级别使用一个键,所述分层具有与数据库记录的“包含”关系,这导致添加完全的包含规范(specification)给图2所示的每个数据库记录。例如,端口记录表格中的每个端口数据库记录包括卡的键(of-cardkey)、安装在插槽中的键,以及架子的键(of-shelfkey)、节点的键(of-nodekey)等等。尽管将多个键存储在相关数据库记录中看来是对表格联结问题提供了解决方案,然而为了消除表格联结操作而增加了开销,需要每次增加和/或删除数据库记录时基于每个键,对每个记录表格中的数据库记录分类。记录表格的搜索因而较缓慢。而且,指定每个数据库记录中的完全的包含规范,低效地利用了数据库存储资源,并且违反了数据冗余关系数据库数据完整性规则,其禁止同一键的重复存储。在采用关系数据库存储分层信息中典型遇到的另一个问题涉及以上描述的事实,即不是每个通信网络节点106都具有架子122,并且数据交换节点112X中的端口102不是物理地关联于任何接口卡124。信息的建模因而需要针对虚拟的被管理实体存储中间数据库记录,以使关系数据库250适配于物理真实性。然而由于中间数据库记录必须被存储在对应的记录表格中而占用了大量的存储空间。鉴于根据当前技术使用关系数据库来存储高分层信息遭受了存储低效率和较慢访问与维护这一事实,需要解决上面提到的问题。
发明内容根据本发明的一个方面,提供了一种用于将高分层信息存储在关系数据库中的记录表格。在与许多分层组关联的数据库记录之间的关系,指定了跨越组的“包含”关系。每个记录表格包括来自多个数据库记录组的一个组,所述组与包含层次的一个级别相关联。每个数据库记录还包括用于存储关于对应实体的信息的数据部分,该对应实体与所述包含层次的级别相关联;和用于唯一地标识关系数据库内的数据库记录的记录键。所述记录键具有指定至少一个记录键区域的格式。每个记录键区域与包含层次的对应级别相关联,该对应级别关联于组,该组与数据库记录的关系是“包含于其中”。存储于每个记录键区域中的记录键的值,给在对应于包含层次的级别的记录表格中的指定数据库记录编索引。根据本发明的另一个方面,提供了用于将高分层信息存储在关系数据库中的多个数据库记录中的一个数据库记录。在与多个分层组关联的数据库记录之间的关系,指定了跨越组的“包含”关系,数据库记录的每个组被存储在与包含层次的一个级别相关联的记录表格中。所述数据库记录包括用于存储关于对应实体的信息的数据部分,其中该对应实体与所述包含层次的级别相关联;和用于唯一地标识所述关系数据库内的数据库记录的记录键。所述记录键具有指定至少一个记录键区域的格式。每个记录键区域与包含层次的对应级别相关联,该对应级别关联于组,该组与数据库记录的关系是“包含于其中”。存储于每个记录键区域中的记录键的值,给在对应于包含层次的级别的记录表格中的指定数据库记录编索引。根据本发明的另一个方面,提供了一种用于将高分层信息存储在关系数据库的多个数据库记录中的方法。在与多个分层组关联的数据库记录之间的关系,指定了跨越组的“包含”关系。相同组的数据库记录被存储在对应的记录表格中。并且,记录键归于用于唯一标识所述关系数据库内的数据库记录的每个数据库记录。所述记录键具有指定至少一个记录键区域的格式,每个记录键区域对应于包含层次的一个级别,该级别关联于组,该组与数据库记录的关系是“包含于其中”。存储于每个记录键区域中的记录键的值,给在对应于包含层次的级别的数据库记录组中的指定数据库记录编索引。根据本发明的又一个方面,提供了一种用于访问存储在关系数据库的记录表格中的高分层信息的方法。每个记录表格存储与包含层次的特定级别关联的数据库记录。数据库记录之间的关系指定了跨越记录表格的“包含”关系。标识由指定数据库记录所“包含”的数据库记录包括一系列的步骤。获得了指定数据库记录的记录键的记录键区域的值。每个记录键指定对应数据库记录的整个包含规范,所述记录键区域与对应于指定数据库记录的包含层次的级别相关联。所获得的值被设置为下搜索界限。确定了记录键的记录键区域的值,其归于在包含层次中与指定数据库记录级别相同的下一个数据库记录。所确定的值被设置为上搜索界限。并且,针对具有在下搜索界限与上搜索界限之间的记录键的数据库记录,搜索存储了指定数据库记录所“包含”的多个数据库记录的记录表格。优点在于对数据库记录的更快且较不费力的访问,通过消除键的冗余存储而实现的更紧凑的数据库记录存储,并且完全指定包含的键的使用减少了对维护表格之间关系的需要。根据以下参照附图的示例性实施例的详细描述,本发明的特征和优点将变得更显而易见,其中图1是示出实现连接的数据传输基础设施的数据网络单元的示意图;图2是示出具有对应于包含层次的多个层的多个键的数据库记录的示意图;图3是示出根据本发明示例性实施例的、由网络管理系统维护的示例性包含层次和示例性唯一数据库记录键的示意图;图4是示出根据本发明示例性实施例的、在记录表格、数据库记录、记录键与记录键区域数据结构之间的关系的示意图;和图5是示出本发明示例性实施例的示例性实现的示意图。应当指出,附图中相似部分具有相似的标记。具体实施例方式根据本发明的示例性实施例,图3描述了在由NMS240维护的关系数据库250中所存储的包含层次200的引用。根据本发明的示例性实施例,单个数据库记录键264被用来指定有关每个数据库记录262的完全的包含层次关系。因此,对应于通信网络被管理实体的每个数据库记录262具有记录键264,该记录键跨越关系数据库250中的所有表格260而是唯一的。在不限制本发明的情况下,根据本发明示例性实施例的示例性实现,所有记录键264具有相同包含层次200内的相同表示。在不限制本发明的情况下,每个记录键264具有字符串和数字表示之一。根据本发明的示例性实施例,参照图4,每个记录键264具有划分为记录键区域266的格式化表示,每个区域对应于包含层次的一个级别。根据本发明示例性实施例的示例性实现,每个记录键264是具有比特长度的整数,其二进制表示的格式指定了定义比特区域的比特分配。根据本发明的示例性实施例,记录键区域的比特分配是不一致的。在对要存储的信息的建模中运用设计选择,例如记录建262长度是32个比特,10个比特用于给通信网络节点编索引,5个比特用于给架子编索引,5个比特用于给架子插槽编索引,5个比特用于卡且7个比特用于端口。这种比特分配的示例性选择允许针对具有1024个最大数目的节点106的通信网络,来跟踪关系数据库250中的信息,每个节点106具有32个最大数目的架子122,以及每个架子122的32个最大数目的插槽,其中可以安装32个卡124,每个卡124具有128个端口102。存储在给定数据库记录262的记录键264的每个区域266中的值,指定了在另一个记录表格260中数据库记录262“包含”数据库记录262。与包含层次200中的上级关联的数据库记录262具有记录键264,该记录键具有存储在对应于包含层次中下级的记录键264的区域266中的零值。存储在对应于包含层次中特定级别的记录键264的区域266中的值,在存储在对应于包含层次200上级的区域266中的唯一值的范围中是唯一的,并且因此记录键264跨越关系数据库250中所存储的所有数据库记录262而是唯一的。根据本发明的示例性实施例,利用这种机制,“被包含”数据库记录262的记录键264总是具有比“包含”数据库记录262的记录键264大的数值,但是小于类似于“包含”的“被包含”数据库记录262的下一个数据库记录262的记录键264的值。根据本发明的示例性实施例,根据记录键264来给所有数据库记录262编索引并且对所有记录表格260分类。因此,根据本发明的示例性实施例,总是仅在数据库记录262的子组上、基于也用于检索数据库记录262的记录键264的简单数学比较,执行每个记录表格搜索。针对每个数据库记录访问的记录表格260中的数据库记录262的仅子组的搜索,提供了提高的搜寻速度。整数记录键262的使用确保在数据库记录262被添加到记录表格260和/或数据库记录262被修改时,对每个记录表格260仅分类一次。图5示出了具有16比特长度的示例性记录键254,其中每4个比特长具有多个区域266,省略了层次中的架子插槽级别。通信网络节点1的记录键264是具有作为二进制表示的0001000000000000的指定值4096,节点1的架子1的记录键264是具有作为二进制表示的0001000100000000的指定值4352,安装在节点1的架子1中的卡1的记录键264是具有作为二进制表示0001000100010000的指定值4368,等等。通信网络节点2的记录键264是具有作为二进制表示0002000000000000的指定值8192,等等。为了标识属于通信网络节点1的卡124,针对具有大于4096且小于8192的记录键264的数据库记录262,在卡记录表格260上执行简单搜索,其中,4096是被分配给节点1记录键的记录键264的数值,8192是被分配给节点2的记录键264的数值。节点1的节点区域266的范围在4096和8192之间。简化了从关系数据库250中删除数据库记录262,这是因为根据本发明的示例性实施例,仅需要访问在被删除数据库记录262的区域266的范围中的、在具有记录键264的每个记录表格260中的数据库记录262,而不管记录表格的大小。本实施例仅是示例性的,本领域的技术人员将认识到可以在不脱离本发明精神的情况下实现上述实施例的变型。本发明的范围仅由所附的权利要求来定义。权利要求1.用于将高分层信息存储在关系数据库中的多个记录表格中的记录表格,在与多个分层组关联的数据库记录之间的关系,指定了跨越组的“包含”关系,每个记录表格包括a.来自所述多个数据库记录组的组,所述组与包含层次的一个级别相关联,每个数据库记录包括i.数据部分,用于存储有关对应实体的信息,该对应实体与所述包含层次的级别相关联;和ii.记录键,用于唯一地标识整个关系数据库内的数据库记录,所述记录键具有指定至少一个记录键区域的格式,每个记录键区域与所述包含层次的对应级别相关联,所述对应级别关联于组,该组与所述数据库记录的关系是“包含于其中”,存储于每个记录键区域中的记录键值给在对应于所述包含层次的级别的记录表格中的指定数据库记录编索引。2.根据权利要求1的记录表格,其中,采用所述关系数据库来存储关于被管理通信网络的网络管理信息,每个数据库记录对应于在所述通信网络中被部署的可管理实体,所述记录键包括字符串,每个记录键区域包括该字符串的子串。3.根据权利要求1的记录表格,所述记录键具有跨越所有记录表格的所有数据库记录的公共格式,所述记录键的格式指定了对应于所述多个包含层次级别的多个记录键区域。4.根据权利要求3的记录表格,其中,采用所述关系数据库来存储关于被管理通信网络的网络管理信息,每个数据库记录对应于在所述通信网络中被部署的可管理实体,所述记录键包括数字,每个记录键区域包括对应于该数字的二进制表示的多个比特。5.根据权利要求4的数据库记录,其中,所述记录键包括整数。6.用于将高分层信息存储在关系数据库中的多个数据库记录中的一个数据库记录,在与多个分层组相关联的数据库记录之间的关系,指定了跨越组的“包含”关系,所述数据库记录的每个组被存储在与包含层次的级别相关联的记录表格中,所述数据库记录包括a.数据部分,用于存储关于对应实体的信息,该对应实体与所述包含层次的级别相关联;和b.记录键,用于唯一地标识整个关系数据库内的数据库记录,所述记录键具有指定至少一个记录键区域的格式,每个记录键区域与所述包含层次的对应级别相关联,所述对应级别关联于组,该组与所述数据库记录的关系是“包含于其中”,存储于每个记录键区域中的记录键值,给在对应于所述包含层次的级别的记录表格中的指定数据库记录编索引。7.根据权利要求6的数据库记录,其中,采用所述关系数据库来存储关于被管理通信网络的网络管理信息,每个数据库记录对应于在所述通信网络中被部署的可管理实体,所述记录键包括字符串,每个记录键区域包括该字符串的子串。8.根据权利要求6的数据库记录,所述记录键具有跨越所有数据库记录的公共格式,所述记录键的格式指定了对应于所述多个包含层次级别的多个记录键区域。9.根据权利要求8的数据库记录,其中,采用所述关系数据库来存储关于被管理通信网络的网络管理信息,每个数据库记录对应于在所述通信网络中被部署的可管理实体,所述记录键包括数字,每个记录键区域包括对应于该数字的二进制表示的多个比特。10.根据权利要求9的数据库记录,其中,所述记录键包括整数。11.一种用于将高分层信息存储在关系数据库的多个数据库记录中的方法,在与多个分层组关联的数据库记录之间的关系,指定了跨越组的“包含”关系,所述方法包括a.将相同组的数据库记录存储在对应的记录表格中;和b.将记录键归于每个数据库记录,以唯一地标识在整个关系数据库内的数据库记录,所述记录键具有指定至少一个记录键区域的格式,每个记录键区域对应于包含层次的一个级别,所述级别关联于组,该组与所述数据库记录的关系是“包含于其中”,存储于每个记录键区域中的记录键值,给在对应于所述包含层次的级别的数据库记录组中的指定数据库记录编索引。12.根据权利要求11的方法,其中,采用所述关系数据库来存储关于被管理通信网络的网络管理信息,每个数据库记录对应于在所述通信网络中被部署的可管理实体,其中,将所述记录键归于每个数据库记录,所述方法包括将唯一的字符串归于所述数据库记录,每个记录键区域包括该字符串的子串。13.根据权利要求11的方法,其中,将所述记录键归于每个数据库记录,所述方法包括归属具有跨越所有数据库记录的公共格式的记录键,所述记录键的格式指定了对应于所述多个包含层次级别的多个记录键区域。14.根据权利要求13的方法,其中,采用所述关系数据库来存储关于被管理通信网络的网络管理信息,每个数据库记录对应于在所述通信网络中被部署的可管理实体,其中,将所述记录键归于每个数据库记录,所述方法包括将唯一的整数归于所述数据库记录,每个记录键区域包括对应于该整数的二进制表示的多个比特。15.根据权利要求14的方法,其中,将所述唯一的整数归于所述数据库记录,所述方法包括归属这样的整数大于归于“数据库记录包含”的数据库记录的整数,小于归于与所述包含层次中的相同级别关联的下一个“数据库记录包含”的数据库记录的整数。16.根据权利要求11的方法,该方法还包括在所述数据库记录的数据部分中存储关于与所述包含层次的级别相关联的对应实体的信息的步骤。17.根据权利要求11的方法,该方法还包括基于所述记录键来对存储于每个记录表格中的多个数据库记录分类的后续步骤。18.一种用于访问存储于多个记录表格的关系数据库中的高分层信息的方法,每个记录表格存储与包含层次的特定级别相关联的多个数据库记录,所述数据库记录之间的关系指定了跨越记录表格的“包含”关系,其中,标识了由指定数据库记录所“包含”的数据库记录,所述方法包括a.获得所述指定数据库记录的记录键的记录键区域的值,每个记录键指定了所述对应数据库记录的整个包含规范,所述记录键区域与对应于所述指定数据库记录的包含层次的级别相关联;b.将所获得的值设置为下搜索界限;c.确定所述记录键的记录键区域的值,其可归于在包含层次中与指定数据库记录级别相同的下一个数据库记录;d.将所确定的值设置为上搜索界限;和e.对于具有在所述下搜索界限与上搜索界限之间的记录键的数据库记录,检查存储了所述指定数据库记录所“包含”的多个数据库记录的记录表格。19.根据权利要求18的方法,该方法还包括基于所述记录键来对存储于每个记录表格中的多个数据库记录分类的在先步骤。20.根据权利要求18的方法,该方法还包括从所标识的数据库记录之一的数据部分,检索关于与所述包含层次的级别相关联的对应实体的信息的步骤。21.根据权利要求18的方法,该方法还包括删除所标识的数据库记录之一的步骤。22.根据权利要求21的方法,其中,删除所述数据库记录,所述方法还包括a.获得所标识的数据库记录的记录键的记录键区域的值;b.将所获得的值设置为下搜索界限;c.确定所述记录键的记录键区域的值,其可归于在包含层次中与所标识的数据库记录级别相同的下一个数据库记录;d.将所确定的值设置为上搜索界限;和e.从所述关系数据库删除具有在所述下搜索界限和上搜索界限之间的记录键的数据库记录。23.根据权利要求22的方法,其中,从所述关系数据库删除数据库记录,所述方法还包括从存储了所标识的数据库记录所“包含的”数据库记录的每个记录表格,删除具有在所述下搜索界限和上搜索界限之间的记录键的数据库记录。全文摘要本发明解决了在关系数据库中存储并维护高分层信息的问题,关系数据库是非常普遍的,并且享有较强的数据库提供者支持。高分层信息在关系数据库中的存储和维护的效率,由记录键来辅助,记录键跨越关系数据库中的所有数据库记录表而唯一地归于每个数据库记录。而且,记录键具有允许数据库记录之间的“包含”关系的规范的格式。有益的信息存储和信息检索改进,是通过使用且仅使用这种记录键给关系数据库的所有记录表中的所有数据库记录编索引来实现的。文档编号G06F17/30GK1892655SQ20061009225公开日2007年1月10日申请日期2006年6月15日优先权日2005年6月15日发明者Y·阿瓦德,A·穆斯塔法,M·阿松申请人:阿尔卡特公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1