找回密码
 欢迎注册
搜索
热搜: 活动 交友 discuz
查看: 2778|回复: 5

B-tree-like具体指什么?

[复制链接]
发表于 2006-11-5 16:13:19 | 显示全部楼层 |阅读模式
B-tree-like是Tree Based on Data Dimension ,还是平衡树,还是其它的?
发表于 2006-11-6 11:17:31 | 显示全部楼层
1972年R.Bayer和E.M.McCreight提出了一种称之为B-树的多路平衡查找树。它适合在磁盘等直接存取设备上组织动态的查找表。

B-树的定义
     一棵m(m≥3)阶的B-树是满足如下性质的m叉树:
每个结点至少包含下列数据域:
    (j,P0,Kl,P1,K2,…,Ki,Pi)
  其中:
    j为关键字总数
    Ki(1≤i≤j)是关键字,关键字序列递增有序:K1 <K2<…<Ki。
    Pi(0≤i≤j)是孩子指针。对于叶结点,每个Pi为空指针。

详细的可以看一些关于数据结构的书,这些属于计算机理论。
 楼主| 发表于 2006-11-7 14:59:25 | 显示全部楼层
谢谢!
 楼主| 发表于 2006-11-8 11:20:00 | 显示全部楼层
还是不甚明了。
B-树是用来对一个序列进行查找的,其关键字是一致的,那么怎么用它来存储多维数据呢?比方说这样的数据:
^ MyApp.PersonD (1) = $LB(530,"Abraham",$LB("UR","Mesopotamia"))
类定义如下:
Class MyApp.MyAddress Extends %SerialObject [ClassType = serial]
{
Property City As %String;
Property State As %String;
}

Class MyApp.Person Extends %Persistent [ClassType = persistent]
{
Property Name As %String;
Property Age As %Integer;
Property Home As MyAddress;
}
 楼主| 发表于 2006-11-8 11:28:06 | 显示全部楼层
可能是我理解错了
是不是这样:
多维数据先存储成数据块,相关的数据块用B-树的方式连接起来
发表于 2006-11-9 13:34:33 | 显示全部楼层
你指的是逻辑上的还是物理上的。^ MyApp.PersonD (1) = $LB(530,"Abraham",$LB("UR","Mesopotamia"))
这个其实应该算逻辑上的分布。这样的逻辑对物理上还是有一个对应的。
一般开发人员,只要使用到^ MyApp.PersonD (1) 的方式就够了。至于,物理的分布等,不需要开发人员去了解。
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

快速回复 返回顶部 返回列表