6索引与数据完整性.docVIP

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6索引与数据完整性

6 索引与数据完整性 当查阅书中某一章节的内容时,为了提高查阅速度,并不是从书的第一页开始,顺序查找,而是首先查看书的目录索引,找到需要的这一章节在目录中所列的页码,然后根据这一页码直接找到需要的章节。在数据库中,为了从大量的数据迅速找到需要的内容,也采用了类似于书目录这样的索引技术,使得数据查询时不必扫描整个数据库,就能迅速查到所需要的内容。下面介绍SQL Server 2000的索引技术。 6.1 索引 索引是根据表中一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表。 在数据库系统中建立索引主要有以下作用: 快速存取数据; 保证数据记录的唯一性; 实现表与表之间的参照完整性; 在使用ORDER BY、GROUP BY子句进行数据检索时,利用索引可以减少排序和分组的时间。 6.1.1 索引的分类 如果一个表没有创建索引,则数据行不按任何特定的顺序存储这种结构称为堆集。 SQL Server 2000 支持在表中任何列(包括计算列)上定义索引SQL Server 索引两种类型 索引可以是唯一的,这意味着不会两行相同的索引键值唯一索引。当唯一性是数据本身特点时,可创建唯一索引索引也可以不是唯一的,多个行可以共享同一键值。聚集数据行的键值在表内排序存储由于数据按键的次序存储,因此对查找很有效。表只能有一个 2.非聚集非完全独立于数据行的结构。非的非的键值,并且每个键值项都有指针指向包含该键值的数据行。数据行不按非聚集键的次序存储。在非内,从索引行指向数据行的指针称为行定位器。行定位器的结构取决于数据页的存储方式是堆集还是聚集。对于堆集,行定位器是指向行的指针。对于有的表,行定位器是键只有在表上创建时,表内的行才按特定顺序存储。这些行键顺序存储。如果一个表只有非,它的数据行将按无序的堆集方式存储。 当在 SQL Server 2000 上创建索引时,可指定是按升序还是降序存储键。 1. 通过企业管理器建立索引 第1步 进入企业管理器,打开XSCJ数据库; 第2步 选择选择XS表的图标,右击,出现如图6.1所示的快捷菜单,选择“设计表”菜单项,出现如图6.2所示XS的表设计器界面; 图6.1 XS表图标快捷菜单 图6.2 XS表设计器界面 第3步 在右击,快捷菜单中选择索引/键选择新建命令新索引的名称在列名下选择要创建索引的列可选择16 列为获得最佳性能,最好只选择一列或两列。 图6.5 表XS的属性界面 进入XS表设计器的快捷菜单(在XS表设计器界面上右击),选择“索引/键”菜单项,可以查看已建立的索引。对于前面建立的索引,如图6.5所示。 对于唯一索引,要求表中任意两行的索引值不能相同,有兴趣的读者可以自己试一试当输入两个索引值相同的记录行时会出现什么情况? 2.利用SQL命令建立索引 语法格式如下: CREATE [ UNIQUE ] /*是否为唯一索引*/ [ CLUSTERED | NONCLUSTERED ] /*索引的组织方式*/ INDEX index_name /*索引名称*/ ????ON { table | view } ( column [ ASC | DESC ] [ ,...n ] ) /*索引定义的依据*/ [ WITH index_option [ ,...n] ] /*索引选项*/ [ ON filegroup ] /*指定索引文件所在的文件组*/ index_option ::= ??{ PAD_INDEX |?FILLFACTOR = fillfactor |?IGNORE_DUP_KEY |?DROP_EXISTING |?STATISTICS_NORECOMPUTE |?SORT_IN_TEMPDB? } 参数: 关键字UNIQUE表示为表或视图创建唯一索引(不允许存在索引值相同的两行)视图聚集索引必须是 UNIQUE 索引。CLUSTERED、 NONCLUSTERED用于指定创建聚集索引聚集索引一个表或视图只允许有一个聚集索引必须先为视图创建唯一聚集索引,然后才能索引CREATE INDEX 创建使用 PRIMARY KEY 和 UNIQUE 约束创建。 index_name索引名索引名在表或视图中必须唯一,但在数据库中不必唯一table、view用于指定包含索引字段的表可数据库和表所有者。必须使用 SCHEMABINDING 定义视图才能在视图上创建索引。column用于指定索引的n表示可以为索引指定多个ntext、text 或 image。组合索引的所有必须。 默认设置为 ASC。 P

文档评论(0)

5201314118 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:7065201001000004

1亿VIP精品文档

相关文档