guo第4章表的存储原理与完整性创建管理.ppt

guo第4章表的存储原理与完整性创建管理.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 表的存储原理及完整性创建管理 4.1 SQL Server表的类型 4.2 表的存储原理 4.3 SQL Server数据类型 4.4 数据表的创建和管理 4.1 SQL Server表的类型 4.1.1 SQL Server的临时表 4.1.2 SQL Server的系统表 4.1.1 SQL Server的临时表 SQL Server中的数据表分为: 永久表:创建后一直存储在数据库文件中,直到用户删除为止。 临时表 临时表分两种: 局部临时表:表名用#开头。只能由创建它的用户使用,在该用户连接断开时,它被自动删除。 全局临时表:表名用##开头。当前所有连接用户都可以使用,它在最后一个会话结束时被自动删除。 系统根据表名前有无#符号确定创建的是临时表还是永久表。 4.2.2 SQL Server的系统表 一些系统表只存在于master数据库,它们包含系统级信息。在SQL Server 2000里共有18个表,在SQL Server 2005里对应20个视图。 。 而一些系统表则存在于每一个数据库(包括master数据库),它们包含属于这个特定数据库的对象和资源的相关信息。在SQL Server 2000里共有17个表,在SQL Server 2005里对应22个视图。 注意:不允许使用SQL语句直接修改系统表中的内容;不允许编写程序直接访问系统表中的信息;如果需要系统表信息,可以通过系统的存储过程和系统提供的函数进行。 4.2 表的存储原理 4.2.1 内部存储概述 4.2.2 SQL Server数据记录结构 4.1.1 内部存储概述 表是有关某个特定实例的数据集合,在关系数据库中处于核心地位。 创建一个表,就会有一行或多行插入到用来管理这个表的多个系统表里。至少要写信息到sysobjects、sysindexes和syscolumns这三个系统表里,当新建的表有外码约束时,相关的信息还会插入到sysrefrences系统表里。 Sysobjects主要记录新表的基本信息,如表名、对象ID以及表的所有者等等。 Syscolumns主要记录新表列的信息,如列名、类型和长度等。 Sysindexes系统表记录包含指向新表所使用的存储空间的指针和有关新表大小的信息。 sysrefrences系统表里记录参照表的外键信息。 例如:创建一个表,它在系统表中的记录信息如下图所示: 注意: 当一个新表刚创建时,在插入第一行数据之前系统不会立即为其分配存储空间,因此Sysindexes表中指示页地址和预留存储空间的列将都是0值。 如果在该表上定义了PRIMARY KEY或UNIQUE约束,而PRIMARY KEY或UNIQUE约束的背后是由簇集索引支持的,则该表在Sysindexes中对应行的indid值为1。 任何有非簇集索引支持的其他约束在Sysindexes表中都有一行,而且该行的indid值在2到250之间。 4.2.2 数据行(记录)结构 在 SQL Server 中,数据存储的基本单位是页。 紧跟着页头的就是存储表的真正数据行区域。单个数据行的最大长度是8060字节。 数据行不能跨页存储(文本和图像例外)。页内数据行的多少依赖于表的结构和要存储的数据。 如果一个表的所有列都是定长,那么该表在每一页上存储相同数目的行。 如果一个表里有变长列,那么该表总是在每一页上存储尽可能多的行。 4.2.2 数据行(记录)结构 1、定长记录 在定长记录里,每个字段都有固定的长度,而且字段数也是固定的。这种记录的字段能够连续存储,因此在给定记录地址的情况下,借助系统目录里有关字段的长度信息就能计算出某个特殊字段的的地址。 2、变长记录 对于变长记录来说,一种可能的记录组织方式就是像定长记录一样连续地存放字段,字段之间通过分割符隔开。这种组织方式需要扫描记录才能定位需要访问的字段。 另一种方法是在记录开始处预留一些空间作为存放一个整数偏移量数组的空间,数组中的第I个整数表示记录的第I个字段的其始地址,当然这个地址是相对于记录的起始地址的。另外在数组中也存储记录尾部的偏移量,这个偏移量用来识别最后一个字段的结束位置。 1、 SQL Server定长记录的存储 首先来看最简单的情况,记录中所有字段都是定长的。 CREATE TABLE Fixed ( col1 int NOT NULL col2 char(5) NOT NULL col3 char(3) NULL col4 float NOT NULL ) 当这个表被创建以后,就有类似下面

文档评论(0)

0520 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档