欢迎来到天天文库
浏览记录
ID:58889482
大小:522.50 KB
页数:55页
时间:2020-09-30
《ch06_索引与数据完整性ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章索引与数据完整性6.1索引6.2数据完整性6.1索引索引是根据表中一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表。在数据库系统中建立索引主要有以下作用:快速存取数据;保证数据记录的唯一性;实现表与表之间的参照完整性;在使用ORDERBY、GROUPBY子句进行数据检索时,利用索引可以减少排序和分组的时间。6.1.1索引的分类1.聚集索引聚集索引将数据行的键值在表内排序并存储对应的数据记录,使得数据表物理顺序与索引顺序一致。SQLServer2008是按B树(BTREE)方式组织聚集索引的,B树方式构建为包含了多个节点的一棵树。顶部的节点构成了索引的开
2、始点,叫做根。每个节点中含有索引列的几个值,一个节点中的每个值又都指向另一个节点或者指向表中的一行,一个节点中的值必须是有序排列的。指向一行的一个节点叫做叶子页。叶子页本身也是相互连接的,一个叶子页有一个指针指向下一组。这样,表中的每一行都会在索引中有一个对应值。查询的时候就可以根据索引值直接找到所在的行。聚集索引中B树的叶节点存放数据页信息。聚集索引在索引的叶级保存数据。这意味着不论聚集索引里有表的哪个(或哪些)字段,这些字段都会按顺序保存在表中。由于存在这种排序,所以每个表只会有一个聚集索引。由于数据记录按聚集索引键的次序存储,故聚集索引对查找记录很有效。6.1.
3、1索引的分类2.非聚集索引非聚集索引完全独立于数据行的结构。SQLServer2008也是按B树方式组织非聚集索引的,与聚集索引的不同之处在于:非聚集索引B树的叶节点不存放数据页信息,而是存放非聚集索引的键值,并且每个键值项都有指针指向包含该键值的数据行。在非聚集索引内,从索引行指向数据行的指针称为行定位器。行定位器的结构取决于数据页的存储方式是堆集还是聚集。对于堆集,行定位器是指向行的指针。对于有聚集索引的表,行定位器是聚集索引键。只有在表上创建聚集索引时,表内的行才按特定顺序存储,这些行按聚集索引键顺序存储。如果一个表只有非聚集索引,则它的数据行将按无序的堆集方式
4、存储。6.1.2索引的创建在PXSCJ数据库中,经常要对XSB、KCB、CJB三个表进行查询和更新。为了提高查询和更新速度,可以考虑对三个表建立如下索引:(1)对于XSB表,按学号建立主键索引(PRIMARYKEY),组织方式为聚集索引。(2)对于KCB表,按课程号建立主键索引,组织方式为聚集索引。(3)对于KCB表,按课程名建立唯一索引(UNIQUE约束),组织方式为非聚集索引。(4)对于CJB表,按学号+课程号建立唯一索引,组织方式为聚集索引。在SQLServerManagementStudio中,既可利用界面方式创建上述索引,也可以利用T-SQL命令通过查询分析
5、器建立索引。6.1.2索引的创建1.界面方式创建索引启动“SQLServerManagementStudio”,在对象资源管理器中展开“数据库”,选择“表”中的“dbo.XSB”,右击其中的“索引”项,在弹出的快捷菜单上选择“新建索引(N)…”菜单项。这时,用户可以在弹出的“新建索引”窗口中输入索引名称(索引名在表中必须唯一),如PX_XSB,选择索引类型为“聚集”,勾选“唯一”复选框,单击新建索引窗口的“添加”按钮,在弹出的“选择要添加到索引键的表列”窗口(如图6.1所示)中选择要添加的列,添加完毕后,单击“确定”按钮,在主界面中为索引键列设置相关的属性,单击“确定
6、”按钮,即完成索引的创建工作。6.1.2索引的创建图6.1添加索引键列6.1.2索引的创建在“表设计器”窗口创建索引的方法如下。第1步:右击PXSCJ数据库中的“dbo.XSB”表,在弹出的快捷菜单中选择“设计”菜单项,打开“表设计器”窗口。第2步:在“表设计器”窗口中,选择“学号”属性列,右击鼠标,在弹出的快捷菜单中选择“索引/键”菜单项。在打开的“索引/键”窗口中单击“添加”按钮,并在右边的“标识”属性区域的“名称”一栏中确定新索引的名称(用系统默认的名或重新取名)。在右边的常规属性区域中的“列”一栏后面单击“”按钮,可以修改要创建索引的列。如果将“是唯一的”一栏
7、设定为“是”则表示索引是唯一索引。在“表设计器”栏下的“创建为聚集的”选项中,可以设置是否创建为聚集索引,由于XSB表中已经存在聚集索引,所以这里的这个选项不可修改,如图6.2所示。图6.2“索引/键”窗口6.1.2索引的创建第3步:最后关闭该窗口,单击面板上的“保存”按钮,在弹出的对话框中单击“是”按钮,索引创建即完成。索引创建完后,只需返回SSMS主窗口,在对象资源管理器中展开“dbo.XSB”表中的“索引”项,就可以查看已建立的索引。其他索引的创建方法与之类似。6.1.2索引的创建2.利用SQL命令建立索引使用CREATEINDEX语句可以为表
此文档下载收益归作者所有