数据库和堆(Heap)

初学者-- 2015-05-15 10:00:57
最近在研究数据库中索引的数据结构,注意到一点:对于数据库中的表的存储结构,堆是没有聚集索引的表。这里有几个疑问:

1、在数据结构中,所有的堆(Heap)都是完全二叉树吗?完全二叉树器堆的必要条件?
2、如果一个数据库中的表了没有聚集索引,也没有设置主键,那么这个表在存储成堆的时候,使用什么字段作为关键码?
...全文
267 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_44803203 2019-03-25
  • 打赏
  • 举报
回复
堆你搞懂了吗?没有聚集索引的表,到底是怎样的一种结构呢?
还在加载中灬 2015-05-26
  • 打赏
  • 举报
回复
近似完全二叉树,和完全二叉树有小许区别
初学者-- 2015-05-25
  • 打赏
  • 举报
回复
@ky_min 堆除了常用的完全二叉树,还有什么结构?因为我想在看到的大部分的资料在介绍堆的时候都是直接按照完全二叉树来介绍的,所以对堆的理解很困惑。如果堆不是完全二叉树,会是什么样的?
还在加载中灬 2015-05-15
  • 打赏
  • 举报
回复
我的都还给老师得差不多了 1、不一定是二叉树,只是一般采用完全二叉树 2、如果表是堆(意味着该表没有聚集索引),行定位器指向行的指针。该指针是由文件标识符ID:页码:页上的行数生成。整个指针称为行ID(RID)
俺是大菠萝 2015-05-15
  • 打赏
  • 举报
回复
1、SQLSERVER采用的是B-tree,和完全二叉树还是有所区别的 2、对于没有主键的表,系统会根据RID进行辨识

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧