当前位置:三九宝宝网 → 宝宝百科 → 宝宝知识 → 正文

微软SQLServer2008数据库中的新数据类型

更新:12-04 整理:39baobao.com
字体:

[《与大数据同行》学习体会]正规教育中,反馈随处可见。在一个人的求学生涯中,会积累数以百计的此类数据点,我们将其称为 小数据 ,这些数据代表的是学生在教师眼中的学业表现。我们越来越依赖于这种反馈,将其...+阅读

对于关系型数据库来说,表现树状的层次结构始终是一个问题。微软在SQL Server 2005中首次尝试了解决这个问题,那就是被称之为通用数据表表达式(mon Table Expressions,CTE)的实现方式。

尽管CTE在现有的数据库架构中运行良好,微软找到了一种将此类层次结构作为头等概念来使用的方式。因此,为了实现这种效果,他们在SQL Server 2008中提出了一种“HierarchId”数据类型。

在传统的层次结构中,一条记录仅仅储存了一个指向它父记录的引用,这使得一条记录能够获得它在层次结构中的相对位置,而不是绝对位置。改变某条记录的父数据行引用是一个原子更新操作,它不会影响到该记录的任何子记录。

一个HierarchyId类型的字段储存了记录在层次结构中的准确位置。Denny Cherry提供了一个例子,其中展示了0x、0x58以及0x5AC0三个值,它们的字符串表现形式分别为“/”,“/1/”和“/1/1/”。这就引发了有关一致性和性能方面的问题,尤其是父记录被改变的时候。Ri S.Maniam建议在改变父记录操作不频繁的情况下使用这种设计方式。

与HierarchyId类型同时出现的还有一系列函数。GetAncestor和GetDescendant方法可以用来遍历树。ToString和Parse方法用于HierarchyId类型二进制与字符串表现形式之前的转换。有些古怪的是,随之而来的还有用于支持BinaryReader与BinaryWriter的一些方法。

Examda提示: GetDescendant,这是一个有些古怪的方法。它实际上不返回那些子记录,而是返回那些潜在的子节点的位置。向树中插入一个新的记录时,我们必需调用GetDescendant方法来获得指定父记录的最后一个子节点的位置,然后才能获得紧跟着该位置之后的空隙。

迄今为止还没有使用T-SQL来获得树状结构的合适示例。事实上,与它有关的所有东西都更像是一些命令,而不是基于集合的操作。

本文地址:https://www.39baobao.com/show/39_37767.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

让专家和数据告诉你:补充维生素A对中国宝宝有多重要!我国儿童维生素A缺乏现状根据近五年的地域性流行病学调查数据显示,我国各地区亚临床和可疑维生素A缺乏率仍居高不下,即使是北京、江苏、重庆等较为发达的地区,都无法避免维生...

e学习大数据云课堂在90课时信息技术培训初次接触e学习,了解萨尔曼 可汗的可汗学院及可汗的故事到到去年的翻转课堂、微视频的制作,平时也在密切关注数字时代教学的变革,可以说互联网时代的教学变...

在excle表格中如何合并两列数据2然后,我们选择合并情况项里面的第一项格子,在里面输入=c3d3因为数据一是在c列的第三行,数据二是在d列的第三行。3输完之后,我们直接点击enter键就可以显示出来了。4我们选中...

在Excle2007中如何针对特定数据新建查询2找到新建查询按钮,点击新建查询。3点击从文件中的从工作薄选项。4选择需要查询的工作薄文件地址。5接下来点击关闭并上载。6这样excle针对特定数据新建查询就顺利完成了...

面试谈薪企业最关心的三个数据通常在面试谈薪时,企业会关心和薪资相关的三个数据:现在的薪资、要求的底线薪资、期望薪资。但很多人其实混淆了底线薪资和期望薪资。那么问题来了,如果给不到你的期望薪资的工...

HR只关心三个数据,搞不清楚别想有面试!通常在面试谈薪时,企业会关心和薪资相关的三个数据:现在的薪资、要求的底线薪资、期望薪资。但很多人其实混淆了底线薪资和期望薪资。那么问题来了,如果给不到你的期望薪资的工...

微软将在Office14中添加开放文档格式支持微软向开发者发布了一份详细的指导书,表示计划将开放文档格式(ODF)加入到下个版本Office也就是Office 14中。 在指导书中,微软详细的说明了如何将ODF1.1添加到Word 、Excel和...

Excel:微软OfficeExcel使用的种种限制Excel不是万能的,在一些方面总有限制让人觉得不爽,于是我们就看到论坛上的朋友一个劲的在那问一些Excel没有办法做到的问题,而且是你问过我问非有不问到死不罢休的架势。为了避...

VB6.0使用ADO对象连接数据1. 定义连接对象 Global DBconnect As New ADODB.Connection 2. 执行连接语句 If DBconnect.State = adStateOpen And Not IsEmpty(adStateOpen) Then DBconnect.Close 连接OD...